From a7f2b2ba3f13ceb60376802f4a31e104153839e8 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Tue, 17 Feb 2015 03:00:37 +0100 Subject: At first, I was thinking "I just have to go to the selection file, and change that GSList* with a std::list, then resolve the few problems" So, i tried that. And I will continue tomorrow, and the days after, on and on. (bzr r13922.1.1) --- .cproject | 63 ++ .project | 27 + src/conn-avoid-ref.cpp | 5 +- src/desktop-style.cpp | 120 ++-- src/desktop-style.h | 25 +- src/extension/execution-env.cpp | 8 +- src/extension/implementation/implementation.cpp | 7 +- src/extension/implementation/script.cpp | 7 +- src/extension/internal/bitmap/imagemagick.cpp | 16 +- src/extension/internal/bluredge.cpp | 7 +- src/extension/internal/cairo-renderer.cpp | 8 +- src/extension/internal/filter/filter.cpp | 8 +- src/extension/internal/grid.cpp | 7 +- src/extension/internal/latex-text-renderer.cpp | 8 +- src/file.cpp | 6 +- src/filter-chemistry.cpp | 2 +- src/gradient-chemistry.cpp | 12 +- src/gradient-drag.cpp | 17 +- src/graphlayout.cpp | 10 +- src/graphlayout.h | 4 +- src/helper/png-write.cpp | 12 +- src/helper/png-write.h | 9 +- src/live_effects/lpe-knot.cpp | 6 +- src/main.cpp | 23 +- src/object-snapper.cpp | 5 +- src/path-chemistry.cpp | 125 ++-- src/path-chemistry.h | 2 +- src/removeoverlap.cpp | 12 +- src/removeoverlap.h | 2 +- src/selcue.cpp | 19 +- src/selection-chemistry.cpp | 779 +++++++++++------------- src/selection-chemistry.h | 11 +- src/selection-describer.cpp | 34 +- src/selection.cpp | 159 +++-- src/selection.h | 38 +- src/seltrans.cpp | 54 +- src/seltrans.h | 2 +- src/snap.cpp | 14 +- src/snap.h | 8 +- src/sp-conn-end.cpp | 5 +- src/sp-defs.cpp | 9 +- src/sp-filter.cpp | 9 +- src/sp-item-group.cpp | 91 ++- src/sp-item-group.h | 5 +- src/sp-lpe-item.cpp | 30 +- src/sp-marker.cpp | 6 +- src/sp-marker.h | 2 +- src/sp-object.cpp | 6 +- src/sp-object.h | 10 +- src/sp-pattern.cpp | 6 +- src/sp-pattern.h | 2 +- src/sp-switch.cpp | 24 +- src/sp-switch.h | 2 +- src/splivarot.cpp | 102 ++-- src/text-chemistry.cpp | 83 ++- src/text-editing.cpp | 7 +- src/trace/trace.cpp | 8 +- src/ui/clipboard.cpp | 33 +- src/ui/dialog/align-and-distribute.cpp | 87 +-- src/ui/dialog/clonetiler.cpp | 14 +- src/ui/dialog/export.cpp | 28 +- src/ui/dialog/filter-effects-dialog.cpp | 27 +- src/ui/dialog/find.cpp | 92 +-- src/ui/dialog/find.h | 11 +- src/ui/dialog/glyphs.cpp | 12 +- src/ui/interface.cpp | 17 +- src/unclump.cpp | 57 +- src/unclump.h | 3 +- src/vanishing-point.cpp | 26 +- src/widgets/arc-toolbar.cpp | 33 +- src/widgets/connector-toolbar.cpp | 16 +- src/widgets/fill-style.cpp | 32 +- src/widgets/gradient-toolbar.cpp | 15 +- src/widgets/mesh-toolbar.cpp | 10 +- src/widgets/rect-toolbar.cpp | 18 +- src/widgets/spiral-toolbar.cpp | 16 +- src/widgets/star-toolbar.cpp | 38 +- src/widgets/stroke-style.cpp | 29 +- src/widgets/stroke-style.h | 2 +- src/widgets/text-toolbar.cpp | 34 +- 80 files changed, 1373 insertions(+), 1365 deletions(-) create mode 100644 .cproject create mode 100644 .project diff --git a/.cproject b/.cproject new file mode 100644 index 000000000..9cf450ade --- /dev/null +++ b/.cproject @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 000000000..687f2ac6c --- /dev/null +++ b/.project @@ -0,0 +1,27 @@ + + + Local + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.core.ccnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index c13b9a5d3..f2cde352c 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -252,8 +252,9 @@ static std::vector approxItemWithPoints(SPItem const *item, const G { SPGroup* group = SP_GROUP(item); // consider all first-order children - for (GSList const* i = sp_item_group_item_list(group); i != NULL; i = i->next) { - SPItem* child_item = SP_ITEM(i->data); + SelContainer itemlist = sp_item_group_item_list(group); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem* child_item = SP_ITEM(*i); std::vector child_points = approxItemWithPoints(child_item, item_transform * child_item->transform); poly_points.insert(poly_points.end(), child_points.begin(), child_points.end()); } diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index ee9fa39ec..39dfad44b 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -194,10 +194,10 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_write, css); sp_css_attr_unset_uris(css_write); prefs->mergeStyle("/desktop/style", css_write); - - for (const GSList *i = desktop->selection->itemList(); i != NULL; i = i->next) { + SelContainer const itemlist = desktop->selection->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { /* last used styles for 3D box faces are stored separately */ - SPObject *obj = reinterpret_cast(i->data); // TODO unsafe until Selection is refactored. + SPObject *obj = reinterpret_cast(*i); // TODO unsafe until Selection is refactored. Box3DSide *side = dynamic_cast(obj); if (side) { const char * descr = box3d_side_axes_string(side); @@ -234,8 +234,9 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_no_text, css); css_no_text = sp_css_attr_unset_text(css_no_text); - for (GSList const *i = desktop->selection->itemList(); i != NULL; i = i->next) { - SPItem *item = reinterpret_cast(i->data); + SelContainer const itemlist = desktop->selection->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem *item = reinterpret_cast(*i); // If not text, don't apply text attributes (can a group have text attributes? Yes! FIXME) if (isTextualItem(item)) { @@ -438,17 +439,16 @@ sp_desktop_get_font_size_tool(SPDesktop *desktop) /** Determine average stroke width, simple method */ // see TODO in dialogs/stroke-style.cpp on how to get rid of this eventually gdouble -stroke_average_width (GSList const *objects) +stroke_average_width (const SelContainer &objects) { - if (g_slist_length ((GSList *) objects) == 0) + if (objects.empty()) return Geom::infinity(); gdouble avgwidth = 0.0; bool notstroked = true; int n_notstroked = 0; - - for (GSList const *l = objects; l != NULL; l = l->next) { - SPObject *obj = reinterpret_cast(l->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); SPItem *item = dynamic_cast(obj); if (!item) { continue; @@ -471,7 +471,7 @@ stroke_average_width (GSList const *objects) if (notstroked) return Geom::infinity(); - return avgwidth / (g_slist_length ((GSList *) objects) - n_notstroked); + return avgwidth / (objects.size() - n_notstroked); } static bool vectorsClose( std::vector const &lhs, std::vector const &rhs ) @@ -492,9 +492,9 @@ static bool vectorsClose( std::vector const &lhs, std::vector co * Write to style_res the average fill or stroke of list of objects, if applicable. */ int -objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill) +objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool const isfill) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -514,8 +514,8 @@ objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill prev[0] = prev[1] = prev[2] = 0.0; bool same_color = true; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; } @@ -674,7 +674,7 @@ objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill } // Not color - if (g_slist_length(objects) > 1) { + if (objects.size() > 1) { return QUERY_STYLE_MULTIPLE_SAME; } else { return QUERY_STYLE_SINGLE; @@ -685,9 +685,9 @@ objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill * Write to style_res the average opacity of a list of objects. */ int -objects_query_opacity (GSList *objects, SPStyle *style_res) +objects_query_opacity (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -698,8 +698,8 @@ objects_query_opacity (GSList *objects, SPStyle *style_res) guint opacity_items = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; } @@ -739,9 +739,9 @@ objects_query_opacity (GSList *objects, SPStyle *style_res) * Write to style_res the average stroke width of a list of objects. */ int -objects_query_strokewidth (GSList *objects, SPStyle *style_res) +objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -754,8 +754,8 @@ objects_query_strokewidth (GSList *objects, SPStyle *style_res) int n_stroked = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; } @@ -815,9 +815,9 @@ objects_query_strokewidth (GSList *objects, SPStyle *style_res) * Write to style_res the average miter limit of a list of objects. */ int -objects_query_miterlimit (GSList *objects, SPStyle *style_res) +objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -828,8 +828,8 @@ objects_query_miterlimit (GSList *objects, SPStyle *style_res) gdouble prev_ml = -1; bool same_ml = true; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; } @@ -875,9 +875,9 @@ objects_query_miterlimit (GSList *objects, SPStyle *style_res) * Write to style_res the stroke cap of a list of objects. */ int -objects_query_strokecap (GSList *objects, SPStyle *style_res) +objects_query_strokecap (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -887,8 +887,8 @@ objects_query_strokecap (GSList *objects, SPStyle *style_res) bool same_cap = true; int n_stroked = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; } @@ -929,9 +929,9 @@ objects_query_strokecap (GSList *objects, SPStyle *style_res) * Write to style_res the stroke join of a list of objects. */ int -objects_query_strokejoin (GSList *objects, SPStyle *style_res) +objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -941,8 +941,8 @@ objects_query_strokejoin (GSList *objects, SPStyle *style_res) bool same_join = true; int n_stroked = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; } @@ -984,7 +984,7 @@ objects_query_strokejoin (GSList *objects, SPStyle *style_res) * Write to style_res the average font size and spacing of objects. */ int -objects_query_fontnumbers (GSList *objects, SPStyle *style_res) +objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res) { bool different = false; @@ -1004,8 +1004,8 @@ objects_query_fontnumbers (GSList *objects, SPStyle *style_res) int texts = 0; int no_size = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { continue; @@ -1116,15 +1116,15 @@ objects_query_fontnumbers (GSList *objects, SPStyle *style_res) * Write to style_res the average font style of objects. */ int -objects_query_fontstyle (GSList *objects, SPStyle *style_res) +objects_query_fontstyle (const SelContainer &objects, SPStyle *style_res) { bool different = false; bool set = false; int texts = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { continue; @@ -1173,7 +1173,7 @@ objects_query_fontstyle (GSList *objects, SPStyle *style_res) * Write to style_res the baseline numbers. */ static int -objects_query_baselines (GSList *objects, SPStyle *style_res) +objects_query_baselines (const SelContainer &objects, SPStyle *style_res) { bool different = false; @@ -1192,8 +1192,8 @@ objects_query_baselines (GSList *objects, SPStyle *style_res) int texts = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { continue; @@ -1269,7 +1269,7 @@ objects_query_baselines (GSList *objects, SPStyle *style_res) * Write to style_res the average font family of objects. */ int -objects_query_fontfamily (GSList *objects, SPStyle *style_res) +objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res) { bool different = false; int texts = 0; @@ -1280,8 +1280,8 @@ objects_query_fontfamily (GSList *objects, SPStyle *style_res) } style_res->font_family.set = FALSE; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; if (!isTextualItem(obj)) { @@ -1325,7 +1325,7 @@ objects_query_fontfamily (GSList *objects, SPStyle *style_res) } static int -objects_query_fontspecification (GSList *objects, SPStyle *style_res) +objects_query_fontspecification (const SelContainer &objects, SPStyle *style_res) { bool different = false; int texts = 0; @@ -1336,8 +1336,8 @@ objects_query_fontspecification (GSList *objects, SPStyle *style_res) } style_res->font_specification.set = FALSE; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; if (!isTextualItem(obj)) { @@ -1385,7 +1385,7 @@ objects_query_fontspecification (GSList *objects, SPStyle *style_res) } static int -objects_query_blend (GSList *objects, SPStyle *style_res) +objects_query_blend (const SelContainer &objects, SPStyle *style_res) { const int empty_prev = -2; const int complex_filter = 5; @@ -1394,8 +1394,8 @@ objects_query_blend (GSList *objects, SPStyle *style_res) bool same_blend = true; guint items = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; } @@ -1471,9 +1471,9 @@ objects_query_blend (GSList *objects, SPStyle *style_res) * Write to style_res the average blurring of a list of objects. */ int -objects_query_blur (GSList *objects, SPStyle *style_res) +objects_query_blur (const SelContainer &objects, SPStyle *style_res) { - if (g_slist_length(objects) == 0) { + if (objects.empty()) { /* No objects, set empty */ return QUERY_STYLE_NOTHING; } @@ -1484,8 +1484,8 @@ objects_query_blur (GSList *objects, SPStyle *style_res) guint blur_items = 0; guint items = 0; - for (GSList const *i = objects; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; } @@ -1553,7 +1553,7 @@ objects_query_blur (GSList *objects, SPStyle *style_res) * the result to style, return appropriate flag. */ int -sp_desktop_query_style_from_list (GSList *list, SPStyle *style, int property) +sp_desktop_query_style_from_list (const SelContainer &list, SPStyle *style, int property) { if (property == QUERY_STYLE_PROPERTY_FILL) { return objects_query_fillstroke (list, style, true); @@ -1606,7 +1606,7 @@ sp_desktop_query_style(SPDesktop *desktop, SPStyle *style, int property) // otherwise, do querying and averaging over selection if (desktop->selection != NULL) { - return sp_desktop_query_style_from_list ((GSList *) desktop->selection->itemList(), style, property); + return sp_desktop_query_style_from_list (desktop->selection->itemList(), style, property); } return QUERY_STYLE_NOTHING; diff --git a/src/desktop-style.h b/src/desktop-style.h index 40ca27e9e..0e40a2652 100644 --- a/src/desktop-style.h +++ b/src/desktop-style.h @@ -13,6 +13,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include "selection.h" // SelContainer class ColorRGBA; class SPCSSAttr; class SPDesktop; @@ -64,21 +65,21 @@ guint32 sp_desktop_get_color_tool(SPDesktop *desktop, Glib::ustring const &tool, double sp_desktop_get_font_size_tool (SPDesktop *desktop); void sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, Glib::ustring const &tool, bool with_text); -gdouble stroke_average_width (GSList const *objects); +gdouble stroke_average_width (const SelContainer &objects); -int objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill); -int objects_query_fontnumbers (GSList *objects, SPStyle *style_res); -int objects_query_fontstyle (GSList *objects, SPStyle *style_res); -int objects_query_fontfamily (GSList *objects, SPStyle *style_res); -int objects_query_opacity (GSList *objects, SPStyle *style_res); -int objects_query_strokewidth (GSList *objects, SPStyle *style_res); -int objects_query_miterlimit (GSList *objects, SPStyle *style_res); -int objects_query_strokecap (GSList *objects, SPStyle *style_res); -int objects_query_strokejoin (GSList *objects, SPStyle *style_res); +int objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool const isfill); +int objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res); +int objects_query_fontstyle (const SelContainer &objects, SPStyle *style_res); +int objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res); +int objects_query_opacity (const SelContainer &objects, SPStyle *style_res); +int objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res); +int objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res); +int objects_query_strokecap (const SelContainer &objects, SPStyle *style_res); +int objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res); -int objects_query_blur (GSList *objects, SPStyle *style_res); +int objects_query_blur (const SelContainer &objects, SPStyle *style_res); -int sp_desktop_query_style_from_list (GSList *list, SPStyle *style, int property); +int sp_desktop_query_style_from_list (const SelContainer &list, SPStyle *style, int property); int sp_desktop_query_style(SPDesktop *desktop, SPStyle *style, int property); bool sp_desktop_query_style_all (SPDesktop *desktop, SPStyle *query); diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index 13b8d60c4..66a8c4358 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -64,14 +64,12 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Imp sp_namedview_document_from_window(desktop); if (desktop != NULL) { - Inkscape::Util::GSListConstIterator selected = - desktop->getSelection()->itemList(); - while ( selected != NULL ) { + SelContainer selected = desktop->getSelection()->itemList(); + for(SelContainer::const_iterator x=selected.begin();x!=selected.end();x++){ Glib::ustring selected_id; - selected_id = (*selected)->getId(); + selected_id = (*x)->getId(); _selected.insert(_selected.end(), selected_id); //std::cout << "Selected: " << selected_id << std::endl; - ++selected; } } diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index 52f63499a..6eff3ede3 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -48,11 +48,10 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I SPDocument * current_document = view->doc(); using Inkscape::Util::GSListConstIterator; - // FIXME very unsafe cast - GSListConstIterator selected = ((SPDesktop *)view)->getSelection()->itemList(); + SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node const* first_select = NULL; - if (selected != NULL) { - const SPItem * item = *selected; + if (!selected.empty()) { + const SPItem * item = SP_ITEM(selected.front()); first_select = item->getRepr(); } diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index bbc567f75..f396e9848 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -689,14 +689,13 @@ void Script::effect(Inkscape::Extension::Effect *module, return; } - Inkscape::Util::GSListConstIterator selected = + SelContainer selected = desktop->getSelection()->itemList(); //desktop should not be NULL since doc was checked and desktop is a casted pointer - while ( selected != NULL ) { + for(SelContainer::const_iterator x=selected.begin();x!=selected.end();x++){ Glib::ustring selected_id; selected_id += "--id="; - selected_id += (*selected)->getId(); + selected_id += (*x)->getId(); params.insert(params.begin(), selected_id); - ++selected; } file_listener fileout; diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index 76f35415e..87ef30887 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -70,8 +70,8 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems(NULL) { SPDesktop *desktop = (SPDesktop*)view; - const GSList *selectedItemList = desktop->selection->itemList(); - int selectCount = g_slist_length((GSList *)selectedItemList); + const SelContainer selectedItemList = desktop->selection->itemList(); + int selectCount = selectedItemList.size(); // Init the data-holders _nodes = new Inkscape::XML::Node*[selectCount]; @@ -83,9 +83,8 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems = new SPItem*[selectCount]; // Loop through selected items - for (; selectedItemList != NULL; selectedItemList = g_slist_next(selectedItemList)) - { - SPItem *item = SP_ITEM(selectedItemList->data); + for (SelContainer::const_iterator i=selectedItemList.begin();i!=selectedItemList.end();i++) { + SPItem *item = static_cast(*i); Inkscape::XML::Node *node = reinterpret_cast(item->getRepr()); if (!strcmp(node->name(), "image") || !strcmp(node->name(), "svg:image")) { @@ -243,11 +242,10 @@ ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::Vie using Inkscape::Util::GSListConstIterator; - // FIXME very unsafe cast - GSListConstIterator selected = ((SPDesktop *)view)->getSelection()->itemList(); + SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; - if (selected != NULL) { - first_select = (*selected)->getRepr(); + if (!selected.empty()) { + first_select = (selected.front())->getRepr(); } return module->autogui(current_document, first_select, changeSignal); diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index 3ce537d9f..138172715 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -65,13 +65,12 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View using Inkscape::Util::GSListConstIterator; // TODO need to properly refcount the items, at least - std::list items; - items.insert >(items.end(), selection->itemList(), NULL); + SelContainer items(selection->itemList()); selection->clear(); - for(std::list::iterator item = items.begin(); + for(SelContainer::iterator item = items.begin(); item != items.end(); ++item) { - SPItem * spitem = *item; + SPItem * spitem = static_cast(*item); std::vector new_items(steps); Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 1f48d2097..7ce5cdf8a 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -294,14 +294,14 @@ static void sp_group_render(SPGroup *group, CairoRenderContext *ctx) CairoRenderer *renderer = ctx->getRenderer(); TRACE(("sp_group_render opacity: %f\n", SP_SCALE24_TO_FLOAT(item->style->opacity.value))); - GSList *l = g_slist_reverse(group->childList(false)); - while (l) { - SPObject *o = reinterpret_cast(l->data); + SelContainer l(group->childList(false)); + l.reverse(); + for(SelContainer::const_iterator x=l.begin();x!=l.end();x++){ + SPObject *o = reinterpret_cast(*x); SPItem *item = dynamic_cast(o); if (item) { renderer->renderItem(ctx, item); } - l = g_slist_remove (l, o); } } diff --git a/src/extension/internal/filter/filter.cpp b/src/extension/internal/filter/filter.cpp index a2c565699..821c023ac 100644 --- a/src/extension/internal/filter/filter.cpp +++ b/src/extension/internal/filter/filter.cpp @@ -125,17 +125,15 @@ void Filter::effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::Vie //printf("Calling filter effect\n"); Inkscape::Selection * selection = ((SPDesktop *)document)->selection; - using Inkscape::Util::GSListConstIterator; // TODO need to properly refcount the items, at least - std::list items; - items.insert >(items.end(), selection->itemList(), NULL); + SelContainer items(selection->itemList()); Inkscape::XML::Document * xmldoc = document->doc()->getReprDoc(); Inkscape::XML::Node * defsrepr = document->doc()->getDefs()->getRepr(); - for(std::list::iterator item = items.begin(); + for(SelContainer::iterator item = items.begin(); item != items.end(); ++item) { - SPItem * spitem = *item; + SPItem * spitem = static_cast(*item); Inkscape::XML::Node * node = spitem->getRepr(); SPCSSAttr * css = sp_repr_css_attr(node, "style"); diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 270edfe44..4c12f629c 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -192,11 +192,10 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View using Inkscape::Util::GSListConstIterator; - // FIXME very unsafe cast - GSListConstIterator selected = ((SPDesktop *)view)->getSelection()->itemList(); + SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; - if (selected != NULL) { - first_select = (*selected)->getRepr(); + if (!selected.empty()) { + first_select = (selected.front())->getRepr(); } return module->autogui(current_document, first_select, changeSignal); diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index ab0733848..dab27a0e1 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -228,14 +228,14 @@ LaTeXTextRenderer::writePostamble() void LaTeXTextRenderer::sp_group_render(SPGroup *group) { - GSList *l = g_slist_reverse(group->childList(false)); - while (l) { - SPObject *o = reinterpret_cast(l->data); + SelContainer l = (group->childList(false)); + l.reverse(); + for(SelContainer::const_iterator x=l.begin();x!=l.end();x++){ + SPObject *o = reinterpret_cast(*x); SPItem *item = dynamic_cast(o); if (item) { renderItem(item); } - l = g_slist_remove (l, o); } } diff --git a/src/file.cpp b/src/file.cpp index 72516d776..4325c838b 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1063,7 +1063,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) desktop->doc()->importDefs(clipdoc); // copy objects - GSList *pasted_objects = NULL; + std::list pasted_objects; for (Inkscape::XML::Node *obj = root->firstChild() ; obj ; obj = obj->next()) { // Don't copy metadata, defs, named views and internal clipboard contents to the document if (!strcmp(obj->name(), "svg:defs")) { @@ -1082,7 +1082,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) target_parent->appendChild(obj_copy); Inkscape::GC::release(obj_copy); - pasted_objects = g_slist_prepend(pasted_objects, (gpointer) obj_copy); + pasted_objects.push_front(dynamic_cast(obj_copy)); } // Change the selection to the freshly pasted objects @@ -1123,8 +1123,6 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) sp_selection_move_relative(selection, offset); } - - g_slist_free(pasted_objects); } diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index 9298a1ffc..c89cf6220 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -23,9 +23,9 @@ #include "filter-chemistry.h" #include "filter-enums.h" - #include "filters/blend.h" #include "filters/gaussian-blur.h" +#include "selection.h" #include "sp-filter.h" #include "sp-filter-reference.h" #include "svg/css-ostringstream.h" diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index cf75f6cf0..5f1da6cf1 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -1570,8 +1570,9 @@ void sp_gradient_invert_selected_gradients(SPDesktop *desktop, Inkscape::PaintTa { Inkscape::Selection *selection = desktop->getSelection(); - for (GSList const* i = selection->itemList(); i != NULL; i = i->next) { - sp_item_gradient_invert_vector_color(SP_ITEM(i->data), fill_or_stroke); + const SelContainer list=selection->itemList(); + for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + sp_item_gradient_invert_vector_color(SP_ITEM(*i), fill_or_stroke); } // we did an undoable action @@ -1594,9 +1595,10 @@ void sp_gradient_reverse_selected_gradients(SPDesktop *desktop) if (drag && drag->selected) { drag->selected_reverse_vector(); } else { // If no drag or no dragger selected, act on selection (both fill and stroke gradients) - for (GSList const* i = selection->itemList(); i != NULL; i = i->next) { - sp_item_gradient_reverse_vector(SP_ITEM(i->data), Inkscape::FOR_FILL); - sp_item_gradient_reverse_vector(SP_ITEM(i->data), Inkscape::FOR_STROKE); + const SelContainer list=selection->itemList(); + for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_FILL); + sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_STROKE); } } diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 154b7339b..649928060 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2082,9 +2082,9 @@ void GrDrag::updateDraggers() this->draggers = NULL; g_return_if_fail(this->selection != NULL); - - for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer list = this->selection->itemList(); + for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { @@ -2151,9 +2151,9 @@ void GrDrag::updateLines() g_return_if_fail(this->selection != NULL); - for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { - - SPItem *item = SP_ITEM(i->data); + SelContainer list = this->selection->itemList(); + for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; @@ -2295,8 +2295,9 @@ void GrDrag::updateLevels() g_return_if_fail (this->selection != NULL); - for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer list = this->selection->itemList(); + for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + SPItem *item = SP_ITEM(*i); Geom::OptRect rect = item->desktopVisualBounds(); if (rect) { // Remember the edges of the bbox and the center axis diff --git a/src/graphlayout.cpp b/src/graphlayout.cpp index e5d61ab64..613440269 100644 --- a/src/graphlayout.cpp +++ b/src/graphlayout.cpp @@ -88,9 +88,9 @@ struct CheckProgress : TestConvergence { * Scans the items list and places those items that are * not connectors in filtered */ -void filterConnectors(GSList const *const items, list &filtered) { - for(GSList *i=(GSList *)items; i!=NULL; i=i->next) { - SPItem *item=SP_ITEM(i->data); +void filterConnectors(SelContainer const &items, list &filtered) { + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = SP_ITEM(*i); if(!isConnector(item)) { filtered.push_back(item); } @@ -101,8 +101,8 @@ void filterConnectors(GSList const *const items, list &filtered) { * connectors between them, and uses graph layout techniques to find * a nice layout */ -void graphlayout(GSList const *const items) { - if(!items) { +void graphlayout(SelContainer const &items) { + if(items.empty()) { return; } diff --git a/src/graphlayout.h b/src/graphlayout.h index 0ffb645b6..c38f9471c 100644 --- a/src/graphlayout.h +++ b/src/graphlayout.h @@ -19,10 +19,10 @@ typedef struct _GSList GSList; class SPItem; -void graphlayout(GSList const *const items); +void graphlayout(SelContainer const &items); bool isConnector(SPItem const *const item); -void filterConnectors(GSList const *const items, std::list &filtered); +void filterConnectors(SelContainer const &items, std::list &filtered); #endif // SEEN_GRAPHLAYOUT_H diff --git a/src/helper/png-write.cpp b/src/helper/png-write.cpp index 32e50b537..55fef5a4c 100644 --- a/src/helper/png-write.cpp +++ b/src/helper/png-write.cpp @@ -361,19 +361,19 @@ sp_export_get_rows(guchar const **rows, void **to_free, int row, int num_rows, v /** * Hide all items that are not listed in list, recursively, skipping groups and defs. */ -static void hide_other_items_recursively(SPObject *o, GSList *list, unsigned dkey) +static void hide_other_items_recursively(SPObject *o, const SelContainer &list, unsigned dkey) { if ( SP_IS_ITEM(o) && !SP_IS_DEFS(o) && !SP_IS_ROOT(o) && !SP_IS_GROUP(o) - && !g_slist_find(list, o) ) + && list.end()==find(list.begin(),list.end(),o)) { SP_ITEM(o)->invoke_hide(dkey); } // recurse - if (!g_slist_find(list, o)) { + if (list.end()==find(list.begin(),list.end(),o)) { for ( SPObject *child = o->firstChild() ; child; child = child->getNext() ) { hide_other_items_recursively(child, list, dkey); } @@ -387,7 +387,7 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, unsigned long bgcolor, unsigned int (*status) (float, void *), void *data, bool force_overwrite, - GSList *items_only) + const SelContainer &items_only) { return sp_export_png_file(doc, filename, Geom::Rect(Geom::Point(x0,y0),Geom::Point(x1,y1)), width, height, xdpi, ydpi, bgcolor, status, data, force_overwrite, items_only); @@ -399,7 +399,7 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, unsigned long bgcolor, unsigned (*status)(float, void *), void *data, bool force_overwrite, - GSList *items_only) + const SelContainer &items_only) { g_return_val_if_fail(doc != NULL, EXPORT_ERROR); g_return_val_if_fail(filename != NULL, EXPORT_ERROR); @@ -457,7 +457,7 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, // We show all and then hide all items we don't want, instead of showing only requested items, // because that would not work if the shown item references something in defs - if (items_only) { + if (!items_only.empty()) { hide_other_items_recursively(doc->getRoot(), items_only, dkey); } diff --git a/src/helper/png-write.h b/src/helper/png-write.h index 8c04b25dc..47fad1b41 100644 --- a/src/helper/png-write.h +++ b/src/helper/png-write.h @@ -16,6 +16,11 @@ #include #include <2geom/forward.h> + +//should be in selection.h +typedef std::list SelContainer; + + class SPDocument; enum ExportResult { @@ -33,12 +38,12 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, double x0, double y0, double x1, double y1, unsigned long int width, unsigned long int height, double xdpi, double ydpi, unsigned long bgcolor, - unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, GSList *items_only = NULL); + unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const SelContainer &items_only = SelContainer()); ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, Geom::Rect const &area, unsigned long int width, unsigned long int height, double xdpi, double ydpi, unsigned long bgcolor, - unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, GSList *items_only = NULL); + unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const SelContainer &items_only = SelContainer()); #endif // SEEN_SP_PNG_WRITE_H diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index 3876aa24b..95a6b16dd 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -505,9 +505,9 @@ LPEKnot::doEffect_path (std::vector const &path_in) static void collectPathsAndWidths (SPLPEItem const *lpeitem, std::vector &paths, std::vector &stroke_widths){ if (SP_IS_GROUP(lpeitem)) { - GSList const *item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { collectPathsAndWidths(SP_LPE_ITEM(subitem), paths, stroke_widths); } diff --git a/src/main.cpp b/src/main.cpp index 15576109d..25dc91f14 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1156,7 +1156,7 @@ static int sp_process_file_list(GSList *fl) } if (sp_export_svg) { if (sp_export_text_to_path) { - GSList *items = NULL; + SelContainer items; SPRoot *root = doc->getRoot(); doc->ensureUpToDate(); for ( SPObject *iter = root->firstChild(); iter ; iter = iter->getNext()) { @@ -1166,17 +1166,17 @@ static int sp_process_file_list(GSList *fl) } te_update_layout_now_recursive(item); - items = g_slist_append(items, item); + items.push_back(item); } - GSList *selected = NULL; - GSList *to_select = NULL; + SelContainer selected; + SelContainer to_select; - sp_item_list_to_curves(items, &selected, &to_select); + sp_item_list_to_curves(items, selected, to_select); - g_slist_free (items); - g_slist_free (selected); - g_slist_free (to_select); + items.clear(); + selected.clear(); + to_select.clear(); } if(sp_export_id) { doc->ensureUpToDate(); @@ -1435,7 +1435,7 @@ static int sp_do_export_png(SPDocument *doc) g_warning ("--export-use-hints can only be used with --export-id or --export-area-drawing; ignored."); } - GSList *items = NULL; + SelContainer items; Geom::Rect area; if (sp_export_id || sp_export_area_drawing) { @@ -1459,7 +1459,7 @@ static int sp_do_export_png(SPDocument *doc) return 1; } - items = g_slist_prepend (items, SP_ITEM(o)); + items.push_front(SP_ITEM(o)); if (sp_export_id_only) { g_print("Exporting only object with id=\"%s\"; all other objects hidden\n", sp_export_id); @@ -1647,7 +1647,7 @@ static int sp_do_export_png(SPDocument *doc) if ((width >= 1) && (height >= 1) && (width <= PNG_UINT_31_MAX) && (height <= PNG_UINT_31_MAX)) { if( sp_export_png_file(doc, path.c_str(), area, width, height, dpi, - dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : NULL) == 1 ) { + dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : SelContainer()) == 1 ) { g_print("Bitmap saved as: %s\n", filename.c_str()); } else { g_warning("Bitmap failed to save to: %s", filename.c_str()); @@ -1657,7 +1657,6 @@ static int sp_do_export_png(SPDocument *doc) } } - g_slist_free (items); return retcode; } diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 338f91463..960b5087b 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -237,8 +237,9 @@ void Inkscape::ObjectSnapper::_collectNodes(SnapSourceType const &t, // current selection (see the comment in SelTrans::centerRequest()) bool old_pref2 = _snapmanager->snapprefs.isTargetSnappable(SNAPTARGET_ROTATION_CENTER); if (old_pref2) { - for ( GSList const *itemlist = _snapmanager->getRotationCenterSource(); itemlist != NULL; itemlist = g_slist_next(itemlist) ) { - if ((*i).item == reinterpret_cast(itemlist->data)) { + SelContainer rotationSource=_snapmanager->getRotationCenterSource(); + for ( SelContainer::const_iterator itemlist=rotationSource.begin();itemlist!=rotationSource.end();itemlist++) { + if ((*i).item == reinterpret_cast(*itemlist)) { // don't snap to this item's rotation center _snapmanager->snapprefs.setTargetSnappable(SNAPTARGET_ROTATION_CENTER, false); break; diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 5f6e1495b..a5e71b720 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -44,13 +44,22 @@ using Inkscape::DocumentUndo; + +inline bool less_than_objects(SPObject const *first, SPObject const *second) +{ + return sp_repr_compare_position(first->getRepr(), + second->getRepr())<0; +} + void sp_selected_path_combine(SPDesktop *desktop) { Inkscape::Selection *selection = desktop->getSelection(); SPDocument *doc = desktop->getDocument(); + + SelContainer items(selection->itemList()); - if (g_slist_length((GSList *) selection->itemList()) < 1) { + if (items.size() < 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to combine.")); return; } @@ -59,28 +68,26 @@ sp_selected_path_combine(SPDesktop *desktop) // set "busy" cursor desktop->setWaitingCursor(); - GSList *items = g_slist_copy((GSList *) selection->itemList()); - items = sp_degroup_list (items); // descend into any groups in selection - GSList *to_paths = NULL; - for (GSList *i = items; i != NULL; i = i->next) { - SPItem *item = (SPItem *) i->data; + SelContainer to_paths; + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + SPItem *item = (SPItem *) (*i); if (!dynamic_cast(item) && !dynamic_cast(item)) { - to_paths = g_slist_prepend(to_paths, item); + to_paths.push_front(item); } } - GSList *converted = NULL; - bool did = sp_item_list_to_curves(to_paths, &items, &converted); - g_slist_free(to_paths); - for (GSList *i = converted; i != NULL; i = i->next) - items = g_slist_prepend(items, doc->getObjectByRepr((Inkscape::XML::Node*)(i->data))); + SelContainer converted; + bool did = sp_item_list_to_curves(to_paths, items, converted); + to_paths.clear(); + for (SelContainer::const_iterator i=converted.begin();i!=converted.end();i++) + items.push_front(doc->getObjectByRepr((Inkscape::XML::Node*)(*i))); items = sp_degroup_list (items); // converting to path may have added more groups, descend again - items = g_slist_sort(items, (GCompareFunc) sp_item_repr_compare_position); - items = g_slist_reverse(items); - assert(items); // cannot be NULL because of list length check at top of function + items.sort(less_than_objects); + items.reverse(); + assert(!items.empty()); // cannot be NULL because of list length check at top of function // remember the position, id, transform and style of the topmost path, they will be assigned to the combined one gint position = 0; @@ -97,9 +104,9 @@ sp_selected_path_combine(SPDesktop *desktop) selection->clear(); } - for (GSList *i = items; i != NULL; i = i->next) { // going from top to bottom + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = (SPItem *) i->data; + SPItem *item = (SPItem *) (*i); SPPath *path = dynamic_cast(item); if (!path) { continue; @@ -136,7 +143,6 @@ sp_selected_path_combine(SPDesktop *desktop) } } - g_slist_free(items); if (did) { first->deleteObject(false); @@ -200,11 +206,10 @@ sp_selected_path_break_apart(SPDesktop *desktop) bool did = false; - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { + SelContainer itemlist(selection->itemList()); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = (SPItem *) items->data; + SPItem *item = (SPItem *) (*i); SPPath *path = dynamic_cast(item); if (!path) { @@ -241,7 +246,7 @@ sp_selected_path_break_apart(SPDesktop *desktop) curve->unref(); - GSList *reprs = NULL; + SelContainer reprs; for (GSList *l = list; l != NULL; l = l->next) { curve = (SPCurve *) l->data; @@ -267,14 +272,14 @@ sp_selected_path_break_apart(SPDesktop *desktop) if (l == list) repr->setAttribute("id", id); - reprs = g_slist_prepend (reprs, repr); + reprs.push_front(dynamic_cast(repr)); Inkscape::GC::release(repr); } selection->setReprList(reprs); - g_slist_free(reprs); + reprs.clear(); g_slist_free(list); g_free(style); g_free(path_effect); @@ -307,18 +312,18 @@ sp_selected_path_to_curves(Inkscape::Selection *selection, SPDesktop *desktop, b desktop->setWaitingCursor(); } - GSList *selected = g_slist_copy((GSList *) selection->itemList()); - GSList *to_select = NULL; + SelContainer selected(selection->itemList()); + SelContainer to_select; selection->clear(); - GSList *items = g_slist_copy(selected); + SelContainer items(selected); - did = sp_item_list_to_curves(items, &selected, &to_select); + did = sp_item_list_to_curves(items, selected, to_select); - g_slist_free (items); + items.clear(); selection->setReprList(to_select); selection->addList(selected); - g_slist_free (to_select); - g_slist_free (selected); + to_select.clear(); + selected.clear(); if (interactive && desktop) { desktop->clearWaitingCursor(); @@ -341,33 +346,29 @@ void sp_selected_to_lpeitems(SPDesktop *desktop) return; } - GSList *selected = g_slist_copy((GSList *) selection->itemList()); - GSList *to_select = NULL; + SelContainer selected(selection->itemList()); + SelContainer to_select; selection->clear(); - GSList *items = g_slist_copy(selected); + SelContainer items(selected); + - sp_item_list_to_curves(items, &selected, &to_select, true); + sp_item_list_to_curves(items, selected, to_select, true); - g_slist_free(items); - items = 0; + items.clear(); selection->setReprList(to_select); selection->addList(selected); - g_slist_free(to_select); - to_select = 0; - g_slist_free(selected); - selected = 0; + to_select.clear(); + selected.clear(); } bool -sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select, bool skip_all_lpeitems) +sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelContainer &to_select, bool skip_all_lpeitems) { bool did = false; - for (; - items != NULL; - items = items->next) { + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = dynamic_cast(static_cast(items->data)); + SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); SPDocument *document = item->document; @@ -398,9 +399,9 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec Inkscape::XML::Node *repr = box3d_convert_to_group(box)->getRepr(); if (repr) { - *to_select = g_slist_prepend (*to_select, repr); + to_select.push_front(dynamic_cast(repr)); did = true; - *selected = g_slist_remove (*selected, item); + selected.remove(item); } continue; @@ -408,17 +409,17 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec if (group) { group->removeAllPathEffects(true); - GSList *item_list = sp_item_group_item_list(group); + SelContainer item_list = sp_item_group_item_list(group); - GSList *item_to_select = NULL; - GSList *item_selected = NULL; + SelContainer item_to_select; + SelContainer item_selected; - if (sp_item_list_to_curves(item_list, &item_selected, &item_to_select)) + if (sp_item_list_to_curves(item_list, item_selected, item_to_select)) did = true; - g_slist_free(item_list); - g_slist_free(item_to_select); - g_slist_free(item_selected); + item_list.clear(); + item_to_select.clear(); + item_selected.clear(); continue; } @@ -428,7 +429,7 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec continue; did = true; - *selected = g_slist_remove (*selected, item); + selected.remove(item); // remember the position of the item gint pos = item->getRepr()->position(); @@ -470,7 +471,7 @@ sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_selec /* Buglet: We don't re-add the (new version of the) object to the selection of any other * desktops where it was previously selected. */ - *to_select = g_slist_prepend (*to_select, repr); + to_select.push_front(dynamic_cast(repr)); Inkscape::GC::release(repr); } @@ -612,9 +613,9 @@ void sp_selected_path_reverse(SPDesktop *desktop) { Inkscape::Selection *selection = desktop->getSelection(); - GSList *items = (GSList *) selection->itemList(); + SelContainer items = selection->itemList(); - if (!items) { + if (items.empty()) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select path(s) to reverse.")); return; } @@ -626,9 +627,9 @@ sp_selected_path_reverse(SPDesktop *desktop) bool did = false; desktop->messageStack()->flash(Inkscape::IMMEDIATE_MESSAGE, _("Reversing paths...")); - for (GSList *i = items; i != NULL; i = i->next) { + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ - SPPath *path = dynamic_cast(static_cast(i->data)); + SPPath *path = dynamic_cast(static_cast(*i)); if (!path) { continue; } diff --git a/src/path-chemistry.h b/src/path-chemistry.h index a2150440c..388268af4 100644 --- a/src/path-chemistry.h +++ b/src/path-chemistry.h @@ -33,7 +33,7 @@ void sp_selected_path_to_curves (Inkscape::Selection *selection, SPDesktop *desk void sp_selected_to_lpeitems(SPDesktop *desktop); Inkscape::XML::Node *sp_selected_item_to_curved_repr(SPItem *item, guint32 text_grouping_policy); void sp_selected_path_reverse (SPDesktop *desktop); -bool sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select, bool skip_all_lpeitems = false); +bool sp_item_list_to_curves(const SelContainer &items, SelContainer &selected, SelContainer &to_select, bool skip_all_lpeitems = false); #endif // SEEN_PATH_CHEMISTRY_H diff --git a/src/removeoverlap.cpp b/src/removeoverlap.cpp index ba5740e55..9009de5e9 100644 --- a/src/removeoverlap.cpp +++ b/src/removeoverlap.cpp @@ -38,20 +38,20 @@ namespace { * such that rectangular bounding boxes are separated by at least xGap * horizontally and yGap vertically */ -void removeoverlap(GSList const *const items, double const xGap, double const yGap) { +void removeoverlap(SelContainer const &items, double const xGap, double const yGap) { using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), items, NULL); + SelContainer selected(items); std::vector records; std::vector rs; Geom::Point const gap(xGap, yGap); - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { + SPItem* item=static_cast(*it); using Geom::X; using Geom::Y; - Geom::OptRect item_box((*it)->desktopVisualBounds()); + Geom::OptRect item_box((item)->desktopVisualBounds()); if (item_box) { Geom::Point min(item_box->min() - .5*gap); Geom::Point max(item_box->max() + .5*gap); @@ -67,7 +67,7 @@ void removeoverlap(GSList const *const items, double const xGap, double const yG min[Y] = max[Y] = (min[Y] + max[Y])/2; } Rectangle *vspc_rect = new Rectangle(min[X], max[X], min[Y], max[Y]); - records.push_back(Record(*it, item_box->midpoint(), vspc_rect)); + records.push_back(Record(item, item_box->midpoint(), vspc_rect)); rs.push_back(vspc_rect); } } diff --git a/src/removeoverlap.h b/src/removeoverlap.h index 7109c9513..d050ca9ef 100644 --- a/src/removeoverlap.h +++ b/src/removeoverlap.h @@ -15,6 +15,6 @@ typedef struct _GSList GSList; -void removeoverlap(GSList const *items, double xGap, double yGap); +void removeoverlap(SelContainer const &items, double xGap, double yGap); #endif // SEEN_REMOVEOVERLAP_H diff --git a/src/selcue.cpp b/src/selcue.cpp index d2fa0970a..0fab6e5a8 100644 --- a/src/selcue.cpp +++ b/src/selcue.cpp @@ -96,15 +96,16 @@ void Inkscape::SelCue::_updateItemBboxes(Inkscape::Preferences *prefs) void Inkscape::SelCue::_updateItemBboxes(gint mode, int prefs_bbox) { - GSList const *items = _selection->itemList(); - if (_item_bboxes.size() != g_slist_length((GSList *) items)) { + const SelContainer items = _selection->itemList(); + if (_item_bboxes.size() != items.size()) { _newItemBboxes(); return; } int bcount = 0; - for (GSList const *l = _selection->itemList(); l != NULL; l = l->next) { - SPItem *item = static_cast(l->data); + SelContainer ll=_selection->itemList(); + for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + SPItem *item = static_cast(*l); SPCanvasItem* box = _item_bboxes[bcount ++]; if (box) { @@ -145,8 +146,9 @@ void Inkscape::SelCue::_newItemBboxes() int prefs_bbox = prefs->getBool("/tools/bounding_box"); - for (GSList const *l = _selection->itemList(); l != NULL; l = l->next) { - SPItem *item = static_cast(l->data); + SelContainer ll=_selection->itemList(); + for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + SPItem *item = static_cast(*l); Geom::OptRect const b = (prefs_bbox == 0) ? item->desktopVisualBounds() : item->desktopGeometricBounds(); @@ -199,8 +201,9 @@ void Inkscape::SelCue::_newTextBaselines() } _text_baselines.clear(); - for (GSList const *l = _selection->itemList(); l != NULL; l = l->next) { - SPItem *item = static_cast(l->data); + SelContainer ll=_selection->itemList(); + for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + SPItem *item = static_cast(*l); SPCanvasItem* baseline_point = NULL; if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) { // visualize baseline diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index c9837aabe..f20df1594 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -279,25 +279,23 @@ void SelectionHelper::fixSelection(SPDesktop *dt) Inkscape::Selection *selection = dt->getSelection(); - GSList *items = NULL; + SelContainer items ; - GSList const *selList = selection->itemList(); + SelContainer const selList = selection->itemList(); - for( GSList const *i = selList; i; i = i->next ) { - SPItem *item = dynamic_cast(static_cast(i->data)); + for( SelContainer::const_iterator i=selList.begin();i!=selList.end();i++ ) { + SPItem *item = dynamic_cast(static_cast(*i)); if( item && !dt->isLayer(item) && (!item->isLocked())) { - items = g_slist_prepend(items, item); + items.push_front(item); } } selection->setList(items); - if(items) { - g_slist_free(items); - } + items.clear(); } } // namespace Inkscape @@ -307,7 +305,7 @@ void SelectionHelper::fixSelection(SPDesktop *dt) * Copies repr and its inherited css style elements, along with the accumulated transform 'full_t', * then prepends the copy to 'clip'. */ -static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, GSList **clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, SelContainer &clip, Inkscape::XML::Document* xml_doc) { Inkscape::XML::Node *copy = repr->duplicate(xml_doc); @@ -323,18 +321,18 @@ static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t copy->setAttribute("transform", affinestr); g_free(affinestr); - *clip = g_slist_prepend(*clip, copy); + clip.push_front(dynamic_cast(copy)); } -static void sp_selection_copy_impl(GSList const *items, GSList **clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_impl(SelContainer const &items, SelContainer &clip, Inkscape::XML::Document* xml_doc) { // Sort items: - GSList *sorted_items = g_slist_copy(const_cast(items)); - sorted_items = g_slist_sort(static_cast(sorted_items), (GCompareFunc) sp_object_compare_position); + SelContainer sorted_items(items); + sorted_items.sort(sp_object_compare_position); // Copy item reprs: - for (GSList *i = sorted_items; i != NULL; i = i->next) { - SPItem *item = dynamic_cast(SP_OBJECT(i->data)); + for (SelContainer::const_iterator i = sorted_items.begin();i!=sorted_items.end();i++) { + SPItem *item = dynamic_cast(SP_OBJECT(*i)); if (item) { sp_selection_copy_one(item->getRepr(), item->i2doc_affine(), clip, xml_doc); } else { @@ -342,22 +340,22 @@ static void sp_selection_copy_impl(GSList const *items, GSList **clip, Inkscape: } } - *clip = g_slist_reverse(*clip); - g_slist_free(static_cast(sorted_items)); + clip.reverse(); + sorted_items.clear(); } // TODO check if parent parameter should be changed to SPItem, of if the code should handle non-items. -static GSList *sp_selection_paste_impl(SPDocument *doc, SPObject *parent, GSList **clip) +static SelContainer sp_selection_paste_impl(SPDocument *doc, SPObject *parent, SelContainer &clip) { Inkscape::XML::Document *xml_doc = doc->getReprDoc(); SPItem *parentItem = dynamic_cast(parent); g_assert(parentItem != NULL); - GSList *copied = NULL; + SelContainer copied; // add objects to document - for (GSList *l = *clip; l != NULL; l = l->next) { - Inkscape::XML::Node *repr = static_cast(l->data); + for (SelContainer::const_iterator l=clip.begin();l!=clip.end();l++) { + Inkscape::XML::Node *repr = dynamic_cast(*l); Inkscape::XML::Node *copy = repr->duplicate(xml_doc); // premultiply the item transform by the accumulated parent transform in the paste layer @@ -375,19 +373,19 @@ static GSList *sp_selection_paste_impl(SPDocument *doc, SPObject *parent, GSList } parent->appendChildRepr(copy); - copied = g_slist_prepend(copied, copy); + copied.push_front(dynamic_cast(copy)); Inkscape::GC::release(copy); } return copied; } -static void sp_selection_delete_impl(GSList const *items, bool propagate = true, bool propagate_descendants = true) +static void sp_selection_delete_impl(SelContainer const &items, bool propagate = true, bool propagate_descendants = true) { - for (GSList const *i = items ; i ; i = i->next ) { - sp_object_ref(static_cast(i->data), NULL); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + sp_object_ref(static_cast(*i), NULL); } - for (GSList const *i = items; i != NULL; i = i->next) { - SPItem *item = static_cast(i->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + SPItem *item = static_cast(*i); item->deleteObject(propagate, propagate_descendants); sp_object_unref(item, NULL); } @@ -414,11 +412,10 @@ void sp_selection_delete(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Nothing was deleted.")); return; } - - GSList *selected = g_slist_copy(const_cast(selection->itemList())); + SelContainer selected(selection->itemList()); selection->clear(); sp_selection_delete_impl(selected); - g_slist_free(selected); + selected.clear(); desktop->currentLayer()->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); /* a tool may have set up private information in it's selection context @@ -446,6 +443,10 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) } } +bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b){ + return sp_repr_compare_position(dynamic_cast(a),dynamic_cast(b)); +} + void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) { if (desktop == NULL) { @@ -461,16 +462,15 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to duplicate.")); return; } - - GSList *reprs = g_slist_copy(const_cast(selection->reprList())); + SelContainer reprs(selection->reprList()); selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing // them, just what we need - reprs = g_slist_sort(reprs, (GCompareFunc) sp_repr_compare_position); + reprs.sort(sp_repr_compare_position_obj); - GSList *newsel = NULL; + SelContainer newsel; std::vector old_ids; std::vector new_ids; @@ -478,8 +478,8 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) bool relink_clones = prefs->getBool("/options/relinkclonesonduplicate/value"); const bool fork_livepatheffects = prefs->getBool("/options/forklpeonduplicate/value", true); - while (reprs) { - Inkscape::XML::Node *old_repr = static_cast(reprs->data); + while (!reprs.empty()) { + Inkscape::XML::Node *old_repr = dynamic_cast(reprs.front()); Inkscape::XML::Node *parent = old_repr->parent(); Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); @@ -500,8 +500,8 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) } } - newsel = g_slist_prepend(newsel, copy); - reprs = g_slist_remove(reprs, reprs->data); + newsel.push_front(dynamic_cast(copy)); + reprs.pop_front(); Inkscape::GC::release(copy); } @@ -548,7 +548,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) selection->setReprList(newsel); - g_slist_free(newsel); + newsel.clear(); } void sp_edit_clear_all(Inkscape::Selection *selection) @@ -561,11 +561,11 @@ void sp_edit_clear_all(Inkscape::Selection *selection) SPGroup *group = dynamic_cast(selection->layers()->currentLayer()); g_return_if_fail(group != NULL); - GSList *items = sp_item_group_item_list(group); + SelContainer items = sp_item_group_item_list(group); - while (items) { - reinterpret_cast(items->data)->deleteObject(); - items = g_slist_remove(items, items->data); + while (!items.empty()) { + reinterpret_cast(items.front())->deleteObject(); + items.pop_front(); } DocumentUndo::done(doc, SP_VERB_EDIT_CLEAR_ALL, @@ -582,7 +582,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) * onlysensitive - TRUE includes only non-locked items * ingroups - TRUE to recursively get grouped items children */ -GSList *get_all_items(GSList *list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, GSList const *exclude) +SelContainer &get_all_items(SelContainer &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, SelContainer const &exclude) { for ( SPObject *child = from->firstChild() ; child; child = child->getNext() ) { SPItem *item = dynamic_cast(child); @@ -590,10 +590,10 @@ GSList *get_all_items(GSList *list, SPObject *from, SPDesktop *desktop, bool onl !desktop->isLayer(item) && (!onlysensitive || !item->isLocked()) && (!onlyvisible || !desktop->itemIsHidden(item)) && - (!exclude || !g_slist_find(const_cast(exclude), child)) + (exclude.empty() || exclude.end() == std::find(exclude.begin(),exclude.end(),child)) ) { - list = g_slist_prepend(list, item); + list.push_front(item); } if (ingroups || (item && desktop->isLayer(item))) { @@ -618,9 +618,9 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); - GSList *items = NULL; + SelContainer items ; - GSList const *exclude = NULL; + SelContainer exclude; if (invert) { exclude = selection->itemList(); } @@ -634,39 +634,41 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i (onlyvisible && dt->itemIsHidden(dynamic_cast(dt->currentLayer()))) ) return; - GSList *all_items = sp_item_group_item_list(dynamic_cast(dt->currentLayer())); + SelContainer all_items = sp_item_group_item_list(dynamic_cast(dt->currentLayer())); - for (GSList *i = all_items; i; i = i->next) { - SPItem *item = dynamic_cast(static_cast(i->data)); + for (SelContainer::const_iterator i=all_items.begin();i!=all_items.end();i++) { + SPItem *item = dynamic_cast(static_cast(*i)); if (item && (!onlysensitive || !item->isLocked())) { if (!onlyvisible || !dt->itemIsHidden(item)) { if (!dt->isLayer(item)) { - if (!invert || !g_slist_find(const_cast(exclude), item)) { - items = g_slist_prepend(items, item); // leave it in the list + if (!invert || exclude.end() == std::find(exclude.begin(),exclude.end(),item)) { + items.push_front(item); // leave it in the list } } } } } - g_slist_free(all_items); + all_items.clear(); break; } case PREFS_SELECTION_LAYER_RECURSIVE: { - items = get_all_items(NULL, dt->currentLayer(), dt, onlyvisible, onlysensitive, FALSE, exclude); + SelContainer x; + items = get_all_items(x, dt->currentLayer(), dt, onlyvisible, onlysensitive, FALSE, exclude); break; } default: { - items = get_all_items(NULL, dt->currentRoot(), dt, onlyvisible, onlysensitive, FALSE, exclude); + SelContainer x; + items = get_all_items(x, dt->currentRoot(), dt, onlyvisible, onlysensitive, FALSE, exclude); break; } } selection->setList(items); - if (items) { - g_slist_free(items); + if (!items.empty()) { + items.clear(); } } @@ -690,16 +692,16 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop) sp_edit_select_all_full(desktop, true, true); } -static void sp_selection_group_impl(GSList *p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { +static void sp_selection_group_impl(SelContainer p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { - p = g_slist_sort(p, (GCompareFunc) sp_repr_compare_position); + p.sort(sp_repr_compare_position_obj); // Remember the position and parent of the topmost object. - gint topmost = (static_cast(g_slist_last(p)->data))->position(); - Inkscape::XML::Node *topmost_parent = (static_cast(g_slist_last(p)->data))->parent(); + gint topmost = (dynamic_cast(p.back()))->position(); + Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); - while (p) { - Inkscape::XML::Node *current = static_cast(p->data); + while (!p.empty()) { + Inkscape::XML::Node *current = dynamic_cast(p.front()); if (current->parent() == topmost_parent) { Inkscape::XML::Node *spnew = current->duplicate(xml_doc); @@ -708,7 +710,7 @@ static void sp_selection_group_impl(GSList *p, Inkscape::XML::Node *group, Inksc Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - GSList *temp_clip = NULL; + SelContainer temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -724,15 +726,15 @@ static void sp_selection_group_impl(GSList *p, Inkscape::XML::Node *group, Inksc // then, if this is clone, looking up its original in that array and pre-multiplying // it by the inverse of that original's transform diff. - sp_selection_copy_one(current, item_t, &temp_clip, xml_doc); + sp_selection_copy_one(current, item_t, temp_clip, xml_doc); sp_repr_unparent(current); // paste into topmost_parent (temporarily) - GSList *copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), &temp_clip); - if (temp_clip) g_slist_free(temp_clip); - if (copied) { // if success, + SelContainer copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); + if (!temp_clip.empty())temp_clip.clear() ; + if (!copied.empty()) { // if success, // take pasted object (now in topmost_parent) - Inkscape::XML::Node *in_topmost = static_cast(copied->data); + Inkscape::XML::Node *in_topmost = dynamic_cast(copied.front()); // make a copy Inkscape::XML::Node *spnew = in_topmost->duplicate(xml_doc); // remove pasted @@ -740,10 +742,10 @@ static void sp_selection_group_impl(GSList *p, Inkscape::XML::Node *group, Inksc // put its copy into group group->appendChild(spnew); Inkscape::GC::release(spnew); - g_slist_free(copied); + copied.clear(); } } - p = g_slist_remove(p, current); + p.pop_front(); } // Add the new group to the topmost members' parent @@ -764,9 +766,7 @@ void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) return; } - GSList const *l = const_cast(selection->reprList()); - - GSList *p = g_slist_copy(const_cast(l)); + SelContainer p (selection->reprList()); selection->clear(); @@ -802,11 +802,11 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } // first check whether there is anything to ungroup - GSList *old_select = const_cast(selection->itemList()); - GSList *new_select = NULL; + SelContainer old_select = selection->itemList(); + SelContainer new_select; GSList *groups = NULL; - for (GSList *item = old_select; item; item = item->next) { - SPItem *obj = static_cast(item->data); + for (SelContainer::const_iterator item = old_select.begin(); item!=old_select.end(); item++) { + SPItem *obj = static_cast(*item); if (dynamic_cast(obj)) { groups = g_slist_prepend(groups, obj); } @@ -818,14 +818,14 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) return; } - GSList *items = g_slist_copy(old_select); + SelContainer items(old_select); selection->clear(); // If any of the clones refer to the groups, unlink them and replace them with successors // in the items list. GSList *clones_to_unlink = NULL; - for (GSList *item = items; item; item = item->next) { - SPUse *use = dynamic_cast(static_cast(item->data)); + for (SelContainer::const_iterator item = items.begin(); item!=items.end(); item++) { + SPUse *use = dynamic_cast(static_cast(*item)); SPItem *original = use; while (dynamic_cast(original)) { @@ -833,7 +833,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } if (g_slist_find(groups, original) != NULL) { - clones_to_unlink = g_slist_prepend(clones_to_unlink, item->data); + clones_to_unlink = g_slist_prepend(clones_to_unlink, *item); } } @@ -844,57 +844,57 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) for (GSList *item = clones_to_unlink; item; item = item->next) { SPUse *use = static_cast(item->data); - GSList *items_node = g_slist_find(items, item->data); - items_node->data = use->unlink(); + SelContainer::iterator items_node = std::find(items.begin(),items.end(), item->data); + (*items_node) = use->unlink(); } g_slist_free(clones_to_unlink); // do the actual work - for (GSList *item = items; item; item = item->next) { - SPItem *obj = static_cast(item->data); + for (SelContainer::iterator item = items.begin(); item!=items.end(); item++) { + SPItem *obj = static_cast(*item); // ungroup only the groups marked earlier - if (g_slist_find(groups, item->data) != NULL) { - GSList *children = NULL; - sp_item_group_ungroup(dynamic_cast(obj), &children, false); + if (g_slist_find(groups, *item) != NULL) { + SelContainer children; + sp_item_group_ungroup(dynamic_cast(obj), children, false); // add the items resulting from ungrouping to the selection - new_select = g_slist_concat(new_select, children); - item->data = NULL; // zero out the original pointer, which is no longer valid + new_select.splice(new_select.end(),children); + (*item) = NULL; // zero out the original pointer, which is no longer valid } else { // if not a group, keep in the selection - new_select = g_slist_append(new_select, item->data); + new_select.push_back(*item); } } selection->addList(new_select); - g_slist_free(new_select); - g_slist_free(items); + new_select.clear(); + items.clear(); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP, _("Ungroup")); } /** Replace all groups in the list with their member objects, recursively; returns a new list, frees old */ -GSList * -sp_degroup_list(GSList *items) +SelContainer +sp_degroup_list(SelContainer &items) { - GSList *out = NULL; + SelContainer out; bool has_groups = false; - for (GSList *item = items; item; item = item->next) { - SPGroup *group = dynamic_cast(static_cast(item->data)); + for (SelContainer::const_iterator item=items.begin();item!=items.end();item++) { + SPGroup *group = dynamic_cast(static_cast(*item)); if (!group) { - out = g_slist_prepend(out, item->data); + out.push_front(*item); } else { has_groups = true; - GSList *members = sp_item_group_item_list(group); - for (GSList *member = members; member; member = member->next) { - out = g_slist_prepend(out, member->data); + SelContainer members = sp_item_group_item_list(group); + for (SelContainer::const_iterator member=members.begin();member!=members.end();member++) { + out.push_front(*member); } - g_slist_free(members); + members.clear(); } } - out = g_slist_reverse(out); - g_slist_free(items); + out.reverse(); + items.clear(); if (has_groups) { // recurse if we unwrapped a group - it may have contained others out = sp_degroup_list(out); @@ -906,18 +906,19 @@ sp_degroup_list(GSList *items) /** If items in the list have a common parent, return it, otherwise return NULL */ static SPGroup * -sp_item_list_common_parent_group(GSList const *items) +sp_item_list_common_parent_group(SelContainer const items) { - if (!items) { + if (items.empty()) { return NULL; } - SPObject *parent = SP_OBJECT(items->data)->parent; + SPObject *parent = SP_OBJECT(items.front())->parent; // Strictly speaking this CAN happen, if user selects from Inkscape::XML editor if (!dynamic_cast(parent)) { return NULL; } - for (items = items->next; items; items = items->next) { - if (SP_OBJECT(items->data)->parent != parent) { + for (SelContainer::const_iterator item=items.begin();item!=items.end();item++) { + if((*item)==items.front())continue; + if (SP_OBJECT(*item)->parent != parent) { return NULL; } } @@ -927,13 +928,13 @@ sp_item_list_common_parent_group(GSList const *items) /** Finds out the minimum common bbox of the selected items. */ static Geom::OptRect -enclose_items(GSList const *items) +enclose_items(SelContainer const &items) { - g_assert(items != NULL); + g_assert(!items.empty()); Geom::OptRect r; - for (GSList const *i = items; i; i = i->next) { - r.unionWith(static_cast(i->data)->desktopVisualBounds()); + for (SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + r.unionWith(static_cast(*i)->desktopVisualBounds()); } return r; } @@ -948,11 +949,17 @@ static SPObject *prev_sibling(SPObject *child) return prev; } +int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) +{ + return sp_repr_compare_position(((SPItem*)first)->getRepr(), + ((SPItem*)second)->getRepr())<0; +} + void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) { - GSList const *items = const_cast(selection->itemList()); - if (!items) { + SelContainer items= selection->itemList(); + if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); return; } @@ -966,16 +973,16 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) Inkscape::XML::Node *grepr = const_cast(group->getRepr()); /* Construct reverse-ordered list of selected children. */ - GSList *rev = g_slist_copy(const_cast(items)); - rev = g_slist_sort(rev, (GCompareFunc) sp_item_repr_compare_position); + SelContainer rev(items); + rev.sort(sp_item_repr_compare_position_obj); // Determine the common bbox of the selected items. Geom::OptRect selected = enclose_items(items); // Iterate over all objects in the selection (starting from top). if (selected) { - while (rev) { - SPObject *child = reinterpret_cast(rev->data); + while (!rev.empty()) { + SPObject *child = reinterpret_cast(rev.front()); // for each selected object, find the next sibling for (SPObject *newref = child->next; newref; newref = newref->next) { // if the sibling is an item AND overlaps our selection, @@ -984,7 +991,7 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) Geom::OptRect newref_bbox = newItem->desktopVisualBounds(); if ( newref_bbox && selected->intersects(*newref_bbox) ) { // AND if it's not one of our selected objects, - if (!g_slist_find(const_cast(items), newref)) { + if ( std::find(items.begin(),items.end(),newref)==items.end()) { // move the selected object after that sibling grepr->changeOrder(child->getRepr(), newref->getRepr()); } @@ -992,10 +999,10 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) } } } - rev = g_slist_remove(rev, child); + rev.pop_front(); } } else { - g_slist_free(rev); + rev.clear(); } DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE, @@ -1012,7 +1019,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - GSList const *items = const_cast(selection->itemList()); + SelContainer items = selection->itemList(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1020,15 +1027,15 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - GSList *rl = g_slist_copy(const_cast(selection->reprList())); - rl = g_slist_sort(rl, (GCompareFunc) sp_repr_compare_position); + SelContainer rl(selection->reprList()); + rl.sort(sp_repr_compare_position_obj); - for (GSList *l = rl; l != NULL; l = l->next) { - Inkscape::XML::Node *repr = static_cast(l->data); + for (SelContainer::iterator l=rl.begin(); l!=rl.end();l++) { + Inkscape::XML::Node *repr = dynamic_cast(*l); repr->setPosition(-1); } - g_slist_free(rl); + rl.clear(); DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT, _("Raise to top")); @@ -1036,8 +1043,8 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) { - GSList const *items = const_cast(selection->itemList()); - if (!items) { + SelContainer items = selection->itemList(); + if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); return; } @@ -1054,14 +1061,14 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) Geom::OptRect selected = enclose_items(items); /* Construct direct-ordered list of selected children. */ - GSList *rev = g_slist_copy(const_cast(items)); - rev = g_slist_sort(rev, (GCompareFunc) sp_item_repr_compare_position); - rev = g_slist_reverse(rev); + SelContainer rev(items); + rev.sort(sp_item_repr_compare_position_obj); + rev.reverse(); // Iterate over all objects in the selection (starting from top). if (selected) { - while (rev) { - SPObject *child = reinterpret_cast(rev->data); + while (!rev.empty()) { + SPObject *child = reinterpret_cast(rev.front()); // for each selected object, find the prev sibling for (SPObject *newref = prev_sibling(child); newref; newref = prev_sibling(newref)) { // if the sibling is an item AND overlaps our selection, @@ -1070,7 +1077,7 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) Geom::OptRect ref_bbox = newItem->desktopVisualBounds(); if ( ref_bbox && selected->intersects(*ref_bbox) ) { // AND if it's not one of our selected objects, - if (!g_slist_find(const_cast(items), newref)) { + if (items.end()==std::find(items.begin(),items.end(),newref)) { // move the selected object before that sibling SPObject *put_after = prev_sibling(newref); if (put_after) @@ -1082,10 +1089,10 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) } } } - rev = g_slist_remove(rev, child); + rev.pop_front(); } } else { - g_slist_free(rev); + rev.clear(); } DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER, @@ -1102,7 +1109,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - GSList const *items = const_cast(selection->itemList()); + SelContainer items =selection->itemList(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1110,15 +1117,14 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - GSList *rl; - rl = g_slist_copy(const_cast(selection->reprList())); - rl = g_slist_sort(rl, (GCompareFunc) sp_repr_compare_position); - rl = g_slist_reverse(rl); + SelContainer rl(selection->reprList()); + rl.sort(sp_repr_compare_position_obj); + rl.reverse(); - for (GSList *l = rl; l != NULL; l = l->next) { + for (SelContainer::const_iterator l=rl.begin();l!=rl.end();l++) { gint minpos; SPObject *pp, *pc; - Inkscape::XML::Node *repr = static_cast(l->data); + Inkscape::XML::Node *repr = dynamic_cast(*l); pp = document->getObjectByRepr(repr->parent()); minpos = 0; g_assert(dynamic_cast(pp)); @@ -1130,7 +1136,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des repr->setPosition(minpos); } - g_slist_free(rl); + rl.clear(); DocumentUndo::done(document, SP_VERB_SELECTION_TO_BACK, _("Lower to bottom")); @@ -1269,9 +1275,9 @@ void sp_selection_remove_livepatheffect(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to remove live path effects from.")); return; } - - for ( GSList const *itemlist = selection->itemList(); itemlist != NULL; itemlist = g_slist_next(itemlist) ) { - SPItem *item = reinterpret_cast(itemlist->data); + SelContainer list=selection->itemList(); + for ( SelContainer::const_iterator itemlist=list.begin();itemlist!=list.end();itemlist++) { + SPItem *item = reinterpret_cast(*itemlist); sp_selection_remove_livepatheffect_impl(item); @@ -1331,25 +1337,25 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) return; } - GSList const *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); bool no_more = false; // Set to true, if no more layers above SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { - GSList *temp_clip = NULL; - sp_selection_copy_impl(items, &temp_clip, dt->doc()->getReprDoc()); + SelContainer temp_clip; + sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); sp_selection_delete_impl(items, false, false); next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers - GSList *copied; + SelContainer copied; if (next) { - copied = sp_selection_paste_impl(dt->getDocument(), next, &temp_clip); + copied = sp_selection_paste_impl(dt->getDocument(), next, temp_clip); } else { - copied = sp_selection_paste_impl(dt->getDocument(), dt->currentLayer(), &temp_clip); + copied = sp_selection_paste_impl(dt->getDocument(), dt->currentLayer(), temp_clip); no_more = true; } - selection->setReprList((GSList const *) copied); - g_slist_free(copied); - if (temp_clip) g_slist_free(temp_clip); + selection->setReprList(copied); + copied.clear(); + if (!temp_clip.empty()) temp_clip.clear(); if (next) dt->setCurrentLayer(next); if ( !suppressDone ) { DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_MOVE_TO_NEXT, @@ -1363,7 +1369,7 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No more layers above.")); } - g_slist_free(const_cast(items)); + items.clear(); } void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) @@ -1376,25 +1382,25 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) return; } - GSList const *items = g_slist_copy(const_cast(selection->itemList())); + const SelContainer items(selection->itemList()); bool no_more = false; // Set to true, if no more layers below SPObject *next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (next) { - GSList *temp_clip = NULL; - sp_selection_copy_impl(items, &temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs + SelContainer temp_clip; + sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers - GSList *copied; + SelContainer copied; if (next) { - copied = sp_selection_paste_impl(dt->getDocument(), next, &temp_clip); + copied = sp_selection_paste_impl(dt->getDocument(), next, temp_clip); } else { - copied = sp_selection_paste_impl(dt->getDocument(), dt->currentLayer(), &temp_clip); + copied = sp_selection_paste_impl(dt->getDocument(), dt->currentLayer(), temp_clip); no_more = true; } - selection->setReprList((GSList const *) copied); - g_slist_free(copied); - if (temp_clip) g_slist_free(temp_clip); + selection->setReprList( copied); + copied.clear(); + if (!temp_clip.empty()) temp_clip.clear(); if (next) dt->setCurrentLayer(next); if ( !suppressDone ) { DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_MOVE_TO_PREV, @@ -1407,8 +1413,6 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) if (no_more) { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No more layers below.")); } - - g_slist_free(const_cast(items)); } void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) @@ -1421,24 +1425,22 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) return; } - GSList const *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); if (moveto) { - GSList *temp_clip = NULL; - sp_selection_copy_impl(items, &temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs + SelContainer temp_clip; + sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); - GSList *copied = sp_selection_paste_impl(dt->getDocument(), moveto, &temp_clip); - selection->setReprList((GSList const *) copied); - g_slist_free(copied); - if (temp_clip) g_slist_free(temp_clip); + SelContainer copied = sp_selection_paste_impl(dt->getDocument(), moveto, temp_clip); + selection->setReprList(copied); + copied.clear(); + if (!temp_clip.empty()) temp_clip.clear(); if (moveto) dt->setCurrentLayer(moveto); if ( !suppressDone ) { DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_MOVE_TO, _("Move selection to layer")); } } - - g_slist_free(const_cast(items)); } static bool @@ -1473,8 +1475,9 @@ static bool selection_contains_both_clone_and_original(Inkscape::Selection *selection) { bool clone_with_original = false; - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = dynamic_cast(static_cast(l->data)); + SelContainer items = selection->itemList(); + for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + SPItem *item = dynamic_cast(static_cast(*l)); if (item) { clone_with_original |= selection_contains_original(item, selection); if (clone_with_original) @@ -1517,9 +1520,9 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons persp3d_apply_affine_transformation(transf_persp, affine); } - - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = dynamic_cast(static_cast(l->data)); + SelContainer items = selection->itemList(); + for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + SPItem *item = dynamic_cast(static_cast(*l)); if( dynamic_cast(item) ) { // An SVG element cannot have a transform. We could change 'x' and 'y' in response @@ -1688,10 +1691,9 @@ void sp_selection_remove_transform(SPDesktop *desktop) Inkscape::Selection *selection = desktop->getSelection(); - GSList const *l = const_cast(selection->reprList()); - while (l != NULL) { - ((Inkscape::XML::Node*)l->data)->setAttribute("transform", NULL, false); - l = l->next; + SelContainer items = selection->itemList(); + for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + ((Inkscape::XML::Node*)*l)->setAttribute("transform", NULL, false); } DocumentUndo::done(desktop->getDocument(), SP_VERB_OBJECT_FLATTEN, @@ -1789,10 +1791,10 @@ void sp_selection_rotate_90(SPDesktop *desktop, bool ccw) if (selection->isEmpty()) return; - GSList const *l = selection->itemList(); + SelContainer items = selection->itemList(); Geom::Rotate const rot_90(Geom::Point(0, ccw ? 1 : -1)); // pos. or neg. rotation, depending on the value of ccw - for (GSList const *l2 = l ; l2 != NULL ; l2 = l2->next) { - SPItem *item = dynamic_cast(static_cast(l2->data)); + for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + SPItem *item = dynamic_cast(static_cast(*l)); if (item) { sp_item_rotate_rel(item, rot_90); } else { @@ -1848,15 +1850,15 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - - GSList *all_list = get_all_items(NULL, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, NULL); - GSList *all_matches = NULL; + SelContainer x,y; + SelContainer all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); + SelContainer all_matches; Inkscape::Selection *selection = desktop->getSelection(); - - for (GSList const* sel_iter = selection->itemList(); sel_iter; sel_iter = sel_iter->next) { - SPItem *sel = dynamic_cast(static_cast(sel_iter->data)); - GSList *matches = all_list; + SelContainer items = selection->itemList(); + for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + SPItem *sel = dynamic_cast(static_cast(*sel_iter)); + SelContainer matches = all_list; if (fill) { matches = sp_get_same_fill_or_stroke_color(sel, matches, SP_FILL_COLOR); } @@ -1868,19 +1870,12 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_DASHES); matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_MARKERS); } - all_matches = g_slist_concat (all_matches, matches); + all_matches.splice(all_matches.end(), matches); } selection->clear(); selection->setList(all_matches); - if (all_matches) { - g_slist_free(all_matches); - } - if (all_list) { - g_slist_free(all_list); - } - } @@ -1901,14 +1896,15 @@ void sp_select_same_object_type(SPDesktop *desktop) bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - - GSList *all_list = get_all_items(NULL, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, NULL); - GSList *matches = all_list; + SelContainer x,y; + SelContainer all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); + SelContainer matches = all_list; Inkscape::Selection *selection = desktop->getSelection(); - for (GSList const* sel_iter = selection->itemList(); sel_iter; sel_iter = sel_iter->next) { - SPItem *sel = dynamic_cast(static_cast(sel_iter->data)); + SelContainer items=selection->itemList(); + for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + SPItem *sel = dynamic_cast(static_cast(*sel_iter)); if (sel) { matches = sp_get_same_object_type(sel, matches); } else { @@ -1919,12 +1915,6 @@ void sp_select_same_object_type(SPDesktop *desktop) selection->clear(); selection->setList(matches); - if (matches) { - g_slist_free(matches); - } - if (all_list) { - g_slist_free(all_list); - } } /* @@ -1944,13 +1934,14 @@ void sp_select_same_stroke_style(SPDesktop *desktop) bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - GSList *all_list = get_all_items(NULL, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, NULL); - GSList *matches = all_list; + SelContainer x,y; + SelContainer matches = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); Inkscape::Selection *selection = desktop->getSelection(); + SelContainer items=selection->itemList(); - for (GSList const* sel_iter = selection->itemList(); sel_iter; sel_iter = sel_iter->next) { - SPItem *sel = dynamic_cast(static_cast(sel_iter->data)); + for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + SPItem *sel = dynamic_cast(static_cast(*sel_iter)); if (sel) { matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_WIDTH); matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_DASHES); @@ -1963,27 +1954,21 @@ void sp_select_same_stroke_style(SPDesktop *desktop) selection->clear(); selection->setList(matches); - if (matches) { - g_slist_free(matches); - } - if (all_list) { - g_slist_free(all_list); - } } /* * Find all items in src list that have the same fill or stroke style as sel * Return the list of matching items */ -GSList *sp_get_same_fill_or_stroke_color(SPItem *sel, GSList *src, SPSelectStrokeStyleType type) +SelContainer sp_get_same_fill_or_stroke_color(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type) { - GSList *matches = NULL; + SelContainer matches ; gboolean match = false; SPIPaint *sel_paint = (type == SP_FILL_COLOR) ? &(sel->style->fill) : &(sel->style->stroke); - for (GSList *i = src; i != NULL; i = i->next) { - SPItem *iter = dynamic_cast(static_cast(i->data)); + for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + SPItem *iter = dynamic_cast(static_cast(*i)); if (iter) { SPIPaint *iter_paint = (type == SP_FILL_COLOR) ? &(iter->style->fill) : &(iter->style->stroke); match = false; @@ -2022,7 +2007,7 @@ GSList *sp_get_same_fill_or_stroke_color(SPItem *sel, GSList *src, SPSelectStrok } if (match) { - matches = g_slist_prepend(matches, iter); + matches.push_front(iter); } } else { g_assert_not_reached(); @@ -2073,17 +2058,16 @@ static bool item_type_match (SPItem *i, SPItem *j) * Find all items in src list that have the same object type as sel by type * Return the list of matching items */ -GSList *sp_get_same_object_type(SPItem *sel, GSList *src) +SelContainer sp_get_same_object_type(SPItem *sel, SelContainer &src) { - GSList *matches = NULL; + SelContainer matches; - for (GSList *i = src; i != NULL; i = i->next) { - SPItem *item = dynamic_cast(static_cast(i->data)); + for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + SPItem *item = dynamic_cast(static_cast(*i)); if (item && item_type_match(sel, item)) { - matches = g_slist_prepend (matches, item); + matches.push_front(item); } } - return matches; } @@ -2091,9 +2075,9 @@ GSList *sp_get_same_object_type(SPItem *sel, GSList *src) * Find all items in src list that have the same stroke style as sel by type * Return the list of matching items */ -GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleType type) +SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type) { - GSList *matches = NULL; + SelContainer matches; gboolean match = false; SPStyle *sel_style = sel->style; @@ -2106,16 +2090,15 @@ GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleTy * Stroke width needs to handle transformations, so call this function * to get the transformed stroke width */ - GSList *objects = NULL; + SelContainer objects; SPStyle *sel_style_for_width = NULL; if (type == SP_STROKE_STYLE_WIDTH) { - objects = g_slist_prepend(objects, sel); + objects.push_front(sel); sel_style_for_width = new SPStyle(SP_ACTIVE_DOCUMENT); objects_query_strokewidth (objects, sel_style_for_width); } - - for (GSList *i = src; i != NULL; i = i->next) { - SPItem *iter = dynamic_cast(static_cast(i->data)); + for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + SPItem *iter = dynamic_cast(static_cast(*i)); if (iter) { SPStyle *iter_style = iter->style; match = false; @@ -2123,15 +2106,15 @@ GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleTy if (type == SP_STROKE_STYLE_WIDTH) { match = (sel_style->stroke_width.set == iter_style->stroke_width.set); if (sel_style->stroke_width.set && iter_style->stroke_width.set) { - GSList *objects = NULL; - objects = g_slist_prepend(objects, iter); + SelContainer objects; + objects.push_front(iter); SPStyle tmp_style(SP_ACTIVE_DOCUMENT); objects_query_strokewidth (objects, &tmp_style); if (sel_style_for_width) { match = (sel_style_for_width->stroke_width.computed == tmp_style.stroke_width.computed); } - g_slist_free(objects); + objects.clear(); } } else if (type == SP_STROKE_STYLE_DASHES ) { @@ -2154,7 +2137,7 @@ GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleTy } if (match) { - matches = g_slist_prepend(matches, iter); + matches.push_front(iter); } } else { g_assert_not_reached(); @@ -2162,8 +2145,6 @@ GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleTy } if( sel_style_for_width != NULL ) delete sel_style_for_width; - g_slist_free(objects); - return matches; } @@ -2320,11 +2301,11 @@ sp_selection_move_screen(Inkscape::Selection *selection, gdouble dx, gdouble dy) namespace { template -SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, +SPItem *next_item(SPDesktop *desktop, SelContainer &path, SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive); template -SPItem *next_item_from_list(SPDesktop *desktop, GSList const *items, SPObject *root, +SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const &items, SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive); struct Forward { @@ -2618,17 +2599,17 @@ void sp_selection_clone(SPDesktop *desktop) return; } - GSList *reprs = g_slist_copy(const_cast(selection->reprList())); + SelContainer reprs (selection->reprList()); selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing them, just what we need - reprs = g_slist_sort(reprs, (GCompareFunc) sp_repr_compare_position); + reprs.sort(sp_repr_compare_position_obj); - GSList *newsel = NULL; + SelContainer newsel; - while (reprs) { - Inkscape::XML::Node *sel_repr = static_cast(reprs->data); + while (!reprs.empty()) { + Inkscape::XML::Node *sel_repr = dynamic_cast(reprs.front()); Inkscape::XML::Node *parent = sel_repr->parent(); Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); @@ -2644,8 +2625,8 @@ void sp_selection_clone(SPDesktop *desktop) // add the new clone to the top of the original's parent parent->appendChild(clone); - newsel = g_slist_prepend(newsel, clone); - reprs = g_slist_remove(reprs, sel_repr); + newsel.push_front(dynamic_cast(clone)); + reprs.pop_front(); Inkscape::GC::release(clone); } @@ -2653,8 +2634,6 @@ void sp_selection_clone(SPDesktop *desktop) C_("Action", "Clone")); selection->setReprList(newsel); - - g_slist_free(newsel); } void @@ -2680,11 +2659,9 @@ sp_selection_relink(SPDesktop *desktop) // Get a copy of current selection. bool relinked = false; - for (GSList *items = const_cast(selection->itemList()); - items != NULL; - items = items->next) - { - SPItem *item = static_cast(items->data); + SelContainer items=selection->itemList(); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = static_cast(*i); if (dynamic_cast(item)) { item->getRepr()->setAttribute("xlink:href", newref); @@ -2718,13 +2695,11 @@ sp_selection_unlink(SPDesktop *desktop) } // Get a copy of current selection. - GSList *new_select = NULL; + SelContainer new_select; bool unlinked = false; - for (GSList *items = g_slist_copy(const_cast(selection->itemList())); - items != NULL; - items = items->next) - { - SPItem *item = static_cast(items->data); + SelContainer items=selection->itemList(); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = static_cast(*i); if (dynamic_cast(item)) { SPObject *tspan = sp_tref_convert_to_tspan(item); @@ -2740,7 +2715,7 @@ sp_selection_unlink(SPDesktop *desktop) if (!(dynamic_cast(item) || dynamic_cast(item))) { // keep the non-use item in the new selection - new_select = g_slist_prepend(new_select, item); + new_select.push_front(item); continue; } @@ -2750,7 +2725,7 @@ sp_selection_unlink(SPDesktop *desktop) unlink = use->unlink(); // Unable to unlink use (external or invalid href?) if (!unlink) { - new_select = g_slist_prepend(new_select, item); + new_select.push_front(item); continue; } } else /*if (SP_IS_TREF(use))*/ { @@ -2760,13 +2735,12 @@ sp_selection_unlink(SPDesktop *desktop) unlinked = true; // Add ungrouped items to the new selection. - new_select = g_slist_prepend(new_select, unlink); + new_select.push_front(unlink); } - if (new_select) { // set new selection + if (!new_select.empty()) { // set new selection selection->clear(); selection->setList(new_select); - g_slist_free(new_select); } if (!unlinked) { desktop->messageStack()->flash(Inkscape::ERROR_MESSAGE, _("No clones to unlink in the selection.")); @@ -2789,7 +2763,9 @@ sp_select_clone_original(SPDesktop *desktop) gchar const *error = _("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."); // Check if other than two objects are selected - if (g_slist_length(const_cast(selection->itemList())) != 1 || !item) { + + SelContainer items=selection->itemList(); + if (items.size() != 1 || !item) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, error); return; } @@ -2886,14 +2862,15 @@ void sp_selection_clone_original_path_lpe(SPDesktop *desktop) Inkscape::SVGOStringStream os; SPObject * firstItem = NULL; - for (const GSList * item = selection->itemList(); item != NULL; item = item->next) { - if (SP_IS_SHAPE(item->data) || SP_IS_TEXT(item->data)) { + SelContainer items=selection->itemList(); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + if (SP_IS_SHAPE(*i) || SP_IS_TEXT(*i)) { if (firstItem) { os << "|"; } else { - firstItem = SP_ITEM(item->data); + firstItem = SP_ITEM(*i); } - os << '#' << SP_ITEM(item->data)->getId() << ",0"; + os << '#' << SP_ITEM(*i)->getId() << ",0"; } } if (firstItem) { @@ -2970,12 +2947,12 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) Geom::Point center( *c - corner ); // As defined by rotation center center[Geom::Y] = -center[Geom::Y]; - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); //items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); // Why needed? // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items->data)->parent; + SPObject *parent = SP_OBJECT(items.front())->parent; Geom::Affine parent_transform; { @@ -2988,10 +2965,10 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) } // Create a list of duplicates, to be pasted inside marker element. - GSList *repr_copies = NULL; - for (GSList *i = items; i != NULL; i = i->next) { - Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); - repr_copies = g_slist_prepend(repr_copies, dup); + SelContainer repr_copies; + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); + repr_copies.push_front(dynamic_cast(dup)); } Geom::Rect bbox(desktop->dt2doc(r->min()), desktop->dt2doc(r->max())); @@ -2999,8 +2976,8 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) if (apply) { // Delete objects so that their clones don't get alerted; // the objects will be restored inside the marker element. - for (GSList *i = items; i != NULL; i = i->next) { - SPObject *item = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *item = reinterpret_cast(*i); item->deleteObject(false); } } @@ -3019,7 +2996,6 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) prefs->setInt("/options/clonecompensation/value", saved_compensation); - g_slist_free(items); DocumentUndo::done(doc, SP_VERB_EDIT_SELECTION_2_MARKER, _("Objects to marker")); @@ -3028,8 +3004,9 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) static void sp_selection_to_guides_recursive(SPItem *item, bool wholegroups) { SPGroup *group = dynamic_cast(item); if (group && !dynamic_cast(item) && !wholegroups) { - for (GSList *i = sp_item_group_item_list(group); i != NULL; i = i->next) { - sp_selection_to_guides_recursive(static_cast(i->data), wholegroups); + SelContainer items=sp_item_group_item_list(group); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + sp_selection_to_guides_recursive(static_cast(*i), wholegroups); } } else { item->convert_to_guides(); @@ -3044,9 +3021,9 @@ void sp_selection_to_guides(SPDesktop *desktop) SPDocument *doc = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); // we need to copy the list because it gets reset when objects are deleted - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); - if (!items) { + if (items.empty()) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to convert to guides.")); return; } @@ -3059,8 +3036,8 @@ void sp_selection_to_guides(SPDesktop *desktop) // and its entry in the selection list is invalid (crash). // Therefore: first convert all, then delete all. - for (GSList const *i = items; i != NULL; i = i->next) { - sp_selection_to_guides_recursive(static_cast(i->data), wholegroups); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + sp_selection_to_guides_recursive(static_cast(*i), wholegroups); } if (deleteitems) { @@ -3068,8 +3045,6 @@ void sp_selection_to_guides(SPDesktop *desktop) sp_selection_delete_impl(items); } - g_slist_free(items); - DocumentUndo::done(doc, SP_VERB_EDIT_SELECTION_2_GUIDES, _("Objects to guides")); } @@ -3112,18 +3087,18 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) doc->ensureUpToDate(); - GSList *items = g_slist_copy(const_cast(selection->list())); + SelContainer items(selection->list()); // Keep track of parent, this is where will be inserted. - Inkscape::XML::Node *the_first_repr = reinterpret_cast( items->data )->getRepr(); + Inkscape::XML::Node *the_first_repr = reinterpret_cast( items.front() )->getRepr(); Inkscape::XML::Node *the_parent_repr = the_first_repr->parent(); // Find out if we have a single group bool single_group = false; SPGroup *the_group = NULL; Geom::Affine transform; - if( g_slist_length( items ) == 1 ) { - SPObject *object = reinterpret_cast( items->data ); + if( items.size() == 1 ) { + SPObject *object = reinterpret_cast( items.front() ); the_group = dynamic_cast(object); if ( the_group ) { single_group = true; @@ -3134,7 +3109,6 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) if( transform.isTranslation() ) { // Create new list from group children. - g_slist_free(items); items = object->childList(false); // Hack: Temporarily set clone compensation to unmoved, so that we can move clone-originals @@ -3180,8 +3154,8 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) } // Move selected items to new - for (GSList *i = items; i != NULL; i = i->next) { - Inkscape::XML::Node *repr = SP_OBJECT(i->data)->getRepr(); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); repr->parent()->removeChild(repr); symbol_repr->addChild(repr,NULL); } @@ -3207,7 +3181,6 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) // Clean up Inkscape::GC::release(symbol_repr); - g_slist_free(items); DocumentUndo::done(doc, SP_VERB_EDIT_SYMBOL, _("Group to symbol")); } @@ -3248,26 +3221,25 @@ void sp_selection_unsymbol(SPDesktop *desktop) desktop->currentLayer()->getRepr()->appendChild(group); // Move all children of symbol to group - GSList* children = symbol->childList(false); + SelContainer children = symbol->childList(false); // Converting a group to a symbol inserts a group for non-translational transform. // In converting a symbol back to a group we strip out the inserted group (or any other // group that only adds a transform to the symbol content). - if( g_slist_length( children ) == 1 ) { - SPObject *object = reinterpret_cast( children->data ); + if( children.size() == 1 ) { + SPObject *object = reinterpret_cast( children.front() ); if ( dynamic_cast( object ) ) { if( object->getAttribute("style") == NULL || object->getAttribute("class") == NULL ) { group->setAttribute("transform", object->getAttribute("transform")); - g_slist_free(children); children = object->childList(false); } } } - for (GSList* i = children; i != NULL; i = i->next ) { - Inkscape::XML::Node *repr = SP_OBJECT(i->data)->getRepr(); + for (SelContainer::const_iterator i=children.begin();i!=children.end();i++){ + Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); repr->parent()->removeChild(repr); group->addChild(repr,NULL); } @@ -3293,7 +3265,6 @@ void sp_selection_unsymbol(SPDesktop *desktop) // Clean up Inkscape::GC::release(group); - g_slist_free(children); DocumentUndo::done(doc, SP_VERB_EDIT_UNSYMBOL, _("Group from symbol")); } @@ -3328,12 +3299,12 @@ sp_selection_tile(SPDesktop *desktop, bool apply) move_p[Geom::Y] = -move_p[Geom::Y]; Geom::Affine move = Geom::Affine(Geom::Translate(move_p)); - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items (selection->itemList()); - items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); + items.sort(sp_object_compare_position); // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items->data)->parent; + SPObject *parent = SP_OBJECT(items.front())->parent; Geom::Affine parent_transform; @@ -3347,23 +3318,23 @@ sp_selection_tile(SPDesktop *desktop, bool apply) } // remember the position of the first item - gint pos = SP_OBJECT(items->data)->getRepr()->position(); + gint pos = SP_OBJECT(items.front())->getRepr()->position(); // create a list of duplicates - GSList *repr_copies = NULL; - for (GSList *i = items; i != NULL; i = i->next) { - Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); - repr_copies = g_slist_prepend(repr_copies, dup); + SelContainer repr_copies; + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); + repr_copies.push_front(dynamic_cast(dup)); } // restore the z-order after prepends - repr_copies = g_slist_reverse(repr_copies); + repr_copies.reverse(); Geom::Rect bbox(desktop->dt2doc(r->min()), desktop->dt2doc(r->max())); if (apply) { // delete objects so that their clones don't get alerted; this object will be restored shortly - for (GSList *i = items; i != NULL; i = i->next) { - SPObject *item = reinterpret_cast(i->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *item = reinterpret_cast(*i); item->deleteObject(false); } } @@ -3409,7 +3380,6 @@ sp_selection_tile(SPDesktop *desktop, bool apply) selection->set(rectangle); } - g_slist_free(items); DocumentUndo::done(doc, SP_VERB_EDIT_TILE, _("Objects to pattern")); @@ -3432,15 +3402,13 @@ void sp_selection_untile(SPDesktop *desktop) return; } - GSList *new_select = NULL; + SelContainer new_select; bool did = false; - for (GSList *items = g_slist_copy(const_cast(selection->itemList())); - items != NULL; - items = items->next) { - - SPItem *item = static_cast(items->data); + SelContainer items(selection->itemList()); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = static_cast(*i); SPStyle *style = item->style; @@ -3476,7 +3444,7 @@ void sp_selection_untile(SPDesktop *desktop) Geom::Affine transform( i->transform * pat_transform ); i->doWriteTransform(i->getRepr(), transform); - new_select = g_slist_prepend(new_select, i); + new_select.push_front(i); } else { g_assert_not_reached(); } @@ -3503,18 +3471,14 @@ void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring return; } - GSList const *reprlst = selection->reprList(); + SelContainer const reprlst = selection->reprList(); bool filename_search = TRUE; bool xdpi_search = TRUE; bool ydpi_search = TRUE; - for (; reprlst != NULL && - filename_search && - xdpi_search && - ydpi_search; - reprlst = reprlst->next) { + for (SelContainer::const_iterator i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();i++){ gchar const *dpi_string; - Inkscape::XML::Node * repr = static_cast(reprlst->data); + Inkscape::XML::Node * repr = dynamic_cast(*i); if (filename_search) { const gchar* tmp = repr->attribute("inkscape:export-filename"); @@ -3600,10 +3564,10 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) } // List of the items to show; all others will be hidden - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); // Sort items so that the topmost comes last - items = g_slist_sort(items, (GCompareFunc) sp_item_repr_compare_position); + items.sort(sp_item_repr_compare_position_obj); // Generate a random value from the current time (you may create bitmap from the same object(s) // multiple times, and this is done so that they don't clash) @@ -3614,7 +3578,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) // Create the filename. gchar *const basename = g_strdup_printf("%s-%s-%u.png", document->getName(), - SP_OBJECT(items->data)->getRepr()->attribute("id"), + SP_OBJECT(items.front())->getRepr()->attribute("id"), current); // Imagemagick is known not to handle spaces in filenames, so we replace anything but letters, // digits, and a few other chars, with "_" @@ -3634,8 +3598,8 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) //g_print("%s\n", filepath); // Remember parent and z-order of the topmost one - gint pos = SP_OBJECT(g_slist_last(items)->data)->getRepr()->position(); - SPObject *parent_object = SP_OBJECT(g_slist_last(items)->data)->parent; + gint pos = SP_OBJECT(items.back())->getRepr()->position(); + SPObject *parent_object = SP_OBJECT(items.back())->parent; Inkscape::XML::Node *parent = parent_object->getRepr(); // Calculate resolution @@ -3727,8 +3691,6 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) true, /*bool force_overwrite,*/ items); - g_slist_free(items); - // Run filter, if any if (run) { g_print("Running external filter: %s\n", run); @@ -3803,22 +3765,22 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) return; } - GSList const *l = const_cast(selection->reprList()); + SelContainer l=selection->reprList(); - GSList *p = g_slist_copy(const_cast(l)); + SelContainer p(l); - p = g_slist_sort(p, (GCompareFunc) sp_repr_compare_position); + p.sort(sp_repr_compare_position_obj); selection->clear(); - gint topmost = (static_cast(g_slist_last(p)->data))->position(); - Inkscape::XML::Node *topmost_parent = (static_cast(g_slist_last(p)->data))->parent(); + gint topmost = (dynamic_cast(p.back()))->position(); + Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); Inkscape::XML::Node *inner = xml_doc->createElement("svg:g"); inner->setAttribute("inkscape:label", "Clip"); - while (p) { - Inkscape::XML::Node *current = static_cast(p->data); + while (!p.empty()) { + Inkscape::XML::Node *current = dynamic_cast(p.front()); if (current->parent() == topmost_parent) { Inkscape::XML::Node *spnew = current->duplicate(xml_doc); @@ -3827,7 +3789,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - GSList *temp_clip = NULL; + SelContainer temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -3843,15 +3805,14 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) // then, if this is clone, looking up its original in that array and pre-multiplying // it by the inverse of that original's transform diff. - sp_selection_copy_one(current, item_t, &temp_clip, xml_doc); + sp_selection_copy_one(current, item_t, temp_clip, xml_doc); sp_repr_unparent(current); // paste into topmost_parent (temporarily) - GSList *copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), &temp_clip); - if (temp_clip) g_slist_free(temp_clip); - if (copied) { // if success, + SelContainer copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); + if (!copied.empty()) { // if success, // take pasted object (now in topmost_parent) - Inkscape::XML::Node *in_topmost = static_cast(copied->data); + Inkscape::XML::Node *in_topmost = dynamic_cast(copied.front()); // make a copy Inkscape::XML::Node *spnew = in_topmost->duplicate(xml_doc); // remove pasted @@ -3859,10 +3820,9 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) // put its copy into group inner->appendChild(spnew); Inkscape::GC::release(spnew); - g_slist_free(copied); } } - p = g_slist_remove(p, current); + p.pop_front(); } Inkscape::XML::Node *outer = xml_doc->createElement("svg:g"); @@ -3920,7 +3880,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ if ( apply_to_layer && is_empty) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to create clippath or mask from.")); return; - } else if (!apply_to_layer && ( is_empty || NULL == selection->itemList()->next )) { + } else if (!apply_to_layer && ( is_empty || selection->itemList().size()==1 )) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select mask object and object(s) to apply clippath or mask to.")); return; } @@ -3935,9 +3895,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ doc->ensureUpToDate(); - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); - items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); + items.sort(sp_object_compare_position); // See lp bug #542004 selection->clear(); @@ -3946,7 +3906,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ GSList *mask_items = NULL; GSList *apply_to_items = NULL; GSList *items_to_delete = NULL; - GSList *items_to_select = NULL; + SelContainer items_to_select; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool topmost = prefs->getBool("/options/maskobject/topmost", true); @@ -3957,38 +3917,38 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // all selected items are used for mask, which is applied to a layer apply_to_items = g_slist_prepend(apply_to_items, desktop->currentLayer()); - for (GSList *i = items; i != NULL; i = i->next) { - Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); - SPObject *item = reinterpret_cast(i->data); + SPObject *item = reinterpret_cast(*i); if (remove_original) { items_to_delete = g_slist_prepend(items_to_delete, item); } else { - items_to_select = g_slist_prepend(items_to_select, item); + items_to_select.push_front(item); } } } else if (!topmost) { // topmost item is used as a mask, which is applied to other items in a selection - GSList *i = items; - Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = SP_OBJECT(items.front())->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { - SPObject *item = reinterpret_cast(i->data); + SPObject *item = reinterpret_cast(items.front()); items_to_delete = g_slist_prepend(items_to_delete, item); } - for (i = i->next; i != NULL; i = i->next) { - apply_to_items = g_slist_prepend(apply_to_items, i->data); - items_to_select = g_slist_prepend(items_to_select, i->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + if(i==items.begin())continue; + apply_to_items = g_slist_prepend(apply_to_items, *i); + items_to_select.push_front(*i); } } else { GSList *i = NULL; - for (i = items; NULL != i->next; i = i->next) { - apply_to_items = g_slist_prepend(apply_to_items, i->data); - items_to_select = g_slist_prepend(items_to_select, i->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + apply_to_items = g_slist_prepend(apply_to_items, *i); + items_to_select.push_front(*i); } Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); @@ -3999,9 +3959,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_delete = g_slist_prepend(items_to_delete, item); } } - - g_slist_free(items); - items = NULL; + items.clear(); if (apply_to_items && grouping == PREFS_MASKOBJECT_GROUPING_ALL) { // group all those objects into one group @@ -4011,24 +3969,22 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // make a note we should ungroup this when unsetting mask group->setAttribute("inkscape:groupmode", "maskhelper"); - GSList *reprs_to_group = NULL; + SelContainer reprs_to_group; for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { - reprs_to_group = g_slist_prepend(reprs_to_group, SP_OBJECT(i->data)->getRepr()); - items_to_select = g_slist_remove(items_to_select, i->data); + reprs_to_group.push_front(dynamic_cast(SP_OBJECT(i->data)->getRepr())); + items_to_select.remove(static_cast(i->data)); } - reprs_to_group = g_slist_reverse(reprs_to_group); + reprs_to_group.reverse(); sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); - reprs_to_group = NULL; - // apply clip/mask only to newly created group g_slist_free(apply_to_items); apply_to_items = NULL; apply_to_items = g_slist_prepend(apply_to_items, doc->getObjectByRepr(group)); - items_to_select = g_slist_prepend(items_to_select, doc->getObjectByRepr(group)); + items_to_select.push_front(doc->getObjectByRepr(group)); Inkscape::GC::release(group); } @@ -4068,7 +4024,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *spnew = current->duplicate(xml_doc); gint position = current->position(); - items_to_select = g_slist_remove(items_to_select, item); + items_to_select.remove(item); current->parent()->appendChild(group); sp_repr_unparent(current); group->appendChild(spnew); @@ -4077,7 +4033,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // Apply clip/mask to group instead apply_mask_to = group; - items_to_select = g_slist_prepend(items_to_select, doc->getObjectByRepr(group)); + items_to_select.push_front(doc->getObjectByRepr(group)); Inkscape::GC::release(spnew); Inkscape::GC::release(group); } @@ -4092,14 +4048,13 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = items_to_delete; NULL != i; i = i->next) { SPObject *item = reinterpret_cast(i->data); item->deleteObject(false); - items_to_select = g_slist_remove(items_to_select, item); + items_to_select.remove(item); } g_slist_free(items_to_delete); - items_to_select = g_slist_reverse(items_to_select); + items_to_select.reverse(); selection->addList(items_to_select); - g_slist_free(items_to_select); if (apply_clip_path) { DocumentUndo::done(doc, SP_VERB_OBJECT_SET_CLIPPATH, _("Set clipping path")); @@ -4131,20 +4086,20 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { gchar const *attributeName = apply_clip_path ? "clip-path" : "mask"; std::map referenced_objects; - GSList *items = g_slist_copy(const_cast(selection->itemList())); + SelContainer items(selection->itemList()); selection->clear(); GSList *items_to_ungroup = NULL; - GSList *items_to_select = g_slist_copy(items); - items_to_select = g_slist_reverse(items_to_select); + SelContainer items_to_select(items); + items_to_select.reverse(); // SPObject* refers to a group containing the clipped path or mask itself, // whereas SPItem* refers to the item being clipped or masked - for (GSList const *i = items; NULL != i; i = i->next) { + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ if (remove_original) { // remember referenced mask/clippath, so orphaned masks can be moved back to document - SPItem *item = reinterpret_cast(i->data); + SPItem *item = reinterpret_cast(*i); Inkscape::URIReference *uri_ref = NULL; if (apply_clip_path) { @@ -4159,9 +4114,9 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { } } - SP_OBJECT(i->data)->getRepr()->setAttribute(attributeName, "none"); + SP_OBJECT(*i)->getRepr()->setAttribute(attributeName, "none"); - SPGroup *group = dynamic_cast(static_cast(i->data)); + SPGroup *group = dynamic_cast(static_cast(*i)); if (ungroup_masked && group) { // if we had previously enclosed masked object in group, // add it to list so we can ungroup it later @@ -4173,7 +4128,6 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { } } - g_slist_free(items); // restore mask objects into a document for ( std::map::iterator it = referenced_objects.begin() ; it != referenced_objects.end() ; ++it) { @@ -4207,7 +4161,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { repr->setPosition((pos + 1) > 0 ? (pos + 1) : 0); SPItem *mask_item = static_cast(desktop->getDocument()->getObjectByRepr(repr)); - items_to_select = g_slist_prepend(items_to_select, mask_item); + items_to_select.push_front(mask_item); // transform mask, so it is moved the same spot where mask was applied Geom::Affine transform(mask_item->transform); @@ -4222,10 +4176,10 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (GSList *i = items_to_ungroup ; NULL != i ; i = i->next) { SPGroup *group = dynamic_cast(static_cast(i->data)); if (group) { - items_to_select = g_slist_remove(items_to_select, group); - GSList *children = NULL; - sp_item_group_ungroup(group, &children, false); - items_to_select = g_slist_concat(children, items_to_select); + items_to_select.remove(group); + SelContainer children; + sp_item_group_ungroup(group, children, false); + items_to_select.splice(items_to_select.begin(),children); } else { g_assert_not_reached(); } @@ -4234,9 +4188,8 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { g_slist_free(items_to_ungroup); // rebuild selection - items_to_select = g_slist_reverse(items_to_select); + items_to_select.reverse(); selection->addList(items_to_select); - g_slist_free(items_to_select); if (apply_clip_path) { DocumentUndo::done(doc, SP_VERB_OBJECT_UNSET_CLIPPATH, _("Release clipping path")); diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index d86906548..bc317d556 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -19,6 +19,7 @@ #include <2geom/forward.h> #include "sp-item.h" +#include "selection.h" class SPCSSAttr; class SPDesktop; @@ -142,9 +143,9 @@ enum SPSelectStrokeStyleType { void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolean strok, gboolean style); void sp_select_same_stroke_style(SPDesktop *desktop); void sp_select_same_object_type(SPDesktop *desktop); -GSList *sp_get_same_fill_or_stroke_color(SPItem *sel, GSList *src, SPSelectStrokeStyleType type); -GSList *sp_get_same_stroke_style(SPItem *sel, GSList *src, SPSelectStrokeStyleType type); -GSList *sp_get_same_object_type(SPItem *sel, GSList *src); +SelContainer sp_get_same_fill_or_stroke_color(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type); +SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type); +SelContainer sp_get_same_object_type(SPItem *sel, SelContainer &src); void scroll_to_show_item(SPDesktop *desktop, SPItem *item); @@ -171,9 +172,9 @@ void unlock_all_in_all_layers(SPDesktop *dt); void unhide_all(SPDesktop *dt); void unhide_all_in_all_layers(SPDesktop *dt); -GSList *get_all_items(GSList *list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, GSList const *exclude); +SelContainer &get_all_items(SelContainer &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, SelContainer const &exclude); -GSList *sp_degroup_list (GSList *items); +SelContainer sp_degroup_list (SelContainer &items); /* selection cycling */ typedef enum diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp index f7814fd57..0625c4002 100644 --- a/src/selection-describer.cpp +++ b/src/selection-describer.cpp @@ -40,14 +40,14 @@ #include "sp-spiral.h" // Returns a list of terms for the items to be used in the statusbar -char* collect_terms (GSList *items) +char* collect_terms (const SelContainer &items) { GSList *check = NULL; std::stringstream ss; bool first = true; - for (GSList *i = (GSList *)items; i != NULL; i = i->next) { - SPItem *item = dynamic_cast(reinterpret_cast(i->data)); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *item = dynamic_cast(reinterpret_cast(*iter)); if (item) { const char *term = item->displayName(); if (term != NULL && g_slist_find (check, term) == NULL) { @@ -61,12 +61,12 @@ char* collect_terms (GSList *items) } // Returns the number of terms in the list -static int count_terms (GSList *items) +static int count_terms (const SelContainer &items) { GSList *check = NULL; int count=0; - for (GSList *i = (GSList *)items; i != NULL; i = i->next) { - SPItem *item = dynamic_cast(reinterpret_cast(i->data)); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *item = dynamic_cast(reinterpret_cast(*iter)); if (item) { const char *term = item->displayName(); if (term != NULL && g_slist_find (check, term) == NULL) { @@ -79,11 +79,11 @@ static int count_terms (GSList *items) } // Returns the number of filtered items in the list -static int count_filtered (GSList *items) +static int count_filtered (const SelContainer &items) { int count=0; - for (GSList *i = items; i != NULL; i = i->next) { - SPItem *item = dynamic_cast(reinterpret_cast((i->data))); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *item = dynamic_cast(reinterpret_cast((*iter))); if (item) { count += item->isFiltered(); } @@ -122,12 +122,12 @@ void SelectionDescriber::_selectionModified(Inkscape::Selection *selection, guin } void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *selection) { - GSList const *items = selection->itemList(); + SelContainer const items = selection->itemList(); - if (!items) { // no items + if (items.empty()) { // no items _context.set(Inkscape::NORMAL_MESSAGE, _when_nothing); } else { - SPItem *item = dynamic_cast(reinterpret_cast(items->data)); + SPItem *item = dynamic_cast(reinterpret_cast(items.front())); g_assert(item != NULL); SPObject *layer = selection->layers()->layerForObject(item); SPObject *root = selection->layers()->currentRoot(); @@ -188,7 +188,7 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select g_free (layer_name); g_free (parent_name); - if (!items->next) { // one item + if (items.size()==1) { // one item char *item_desc = item->detailedDescription(); bool isUse = dynamic_cast(item) != NULL; @@ -228,9 +228,9 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select g_free(item_desc); } else { // multiple items - int objcount = g_slist_length((GSList *)items); - char *terms = collect_terms ((GSList *)items); - int n_terms = count_terms((GSList *)items); + int objcount = items.size(); + char *terms = collect_terms (items); + int n_terms = count_terms(items); gchar *objects_str = g_strdup_printf(ngettext( "%i objects selected of type %s", @@ -241,7 +241,7 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select // indicate all, some, or none filtered gchar *filt_str = NULL; - int n_filt = count_filtered((GSList *)items); //all filtered + int n_filt = count_filtered(items); //all filtered if (n_filt) { filt_str = g_strdup_printf(ngettext("; %d filtered object ", "; %d filtered objects ", n_filt), n_filt); diff --git a/src/selection.cpp b/src/selection.cpp index 81139d044..b509f4272 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -42,9 +42,9 @@ namespace Inkscape { Selection::Selection(LayerModel *layers, SPDesktop *desktop) : - _objs(NULL), - _reprs(NULL), - _items(NULL), + _objs(SelContainer()), + _reprs(SelContainer()), + _items(SelContainer()), _layers(layers), _desktop(desktop), _selection_context(NULL), @@ -121,17 +121,14 @@ Selection::_releaseContext(SPObject *obj) } void Selection::_invalidateCachedLists() { - g_slist_free(_items); - _items = NULL; - - g_slist_free(_reprs); - _reprs = NULL; + _items.clear(); + _reprs.clear(); } void Selection::_clear() { _invalidateCachedLists(); - while (_objs) { - SPObject *obj=reinterpret_cast(_objs->data); + while (!_objs.empty()) { + SPObject *obj=reinterpret_cast(_objs.front()); _remove(obj); } } @@ -148,7 +145,7 @@ bool Selection::includes(SPObject *obj) const { g_return_val_if_fail(SP_IS_OBJECT(obj), FALSE); - return ( g_slist_find(_objs, obj) != NULL ); + return ( find(_objs.begin(),_objs.end(),obj)!=_objs.end() ); } void Selection::add(SPObject *obj, bool persist_selection_context/* = false */) { @@ -180,7 +177,7 @@ void Selection::_add(SPObject *obj) { _removeObjectDescendants(obj); _removeObjectAncestors(obj); - _objs = g_slist_prepend(_objs, obj); + _objs.push_front(obj); add_3D_boxes_recursively(obj); @@ -234,26 +231,26 @@ void Selection::_remove(SPObject *obj) { remove_3D_boxes_recursively(obj); - _objs = g_slist_remove(_objs, obj); + _objs.remove(obj); } -void Selection::setList(GSList const *list) { +void Selection::setList(SelContainer const &list) { // Clear and add, or just clear with emit. - if (list != NULL) { + if (!list.empty()) { _clear(); addList(list); } else clear(); } -void Selection::addList(GSList const *list) { +void Selection::addList(SelContainer const &list) { - if (list == NULL) + if (list.empty()) return; _invalidateCachedLists(); - for ( GSList const *iter = list ; iter != NULL ; iter = iter->next ) { - SPObject *obj = reinterpret_cast(iter->data); + for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { + SPObject *obj = reinterpret_cast(*iter); if (includes(obj)) continue; _add (obj); } @@ -261,11 +258,11 @@ void Selection::addList(GSList const *list) { _emitChanged(); } -void Selection::setReprList(GSList const *list) { +void Selection::setReprList(SelContainer const &list) { _clear(); - for ( GSList const *iter = list ; iter != NULL ; iter = iter->next ) { - SPObject *obj=_objectForXMLNode(reinterpret_cast(iter->data)); + for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { + SPObject *obj=_objectForXMLNode(reinterpret_cast(*iter)); if (obj) { _add(obj); } @@ -279,34 +276,34 @@ void Selection::clear() { _emitChanged(); } -GSList const *Selection::list() { +SelContainer const &Selection::list() { return _objs; } -GSList const *Selection::itemList() { - if (_items) { +SelContainer const &Selection::itemList() { + if (!_items.empty()) { return _items; } - for ( GSList const *iter=_objs ; iter != NULL ; iter = iter->next ) { - SPObject *obj=reinterpret_cast(iter->data); + for ( SelContainer::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + SPObject *obj=reinterpret_cast(*iter); if (SP_IS_ITEM(obj)) { - _items = g_slist_prepend(_items, SP_ITEM(obj)); + _items.push_front(SP_ITEM(obj)); } } - _items = g_slist_reverse(_items); + _items.reverse(); return _items; } -GSList const *Selection::reprList() { - if (_reprs) { return _reprs; } - - for ( GSList const *iter=itemList() ; iter != NULL ; iter = iter->next ) { - SPObject *obj=reinterpret_cast(iter->data); - _reprs = g_slist_prepend(_reprs, obj->getRepr()); +SelContainer const &Selection::reprList() { + if (!_reprs.empty()) { return _reprs; } + SelContainer list = itemList(); + for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { + SPObject *obj=reinterpret_cast(*iter); + _reprs.push_front(dynamic_cast(obj->getRepr())); } - _reprs = g_slist_reverse(_reprs); + _reprs.reverse(); return _reprs; } @@ -337,17 +334,17 @@ std::list const Selection::box3DList(Persp3D *persp) { } SPObject *Selection::single() { - if ( _objs != NULL && _objs->next == NULL ) { - return reinterpret_cast(_objs->data); + if ( _objs.size() == 1 ) { + return reinterpret_cast(_objs.front()); } else { return NULL; } } SPItem *Selection::singleItem() { - GSList const *items=itemList(); - if ( items != NULL && items->next == NULL ) { - return reinterpret_cast(items->data); + SelContainer const items=itemList(); + if ( !items.size()==1) { + return reinterpret_cast(items.front()); } else { return NULL; } @@ -362,12 +359,12 @@ SPItem *Selection::largestItem(Selection::CompareSize compare) { } SPItem *Selection::_sizeistItem(bool sml, Selection::CompareSize compare) { - GSList const *items = const_cast(this)->itemList(); + SelContainer const items = const_cast(this)->itemList(); gdouble max = sml ? 1e18 : 0; SPItem *ist = NULL; - for ( GSList const *i = items; i != NULL ; i = i->next ) { - Geom::OptRect obox = SP_ITEM(i->data)->desktopPreferredBounds(); + for ( SelContainer::const_iterator i=items.begin();i!=items.end();i++ ) { + Geom::OptRect obox = SP_ITEM(*i)->desktopPreferredBounds(); if (!obox || obox.isEmpty()) continue; Geom::Rect bbox = *obox; @@ -376,7 +373,7 @@ SPItem *Selection::_sizeistItem(bool sml, Selection::CompareSize compare) { size = sml ? size : size * -1; if (size < max) { max = size; - ist = SP_ITEM(i->data); + ist = SP_ITEM(*i); } } return ist; @@ -395,22 +392,22 @@ Geom::OptRect Selection::bounds(SPItem::BBoxType type) const Geom::OptRect Selection::geometricBounds() const { - GSList const *items = const_cast(this)->itemList(); + SelContainer const items = const_cast(this)->itemList(); Geom::OptRect bbox; - for ( GSList const *i = items ; i != NULL ; i = i->next ) { - bbox.unionWith(SP_ITEM(i->data)->desktopGeometricBounds()); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + bbox.unionWith(SP_ITEM(*iter)->desktopGeometricBounds()); } return bbox; } Geom::OptRect Selection::visualBounds() const { - GSList const *items = const_cast(this)->itemList(); + SelContainer const items = const_cast(this)->itemList(); Geom::OptRect bbox; - for ( GSList const *i = items ; i != NULL ; i = i->next ) { - bbox.unionWith(SP_ITEM(i->data)->desktopVisualBounds()); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + bbox.unionWith(SP_ITEM(*iter)->desktopVisualBounds()); } return bbox; } @@ -427,11 +424,11 @@ Geom::OptRect Selection::preferredBounds() const Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const { Geom::OptRect bbox; - GSList const *items = const_cast(this)->itemList(); - if (!items) return bbox; + SelContainer const items = const_cast(this)->itemList(); + if (items.empty()) return bbox; - for ( GSList const *iter=items ; iter != NULL ; iter = iter->next ) { - SPItem *item = SP_ITEM(iter->data); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *item = SP_ITEM(*iter); bbox |= item->documentBounds(type); } @@ -441,9 +438,9 @@ Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const // If we have a selection of multiple items, then the center of the first item // will be returned; this is also the case in SelTrans::centerRequest() boost::optional Selection::center() const { - GSList *items = (GSList *) const_cast(this)->itemList(); - if (items) { - SPItem *first = reinterpret_cast(g_slist_last(items)->data); // from the first item in selection + SelContainer const items = const_cast(this)->itemList(); + if (!items.empty()) { + SPItem *first = reinterpret_cast(items.back()); // from the first item in selection if (first->isCenterSet()) { // only if set explicitly return first->getCenter(); } @@ -457,13 +454,13 @@ boost::optional Selection::center() const { } std::vector Selection::getSnapPoints(SnapPreferences const *snapprefs) const { - GSList const *items = const_cast(this)->itemList(); + SelContainer const items = const_cast(this)->itemList(); SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs snapprefs_dummy.setTargetSnappable(Inkscape::SNAPTARGET_ROTATION_CENTER, false); // locally disable snapping to the item center std::vector p; - for (GSList const *iter = items; iter != NULL; iter = iter->next) { - SPItem *this_item = SP_ITEM(iter->data); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *this_item = SP_ITEM(*iter); this_item->getSnappoints(p, &snapprefs_dummy); //Include the transformation origin for snapping @@ -477,10 +474,8 @@ std::vector Selection::getSnapPoints(SnapPreferenc } void Selection::_removeObjectDescendants(SPObject *obj) { - GSList *iter, *next; - for ( iter = _objs ; iter ; iter = next ) { - next = iter->next; - SPObject *sel_obj=reinterpret_cast(iter->data); + for ( SelContainer::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + SPObject *sel_obj=reinterpret_cast(*iter); SPObject *parent = sel_obj->parent; while (parent) { if ( parent == obj ) { @@ -511,32 +506,24 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { return object; } -guint Selection::numberOfLayers() { - GSList const *items = const_cast(this)->itemList(); - GSList *layers = NULL; - for (GSList const *iter = items; iter != NULL; iter = iter->next) { - SPObject *layer = _layers->layerForObject(SP_OBJECT(iter->data)); - if (g_slist_find (layers, layer) == NULL) { - layers = g_slist_prepend (layers, layer); - } +uint Selection::numberOfLayers() { + SelContainer const items = const_cast(this)->itemList(); + std::set layers; + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPObject *layer = _layers->layerForObject(SP_OBJECT(*iter)); + layers.insert(layer); } - guint ret = g_slist_length (layers); - g_slist_free (layers); - return ret; + return layers.size(); } guint Selection::numberOfParents() { - GSList const *items = const_cast(this)->itemList(); - GSList *parents = NULL; - for (GSList const *iter = items; iter != NULL; iter = iter->next) { - SPObject *parent = SP_OBJECT(iter->data)->parent; - if (g_slist_find (parents, parent) == NULL) { - parents = g_slist_prepend (parents, parent); - } + SelContainer const items = const_cast(this)->itemList(); + std::set parents; + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPObject *parent = SP_OBJECT(*iter)->parent; + parents.insert(parent); } - guint ret = g_slist_length (parents); - g_slist_free (parents); - return ret; + return parents.size(); } } diff --git a/src/selection.h b/src/selection.h index 5964b20e8..7171b8742 100644 --- a/src/selection.h +++ b/src/selection.h @@ -19,6 +19,11 @@ #include #include +#include +#include +#include +#include + #include "gc-managed.h" #include "gc-finalized.h" #include "gc-anchored.h" @@ -26,11 +31,13 @@ #include "sp-item.h" + class SPDesktop; class SPItem; class SPBox3D; class Persp3D; -typedef struct _GSList GSList; + +typedef std::list SelContainer; namespace Inkscape { class LayerModel; @@ -39,6 +46,15 @@ class Node; } } +/*template +const GSList* std_list_to_GS_list(const std::list list) const +{ + gpointer l=NULL; + for(auto x:list){ + + } +}*/ + namespace Inkscape { /** @@ -154,21 +170,21 @@ public: * * @param objs the objects to select */ - void setList(GSList const *objs); + void setList(SelContainer const &objs); /** * Adds the specified objects to selection, without deselecting first. * * @param objs the objects to select */ - void addList(GSList const *objs); + void addList(SelContainer const &objs); /** * Clears the selection and selects the specified objects. * * @param repr a list of xml nodes for the items to select */ - void setReprList(GSList const *reprs); + void setReprList(std::list const &reprs); /** Add items from an STL iterator range to the selection. * \param from the begin iterator @@ -192,7 +208,7 @@ public: /** * Returns true if no items are selected. */ - bool isEmpty() const { return _objs == NULL; } + bool isEmpty() const { return _objs.empty(); } /** * Returns true if the given object is selected. @@ -238,13 +254,13 @@ public: XML::Node *singleRepr(); /** Returns the list of selected objects. */ - GSList const *list(); + std::list const &list(); /** Returns the list of selected SPItems. */ - GSList const *itemList(); + std::list const &itemList(); /** Returns a list of the xml nodes of all selected objects. */ /// \todo only returns reprs of SPItems currently; need a separate /// method for that - GSList const *reprList(); + std::list const &reprList(); /** Returns a list of all perspectives which have a 3D box in the current selection. (these may also be nested in groups) */ @@ -360,9 +376,9 @@ private: /** Releases an active layer object that is being removed. */ void _releaseContext(SPObject *obj); - mutable GSList *_objs; - mutable GSList *_reprs; - mutable GSList *_items; + mutable std::list _objs; + mutable std::list _reprs; + mutable std::list _items; void add_box_perspective(SPBox3D *box); void add_3D_boxes_recursively(SPObject *obj); diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 5e4c0642e..8c06356db 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -112,7 +112,7 @@ Inkscape::SelTrans::SelTrans(SPDesktop *desktop) : _opposite_for_bboxpoints(Geom::Point(0,0)), _origin_for_specpoints(Geom::Point(0,0)), _origin_for_bboxpoints(Geom::Point(0,0)), - _stamp_cache(NULL), + _stamp_cache(SelContainer()), _message_context(desktop->messageStack()), _bounding_box_prefs_observer(*this) { @@ -239,8 +239,9 @@ void Inkscape::SelTrans::setCenter(Geom::Point const &p) _center_is_set = true; // Write the new center position into all selected items - for (GSList const *l = _desktop->selection->itemList(); l; l = l->next) { - SPItem *it = SP_ITEM(l->data); + SelContainer items=_desktop->selection->itemList(); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *it = SP_ITEM(*iter); it->setCenter(p); // only set the value; updating repr and document_done will be done once, on ungrab } @@ -268,8 +269,9 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s return; } - for (GSList const *l = selection->itemList(); l; l = l->next) { - SPItem *it = reinterpret_cast(sp_object_ref(SP_ITEM(l->data), NULL)); + SelContainer items=_desktop->selection->itemList(); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *it = reinterpret_cast(sp_object_ref(SP_ITEM(*iter), NULL)); _items.push_back(it); _items_const.push_back(it); _items_affines.push_back(it->i2dt_affine()); @@ -370,7 +372,7 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s } _updateHandles(); - g_return_if_fail(_stamp_cache == NULL); + g_return_if_fail(_stamp_cache.empty()); } void Inkscape::SelTrans::transform(Geom::Affine const &rel_affine, Geom::Point const &norm) @@ -433,9 +435,8 @@ void Inkscape::SelTrans::ungrab() sp_canvas_item_hide(_l[i]); } - if (_stamp_cache) { - g_slist_free(_stamp_cache); - _stamp_cache = NULL; + if (!_stamp_cache.empty()) { + _stamp_cache.clear(); } _message_context.clear(); @@ -491,8 +492,9 @@ void Inkscape::SelTrans::ungrab() if (_center_is_set) { // we were dragging center; update reprs and commit undoable action - for (GSList const *l = _desktop->selection->itemList(); l; l = l->next) { - SPItem *it = SP_ITEM(l->data); + SelContainer items=_desktop->selection->itemList(); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *it = SP_ITEM(*iter); it->updateRepr(); } DocumentUndo::done(_desktop->getDocument(), SP_VERB_CONTEXT_SELECT, @@ -515,26 +517,25 @@ void Inkscape::SelTrans::stamp() Inkscape::Selection *selection = _desktop->getSelection(); bool fixup = !_grabbed; - if ( fixup && _stamp_cache ) { + if ( fixup && !_stamp_cache.empty() ) { // TODO - give a proper fix. Simple temporary work-around for the grab() issue - g_slist_free(_stamp_cache); - _stamp_cache = NULL; + _stamp_cache.clear(); } /* stamping mode */ if (!_empty) { - GSList *l; - if (_stamp_cache) { + SelContainer l; + if (!_stamp_cache.empty()) { l = _stamp_cache; } else { /* Build cache */ - l = g_slist_copy((GSList *) selection->itemList()); - l = g_slist_sort(l, (GCompareFunc) sp_object_compare_position); + l = selection->itemList(); + l.sort(sp_object_compare_position); _stamp_cache = l; } - while (l) { - SPItem *original_item = SP_ITEM(l->data); + for(SelContainer::const_iterator x=l.begin();x!=l.end();x++) { + SPItem *original_item = SP_ITEM(*x); Inkscape::XML::Node *original_repr = original_item->getRepr(); // remember the position of the item @@ -568,16 +569,14 @@ void Inkscape::SelTrans::stamp() } Inkscape::GC::release(copy_repr); - l = l->next; } DocumentUndo::done(_desktop->getDocument(), SP_VERB_CONTEXT_SELECT, _("Stamp")); } - if ( fixup && _stamp_cache ) { + if ( fixup && !_stamp_cache.empty() ) { // TODO - give a proper fix. Simple temporary work-around for the grab() issue - g_slist_free(_stamp_cache); - _stamp_cache = NULL; + _stamp_cache.clear(); } } @@ -712,8 +711,9 @@ void Inkscape::SelTrans::handleClick(SPKnot */*knot*/, guint state, SPSelTransHa case HANDLE_CENTER: if (state & GDK_SHIFT_MASK) { // Unset the center position for all selected items - for (GSList const *l = _desktop->selection->itemList(); l; l = l->next) { - SPItem *it = SP_ITEM(l->data); + SelContainer items=_desktop->selection->itemList(); + for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + SPItem *it = SP_ITEM(*iter); it->unsetCenter(); it->updateRepr(); _center_is_set = false; // center has changed @@ -1283,7 +1283,7 @@ gboolean Inkscape::SelTrans::centerRequest(Geom::Point &pt, guint state) // items will share a single center. While dragging that single center, it should never snap to the // centers of any of the selected objects. Therefore we will have to pass the list of selected items // to the snapper, to avoid self-snapping of the rotation center - GSList *items = (GSList *) const_cast(_selection)->itemList(); + SelContainer items = const_cast(_selection)->itemList(); SnapManager &m = _desktop->namedview->snap_manager; m.setup(_desktop); m.setRotationCenterSource(items); diff --git a/src/seltrans.h b/src/seltrans.h index d5db1542d..8f9c329ed 100644 --- a/src/seltrans.h +++ b/src/seltrans.h @@ -187,7 +187,7 @@ private: SPCtrlLine *_l[4]; unsigned int _sel_changed_id; unsigned int _sel_modified_id; - GSList *_stamp_cache; + SelContainer _stamp_cache; Geom::Point _origin; ///< position of origin for transforms Geom::Point _point; ///< original position of the knot being used for the current transform diff --git a/src/snap.cpp b/src/snap.cpp index 8138e4546..a7145b834 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -43,7 +43,7 @@ SnapManager::SnapManager(SPNamedView const *v) : object(this, 0), snapprefs(), _named_view(v), - _rotation_center_source_items(NULL), + _rotation_center_source_items(SelContainer()), _guide_to_ignore(NULL), _desktop(NULL), _snapindicator(true), @@ -1013,7 +1013,7 @@ void SnapManager::setup(SPDesktop const *desktop, _snapindicator = snapindicator; _unselected_nodes = unselected_nodes; _guide_to_ignore = guide_to_ignore; - _rotation_center_source_items = NULL; + _rotation_center_source_items.clear(); } void SnapManager::setup(SPDesktop const *desktop, @@ -1031,7 +1031,7 @@ void SnapManager::setup(SPDesktop const *desktop, _snapindicator = snapindicator; _unselected_nodes = unselected_nodes; _guide_to_ignore = guide_to_ignore; - _rotation_center_source_items = NULL; + _rotation_center_source_items.clear(); } /// Setup, taking the list of items to ignore from the desktop's selection. @@ -1049,13 +1049,13 @@ void SnapManager::setupIgnoreSelection(SPDesktop const *desktop, _snapindicator = snapindicator; _unselected_nodes = unselected_nodes; _guide_to_ignore = guide_to_ignore; - _rotation_center_source_items = NULL; + _rotation_center_source_items.clear(); _items_to_ignore.clear(); Inkscape::Selection *sel = _desktop->selection; - GSList const *items = sel->itemList(); - for (GSList *i = const_cast(items); i; i = i->next) { - _items_to_ignore.push_back(static_cast(i->data)); + SelContainer const items = sel->itemList(); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + _items_to_ignore.push_back(static_cast(*i)); } } diff --git a/src/snap.h b/src/snap.h index 20b2b246f..012eb072b 100644 --- a/src/snap.h +++ b/src/snap.h @@ -136,7 +136,7 @@ public: std::vector *unselected_nodes = NULL, SPGuide *guide_to_ignore = NULL); - void unSetup() {_rotation_center_source_items = NULL; + void unSetup() {_rotation_center_source_items.clear(); _guide_to_ignore = NULL; _desktop = NULL; _unselected_nodes = NULL;} @@ -145,8 +145,8 @@ public: // of this rotation center; this reference is used to make sure that we do not snap a rotation // center to itself // NOTE: Must be called after calling setup(), not before! - void setRotationCenterSource(GSList *items) {_rotation_center_source_items = items;} - GSList const *getRotationCenterSource() {return _rotation_center_source_items;} + void setRotationCenterSource(const SelContainer &items) {_rotation_center_source_items = items;} + SelContainer getRotationCenterSource() {return _rotation_center_source_items;} // freeSnapReturnByRef() is preferred over freeSnap(), because it only returns a // point if snapping has occurred (by overwriting p); otherwise p is untouched @@ -490,7 +490,7 @@ protected: private: std::vector _items_to_ignore; ///< Items that should not be snapped to, for example the items that are currently being dragged. Set using the setup() method - GSList *_rotation_center_source_items; // to avoid snapping a rotation center to itself + SelContainer _rotation_center_source_items; // to avoid snapping a rotation center to itself SPGuide *_guide_to_ignore; ///< A guide that should not be snapped to, e.g. the guide that is currently being dragged SPDesktop const *_desktop; bool _snapindicator; ///< When true, an indicator will be drawn at the position that was being snapped to diff --git a/src/sp-conn-end.cpp b/src/sp-conn-end.cpp index 3e5398ced..bd139277d 100644 --- a/src/sp-conn-end.cpp +++ b/src/sp-conn-end.cpp @@ -50,8 +50,9 @@ static bool try_get_intersect_point_with_item_recursive(Geom::PathVector& conn_p // consider all first-order children double child_pos = 0.0; - for (GSList const* i = sp_item_group_item_list(group); i != NULL; i = i->next) { - SPItem* child_item = SP_ITEM(i->data); + SelContainer g = sp_item_group_item_list(group); + for (SelContainer::const_iterator i = g.begin();i!=g.end();i++) { + SPItem* child_item = SP_ITEM(*i); try_get_intersect_point_with_item_recursive(conn_pv, child_item, item_transform * child_item->transform, child_pos); if (intersect_pos < child_pos) diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 334570076..d52fa038a 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -46,11 +46,10 @@ void SPDefs::update(SPCtx *ctx, guint flags) { } flags &= SP_OBJECT_MODIFIED_CASCADE; - - GSList *l = g_slist_reverse(this->childList(true)); - while (l) { - SPObject *child = SP_OBJECT(l->data); - l = g_slist_remove(l, child); + SelContainer l(this->childList(true)); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *child = SP_OBJECT(*i); if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); } diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index 9cb33a6f3..bf8f7a5a4 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -244,11 +244,10 @@ void SPFilter::update(SPCtx *ctx, guint flags) { childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } childflags &= SP_OBJECT_MODIFIED_CASCADE; - - GSList *l = g_slist_reverse(this->childList(true, SPObject::ActionUpdate)); - while (l) { - SPObject *child = SP_OBJECT (l->data); - l = g_slist_remove (l, child); + SelContainer l(this->childList(true, SPObject::ActionUpdate)); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *child = SP_OBJECT (*i); if( SP_IS_FILTER_PRIMITIVE( child ) ) { child->updateDisplay(ctx, childflags); } diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index b1ba37de2..e6531c6be 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -171,11 +171,10 @@ void SPGroup::update(SPCtx *ctx, unsigned int flags) { childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } childflags &= SP_OBJECT_MODIFIED_CASCADE; - - GSList *l = g_slist_reverse(this->childList(true, SPObject::ActionUpdate)); - while (l) { - SPObject *child = SP_OBJECT (l->data); - l = g_slist_remove (l, child); + SelContainer l=this->childList(true, SPObject::ActionUpdate); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *child = SP_OBJECT (*i); if (childflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { SPItem *item = dynamic_cast(child); @@ -211,20 +210,16 @@ void SPGroup::update(SPCtx *ctx, unsigned int flags) { void SPGroup::modified(guint flags) { // std::cout << "SPGroup::modified(): " << (getId()?getId():"null") << std::endl; SPLPEItem::modified(flags); - - SPObject *child; - if (flags & SP_OBJECT_MODIFIED_FLAG) { flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = g_slist_reverse(this->childList(true)); - - while (l) { - child = SP_OBJECT (l->data); - l = g_slist_remove (l, child); + SelContainer l=this->childList(true); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *child = SP_OBJECT (*i); if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->emitModified(flags); @@ -296,35 +291,28 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox Geom::OptRect bbox; // TODO CPPIFY: replace this const_cast later - GSList *l = const_cast(this)->childList(false, SPObject::ActionBBox); - - while (l) { - SPObject *o = SP_OBJECT (l->data); - + SelContainer l=const_cast(this)->childList(false, SPObject::ActionBBox); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); if (item && !item->isHidden()) { Geom::Affine const ct(item->transform * transform); bbox |= item->bounds(bboxtype, ct); } - - l = g_slist_remove (l, o); } return bbox; } void SPGroup::print(SPPrintContext *ctx) { - GSList *l = g_slist_reverse(this->childList(false)); - - while (l) { - SPObject *o = SP_OBJECT (l->data); - + SelContainer l=this->childList(false); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); if (item) { item->invoke_print(ctx); } - - l = g_slist_remove (l, o); } } @@ -372,17 +360,15 @@ Inkscape::DrawingItem *SPGroup::show (Inkscape::Drawing &drawing, unsigned int k } void SPGroup::hide (unsigned int key) { - GSList *l = g_slist_reverse(this->childList(false, SPObject::ActionShow)); - - while (l) { - SPObject *o = SP_OBJECT (l->data); + SelContainer l=this->childList(false, SPObject::ActionShow); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); if (item) { item->invoke_hide(key); } - - l = g_slist_remove (l, o); } // SPLPEItem::onHide(key); @@ -401,7 +387,7 @@ void SPGroup::snappoints(std::vector &p, Inkscape: void -sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done) +sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done) { g_return_if_fail (group != NULL); @@ -560,8 +546,8 @@ sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done) } Inkscape::GC::release(repr); - if (children && item) { - *children = g_slist_prepend(*children, item); + if (!children.empty() && item) { + children.push_front(dynamic_cast(item)); } items = g_slist_remove (items, items->data); @@ -576,19 +562,18 @@ sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done) * some API for list aspect of SPGroup */ -GSList *sp_item_group_item_list(SPGroup * group) +SelContainer sp_item_group_item_list(SPGroup * group) { - g_return_val_if_fail(group != NULL, NULL); - - GSList *s = NULL; + SelContainer s; + g_return_val_if_fail(group != NULL, s); for (SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { if ( dynamic_cast(o) ) { - s = g_slist_prepend(s, o); + s.push_front(o); } } - - return g_slist_reverse (s); + s.reverse(); + return s; } SPObject *sp_item_group_get_child_by_name(SPGroup *group, SPObject *ref, const gchar *name) @@ -809,9 +794,10 @@ gint SPGroup::getItemCount() const { void SPGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) { Inkscape::DrawingItem *ac = NULL; - GSList *l = g_slist_reverse(this->childList(false, SPObject::ActionShow)); - while (l) { - SPObject *o = SP_OBJECT (l->data); + SelContainer l=this->childList(false, SPObject::ActionShow); + l.reverse(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + SPObject *o = SP_OBJECT (*i); SPItem * child = dynamic_cast(o); if (child) { ac = child->invoke_show (drawing, key, flags); @@ -819,7 +805,6 @@ void SPGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem * ai->appendChild(ac); } } - l = g_slist_remove (l, o); } } @@ -828,10 +813,10 @@ void SPGroup::update_patheffect(bool write) { g_message("sp_group_update_patheffect: %p\n", lpeitem); #endif - GSList const *item_list = sp_item_group_item_list(this); + SelContainer const item_list = sp_item_group_item_list(this); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); SPLPEItem *lpeItem = dynamic_cast(subitem); if (lpeItem) { @@ -856,10 +841,10 @@ void SPGroup::update_patheffect(bool write) { static void sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup, bool write) { - GSList const *item_list = sp_item_group_item_list(group); + SelContainer const item_list = sp_item_group_item_list(group); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); SPGroup *subGroup = dynamic_cast(subitem); if (subGroup) { diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 15bb58f22..9a5ee0161 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -15,6 +15,7 @@ #include #include "sp-lpe-item.h" +#include "selection.h"//SelContainer #define SP_GROUP(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_GROUP(obj) (dynamic_cast((SPObject*)obj) != NULL) @@ -95,10 +96,10 @@ public: virtual void update_patheffect(bool write); }; -void sp_item_group_ungroup (SPGroup *group, GSList **children, bool do_done = true); +void sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done = true); -GSList *sp_item_group_item_list (SPGroup *group); +SelContainer sp_item_group_item_list (SPGroup *group); SPObject *sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const char *name); #endif diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index f059ab531..1305efd83 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -353,9 +353,9 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); } if (SP_IS_GROUP(lpeitem)) { - GSList const *item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(subitem)); } @@ -387,9 +387,9 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem) sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); } } - GSList const *item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(subitem)); } @@ -680,9 +680,9 @@ SPLPEItem::apply_to_clippath(SPItem *item) } } if(SP_IS_GROUP(item)){ - GSList const *item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); apply_to_clippath(SP_ITEM(subitem)); } } @@ -732,9 +732,9 @@ SPLPEItem::apply_to_mask(SPItem *item) } } if(SP_IS_GROUP(item)){ - GSList const *item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( GSList const *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); apply_to_mask(SP_ITEM(subitem)); } } @@ -746,9 +746,9 @@ SPLPEItem::apply_to_clip_or_mask_group(SPItem *group, SPItem *item) if (!SP_IS_GROUP(group)) { return; } - GSList *item_list = sp_item_group_item_list(SP_GROUP(group)); - for ( GSList *iter = item_list; iter; iter = iter->next ) { - SPObject *subitem = static_cast(iter->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(group)); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *subitem = static_cast(*iter); if (SP_IS_GROUP(subitem)) { apply_to_clip_or_mask_group(SP_ITEM(subitem), item); } else if (SP_IS_SHAPE(subitem)) { diff --git a/src/sp-marker.cpp b/src/sp-marker.cpp index 371a6c35c..66b445265 100644 --- a/src/sp-marker.cpp +++ b/src/sp-marker.cpp @@ -429,7 +429,7 @@ sp_marker_hide (SPMarker *marker, unsigned int key) } -const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move) +const gchar *generate_marker(SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move) { Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -452,8 +452,8 @@ const gchar *generate_marker(GSList *reprs, Geom::Rect bounds, SPDocument *docum const gchar *mark_id = repr->attribute("id"); SPObject *mark_object = document->getObjectById(mark_id); - for (GSList *i = reprs; i != NULL; i = i->next) { - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(i->data); + for (SelContainer::const_iterator i=reprs.begin();i!=reprs.end();i++){ + Inkscape::XML::Node *node = (Inkscape::XML::Node *)(*i); SPItem *copy = SP_ITEM(mark_object->appendChildRepr(node)); Geom::Affine dup_transform; diff --git a/src/sp-marker.h b/src/sp-marker.h index e804fd7dc..594c164c5 100644 --- a/src/sp-marker.h +++ b/src/sp-marker.h @@ -101,7 +101,7 @@ Inkscape::DrawingItem *sp_marker_show_instance (SPMarker *marker, Inkscape::Draw unsigned int key, unsigned int pos, Geom::Affine const &base, float linewidth); void sp_marker_hide (SPMarker *marker, unsigned int key); -const char *generate_marker (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); +const char *generate_marker (SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); SPObject *sp_marker_fork_if_necessary(SPObject *marker); #endif diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 7d24a978e..3ea480f66 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -382,14 +382,14 @@ void SPObject::changeCSS(SPCSSAttr *css, gchar const *attr) sp_repr_css_change(this->getRepr(), css, attr); } -GSList *SPObject::childList(bool add_ref, Action) { - GSList *l = NULL; +SelContainer SPObject::childList(bool add_ref, Action) { + SelContainer l; for ( SPObject *child = firstChild() ; child; child = child->getNext() ) { if (add_ref) { sp_object_ref (child); } - l = g_slist_prepend (l, child); + l.push_front(child); } return l; diff --git a/src/sp-object.h b/src/sp-object.h index ff80eaefc..858587611 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -47,11 +47,14 @@ class SPObject; #define SP_OBJECT_WRITE_ALL (1 << 2) #define SP_OBJECT_WRITE_NO_CHILDREN (1 << 3) + + #include #include #include #include #include +#include #include "version.h" #include "util/forward-pointer-iterator.h" @@ -60,6 +63,11 @@ class SPCSSAttr; class SPStyle; typedef struct _GSList GSList; +//should be in selection.h +typedef std::list SelContainer; + + + namespace Inkscape { namespace XML { class Node; @@ -330,7 +338,7 @@ public: * Retrieves the children as a GSList object, optionally ref'ing the children * in the process, if add_ref is specified. */ - GSList *childList(bool add_ref, Action action = ActionGeneral); + SelContainer childList(bool add_ref, Action action = ActionGeneral); /** * Append repr as child of this object. diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 961ab0f84..d5eff9796 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -408,7 +408,7 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se g_free(c); } -const gchar *pattern_tile(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) +const gchar *pattern_tile(const SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) { Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -426,8 +426,8 @@ const gchar *pattern_tile(GSList *reprs, Geom::Rect bounds, SPDocument *document const gchar *pat_id = repr->attribute("id"); SPObject *pat_object = document->getObjectById(pat_id); - for (GSList *i = reprs; i != NULL; i = i->next) { - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(i->data); + for (SelContainer::const_iterator i=reprs.begin();i!=reprs.end();i++){ + Inkscape::XML::Node *node = (Inkscape::XML::Node *)(*i); SPItem *copy = SP_ITEM(pat_object->appendChildRepr(node)); Geom::Affine dup_transform; diff --git a/src/sp-pattern.h b/src/sp-pattern.h index f021101e2..0e2b058b5 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -89,7 +89,7 @@ SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const char *property); void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); -const char *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); +const char *pattern_tile (const SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); SPPattern *pattern_getroot (SPPattern *pat); diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index db6db9909..0090f1855 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -55,21 +55,22 @@ SPObject *SPSwitch::_evaluateFirst() { return first; } -GSList *SPSwitch::_childList(bool add_ref, SPObject::Action action) { +SelContainer SPSwitch::_childList(bool add_ref, SPObject::Action action) { if ( action != SPObject::ActionGeneral ) { return this->childList(add_ref, action); } SPObject *child = _evaluateFirst(); + SelContainer x; if (NULL == child) - return NULL; + return x; if (add_ref) { //g_object_ref (G_OBJECT (child)); sp_object_ref(child); } - - return g_slist_prepend (NULL, child); + x.push_front(child); + return x; } const char *SPSwitch::displayName() const { @@ -109,10 +110,9 @@ void SPSwitch::_reevaluate(bool /*add_to_drawing*/) { _releaseLastItem(_cached_item); - for ( GSList *l = _childList(false, SPObject::ActionShow); - NULL != l ; l = g_slist_remove (l, l->data)) - { - SPObject *o = SP_OBJECT (l->data); + SelContainer item_list = _childList(false, SPObject::ActionShow); + for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + SPObject *o = SP_OBJECT (*iter); if ( !SP_IS_ITEM (o) ) { continue; } @@ -144,10 +144,10 @@ void SPSwitch::_releaseLastItem(SPObject *obj) void SPSwitch::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) { SPObject *evaluated_child = this->_evaluateFirst(); - GSList *l = this->_childList(false, SPObject::ActionShow); + SelContainer l = this->_childList(false, SPObject::ActionShow); - while (l) { - SPObject *o = SP_OBJECT (l->data); + for ( SelContainer::const_iterator iter=l.begin();iter!=l.end();iter++) { + SPObject *o = SP_OBJECT (*iter); if (SP_IS_ITEM (o)) { SPItem * child = SP_ITEM(o); @@ -158,8 +158,6 @@ void SPSwitch::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem ai->appendChild(ac); } } - - l = g_slist_remove (l, o); } } diff --git a/src/sp-switch.h b/src/sp-switch.h index 4fce1f5a6..6a83072e7 100644 --- a/src/sp-switch.h +++ b/src/sp-switch.h @@ -29,7 +29,7 @@ public: void resetChildEvaluated() { _reevaluate(); } - GSList *_childList(bool add_ref, SPObject::Action action); + SelContainer _childList(bool add_ref, SPObject::Action action); virtual void _showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags); SPObject *_evaluateFirst(); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 8bb3e9897..aec7051e0 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -60,6 +60,11 @@ using Inkscape::DocumentUndo; bool Ancetre(Inkscape::XML::Node *a, Inkscape::XML::Node *who); +//SHOULD DISAPPEAR +bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b){ + return sp_repr_compare_position(dynamic_cast(a),dynamic_cast(b)); +} + void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb=SP_VERB_NONE, const Glib::ustring description=""); void sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset); void sp_selected_path_create_offset_object(SPDesktop *desktop, int expand, bool updating); @@ -326,21 +331,21 @@ void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb, const Glib::ustring description) { SPDocument *doc = selection->layers()->getDocument(); - GSList *il = (GSList *) selection->itemList(); + SelContainer il= selection->itemList(); // allow union on a single object for the purpose of removing self overlapse (svn log, revision 13334) - if ( (g_slist_length(il) < 2) && (bop != bool_op_union)) { + if ( (il.size() < 2) && (bop != bool_op_union)) { boolop_display_error_message(desktop, _("Select at least 2 paths to perform a boolean operation.")); return; } - else if ( g_slist_length(il) < 1 ) { + else if ( il.size() < 1 ) { boolop_display_error_message(desktop, _("Select at least 1 path to perform a boolean union.")); return; } - g_assert(il != NULL); + g_assert(!il.empty()); - if (g_slist_length(il) > 2) { + if (il.size() > 2) { if (bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice ) { boolop_display_error_message(desktop, _("Select exactly 2 paths to perform difference, division, or path cut.")); return; @@ -354,8 +359,8 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice) { // check in the tree to find which element of the selection list is topmost (for 2-operand commands only) - Inkscape::XML::Node *a = SP_OBJECT(il->data)->getRepr(); - Inkscape::XML::Node *b = SP_OBJECT(il->next->data)->getRepr(); + Inkscape::XML::Node *a = SP_OBJECT(il.front())->getRepr(); + Inkscape::XML::Node *b = SP_OBJECT(il.back())->getRepr(); if (a == NULL || b == NULL) { boolop_display_error_message(desktop, _("Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut.")); @@ -394,38 +399,36 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool } } - il = g_slist_copy(il); - g_assert(il != NULL); + g_assert(!il.empty()); // first check if all the input objects have shapes // otherwise bail out - for (GSList *l = il; l != NULL; l = l->next) + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++) { - SPItem *item = SP_ITEM(l->data); + SPItem *item = SP_ITEM(*l); if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) { boolop_display_error_message(desktop, _("One of the objects is not a path, cannot perform boolean operation.")); - g_slist_free(il); return; } } // extract the livarot Paths from the source objects // also get the winding rule specified in the style - int nbOriginaux = g_slist_length(il); + int nbOriginaux = il.size(); std::vector originaux(nbOriginaux); std::vector origWind(nbOriginaux); int curOrig; { curOrig = 0; - for (GSList *l = il; l != NULL; l = l->next) + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++) { // apply live path effects prior to performing boolean operation - if (SP_IS_LPE_ITEM(l->data)) { - SP_LPE_ITEM(l->data)->removeAllPathEffects(true); + if (SP_IS_LPE_ITEM(*l)) { + SP_LPE_ITEM(*l)->removeAllPathEffects(true); } - SPCSSAttr *css = sp_repr_css_attr(reinterpret_cast(il->data)->getRepr(), "style"); + SPCSSAttr *css = sp_repr_css_attr(reinterpret_cast(il.front())->getRepr(), "style"); gchar const *val = sp_repr_css_property(css, "fill-rule", NULL); if (val && strcmp(val, "nonzero") == 0) { origWind[curOrig]= fill_nonZero; @@ -435,11 +438,10 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool origWind[curOrig]= fill_nonZero; } - originaux[curOrig] = Path_for_item((SPItem *) l->data, true, true); + originaux[curOrig] = Path_for_item((SPItem *) (*l), true, true); if (originaux[curOrig] == NULL || originaux[curOrig]->descr_cmd.size() <= 1) { for (int i = curOrig; i >= 0; i--) delete originaux[i]; - g_slist_free(il); return; } curOrig++; @@ -472,7 +474,8 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool theShapeA->ConvertToShape(theShape, origWind[0]); curOrig = 1; - for (GSList *l = il->next; l != NULL; l = l->next) { + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + if(*l==il.front())continue; originaux[curOrig]->ConvertWithBackData(0.1); originaux[curOrig]->Fill(theShape, curOrig); @@ -668,15 +671,13 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (res->descr_cmd.size() <= 1) { // only one command, presumably a moveto: it isn't a path - for (GSList *l = il; l != NULL; l = l->next) - { - SP_OBJECT(l->data)->deleteObject(); + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + SP_OBJECT(*l)->deleteObject(); } DocumentUndo::done(doc, SP_VERB_NONE, description); selection->clear(); delete res; - g_slist_free(il); return; } @@ -684,19 +685,17 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool SPObject *source; if ( bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice ) { if (reverseOrderForOp) { - source = SP_OBJECT(il->data); + source = SP_OBJECT(il.front()); } else { - source = SP_OBJECT(il->next->data); + source = SP_OBJECT(il.back()); } } else { // find out the bottom object - GSList *sorted = g_slist_copy((GSList *) selection->reprList()); - - sorted = g_slist_sort(sorted, (GCompareFunc) sp_repr_compare_position); + SelContainer sorted(selection->reprList()); - source = doc->getObjectByRepr((Inkscape::XML::Node *)sorted->data); + sorted.sort(sp_repr_compare_position_obj); - g_slist_free(sorted); + source = doc->getObjectByRepr((Inkscape::XML::Node *)sorted.front()); } // adjust style properties that depend on a possible transform in the source object in order @@ -721,17 +720,16 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool gchar *desc = source->desc(); // remove source paths selection->clear(); - for (GSList *l = il; l != NULL; l = l->next) { + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ // if this is the bottommost object, - if (!strcmp(reinterpret_cast(l->data)->getRepr()->attribute("id"), id)) { + if (!strcmp(reinterpret_cast(*l)->getRepr()->attribute("id"), id)) { // delete it so that its clones don't get alerted; this object will be restored shortly, with the same id - SP_OBJECT(l->data)->deleteObject(false); + SP_OBJECT(*l)->deleteObject(false); } else { // delete the object for real, so that its clones can take appropriate action - SP_OBJECT(l->data)->deleteObject(); + SP_OBJECT(*l)->deleteObject(); } } - g_slist_free(il); // premultiply by the inverse of parent's repr SPItem *parent_item = SP_ITEM(doc->getObjectByRepr(parent)); @@ -1159,12 +1157,9 @@ sp_selected_path_outline(SPDesktop *desktop) } bool did = false; - - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { - - SPItem *item = SP_ITEM(items->data); + SelContainer il(selection->itemList()); + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + SPItem *item = SP_ITEM(*l); if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) continue; @@ -1774,12 +1769,9 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) } bool did = false; - - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { - - SPItem *item = SP_ITEM(items->data); + SelContainer il(selection->itemList()); + for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + SPItem *item = SP_ITEM(*l); SPCurve *curve = NULL; if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) @@ -1975,7 +1967,7 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) static bool sp_selected_path_simplify_items(SPDesktop *desktop, - Inkscape::Selection *selection, GSList *items, + Inkscape::Selection *selection, SelContainer &items, float threshold, bool justCoalesce, float angleLimit, bool breakableAngles, bool modifySelection); @@ -1994,7 +1986,7 @@ sp_selected_path_simplify_item(SPDesktop *desktop, //If this is a group, do the children instead if (SP_IS_GROUP(item)) { - GSList *items = sp_item_group_item_list(SP_GROUP(item)); + SelContainer items = sp_item_group_item_list(SP_GROUP(item)); return sp_selected_path_simplify_items(desktop, selection, items, threshold, justCoalesce, @@ -2119,7 +2111,7 @@ sp_selected_path_simplify_item(SPDesktop *desktop, bool sp_selected_path_simplify_items(SPDesktop *desktop, - Inkscape::Selection *selection, GSList *items, + Inkscape::Selection *selection, SelContainer &items, float threshold, bool justCoalesce, float angleLimit, bool breakableAngles, bool modifySelection) @@ -2145,13 +2137,13 @@ sp_selected_path_simplify_items(SPDesktop *desktop, gdouble simplifySize = selectionSize; int pathsSimplified = 0; - int totalPathCount = g_slist_length(items); + int totalPathCount = items.size(); // set "busy" cursor desktop->setWaitingCursor(); - for (; items != NULL; items = items->next) { - SPItem *item = (SPItem *) items->data; + for (SelContainer::const_iterator l = items.begin(); l != items.end(); l++){ + SPItem *item = SP_ITEM(*l); if (!(SP_IS_GROUP(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item))) continue; @@ -2199,7 +2191,7 @@ sp_selected_path_simplify_selection(SPDesktop *desktop, float threshold, bool ju return; } - GSList *items = g_slist_copy((GSList *) selection->itemList()); + SelContainer items(selection->itemList()); bool didSomething = sp_selected_path_simplify_items(desktop, selection, items, threshold, diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 65b59f2ad..391e255a5 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -43,11 +43,10 @@ using Inkscape::DocumentUndo; static SPItem * flowtext_in_selection(Inkscape::Selection *selection) { - for (GSList *items = (GSList *) selection->itemList(); - items != NULL; - items = items->next) { - if (SP_IS_FLOWTEXT(items->data)) - return ((SPItem *) items->data); + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + if (SP_IS_FLOWTEXT(*i)) + return ((SPItem *) *i); } return NULL; } @@ -55,11 +54,10 @@ flowtext_in_selection(Inkscape::Selection *selection) static SPItem * text_or_flowtext_in_selection(Inkscape::Selection *selection) { - for (GSList *items = (GSList *) selection->itemList(); - items != NULL; - items = items->next) { - if (SP_IS_TEXT(items->data) || SP_IS_FLOWTEXT(items->data)) - return ((SPItem *) items->data); + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) + return ((SPItem *) *i); } return NULL; } @@ -67,11 +65,10 @@ text_or_flowtext_in_selection(Inkscape::Selection *selection) static SPItem * shape_in_selection(Inkscape::Selection *selection) { - for (GSList *items = (GSList *) selection->itemList(); - items != NULL; - items = items->next) { - if (SP_IS_SHAPE(items->data)) - return ((SPItem *) items->data); + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + if (SP_IS_SHAPE(*i)) + return ((SPItem *) *i); } return NULL; } @@ -90,7 +87,7 @@ text_put_on_path() Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); - if (!text || !shape || g_slist_length((GSList *) selection->itemList()) != 2) { + if (!text || !shape || selection->itemList().size() != 2) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a text and a path to put text on path.")); return; } @@ -199,11 +196,9 @@ text_remove_from_path() } bool did = false; - - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { - SPObject *obj = SP_OBJECT(items->data); + SelContainer items(selection->itemList()); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *obj = SP_OBJECT(*i); if (SP_IS_TEXT_TEXTPATH(obj)) { SPObject *tp = obj->firstChild(); @@ -219,7 +214,7 @@ text_remove_from_path() } else { DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_TEXT, _("Remove text from path")); - selection->setList(g_slist_copy((GSList *) selection->itemList())); // reselect to update statusbar description + selection->setList(selection->itemList()); // reselect to update statusbar description } } @@ -265,10 +260,9 @@ text_remove_all_kerns() bool did = false; - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { - SPObject *obj = SP_OBJECT(items->data); + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *obj = SP_OBJECT(*i); if (!SP_IS_TEXT(obj) && !SP_IS_TSPAN(obj) && !SP_IS_FLOWTEXT(obj)) { continue; @@ -302,7 +296,7 @@ text_flow_into_shape() SPItem *text = text_or_flowtext_in_selection(selection); SPItem *shape = shape_in_selection(selection); - if (!text || !shape || g_slist_length((GSList *) selection->itemList()) < 2) { + if (!text || !shape || selection->itemList().size() < 2) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a text and one or more paths or shapes to flow text into frame.")); return; } @@ -326,10 +320,9 @@ text_flow_into_shape() g_return_if_fail(SP_IS_FLOWREGION(object)); /* Add clones */ - for (GSList *items = (GSList *) selection->itemList(); - items != NULL; - items = items->next) { - SPItem *item = SP_ITEM(items->data); + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_SHAPE(item)){ Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); clone->setAttribute("x", "0"); @@ -394,23 +387,22 @@ text_unflow () Inkscape::Selection *selection = desktop->getSelection(); - if (!flowtext_in_selection(selection) || g_slist_length((GSList *) selection->itemList()) < 1) { + if (!flowtext_in_selection(selection) || selection->itemList().size() < 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select a flowed text to unflow it.")); return; } - GSList *new_objs = NULL; + SelContainer new_objs; GSList *old_objs = NULL; - for (GSList *items = g_slist_copy((GSList *) selection->itemList()); - items != NULL; - items = items->next) { + SelContainer items = selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ - if (!SP_IS_FLOWTEXT(SP_OBJECT(items->data))) { + if (!SP_IS_FLOWTEXT(SP_OBJECT(*i))) { continue; } - SPItem *flowtext = SP_ITEM(items->data); + SPItem *flowtext = SP_ITEM(*i); // we discard transform when unflowing, but we must preserve expansion which is visible as // font size multiplier @@ -451,7 +443,7 @@ text_unflow () SPText *text = SP_TEXT(text_object); text->_adjustFontsizeRecursive(text, ex); - new_objs = g_slist_prepend (new_objs, text_object); + new_objs.push_front(text_object); old_objs = g_slist_prepend (old_objs, flowtext); Inkscape::GC::release(rtext); @@ -466,7 +458,6 @@ text_unflow () } g_slist_free (old_objs); - g_slist_free (new_objs); DocumentUndo::done(doc, SP_VERB_CONTEXT_TEXT, _("Unflow flowed text")); @@ -487,11 +478,11 @@ flowtext_to_text() bool did = false; - GSList *reprs = NULL; - GSList *items = g_slist_copy((GSList *) selection->itemList()); - for (; items != NULL; items = items->next) { + SelContainer reprs; + SelContainer items(selection->itemList()); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = (SPItem *) items->data; + SPItem *item = (SPItem *) *i; if (!SP_IS_FLOWTEXT(item)) continue; @@ -519,10 +510,9 @@ flowtext_to_text() Inkscape::GC::release(repr); item->deleteObject(); - reprs = g_slist_prepend(reprs, repr); + reprs.push_front(dynamic_cast(repr)); } - g_slist_free(items); if (did) { DocumentUndo::done(desktop->getDocument(), @@ -535,7 +525,6 @@ flowtext_to_text() _("No flowed text(s) to convert in the selection.")); } - g_slist_free(reprs); } diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 4a962ab4c..44d90b4ae 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -67,12 +67,11 @@ static void te_update_layout_now (SPItem *item) void te_update_layout_now_recursive(SPItem *item) { if (SP_IS_GROUP(item)) { - GSList *item_list = sp_item_group_item_list(SP_GROUP(item)); - for(GSList* elem = item_list; elem; elem = elem->next) { - SPItem* list_item = static_cast(elem->data); + SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); + for(SelContainer::const_iterator i=item_list.begin();i!=item_list.end();i++){ + SPItem* list_item = static_cast(*i); te_update_layout_now_recursive(list_item); } - g_slist_free(item_list); } else if (SP_IS_TEXT(item)) SP_TEXT(item)->rebuildLayout(); else if (SP_IS_FLOWTEXT (item)) diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index cc3d000a3..892ecdb87 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -65,7 +65,7 @@ SPImage *Tracer::getSelectedSPImage() if (sioxEnabled) { SPImage *img = NULL; - GSList const *list = sel->itemList(); + SelContainer const list = sel->itemList(); std::vector items; sioxShapes.clear(); @@ -74,13 +74,13 @@ SPImage *Tracer::getSelectedSPImage() them as bottom-to-top so that we can discover the image and any SPItems above it */ - for ( ; list ; list=list->next) + for(SelContainer::const_iterator x=list.begin();x!=list.end();x++){ { - if (!SP_IS_ITEM(list->data)) + if (!SP_IS_ITEM(*x)) { continue; } - SPItem *item = SP_ITEM(list->data); + SPItem *item = SP_ITEM(*x); items.insert(items.begin(), item); } std::vector::iterator iter; diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 94a1eb2dc..20b43af3b 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -523,8 +523,9 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a // resize each object in the selection if (separately) { - for (GSList *i = const_cast(selection->itemList()) ; i ; i = i->next) { - SPItem *item = dynamic_cast(static_cast(i->data)); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (item) { Geom::OptRect obj_size = item->desktopVisualBounds(); if ( obj_size ) { @@ -578,8 +579,9 @@ bool ClipboardManagerImpl::pastePathEffect(SPDesktop *desktop) desktop->doc()->importDefs(tempdoc); // make sure all selected items are converted to paths first (i.e. rectangles) sp_selected_to_lpeitems(desktop); - for (GSList *itemptr = const_cast(selection->itemList()) ; itemptr ; itemptr = itemptr->next) { - SPItem *item = reinterpret_cast(itemptr->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); _applyPathEffect(item, effectstack); } @@ -659,10 +661,10 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) */ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) { - GSList const *items = selection->itemList(); // copy the defs used by all items - for (GSList *i = const_cast(items) ; i != NULL ; i = i->next) { - SPItem *item = dynamic_cast(static_cast(i->data)); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (item) { _copyUsedDefs(item); } else { @@ -671,11 +673,11 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) } // copy the representation of the items - GSList *sorted_items = g_slist_copy(const_cast(items)); - sorted_items = g_slist_sort(sorted_items, (GCompareFunc) sp_object_compare_position); + SelContainer sorted_items(itemlist); + sorted_items.sort(sp_object_compare_position); - for (GSList *i = sorted_items ; i ; i = i->next) { - SPItem *item = dynamic_cast(static_cast(i->data)); + for(SelContainer::const_iterator i=sorted_items.begin();i!=sorted_items.end();i++){ + SPItem *item = SP_ITEM(*i); if (item) { Inkscape::XML::Node *obj = item->getRepr(); Inkscape::XML::Node *obj_copy = _copyNode(obj, _doc, _root); @@ -695,8 +697,8 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) } // copy style for Paste Style action - if (sorted_items) { - SPObject *object = static_cast(sorted_items->data); + if (!sorted_items.empty()) { + SPObject *object = static_cast(sorted_items.front()); SPItem *item = dynamic_cast(object); if (item) { SPCSSAttr *style = take_style_from_item(item); @@ -719,7 +721,6 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) sp_repr_set_point(_clipnode, "max", size->max()); } - g_slist_free(sorted_items); } @@ -1156,8 +1157,8 @@ void ClipboardManagerImpl::_onGet(Gtk::SelectionData &sel, guint /*info*/) sp_repr_get_double(nv, "inkscape:pageopacity", &opacity); bgcolor |= SP_COLOR_F_TO_U(opacity); } - - sp_export_png_file(_clipboardSPDoc, filename, area, width, height, dpi, dpi, bgcolor, NULL, NULL, true, NULL); + SelContainer x; + sp_export_png_file(_clipboardSPDoc, filename, area, width, height, dpi, dpi, bgcolor, NULL, NULL, true, x); } else { diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 65bc94011..562bc28b7 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -98,8 +98,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups"); using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; const Coeffs &a = _allCoeffs[index]; @@ -149,18 +148,19 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) b = selection->preferredBounds(); //Move each item in the selected list separately - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { + SPItem* item=static_cast (*it); desktop->getDocument()->ensureUpToDate(); if (!sel_as_group) - b = (*it)->desktopPreferredBounds(); - if (b && (!focus || (*it) != focus)) { + b = (item)->desktopPreferredBounds(); + if (b && (!focus || (item) != focus)) { Geom::Point const sp(a.sx0 * b->min()[Geom::X] + a.sx1 * b->max()[Geom::X], a.sy0 * b->min()[Geom::Y] + a.sy1 * b->max()[Geom::Y]); Geom::Point const mp_rel( mp - sp ); if (LInfty(mp_rel) > 1e-9) { - sp_item_move_rel(*it, Geom::Translate(mp_rel)); + sp_item_move_rel(item, Geom::Translate(mp_rel)); changed = true; } } @@ -251,25 +251,24 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects - std::list::iterator second(selected.begin()); + SelContainer::iterator second(selected.begin()); ++second; if (second == selected.end()) return; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int prefs_bbox = prefs->getBool("/tools/bounding_box"); std::vector< BBoxSort > sorted; - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) - { - Geom::OptRect bbox = !prefs_bbox ? (*it)->desktopVisualBounds() : (*it)->desktopGeometricBounds(); + {SPItem *item=static_cast(*it); + Geom::OptRect bbox = !prefs_bbox ? (item)->desktopVisualBounds() : (item)->desktopGeometricBounds(); if (bbox) { - sorted.push_back(BBoxSort(*it, *bbox, _orientation, _kBegin, _kEnd)); + sorted.push_back(BBoxSort(item, *bbox, _orientation, _kBegin, _kEnd)); } } //sort bbox by anchors @@ -541,6 +540,10 @@ private : return (a->isSiblingOf(b)); } + static bool local_obj_compare(SPObject* a,SPObject* b){ + return ActionExchangePositions::sort_compare(static_cast(a),static_cast(b)); + } + virtual void on_button_click() { SPDesktop *desktop = _dialog.getDesktop(); @@ -550,8 +553,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -569,20 +571,22 @@ private : } else { // sorting by ZOrder is outomatically done by not setting the center center.reset(); } - selected.sort(ActionExchangePositions::sort_compare); + selected.sort(local_obj_compare); } - std::list::iterator it(selected.begin()); - Geom::Point p1 = (*it)->getCenter(); + SelContainer::iterator it(selected.begin()); + SPItem* item=static_cast(*it); + Geom::Point p1 = (item)->getCenter(); for (++it ;it != selected.end(); ++it) { - Geom::Point p2 = (*it)->getCenter(); + item=static_cast(*it); + Geom::Point p2 = (item)->getCenter(); Geom::Point delta = p1 - p2; - sp_item_move_rel((*it),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); + sp_item_move_rel((item),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); p1 = p2; } - Geom::Point p2 = selected.front()->getCenter(); + Geom::Point p2 = static_cast(selected.front())->getCenter(); Geom::Point delta = p1 - p2; - sp_item_move_rel(selected.front(),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); + sp_item_move_rel(static_cast(selected.front()),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); // restore compensation setting prefs->setInt("/options/clonecompensation/value", saved_compensation); @@ -615,8 +619,8 @@ private : Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - - unclump ((GSList *) _dialog.getDesktop()->getSelection()->itemList()); + SelContainer x(_dialog.getDesktop()->getSelection()->itemList()); + unclump (x); // restore compensation setting prefs->setInt("/options/clonecompensation/value", saved_compensation); @@ -647,8 +651,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -672,12 +675,13 @@ private : int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { + SPItem* item=static_cast(*it); desktop->getDocument()->ensureUpToDate(); - Geom::OptRect item_box = !prefs_bbox ? (*it)->desktopVisualBounds() : (*it)->desktopGeometricBounds(); + Geom::OptRect item_box = !prefs_bbox ? (item)->desktopVisualBounds() : (item)->desktopGeometricBounds(); if (item_box) { // find new center, staying within bbox double x = _dialog.randomize_bbox->min()[Geom::X] + (*item_box)[Geom::X].extent() /2 + @@ -686,7 +690,7 @@ private : g_random_double_range (0, (*_dialog.randomize_bbox)[Geom::Y].extent() - (*item_box)[Geom::Y].extent()); // displacement is the new center minus old: Geom::Point t = Geom::Point (x, y) - 0.5*(item_box->max() + item_box->min()); - sp_item_move_rel(*it, Geom::Translate(t)); + sp_item_move_rel(item, Geom::Translate(t)); } } @@ -746,8 +750,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -758,20 +761,21 @@ private : std::vector sorted; - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { - if (SP_IS_TEXT (*it) || SP_IS_FLOWTEXT (*it)) { - Inkscape::Text::Layout const *layout = te_get_layout(*it); + SPItem* item=static_cast(*it); + if (SP_IS_TEXT (item) || SP_IS_FLOWTEXT (item)) { + Inkscape::Text::Layout const *layout = te_get_layout(item); boost::optional pt = layout->baselineAnchorPoint(); if (pt) { - Geom::Point base = *pt * (*it)->i2dt_affine(); + Geom::Point base = *pt * (item)->i2dt_affine(); if (base[Geom::X] < b_min[Geom::X]) b_min[Geom::X] = base[Geom::X]; if (base[Geom::Y] < b_min[Geom::Y]) b_min[Geom::Y] = base[Geom::Y]; if (base[Geom::X] > b_max[Geom::X]) b_max[Geom::X] = base[Geom::X]; if (base[Geom::Y] > b_max[Geom::Y]) b_max[Geom::Y] = base[Geom::Y]; - Baselines b (*it, base, _orientation); + Baselines b (item, base, _orientation); sorted.push_back(b); } } @@ -801,18 +805,19 @@ private : } } else { - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { - if (SP_IS_TEXT (*it) || SP_IS_FLOWTEXT (*it)) { - Inkscape::Text::Layout const *layout = te_get_layout(*it); + SPItem* item=static_cast(*it); + if (SP_IS_TEXT (item) || SP_IS_FLOWTEXT (item)) { + Inkscape::Text::Layout const *layout = te_get_layout(item); boost::optional pt = layout->baselineAnchorPoint(); if (pt) { - Geom::Point base = *pt * (*it)->i2dt_affine(); + Geom::Point base = *pt * (item)->i2dt_affine(); Geom::Point t(0.0, 0.0); t[_orientation] = b_min[_orientation] - base[_orientation]; - sp_item_move_rel(*it, Geom::Translate(t)); + sp_item_move_rel(item, Geom::Translate(t)); changed = true; } } diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index fede30b26..abfab8b19 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -1359,7 +1359,7 @@ void CloneTiler::clonetiler_change_selection(Inkscape::Selection *selection, Gtk return; } - if (g_slist_length ((GSList *) selection->itemList()) > 1) { + if (selection->itemList().size() > 1) { gtk_widget_set_sensitive (buttons, FALSE); gtk_label_set_markup (GTK_LABEL(status), _("More than one object selected.")); return; @@ -2096,7 +2096,7 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) Inkscape::Selection *selection = desktop->getSelection(); // check if something is selected - if (selection->isEmpty() || g_slist_length((GSList *) selection->itemList()) > 1) { + if (selection->isEmpty() || selection->itemList().size() > 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one object whose tiled clones to unclump.")); return; } @@ -2104,11 +2104,11 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) SPObject *obj = selection->singleItem(); SPObject *parent = obj->parent; - GSList *to_unclump = NULL; // not including the original + SelContainer to_unclump; // not including the original for (SPObject *child = parent->firstChild(); child != NULL; child = child->next) { if (clonetiler_is_a_clone_of (child, obj)) { - to_unclump = g_slist_prepend (to_unclump, child); + to_unclump.push_front(child); } } @@ -2116,8 +2116,6 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) unclump (to_unclump); - g_slist_free (to_unclump); - DocumentUndo::done(desktop->getDocument(), SP_VERB_DIALOG_CLONETILER, _("Unclump tiled clones")); } @@ -2147,7 +2145,7 @@ void CloneTiler::clonetiler_remove(GtkWidget */*widget*/, GtkWidget *dlg, bool d Inkscape::Selection *selection = desktop->getSelection(); // check if something is selected - if (selection->isEmpty() || g_slist_length((GSList *) selection->itemList()) > 1) { + if (selection->isEmpty() || selection->itemList().size() > 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select one object whose tiled clones to remove.")); return; } @@ -2225,7 +2223,7 @@ void CloneTiler::clonetiler_apply(GtkWidget */*widget*/, GtkWidget *dlg) } // Check if more than one object is selected. - if (g_slist_length((GSList *) selection->itemList()) > 1) { + if (selection->itemList().size() > 1) { desktop->getMessageStack()->flash(Inkscape::ERROR_MESSAGE, _("If you want to clone several objects, group them and clone the group.")); return; } diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 6d90c792e..fc6094c9f 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -605,7 +605,7 @@ void Export::onBatchClicked () void Export::updateCheckbuttons () { - gint num = g_slist_length((GSList *) SP_ACTIVE_DESKTOP->getSelection()->itemList()); + gint num = SP_ACTIVE_DESKTOP->getSelection()->itemList().size(); if (num >= 2) { batch_export.set_sensitive(true); batch_export.set_label(g_strdup_printf (ngettext("B_atch export %d selected object","B_atch export %d selected objects",num), num)); @@ -817,9 +817,9 @@ void Export::onAreaToggled () one that's nice */ if (filename.empty()) { const gchar * id = "object"; - const GSList * reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); - for(; reprlst != NULL; reprlst = reprlst->next) { - Inkscape::XML::Node * repr = (Inkscape::XML::Node *)reprlst->data; + const SelContainer reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); + for(SelContainer::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { + Inkscape::XML::Node * repr = (Inkscape::XML::Node *)(*i); if (repr->attribute("id")) { id = repr->attribute("id"); break; @@ -1010,7 +1010,7 @@ void Export::onExport () if (batch_export.get_active ()) { // Batch export of selected objects - gint num = g_slist_length(const_cast(desktop->getSelection()->itemList())); + gint num = (desktop->getSelection()->itemList()).size(); gint n = 0; if (num < 1) { @@ -1024,8 +1024,9 @@ void Export::onExport () gint export_count = 0; - for (GSList *i = const_cast(desktop->getSelection()->itemList()); i && !interrupted; i = i->next) { - SPItem *item = reinterpret_cast(i->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i = itemlist.begin();i!=itemlist.end() && !interrupted ;i++){ + SPItem *item = reinterpret_cast(*i); prog_dlg->set_data("current", GINT_TO_POINTER(n)); prog_dlg->set_data("total", GINT_TO_POINTER(num)); @@ -1063,13 +1064,13 @@ void Export::onExport () _("Exporting file %s..."), safeFile), desktop); MessageCleaner msgFlashCleanup(desktop->messageStack()->flashF(Inkscape::IMMEDIATE_MESSAGE, _("Exporting file %s..."), safeFile), desktop); - + SelContainer x; if (!sp_export_png_file (doc, path.c_str(), *area, width, height, dpi, dpi, nv->pagecolor, onProgressCallback, (void*)prog_dlg, TRUE, // overwrite without asking - hide ? const_cast(desktop->getSelection()->itemList()) : NULL + hide ? (desktop->getSelection()->itemList()) : x )) { gchar * error = g_strdup_printf(_("Could not export to filename %s.\n"), safeFile); @@ -1153,12 +1154,13 @@ void Export::onExport () prog_dlg->set_data("total", GINT_TO_POINTER(0)); /* Do export */ + SelContainer x; ExportResult status = sp_export_png_file(desktop->getDocument(), path.c_str(), Geom::Rect(Geom::Point(x0, y0), Geom::Point(x1, y1)), width, height, xdpi, ydpi, nv->pagecolor, onProgressCallback, (void*)prog_dlg, FALSE, - hide ? const_cast(desktop->getSelection()->itemList()) : NULL + hide ? (desktop->getSelection()->itemList()) : x ); if (status == EXPORT_ERROR) { gchar * safeFile = Inkscape::IO::sanitizeString(path.c_str()); @@ -1224,7 +1226,7 @@ void Export::onExport () break; } case SELECTION_SELECTION: { - const GSList * reprlst; + SelContainer reprlst; SPDocument * doc = SP_ACTIVE_DOCUMENT; bool modified = false; @@ -1232,8 +1234,8 @@ void Export::onExport () DocumentUndo::setUndoSensitive(doc, false); reprlst = desktop->getSelection()->reprList(); - for(; reprlst != NULL; reprlst = reprlst->next) { - Inkscape::XML::Node * repr = static_cast(reprlst->data); + for(SelContainer::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { + Inkscape::XML::Node * repr = dynamic_cast(*i); const gchar * temp_string; Glib::ustring dir = Glib::path_get_dirname(filename.c_str()); const gchar* docURI=SP_ACTIVE_DOCUMENT->getURI(); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 3da0e0043..657d6771b 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -690,7 +690,7 @@ private: void select_svg_element(){ Inkscape::Selection* sel = _desktop->getSelection(); if (sel->isEmpty()) return; - Inkscape::XML::Node* node = (Inkscape::XML::Node*) g_slist_nth_data((GSList *)sel->reprList(), 0); + Inkscape::XML::Node* node = (Inkscape::XML::Node*) sel->reprList().front(); if (!node || !node->matchAttributeName("id")) return; std::ostringstream xlikhref; @@ -1465,9 +1465,9 @@ void FilterEffectsDialog::FilterModifier::update_selection(Selection *sel) } std::set used; - - for (GSList const *i = sel->itemList(); i != NULL; i = i->next) { - SPObject *obj = SP_OBJECT (i->data); + SelContainer itemlist=sel->itemList(); + for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPStyle *style = obj->style; if (!style || !SP_IS_ITEM(obj)) { continue; @@ -1545,10 +1545,9 @@ void FilterEffectsDialog::FilterModifier::on_selection_toggled(const Glib::ustri if((*iter)[_columns.sel] == 1) filter = 0; - GSList const *items = sel->itemList(); - - for (GSList const *i = items; i != NULL; i = i->next) { - SPItem * item = SP_ITEM(i->data); + SelContainer itemlist=sel->itemList(); + for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + SPItem * item = SP_ITEM(*i); SPStyle *style = item->style; g_assert(style != NULL); @@ -1650,12 +1649,13 @@ void FilterEffectsDialog::FilterModifier::remove_filter() SPDocument* doc = filter->document; // Delete all references to this filter - GSList *all = get_all_items(NULL, _desktop->currentRoot(), _desktop, false, false, true, NULL); - for (GSList *i = all; i != NULL; i = i->next) { - if (!SP_IS_ITEM(i->data)) { + SelContainer x,y; + SelContainer all = get_all_items(x, _desktop->currentRoot(), _desktop, false, false, true, y); + for(SelContainer::const_iterator i=all.begin(); all.end() != i; i++) { + if (!SP_IS_ITEM(*i)) { continue; } - SPItem *item = SP_ITEM(i->data); + SPItem *item = SP_ITEM(*i); if (!item->style) { continue; } @@ -1668,9 +1668,6 @@ void FilterEffectsDialog::FilterModifier::remove_filter() } } } - if (all) { - g_slist_free(all); - } //XML Tree being used directly here while it shouldn't be. sp_repr_unparent(filter->getRepr()); diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 951cb01ea..43ecb60ac 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -549,7 +549,7 @@ bool Find::item_font_match(SPItem *item, const gchar *text, bool exact, bool cas } -GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) +SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) { Glib::ustring tmp = entry_find.getEntry()->get_text(); if (tmp.empty()) { @@ -557,17 +557,17 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) } gchar* text = g_strdup(tmp.c_str()); - GSList *in = l; - GSList *out = NULL; + SelContainer in = l; + SelContainer out; if (check_searchin_text.get_active()) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_text_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(), *i)) { + out.push_front(*i); if (_action_replace) { item_text_match(item, text, exact, casematch, _action_replace); } @@ -584,12 +584,12 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) bool attrvalue = check_attributevalue.get_active(); if (ids) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); if (item_id_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(), *i)) { + out.push_front(*i); if (_action_replace) { item_id_match(item, text, exact, casematch, _action_replace); } @@ -600,14 +600,13 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) if (style) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_style_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(), *i)){ + out.push_front(*i); if (_action_replace) { item_style_match(item, text, exact, casematch, _action_replace); } @@ -618,13 +617,13 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) if (attrname) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attr_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(), *i)) { + out.push_front(*i); if (_action_replace) { item_attr_match(item, text, exact, casematch, _action_replace); } @@ -635,13 +634,13 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) if (attrvalue) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attrvalue_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(), *i)) { + out.push_front(*i); if (_action_replace) { item_attrvalue_match(item, text, exact, casematch, _action_replace); } @@ -652,13 +651,13 @@ GSList *Find::filter_fields (GSList *l, bool exact, bool casematch) if (font) { - for (GSList *i = in; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_font_match(item, text, exact, casematch)) { - if (!g_slist_find(out, i->data)) { - out = g_slist_prepend (out, i->data); + if (out.end()==find(out.begin(),out.end(),*i)) { + out.push_front(*i); if (_action_replace) { item_font_match(item, text, exact, casematch, _action_replace); } @@ -716,29 +715,29 @@ bool Find::item_type_match (SPItem *item) return false; } -GSList *Find::filter_types (GSList *l) +SelContainer Find::filter_types (SelContainer &l) { - GSList *n = NULL; - for (GSList *i = l; i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + SelContainer n; + for(SelContainer::const_iterator i=l.begin(); l.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_type_match(item)) { - n = g_slist_prepend (n, i->data); + n.push_front(*i); } } return n; } -GSList *Find::filter_list (GSList *l, bool exact, bool casematch) +SelContainer &Find::filter_list (SelContainer &l, bool exact, bool casematch) { l = filter_types (l); l = filter_fields (l, exact, casematch); return l; } -GSList *Find::all_items (SPObject *r, GSList *l, bool hidden, bool locked) +SelContainer &Find::all_items (SPObject *r, SelContainer &l, bool hidden, bool locked) { if (dynamic_cast(r)) { return l; // we're not interested in items in defs @@ -752,7 +751,7 @@ GSList *Find::all_items (SPObject *r, GSList *l, bool hidden, bool locked) SPItem *item = dynamic_cast(child); if (item && !child->cloned && !desktop->isLayer(item)) { if ((hidden || !desktop->itemIsHidden(item)) && (locked || !item->isLocked())) { - l = g_slist_prepend (l, child); + l.push_front(child); } } l = all_items (child, l, hidden, locked); @@ -760,16 +759,17 @@ GSList *Find::all_items (SPObject *r, GSList *l, bool hidden, bool locked) return l; } -GSList *Find::all_selection_items (Inkscape::Selection *s, GSList *l, SPObject *ancestor, bool hidden, bool locked) +SelContainer &Find::all_selection_items (Inkscape::Selection *s, SelContainer &l, SPObject *ancestor, bool hidden, bool locked) { - for (GSList *i = (GSList *) s->itemList(); i != NULL; i = i->next) { - SPObject *obj = reinterpret_cast(i->data); + SelContainer itemlist=s->itemList(); + for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item && !item->cloned && !desktop->isLayer(item)) { if (!ancestor || ancestor->isAncestorOf(item)) { if ((hidden || !desktop->itemIsHidden(item)) && (locked || !item->isLocked())) { - l = g_slist_prepend (l, i->data); + l.push_back(*i); } } } @@ -817,7 +817,7 @@ void Find::onAction() bool casematch = check_case_sensitive.get_active(); blocked = true; - GSList *l = NULL; + SelContainer l; if (check_scope_selection.get_active()) { if (check_scope_layer.get_active()) { l = all_selection_items (desktop->selection, l, desktop->currentLayer(), hidden, locked); @@ -831,12 +831,12 @@ void Find::onAction() l = all_items(desktop->getDocument()->getRoot(), l, hidden, locked); } } - guint all = g_slist_length (l); + guint all = l.size(); - GSList *n = filter_list (l, exact, casematch); + SelContainer n = filter_list (l, exact, casematch); - if (n != NULL) { - int count = g_slist_length (n); + if (!n.empty()) { + int count = n.size(); desktop->messageStack()->flashF(Inkscape::NORMAL_MESSAGE, // TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed ngettext("%d object found (out of %d), %s match.", @@ -857,7 +857,7 @@ void Find::onAction() Inkscape::Selection *selection = desktop->getSelection(); selection->clear(); selection->setList(n); - SPObject *obj = reinterpret_cast(n->data); + SPObject *obj = reinterpret_cast(n.front()); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); scroll_to_show_item(desktop, item); diff --git a/src/ui/dialog/find.h b/src/ui/dialog/find.h index c0c635f94..1aded96f2 100644 --- a/src/ui/dialog/find.h +++ b/src/ui/dialog/find.h @@ -16,6 +16,7 @@ # include #endif +#include "selection.h" #include "ui/widget/panel.h" #include "ui/widget/button.h" #include "ui/widget/entry.h" @@ -148,10 +149,10 @@ protected: /** * Function to filter a list of items based on the item type by calling each item_XXX_match function */ - GSList * filter_fields (GSList *l, bool exact, bool casematch); + SelContainer filter_fields (SelContainer &l, bool exact, bool casematch); bool item_type_match (SPItem *item); - GSList * filter_types (GSList *l); - GSList * filter_list (GSList *l, bool exact, bool casematch); + SelContainer filter_types (SelContainer &l); + SelContainer & filter_list (SelContainer &l, bool exact, bool casematch); /** * Find a string within a string and returns true if found with options for exact and casematching @@ -172,12 +173,12 @@ protected: * recursive function to return a list of all the items in the SPObject tree * */ - GSList * all_items (SPObject *r, GSList *l, bool hidden, bool locked); + SelContainer & all_items (SPObject *r, SelContainer &l, bool hidden, bool locked); /** * to return a list of all the selected items * */ - GSList * all_selection_items (Inkscape::Selection *s, GSList *l, SPObject *ancestor, bool hidden, bool locked); + SelContainer & all_selection_items (Inkscape::Selection *s, SelContainer &l, SPObject *ancestor, bool hidden, bool locked); /** * Shrink the dialog size when the expander widget is closed diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index 2b9053da9..1ef97b996 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -578,9 +578,10 @@ void GlyphsPanel::setTargetDesktop(SPDesktop *desktop) void GlyphsPanel::insertText() { SPItem *textItem = 0; - for (const GSList *item = targetDesktop->selection->itemList(); item; item = item->next ) { - if (SP_IS_TEXT(item->data) || SP_IS_FLOWTEXT(item->data)) { - textItem = SP_ITEM(item->data); + SelContainer itemlist=targetDesktop->selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { + textItem = SP_ITEM(*i); break; } } @@ -687,8 +688,9 @@ void GlyphsPanel::selectionModifiedCB(guint flags) void GlyphsPanel::calcCanInsert() { int items = 0; - for (const GSList *item = targetDesktop->selection->itemList(); item; item = item->next ) { - if (SP_IS_TEXT(item->data) || SP_IS_FLOWTEXT(item->data)) { + SelContainer itemlist=targetDesktop->selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { ++items; } } diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 28a65e0b4..86cf629c1 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1906,11 +1906,10 @@ void ContextMenu::ActivateGroup(void) void ContextMenu::ActivateUngroup(void) { - GSList *children = NULL; + SelContainer children; - sp_item_group_ungroup(static_cast(_item), &children); + sp_item_group_ungroup(static_cast(_item), children); _desktop->selection->setList(children); - g_slist_free(children); } void ContextMenu::MakeAnchorMenu(void) @@ -1959,10 +1958,9 @@ void ContextMenu::AnchorLinkFollow(void) void ContextMenu::AnchorLinkRemove(void) { - GSList *children = NULL; - sp_item_group_ungroup(static_cast(_item), &children, false); + SelContainer children; + sp_item_group_ungroup(static_cast(_item), children, false); DocumentUndo::done(_desktop->doc(), SP_VERB_NONE, _("Remove link")); - g_slist_free(children); } void ContextMenu::MakeImageMenu (void) @@ -2051,8 +2049,6 @@ void ContextMenu::ImageEdit(void) _desktop->selection->set(_item); } - GSList const *selected = _desktop->selection->itemList(); - GError* errThing = 0; Glib::ustring cmdline = getImageEditorName(); Glib::ustring name; @@ -2079,8 +2075,9 @@ void ContextMenu::ImageEdit(void) } #endif - for (GSList const *iter = selected; iter != NULL; iter = iter->next) { - Inkscape::XML::Node *ir = SP_ITEM(iter->data)->getRepr(); + SelContainer itemlist=_desktop->selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + Inkscape::XML::Node *ir = SP_ITEM(*i)->getRepr(); const gchar *href = ir->attribute("xlink:href"); if (strncmp (href,"file:",5) == 0) { diff --git a/src/unclump.cpp b/src/unclump.cpp index 940369d7a..d1cfc6628 100644 --- a/src/unclump.cpp +++ b/src/unclump.cpp @@ -168,13 +168,12 @@ unclump_dist (SPItem *item1, SPItem *item2) /** Average unclump_dist from item to others */ -static double unclump_average (SPItem *item, GSList *others) +static double unclump_average (SPItem *item, SelContainer &others) { int n = 0; double sum = 0; - - for (GSList *i = others; i != NULL; i = i->next) { - SPItem *other = SP_ITEM (i->data); + for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + SPItem *other = SP_ITEM (*i); if (other == item) continue; @@ -192,13 +191,13 @@ static double unclump_average (SPItem *item, GSList *others) /** Closest to item among others */ -static SPItem *unclump_closest (SPItem *item, GSList *others) +static SPItem *unclump_closest (SPItem *item, SelContainer &others) { double min = HUGE_VAL; SPItem *closest = NULL; - for (GSList *i = others; i != NULL; i = i->next) { - SPItem *other = SP_ITEM (i->data); + for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + SPItem *other = SP_ITEM (*i); if (other == item) continue; @@ -216,13 +215,12 @@ static SPItem *unclump_closest (SPItem *item, GSList *others) /** Most distant from item among others */ -static SPItem *unclump_farest (SPItem *item, GSList *others) +static SPItem *unclump_farest (SPItem *item, SelContainer &others) { double max = -HUGE_VAL; SPItem *farest = NULL; - - for (GSList *i = others; i != NULL; i = i->next) { - SPItem *other = SP_ITEM (i->data); + for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + SPItem *other = SP_ITEM (*i); if (other == item) continue; @@ -242,8 +240,8 @@ Removes from the \a rest list those items that are "behind" \a closest as seen f i.e. those on the other side of the line through \a closest perpendicular to the direction from \a item to \a closest. Returns a newly created list which must be freed. */ -static GSList * -unclump_remove_behind (SPItem *item, SPItem *closest, GSList *rest) +static SelContainer +unclump_remove_behind (SPItem *item, SPItem *closest, SelContainer &rest) { Geom::Point it = unclump_center (item); Geom::Point p1 = unclump_center (closest); @@ -260,10 +258,9 @@ unclump_remove_behind (SPItem *item, SPItem *closest, GSList *rest) // substitute the item into it: double val_item = A * it[Geom::X] + B * it[Geom::Y] + C; - GSList *out = NULL; - - for (GSList *i = rest; i != NULL; i = i->next) { - SPItem *other = SP_ITEM (i->data); + SelContainer out; + for (SelContainer::const_iterator i = rest.begin(); i != rest.end();i++) { + SPItem *other = SP_ITEM (*i); if (other == item) continue; @@ -274,7 +271,7 @@ unclump_remove_behind (SPItem *item, SPItem *closest, GSList *rest) if (val_item * val_other <= 1e-6) { // different signs, which means item and other are on the different sides of p1-p2 line; skip } else { - out = g_slist_prepend (out, other); + out.push_front(other); } } @@ -334,34 +331,32 @@ similar to "engraver dots". The only distribution which is unchanged by unclumpi grid. May be called repeatedly for stronger effect. */ void -unclump (GSList *items) +unclump (SelContainer &items) { c_cache.clear(); wh_cache.clear(); - for (GSList *i = items; i != NULL; i = i->next) { // for each original/clone x: - SPItem *item = SP_ITEM (i->data); + for (SelContainer::const_iterator i = items.begin(); i != items.end();i++) { // for each original/clone x: + SPItem *item = SP_ITEM (*i); - GSList *nei = NULL; + SelContainer nei; - GSList *rest = g_slist_copy (items); - rest = g_slist_remove (rest, item); + SelContainer rest(items); + rest.remove(item); - while (rest != NULL) { + while (!rest.empty()) { SPItem *closest = unclump_closest (item, rest); if (closest) { - nei = g_slist_prepend (nei, closest); - rest = g_slist_remove (rest, closest); - GSList *new_rest = unclump_remove_behind (item, closest, rest); - g_slist_free (rest); + nei.push_front(closest); + rest.remove(closest); + SelContainer new_rest = unclump_remove_behind (item, closest, rest); rest = new_rest; } else { - g_slist_free (rest); break; } } - if (g_slist_length (nei) >= 2) { + if ( (nei.size()) >= 2) { double ave = unclump_average (item, nei); SPItem *closest = unclump_closest (item, nei); diff --git a/src/unclump.h b/src/unclump.h index 2411cb713..54f43ffde 100644 --- a/src/unclump.h +++ b/src/unclump.h @@ -12,8 +12,9 @@ #define SEEN_DIALOGS_UNCLUMP_H typedef struct _GSList GSList; +#include "selection.h" -void unclump(GSList *items); +void unclump(SelContainer &items); #endif /* !UNCLUMP_H_SEEN */ diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index b62aacbc5..98a3eaa67 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -256,8 +256,9 @@ VanishingPoint::set_pos(Proj::Pt2 const &pt) { std::list VanishingPoint::selectedBoxes(Inkscape::Selection *sel) { std::list sel_boxes; - for (GSList const* i = sel->itemList(); i != NULL; i = i->next) { - SPItem *item = static_cast(i->data); + SelContainer itemlist=sel->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box && this->hasBox(box)) { sel_boxes.push_back(box); @@ -395,8 +396,9 @@ VPDragger::VPsOfSelectedBoxes() { VanishingPoint *vp; // FIXME: Should we take the selection from the parent VPDrag? I guess it shouldn't make a difference. Inkscape::Selection *sel = SP_ACTIVE_DESKTOP->getSelection(); - for (GSList const* i = sel->itemList(); i != NULL; i = i->next) { - SPItem *item = static_cast(i->data); + SelContainer itemlist=sel->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { vp = this->findVPWithBox(box); @@ -577,8 +579,9 @@ VPDrag::updateDraggers () g_return_if_fail (this->selection != NULL); - for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { - SPItem *item = static_cast(i->data); + SelContainer itemlist=this->selection->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { VanishingPoint vp; @@ -609,8 +612,9 @@ VPDrag::updateLines () g_return_if_fail (this->selection != NULL); - for (GSList const* i = this->selection->itemList(); i != NULL; i = i->next) { - SPItem *item = static_cast(i->data); + SelContainer itemlist=this->selection->itemList(); + for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { this->drawLinesForFace (box, Proj::X); @@ -626,11 +630,11 @@ VPDrag::updateBoxHandles () // FIXME: Is there a way to update the knots without accessing the // (previously) statically linked function KnotHolder::update_knots? - GSList *sel = (GSList *) selection->itemList(); - if (!sel) + SelContainer sel = selection->itemList(); + if (sel.empty()) return; // no selection - if (g_slist_length (sel) > 1) { + if (sel.size() > 1) { // Currently we only show handles if a single box is selected return; } diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp index 8a64854be..23c248129 100644 --- a/src/widgets/arc-toolbar.cpp +++ b/src/widgets/arc-toolbar.cpp @@ -97,12 +97,9 @@ sp_arctb_startend_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *v gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL); bool modmade = false; - for (GSList const *items = desktop->getSelection()->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = SP_ITEM(items->data); - + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -166,11 +163,9 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) bool modmade = false; if ( ege_select_one_action_get_active(act) != 0 ) { - for (GSList const *items = desktop->getSelection()->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("sodipodi:open", "true"); @@ -179,11 +174,9 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) } } } else { - for (GSList const *items = desktop->getSelection()->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("sodipodi:open", NULL); @@ -271,11 +264,9 @@ static void sp_arc_toolbox_selection_changed(Inkscape::Selection *selection, GOb purge_repr_listener( tbl, tbl ); - for (GSList const *items = selection->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp index c906f7de4..401ce932a 100644 --- a/src/widgets/connector-toolbar.cpp +++ b/src/widgets/connector-toolbar.cpp @@ -76,7 +76,6 @@ static void sp_connector_path_set_ignore(void) static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl ) { SPDesktop *desktop = static_cast(g_object_get_data( tbl, "desktop" )); - Inkscape::Selection * selection = desktop->getSelection(); SPDocument *doc = desktop->getDocument(); if (!DocumentUndo::getUndoSensitive(doc)) { @@ -98,9 +97,9 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl gchar *value = is_orthog ? orthog_str : polyline_str ; bool modmade = false; - GSList *l = (GSList *) selection->itemList(); - while (l) { - SPItem *item = SP_ITEM(l->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (Inkscape::UI::Tools::cc_item_is_connector(item)) { item->setAttribute( "inkscape:connector-type", @@ -108,7 +107,6 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl item->avoidRef->handleSettingChange(); modmade = true; } - l = l->next; } if (!modmade) { @@ -126,7 +124,6 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) { SPDesktop *desktop = static_cast(g_object_get_data( tbl, "desktop" )); - Inkscape::Selection * selection = desktop->getSelection(); SPDocument *doc = desktop->getDocument(); if (!DocumentUndo::getUndoSensitive(doc)) { @@ -147,9 +144,9 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) g_ascii_dtostr(value, G_ASCII_DTOSTR_BUF_SIZE, newValue); bool modmade = false; - GSList *l = (GSList *) selection->itemList(); - while (l) { - SPItem *item = SP_ITEM(l->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (Inkscape::UI::Tools::cc_item_is_connector(item)) { item->setAttribute( "inkscape:connector-curvature", @@ -157,7 +154,6 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) item->avoidRef->handleSettingChange(); modmade = true; } - l = l->next; } if (!modmade) { diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index d60a92b8b..2c298b04d 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -481,7 +481,7 @@ void FillNStroke::updateFromPaint() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); + SelContainer const items = selection->itemList(); switch (psel->mode) { case SPPaintSelector::MODE_EMPTY: @@ -543,7 +543,7 @@ void FillNStroke::updateFromPaint() case SPPaintSelector::MODE_GRADIENT_LINEAR: case SPPaintSelector::MODE_GRADIENT_RADIAL: case SPPaintSelector::MODE_SWATCH: - if (items) { + if (!items.empty()) { SPGradientType const gradient_type = ( psel->mode != SPPaintSelector::MODE_GRADIENT_RADIAL ? SP_GRADIENT_TYPE_LINEAR : SP_GRADIENT_TYPE_RADIAL ); @@ -561,7 +561,7 @@ void FillNStroke::updateFromPaint() /* No vector in paint selector should mean that we just changed mode */ SPStyle query(desktop->doc()); - int result = objects_query_fillstroke(const_cast(items), &query, kind == FILL); + int result = objects_query_fillstroke(items, &query, kind == FILL); if (result == QUERY_STYLE_MULTIPLE_SAME) { SPIPaint &targPaint = (kind == FILL) ? query.fill : query.stroke; SPColor common; @@ -576,39 +576,39 @@ void FillNStroke::updateFromPaint() } } - for (GSList const *i = items; i != NULL; i = i->next) { + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { - sp_repr_css_change_recursive(reinterpret_cast(i->data)->getRepr(), css, "style"); + sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); } if (!vector) { SPGradient *gr = sp_gradient_vector_for_object( document, desktop, - reinterpret_cast(i->data), + reinterpret_cast(*i), (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE, createSwatch ); if ( gr && createSwatch ) { gr->setSwatch(); } - sp_item_set_gradient(SP_ITEM(i->data), + sp_item_set_gradient(SP_ITEM(*i), gr, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); } else { - sp_item_set_gradient(SP_ITEM(i->data), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); + sp_item_set_gradient(SP_ITEM(*i), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); } } } else { // We have changed from another gradient type, or modified spread/units within // this gradient type. vector = sp_gradient_ensure_vector_normalized(vector); - for (GSList const *i = items; i != NULL; i = i->next) { + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { - sp_repr_css_change_recursive(reinterpret_cast(i->data)->getRepr(), css, "style"); + sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); } - SPGradient *gr = sp_item_set_gradient(SP_ITEM(i->data), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); + SPGradient *gr = sp_item_set_gradient(SP_ITEM(*i), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); psel->pushAttrsToGradient( gr ); } } @@ -625,7 +625,7 @@ void FillNStroke::updateFromPaint() case SPPaintSelector::MODE_PATTERN: - if (items) { + if (!items.empty()) { SPPattern *pattern = psel->getPattern(); if (!pattern) { @@ -648,12 +648,12 @@ void FillNStroke::updateFromPaint() // cannot just call sp_desktop_set_style, because we don't want to touch those // objects who already have the same root pattern but through a different href // chain. FIXME: move this to a sp_item_set_pattern - for (GSList const *i = items; i != NULL; i = i->next) { - Inkscape::XML::Node *selrepr = reinterpret_cast(i->data)->getRepr(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + Inkscape::XML::Node *selrepr = reinterpret_cast(*i)->getRepr(); if ( (kind == STROKE) && !selrepr) { continue; } - SPObject *selobj = reinterpret_cast(i->data); + SPObject *selobj = reinterpret_cast(*i); SPStyle *style = selobj->style; if (style && ((kind == FILL) ? style->fill : style->stroke).isPaintserver()) { @@ -686,7 +686,7 @@ void FillNStroke::updateFromPaint() break; case SPPaintSelector::MODE_UNSET: - if (items) { + if (!items.empty()) { SPCSSAttr *css = sp_repr_css_attr_new(); if (kind == FILL) { sp_repr_css_unset_property(css, "fill"); diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index 7ce04403b..b9608130b 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -116,8 +116,9 @@ void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient } // If no drag or no dragger selected, act on selection - for (GSList const* i = selection->itemList(); i != NULL; i = i->next) { - gr_apply_gradient_to_item(SP_ITEM(i->data), gr, initialType, initialMode, initialMode); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + gr_apply_gradient_to_item(SP_ITEM(*i), gr, initialType, initialMode, initialMode); } } @@ -217,8 +218,9 @@ void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr { SPGradient *gradient = 0; - for (GSList const* i = selection->itemList(); i; i = i->next) { - SPItem *item = SP_ITEM(i->data); // get the items gradient, not the getVector() version + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; @@ -284,8 +286,9 @@ void gr_read_selection( Inkscape::Selection *selection, } // If no selected dragger, read desktop selection - for (GSList const* i = selection->itemList(); i; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { diff --git a/src/widgets/mesh-toolbar.cpp b/src/widgets/mesh-toolbar.cpp index 3d549047a..b4176db6f 100644 --- a/src/widgets/mesh-toolbar.cpp +++ b/src/widgets/mesh-toolbar.cpp @@ -87,8 +87,9 @@ void ms_read_selection( Inkscape::Selection *selection, bool first = true; ms_smooth = SP_MESH_SMOOTH_NONE; - for (GSList const* i = selection->itemList(); i; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { @@ -213,8 +214,9 @@ void ms_get_dt_selected_gradient(Inkscape::Selection *selection, SPMeshGradient { SPMeshGradient *gradient = 0; - for (GSList const* i = selection->itemList(); i; i = i->next) { - SPItem *item = SP_ITEM(i->data); // get the items gradient, not the getVector() version + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index 016aa4987..1f19867ee 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -106,12 +106,13 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const * bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - for (GSList const *items = selection->itemList(); items != NULL; items = items->next) { - if (SP_IS_RECT(items->data)) { + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + if (SP_IS_RECT(*i)) { if (gtk_adjustment_get_value(adj) != 0) { - (SP_RECT(items->data)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, desktop->getNamedView()->svg_units)); + (SP_RECT(*i)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, desktop->getNamedView()->svg_units)); } else { - SP_OBJECT(items->data)->getRepr()->setAttribute(value_name, NULL); + SP_OBJECT(*i)->getRepr()->setAttribute(value_name, NULL); } modmade = true; } @@ -243,12 +244,11 @@ static void sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GO } purge_repr_listener( tbl, tbl ); - for (GSList const *items = selection->itemList(); - items != NULL; - items = items->next) { - if (SP_IS_RECT(reinterpret_cast(items->data))) { + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + if (SP_IS_RECT(reinterpret_cast(*i))) { n_selected++; - item = reinterpret_cast(items->data); + item = reinterpret_cast(*i); repr = item->getRepr(); } } diff --git a/src/widgets/spiral-toolbar.cpp b/src/widgets/spiral-toolbar.cpp index 3fb0015c1..2f4ad481d 100644 --- a/src/widgets/spiral-toolbar.cpp +++ b/src/widgets/spiral-toolbar.cpp @@ -79,11 +79,9 @@ static void sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, Glib::ustr gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL); bool modmade = false; - for (GSList const *items = desktop->getSelection()->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=desktop->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_SPIRAL(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double( repr, namespaced_name, @@ -197,11 +195,9 @@ static void sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, purge_repr_listener( tbl, tbl ); - for (GSList const *items = selection->itemList(); - items != NULL; - items = items->next) - { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_SPIRAL(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp index cf12391c1..37daf69d0 100644 --- a/src/widgets/star-toolbar.cpp +++ b/src/widgets/star-toolbar.cpp @@ -83,9 +83,9 @@ static void sp_stb_magnitude_value_changed( GtkAdjustment *adj, GObject *dataKlu bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_int(repr,"sodipodi:sides", @@ -128,9 +128,9 @@ static void sp_stb_proportion_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -178,7 +178,6 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d g_object_set_data( dataKludge, "freeze", GINT_TO_POINTER(TRUE) ); Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); GtkAction* prop_action = GTK_ACTION( g_object_get_data( dataKludge, "prop_action" ) ); bool modmade = false; @@ -186,8 +185,9 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d gtk_action_set_sensitive( prop_action, !flat ); } - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("inkscape:flatsided", flat ? "true" : "false" ); @@ -224,9 +224,9 @@ static void sp_stb_rounded_value_changed( GtkAdjustment *adj, GObject *dataKludg bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double(repr, "inkscape:rounded", @@ -264,9 +264,9 @@ static void sp_stb_randomized_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double(repr, "inkscape:randomized", @@ -367,11 +367,9 @@ sp_star_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl) purge_repr_listener( tbl, tbl ); - for (GSList const *items = selection->itemList(); - items != NULL; - items = items->next) - { - SPItem* item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 5ca06a795..2599fe537 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -475,9 +475,9 @@ void StrokeStyle::markerSelectCB(MarkerComboBox *marker_combo, StrokeStyle *spw, //spw->updateMarkerHist(which); Inkscape::Selection *selection = spw->desktop->getSelection(); - GSList const *items = selection->itemList(); - for (; items != NULL; items = items->next) { - SPItem *item = reinterpret_cast(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + SPItem *item = SP_ITEM(*i); if (!SP_IS_SHAPE(item) || SP_IS_RECT(item)) { // can't set marker to rect, until it's converted to using continue; } @@ -901,8 +901,8 @@ StrokeStyle::updateLine() if (!sel || sel->isEmpty()) return; - GSList const *objects = sel->itemList(); - SPObject * const object = SP_OBJECT(objects->data); + SelContainer const objects = sel->itemList(); + SPObject * const object = SP_OBJECT(objects.front()); SPStyle * const style = object->style; /* Markers */ @@ -957,13 +957,12 @@ StrokeStyle::scaleLine() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - - GSList const *items = selection->itemList(); + SelContainer items=selection->itemList(); /* TODO: Create some standardized method */ SPCSSAttr *css = sp_repr_css_attr_new(); - if (items) { + if (!items.empty()) { #if WITH_GTKMM_3_0 double width_typed = (*widthAdj)->get_value(); double const miterlimit = (*miterLimitAdj)->get_value(); @@ -978,13 +977,13 @@ StrokeStyle::scaleLine() int ndash; dashSelector->get_dash(&ndash, &dash, &offset); - for (GSList const *i = items; i != NULL; i = i->next) { + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ /* Set stroke width */ double width; if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { width = Inkscape::Util::Quantity::convert(width_typed, unit, "px"); } else { // percentage - gdouble old_w = SP_OBJECT(i->data)->style->stroke_width.computed; + gdouble old_w = SP_OBJECT(*i)->style->stroke_width.computed; width = old_w * width_typed / 100; } @@ -1003,7 +1002,7 @@ StrokeStyle::scaleLine() /* Set dash */ setScaledDash(css, ndash, dash, offset, width); - sp_desktop_apply_css_recursive (SP_OBJECT(i->data), css, true); + sp_desktop_apply_css_recursive (SP_OBJECT(*i), css, true); } g_free(dash); @@ -1144,7 +1143,7 @@ StrokeStyle::setCapButtons(Gtk::ToggleButton *active) * that marker. */ void -StrokeStyle::updateAllMarkers(GSList const *objects) +StrokeStyle::updateAllMarkers(SelContainer const &objects) { struct { MarkerComboBox *key; int loc; } const keyloc[] = { { startMarkerCombo, SP_MARKER_LOC_START }, @@ -1153,8 +1152,8 @@ StrokeStyle::updateAllMarkers(GSList const *objects) }; bool all_texts = true; - for (GSList *i = (GSList *) objects; i != NULL; i = i->next) { - if (!SP_IS_TEXT (i->data)) { + for(SelContainer::const_iterator i=objects.begin();i!=objects.end();i++){ + if (!SP_IS_TEXT (*i)) { all_texts = false; } } @@ -1167,7 +1166,7 @@ StrokeStyle::updateAllMarkers(GSList const *objects) // We show markers of the first object in the list only // FIXME: use the first in the list that has the marker of each type, if any - SPObject *object = SP_OBJECT(objects->data); + SPObject *object = SP_OBJECT(objects.front()); for (unsigned i = 0; i < G_N_ELEMENTS(keyloc); ++i) { // For all three marker types, diff --git a/src/widgets/stroke-style.h b/src/widgets/stroke-style.h index 83048cb76..286305ec3 100644 --- a/src/widgets/stroke-style.h +++ b/src/widgets/stroke-style.h @@ -153,7 +153,7 @@ private: }; void updateLine(); - void updateAllMarkers(GSList const *objects); + void updateAllMarkers(SelContainer const &objects); void updateMarkerHist(SPMarkerLoc const which); void setDashSelectorFromStyle(SPDashSelector *dsel, SPStyle *style); void setJoinType (unsigned const jointype); diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 3d2e6eef8..ba7dfc1fd 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -366,9 +366,10 @@ static void sp_text_align_mode_changed( EgeSelectOneAction *act, GObject *tbl ) // move the x of all texts to preserve the same bbox Inkscape::Selection *selection = desktop->getSelection(); - for (GSList const *items = selection->itemList(); items != NULL; items = items->next) { - if (SP_IS_TEXT(SP_ITEM(items->data))) { - SPItem *item = SP_ITEM(items->data); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + if (SP_IS_TEXT(SP_ITEM(*i))) { + SPItem *item = SP_ITEM(*i); unsigned writing_mode = item->style->writing_mode.value; // below, variable names suggest horizontal move, but we check the writing direction @@ -517,11 +518,11 @@ static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) // Until deprecated sodipodi:linespacing purged: Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); bool modmade = false; - for (; items != NULL; items = items->next) { - if (SP_IS_TEXT (items->data)) { - SP_OBJECT(items->data)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); + SelContainer itemlist=selection->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + if (SP_IS_TEXT (*i)) { + SP_OBJECT(*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); modmade = true; } } @@ -863,12 +864,11 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ // Only flowed text can be justified, only normal text can be kerned... // Find out if we have flowed text now so we can use it several places gboolean isFlow = false; - for (GSList const *items = SP_ACTIVE_DESKTOP->getSelection()->itemList(); - items != NULL; - items = items->next) { + SelContainer itemlist=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ // const gchar* id = reinterpret_cast(items->data)->getId(); // std::cout << " " << id << std::endl; - if( SP_IS_FLOWTEXT(SP_ITEM(items->data))) { + if( SP_IS_FLOWTEXT(SP_ITEM(*i))) { isFlow = true; // std::cout << " Found flowed text" << std::endl; break; @@ -1153,14 +1153,14 @@ static void sp_text_toolbox_select_cb( GtkEntry* entry, GtkEntryIconPosition /*p //std::cout << "text_toolbox_missing_font_cb: selecting: " << family << std::endl; // Get all items with matching font-family set (not inherited!). - GSList *selectList = NULL; + SelContainer selectList; SPDesktop *desktop = SP_ACTIVE_DESKTOP; SPDocument *document = desktop->getDocument(); - GSList *allList = get_all_items(NULL, document->getRoot(), desktop, false, false, true, NULL); - for (GSList *i = allList; i != NULL; i = i->next) { - - SPItem *item = SP_ITEM(i->data); + SelContainer x,y; + SelContainer allList = get_all_items(x, document->getRoot(), desktop, false, false, true, y); + for(SelContainer::const_iterator i=allList.begin();i!=allList.end();i++){ + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; if (style) { @@ -1177,7 +1177,7 @@ static void sp_text_toolbox_select_cb( GtkEntry* entry, GtkEntryIconPosition /*p if (family_style.compare( family ) == 0 ) { //std::cout << " found: " << item->getId() << std::endl; - selectList = g_slist_prepend (selectList, item); + selectList.push_front(static_cast(item)); } } } -- cgit v1.2.3 From 193b25a53c51a36fe9538e03203b0054c8cfc355 Mon Sep 17 00:00:00 2001 From: mc <> Date: Wed, 18 Feb 2015 02:02:37 +0100 Subject: Just... some... more... lines... (bzr r13922.1.2) --- src/desktop.cpp | 2 +- src/desktop.h | 2 +- src/document.cpp | 32 ++++++++--------- src/document.h | 9 ++--- src/selection-chemistry.cpp | 13 ++++--- src/splivarot.h | 3 +- src/trace/trace.cpp | 6 ++-- src/ui/dialog/font-substitution.cpp | 24 +++++-------- src/ui/dialog/font-substitution.h | 6 ++-- src/ui/dialog/grid-arrange-tab.cpp | 54 ++++++++++++++++------------- src/ui/dialog/icon-preview.cpp | 8 ++--- src/ui/dialog/objects.cpp | 8 ++--- src/ui/dialog/pixelartdialog.cpp | 8 ++--- src/ui/dialog/polar-arrange-tab.cpp | 14 +++----- src/ui/dialog/print.cpp | 2 +- src/ui/dialog/svg-fonts-dialog.cpp | 4 +-- src/ui/dialog/swatches.cpp | 6 ++-- src/ui/dialog/tags.cpp | 11 +++--- src/ui/dialog/text-edit.cpp | 26 +++++++------- src/ui/dialog/transformation.cpp | 41 ++++++++++++---------- src/ui/tools/connector-tool.cpp | 8 ++--- src/ui/tools/eraser-tool.cpp | 31 +++++++---------- src/ui/tools/gradient-tool.cpp | 43 +++++++++++++---------- src/ui/tools/gradient-tool.h | 3 +- src/ui/tools/lpe-tool.cpp | 8 ++--- src/ui/tools/measure-tool.cpp | 6 ++-- src/ui/tools/mesh-tool.cpp | 34 +++++++++++------- src/ui/tools/node-tool.cpp | 10 +++--- src/ui/tools/select-tool.cpp | 5 ++- src/ui/tools/spray-tool.cpp | 32 +++++++---------- src/ui/tools/text-tool.cpp | 7 ++-- src/ui/tools/tool-base.cpp | 6 ++-- src/ui/tools/tweak-tool.cpp | 25 ++++++------- src/ui/widget/object-composite-settings.cpp | 3 +- src/ui/widget/style-subject.cpp | 34 +++++++++--------- src/ui/widget/style-subject.h | 15 ++++---- 36 files changed, 270 insertions(+), 279 deletions(-) diff --git a/src/desktop.cpp b/src/desktop.cpp index cdf8f276c..64353e582 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -716,7 +716,7 @@ Inkscape::UI::Widget::Dock* SPDesktop::getDock() { /** * \see SPDocument::getItemFromListAtPointBottom() */ -SPItem *SPDesktop::getItemFromListAtPointBottom(const GSList *list, Geom::Point const &p) const +SPItem *SPDesktop::getItemFromListAtPointBottom(const SelContainer &list, Geom::Point const &p) const { g_return_val_if_fail (doc() != NULL, NULL); return SPDocument::getItemFromListAtPointBottom(dkey, doc()->getRoot(), list, p); diff --git a/src/desktop.h b/src/desktop.h index a0b9592d0..8765fa699 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -319,7 +319,7 @@ public: //void push_event_context (GType type, const gchar *config, unsigned int key); void set_coordinate_status (Geom::Point p); - SPItem *getItemFromListAtPointBottom(const GSList *list, Geom::Point const &p) const; + SPItem *getItemFromListAtPointBottom(const SelContainer &list, Geom::Point const &p) const; SPItem *getItemAtPoint(Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; SPItem *getGroupAtPoint(Geom::Point const &p) const; Geom::Point point() const; diff --git a/src/document.cpp b/src/document.cpp index 11971e63d..5c49ff6c3 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1235,7 +1235,7 @@ static bool overlaps(Geom::Rect const &area, Geom::Rect const &box) return area.intersects(box); } -static GSList *find_items_in_area(GSList *s, SPGroup *group, unsigned int dkey, Geom::Rect const &area, +static SelContainer &find_items_in_area(SelContainer &s, SPGroup *group, unsigned int dkey, Geom::Rect const &area, bool (*test)(Geom::Rect const &, Geom::Rect const &), bool take_insensitive = false) { g_return_val_if_fail(SP_IS_GROUP(group), s); @@ -1248,7 +1248,7 @@ static GSList *find_items_in_area(GSList *s, SPGroup *group, unsigned int dkey, SPItem *child = SP_ITEM(o); Geom::OptRect box = child->desktopVisualBounds(); if ( box && test(area, *box) && (take_insensitive || child->isVisibleAndUnlocked(dkey))) { - s = g_slist_append(s, child); + s.push_back(child); } } } @@ -1275,7 +1275,7 @@ static bool item_is_in_group(SPItem *item, SPGroup *group) return inGroup; } -SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, GSList const *list,Geom::Point const &p, bool take_insensitive) +SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, SelContainer const &list,Geom::Point const &p, bool take_insensitive) { g_return_val_if_fail(group, NULL); SPItem *bottomMost = 0; @@ -1289,7 +1289,7 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro Inkscape::DrawingItem *arenaitem = item->get_arenaitem(dkey); if (arenaitem && arenaitem->pick(p, delta, 1) != NULL && (take_insensitive || item->isVisibleAndUnlocked(dkey))) { - if (g_slist_find((GSList *) list, item) != NULL) { + if (find(list.begin(),list.end(),item)==list.end() ) { bottomMost = item; } } @@ -1391,11 +1391,11 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin * Assumes box is normalized (and g_asserts it!) * */ -GSList *SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) const +SelContainer SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) const { - g_return_val_if_fail(this->priv != NULL, NULL); - - return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, is_within); + SelContainer x; + g_return_val_if_fail(this->priv != NULL, x); + return find_items_in_area(x, SP_GROUP(this->root), dkey, box, is_within); } /* @@ -1405,16 +1405,16 @@ GSList *SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) cons * */ -GSList *SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const +SelContainer SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const { - g_return_val_if_fail(this->priv != NULL, NULL); - - return find_items_in_area(NULL, SP_GROUP(this->root), dkey, box, overlaps); + SelContainer x; + g_return_val_if_fail(this->priv != NULL, x); + return find_items_in_area(x, SP_GROUP(this->root), dkey, box, overlaps); } -GSList *SPDocument::getItemsAtPoints(unsigned const key, std::vector points) const +SelContainer SPDocument::getItemsAtPoints(unsigned const key, std::vector points) const { - GSList *items = NULL; + SelContainer items; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); // When picking along the path, we don't want small objects close together @@ -1426,8 +1426,8 @@ GSList *SPDocument::getItemsAtPoints(unsigned const key, std::vector #include #include +#include "selection.h" namespace Avoid { class Router; @@ -232,7 +233,7 @@ public: /** * Returns the bottommost item from the list which is at the point, or NULL if none. */ - static SPItem *getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, const GSList *list, Geom::Point const &p, bool take_insensitive = false); + static SPItem *getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, const SelContainer &list, Geom::Point const &p, bool take_insensitive = false); static SPDocument *createDoc(Inkscape::XML::Document *rdoc, char const *uri, char const *base, char const *name, unsigned int keepalive, @@ -256,10 +257,10 @@ public: bool addResource(char const *key, SPObject *object); bool removeResource(char const *key, SPObject *object); const GSList *getResourceList(char const *key) const; - GSList *getItemsInBox(unsigned int dkey, Geom::Rect const &box) const; - GSList *getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const; + SelContainer getItemsInBox(unsigned int dkey, Geom::Rect const &box) const; + SelContainer getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const; SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; - GSList *getItemsAtPoints(unsigned const key, std::vector points) const; + SelContainer getItemsAtPoints(unsigned const key, std::vector points) const; SPItem *getGroupAtPoint(unsigned int key, Geom::Point const &p) const; void changeUriAndHrefs(char const *uri); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index f20df1594..05711e734 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -442,10 +442,10 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) } } } - +/* bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b){ return sp_repr_compare_position(dynamic_cast(a),dynamic_cast(b)); -} +}*/ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) { @@ -2301,7 +2301,7 @@ sp_selection_move_screen(Inkscape::Selection *selection, gdouble dx, gdouble dy) namespace { template -SPItem *next_item(SPDesktop *desktop, SelContainer &path, SPObject *root, +SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive); template @@ -2481,19 +2481,18 @@ void sp_selection_edit_clip_or_mask(SPDesktop * /*dt*/, bool /*clip*/) namespace { template -SPItem *next_item_from_list(SPDesktop *desktop, GSList const *items, +SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const items, SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) { SPObject *current=root; - while (items) { - SPItem *item = dynamic_cast(static_cast(items->data)); + for(SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + SPItem *item = dynamic_cast(static_cast(*i)); if ( root->isAncestorOf(item) && ( !only_in_viewport || desktop->isWithinViewport(item) ) ) { current = item; break; } - items = items->next; } GSList *path=NULL; diff --git a/src/splivarot.h b/src/splivarot.h index ba314399f..79b9b98a6 100644 --- a/src/splivarot.h +++ b/src/splivarot.h @@ -10,6 +10,7 @@ #include <2geom/forward.h> #include <2geom/path.h> #include "livarot/Path.h" +#include "sp-object.h"//kill it class SPCurve; class SPDesktop; @@ -18,7 +19,7 @@ class SPItem; namespace Inkscape { class Selection; } - +bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b);//kill it with fire // boolean operations // work on the current selection // selection has 2 contain exactly 2 items diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 892ecdb87..2becca5cc 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -74,13 +74,13 @@ SPImage *Tracer::getSelectedSPImage() them as bottom-to-top so that we can discover the image and any SPItems above it */ - for(SelContainer::const_iterator x=list.begin();x!=list.end();x++){ + for (SelContainer::const_iterator i=list.begin() ; list.end()!=i ; i++) { - if (!SP_IS_ITEM(*x)) + if (!SP_IS_ITEM(*i)) { continue; } - SPItem *item = SP_ITEM(*x); + SPItem *item = SP_ITEM(*i); items.insert(items.begin(), item); } std::vector::iterator iter; diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index ae03bdf0e..625ed99b9 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -70,19 +70,15 @@ FontSubstitution::checkFontSubstitutions(SPDocument* doc) int show_dlg = prefs->getInt("/options/font/substitutedlg", 0); if (show_dlg) { Glib::ustring out; - GSList *l = getFontReplacedItems(doc, &out); + SelContainer l = getFontReplacedItems(doc, &out); if (out.length() > 0) { show(out, l); } - if (l) { - g_slist_free(l); - l = NULL; - } } } void -FontSubstitution::show(Glib::ustring out, GSList *l) +FontSubstitution::show(Glib::ustring out, SelContainer &l) { Gtk::MessageDialog warning(_("\nSome fonts are not available and have been substituted."), false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK, true); @@ -152,20 +148,18 @@ FontSubstitution::show(Glib::ustring out, GSList *l) * b. Build up a list of the objects rendered fonts - taken for the objects layout/spans * If there are fonts in a. that are not in b. then those fonts have been substituted. */ -GSList * FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustring *out) +SelContainer FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustring *out) { SPDesktop *desktop = SP_ACTIVE_DESKTOP; - GSList *allList = NULL; - GSList *outList = NULL; + SelContainer allList; + SelContainer outList,x,y; std::set setErrors; std::set setFontSpans; std::map mapFontStyles; - allList = get_all_items(NULL, doc->getRoot(), desktop, false, false, true, NULL); - - for (GSList *i = allList; i != NULL; i = i->next) { - - SPItem *item = SP_ITEM(i->data); + allList = get_all_items(x, doc->getRoot(), desktop, false, false, true, y); + for(SelContainer::const_iterator i = allList.begin();i!=allList.end();i++){ + SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; Glib::ustring family = ""; @@ -254,7 +248,7 @@ GSList * FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustring * Glib::ustring err = Glib::ustring::compose( _("Font '%1' substituted with '%2'"), fonts.c_str(), subName.c_str()); setErrors.insert(err); - outList = g_slist_prepend (outList, item); + outList.push_front(item); } } diff --git a/src/ui/dialog/font-substitution.h b/src/ui/dialog/font-substitution.h index 1c445081b..eed7adcf2 100644 --- a/src/ui/dialog/font-substitution.h +++ b/src/ui/dialog/font-substitution.h @@ -13,7 +13,7 @@ #define INKSCAPE_UI_FONT_SUBSTITUTION_H #include - +#include "selection.h" class SPDocument; namespace Inkscape { @@ -25,13 +25,13 @@ public: FontSubstitution(); virtual ~FontSubstitution(); void checkFontSubstitutions(SPDocument* doc); - void show(Glib::ustring out, GSList *l); + void show(Glib::ustring out, SelContainer &l); static FontSubstitution &getInstance() { return *new FontSubstitution(); } Glib::ustring getSubstituteFontName (Glib::ustring font); protected: - GSList *getFontReplacedItems(SPDocument* doc, Glib::ustring *out); + SelContainer getFontReplacedItems(SPDocument* doc, Glib::ustring *out); private: FontSubstitution(FontSubstitution const &d); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index d3ccb9bde..ba8616d9b 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -109,6 +109,13 @@ static int sp_compare_y_position(SPItem *first, SPItem *second) return 0; } +static bool sp_compare_y_position_obj(SPObject *first, SPObject *second){ + return sp_compare_y_position(static_cast(first),static_cast(second))<0; +} +static bool sp_compare_x_position_obj(SPObject *first, SPObject *second){ + return sp_compare_x_position(static_cast(first),static_cast(second))<0; +} + namespace Inkscape { namespace UI { @@ -168,10 +175,10 @@ void GridArrangeTab::arrange() desktop->getDocument()->ensureUpToDate(); Inkscape::Selection *selection = desktop->getSelection(); - const GSList *items = selection ? selection->itemList() : 0; + const SelContainer items = selection ? selection->itemList() : SelContainer(); cnt=0; - for (; items != NULL; items = items->next) { - SPItem *item = SP_ITEM(items->data); + for(SelContainer::const_iterator i = items.begin();i!=items.end();i++){ + SPItem *item = SP_ITEM(*i); Geom::OptRect b = item->documentVisualBounds(); if (!b) { continue; @@ -198,20 +205,19 @@ void GridArrangeTab::arrange() // require the sorting done before we can calculate row heights etc. g_return_if_fail(selection); - const GSList *items2 = selection->itemList(); - GSList *rev = g_slist_copy(const_cast(items2)); - GSList *sorted = NULL; - rev = g_slist_sort(rev, (GCompareFunc) sp_compare_y_position); - sorted = g_slist_sort(rev, (GCompareFunc) sp_compare_x_position); + SelContainer rev(selection->itemList()); + rev.sort(sp_compare_y_position_obj); + SelContainer sorted(rev); + sorted.sort(sp_compare_x_position_obj); // Calculate individual Row and Column sizes if necessary cnt=0; - const GSList *sizes = sorted; - for (; sizes != NULL; sizes = sizes->next) { - SPItem *item = SP_ITEM(sizes->data); + const SelContainer sizes(sorted); + for (SelContainer::const_iterator i = sizes.begin();i!=sizes.end();i++) { + SPItem *item = SP_ITEM(*i); Geom::OptRect b = item->documentVisualBounds(); if (b) { width = b->dimensions()[Geom::X]; @@ -308,12 +314,14 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h } cnt=0; - for (row_cnt=0; ((sorted != NULL) && (row_cntdata); - sorted = sorted->next; + col_cnt = 0; + for(;it!=sorted.end()&&colnext) { @@ -374,8 +382,8 @@ void GridArrangeTab::on_row_spinbutton_changed() Inkscape::Selection *selection = desktop ? desktop->selection : 0; g_return_if_fail( selection ); - GSList const *items = selection->itemList(); - int selcount = g_slist_length((GSList *)items); + SelContainer const items = selection->itemList(); + int selcount = items.size(); double PerCol = ceil(selcount / NoOfColsSpinner.get_value()); NoOfRowsSpinner.set_value(PerCol); @@ -400,8 +408,7 @@ void GridArrangeTab::on_col_spinbutton_changed() Inkscape::Selection *selection = desktop ? desktop->selection : 0; g_return_if_fail(selection); - GSList const *items = selection->itemList(); - int selcount = g_slist_length((GSList *)items); + int selcount = selection->itemList().size(); double PerRow = ceil(selcount / NoOfRowsSpinner.get_value()); NoOfColsSpinner.set_value(PerRow); @@ -538,10 +545,10 @@ void GridArrangeTab::updateSelection() updating = true; SPDesktop *desktop = Parent->getDesktop(); Inkscape::Selection *selection = desktop ? desktop->selection : 0; - GSList const *items = selection ? selection->itemList() : 0; + SelContainer const items = selection ? selection->itemList() : SelContainer(); - if (items) { - int selcount = g_slist_length((GSList *)items); + if (!items.empty()) { + int selcount = items.size(); if (NoOfColsSpinner.get_value() > 1 && NoOfRowsSpinner.get_value() > 1){ // Update the number of rows assuming number of columns wanted remains same. @@ -609,8 +616,7 @@ GridArrangeTab::GridArrangeTab(ArrangeDialog *parent) g_return_if_fail( selection ); int selcount = 1; if (!selection->isEmpty()) { - GSList const *items = selection->itemList(); - selcount = g_slist_length((GSList *)items); + selcount = selection->itemList().size(); } diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index b908a90cb..79e5b556d 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -366,16 +366,14 @@ void IconPreviewPanel::refreshPreview() if ( sel ) { //g_message("found a selection to play with"); - GSList const *items = sel->itemList(); - while ( items && !target ) { - SPItem* item = SP_ITEM( items->data ); + SelContainer const items = sel->itemList(); + for(SelContainer::const_iterator i=items.begin();!target && i!=items.end();i++){ + SPItem* item = SP_ITEM( *i); gchar const *id = item->getId(); if ( id ) { targetId = id; target = item; } - - items = g_slist_next(items); } } } diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index c95529a56..0ae3027c7 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -479,15 +479,15 @@ void ObjectsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); SPItem *item = NULL; - for (const GSList * iter = sel->itemList(); iter != NULL; iter = iter->next) - { - item = reinterpret_cast(iter->data); + SelContainer const items = sel->itemList(); + for(SelContainer::const_iterator i=items.begin(); i!=items.end();i++){ + item = reinterpret_cast(*i); if (setOpacity) { _setCompositingValues(item); setOpacity = false; } - _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, iter->next == NULL)); + _store->foreach(sigc::bind( sigc::mem_fun(*this, &ObjectsPanel::_checkForSelected), item, (*i)==items.back())); } if (!item) { if (_desktop->currentLayer() && SP_IS_ITEM(_desktop->currentLayer())) { diff --git a/src/ui/dialog/pixelartdialog.cpp b/src/ui/dialog/pixelartdialog.cpp index 5113f172a..273a378e5 100644 --- a/src/ui/dialog/pixelartdialog.cpp +++ b/src/ui/dialog/pixelartdialog.cpp @@ -372,12 +372,12 @@ void PixelArtDialogImpl::vectorize() return; } - for ( GSList const *list = desktop->selection->itemList() ; list - ; list = list->next ) { - if ( !SP_IS_IMAGE(list->data) ) + SelContainer const items = desktop->selection->itemList(); + for(SelContainer::const_iterator i=items.begin(); i!=items.end();i++){ + if ( !SP_IS_IMAGE(*i) ) continue; - SPImage *img = SP_IMAGE(list->data); + SPImage *img = SP_IMAGE(*i); Input input; input.pixbuf = Glib::wrap(img->pixbuf->getPixbufRaw(), true); input.x = img->x; diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp index 281958998..8a382fc93 100644 --- a/src/ui/dialog/polar-arrange-tab.cpp +++ b/src/ui/dialog/polar-arrange-tab.cpp @@ -297,19 +297,18 @@ static void moveToPoint(int anchor, SPItem *item, Geom::Point p) void PolarArrangeTab::arrange() { Inkscape::Selection *selection = parent->getDesktop()->getSelection(); - const GSList *items, *tmp; - tmp = items = selection->itemList(); + const SelContainer tmp(selection->itemList()); SPGenericEllipse *referenceEllipse = NULL; // Last ellipse in selection bool arrangeOnEllipse = !arrangeOnParametersRadio.get_active(); bool arrangeOnFirstEllipse = arrangeOnEllipse && arrangeOnFirstCircleRadio.get_active(); int count = 0; - while(tmp) + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) { if(arrangeOnEllipse) { - SPItem *item = SP_ITEM(tmp->data); + SPItem *item = SP_ITEM(*i); if(arrangeOnFirstEllipse) { @@ -322,7 +321,6 @@ void PolarArrangeTab::arrange() referenceEllipse = SP_GENERICELLIPSE(item); } } - tmp = tmp->next; ++count; } @@ -374,11 +372,10 @@ void PolarArrangeTab::arrange() Geom::Point realCenter = Geom::Point(cx, cy) * transformation; - tmp = items; int i = 0; - while(tmp) + for(SelContainer::const_iterator it=tmp.begin();it!=tmp.end();it++) { - SPItem *item = SP_ITEM(tmp->data); + SPItem *item = SP_ITEM(*it); // Ignore the reference ellipse if any if(item != referenceEllipse) @@ -396,7 +393,6 @@ void PolarArrangeTab::arrange() ++i; } - tmp = tmp->next; } DocumentUndo::done(parent->getDesktop()->getDocument(), SP_VERB_SELECTION_ARRANGE, diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index a015d28f9..dc98b6032 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -81,7 +81,7 @@ static void draw_page( width, height, (unsigned long)(Inkscape::Util::Quantity::convert(width, "px", "in") * dpi), (unsigned long)(Inkscape::Util::Quantity::convert(height, "px", "in") * dpi), - dpi, dpi, bgcolor, NULL, NULL, true, NULL); + dpi, dpi, bgcolor, NULL, NULL, true, SelContainer()); // This doesn't seem to work: //context->set_cairo_context ( Cairo::Context::create (Cairo::ImageSurface::create_from_png (tmp_png) ), dpi, dpi ); diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index bc228633d..8f5601e3a 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -524,7 +524,7 @@ void SvgFontsDialog::set_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = (Inkscape::XML::Node*) g_slist_nth_data((GSList *)sel->reprList(), 0); + Inkscape::XML::Node* node = (Inkscape::XML::Node*)(sel->reprList().front()); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); @@ -566,7 +566,7 @@ void SvgFontsDialog::missing_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = (Inkscape::XML::Node*) g_slist_nth_data((GSList *)sel->reprList(), 0); + Inkscape::XML::Node* node = (Inkscape::XML::Node*)(sel->reprList().front()); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index 8759039c3..da24ad605 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -123,10 +123,10 @@ static void editGradientImpl( SPDesktop* desktop, SPGradient* gr ) bool shown = false; if ( desktop && desktop->doc() ) { Inkscape::Selection *selection = desktop->getSelection(); - GSList const *items = selection->itemList(); - if (items) { + SelContainer const items = selection->itemList(); + if (!items.empty()) { SPStyle query( desktop->doc() ); - int result = objects_query_fillstroke(const_cast(items), &query, true); + int result = objects_query_fillstroke((items), &query, true); if ( (result == QUERY_STYLE_MULTIPLE_SAME) || (result == QUERY_STYLE_SINGLE) ) { // could be pertinent if (query.fill.isPaintserver()) { diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 8a104d137..ba3a6b914 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -371,9 +371,10 @@ void TagsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); - for (const GSList * iter = sel->list(); iter != NULL; iter = iter->next) + SelContainer tmp=sel->list(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) { - SPObject *obj = reinterpret_cast(iter->data); + SPObject *obj = reinterpret_cast(*i); _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); } _selectedConnection.unblock(); @@ -668,9 +669,9 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { if (SP_IS_TAG(obj)) { bool wasadded = false; - for (const GSList * iter = _desktop->selection->itemList(); iter != NULL; iter = iter->next) - { - SPObject *newobj = reinterpret_cast(iter->data); + SelContainer items=_desktop->selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *newobj = reinterpret_cast(*i); bool addchild = true; for ( SPObject *child = obj->children; child != NULL; child = child->next) { if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index a8be8b543..593261ec5 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -418,12 +418,11 @@ SPItem *TextEdit::getSelectedTextItem (void) if (!SP_ACTIVE_DESKTOP) return NULL; - for (const GSList *item = SP_ACTIVE_DESKTOP->getSelection()->itemList(); - item != NULL; - item = item->next) + SelContainer tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) { - if (SP_IS_TEXT(item->data) || SP_IS_FLOWTEXT(item->data)) - return SP_ITEM (item->data); + if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) + return SP_ITEM (*i); } return NULL; @@ -437,11 +436,10 @@ unsigned TextEdit::getSelectedTextCount (void) unsigned int items = 0; - for (const GSList *item = SP_ACTIVE_DESKTOP->getSelection()->itemList(); - item != NULL; - item = item->next) + SelContainer tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) { - if (SP_IS_TEXT(item->data) || SP_IS_FLOWTEXT(item->data)) + if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) ++items; } @@ -542,20 +540,20 @@ void TextEdit::onApply() SPDesktop *desktop = SP_ACTIVE_DESKTOP; unsigned items = 0; - const GSList *item_list = desktop->getSelection()->itemList(); + const SelContainer item_list = desktop->getSelection()->itemList(); SPCSSAttr *css = fillTextStyle (); sp_desktop_set_style(desktop, css, true); - for (; item_list != NULL; item_list = item_list->next) { + for(SelContainer::const_iterator i=item_list.begin();i!=item_list.end();i++){ // apply style to the reprs of all text objects in the selection - if (SP_IS_TEXT (item_list->data)) { + if (SP_IS_TEXT (*i)) { // backwards compatibility: - reinterpret_cast(item_list->data)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); + reinterpret_cast(*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); ++items; } - else if (SP_IS_FLOWTEXT (item_list->data)) + else if (SP_IS_FLOWTEXT (*i)) // no need to set sodipodi:linespacing, because Inkscape never supported it on flowtext ++items; } diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 233d99750..8c52144e0 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -655,7 +655,7 @@ void Transformation::updatePageTransform(Inkscape::Selection *selection) { if (selection && !selection->isEmpty()) { if (_check_replace_matrix.get_active()) { - Geom::Affine current (SP_ITEM(selection->itemList()->data)->transform); // take from the first item in selection + Geom::Affine current (SP_ITEM(selection->itemList().front())->transform); // take from the first item in selection Geom::Affine new_displayed = current; @@ -741,19 +741,19 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) if (_check_move_relative.get_active()) { // shift each object relatively to the previous one using Inkscape::Util::GSListConstIterator; - std::list selected; - selected.insert >(selected.end(), selection->itemList(), NULL); + SelContainer selected(selection->itemList()); if (selected.empty()) return; if (fabs(x) > 1e-6) { std::vector< BBoxSort > sorted; - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { - Geom::OptRect bbox = (*it)->desktopPreferredBounds(); + SPItem* item=static_cast(*it); + Geom::OptRect bbox = (item)->desktopPreferredBounds(); if (bbox) { - sorted.push_back(BBoxSort(*it, *bbox, Geom::X, x > 0? 1. : 0., x > 0? 0. : 1.)); + sorted.push_back(BBoxSort(item, *bbox, Geom::X, x > 0? 1. : 0., x > 0? 0. : 1.)); } } //sort bbox by anchors @@ -771,13 +771,14 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) } if (fabs(y) > 1e-6) { std::vector< BBoxSort > sorted; - for (std::list::iterator it(selected.begin()); + for (SelContainer::iterator it(selected.begin()); it != selected.end(); ++it) { - Geom::OptRect bbox = (*it)->desktopPreferredBounds(); + SPItem* item=static_cast(*it); + Geom::OptRect bbox = (item)->desktopPreferredBounds(); if (bbox) { - sorted.push_back(BBoxSort(*it, *bbox, Geom::Y, y > 0? 1. : 0., y > 0? 0. : 1.)); + sorted.push_back(BBoxSort(item, *bbox, Geom::Y, y > 0? 1. : 0., y > 0? 0. : 1.)); } } //sort bbox by anchors @@ -815,8 +816,9 @@ void Transformation::applyPageScale(Inkscape::Selection *selection) bool transform_stroke = prefs->getBool("/options/transform/stroke", true); bool preserve = prefs->getBool("/options/preservetransform/value", false); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = SP_ITEM(l->data); + SelContainer tmp=selection->itemList(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + SPItem *item = SP_ITEM(*i); Geom::OptRect bbox_pref = item->desktopPreferredBounds(); Geom::OptRect bbox_geom = item->desktopGeometricBounds(); if (bbox_pref && bbox_geom) { @@ -878,8 +880,9 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection) } if (prefs->getBool("/dialogs/transformation/applyseparately")) { - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = SP_ITEM(l->data); + SelContainer tmp=selection->itemList(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + SPItem *item = SP_ITEM(*i); sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0)); } } else { @@ -897,8 +900,9 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = SP_ITEM(l->data); + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator i = items.begin();i!=items.end();i++){ + SPItem *item = SP_ITEM(*i); if (!_units_skew.isAbsolute()) { // percentage double skewX = _scalar_skew_horizontal.getValue("%"); @@ -998,8 +1002,9 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) } if (_check_replace_matrix.get_active()) { - for (GSList const *l = selection->itemList(); l != NULL; l = l->next) { - SPItem *item = SP_ITEM(l->data); + SelContainer tmp=selection->itemList(); + for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + SPItem *item = SP_ITEM(*i); item->set_item_transform(displayed); SP_OBJECT(item)->updateRepr(); } @@ -1150,7 +1155,7 @@ void Transformation::onReplaceMatrixToggled() double f = _scalar_transform_f.getValue(); Geom::Affine displayed (a, b, c, d, e, f); - Geom::Affine current = SP_ITEM(selection->itemList()->data)->transform; // take from the first item in selection + Geom::Affine current = SP_ITEM(selection->itemList().front())->transform; // take from the first item in selection Geom::Affine new_displayed; if (_check_replace_matrix.get_active()) { diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index 26a4eadd5..fc40c20e7 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1313,12 +1313,12 @@ void cc_selection_set_avoid(bool const set_avoid) Inkscape::Selection *selection = desktop->getSelection(); - GSList *l = const_cast(selection->itemList()); int changes = 0; - while (l) { - SPItem *item = SP_ITEM(l->data); + SelContainer l = selection->itemList(); + for(SelContainer::const_iterator i=l.begin();i!=l.end();i++) { + SPItem *item = SP_ITEM(*i); char const *value = (set_avoid) ? "true" : NULL; @@ -1327,8 +1327,6 @@ void cc_selection_set_avoid(bool const set_avoid) item->avoidRef->handleSettingChange(); changes++; } - - l = l->next; } if (changes == 0) { diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 1b4dcfe25..3526e015a 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -676,7 +676,7 @@ void EraserTool::set_to_accumulated() { Geom::OptRect eraserBbox = acid->visualBounds(); Geom::Rect bounds = (*eraserBbox) * desktop->doc2dt(); std::vector remainingItems; - GSList* toWorkOn = 0; + SelContainer toWorkOn; if (selection->isEmpty()) { if ( eraserMode ) { @@ -686,16 +686,16 @@ void EraserTool::set_to_accumulated() { toWorkOn = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); } - toWorkOn = g_slist_remove( toWorkOn, acid ); + toWorkOn.remove(static_cast(acid) ); } else { - toWorkOn = g_slist_copy(const_cast(selection->itemList())); + toWorkOn = selection->itemList(); wasSelection = true; } - if ( g_slist_length(toWorkOn) > 0 ) { + if ( !toWorkOn.empty() ) { if ( eraserMode ) { - for (GSList *i = toWorkOn ; i ; i = i->next ) { - SPItem *item = SP_ITEM(i->data); + for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + SPItem *item = SP_ITEM(*i); if ( eraserMode ) { Geom::OptRect bbox = item->visualBounds(); @@ -712,13 +712,10 @@ void EraserTool::set_to_accumulated() { if ( !selection->isEmpty() ) { // If the item was not completely erased, track the new remainder. - GSList *nowSel = g_slist_copy(const_cast(selection->itemList())); - - for (GSList const *i2 = nowSel ; i2 ; i2 = i2->next ) { - remainingItems.push_back(SP_ITEM(i2->data)); + SelContainer nowSel(selection->itemList()); + for (SelContainer::const_iterator i2 = nowSel.begin();i!=nowSel.end();i++) { + remainingItems.push_back(SP_ITEM(*i2)); } - - g_slist_free(nowSel); } } else { remainingItems.push_back(item); @@ -726,20 +723,18 @@ void EraserTool::set_to_accumulated() { } } } else { - for (GSList *i = toWorkOn ; i ; i = i->next ) { - sp_object_ref( SP_ITEM(i->data), 0 ); + for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + sp_object_ref( SP_ITEM(*i), 0 ); } - for (GSList *i = toWorkOn ; i ; i = i->next ) { - SPItem *item = SP_ITEM(i->data); + for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + SPItem *item = SP_ITEM(*i); item->deleteObject(true); sp_object_unref(item); workDone = true; } } - g_slist_free(toWorkOn); - if ( !eraserMode ) { //sp_selection_delete(desktop); remainingItems.clear(); diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index 5da30da7b..d1db5fb93 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -116,7 +116,7 @@ void GradientTool::selection_changed(Inkscape::Selection*) { if (selection == NULL) { return; } - guint n_obj = g_slist_length((GSList *) selection->itemList()); + guint n_obj = selection->itemList().size(); if (!drag->isNonEmpty() || selection->isEmpty()) return; @@ -502,10 +502,11 @@ bool GradientTool::root_handler(GdkEvent* event) { if (over_line) { // we take the first item in selection, because with doubleclick, the first click // always resets selection to the single object under cursor - sp_gradient_context_add_stop_near_point(this, SP_ITEM(selection->itemList()->data), this->mousepoint_doc, event->button.time); + sp_gradient_context_add_stop_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); } else { - for (GSList const* i = selection->itemList(); i != NULL; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer items=selection->itemList(); + for (SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + SPItem *item = SP_ITEM(*i); SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR); Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -889,6 +890,12 @@ bool GradientTool::root_handler(GdkEvent* event) { return ret; } +int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) +{ + return sp_repr_compare_position(((SPItem*)first)->getRepr(), + ((SPItem*)second)->getRepr())<0; +} + static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*state*/, guint32 etime) { SPDesktop *desktop = SP_EVENT_CONTEXT(&rc)->desktop; @@ -908,32 +915,32 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta } else { // Starting from empty space: // Sort items so that the topmost comes last - GSList *items = g_slist_copy ((GSList *) selection->itemList()); - items = g_slist_sort(items, (GCompareFunc) sp_item_repr_compare_position); + SelContainer items(selection->itemList()); + items.sort(sp_item_repr_compare_position_obj); // take topmost - vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(g_slist_last(items)->data), fill_or_stroke); - g_slist_free (items); + vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); } // HACK: reset fill-opacity - that 0.75 is annoying; BUT remove this when we have an opacity slider for all tabs SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - for (GSList const *i = selection->itemList(); i != NULL; i = i->next) { + SelContainer itemlist = selection->itemList(); + for (SelContainer::const_iterator i = itemlist.begin();i!=itemlist.end();i++) { //FIXME: see above - sp_repr_css_change_recursive(SP_OBJECT(i->data)->getRepr(), css, "style"); + sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); - sp_item_set_gradient(SP_ITEM(i->data), vector, (SPGradientType) type, fill_or_stroke); + sp_item_set_gradient(SP_ITEM(*i), vector, (SPGradientType) type, fill_or_stroke); if (type == SP_GRADIENT_TYPE_LINEAR) { - sp_item_gradient_set_coords (SP_ITEM(i->data), POINT_LG_BEGIN, 0, rc.origin, fill_or_stroke, true, false); - sp_item_gradient_set_coords (SP_ITEM(i->data), POINT_LG_END, 0, pt, fill_or_stroke, true, false); + sp_item_gradient_set_coords (SP_ITEM(*i), POINT_LG_BEGIN, 0, rc.origin, fill_or_stroke, true, false); + sp_item_gradient_set_coords (SP_ITEM(*i), POINT_LG_END, 0, pt, fill_or_stroke, true, false); } else if (type == SP_GRADIENT_TYPE_RADIAL) { - sp_item_gradient_set_coords (SP_ITEM(i->data), POINT_RG_CENTER, 0, rc.origin, fill_or_stroke, true, false); - sp_item_gradient_set_coords (SP_ITEM(i->data), POINT_RG_R1, 0, pt, fill_or_stroke, true, false); + sp_item_gradient_set_coords (SP_ITEM(*i), POINT_RG_CENTER, 0, rc.origin, fill_or_stroke, true, false); + sp_item_gradient_set_coords (SP_ITEM(*i), POINT_RG_R1, 0, pt, fill_or_stroke, true, false); } - SP_OBJECT(i->data)->requestModified(SP_OBJECT_MODIFIED_FLAG); + SP_OBJECT(*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); } if (ec->_grdrag) { ec->_grdrag->updateDraggers(); @@ -942,7 +949,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta ec->_grdrag->local_change = true; // give the grab out-of-bounds values of xp/yp because we're already dragging // and therefore are already out of tolerance - ec->_grdrag->grabKnot (SP_ITEM(selection->itemList()->data), + ec->_grdrag->grabKnot (SP_ITEM(selection->itemList().front()), type == SP_GRADIENT_TYPE_LINEAR? POINT_LG_END : POINT_RG_R1, -1, // ignore number (though it is always 1) fill_or_stroke, 99999, 99999, etime); @@ -951,7 +958,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta // status text; we do not track coords because this branch is run once, not all the time // during drag - int n_objects = g_slist_length((GSList *) selection->itemList()); + int n_objects = selection->itemList().size(); rc.message_context->setF(Inkscape::NORMAL_MESSAGE, ngettext("Gradient for %d object; with Ctrl to snap angle", "Gradient for %d objects; with Ctrl to snap angle", n_objects), diff --git a/src/ui/tools/gradient-tool.h b/src/ui/tools/gradient-tool.h index 6fe3bca9f..786aed372 100644 --- a/src/ui/tools/gradient-tool.h +++ b/src/ui/tools/gradient-tool.h @@ -18,6 +18,7 @@ #include #include #include "ui/tools/tool-base.h" +class SPObject;//kill it #define SP_GRADIENT_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) #define SP_IS_GRADIENT_CONTEXT(obj) (dynamic_cast((const Inkscape::UI::Tools::ToolBase*)obj) != NULL) @@ -25,12 +26,12 @@ namespace Inkscape { namespace UI { namespace Tools { +int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second);//kill it class GradientTool : public ToolBase { public: GradientTool(); virtual ~GradientTool(); - Geom::Point origin; bool cursor_addnode; diff --git a/src/ui/tools/lpe-tool.cpp b/src/ui/tools/lpe-tool.cpp index c9b656397..ce0ad7a9a 100644 --- a/src/ui/tools/lpe-tool.cpp +++ b/src/ui/tools/lpe-tool.cpp @@ -407,10 +407,10 @@ lpetool_create_measuring_items(LpeTool *lc, Inkscape::Selection *selection) SPCanvasGroup *tmpgrp = lc->desktop->getTempGroup(); gchar *arc_length; double lengthval; - - for (GSList const *i = selection->itemList(); i != NULL; i = i->next) { - if (SP_IS_PATH(i->data)) { - path = SP_PATH(i->data); + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + if (SP_IS_PATH(*i)) { + path = SP_PATH(*i); curve = path->getCurve(); Geom::Piecewise > pwd2 = paths_to_pw(curve->get_pathvector()); canvas_text = (SPCanvasText *) sp_canvastext_new(tmpgrp, lc->desktop, Geom::Point(0,0), ""); diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index b7e54b9c8..8d52210ff 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -441,10 +441,10 @@ bool MeasureTool::root_handler(GdkEvent* event) { // TODO switch to a different variable name. The single letter 'l' is easy to misread. //select elements crossed by line segment: - GSList *items = desktop->getDocument()->getItemsAtPoints(desktop->dkey, points); + SelContainer items = desktop->getDocument()->getItemsAtPoints(desktop->dkey, points); std::vector intersection_times; - for (GSList *l = items; l != NULL; l = l->next) { - SPItem *item = static_cast(l->data); + for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + SPItem *item = static_cast(*i); if (SP_IS_SHAPE(item)) { calculate_intersections(desktop, item, lineseg, SP_SHAPE(item)->getCurve(), intersection_times); diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index d333b932e..1cc06a5b9 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -48,6 +48,7 @@ // Mesh specific #include "ui/tools/mesh-tool.h" +#include "ui/tools/gradient-tool.h"//not needed #include "sp-mesh-gradient.h" #include "display/sp-ctrlcurve.h" @@ -113,7 +114,7 @@ void MeshTool::selection_changed(Inkscape::Selection* /*sel*/) { return; } - guint n_obj = g_slist_length((GSList *) selection->itemList()); + guint n_obj = selection->itemList().size(); if (!drag->isNonEmpty() || selection->isEmpty()) { return; @@ -477,11 +478,12 @@ bool MeshTool::root_handler(GdkEvent* event) { if (over_line) { // We take the first item in selection, because with doubleclick, the first click // always resets selection to the single object under cursor - sp_mesh_context_split_near_point(this, SP_ITEM(selection->itemList()->data), this->mousepoint_doc, event->button.time); + sp_mesh_context_split_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); } else { // Create a new gradient with default coordinates. - for (GSList const* i = selection->itemList(); i != NULL; i = i->next) { - SPItem *item = SP_ITEM(i->data); + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = SP_ITEM(*i); SPGradientType new_type = SP_GRADIENT_TYPE_MESH; Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -930,6 +932,12 @@ bool MeshTool::root_handler(GdkEvent* event) { return ret; } +/* +int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) +{ + return sp_repr_compare_position(((SPItem*)first)->getRepr(), + ((SPItem*)second)->getRepr())<0; +}*/ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/, guint32 /*etime*/) { SPDesktop *desktop = SP_EVENT_CONTEXT(&rc)->desktop; @@ -950,27 +958,27 @@ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/ } else { // Starting from empty space: // Sort items so that the topmost comes last - GSList *items = g_slist_copy ((GSList *) selection->itemList()); - items = g_slist_sort(items, (GCompareFunc) sp_item_repr_compare_position); + SelContainer items(selection->itemList()); + items.sort(sp_item_repr_compare_position_obj); // take topmost - vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(g_slist_last(items)->data), fill_or_stroke); - g_slist_free (items); + vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); } // HACK: reset fill-opacity - that 0.75 is annoying; BUT remove this when we have an opacity slider for all tabs SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - for (GSList const *i = selection->itemList(); i != NULL; i = i->next) { + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above - sp_repr_css_change_recursive(SP_OBJECT(i->data)->getRepr(), css, "style"); + sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); - sp_item_set_gradient(SP_ITEM(i->data), vector, (SPGradientType) type, fill_or_stroke); + sp_item_set_gradient(SP_ITEM(*i), vector, (SPGradientType) type, fill_or_stroke); // We don't need to do anything. Mesh is already sized appropriately. - SP_OBJECT(i->data)->requestModified(SP_OBJECT_MODIFIED_FLAG); + SP_OBJECT(*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); } // if (ec->_grdrag) { // ec->_grdrag->updateDraggers(); @@ -988,7 +996,7 @@ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/ // status text; we do not track coords because this branch is run once, not all the time // during drag - int n_objects = g_slist_length((GSList *) selection->itemList()); + int n_objects = selection->itemList().size(); rc.message_context->setF(Inkscape::NORMAL_MESSAGE, ngettext("Gradient for %d object; with Ctrl to snap angle", "Gradient for %d objects; with Ctrl to snap angle", n_objects), diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index caec901a6..46c978c84 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -420,10 +420,9 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { std::set shapes; - GSList const *ilist = sel->itemList(); - - for (GSList *i = const_cast(ilist); i; i = i->next) { - SPObject *obj = static_cast(i->data); + SelContainer items=sel->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPObject *obj = static_cast(*i); if (SP_IS_ITEM(obj)) { gather_items(this, NULL, static_cast(obj), SHAPE_ROLE_NORMAL, shapes); @@ -668,9 +667,8 @@ void NodeTool::select_area(Geom::Rect const &sel, GdkEventButton *event) { if (this->_multipath->empty()) { // if multipath is empty, select rubberbanded items rather than nodes Inkscape::Selection *selection = this->desktop->selection; - GSList *items = this->desktop->getDocument()->getItemsInBox(this->desktop->dkey, sel); + SelContainer items = this->desktop->getDocument()->getItemsInBox(this->desktop->dkey, sel); selection->setList(items); - g_slist_free(items); } else { if (!held_shift(*event)) { this->_selected_nodes->clear(); diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index 939b1a0b3..f84170631 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -481,7 +481,7 @@ bool SelectTool::root_handler(GdkEvent* event) { case GDK_2BUTTON_PRESS: if (event->button.button == 1) { if (!selection->isEmpty()) { - SPItem *clicked_item = static_cast(selection->itemList()->data); + SPItem *clicked_item = static_cast(selection->itemList().front()); if (dynamic_cast(clicked_item) && !dynamic_cast(clicked_item)) { // enter group if it's not a 3D box desktop->setCurrentLayer(clicked_item); @@ -718,7 +718,7 @@ bool SelectTool::root_handler(GdkEvent* event) { if (r->is_started() && !within_tolerance) { // this was a rubberband drag - GSList *items = NULL; + SelContainer items; if (r->getMode() == RUBBERBAND_MODE_RECT) { Geom::OptRect const b = r->getRectangle(); @@ -739,7 +739,6 @@ bool SelectTool::root_handler(GdkEvent* event) { selection->setList (items); } - g_slist_free (items); } else { // it was just a click, or a too small rubberband r->stop(); diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index a01c5c55b..d339f6d19 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -188,7 +188,7 @@ void SprayTool::update_cursor(bool /*with_shift*/) { gchar *sel_message = NULL; if (!desktop->selection->isEmpty()) { - num = g_slist_length(const_cast(desktop->selection->itemList())); + num = desktop->selection->itemList().size(); sel_message = g_strdup_printf(ngettext("%i object selected","%i objects selected",num), num); } else { sel_message = g_strdup_printf("%s", _("Nothing selected")); @@ -436,11 +436,9 @@ static bool sp_spray_recursive(SPDesktop *desktop, SPItem *unionResult = NULL; // Previous union int i=1; - for (GSList *items = g_slist_copy(const_cast(selection->itemList())); - items != NULL; - items = items->next) { - - SPItem *item1 = dynamic_cast(static_cast(items->data)); + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator it=items.begin();it!=items.end();it++){ + SPItem *item1 = dynamic_cast(static_cast(*it)); if (i == 1) { parent_item = item1; } @@ -552,20 +550,16 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point double move_standard_deviation = get_move_standard_deviation(tc); { - GSList *const original_selection = g_slist_copy(const_cast(selection->itemList())); + SelContainer const items(selection->itemList()); - for (GSList *items = original_selection; - items != NULL; - items = items->next) { - SPItem *item = dynamic_cast(static_cast(items->data)); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); sp_object_ref(item); } - for (GSList *items = original_selection; - items != NULL; - items = items->next) { - SPItem *item = dynamic_cast(static_cast(items->data)); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); if (is_transform_modes(tc->mode)) { @@ -579,10 +573,8 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point } } - for (GSList *items = original_selection; - items != NULL; - items = items->next) { - SPItem *item = dynamic_cast(static_cast(items->data)); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); sp_object_unref(item); } @@ -658,7 +650,7 @@ bool SprayTool::root_handler(GdkEvent* event) { guint num = 0; if (!desktop->selection->isEmpty()) { - num = g_slist_length(const_cast(desktop->selection->itemList())); + num = desktop->selection->itemList().size(); } if (num == 0) { this->message_context->flash(Inkscape::ERROR_MESSAGE, _("Nothing selected! Select objects to spray.")); diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp index df0583d67..a4370256d 100644 --- a/src/ui/tools/text-tool.cpp +++ b/src/ui/tools/text-tool.cpp @@ -1470,7 +1470,7 @@ int TextTool::_styleQueried(SPStyle *style, int property) } sp_text_context_validate_cursor_iterators(this); - GSList *styles_list = NULL; + SelContainer styles_list; Inkscape::Text::Layout::iterator begin_it, end_it; if (this->text_sel_start < this->text_sel_end) { @@ -1486,7 +1486,7 @@ int TextTool::_styleQueried(SPStyle *style, int property) } } for (Inkscape::Text::Layout::iterator it = begin_it ; it < end_it ; it.nextStartOfSpan()) { - SPObject const *pos_obj = 0; + SPObject *pos_obj = 0; void *rawptr = 0; layout->getSourceOfCharacter(it, &rawptr); if (!rawptr || !SP_IS_OBJECT(rawptr)) { @@ -1496,12 +1496,11 @@ int TextTool::_styleQueried(SPStyle *style, int property) while (SP_IS_STRING(pos_obj) && pos_obj->parent) { pos_obj = pos_obj->parent; // SPStrings don't have style } - styles_list = g_slist_prepend(styles_list, (gpointer)pos_obj); + styles_list.push_front(pos_obj); } int result = sp_desktop_query_style_from_list (styles_list, style, property); - g_slist_free(styles_list); return result; } diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index a07f2fb86..cc05f9775 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -1178,11 +1178,9 @@ SPItem *sp_event_context_find_item(SPDesktop *desktop, Geom::Point const &p, SPItem * sp_event_context_over_item(SPDesktop *desktop, SPItem *item, Geom::Point const &p) { - GSList *temp = NULL; - temp = g_slist_prepend(temp, item); + SelContainer temp; + temp.push_front(static_cast(item)); SPItem *item_at_point = desktop->getItemFromListAtPointBottom(temp, p); - g_slist_free(temp); - return item_at_point; } diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 5e53fdb93..9342127ce 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -163,7 +163,7 @@ void TweakTool::update_cursor (bool with_shift) { gchar *sel_message = NULL; if (!desktop->selection->isEmpty()) { - num = g_slist_length(const_cast(desktop->selection->itemList())); + num = desktop->selection->itemList().size(); sel_message = g_strdup_printf(ngettext("%i object selected","%i objects selected",num), num); } else { sel_message = g_strdup_printf("%s", _("Nothing selected")); @@ -382,14 +382,13 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P } if (dynamic_cast(item) || dynamic_cast(item)) { - GSList *items = g_slist_prepend (NULL, item); - GSList *selected = NULL; - GSList *to_select = NULL; + SelContainer items; + items.push_back(item); + SelContainer selected; + SelContainer to_select; SPDocument *doc = item->document; - sp_item_list_to_curves (items, &selected, &to_select); - g_slist_free (items); - SPObject* newObj = doc->getObjectByRepr(static_cast(to_select->data)); - g_slist_free (to_select); + sp_item_list_to_curves (items, selected, to_select); + SPObject* newObj = doc->getObjectByRepr(dynamic_cast(to_select.front())); item = dynamic_cast(newObj); g_assert(item != NULL); selection->add(item); @@ -1088,11 +1087,9 @@ sp_tweak_dilate (TweakTool *tc, Geom::Point event_p, Geom::Point p, Geom::Point double move_force = get_move_force(tc); double color_force = MIN(sqrt(path_force)/20.0, 1); - for (GSList *items = g_slist_copy(const_cast(selection->itemList())); - items != NULL; - items = items->next) { - - SPItem *item = dynamic_cast(static_cast(items->data)); + SelContainer items=selection->itemList(); + for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + SPItem *item = dynamic_cast(static_cast(*i)); if (is_color_mode (tc->mode)) { if (do_fill || do_stroke || do_opacity) { @@ -1199,7 +1196,7 @@ bool TweakTool::root_handler(GdkEvent* event) { guint num = 0; if (!desktop->selection->isEmpty()) { - num = g_slist_length(const_cast(desktop->selection->itemList())); + num = desktop->selection->itemList().size(); } if (num == 0) { this->message_context->flash(Inkscape::ERROR_MESSAGE, _("Nothing selected! Select objects to tweak.")); diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index 00a74c4fe..ddf67fb5b 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -125,7 +125,8 @@ ObjectCompositeSettings::_blendBlurValueChanged() const Glib::ustring blendmode = _fe_cb.get_blend_mode(); //apply created filter to every selected item - for (StyleSubject::iterator i = _subject->begin() ; i != _subject->end() ; ++i ) { + SelContainer sel=_subject->getDesktop()->getSelection()->itemList(); + for (SelContainer::const_iterator i = sel.begin() ; i != sel.end() ; ++i ) { if (!SP_IS_ITEM(*i)) { continue; } diff --git a/src/ui/widget/style-subject.cpp b/src/ui/widget/style-subject.cpp index a48370d9b..9d09e67d3 100644 --- a/src/ui/widget/style-subject.cpp +++ b/src/ui/widget/style-subject.cpp @@ -54,7 +54,7 @@ Inkscape::Selection *StyleSubject::Selection::_getSelection() const { return NULL; } } - +/* StyleSubject::iterator StyleSubject::Selection::begin() { Inkscape::Selection *selection = _getSelection(); if (selection) { @@ -62,7 +62,7 @@ StyleSubject::iterator StyleSubject::Selection::begin() { } else { return iterator(NULL); } -} +}*/ Geom::OptRect StyleSubject::Selection::getBounds(SPItem::BBoxType type) { Inkscape::Selection *selection = _getSelection(); @@ -104,8 +104,7 @@ void StyleSubject::Selection::setCSS(SPCSSAttr *css) { } StyleSubject::CurrentLayer::CurrentLayer() { - _element.data = NULL; - _element.next = NULL; + _element = NULL; } StyleSubject::CurrentLayer::~CurrentLayer() { @@ -114,10 +113,10 @@ StyleSubject::CurrentLayer::~CurrentLayer() { void StyleSubject::CurrentLayer::_setLayer(SPObject *layer) { _layer_release.disconnect(); _layer_modified.disconnect(); - if (_element.data) { - sp_object_unref(static_cast(_element.data), NULL); + if (_element) { + sp_object_unref(static_cast(_element), NULL); } - _element.data = layer; + _element = layer; if (layer) { sp_object_ref(layer, NULL); _layer_release = layer->connectRelease(sigc::hide(sigc::bind(sigc::mem_fun(*this, &CurrentLayer::_setLayer), (SPObject *)NULL))); @@ -127,20 +126,17 @@ void StyleSubject::CurrentLayer::_setLayer(SPObject *layer) { } SPObject *StyleSubject::CurrentLayer::_getLayer() const { - return static_cast(_element.data); + return static_cast(_element); } -GSList *StyleSubject::CurrentLayer::_getLayerSList() const { - if (_element.data) { - return &_element; - } else { - return NULL; - } -} +SPObject *StyleSubject::CurrentLayer::_getLayerSList() const { + return _element; +} +/* StyleSubject::iterator StyleSubject::CurrentLayer::begin() { return iterator(_getLayerSList()); -} +}*/ Geom::OptRect StyleSubject::CurrentLayer::getBounds(SPItem::BBoxType type) { SPObject *layer = _getLayer(); @@ -152,8 +148,10 @@ Geom::OptRect StyleSubject::CurrentLayer::getBounds(SPItem::BBoxType type) { } int StyleSubject::CurrentLayer::queryStyle(SPStyle *query, int property) { - GSList *list = _getLayerSList(); - if (list) { + SelContainer list; + SPObject* i=_getLayerSList(); + if (i) { + list.push_back(i); return sp_desktop_query_style_from_list(list, query, property); } else { return QUERY_STYLE_NOTHING; diff --git a/src/ui/widget/style-subject.h b/src/ui/widget/style-subject.h index 47da91732..60f979eb0 100644 --- a/src/ui/widget/style-subject.h +++ b/src/ui/widget/style-subject.h @@ -35,7 +35,8 @@ public: class Selection; class CurrentLayer; - typedef Util::GSListConstIterator iterator; + //typedef Util::GSListConstIterator iterator; + typedef std::list::iterator iterator; StyleSubject(); virtual ~StyleSubject(); @@ -43,8 +44,8 @@ public: void setDesktop(SPDesktop *desktop); SPDesktop *getDesktop() const { return _desktop; } - virtual iterator begin() = 0; - virtual iterator end() { return iterator(NULL); } +// virtual iterator begin() = 0; +// virtual iterator end() { return iterator(NULL); } virtual Geom::OptRect getBounds(SPItem::BBoxType type) = 0; virtual int queryStyle(SPStyle *query, int property) = 0; virtual void setCSS(SPCSSAttr *css) = 0; @@ -67,7 +68,7 @@ public: Selection(); ~Selection(); - virtual iterator begin(); +// virtual iterator begin(); virtual Geom::OptRect getBounds(SPItem::BBoxType type); virtual int queryStyle(SPStyle *query, int property); virtual void setCSS(SPCSSAttr *css); @@ -88,7 +89,7 @@ public: CurrentLayer(); ~CurrentLayer(); - virtual iterator begin(); +// virtual iterator begin(); virtual Geom::OptRect getBounds(SPItem::BBoxType type); virtual int queryStyle(SPStyle *query, int property); virtual void setCSS(SPCSSAttr *css); @@ -99,12 +100,12 @@ protected: private: SPObject *_getLayer() const; void _setLayer(SPObject *layer); - GSList *_getLayerSList() const; + SPObject *_getLayerSList() const; sigc::connection _layer_switched; sigc::connection _layer_release; sigc::connection _layer_modified; - mutable GSList _element; + mutable SPObject* _element; }; } -- cgit v1.2.3 From cc22d3551937d17c596e4dd209060b16a714d463 Mon Sep 17 00:00:00 2001 From: Mc <> Date: Wed, 18 Feb 2015 02:17:25 +0100 Subject: OMG IT'S COMPILING. IT'S REALLY COMPILING ! (Of course it segfaults (what did you expect ?)) (bzr r13922.1.3) --- src/selection-chemistry.cpp | 174 +++++++++++++++++++++----------------------- 1 file changed, 83 insertions(+), 91 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 05711e734..c213e76e4 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -2298,17 +2298,9 @@ sp_selection_move_screen(Inkscape::Selection *selection, gdouble dx, gdouble dy) } } -namespace { -template -SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, - bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive); - -template -SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const &items, SPObject *root, - bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive); -struct Forward { +typedef struct Forward { typedef SPObject *Iterator; static Iterator children(SPObject *o) { return o->firstChild(); } @@ -2317,9 +2309,9 @@ struct Forward { static SPObject *object(Iterator i) { return i; } static Iterator next(Iterator i) { return i->getNext(); } -}; +} Forward; -struct ListReverse { +typedef struct ListReverse { typedef GSList *Iterator; static Iterator children(SPObject *o) { @@ -2350,8 +2342,87 @@ private: } return list; } -}; +} ListReverse; + + + +template +SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, + bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) +{ + typename D::Iterator children; + typename D::Iterator iter; + + SPItem *found=NULL; + + if (path) { + SPObject *object=reinterpret_cast(path->data); + g_assert(object->parent == root); + if (desktop->isLayer(object)) { + found = next_item(desktop, path->next, object, only_in_viewport, inlayer, onlyvisible, onlysensitive); + } + iter = children = D::siblings_after(object); + } else { + iter = children = D::children(root); + } + + while ( iter && !found ) { + SPObject *object=D::object(iter); + if (desktop->isLayer(object)) { + if (PREFS_SELECTION_LAYER != inlayer) { // recurse into sublayers + found = next_item(desktop, NULL, object, only_in_viewport, inlayer, onlyvisible, onlysensitive); + } + } else { + SPItem *item = dynamic_cast(object); + if ( item && + ( !only_in_viewport || desktop->isWithinViewport(item) ) && + ( !onlyvisible || !desktop->itemIsHidden(item)) && + ( !onlysensitive || !item->isLocked()) && + !desktop->isLayer(item) ) + { + found = item; + } + } + iter = D::next(iter); + } + + D::dispose(children); + return found; +} + + +template +SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const items, + SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) +{ + SPObject *current=root; + for(SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + SPItem *item = dynamic_cast(static_cast(*i)); + if ( root->isAncestorOf(item) && + ( !only_in_viewport || desktop->isWithinViewport(item) ) ) + { + current = item; + break; + } + } + + GSList *path=NULL; + while ( current != root ) { + path = g_slist_prepend(path, current); + current = current->parent; + } + + SPItem *next; + // first, try from the current object + next = next_item(desktop, path, root, only_in_viewport, inlayer, onlyvisible, onlysensitive); + g_slist_free(path); + + if (!next) { // if we ran out of objects, start over at the root + next = next_item(desktop, NULL, root, only_in_viewport, inlayer, onlyvisible, onlysensitive); + } + + return next; } void @@ -2478,87 +2549,8 @@ void sp_selection_edit_clip_or_mask(SPDesktop * /*dt*/, bool /*clip*/) } -namespace { -template -SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const items, - SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) -{ - SPObject *current=root; - for(SelContainer::const_iterator i = items.begin();i!=items.end();i++) { - SPItem *item = dynamic_cast(static_cast(*i)); - if ( root->isAncestorOf(item) && - ( !only_in_viewport || desktop->isWithinViewport(item) ) ) - { - current = item; - break; - } - } - GSList *path=NULL; - while ( current != root ) { - path = g_slist_prepend(path, current); - current = current->parent; - } - - SPItem *next; - // first, try from the current object - next = next_item(desktop, path, root, only_in_viewport, inlayer, onlyvisible, onlysensitive); - g_slist_free(path); - - if (!next) { // if we ran out of objects, start over at the root - next = next_item(desktop, NULL, root, only_in_viewport, inlayer, onlyvisible, onlysensitive); - } - - return next; -} - -template -SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, - bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) -{ - typename D::Iterator children; - typename D::Iterator iter; - - SPItem *found=NULL; - - if (path) { - SPObject *object=reinterpret_cast(path->data); - g_assert(object->parent == root); - if (desktop->isLayer(object)) { - found = next_item(desktop, path->next, object, only_in_viewport, inlayer, onlyvisible, onlysensitive); - } - iter = children = D::siblings_after(object); - } else { - iter = children = D::children(root); - } - - while ( iter && !found ) { - SPObject *object=D::object(iter); - if (desktop->isLayer(object)) { - if (PREFS_SELECTION_LAYER != inlayer) { // recurse into sublayers - found = next_item(desktop, NULL, object, only_in_viewport, inlayer, onlyvisible, onlysensitive); - } - } else { - SPItem *item = dynamic_cast(object); - if ( item && - ( !only_in_viewport || desktop->isWithinViewport(item) ) && - ( !onlyvisible || !desktop->itemIsHidden(item)) && - ( !onlysensitive || !item->isLocked()) && - !desktop->isLayer(item) ) - { - found = item; - } - } - iter = D::next(iter); - } - - D::dispose(children); - - return found; -} - -} /** * If \a item is not entirely visible then adjust visible area to centre on the centre on of -- cgit v1.2.3 From 9e21d00fb1053897420f80d05a9815c5b2bbf312 Mon Sep 17 00:00:00 2001 From: mc <> Date: Wed, 18 Feb 2015 11:25:23 +0100 Subject: I can't really understand why, but i can now launch inkscape without it segfaulting. That's an improvement. Next thing: code cleaning, replacing containers with vectors (bzr r13922.1.4) --- po/inkscape.pot | 35410 ------------------------------ src/selection-chemistry.cpp | 82 +- src/selection.cpp | 10 +- src/selection.h | 4 +- src/splivarot.cpp | 6 +- src/ui/dialog/export.cpp | 12 +- src/ui/dialog/filter-effects-dialog.cpp | 2 +- src/ui/dialog/svg-fonts-dialog.cpp | 4 +- 8 files changed, 53 insertions(+), 35477 deletions(-) delete mode 100644 po/inkscape.pot diff --git a/po/inkscape.pot b/po/inkscape.pot deleted file mode 100644 index 9c74dc340..000000000 --- a/po/inkscape.pot +++ /dev/null @@ -1,35410 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-01-28 11:25+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" - -#: ../inkscape.desktop.in.h:1 -msgid "Inkscape" -msgstr "" - -#: ../inkscape.desktop.in.h:2 -msgid "Vector Graphics Editor" -msgstr "" - -#: ../inkscape.desktop.in.h:3 -msgid "Inkscape Vector Graphics Editor" -msgstr "" - -#: ../inkscape.desktop.in.h:4 -msgid "Create and edit Scalable Vector Graphics images" -msgstr "" - -#: ../inkscape.desktop.in.h:5 -msgid "New Drawing" -msgstr "" - -#: ../share/filters/filters.svg.h:2 -msgid "Smart Jelly" -msgstr "" - -#: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:7 -#: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:31 -#: ../share/filters/filters.svg.h:35 ../share/filters/filters.svg.h:107 -#: ../share/filters/filters.svg.h:139 ../share/filters/filters.svg.h:143 -#: ../share/filters/filters.svg.h:147 ../share/filters/filters.svg.h:151 -#: ../share/filters/filters.svg.h:163 ../share/filters/filters.svg.h:171 -#: ../share/filters/filters.svg.h:219 ../share/filters/filters.svg.h:227 -#: ../share/filters/filters.svg.h:283 ../share/filters/filters.svg.h:299 -#: ../share/filters/filters.svg.h:303 ../share/filters/filters.svg.h:551 -#: ../share/filters/filters.svg.h:555 ../share/filters/filters.svg.h:559 -#: ../share/filters/filters.svg.h:563 ../share/filters/filters.svg.h:567 -#: ../src/extension/internal/filter/bevels.h:63 -#: ../src/extension/internal/filter/bevels.h:144 -#: ../src/extension/internal/filter/bevels.h:228 -msgid "Bevels" -msgstr "" - -#: ../share/filters/filters.svg.h:4 -msgid "Same as Matte jelly but with more controls" -msgstr "" - -#: ../share/filters/filters.svg.h:6 -msgid "Metal Casting" -msgstr "" - -#: ../share/filters/filters.svg.h:8 -msgid "Smooth drop-like bevel with metallic finish" -msgstr "" - -#: ../share/filters/filters.svg.h:10 -msgid "Apparition" -msgstr "" - -#: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:323 -#: ../share/filters/filters.svg.h:655 -#: ../src/extension/internal/filter/blurs.h:63 -#: ../src/extension/internal/filter/blurs.h:132 -#: ../src/extension/internal/filter/blurs.h:201 -#: ../src/extension/internal/filter/blurs.h:267 -#: ../src/extension/internal/filter/blurs.h:351 -msgid "Blurs" -msgstr "" - -#: ../share/filters/filters.svg.h:12 -msgid "Edges are partly feathered out" -msgstr "" - -#: ../share/filters/filters.svg.h:14 -msgid "Jigsaw Piece" -msgstr "" - -#: ../share/filters/filters.svg.h:16 -msgid "Low, sharp bevel" -msgstr "" - -#: ../share/filters/filters.svg.h:18 -msgid "Rubber Stamp" -msgstr "" - -#: ../share/filters/filters.svg.h:19 ../share/filters/filters.svg.h:43 -#: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:51 -#: ../share/filters/filters.svg.h:59 ../share/filters/filters.svg.h:63 -#: ../share/filters/filters.svg.h:95 ../share/filters/filters.svg.h:99 -#: ../share/filters/filters.svg.h:103 ../share/filters/filters.svg.h:287 -#: ../share/filters/filters.svg.h:291 ../share/filters/filters.svg.h:331 -#: ../share/filters/filters.svg.h:335 ../share/filters/filters.svg.h:339 -#: ../share/filters/filters.svg.h:391 ../share/filters/filters.svg.h:407 -#: ../share/filters/filters.svg.h:451 ../share/filters/filters.svg.h:455 -#: ../share/filters/filters.svg.h:459 ../share/filters/filters.svg.h:475 -#: ../share/filters/filters.svg.h:487 ../share/filters/filters.svg.h:583 -#: ../share/filters/filters.svg.h:643 ../share/filters/filters.svg.h:683 -#: ../share/filters/filters.svg.h:687 ../share/filters/filters.svg.h:691 -#: ../share/filters/filters.svg.h:695 ../share/filters/filters.svg.h:699 -#: ../share/filters/filters.svg.h:703 ../share/filters/filters.svg.h:707 -#: ../share/filters/filters.svg.h:711 ../share/filters/filters.svg.h:715 -#: ../share/filters/filters.svg.h:723 -#: ../src/extension/internal/filter/overlays.h:80 -msgid "Overlays" -msgstr "" - -#: ../share/filters/filters.svg.h:20 -msgid "Random whiteouts inside" -msgstr "" - -#: ../share/filters/filters.svg.h:22 -msgid "Ink Bleed" -msgstr "" - -#: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:27 -#: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:431 -msgid "Protrusions" -msgstr "" - -#: ../share/filters/filters.svg.h:24 -msgid "Inky splotches underneath the object" -msgstr "" - -#: ../share/filters/filters.svg.h:26 -msgid "Fire" -msgstr "" - -#: ../share/filters/filters.svg.h:28 -msgid "Edges of object are on fire" -msgstr "" - -#: ../share/filters/filters.svg.h:30 -msgid "Bloom" -msgstr "" - -#: ../share/filters/filters.svg.h:32 -msgid "Soft, cushion-like bevel with matte highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:34 -msgid "Ridged Border" -msgstr "" - -#: ../share/filters/filters.svg.h:36 -msgid "Ridged border with inner bevel" -msgstr "" - -#: ../share/filters/filters.svg.h:38 -msgid "Ripple" -msgstr "" - -#: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 -#: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 -#: ../share/filters/filters.svg.h:327 ../share/filters/filters.svg.h:363 -#: ../share/filters/filters.svg.h:443 ../share/filters/filters.svg.h:519 -#: ../share/filters/filters.svg.h:635 -#: ../src/extension/internal/filter/distort.h:96 -#: ../src/extension/internal/filter/distort.h:205 -msgid "Distort" -msgstr "" - -#: ../share/filters/filters.svg.h:40 -msgid "Horizontal rippling of edges" -msgstr "" - -#: ../share/filters/filters.svg.h:42 -msgid "Speckle" -msgstr "" - -#: ../share/filters/filters.svg.h:44 -msgid "Fill object with sparse translucent specks" -msgstr "" - -#: ../share/filters/filters.svg.h:46 -msgid "Oil Slick" -msgstr "" - -#: ../share/filters/filters.svg.h:48 -msgid "Rainbow-colored semitransparent oily splotches" -msgstr "" - -#: ../share/filters/filters.svg.h:50 -msgid "Frost" -msgstr "" - -#: ../share/filters/filters.svg.h:52 -msgid "Flake-like white splotches" -msgstr "" - -#: ../share/filters/filters.svg.h:54 -msgid "Leopard Fur" -msgstr "" - -#: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:175 -#: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:183 -#: ../share/filters/filters.svg.h:191 ../share/filters/filters.svg.h:211 -#: ../share/filters/filters.svg.h:239 ../share/filters/filters.svg.h:243 -#: ../share/filters/filters.svg.h:247 ../share/filters/filters.svg.h:255 -#: ../share/filters/filters.svg.h:387 ../share/filters/filters.svg.h:395 -#: ../share/filters/filters.svg.h:399 ../share/filters/filters.svg.h:403 -msgid "Materials" -msgstr "" - -#: ../share/filters/filters.svg.h:56 -msgid "Leopard spots (loses object's own color)" -msgstr "" - -#: ../share/filters/filters.svg.h:58 -msgid "Zebra" -msgstr "" - -#: ../share/filters/filters.svg.h:60 -msgid "Irregular vertical dark stripes (loses object's own color)" -msgstr "" - -#: ../share/filters/filters.svg.h:62 -msgid "Clouds" -msgstr "" - -#: ../share/filters/filters.svg.h:64 -msgid "Airy, fluffy, sparse white clouds" -msgstr "" - -#: ../share/filters/filters.svg.h:66 -#: ../src/extension/internal/bitmap/sharpen.cpp:38 -msgid "Sharpen" -msgstr "" - -#: ../share/filters/filters.svg.h:67 ../share/filters/filters.svg.h:71 -#: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:295 -#: ../share/filters/filters.svg.h:415 -#: ../src/extension/internal/filter/image.h:62 -msgid "Image Effects" -msgstr "" - -#: ../share/filters/filters.svg.h:68 -msgid "Sharpen edges and boundaries within the object, force=0.15" -msgstr "" - -#: ../share/filters/filters.svg.h:70 -msgid "Sharpen More" -msgstr "" - -#: ../share/filters/filters.svg.h:72 -msgid "Sharpen edges and boundaries within the object, force=0.3" -msgstr "" - -#: ../share/filters/filters.svg.h:74 -msgid "Oil painting" -msgstr "" - -#: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:79 -#: ../share/filters/filters.svg.h:83 ../share/filters/filters.svg.h:447 -#: ../share/filters/filters.svg.h:495 ../share/filters/filters.svg.h:499 -#: ../share/filters/filters.svg.h:503 ../share/filters/filters.svg.h:507 -#: ../share/filters/filters.svg.h:515 ../share/filters/filters.svg.h:659 -#: ../share/filters/filters.svg.h:663 ../share/filters/filters.svg.h:667 -#: ../share/filters/filters.svg.h:671 ../share/filters/filters.svg.h:675 -#: ../share/filters/filters.svg.h:679 ../share/filters/filters.svg.h:719 -#: ../share/filters/filters.svg.h:803 ../share/filters/filters.svg.h:815 -#: ../src/extension/internal/filter/paint.h:113 -#: ../src/extension/internal/filter/paint.h:244 -#: ../src/extension/internal/filter/paint.h:363 -#: ../src/extension/internal/filter/paint.h:507 -#: ../src/extension/internal/filter/paint.h:602 -#: ../src/extension/internal/filter/paint.h:725 -#: ../src/extension/internal/filter/paint.h:877 -#: ../src/extension/internal/filter/paint.h:981 -msgid "Image Paint and Draw" -msgstr "" - -#: ../share/filters/filters.svg.h:76 -msgid "Simulate oil painting style" -msgstr "" - -#. Pencil -#: ../share/filters/filters.svg.h:78 -#: ../src/ui/dialog/inkscape-preferences.cpp:424 -msgid "Pencil" -msgstr "" - -#: ../share/filters/filters.svg.h:80 -msgid "Detect color edges and retrace them in grayscale" -msgstr "" - -#: ../share/filters/filters.svg.h:82 -msgid "Blueprint" -msgstr "" - -#: ../share/filters/filters.svg.h:84 -msgid "Detect color edges and retrace them in blue" -msgstr "" - -#: ../share/filters/filters.svg.h:86 -msgid "Age" -msgstr "" - -#: ../share/filters/filters.svg.h:88 -msgid "Imitate aged photograph" -msgstr "" - -#: ../share/filters/filters.svg.h:90 -msgid "Organic" -msgstr "" - -#: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:119 -#: ../share/filters/filters.svg.h:127 ../share/filters/filters.svg.h:187 -#: ../share/filters/filters.svg.h:195 ../share/filters/filters.svg.h:199 -#: ../share/filters/filters.svg.h:251 ../share/filters/filters.svg.h:259 -#: ../share/filters/filters.svg.h:263 ../share/filters/filters.svg.h:355 -#: ../share/filters/filters.svg.h:359 ../share/filters/filters.svg.h:367 -#: ../share/filters/filters.svg.h:371 ../share/filters/filters.svg.h:375 -#: ../share/filters/filters.svg.h:379 ../share/filters/filters.svg.h:383 -#: ../share/filters/filters.svg.h:439 ../share/filters/filters.svg.h:467 -#: ../share/filters/filters.svg.h:491 ../share/filters/filters.svg.h:531 -msgid "Textures" -msgstr "" - -#: ../share/filters/filters.svg.h:92 -msgid "Bulging, knotty, slick 3D surface" -msgstr "" - -#: ../share/filters/filters.svg.h:94 -msgid "Barbed Wire" -msgstr "" - -#: ../share/filters/filters.svg.h:96 -msgid "Gray bevelled wires with drop shadows" -msgstr "" - -#: ../share/filters/filters.svg.h:98 -msgid "Swiss Cheese" -msgstr "" - -#: ../share/filters/filters.svg.h:100 -msgid "Random inner-bevel holes" -msgstr "" - -#: ../share/filters/filters.svg.h:102 -msgid "Blue Cheese" -msgstr "" - -#: ../share/filters/filters.svg.h:104 -msgid "Marble-like bluish speckles" -msgstr "" - -#: ../share/filters/filters.svg.h:106 -msgid "Button" -msgstr "" - -#: ../share/filters/filters.svg.h:108 -msgid "Soft bevel, slightly depressed middle" -msgstr "" - -#: ../share/filters/filters.svg.h:110 -msgid "Inset" -msgstr "" - -#: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:267 -#: ../share/filters/filters.svg.h:343 ../share/filters/filters.svg.h:435 -#: ../share/filters/filters.svg.h:811 -#: ../src/extension/internal/filter/shadows.h:81 -msgid "Shadows and Glows" -msgstr "" - -#: ../share/filters/filters.svg.h:112 -msgid "Shadowy outer bevel" -msgstr "" - -#: ../share/filters/filters.svg.h:114 -msgid "Dripping" -msgstr "" - -#: ../share/filters/filters.svg.h:116 -msgid "Random paint streaks downwards" -msgstr "" - -#: ../share/filters/filters.svg.h:118 -msgid "Jam Spread" -msgstr "" - -#: ../share/filters/filters.svg.h:120 -msgid "Glossy clumpy jam spread" -msgstr "" - -#: ../share/filters/filters.svg.h:122 -msgid "Pixel Smear" -msgstr "" - -#: ../share/filters/filters.svg.h:124 -msgid "Van Gogh painting effect for bitmaps" -msgstr "" - -#: ../share/filters/filters.svg.h:126 -msgid "Cracked Glass" -msgstr "" - -#: ../share/filters/filters.svg.h:128 -msgid "Under a cracked glass" -msgstr "" - -#: ../share/filters/filters.svg.h:130 -msgid "Bubbly Bumps" -msgstr "" - -#: ../share/filters/filters.svg.h:131 ../share/filters/filters.svg.h:307 -#: ../share/filters/filters.svg.h:311 ../share/filters/filters.svg.h:347 -#: ../share/filters/filters.svg.h:351 ../share/filters/filters.svg.h:419 -#: ../share/filters/filters.svg.h:423 ../share/filters/filters.svg.h:463 -#: ../share/filters/filters.svg.h:471 ../share/filters/filters.svg.h:479 -#: ../share/filters/filters.svg.h:483 ../share/filters/filters.svg.h:511 -#: ../share/filters/filters.svg.h:535 ../share/filters/filters.svg.h:539 -#: ../share/filters/filters.svg.h:543 ../share/filters/filters.svg.h:547 -#: ../share/filters/filters.svg.h:571 ../share/filters/filters.svg.h:579 -#: ../share/filters/filters.svg.h:595 ../share/filters/filters.svg.h:599 -#: ../share/filters/filters.svg.h:603 ../share/filters/filters.svg.h:607 -#: ../share/filters/filters.svg.h:611 ../share/filters/filters.svg.h:615 -#: ../share/filters/filters.svg.h:619 ../share/filters/filters.svg.h:623 -#: ../share/filters/filters.svg.h:799 ../share/filters/filters.svg.h:807 -#: ../src/extension/internal/filter/bumps.h:142 -#: ../src/extension/internal/filter/bumps.h:362 -msgid "Bumps" -msgstr "" - -#: ../share/filters/filters.svg.h:132 -msgid "Flexible bubbles effect with some displacement" -msgstr "" - -#: ../share/filters/filters.svg.h:134 -msgid "Glowing Bubble" -msgstr "" - -#: ../share/filters/filters.svg.h:135 ../share/filters/filters.svg.h:155 -#: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 -#: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 -#: ../share/filters/filters.svg.h:223 -msgid "Ridges" -msgstr "" - -#: ../share/filters/filters.svg.h:136 -msgid "Bubble effect with refraction and glow" -msgstr "" - -#: ../share/filters/filters.svg.h:138 -msgid "Neon" -msgstr "" - -#: ../share/filters/filters.svg.h:140 -msgid "Neon light effect" -msgstr "" - -#: ../share/filters/filters.svg.h:142 -msgid "Molten Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:144 -msgid "Melting parts of object together, with a glossy bevel and a glow" -msgstr "" - -#: ../share/filters/filters.svg.h:146 -msgid "Pressed Steel" -msgstr "" - -#: ../share/filters/filters.svg.h:148 -msgid "Pressed metal with a rolled edge" -msgstr "" - -#: ../share/filters/filters.svg.h:150 -msgid "Matte Bevel" -msgstr "" - -#: ../share/filters/filters.svg.h:152 -msgid "Soft, pastel-colored, blurry bevel" -msgstr "" - -#: ../share/filters/filters.svg.h:154 -msgid "Thin Membrane" -msgstr "" - -#: ../share/filters/filters.svg.h:156 -msgid "Thin like a soap membrane" -msgstr "" - -#: ../share/filters/filters.svg.h:158 -msgid "Matte Ridge" -msgstr "" - -#: ../share/filters/filters.svg.h:160 -msgid "Soft pastel ridge" -msgstr "" - -#: ../share/filters/filters.svg.h:162 -msgid "Glowing Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:164 -msgid "Glowing metal texture" -msgstr "" - -#: ../share/filters/filters.svg.h:166 -msgid "Leaves" -msgstr "" - -#: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 -#: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 -#: ../share/extensions/pathscatter.inx.h:1 -msgid "Scatter" -msgstr "" - -#: ../share/filters/filters.svg.h:168 -msgid "Leaves on the ground in Fall, or living foliage" -msgstr "" - -#: ../share/filters/filters.svg.h:170 -#: ../src/extension/internal/filter/paint.h:339 -msgid "Translucent" -msgstr "" - -#: ../share/filters/filters.svg.h:172 -msgid "Illuminated translucent plastic or glass effect" -msgstr "" - -#: ../share/filters/filters.svg.h:174 -msgid "Iridescent Beeswax" -msgstr "" - -#: ../share/filters/filters.svg.h:176 -msgid "Waxy texture which keeps its iridescence through color fill change" -msgstr "" - -#: ../share/filters/filters.svg.h:178 -msgid "Eroded Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:180 -msgid "Eroded metal texture with ridges, grooves, holes and bumps" -msgstr "" - -#: ../share/filters/filters.svg.h:182 -msgid "Cracked Lava" -msgstr "" - -#: ../share/filters/filters.svg.h:184 -msgid "A volcanic texture, a little like leather" -msgstr "" - -#: ../share/filters/filters.svg.h:186 -msgid "Bark" -msgstr "" - -#: ../share/filters/filters.svg.h:188 -msgid "Bark texture, vertical; use with deep colors" -msgstr "" - -#: ../share/filters/filters.svg.h:190 -msgid "Lizard Skin" -msgstr "" - -#: ../share/filters/filters.svg.h:192 -msgid "Stylized reptile skin texture" -msgstr "" - -#: ../share/filters/filters.svg.h:194 -msgid "Stone Wall" -msgstr "" - -#: ../share/filters/filters.svg.h:196 -msgid "Stone wall texture to use with not too saturated colors" -msgstr "" - -#: ../share/filters/filters.svg.h:198 -msgid "Silk Carpet" -msgstr "" - -#: ../share/filters/filters.svg.h:200 -msgid "Silk carpet texture, horizontal stripes" -msgstr "" - -#: ../share/filters/filters.svg.h:202 -msgid "Refractive Gel A" -msgstr "" - -#: ../share/filters/filters.svg.h:204 -msgid "Gel effect with light refraction" -msgstr "" - -#: ../share/filters/filters.svg.h:206 -msgid "Refractive Gel B" -msgstr "" - -#: ../share/filters/filters.svg.h:208 -msgid "Gel effect with strong refraction" -msgstr "" - -#: ../share/filters/filters.svg.h:210 -msgid "Metallized Paint" -msgstr "" - -#: ../share/filters/filters.svg.h:212 -msgid "" -"Metallized effect with a soft lighting, slightly translucent at the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:214 -msgid "Dragee" -msgstr "" - -#: ../share/filters/filters.svg.h:216 -msgid "Gel Ridge with a pearlescent look" -msgstr "" - -#: ../share/filters/filters.svg.h:218 -msgid "Raised Border" -msgstr "" - -#: ../share/filters/filters.svg.h:220 -msgid "Strongly raised border around a flat surface" -msgstr "" - -#: ../share/filters/filters.svg.h:222 -msgid "Metallized Ridge" -msgstr "" - -#: ../share/filters/filters.svg.h:224 -msgid "Gel Ridge metallized at its top" -msgstr "" - -#: ../share/filters/filters.svg.h:226 -msgid "Fat Oil" -msgstr "" - -#: ../share/filters/filters.svg.h:228 -msgid "Fat oil with some adjustable turbulence" -msgstr "" - -#: ../share/filters/filters.svg.h:230 -msgid "Black Hole" -msgstr "" - -#: ../share/filters/filters.svg.h:231 ../share/filters/filters.svg.h:275 -#: ../share/filters/filters.svg.h:279 ../share/filters/filters.svg.h:835 -#: ../share/filters/filters.svg.h:839 ../share/filters/filters.svg.h:843 -#: ../src/extension/internal/filter/morphology.h:76 -#: ../src/extension/internal/filter/morphology.h:203 -#: ../src/filter-enums.cpp:32 -msgid "Morphology" -msgstr "" - -#: ../share/filters/filters.svg.h:232 -msgid "Creates a black light inside and outside" -msgstr "" - -#: ../share/filters/filters.svg.h:234 -msgid "Cubes" -msgstr "" - -#: ../share/filters/filters.svg.h:236 -msgid "Scattered cubes; adjust the Morphology primitive to vary size" -msgstr "" - -#: ../share/filters/filters.svg.h:238 -msgid "Peel Off" -msgstr "" - -#: ../share/filters/filters.svg.h:240 -msgid "Peeling painting on a wall" -msgstr "" - -#: ../share/filters/filters.svg.h:242 -msgid "Gold Splatter" -msgstr "" - -#: ../share/filters/filters.svg.h:244 -msgid "Splattered cast metal, with golden highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:246 -msgid "Gold Paste" -msgstr "" - -#: ../share/filters/filters.svg.h:248 -msgid "Fat pasted cast metal, with golden highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:250 -msgid "Crumpled Plastic" -msgstr "" - -#: ../share/filters/filters.svg.h:252 -msgid "Crumpled matte plastic, with melted edge" -msgstr "" - -#: ../share/filters/filters.svg.h:254 -msgid "Enamel Jewelry" -msgstr "" - -#: ../share/filters/filters.svg.h:256 -msgid "Slightly cracked enameled texture" -msgstr "" - -#: ../share/filters/filters.svg.h:258 -msgid "Rough Paper" -msgstr "" - -#: ../share/filters/filters.svg.h:260 -msgid "Aquarelle paper effect which can be used for pictures as for objects" -msgstr "" - -#: ../share/filters/filters.svg.h:262 -msgid "Rough and Glossy" -msgstr "" - -#: ../share/filters/filters.svg.h:264 -msgid "" -"Crumpled glossy paper effect which can be used for pictures as for objects" -msgstr "" - -#: ../share/filters/filters.svg.h:266 -msgid "In and Out" -msgstr "" - -#: ../share/filters/filters.svg.h:268 -msgid "Inner colorized shadow, outer black shadow" -msgstr "" - -#: ../share/filters/filters.svg.h:270 -msgid "Air Spray" -msgstr "" - -#: ../share/filters/filters.svg.h:272 -msgid "Convert to small scattered particles with some thickness" -msgstr "" - -#: ../share/filters/filters.svg.h:274 -msgid "Warm Inside" -msgstr "" - -#: ../share/filters/filters.svg.h:276 -msgid "Blurred colorized contour, filled inside" -msgstr "" - -#: ../share/filters/filters.svg.h:278 -msgid "Cool Outside" -msgstr "" - -#: ../share/filters/filters.svg.h:280 -msgid "Blurred colorized contour, empty inside" -msgstr "" - -#: ../share/filters/filters.svg.h:282 -msgid "Electronic Microscopy" -msgstr "" - -#: ../share/filters/filters.svg.h:284 -msgid "" -"Bevel, crude light, discoloration and glow like in electronic microscopy" -msgstr "" - -#: ../share/filters/filters.svg.h:286 -msgid "Tartan" -msgstr "" - -#: ../share/filters/filters.svg.h:288 -msgid "Checkered tartan pattern" -msgstr "" - -#: ../share/filters/filters.svg.h:290 -msgid "Shaken Liquid" -msgstr "" - -#: ../share/filters/filters.svg.h:292 -msgid "Colorizable filling with flow inside like transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:294 -msgid "Soft Focus Lens" -msgstr "" - -#: ../share/filters/filters.svg.h:296 -msgid "Glowing image content without blurring it" -msgstr "" - -#: ../share/filters/filters.svg.h:298 -msgid "Stained Glass" -msgstr "" - -#: ../share/filters/filters.svg.h:300 -msgid "Illuminated stained glass effect" -msgstr "" - -#: ../share/filters/filters.svg.h:302 -msgid "Dark Glass" -msgstr "" - -#: ../share/filters/filters.svg.h:304 -msgid "Illuminated glass effect with light coming from beneath" -msgstr "" - -#: ../share/filters/filters.svg.h:306 -msgid "HSL Bumps Alpha" -msgstr "" - -#: ../share/filters/filters.svg.h:308 -msgid "Same as HSL Bumps but with transparent highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:310 -msgid "Bubbly Bumps Alpha" -msgstr "" - -#: ../share/filters/filters.svg.h:312 -msgid "Same as Bubbly Bumps but with transparent highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 -msgid "Torn Edges" -msgstr "" - -#: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 -msgid "" -"Displace the outside of shapes and pictures without altering their content" -msgstr "" - -#: ../share/filters/filters.svg.h:318 -msgid "Roughen Inside" -msgstr "" - -#: ../share/filters/filters.svg.h:320 -msgid "Roughen all inside shapes" -msgstr "" - -#: ../share/filters/filters.svg.h:322 -msgid "Evanescent" -msgstr "" - -#: ../share/filters/filters.svg.h:324 -msgid "" -"Blur the contents of objects, preserving the outline and adding progressive " -"transparency at edges" -msgstr "" - -#: ../share/filters/filters.svg.h:326 -msgid "Chalk and Sponge" -msgstr "" - -#: ../share/filters/filters.svg.h:328 -msgid "Low turbulence gives sponge look and high turbulence chalk" -msgstr "" - -#: ../share/filters/filters.svg.h:330 -msgid "People" -msgstr "" - -#: ../share/filters/filters.svg.h:332 -msgid "Colorized blotches, like a crowd of people" -msgstr "" - -#: ../share/filters/filters.svg.h:334 -msgid "Scotland" -msgstr "" - -#: ../share/filters/filters.svg.h:336 -msgid "Colorized mountain tops out of the fog" -msgstr "" - -#: ../share/filters/filters.svg.h:338 -msgid "Garden of Delights" -msgstr "" - -#: ../share/filters/filters.svg.h:340 -msgid "" -"Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" -msgstr "" - -#: ../share/filters/filters.svg.h:342 -msgid "Cutout Glow" -msgstr "" - -#: ../share/filters/filters.svg.h:344 -msgid "In and out glow with a possible offset and colorizable flood" -msgstr "" - -#: ../share/filters/filters.svg.h:346 -msgid "Dark Emboss" -msgstr "" - -#: ../share/filters/filters.svg.h:348 -msgid "Emboss effect : 3D relief where white is replaced by black" -msgstr "" - -#: ../share/filters/filters.svg.h:350 -msgid "Bubbly Bumps Matte" -msgstr "" - -#: ../share/filters/filters.svg.h:352 -msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" -msgstr "" - -#: ../share/filters/filters.svg.h:354 -msgid "Blotting Paper" -msgstr "" - -#: ../share/filters/filters.svg.h:356 -msgid "Inkblot on blotting paper" -msgstr "" - -#: ../share/filters/filters.svg.h:358 -msgid "Wax Print" -msgstr "" - -#: ../share/filters/filters.svg.h:360 -msgid "Wax print on tissue texture" -msgstr "" - -#: ../share/filters/filters.svg.h:366 -msgid "Watercolor" -msgstr "" - -#: ../share/filters/filters.svg.h:368 -msgid "Cloudy watercolor effect" -msgstr "" - -#: ../share/filters/filters.svg.h:370 -msgid "Felt" -msgstr "" - -#: ../share/filters/filters.svg.h:372 -msgid "" -"Felt like texture with color turbulence and slightly darker at the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:374 -msgid "Ink Paint" -msgstr "" - -#: ../share/filters/filters.svg.h:376 -msgid "Ink paint on paper with some turbulent color shift" -msgstr "" - -#: ../share/filters/filters.svg.h:378 -msgid "Tinted Rainbow" -msgstr "" - -#: ../share/filters/filters.svg.h:380 -msgid "Smooth rainbow colors melted along the edges and colorizable" -msgstr "" - -#: ../share/filters/filters.svg.h:382 -msgid "Melted Rainbow" -msgstr "" - -#: ../share/filters/filters.svg.h:384 -msgid "Smooth rainbow colors slightly melted along the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:386 -msgid "Flex Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:388 -msgid "Bright, polished uneven metal casting, colorizable" -msgstr "" - -#: ../share/filters/filters.svg.h:390 -msgid "Wavy Tartan" -msgstr "" - -#: ../share/filters/filters.svg.h:392 -msgid "Tartan pattern with a wavy displacement and bevel around the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:394 -msgid "3D Marble" -msgstr "" - -#: ../share/filters/filters.svg.h:396 -msgid "3D warped marble texture" -msgstr "" - -#: ../share/filters/filters.svg.h:398 -msgid "3D Wood" -msgstr "" - -#: ../share/filters/filters.svg.h:400 -msgid "3D warped, fibered wood texture" -msgstr "" - -#: ../share/filters/filters.svg.h:402 -msgid "3D Mother of Pearl" -msgstr "" - -#: ../share/filters/filters.svg.h:404 -msgid "3D warped, iridescent pearly shell texture" -msgstr "" - -#: ../share/filters/filters.svg.h:406 -msgid "Tiger Fur" -msgstr "" - -#: ../share/filters/filters.svg.h:408 -msgid "Tiger fur pattern with folds and bevel around the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:410 -msgid "Black Light" -msgstr "" - -#: ../share/filters/filters.svg.h:411 ../share/filters/filters.svg.h:575 -#: ../share/filters/filters.svg.h:587 ../share/filters/filters.svg.h:627 -#: ../share/filters/filters.svg.h:631 ../share/filters/filters.svg.h:819 -#: ../share/filters/filters.svg.h:827 ../share/filters/filters.svg.h:831 -#: ../src/extension/internal/bitmap/colorize.cpp:52 -#: ../src/extension/internal/filter/bumps.h:101 -#: ../src/extension/internal/filter/bumps.h:321 -#: ../src/extension/internal/filter/bumps.h:328 -#: ../src/extension/internal/filter/color.h:82 -#: ../src/extension/internal/filter/color.h:164 -#: ../src/extension/internal/filter/color.h:171 -#: ../src/extension/internal/filter/color.h:262 -#: ../src/extension/internal/filter/color.h:340 -#: ../src/extension/internal/filter/color.h:347 -#: ../src/extension/internal/filter/color.h:437 -#: ../src/extension/internal/filter/color.h:532 -#: ../src/extension/internal/filter/color.h:654 -#: ../src/extension/internal/filter/color.h:751 -#: ../src/extension/internal/filter/color.h:830 -#: ../src/extension/internal/filter/color.h:921 -#: ../src/extension/internal/filter/color.h:1049 -#: ../src/extension/internal/filter/color.h:1119 -#: ../src/extension/internal/filter/color.h:1212 -#: ../src/extension/internal/filter/color.h:1324 -#: ../src/extension/internal/filter/color.h:1429 -#: ../src/extension/internal/filter/color.h:1505 -#: ../src/extension/internal/filter/color.h:1609 -#: ../src/extension/internal/filter/color.h:1616 -#: ../src/extension/internal/filter/morphology.h:194 -#: ../src/extension/internal/filter/overlays.h:73 -#: ../src/extension/internal/filter/paint.h:99 -#: ../src/extension/internal/filter/paint.h:713 -#: ../src/extension/internal/filter/paint.h:717 -#: ../src/extension/internal/filter/shadows.h:73 -#: ../src/extension/internal/filter/transparency.h:345 -#: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:830 -#: ../src/ui/dialog/clonetiler.cpp:981 -#: ../src/ui/dialog/document-properties.cpp:157 -#: ../share/extensions/color_HSL_adjust.inx.h:20 -#: ../share/extensions/color_blackandwhite.inx.h:3 -#: ../share/extensions/color_brighter.inx.h:2 -#: ../share/extensions/color_custom.inx.h:15 -#: ../share/extensions/color_darker.inx.h:2 -#: ../share/extensions/color_desaturate.inx.h:2 -#: ../share/extensions/color_grayscale.inx.h:2 -#: ../share/extensions/color_lesshue.inx.h:2 -#: ../share/extensions/color_lesslight.inx.h:2 -#: ../share/extensions/color_lesssaturation.inx.h:2 -#: ../share/extensions/color_morehue.inx.h:2 -#: ../share/extensions/color_morelight.inx.h:2 -#: ../share/extensions/color_moresaturation.inx.h:2 -#: ../share/extensions/color_negative.inx.h:2 -#: ../share/extensions/color_randomize.inx.h:8 -#: ../share/extensions/color_removeblue.inx.h:2 -#: ../share/extensions/color_removegreen.inx.h:2 -#: ../share/extensions/color_removered.inx.h:2 -#: ../share/extensions/color_replace.inx.h:6 -#: ../share/extensions/color_rgbbarrel.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:19 -msgid "Color" -msgstr "" - -#: ../share/filters/filters.svg.h:412 -msgid "Light areas turn to black" -msgstr "" - -#: ../share/filters/filters.svg.h:414 -msgid "Film Grain" -msgstr "" - -#: ../share/filters/filters.svg.h:416 -msgid "Adds a small scale graininess" -msgstr "" - -#: ../share/filters/filters.svg.h:418 -msgid "Plaster Color" -msgstr "" - -#: ../share/filters/filters.svg.h:420 -msgid "Colored plaster emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:422 -msgid "Velvet Bumps" -msgstr "" - -#: ../share/filters/filters.svg.h:424 -msgid "Gives Smooth Bumps velvet like" -msgstr "" - -#: ../share/filters/filters.svg.h:426 -msgid "Comics Cream" -msgstr "" - -#: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 -#: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 -#: ../share/filters/filters.svg.h:739 ../share/filters/filters.svg.h:743 -#: ../share/filters/filters.svg.h:747 ../share/filters/filters.svg.h:751 -#: ../share/filters/filters.svg.h:755 ../share/filters/filters.svg.h:759 -#: ../share/filters/filters.svg.h:763 ../share/filters/filters.svg.h:767 -#: ../share/filters/filters.svg.h:771 ../share/filters/filters.svg.h:775 -#: ../share/filters/filters.svg.h:779 ../share/filters/filters.svg.h:783 -#: ../share/filters/filters.svg.h:787 ../share/filters/filters.svg.h:791 -#: ../share/filters/filters.svg.h:795 -msgid "Non realistic 3D shaders" -msgstr "" - -#: ../share/filters/filters.svg.h:428 -msgid "Comics shader with creamy waves transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:430 -msgid "Chewing Gum" -msgstr "" - -#: ../share/filters/filters.svg.h:432 -msgid "" -"Creates colorizable blotches which smoothly flow over the edges of the lines " -"at their crossings" -msgstr "" - -#: ../share/filters/filters.svg.h:434 -msgid "Dark And Glow" -msgstr "" - -#: ../share/filters/filters.svg.h:436 -msgid "Darkens the edge with an inner blur and adds a flexible glow" -msgstr "" - -#: ../share/filters/filters.svg.h:438 -msgid "Warped Rainbow" -msgstr "" - -#: ../share/filters/filters.svg.h:440 -msgid "Smooth rainbow colors warped along the edges and colorizable" -msgstr "" - -#: ../share/filters/filters.svg.h:442 -msgid "Rough and Dilate" -msgstr "" - -#: ../share/filters/filters.svg.h:444 -msgid "Create a turbulent contour around" -msgstr "" - -#: ../share/filters/filters.svg.h:446 -msgid "Old Postcard" -msgstr "" - -#: ../share/filters/filters.svg.h:448 -msgid "Slightly posterize and draw edges like on old printed postcards" -msgstr "" - -#: ../share/filters/filters.svg.h:450 -msgid "Dots Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:452 -msgid "Gives a pointillist HSL sensitive transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:454 -msgid "Canvas Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:456 -msgid "Gives a canvas like HSL sensitive transparency." -msgstr "" - -#: ../share/filters/filters.svg.h:458 -msgid "Smear Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:460 -msgid "" -"Paint objects with a transparent turbulence which turns around color edges" -msgstr "" - -#: ../share/filters/filters.svg.h:462 -msgid "Thick Paint" -msgstr "" - -#: ../share/filters/filters.svg.h:464 -msgid "Thick painting effect with turbulence" -msgstr "" - -#: ../share/filters/filters.svg.h:466 -msgid "Burst" -msgstr "" - -#: ../share/filters/filters.svg.h:468 -msgid "Burst balloon texture crumpled and with holes" -msgstr "" - -#: ../share/filters/filters.svg.h:470 -msgid "Embossed Leather" -msgstr "" - -#: ../share/filters/filters.svg.h:472 -msgid "" -"Combine a HSL edges detection bump with a leathery or woody and colorizable " -"texture" -msgstr "" - -#: ../share/filters/filters.svg.h:474 -msgid "Carnaval" -msgstr "" - -#: ../share/filters/filters.svg.h:476 -msgid "White splotches evocating carnaval masks" -msgstr "" - -#: ../share/filters/filters.svg.h:478 -msgid "Plastify" -msgstr "" - -#: ../share/filters/filters.svg.h:480 -msgid "" -"HSL edges detection bump with a wavy reflective surface effect and variable " -"crumple" -msgstr "" - -#: ../share/filters/filters.svg.h:482 -msgid "Plaster" -msgstr "" - -#: ../share/filters/filters.svg.h:484 -msgid "" -"Combine a HSL edges detection bump with a matte and crumpled surface effect" -msgstr "" - -#: ../share/filters/filters.svg.h:486 -msgid "Rough Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:488 -msgid "Adds a turbulent transparency which displaces pixels at the same time" -msgstr "" - -#: ../share/filters/filters.svg.h:490 -msgid "Gouache" -msgstr "" - -#: ../share/filters/filters.svg.h:492 -msgid "Partly opaque water color effect with bleed" -msgstr "" - -#: ../share/filters/filters.svg.h:494 -msgid "Alpha Engraving" -msgstr "" - -#: ../share/filters/filters.svg.h:496 -msgid "Gives a transparent engraving effect with rough line and filling" -msgstr "" - -#: ../share/filters/filters.svg.h:498 -msgid "Alpha Draw Liquid" -msgstr "" - -#: ../share/filters/filters.svg.h:500 -msgid "Gives a transparent fluid drawing effect with rough line and filling" -msgstr "" - -#: ../share/filters/filters.svg.h:502 -msgid "Liquid Drawing" -msgstr "" - -#: ../share/filters/filters.svg.h:504 -msgid "Gives a fluid and wavy expressionist drawing effect to images" -msgstr "" - -#: ../share/filters/filters.svg.h:506 -msgid "Marbled Ink" -msgstr "" - -#: ../share/filters/filters.svg.h:508 -msgid "Marbled transparency effect which conforms to image detected edges" -msgstr "" - -#: ../share/filters/filters.svg.h:510 -msgid "Thick Acrylic" -msgstr "" - -#: ../share/filters/filters.svg.h:512 -msgid "Thick acrylic paint texture with high texture depth" -msgstr "" - -#: ../share/filters/filters.svg.h:514 -msgid "Alpha Engraving B" -msgstr "" - -#: ../share/filters/filters.svg.h:516 -msgid "" -"Gives a controllable roughness engraving effect to bitmaps and materials" -msgstr "" - -#: ../share/filters/filters.svg.h:518 -msgid "Lapping" -msgstr "" - -#: ../share/filters/filters.svg.h:520 -msgid "Something like a water noise" -msgstr "" - -#: ../share/filters/filters.svg.h:522 -msgid "Monochrome Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 -#: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 -#: ../share/filters/filters.svg.h:823 -#: ../src/extension/internal/filter/transparency.h:70 -#: ../src/extension/internal/filter/transparency.h:141 -#: ../src/extension/internal/filter/transparency.h:215 -#: ../src/extension/internal/filter/transparency.h:288 -#: ../src/extension/internal/filter/transparency.h:350 -msgid "Fill and Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:524 -msgid "Convert to a colorizable transparent positive or negative" -msgstr "" - -#: ../share/filters/filters.svg.h:526 -msgid "Saturation Map" -msgstr "" - -#: ../share/filters/filters.svg.h:528 -msgid "" -"Creates an approximative semi-transparent and colorizable image of the " -"saturation levels" -msgstr "" - -#: ../share/filters/filters.svg.h:530 -msgid "Riddled" -msgstr "" - -#: ../share/filters/filters.svg.h:532 -msgid "Riddle the surface and add bump to images" -msgstr "" - -#: ../share/filters/filters.svg.h:534 -msgid "Wrinkled Varnish" -msgstr "" - -#: ../share/filters/filters.svg.h:536 -msgid "Thick glossy and translucent paint texture with high depth" -msgstr "" - -#: ../share/filters/filters.svg.h:538 -msgid "Canvas Bumps" -msgstr "" - -#: ../share/filters/filters.svg.h:540 -msgid "Canvas texture with an HSL sensitive height map" -msgstr "" - -#: ../share/filters/filters.svg.h:542 -msgid "Canvas Bumps Matte" -msgstr "" - -#: ../share/filters/filters.svg.h:544 -msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" -msgstr "" - -#: ../share/filters/filters.svg.h:546 -msgid "Canvas Bumps Alpha" -msgstr "" - -#: ../share/filters/filters.svg.h:548 -msgid "Same as Canvas Bumps but with transparent highlights" -msgstr "" - -#: ../share/filters/filters.svg.h:550 -msgid "Bright Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:552 -msgid "Bright metallic effect for any color" -msgstr "" - -#: ../share/filters/filters.svg.h:554 -msgid "Deep Colors Plastic" -msgstr "" - -#: ../share/filters/filters.svg.h:556 -msgid "Transparent plastic with deep colors" -msgstr "" - -#: ../share/filters/filters.svg.h:558 -msgid "Melted Jelly Matte" -msgstr "" - -#: ../share/filters/filters.svg.h:560 -msgid "Matte bevel with blurred edges" -msgstr "" - -#: ../share/filters/filters.svg.h:562 -msgid "Melted Jelly" -msgstr "" - -#: ../share/filters/filters.svg.h:564 -msgid "Glossy bevel with blurred edges" -msgstr "" - -#: ../share/filters/filters.svg.h:566 -msgid "Combined Lighting" -msgstr "" - -#: ../share/filters/filters.svg.h:568 -#: ../src/extension/internal/filter/bevels.h:231 -msgid "Basic specular bevel to use for building textures" -msgstr "" - -#: ../share/filters/filters.svg.h:570 -msgid "Tinfoil" -msgstr "" - -#: ../share/filters/filters.svg.h:572 -msgid "Metallic foil effect combining two lighting types and variable crumple" -msgstr "" - -#: ../share/filters/filters.svg.h:574 -msgid "Soft Colors" -msgstr "" - -#: ../share/filters/filters.svg.h:576 -msgid "Adds a colorizable edges glow inside objects and pictures" -msgstr "" - -#: ../share/filters/filters.svg.h:578 -msgid "Relief Print" -msgstr "" - -#: ../share/filters/filters.svg.h:580 -msgid "Bumps effect with a bevel, color flood and complex lighting" -msgstr "" - -#: ../share/filters/filters.svg.h:582 -msgid "Growing Cells" -msgstr "" - -#: ../share/filters/filters.svg.h:584 -msgid "Random rounded living cells like fill" -msgstr "" - -#: ../share/filters/filters.svg.h:586 -msgid "Fluorescence" -msgstr "" - -#: ../share/filters/filters.svg.h:588 -msgid "Oversaturate colors which can be fluorescent in real world" -msgstr "" - -#: ../share/filters/filters.svg.h:590 -msgid "Pixellize" -msgstr "" - -#: ../share/filters/filters.svg.h:591 -msgid "Pixel tools" -msgstr "" - -#: ../share/filters/filters.svg.h:592 -msgid "Reduce or remove antialiasing around shapes" -msgstr "" - -#: ../share/filters/filters.svg.h:594 -msgid "Basic Diffuse Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:596 -msgid "Matte emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:598 -msgid "Basic Specular Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:600 -msgid "Specular emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:602 -msgid "Basic Two Lights Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:604 -msgid "Two types of lighting emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:606 -msgid "Linen Canvas" -msgstr "" - -#: ../share/filters/filters.svg.h:608 ../share/filters/filters.svg.h:616 -msgid "Painting canvas emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:610 -msgid "Plasticine" -msgstr "" - -#: ../share/filters/filters.svg.h:612 -msgid "Matte modeling paste emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:614 -msgid "Rough Canvas Painting" -msgstr "" - -#: ../share/filters/filters.svg.h:618 -msgid "Paper Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:620 -msgid "Paper like emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:622 -msgid "Jelly Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:624 -msgid "Convert pictures to thick jelly" -msgstr "" - -#: ../share/filters/filters.svg.h:626 -msgid "Blend Opposites" -msgstr "" - -#: ../share/filters/filters.svg.h:628 -msgid "Blend an image with its hue opposite" -msgstr "" - -#: ../share/filters/filters.svg.h:630 -msgid "Hue to White" -msgstr "" - -#: ../share/filters/filters.svg.h:632 -msgid "Fades hue progressively to white" -msgstr "" - -#: ../share/filters/filters.svg.h:634 -#: ../src/extension/internal/bitmap/swirl.cpp:37 -msgid "Swirl" -msgstr "" - -#: ../share/filters/filters.svg.h:636 -msgid "" -"Paint objects with a transparent turbulence which wraps around color edges" -msgstr "" - -#: ../share/filters/filters.svg.h:638 -msgid "Pointillism" -msgstr "" - -#: ../share/filters/filters.svg.h:640 -msgid "Gives a turbulent pointillist HSL sensitive transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:642 -msgid "Silhouette Marbled" -msgstr "" - -#: ../share/filters/filters.svg.h:644 -msgid "Basic noise transparency texture" -msgstr "" - -#: ../share/filters/filters.svg.h:646 -msgid "Fill Background" -msgstr "" - -#: ../share/filters/filters.svg.h:648 -msgid "Adds a colorizable opaque background" -msgstr "" - -#: ../share/filters/filters.svg.h:650 -msgid "Flatten Transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:652 -msgid "Adds a white opaque background" -msgstr "" - -#: ../share/filters/filters.svg.h:654 -msgid "Blur Double" -msgstr "" - -#: ../share/filters/filters.svg.h:656 -msgid "" -"Overlays two copies with different blur amounts and modifiable blend and " -"composite" -msgstr "" - -#: ../share/filters/filters.svg.h:658 -msgid "Image Drawing Basic" -msgstr "" - -#: ../share/filters/filters.svg.h:660 -msgid "Enhance and redraw color edges in 1 bit black and white" -msgstr "" - -#: ../share/filters/filters.svg.h:662 -msgid "Poster Draw" -msgstr "" - -#: ../share/filters/filters.svg.h:664 -msgid "Enhance and redraw edges around posterized areas" -msgstr "" - -#: ../share/filters/filters.svg.h:666 -msgid "Cross Noise Poster" -msgstr "" - -#: ../share/filters/filters.svg.h:668 -msgid "Overlay with a small scale screen like noise" -msgstr "" - -#: ../share/filters/filters.svg.h:670 -msgid "Cross Noise Poster B" -msgstr "" - -#: ../share/filters/filters.svg.h:672 -msgid "Adds a small scale screen like noise locally" -msgstr "" - -#: ../share/filters/filters.svg.h:674 -msgid "Poster Color Fun" -msgstr "" - -#: ../share/filters/filters.svg.h:678 -msgid "Poster Rough" -msgstr "" - -#: ../share/filters/filters.svg.h:680 -msgid "Adds roughness to one of the two channels of the Poster paint filter" -msgstr "" - -#: ../share/filters/filters.svg.h:682 -msgid "Alpha Monochrome Cracked" -msgstr "" - -#: ../share/filters/filters.svg.h:684 ../share/filters/filters.svg.h:688 -#: ../share/filters/filters.svg.h:692 ../share/filters/filters.svg.h:704 -#: ../share/filters/filters.svg.h:708 ../share/filters/filters.svg.h:712 -msgid "Basic noise fill texture; adjust color in Flood" -msgstr "" - -#: ../share/filters/filters.svg.h:686 -msgid "Alpha Turbulent" -msgstr "" - -#: ../share/filters/filters.svg.h:690 -msgid "Colorize Turbulent" -msgstr "" - -#: ../share/filters/filters.svg.h:694 -msgid "Cross Noise B" -msgstr "" - -#: ../share/filters/filters.svg.h:696 -msgid "Adds a small scale crossy graininess" -msgstr "" - -#: ../share/filters/filters.svg.h:698 -msgid "Cross Noise" -msgstr "" - -#: ../share/filters/filters.svg.h:700 -msgid "Adds a small scale screen like graininess" -msgstr "" - -#: ../share/filters/filters.svg.h:702 -msgid "Duotone Turbulent" -msgstr "" - -#: ../share/filters/filters.svg.h:706 -msgid "Light Eraser Cracked" -msgstr "" - -#: ../share/filters/filters.svg.h:710 -msgid "Poster Turbulent" -msgstr "" - -#: ../share/filters/filters.svg.h:714 -msgid "Tartan Smart" -msgstr "" - -#: ../share/filters/filters.svg.h:716 -msgid "Highly configurable checkered tartan pattern" -msgstr "" - -#: ../share/filters/filters.svg.h:718 -msgid "Light Contour" -msgstr "" - -#: ../share/filters/filters.svg.h:720 -msgid "Uses vertical specular light to draw lines" -msgstr "" - -#: ../share/filters/filters.svg.h:722 -msgid "Liquid" -msgstr "" - -#: ../share/filters/filters.svg.h:724 -msgid "Colorizable filling with liquid transparency" -msgstr "" - -#: ../share/filters/filters.svg.h:726 -msgid "Aluminium" -msgstr "" - -#: ../share/filters/filters.svg.h:728 -msgid "Aluminium effect with sharp brushed reflections" -msgstr "" - -#: ../share/filters/filters.svg.h:730 -msgid "Comics" -msgstr "" - -#: ../share/filters/filters.svg.h:732 -msgid "Comics cartoon drawing effect" -msgstr "" - -#: ../share/filters/filters.svg.h:734 -msgid "Comics Draft" -msgstr "" - -#: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768 -msgid "Draft painted cartoon shading with a glassy look" -msgstr "" - -#: ../share/filters/filters.svg.h:738 -msgid "Comics Fading" -msgstr "" - -#: ../share/filters/filters.svg.h:740 -msgid "Cartoon paint style with some fading at the edges" -msgstr "" - -#: ../share/filters/filters.svg.h:742 -msgid "Brushed Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:744 -msgid "Satiny metal surface effect" -msgstr "" - -#: ../share/filters/filters.svg.h:746 -msgid "Opaline" -msgstr "" - -#: ../share/filters/filters.svg.h:748 -msgid "Contouring version of smooth shader" -msgstr "" - -#: ../share/filters/filters.svg.h:750 -msgid "Chrome" -msgstr "" - -#: ../share/filters/filters.svg.h:752 -msgid "Bright chrome effect" -msgstr "" - -#: ../share/filters/filters.svg.h:754 -msgid "Deep Chrome" -msgstr "" - -#: ../share/filters/filters.svg.h:756 -msgid "Dark chrome effect" -msgstr "" - -#: ../share/filters/filters.svg.h:758 -msgid "Emboss Shader" -msgstr "" - -#: ../share/filters/filters.svg.h:760 -msgid "Combination of satiny and emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:762 -msgid "Sharp Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:764 -msgid "Chrome effect with darkened edges" -msgstr "" - -#: ../share/filters/filters.svg.h:766 -msgid "Brush Draw" -msgstr "" - -#: ../share/filters/filters.svg.h:770 -msgid "Chrome Emboss" -msgstr "" - -#: ../share/filters/filters.svg.h:772 -msgid "Embossed chrome effect" -msgstr "" - -#: ../share/filters/filters.svg.h:774 -msgid "Contour Emboss" -msgstr "" - -#: ../share/filters/filters.svg.h:776 -msgid "Satiny and embossed contour effect" -msgstr "" - -#: ../share/filters/filters.svg.h:778 -msgid "Sharp Deco" -msgstr "" - -#: ../share/filters/filters.svg.h:780 -msgid "Unrealistic reflections with sharp edges" -msgstr "" - -#: ../share/filters/filters.svg.h:782 -msgid "Deep Metal" -msgstr "" - -#: ../share/filters/filters.svg.h:784 -msgid "Deep and dark metal shading" -msgstr "" - -#: ../share/filters/filters.svg.h:786 -msgid "Aluminium Emboss" -msgstr "" - -#: ../share/filters/filters.svg.h:788 -msgid "Satiny aluminium effect with embossing" -msgstr "" - -#: ../share/filters/filters.svg.h:790 -msgid "Refractive Glass" -msgstr "" - -#: ../share/filters/filters.svg.h:792 -msgid "Double reflection through glass with some refraction" -msgstr "" - -#: ../share/filters/filters.svg.h:794 -msgid "Frosted Glass" -msgstr "" - -#: ../share/filters/filters.svg.h:796 -msgid "Satiny glass effect" -msgstr "" - -#: ../share/filters/filters.svg.h:798 -msgid "Bump Engraving" -msgstr "" - -#: ../share/filters/filters.svg.h:800 -msgid "Carving emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:802 -msgid "Chromolitho Alternate" -msgstr "" - -#: ../share/filters/filters.svg.h:804 -msgid "Old chromolithographic effect" -msgstr "" - -#: ../share/filters/filters.svg.h:806 -msgid "Convoluted Bump" -msgstr "" - -#: ../share/filters/filters.svg.h:808 -msgid "Convoluted emboss effect" -msgstr "" - -#: ../share/filters/filters.svg.h:810 -msgid "Emergence" -msgstr "" - -#: ../share/filters/filters.svg.h:812 -msgid "Cut out, add inner shadow and colorize some parts of an image" -msgstr "" - -#: ../share/filters/filters.svg.h:814 -msgid "Litho" -msgstr "" - -#: ../share/filters/filters.svg.h:816 -msgid "Create a two colors lithographic effect" -msgstr "" - -#: ../share/filters/filters.svg.h:818 -msgid "Paint Channels" -msgstr "" - -#: ../share/filters/filters.svg.h:820 -msgid "Colorize separately the three color channels" -msgstr "" - -#: ../share/filters/filters.svg.h:822 -msgid "Posterized Light Eraser" -msgstr "" - -#: ../share/filters/filters.svg.h:824 -msgid "Create a semi transparent posterized image" -msgstr "" - -#: ../share/filters/filters.svg.h:826 -msgid "Trichrome" -msgstr "" - -#: ../share/filters/filters.svg.h:828 -msgid "Like Duochrome but with three colors" -msgstr "" - -#: ../share/filters/filters.svg.h:830 -msgid "Simulate CMY" -msgstr "" - -#: ../share/filters/filters.svg.h:832 -msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" -msgstr "" - -#: ../share/filters/filters.svg.h:834 -msgid "Contouring table" -msgstr "" - -#: ../share/filters/filters.svg.h:836 -msgid "Blurred multiple contours for objects" -msgstr "" - -#: ../share/filters/filters.svg.h:838 -msgid "Posterized Blur" -msgstr "" - -#: ../share/filters/filters.svg.h:840 -msgid "Converts blurred contour to posterized steps" -msgstr "" - -#: ../share/filters/filters.svg.h:842 -msgid "Contouring discrete" -msgstr "" - -#: ../share/filters/filters.svg.h:844 -msgid "Sharp multiple contour for objects" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:2 -msgctxt "Palette" -msgid "Black" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:3 -#, no-c-format -msgctxt "Palette" -msgid "90% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:4 -#, no-c-format -msgctxt "Palette" -msgid "80% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:5 -#, no-c-format -msgctxt "Palette" -msgid "70% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:6 -#, no-c-format -msgctxt "Palette" -msgid "60% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:7 -#, no-c-format -msgctxt "Palette" -msgid "50% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:8 -#, no-c-format -msgctxt "Palette" -msgid "40% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:9 -#, no-c-format -msgctxt "Palette" -msgid "30% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:10 -#, no-c-format -msgctxt "Palette" -msgid "20% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:11 -#, no-c-format -msgctxt "Palette" -msgid "10% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:12 -#, no-c-format -msgctxt "Palette" -msgid "7.5% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:13 -#, no-c-format -msgctxt "Palette" -msgid "5% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:14 -#, no-c-format -msgctxt "Palette" -msgid "2.5% Gray" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:15 -msgctxt "Palette" -msgid "White" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:16 -msgctxt "Palette" -msgid "Maroon (#800000)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:17 -msgctxt "Palette" -msgid "Red (#FF0000)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:18 -msgctxt "Palette" -msgid "Olive (#808000)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:19 -msgctxt "Palette" -msgid "Yellow (#FFFF00)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:20 -msgctxt "Palette" -msgid "Green (#008000)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:21 -msgctxt "Palette" -msgid "Lime (#00FF00)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:22 -msgctxt "Palette" -msgid "Teal (#008080)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:23 -msgctxt "Palette" -msgid "Aqua (#00FFFF)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:24 -msgctxt "Palette" -msgid "Navy (#000080)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:25 -msgctxt "Palette" -msgid "Blue (#0000FF)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:26 -msgctxt "Palette" -msgid "Purple (#800080)" -msgstr "" - -#. Palette: ./inkscape.gpl -#: ../share/palettes/palettes.h:27 -msgctxt "Palette" -msgid "Fuchsia (#FF00FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:28 -msgctxt "Palette" -msgid "black (#000000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:29 -msgctxt "Palette" -msgid "dimgray (#696969)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:30 -msgctxt "Palette" -msgid "gray (#808080)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:31 -msgctxt "Palette" -msgid "darkgray (#A9A9A9)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:32 -msgctxt "Palette" -msgid "silver (#C0C0C0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:33 -msgctxt "Palette" -msgid "lightgray (#D3D3D3)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:34 -msgctxt "Palette" -msgid "gainsboro (#DCDCDC)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:35 -msgctxt "Palette" -msgid "whitesmoke (#F5F5F5)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:36 -msgctxt "Palette" -msgid "white (#FFFFFF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:37 -msgctxt "Palette" -msgid "rosybrown (#BC8F8F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:38 -msgctxt "Palette" -msgid "indianred (#CD5C5C)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:39 -msgctxt "Palette" -msgid "brown (#A52A2A)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:40 -msgctxt "Palette" -msgid "firebrick (#B22222)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:41 -msgctxt "Palette" -msgid "lightcoral (#F08080)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:42 -msgctxt "Palette" -msgid "maroon (#800000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:43 -msgctxt "Palette" -msgid "darkred (#8B0000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:44 -msgctxt "Palette" -msgid "red (#FF0000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:45 -msgctxt "Palette" -msgid "snow (#FFFAFA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:46 -msgctxt "Palette" -msgid "mistyrose (#FFE4E1)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:47 -msgctxt "Palette" -msgid "salmon (#FA8072)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:48 -msgctxt "Palette" -msgid "tomato (#FF6347)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:49 -msgctxt "Palette" -msgid "darksalmon (#E9967A)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:50 -msgctxt "Palette" -msgid "coral (#FF7F50)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:51 -msgctxt "Palette" -msgid "orangered (#FF4500)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:52 -msgctxt "Palette" -msgid "lightsalmon (#FFA07A)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:53 -msgctxt "Palette" -msgid "sienna (#A0522D)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:54 -msgctxt "Palette" -msgid "seashell (#FFF5EE)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:55 -msgctxt "Palette" -msgid "chocolate (#D2691E)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:56 -msgctxt "Palette" -msgid "saddlebrown (#8B4513)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:57 -msgctxt "Palette" -msgid "sandybrown (#F4A460)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:58 -msgctxt "Palette" -msgid "peachpuff (#FFDAB9)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:59 -msgctxt "Palette" -msgid "peru (#CD853F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:60 -msgctxt "Palette" -msgid "linen (#FAF0E6)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:61 -msgctxt "Palette" -msgid "bisque (#FFE4C4)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:62 -msgctxt "Palette" -msgid "darkorange (#FF8C00)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:63 -msgctxt "Palette" -msgid "burlywood (#DEB887)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:64 -msgctxt "Palette" -msgid "tan (#D2B48C)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:65 -msgctxt "Palette" -msgid "antiquewhite (#FAEBD7)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:66 -msgctxt "Palette" -msgid "navajowhite (#FFDEAD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:67 -msgctxt "Palette" -msgid "blanchedalmond (#FFEBCD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:68 -msgctxt "Palette" -msgid "papayawhip (#FFEFD5)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:69 -msgctxt "Palette" -msgid "moccasin (#FFE4B5)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:70 -msgctxt "Palette" -msgid "orange (#FFA500)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:71 -msgctxt "Palette" -msgid "wheat (#F5DEB3)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:72 -msgctxt "Palette" -msgid "oldlace (#FDF5E6)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:73 -msgctxt "Palette" -msgid "floralwhite (#FFFAF0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:74 -msgctxt "Palette" -msgid "darkgoldenrod (#B8860B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:75 -msgctxt "Palette" -msgid "goldenrod (#DAA520)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:76 -msgctxt "Palette" -msgid "cornsilk (#FFF8DC)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:77 -msgctxt "Palette" -msgid "gold (#FFD700)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:78 -msgctxt "Palette" -msgid "khaki (#F0E68C)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:79 -msgctxt "Palette" -msgid "lemonchiffon (#FFFACD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:80 -msgctxt "Palette" -msgid "palegoldenrod (#EEE8AA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:81 -msgctxt "Palette" -msgid "darkkhaki (#BDB76B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:82 -msgctxt "Palette" -msgid "beige (#F5F5DC)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:83 -msgctxt "Palette" -msgid "lightgoldenrodyellow (#FAFAD2)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:84 -msgctxt "Palette" -msgid "olive (#808000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:85 -msgctxt "Palette" -msgid "yellow (#FFFF00)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:86 -msgctxt "Palette" -msgid "lightyellow (#FFFFE0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:87 -msgctxt "Palette" -msgid "ivory (#FFFFF0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:88 -msgctxt "Palette" -msgid "olivedrab (#6B8E23)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:89 -msgctxt "Palette" -msgid "yellowgreen (#9ACD32)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:90 -msgctxt "Palette" -msgid "darkolivegreen (#556B2F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:91 -msgctxt "Palette" -msgid "greenyellow (#ADFF2F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:92 -msgctxt "Palette" -msgid "chartreuse (#7FFF00)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:93 -msgctxt "Palette" -msgid "lawngreen (#7CFC00)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:94 -msgctxt "Palette" -msgid "darkseagreen (#8FBC8F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:95 -msgctxt "Palette" -msgid "forestgreen (#228B22)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:96 -msgctxt "Palette" -msgid "limegreen (#32CD32)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:97 -msgctxt "Palette" -msgid "lightgreen (#90EE90)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:98 -msgctxt "Palette" -msgid "palegreen (#98FB98)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:99 -msgctxt "Palette" -msgid "darkgreen (#006400)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:100 -msgctxt "Palette" -msgid "green (#008000)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:101 -msgctxt "Palette" -msgid "lime (#00FF00)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:102 -msgctxt "Palette" -msgid "honeydew (#F0FFF0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:103 -msgctxt "Palette" -msgid "seagreen (#2E8B57)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:104 -msgctxt "Palette" -msgid "mediumseagreen (#3CB371)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:105 -msgctxt "Palette" -msgid "springgreen (#00FF7F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:106 -msgctxt "Palette" -msgid "mintcream (#F5FFFA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:107 -msgctxt "Palette" -msgid "mediumspringgreen (#00FA9A)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:108 -msgctxt "Palette" -msgid "mediumaquamarine (#66CDAA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:109 -msgctxt "Palette" -msgid "aquamarine (#7FFFD4)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:110 -msgctxt "Palette" -msgid "turquoise (#40E0D0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:111 -msgctxt "Palette" -msgid "lightseagreen (#20B2AA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:112 -msgctxt "Palette" -msgid "mediumturquoise (#48D1CC)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:113 -msgctxt "Palette" -msgid "darkslategray (#2F4F4F)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:114 -msgctxt "Palette" -msgid "paleturquoise (#AFEEEE)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:115 -msgctxt "Palette" -msgid "teal (#008080)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:116 -msgctxt "Palette" -msgid "darkcyan (#008B8B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:117 -msgctxt "Palette" -msgid "cyan (#00FFFF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:118 -msgctxt "Palette" -msgid "lightcyan (#E0FFFF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:119 -msgctxt "Palette" -msgid "azure (#F0FFFF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:120 -msgctxt "Palette" -msgid "darkturquoise (#00CED1)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:121 -msgctxt "Palette" -msgid "cadetblue (#5F9EA0)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:122 -msgctxt "Palette" -msgid "powderblue (#B0E0E6)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:123 -msgctxt "Palette" -msgid "lightblue (#ADD8E6)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:124 -msgctxt "Palette" -msgid "deepskyblue (#00BFFF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:125 -msgctxt "Palette" -msgid "skyblue (#87CEEB)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:126 -msgctxt "Palette" -msgid "lightskyblue (#87CEFA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:127 -msgctxt "Palette" -msgid "steelblue (#4682B4)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:128 -msgctxt "Palette" -msgid "aliceblue (#F0F8FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:129 -msgctxt "Palette" -msgid "dodgerblue (#1E90FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:130 -msgctxt "Palette" -msgid "slategray (#708090)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:131 -msgctxt "Palette" -msgid "lightslategray (#778899)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:132 -msgctxt "Palette" -msgid "lightsteelblue (#B0C4DE)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:133 -msgctxt "Palette" -msgid "cornflowerblue (#6495ED)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:134 -msgctxt "Palette" -msgid "royalblue (#4169E1)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:135 -msgctxt "Palette" -msgid "midnightblue (#191970)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:136 -msgctxt "Palette" -msgid "lavender (#E6E6FA)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:137 -msgctxt "Palette" -msgid "navy (#000080)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:138 -msgctxt "Palette" -msgid "darkblue (#00008B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:139 -msgctxt "Palette" -msgid "mediumblue (#0000CD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:140 -msgctxt "Palette" -msgid "blue (#0000FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:141 -msgctxt "Palette" -msgid "ghostwhite (#F8F8FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:142 -msgctxt "Palette" -msgid "slateblue (#6A5ACD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:143 -msgctxt "Palette" -msgid "darkslateblue (#483D8B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:144 -msgctxt "Palette" -msgid "mediumslateblue (#7B68EE)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:145 -msgctxt "Palette" -msgid "mediumpurple (#9370DB)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:146 -msgctxt "Palette" -msgid "blueviolet (#8A2BE2)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:147 -msgctxt "Palette" -msgid "indigo (#4B0082)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:148 -msgctxt "Palette" -msgid "darkorchid (#9932CC)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:149 -msgctxt "Palette" -msgid "darkviolet (#9400D3)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:150 -msgctxt "Palette" -msgid "mediumorchid (#BA55D3)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:151 -msgctxt "Palette" -msgid "thistle (#D8BFD8)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:152 -msgctxt "Palette" -msgid "plum (#DDA0DD)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:153 -msgctxt "Palette" -msgid "violet (#EE82EE)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:154 -msgctxt "Palette" -msgid "purple (#800080)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:155 -msgctxt "Palette" -msgid "darkmagenta (#8B008B)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:156 -msgctxt "Palette" -msgid "magenta (#FF00FF)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:157 -msgctxt "Palette" -msgid "orchid (#DA70D6)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:158 -msgctxt "Palette" -msgid "mediumvioletred (#C71585)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:159 -msgctxt "Palette" -msgid "deeppink (#FF1493)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:160 -msgctxt "Palette" -msgid "hotpink (#FF69B4)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:161 -msgctxt "Palette" -msgid "lavenderblush (#FFF0F5)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:162 -msgctxt "Palette" -msgid "palevioletred (#DB7093)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:163 -msgctxt "Palette" -msgid "crimson (#DC143C)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:164 -msgctxt "Palette" -msgid "pink (#FFC0CB)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:165 -msgctxt "Palette" -msgid "lightpink (#FFB6C1)" -msgstr "" - -#. Palette: ./svg.gpl -#: ../share/palettes/palettes.h:166 -msgctxt "Palette" -msgid "rebeccapurple (#663399)" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:167 -msgctxt "Palette" -msgid "Butter 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:168 -msgctxt "Palette" -msgid "Butter 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:169 -msgctxt "Palette" -msgid "Butter 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:170 -msgctxt "Palette" -msgid "Chameleon 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:171 -msgctxt "Palette" -msgid "Chameleon 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:172 -msgctxt "Palette" -msgid "Chameleon 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:173 -msgctxt "Palette" -msgid "Orange 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:174 -msgctxt "Palette" -msgid "Orange 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:175 -msgctxt "Palette" -msgid "Orange 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:176 -msgctxt "Palette" -msgid "Sky Blue 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:177 -msgctxt "Palette" -msgid "Sky Blue 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:178 -msgctxt "Palette" -msgid "Sky Blue 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:179 -msgctxt "Palette" -msgid "Plum 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:180 -msgctxt "Palette" -msgid "Plum 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:181 -msgctxt "Palette" -msgid "Plum 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:182 -msgctxt "Palette" -msgid "Chocolate 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:183 -msgctxt "Palette" -msgid "Chocolate 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:184 -msgctxt "Palette" -msgid "Chocolate 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:185 -msgctxt "Palette" -msgid "Scarlet Red 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:186 -msgctxt "Palette" -msgid "Scarlet Red 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:187 -msgctxt "Palette" -msgid "Scarlet Red 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:188 -msgctxt "Palette" -msgid "Snowy White" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:189 -msgctxt "Palette" -msgid "Aluminium 1" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:190 -msgctxt "Palette" -msgid "Aluminium 2" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:191 -msgctxt "Palette" -msgid "Aluminium 3" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:192 -msgctxt "Palette" -msgid "Aluminium 4" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:193 -msgctxt "Palette" -msgid "Aluminium 5" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:194 -msgctxt "Palette" -msgid "Aluminium 6" -msgstr "" - -#. Palette: ./Tango-Palette.gpl -#: ../share/palettes/palettes.h:195 -msgctxt "Palette" -msgid "Jet Black" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:1" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:1 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:1.5" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:1.5 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:2" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:2 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:3" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:3 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:4" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:4 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:5" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:5 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:8" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:8 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:10" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:10 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:16" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:16 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:32" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:32 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 1:64" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 2:1" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 2:1 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 4:1" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Stripes 4:1 white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Checkerboard" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Checkerboard white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Packed circles" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, small" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, small white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, medium" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, medium white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, large" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Polka dots, large white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Wavy" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Wavy white" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Camouflage" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Ermine" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Sand (bitmap)" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Cloth (bitmap)" -msgstr "" - -#: ../share/patterns/patterns.svg.h:1 -msgid "Old paint (bitmap)" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:2 -msgctxt "Symbol" -msgid "AIGA Symbol Signs" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 -#: ../share/symbols/symbols.h:281 ../share/symbols/symbols.h:282 -msgctxt "Symbol" -msgid "Telephone" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 -msgctxt "Symbol" -msgid "Mail" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 -msgctxt "Symbol" -msgid "Currency Exchange" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 -msgctxt "Symbol" -msgid "Currency Exchange - Euro" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 -msgctxt "Symbol" -msgid "Cashier" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 -#: ../share/symbols/symbols.h:213 ../share/symbols/symbols.h:214 -msgctxt "Symbol" -msgid "First Aid" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 -msgctxt "Symbol" -msgid "Lost and Found" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 -msgctxt "Symbol" -msgid "Coat Check" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 -msgctxt "Symbol" -msgid "Baggage Lockers" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 -msgctxt "Symbol" -msgid "Escalator" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 -msgctxt "Symbol" -msgid "Escalator Down" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 -msgctxt "Symbol" -msgid "Escalator Up" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 -msgctxt "Symbol" -msgid "Stairs" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 -msgctxt "Symbol" -msgid "Stairs Down" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 -msgctxt "Symbol" -msgid "Stairs Up" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 -msgctxt "Symbol" -msgid "Elevator" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 -msgctxt "Symbol" -msgid "Toilets - Men" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 -msgctxt "Symbol" -msgid "Toilets - Women" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 -msgctxt "Symbol" -msgid "Toilets" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 -msgctxt "Symbol" -msgid "Nursery" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 -msgctxt "Symbol" -msgid "Drinking Fountain" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 -msgctxt "Symbol" -msgid "Waiting Room" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 -#: ../share/symbols/symbols.h:231 ../share/symbols/symbols.h:232 -msgctxt "Symbol" -msgid "Information" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 -msgctxt "Symbol" -msgid "Hotel Information" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 -msgctxt "Symbol" -msgid "Air Transportation" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 -msgctxt "Symbol" -msgid "Heliport" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 -msgctxt "Symbol" -msgid "Taxi" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 -msgctxt "Symbol" -msgid "Bus" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 -msgctxt "Symbol" -msgid "Ground Transportation" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 -msgctxt "Symbol" -msgid "Rail Transportation" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 -msgctxt "Symbol" -msgid "Water Transportation" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 -msgctxt "Symbol" -msgid "Car Rental" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 -msgctxt "Symbol" -msgid "Restaurant" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 -msgctxt "Symbol" -msgid "Coffeeshop" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 -msgctxt "Symbol" -msgid "Bar" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 -msgctxt "Symbol" -msgid "Shops" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 -msgctxt "Symbol" -msgid "Barber Shop - Beauty Salon" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 -msgctxt "Symbol" -msgid "Barber Shop" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 -msgctxt "Symbol" -msgid "Beauty Salon" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 -msgctxt "Symbol" -msgid "Ticket Purchase" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 -msgctxt "Symbol" -msgid "Baggage Check In" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 -msgctxt "Symbol" -msgid "Baggage Claim" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 -msgctxt "Symbol" -msgid "Customs" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 -msgctxt "Symbol" -msgid "Immigration" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 -msgctxt "Symbol" -msgid "Departing Flights" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 -msgctxt "Symbol" -msgid "Arriving Flights" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 -msgctxt "Symbol" -msgid "Smoking" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 -msgctxt "Symbol" -msgid "No Smoking" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:99 ../share/symbols/symbols.h:100 -#: ../share/symbols/symbols.h:245 ../share/symbols/symbols.h:246 -msgctxt "Symbol" -msgid "Parking" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 -msgctxt "Symbol" -msgid "No Parking" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 -msgctxt "Symbol" -msgid "No Dogs" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 -msgctxt "Symbol" -msgid "No Entry" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 -msgctxt "Symbol" -msgid "Exit" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 -msgctxt "Symbol" -msgid "Fire Extinguisher" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 -msgctxt "Symbol" -msgid "Right Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 -msgctxt "Symbol" -msgid "Forward and Right Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 -msgctxt "Symbol" -msgid "Up Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 -msgctxt "Symbol" -msgid "Forward and Left Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 -msgctxt "Symbol" -msgid "Left Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 -msgctxt "Symbol" -msgid "Left and Down Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 -msgctxt "Symbol" -msgid "Down Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 -msgctxt "Symbol" -msgid "Right and Down Arrow" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible - 1996" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 -msgctxt "Symbol" -msgid "NPS Wheelchair Accessible" -msgstr "" - -#. Symbols: ./AigaSymbols.svg -#: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 -msgctxt "Symbol" -msgid "New Wheelchair Accessible" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:133 -msgctxt "Symbol" -msgid "Word Balloons" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:134 -msgctxt "Symbol" -msgid "Thought Balloon" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:135 -msgctxt "Symbol" -msgid "Dream Speaking" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:136 -msgctxt "Symbol" -msgid "Rounded Balloon" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:137 -msgctxt "Symbol" -msgid "Squared Balloon" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:138 -msgctxt "Symbol" -msgid "Over the Phone" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:139 -msgctxt "Symbol" -msgid "Hip Balloon" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:140 -msgctxt "Symbol" -msgid "Circle Balloon" -msgstr "" - -#. Symbols: ./BalloonSymbols.svg -#: ../share/symbols/symbols.h:141 -msgctxt "Symbol" -msgid "Exclaim Balloon" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:142 -msgctxt "Symbol" -msgid "Flow Chart Shapes" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:143 -msgctxt "Symbol" -msgid "Process" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:144 -msgctxt "Symbol" -msgid "Input/Output" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:145 -msgctxt "Symbol" -msgid "Document" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:146 -msgctxt "Symbol" -msgid "Manual Operation" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:147 -msgctxt "Symbol" -msgid "Preparation" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:148 -msgctxt "Symbol" -msgid "Merge" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:149 -msgctxt "Symbol" -msgid "Decision" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:150 -msgctxt "Symbol" -msgid "Magnetic Tape" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:151 -msgctxt "Symbol" -msgid "Display" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:152 -msgctxt "Symbol" -msgid "Auxiliary Operation" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:153 -msgctxt "Symbol" -msgid "Manual Input" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:154 -msgctxt "Symbol" -msgid "Extract" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:155 -msgctxt "Symbol" -msgid "Terminal/Interrupt" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:156 -msgctxt "Symbol" -msgid "Punched Card" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:157 -msgctxt "Symbol" -msgid "Punch Tape" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:158 -msgctxt "Symbol" -msgid "Online Storage" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:159 -msgctxt "Symbol" -msgid "Keying" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:160 -msgctxt "Symbol" -msgid "Sort" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:161 -msgctxt "Symbol" -msgid "Connector" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:162 -msgctxt "Symbol" -msgid "Off-Page Connector" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:163 -msgctxt "Symbol" -msgid "Transmittal Tape" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:164 -msgctxt "Symbol" -msgid "Communication Link" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:165 -msgctxt "Symbol" -msgid "Collate" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:166 -msgctxt "Symbol" -msgid "Comment/Annotation" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:167 -msgctxt "Symbol" -msgid "Core" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:168 -msgctxt "Symbol" -msgid "Predefined Process" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:169 -msgctxt "Symbol" -msgid "Magnetic Disk (Database)" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:170 -msgctxt "Symbol" -msgid "Magnetic Drum (Direct Access)" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:171 -msgctxt "Symbol" -msgid "Offline Storage" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:172 -msgctxt "Symbol" -msgid "Logical Or" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:173 -msgctxt "Symbol" -msgid "Logical And" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:174 -msgctxt "Symbol" -msgid "Delay" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:175 -msgctxt "Symbol" -msgid "Loop Limit Begin" -msgstr "" - -#. Symbols: ./FlowSymbols.svg -#: ../share/symbols/symbols.h:176 -msgctxt "Symbol" -msgid "Loop Limit End" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:177 -msgctxt "Symbol" -msgid "Logic Symbols" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:178 -msgctxt "Symbol" -msgid "Xnor Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:179 -msgctxt "Symbol" -msgid "Xor Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:180 -msgctxt "Symbol" -msgid "Nor Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:181 -msgctxt "Symbol" -msgid "Or Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:182 -msgctxt "Symbol" -msgid "Nand Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:183 -msgctxt "Symbol" -msgid "And Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:184 -msgctxt "Symbol" -msgid "Buffer" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:185 -msgctxt "Symbol" -msgid "Not Gate" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:186 -msgctxt "Symbol" -msgid "Buffer Small" -msgstr "" - -#. Symbols: ./LogicSymbols.svg -#: ../share/symbols/symbols.h:187 -msgctxt "Symbol" -msgid "Not Gate Small" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:188 -msgctxt "Symbol" -msgid "United States National Park Service Map Symbols" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:189 ../share/symbols/symbols.h:190 -msgctxt "Symbol" -msgid "Airport" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:191 ../share/symbols/symbols.h:192 -msgctxt "Symbol" -msgid "Amphitheatre" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:193 ../share/symbols/symbols.h:194 -msgctxt "Symbol" -msgid "Bicycle Trail" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:195 ../share/symbols/symbols.h:196 -msgctxt "Symbol" -msgid "Boat Launch" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:197 ../share/symbols/symbols.h:198 -msgctxt "Symbol" -msgid "Boat Tour" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:199 ../share/symbols/symbols.h:200 -msgctxt "Symbol" -msgid "Bus Stop" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:201 ../share/symbols/symbols.h:202 -msgctxt "Symbol" -msgid "Campfire" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:203 ../share/symbols/symbols.h:204 -msgctxt "Symbol" -msgid "Campground" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206 -msgctxt "Symbol" -msgid "CanoeAccess" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208 -msgctxt "Symbol" -msgid "Crosscountry Ski Trail" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:209 ../share/symbols/symbols.h:210 -msgctxt "Symbol" -msgid "Downhill Skiing" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:211 ../share/symbols/symbols.h:212 -msgctxt "Symbol" -msgid "Drinking Water" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:215 ../share/symbols/symbols.h:216 -msgctxt "Symbol" -msgid "Fishing" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:217 ../share/symbols/symbols.h:218 -msgctxt "Symbol" -msgid "Food Service" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:219 ../share/symbols/symbols.h:220 -msgctxt "Symbol" -msgid "Four Wheel Drive Road" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:221 ../share/symbols/symbols.h:222 -msgctxt "Symbol" -msgid "Gas Station" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:223 ../share/symbols/symbols.h:224 -msgctxt "Symbol" -msgid "Golfing" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:225 ../share/symbols/symbols.h:226 -msgctxt "Symbol" -msgid "Horseback Riding" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:227 ../share/symbols/symbols.h:228 -msgctxt "Symbol" -msgid "Hospital" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:229 ../share/symbols/symbols.h:230 -msgctxt "Symbol" -msgid "Ice Skating" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:233 ../share/symbols/symbols.h:234 -msgctxt "Symbol" -msgid "Litter Receptacle" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236 -msgctxt "Symbol" -msgid "Lodging" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238 -msgctxt "Symbol" -msgid "Marina" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:239 ../share/symbols/symbols.h:240 -msgctxt "Symbol" -msgid "Motorbike Trail" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:241 ../share/symbols/symbols.h:242 -msgctxt "Symbol" -msgid "Radiator Water" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244 -msgctxt "Symbol" -msgid "Recycling" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:247 ../share/symbols/symbols.h:248 -msgctxt "Symbol" -msgid "Pets On Leash" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:249 ../share/symbols/symbols.h:250 -msgctxt "Symbol" -msgid "Picnic Area" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:251 ../share/symbols/symbols.h:252 -msgctxt "Symbol" -msgid "Post Office" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:253 ../share/symbols/symbols.h:254 -msgctxt "Symbol" -msgid "Ranger Station" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256 -msgctxt "Symbol" -msgid "RV Campground" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258 -msgctxt "Symbol" -msgid "Restrooms" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:259 ../share/symbols/symbols.h:260 -msgctxt "Symbol" -msgid "Sailing" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 -msgctxt "Symbol" -msgid "Sanitary Disposal Station" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264 -msgctxt "Symbol" -msgid "Scuba Diving" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:265 ../share/symbols/symbols.h:266 -msgctxt "Symbol" -msgid "Self Guided Trail" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268 -msgctxt "Symbol" -msgid "Shelter" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:269 ../share/symbols/symbols.h:270 -msgctxt "Symbol" -msgid "Showers" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:271 ../share/symbols/symbols.h:272 -msgctxt "Symbol" -msgid "Sledding" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:273 ../share/symbols/symbols.h:274 -msgctxt "Symbol" -msgid "SnowmobileTrail" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:275 ../share/symbols/symbols.h:276 -msgctxt "Symbol" -msgid "Stable" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:277 ../share/symbols/symbols.h:278 -msgctxt "Symbol" -msgid "Store" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:279 ../share/symbols/symbols.h:280 -msgctxt "Symbol" -msgid "Swimming" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:283 ../share/symbols/symbols.h:284 -msgctxt "Symbol" -msgid "Emergency Telephone" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:285 ../share/symbols/symbols.h:286 -msgctxt "Symbol" -msgid "Trailhead" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:287 ../share/symbols/symbols.h:288 -msgctxt "Symbol" -msgid "Wheelchair Accessible" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:289 ../share/symbols/symbols.h:290 -msgctxt "Symbol" -msgid "Wind Surfing" -msgstr "" - -#. Symbols: ./MapSymbolsNPS.svg -#: ../share/symbols/symbols.h:291 -msgctxt "Symbol" -msgid "Blank" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "CD Label 120mmx120mm " -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "Simple CD Label template with disc's pattern." -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "CD label 120x120 disc disk" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "No Layers" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "Empty sheet with no layers" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "no layers empty" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "LaTeX Beamer" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "LaTeX beamer template with helping grid." -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "LaTex LaTeX latex grid beamer" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "Typography Canvas" -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "Empty typography canvas with helping guidelines." -msgstr "" - -#: ../share/templates/templates.h:1 -msgid "guidelines typography canvas" -msgstr "" - -#. 3D box -#: ../src/box3d.cpp:260 ../src/box3d.cpp:1314 -#: ../src/ui/dialog/inkscape-preferences.cpp:407 -msgid "3D Box" -msgstr "" - -#: ../src/color-profile.cpp:853 -#, c-format -msgid "Color profiles directory (%s) is unavailable." -msgstr "" - -#: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 -msgid "(invalid UTF-8 string)" -msgstr "" - -#: ../src/color-profile.cpp:914 -msgctxt "Profile name" -msgid "None" -msgstr "" - -#: ../src/context-fns.cpp:33 ../src/context-fns.cpp:62 -msgid "Current layer is hidden. Unhide it to be able to draw on it." -msgstr "" - -#: ../src/context-fns.cpp:39 ../src/context-fns.cpp:68 -msgid "Current layer is locked. Unlock it to be able to draw on it." -msgstr "" - -#: ../src/desktop-events.cpp:236 -msgid "Create guide" -msgstr "" - -#: ../src/desktop-events.cpp:492 -msgid "Move guide" -msgstr "" - -#: ../src/desktop-events.cpp:499 ../src/desktop-events.cpp:557 -#: ../src/ui/dialog/guides.cpp:138 -msgid "Delete guide" -msgstr "" - -#: ../src/desktop-events.cpp:537 -#, c-format -msgid "Guideline: %s" -msgstr "" - -#: ../src/desktop.cpp:873 -msgid "No previous zoom." -msgstr "" - -#: ../src/desktop.cpp:894 -msgid "No next zoom." -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:353 ../src/display/canvas-grid.cpp:693 -msgid "Grid _units:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 -msgid "_Origin X:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 -msgid "X coordinate of grid origin" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 -msgid "O_rigin Y:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -msgid "Y coordinate of grid origin" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:704 -msgid "Spacing _Y:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:361 -#: ../src/ui/dialog/inkscape-preferences.cpp:775 -msgid "Base length of z-axis" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:778 -#: ../src/widgets/box3d-toolbar.cpp:302 -msgid "Angle X:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:364 -#: ../src/ui/dialog/inkscape-preferences.cpp:778 -msgid "Angle of x-axis" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:779 -#: ../src/widgets/box3d-toolbar.cpp:381 -msgid "Angle Z:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:366 -#: ../src/ui/dialog/inkscape-preferences.cpp:779 -msgid "Angle of z-axis" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 -msgid "Minor grid line _color:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 -#: ../src/ui/dialog/inkscape-preferences.cpp:730 -msgid "Minor grid line color" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 -msgid "Color of the minor grid lines" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 -msgid "Ma_jor grid line color:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 -#: ../src/ui/dialog/inkscape-preferences.cpp:732 -msgid "Major grid line color" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:376 ../src/display/canvas-grid.cpp:715 -msgid "Color of the major (highlighted) grid lines" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 -msgid "_Major grid line every:" -msgstr "" - -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 -msgid "lines" -msgstr "" - -#: ../src/display/canvas-grid.cpp:64 -msgid "Rectangular grid" -msgstr "" - -#: ../src/display/canvas-grid.cpp:65 -msgid "Axonometric grid" -msgstr "" - -#: ../src/display/canvas-grid.cpp:250 -msgid "Create new grid" -msgstr "" - -#: ../src/display/canvas-grid.cpp:316 -msgid "_Enabled" -msgstr "" - -#: ../src/display/canvas-grid.cpp:317 -msgid "" -"Determines whether to snap to this grid or not. Can be 'on' for invisible " -"grids." -msgstr "" - -#: ../src/display/canvas-grid.cpp:321 -msgid "Snap to visible _grid lines only" -msgstr "" - -#: ../src/display/canvas-grid.cpp:322 -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:326 -msgid "_Visible" -msgstr "" - -#: ../src/display/canvas-grid.cpp:327 -msgid "" -"Determines whether the grid is displayed or not. Objects are still snapped " -"to invisible grids." -msgstr "" - -#: ../src/display/canvas-grid.cpp:701 -msgid "Spacing _X:" -msgstr "" - -#: ../src/display/canvas-grid.cpp:701 -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -msgid "Distance between vertical grid lines" -msgstr "" - -#: ../src/display/canvas-grid.cpp:704 -#: ../src/ui/dialog/inkscape-preferences.cpp:753 -msgid "Distance between horizontal grid lines" -msgstr "" - -#: ../src/display/canvas-grid.cpp:736 -msgid "_Show dots instead of lines" -msgstr "" - -#: ../src/display/canvas-grid.cpp:737 -msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "" - -#. TRANSLATORS: undefined target for snapping -#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 -#: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 -msgid "UNDEFINED" -msgstr "" - -#: ../src/display/snap-indicator.cpp:79 -msgid "grid line" -msgstr "" - -#: ../src/display/snap-indicator.cpp:82 -msgid "grid intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:85 -msgid "grid line (perpendicular)" -msgstr "" - -#: ../src/display/snap-indicator.cpp:88 -msgid "guide" -msgstr "" - -#: ../src/display/snap-indicator.cpp:91 -msgid "guide intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:94 -msgid "guide origin" -msgstr "" - -#: ../src/display/snap-indicator.cpp:97 -msgid "guide (perpendicular)" -msgstr "" - -#: ../src/display/snap-indicator.cpp:100 -msgid "grid-guide intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:103 -msgid "cusp node" -msgstr "" - -#: ../src/display/snap-indicator.cpp:106 -msgid "smooth node" -msgstr "" - -#: ../src/display/snap-indicator.cpp:109 -msgid "path" -msgstr "" - -#: ../src/display/snap-indicator.cpp:112 -msgid "path (perpendicular)" -msgstr "" - -#: ../src/display/snap-indicator.cpp:115 -msgid "path (tangential)" -msgstr "" - -#: ../src/display/snap-indicator.cpp:118 -msgid "path intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:121 -msgid "guide-path intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:124 -msgid "clip-path" -msgstr "" - -#: ../src/display/snap-indicator.cpp:127 -msgid "mask-path" -msgstr "" - -#: ../src/display/snap-indicator.cpp:130 -msgid "bounding box corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:133 -msgid "bounding box side" -msgstr "" - -#: ../src/display/snap-indicator.cpp:136 -msgid "page border" -msgstr "" - -#: ../src/display/snap-indicator.cpp:139 -msgid "line midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:142 -msgid "object midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:145 -msgid "object rotation center" -msgstr "" - -#: ../src/display/snap-indicator.cpp:148 -msgid "bounding box side midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:151 -msgid "bounding box midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:154 -msgid "page corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:157 -msgid "quadrant point" -msgstr "" - -#: ../src/display/snap-indicator.cpp:161 -msgid "corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:164 -msgid "text anchor" -msgstr "" - -#: ../src/display/snap-indicator.cpp:167 -msgid "text baseline" -msgstr "" - -#: ../src/display/snap-indicator.cpp:170 -msgid "constrained angle" -msgstr "" - -#: ../src/display/snap-indicator.cpp:173 -msgid "constraint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:187 -msgid "Bounding box corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:190 -msgid "Bounding box midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:193 -msgid "Bounding box side midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 -msgid "Smooth node" -msgstr "" - -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 -msgid "Cusp node" -msgstr "" - -#: ../src/display/snap-indicator.cpp:202 -msgid "Line midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:205 -msgid "Object midpoint" -msgstr "" - -#: ../src/display/snap-indicator.cpp:208 -msgid "Object rotation center" -msgstr "" - -#: ../src/display/snap-indicator.cpp:212 -msgid "Handle" -msgstr "" - -#: ../src/display/snap-indicator.cpp:215 -msgid "Path intersection" -msgstr "" - -#: ../src/display/snap-indicator.cpp:218 -msgid "Guide" -msgstr "" - -#: ../src/display/snap-indicator.cpp:221 -msgid "Guide origin" -msgstr "" - -#: ../src/display/snap-indicator.cpp:224 -msgid "Convex hull corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:227 -msgid "Quadrant point" -msgstr "" - -#: ../src/display/snap-indicator.cpp:231 -msgid "Corner" -msgstr "" - -#: ../src/display/snap-indicator.cpp:234 -msgid "Text anchor" -msgstr "" - -#: ../src/display/snap-indicator.cpp:237 -msgid "Multiple of grid spacing" -msgstr "" - -#: ../src/display/snap-indicator.cpp:268 -msgid " to " -msgstr "" - -#: ../src/document.cpp:544 -#, c-format -msgid "New document %d" -msgstr "" - -#: ../src/document.cpp:549 -#, c-format -msgid "Memory document %d" -msgstr "" - -#: ../src/document.cpp:578 -msgid "Memory document %1" -msgstr "" - -#: ../src/document.cpp:839 -#, c-format -msgid "Unnamed document %d" -msgstr "" - -#: ../src/event-log.cpp:185 -msgid "[Unchanged]" -msgstr "" - -#. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2465 -msgid "_Undo" -msgstr "" - -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2467 -msgid "_Redo" -msgstr "" - -#: ../src/extension/dependency.cpp:243 -msgid "Dependency:" -msgstr "" - -#: ../src/extension/dependency.cpp:244 -msgid " type: " -msgstr "" - -#: ../src/extension/dependency.cpp:245 -msgid " location: " -msgstr "" - -#: ../src/extension/dependency.cpp:246 -msgid " string: " -msgstr "" - -#: ../src/extension/dependency.cpp:249 -msgid " description: " -msgstr "" - -#: ../src/extension/effect.cpp:41 -msgid " (No preferences)" -msgstr "" - -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2239 -msgid "Extensions" -msgstr "" - -#. \FIXME change this -#. This is some filler text, needs to change before relase -#: ../src/extension/error-file.cpp:53 -msgid "" -"One or more extensions failed to load\n" -"\n" -"The failed extensions have been skipped. Inkscape will continue to run " -"normally but those extensions will be unavailable. For details to " -"troubleshoot this problem, please refer to the error log located at: " -msgstr "" - -#: ../src/extension/error-file.cpp:67 -msgid "Show dialog on startup" -msgstr "" - -#: ../src/extension/execution-env.cpp:144 -#, c-format -msgid "'%s' working, please wait..." -msgstr "" - -#. static int i = 0; -#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:271 -msgid "" -" This is caused by an improper .inx file for this extension. An improper ." -"inx file could have been caused by a faulty installation of Inkscape." -msgstr "" - -#: ../src/extension/extension.cpp:281 -msgid "the extension is designed for Windows only." -msgstr "" - -#: ../src/extension/extension.cpp:286 -msgid "an ID was not defined for it." -msgstr "" - -#: ../src/extension/extension.cpp:290 -msgid "there was no name defined for it." -msgstr "" - -#: ../src/extension/extension.cpp:294 -msgid "the XML description of it got lost." -msgstr "" - -#: ../src/extension/extension.cpp:298 -msgid "no implementation was defined for the extension." -msgstr "" - -#. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:305 -msgid "a dependency was not met." -msgstr "" - -#: ../src/extension/extension.cpp:325 -msgid "Extension \"" -msgstr "" - -#: ../src/extension/extension.cpp:325 -msgid "\" failed to load because " -msgstr "" - -#: ../src/extension/extension.cpp:674 -#, c-format -msgid "Could not create extension error log file '%s'" -msgstr "" - -#: ../src/extension/extension.cpp:782 -#: ../share/extensions/webslicer_create_rect.inx.h:2 -msgid "Name:" -msgstr "" - -#: ../src/extension/extension.cpp:783 -msgid "ID:" -msgstr "" - -#: ../src/extension/extension.cpp:784 -msgid "State:" -msgstr "" - -#: ../src/extension/extension.cpp:784 -msgid "Loaded" -msgstr "" - -#: ../src/extension/extension.cpp:784 -msgid "Unloaded" -msgstr "" - -#: ../src/extension/extension.cpp:784 -msgid "Deactivated" -msgstr "" - -#: ../src/extension/extension.cpp:824 -msgid "" -"Currently there is no help available for this Extension. Please look on the " -"Inkscape website or ask on the mailing lists if you have questions regarding " -"this extension." -msgstr "" - -#: ../src/extension/implementation/script.cpp:1057 -msgid "" -"Inkscape has received additional data from the script executed. The script " -"did not return an error, but this may indicate the results will not be as " -"expected." -msgstr "" - -#: ../src/extension/init.cpp:288 -msgid "Null external module directory name. Modules will not be loaded." -msgstr "" - -#: ../src/extension/init.cpp:302 -#: ../src/extension/internal/filter/filter-file.cpp:59 -#, c-format -msgid "" -"Modules directory (%s) is unavailable. External modules in that directory " -"will not be loaded." -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 -msgid "Adaptive Threshold" -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 -#: ../src/extension/internal/bitmap/raise.cpp:42 -#: ../src/extension/internal/bitmap/sample.cpp:41 -#: ../src/extension/internal/bluredge.cpp:138 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:63 -#: ../src/ui/dialog/object-attributes.cpp:68 -#: ../src/ui/dialog/object-attributes.cpp:77 -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/foldablebox.inx.h:2 -msgid "Width:" -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 -#: ../src/extension/internal/bitmap/raise.cpp:43 -#: ../src/extension/internal/bitmap/sample.cpp:42 -#: ../src/ui/dialog/object-attributes.cpp:69 -#: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 -msgid "Height:" -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 -#: ../share/extensions/printing_marks.inx.h:12 -msgid "Offset:" -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 -#: ../src/extension/internal/bitmap/addNoise.cpp:58 -#: ../src/extension/internal/bitmap/blur.cpp:45 -#: ../src/extension/internal/bitmap/channel.cpp:64 -#: ../src/extension/internal/bitmap/charcoal.cpp:45 -#: ../src/extension/internal/bitmap/colorize.cpp:56 -#: ../src/extension/internal/bitmap/contrast.cpp:46 -#: ../src/extension/internal/bitmap/crop.cpp:75 -#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 -#: ../src/extension/internal/bitmap/despeckle.cpp:41 -#: ../src/extension/internal/bitmap/edge.cpp:43 -#: ../src/extension/internal/bitmap/emboss.cpp:45 -#: ../src/extension/internal/bitmap/enhance.cpp:40 -#: ../src/extension/internal/bitmap/equalize.cpp:40 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 -#: ../src/extension/internal/bitmap/implode.cpp:43 -#: ../src/extension/internal/bitmap/level.cpp:49 -#: ../src/extension/internal/bitmap/levelChannel.cpp:71 -#: ../src/extension/internal/bitmap/medianFilter.cpp:43 -#: ../src/extension/internal/bitmap/modulate.cpp:48 -#: ../src/extension/internal/bitmap/negate.cpp:41 -#: ../src/extension/internal/bitmap/normalize.cpp:41 -#: ../src/extension/internal/bitmap/oilPaint.cpp:43 -#: ../src/extension/internal/bitmap/opacity.cpp:44 -#: ../src/extension/internal/bitmap/raise.cpp:48 -#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 -#: ../src/extension/internal/bitmap/sample.cpp:46 -#: ../src/extension/internal/bitmap/shade.cpp:48 -#: ../src/extension/internal/bitmap/sharpen.cpp:45 -#: ../src/extension/internal/bitmap/solarize.cpp:45 -#: ../src/extension/internal/bitmap/spread.cpp:43 -#: ../src/extension/internal/bitmap/swirl.cpp:43 -#: ../src/extension/internal/bitmap/threshold.cpp:44 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 -#: ../src/extension/internal/bitmap/wave.cpp:45 -msgid "Raster" -msgstr "" - -#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 -msgid "Apply adaptive thresholding to selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:45 -msgid "Add Noise" -msgstr "" - -#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); -#: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 -#: ../src/extension/internal/filter/distort.h:69 -#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -#: ../src/ui/dialog/object-attributes.cpp:49 -#: ../share/extensions/jessyInk_effects.inx.h:5 -#: ../share/extensions/jessyInk_export.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:5 -#: ../share/extensions/webslicer_create_rect.inx.h:14 -msgid "Type:" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:48 -msgid "Uniform Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:49 -msgid "Gaussian Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:50 -msgid "Multiplicative Gaussian Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:51 -msgid "Impulse Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:52 -msgid "Laplacian Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:53 -msgid "Poisson Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/addNoise.cpp:60 -msgid "Add random noise to selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/blur.cpp:38 -#: ../src/extension/internal/filter/blurs.h:54 -#: ../src/extension/internal/filter/paint.h:710 -#: ../src/extension/internal/filter/transparency.h:343 -msgid "Blur" -msgstr "" - -#: ../src/extension/internal/bitmap/blur.cpp:40 -#: ../src/extension/internal/bitmap/charcoal.cpp:40 -#: ../src/extension/internal/bitmap/edge.cpp:39 -#: ../src/extension/internal/bitmap/emboss.cpp:40 -#: ../src/extension/internal/bitmap/medianFilter.cpp:39 -#: ../src/extension/internal/bitmap/oilPaint.cpp:39 -#: ../src/extension/internal/bitmap/sharpen.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 -msgid "Radius:" -msgstr "" - -#: ../src/extension/internal/bitmap/blur.cpp:41 -#: ../src/extension/internal/bitmap/charcoal.cpp:41 -#: ../src/extension/internal/bitmap/emboss.cpp:41 -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 -#: ../src/extension/internal/bitmap/sharpen.cpp:41 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 -msgid "Sigma:" -msgstr "" - -#: ../src/extension/internal/bitmap/blur.cpp:47 -msgid "Blur selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:48 -msgid "Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:50 -msgid "Layer:" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:51 -#: ../src/extension/internal/bitmap/levelChannel.cpp:55 -msgid "Red Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:52 -#: ../src/extension/internal/bitmap/levelChannel.cpp:56 -msgid "Green Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:53 -#: ../src/extension/internal/bitmap/levelChannel.cpp:57 -msgid "Blue Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:54 -#: ../src/extension/internal/bitmap/levelChannel.cpp:58 -msgid "Cyan Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:55 -#: ../src/extension/internal/bitmap/levelChannel.cpp:59 -msgid "Magenta Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:56 -#: ../src/extension/internal/bitmap/levelChannel.cpp:60 -msgid "Yellow Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:57 -#: ../src/extension/internal/bitmap/levelChannel.cpp:61 -msgid "Black Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:58 -#: ../src/extension/internal/bitmap/levelChannel.cpp:62 -msgid "Opacity Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:59 -#: ../src/extension/internal/bitmap/levelChannel.cpp:63 -msgid "Matte Channel" -msgstr "" - -#: ../src/extension/internal/bitmap/channel.cpp:66 -msgid "Extract specific channel from image" -msgstr "" - -#: ../src/extension/internal/bitmap/charcoal.cpp:38 -msgid "Charcoal" -msgstr "" - -#: ../src/extension/internal/bitmap/charcoal.cpp:47 -msgid "Apply charcoal stylization to selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 -msgid "Colorize" -msgstr "" - -#: ../src/extension/internal/bitmap/colorize.cpp:58 -msgid "Colorize selected bitmap(s) with specified color, using given opacity" -msgstr "" - -#: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 -msgid "Contrast" -msgstr "" - -#: ../src/extension/internal/bitmap/contrast.cpp:42 -msgid "Adjust:" -msgstr "" - -#: ../src/extension/internal/bitmap/contrast.cpp:48 -msgid "Increase or decrease contrast in bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:66 -#: ../src/extension/internal/filter/bumps.h:86 -#: ../src/extension/internal/filter/bumps.h:315 -msgid "Crop" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:68 -msgid "Top (px):" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:69 -msgid "Bottom (px):" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:70 -msgid "Left (px):" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:71 -msgid "Right (px):" -msgstr "" - -#: ../src/extension/internal/bitmap/crop.cpp:77 -msgid "Crop selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 -msgid "Cycle Colormap" -msgstr "" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 -#: ../src/extension/internal/bitmap/spread.cpp:39 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 -#: ../src/widgets/spray-toolbar.cpp:208 -msgid "Amount:" -msgstr "" - -#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 -msgid "Cycle colormap(s) of selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/despeckle.cpp:36 -msgid "Despeckle" -msgstr "" - -#: ../src/extension/internal/bitmap/despeckle.cpp:43 -msgid "Reduce speckle noise of selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/edge.cpp:37 -msgid "Edge" -msgstr "" - -#: ../src/extension/internal/bitmap/edge.cpp:45 -msgid "Highlight edges of selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/emboss.cpp:38 -msgid "Emboss" -msgstr "" - -#: ../src/extension/internal/bitmap/emboss.cpp:47 -msgid "Emboss selected bitmap(s); highlight edges with 3D effect" -msgstr "" - -#: ../src/extension/internal/bitmap/enhance.cpp:35 -msgid "Enhance" -msgstr "" - -#: ../src/extension/internal/bitmap/enhance.cpp:42 -msgid "Enhance selected bitmap(s); minimize noise" -msgstr "" - -#: ../src/extension/internal/bitmap/equalize.cpp:35 -msgid "Equalize" -msgstr "" - -#: ../src/extension/internal/bitmap/equalize.cpp:42 -msgid "Equalize selected bitmap(s); histogram equalization" -msgstr "" - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 -#: ../src/filter-enums.cpp:29 -msgid "Gaussian Blur" -msgstr "" - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 -#: ../src/extension/internal/bitmap/implode.cpp:39 -#: ../src/extension/internal/bitmap/solarize.cpp:41 -msgid "Factor:" -msgstr "" - -#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 -msgid "Gaussian blur selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/implode.cpp:37 -msgid "Implode" -msgstr "" - -#: ../src/extension/internal/bitmap/implode.cpp:45 -msgid "Implode selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 -#: ../src/extension/internal/filter/image.h:56 -#: ../src/extension/internal/filter/morphology.h:66 -#: ../src/extension/internal/filter/paint.h:345 -msgid "Level" -msgstr "" - -#: ../src/extension/internal/bitmap/level.cpp:43 -#: ../src/extension/internal/bitmap/levelChannel.cpp:65 -msgid "Black Point:" -msgstr "" - -#: ../src/extension/internal/bitmap/level.cpp:44 -#: ../src/extension/internal/bitmap/levelChannel.cpp:66 -msgid "White Point:" -msgstr "" - -#: ../src/extension/internal/bitmap/level.cpp:45 -#: ../src/extension/internal/bitmap/levelChannel.cpp:67 -msgid "Gamma Correction:" -msgstr "" - -#: ../src/extension/internal/bitmap/level.cpp:51 -msgid "" -"Level selected bitmap(s) by scaling values falling between the given ranges " -"to the full color range" -msgstr "" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:52 -msgid "Level (with Channel)" -msgstr "" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 -msgid "Channel:" -msgstr "" - -#: ../src/extension/internal/bitmap/levelChannel.cpp:73 -msgid "" -"Level the specified channel of selected bitmap(s) by scaling values falling " -"between the given ranges to the full color range" -msgstr "" - -#: ../src/extension/internal/bitmap/medianFilter.cpp:37 -msgid "Median" -msgstr "" - -#: ../src/extension/internal/bitmap/medianFilter.cpp:45 -msgid "" -"Replace each pixel component with the median color in a circular neighborhood" -msgstr "" - -#: ../src/extension/internal/bitmap/modulate.cpp:40 -msgid "HSB Adjust" -msgstr "" - -#: ../src/extension/internal/bitmap/modulate.cpp:42 -msgid "Hue:" -msgstr "" - -#: ../src/extension/internal/bitmap/modulate.cpp:43 -msgid "Saturation:" -msgstr "" - -#: ../src/extension/internal/bitmap/modulate.cpp:44 -msgid "Brightness:" -msgstr "" - -#: ../src/extension/internal/bitmap/modulate.cpp:50 -msgid "" -"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/negate.cpp:36 -msgid "Negate" -msgstr "" - -#: ../src/extension/internal/bitmap/negate.cpp:43 -msgid "Negate (take inverse) selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/normalize.cpp:36 -msgid "Normalize" -msgstr "" - -#: ../src/extension/internal/bitmap/normalize.cpp:43 -msgid "" -"Normalize selected bitmap(s), expanding color range to the full possible " -"range of color" -msgstr "" - -#: ../src/extension/internal/bitmap/oilPaint.cpp:37 -msgid "Oil Paint" -msgstr "" - -#: ../src/extension/internal/bitmap/oilPaint.cpp:45 -msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" -msgstr "" - -#: ../src/extension/internal/bitmap/opacity.cpp:38 -#: ../src/extension/internal/filter/blurs.h:333 -#: ../src/extension/internal/filter/transparency.h:279 -#: ../src/ui/dialog/clonetiler.cpp:838 ../src/ui/dialog/clonetiler.cpp:991 -#: ../src/widgets/tweak-toolbar.cpp:334 -#: ../share/extensions/interp_att_g.inx.h:16 -msgid "Opacity" -msgstr "" - -#: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/ui/dialog/objects.cpp:1621 ../src/widgets/dropper-toolbar.cpp:83 -msgid "Opacity:" -msgstr "" - -#: ../src/extension/internal/bitmap/opacity.cpp:46 -msgid "Modify opacity channel(s) of selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/raise.cpp:40 -msgid "Raise" -msgstr "" - -#: ../src/extension/internal/bitmap/raise.cpp:44 -msgid "Raised" -msgstr "" - -#: ../src/extension/internal/bitmap/raise.cpp:50 -msgid "" -"Alter lightness the edges of selected bitmap(s) to create a raised appearance" -msgstr "" - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 -msgid "Reduce Noise" -msgstr "" - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 -#: ../share/extensions/jessyInk_effects.inx.h:3 -#: ../share/extensions/jessyInk_view.inx.h:3 -#: ../share/extensions/lindenmayer.inx.h:5 -msgid "Order:" -msgstr "" - -#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 -msgid "" -"Reduce noise in selected bitmap(s) using a noise peak elimination filter" -msgstr "" - -#: ../src/extension/internal/bitmap/sample.cpp:39 -msgid "Resample" -msgstr "" - -#: ../src/extension/internal/bitmap/sample.cpp:48 -msgid "" -"Alter the resolution of selected image by resizing it to the given pixel size" -msgstr "" - -#: ../src/extension/internal/bitmap/shade.cpp:40 -msgid "Shade" -msgstr "" - -#: ../src/extension/internal/bitmap/shade.cpp:42 -msgid "Azimuth:" -msgstr "" - -#: ../src/extension/internal/bitmap/shade.cpp:43 -msgid "Elevation:" -msgstr "" - -#: ../src/extension/internal/bitmap/shade.cpp:44 -msgid "Colored Shading" -msgstr "" - -#: ../src/extension/internal/bitmap/shade.cpp:50 -msgid "Shade selected bitmap(s) simulating distant light source" -msgstr "" - -#: ../src/extension/internal/bitmap/sharpen.cpp:47 -msgid "Sharpen selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 -msgid "Solarize" -msgstr "" - -#: ../src/extension/internal/bitmap/solarize.cpp:47 -msgid "Solarize selected bitmap(s), like overexposing photographic film" -msgstr "" - -#: ../src/extension/internal/bitmap/spread.cpp:37 -msgid "Dither" -msgstr "" - -#: ../src/extension/internal/bitmap/spread.cpp:45 -msgid "" -"Randomly scatter pixels in selected bitmap(s), within the given radius of " -"the original position" -msgstr "" - -#: ../src/extension/internal/bitmap/swirl.cpp:39 -msgid "Degrees:" -msgstr "" - -#: ../src/extension/internal/bitmap/swirl.cpp:45 -msgid "Swirl selected bitmap(s) around center point" -msgstr "" - -#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html -#: ../src/extension/internal/bitmap/threshold.cpp:38 -msgid "Threshold" -msgstr "" - -#: ../src/extension/internal/bitmap/threshold.cpp:40 -#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:148 -msgid "Threshold:" -msgstr "" - -#: ../src/extension/internal/bitmap/threshold.cpp:46 -msgid "Threshold selected bitmap(s)" -msgstr "" - -#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 -msgid "Unsharp Mask" -msgstr "" - -#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 -msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" -msgstr "" - -#: ../src/extension/internal/bitmap/wave.cpp:38 -msgid "Wave" -msgstr "" - -#: ../src/extension/internal/bitmap/wave.cpp:40 -msgid "Amplitude:" -msgstr "" - -#: ../src/extension/internal/bitmap/wave.cpp:41 -msgid "Wavelength:" -msgstr "" - -#: ../src/extension/internal/bitmap/wave.cpp:47 -msgid "Alter selected bitmap(s) along sine wave" -msgstr "" - -#: ../src/extension/internal/bluredge.cpp:136 -msgid "Inset/Outset Halo" -msgstr "" - -#: ../src/extension/internal/bluredge.cpp:138 -msgid "Width in px of the halo" -msgstr "" - -#: ../src/extension/internal/bluredge.cpp:139 -msgid "Number of steps:" -msgstr "" - -#: ../src/extension/internal/bluredge.cpp:139 -msgid "Number of inset/outset copies of the object to make" -msgstr "" - -#: ../src/extension/internal/bluredge.cpp:143 -#: ../share/extensions/extrude.inx.h:5 -#: ../share/extensions/generate_voronoi.inx.h:9 -#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 -#: ../share/extensions/pathalongpath.inx.h:18 -#: ../share/extensions/pathscatter.inx.h:20 -#: ../share/extensions/voronoi2svg.inx.h:13 -msgid "Generate from Path" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:327 -#: ../share/extensions/ps_input.inx.h:3 -msgid "PostScript" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:329 -#: ../src/extension/internal/cairo-ps-out.cpp:371 -msgid "Restrict to PS level:" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:330 -#: ../src/extension/internal/cairo-ps-out.cpp:372 -msgid "PostScript level 3" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:331 -#: ../src/extension/internal/cairo-ps-out.cpp:373 -msgid "PostScript level 2" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:333 -#: ../src/extension/internal/cairo-ps-out.cpp:375 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -msgid "Text output options:" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:334 -#: ../src/extension/internal/cairo-ps-out.cpp:376 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -msgid "Embed fonts" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:335 -#: ../src/extension/internal/cairo-ps-out.cpp:377 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -msgid "Convert text to paths" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:336 -#: ../src/extension/internal/cairo-ps-out.cpp:378 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 -msgid "Omit text in PDF and create LaTeX file" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:338 -#: ../src/extension/internal/cairo-ps-out.cpp:380 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 -msgid "Rasterize filter effects" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:339 -#: ../src/extension/internal/cairo-ps-out.cpp:381 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 -msgid "Resolution for rasterization (dpi):" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:340 -#: ../src/extension/internal/cairo-ps-out.cpp:382 -msgid "Output page size" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:341 -#: ../src/extension/internal/cairo-ps-out.cpp:383 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 -msgid "Use document's page size" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:342 -#: ../src/extension/internal/cairo-ps-out.cpp:384 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 -msgid "Use exported object's size" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:344 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 -msgid "Bleed/margin (mm):" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:345 -#: ../src/extension/internal/cairo-ps-out.cpp:387 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 -msgid "Limit export to the object with ID:" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:349 -#: ../share/extensions/ps_input.inx.h:2 -msgid "PostScript (*.ps)" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:350 -msgid "PostScript File" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:369 -#: ../share/extensions/eps_input.inx.h:3 -msgid "Encapsulated PostScript" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:386 -msgid "Bleed/margin (mm)" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:391 -#: ../share/extensions/eps_input.inx.h:2 -msgid "Encapsulated PostScript (*.eps)" -msgstr "" - -#: ../src/extension/internal/cairo-ps-out.cpp:392 -msgid "Encapsulated PostScript File" -msgstr "" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 -msgid "Restrict to PDF version:" -msgstr "" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 -msgid "PDF 1.5" -msgstr "" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 -msgid "PDF 1.4" -msgstr "" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:257 -msgid "Output page size:" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:116 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 -#: ../src/extension/internal/vsd-input.cpp:116 -msgid "Select page:" -msgstr "" - -#. Display total number of pages -#: ../src/extension/internal/cdr-input.cpp:128 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 -#: ../src/extension/internal/vsd-input.cpp:128 -#, c-format -msgid "out of %i" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:165 -#: ../src/extension/internal/vsd-input.cpp:165 -msgid "Page Selector" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:300 -msgid "Corel DRAW Input" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:305 -msgid "Corel DRAW 7-X4 files (*.cdr)" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:306 -msgid "Open files saved in Corel DRAW 7-X4" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:313 -msgid "Corel DRAW templates input" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:318 -msgid "Corel DRAW 7-13 template files (*.cdt)" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:319 -msgid "Open files saved in Corel DRAW 7-13" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:326 -msgid "Corel DRAW Compressed Exchange files input" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:331 -msgid "Corel DRAW Compressed Exchange files (*.ccx)" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:332 -msgid "Open compressed exchange files saved in Corel DRAW" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:339 -msgid "Corel DRAW Presentation Exchange files input" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:344 -msgid "Corel DRAW Presentation Exchange files (*.cmx)" -msgstr "" - -#: ../src/extension/internal/cdr-input.cpp:345 -msgid "Open presentation exchange files saved in Corel DRAW" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3553 -msgid "EMF Input" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3558 -msgid "Enhanced Metafiles (*.emf)" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3559 -msgid "Enhanced Metafiles" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3567 -msgid "EMF Output" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3569 -#: ../src/extension/internal/wmf-inout.cpp:3144 -msgid "Convert texts to paths" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3570 -#: ../src/extension/internal/wmf-inout.cpp:3145 -msgid "Map Unicode to Symbol font" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3571 -#: ../src/extension/internal/wmf-inout.cpp:3146 -msgid "Map Unicode to Wingdings" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3572 -#: ../src/extension/internal/wmf-inout.cpp:3147 -msgid "Map Unicode to Zapf Dingbats" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3573 -#: ../src/extension/internal/wmf-inout.cpp:3148 -msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3574 -#: ../src/extension/internal/wmf-inout.cpp:3149 -msgid "Compensate for PPT font bug" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3575 -#: ../src/extension/internal/wmf-inout.cpp:3150 -msgid "Convert dashed/dotted lines to single lines" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3576 -#: ../src/extension/internal/wmf-inout.cpp:3151 -msgid "Convert gradients to colored polygon series" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3577 -msgid "Use native rectangular linear gradients" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3578 -msgid "Map all fill patterns to standard EMF hatches" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3579 -msgid "Ignore image rotations" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3583 -msgid "Enhanced Metafile (*.emf)" -msgstr "" - -#: ../src/extension/internal/emf-inout.cpp:3584 -msgid "Enhanced Metafile" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:53 -msgid "Diffuse Light" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:55 -#: ../src/extension/internal/filter/bevels.h:135 -#: ../src/extension/internal/filter/bevels.h:219 -#: ../src/extension/internal/filter/paint.h:89 -#: ../src/extension/internal/filter/paint.h:340 -msgid "Smoothness" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:56 -#: ../src/extension/internal/filter/bevels.h:137 -#: ../src/extension/internal/filter/bevels.h:221 -msgid "Elevation (°)" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:57 -#: ../src/extension/internal/filter/bevels.h:138 -#: ../src/extension/internal/filter/bevels.h:222 -msgid "Azimuth (°)" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:58 -#: ../src/extension/internal/filter/bevels.h:139 -#: ../src/extension/internal/filter/bevels.h:223 -msgid "Lighting color" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:62 -#: ../src/extension/internal/filter/bevels.h:143 -#: ../src/extension/internal/filter/bevels.h:227 -#: ../src/extension/internal/filter/blurs.h:62 -#: ../src/extension/internal/filter/blurs.h:131 -#: ../src/extension/internal/filter/blurs.h:200 -#: ../src/extension/internal/filter/blurs.h:266 -#: ../src/extension/internal/filter/blurs.h:350 -#: ../src/extension/internal/filter/bumps.h:141 -#: ../src/extension/internal/filter/bumps.h:361 -#: ../src/extension/internal/filter/color.h:81 -#: ../src/extension/internal/filter/color.h:170 -#: ../src/extension/internal/filter/color.h:261 -#: ../src/extension/internal/filter/color.h:346 -#: ../src/extension/internal/filter/color.h:436 -#: ../src/extension/internal/filter/color.h:531 -#: ../src/extension/internal/filter/color.h:653 -#: ../src/extension/internal/filter/color.h:750 -#: ../src/extension/internal/filter/color.h:829 -#: ../src/extension/internal/filter/color.h:920 -#: ../src/extension/internal/filter/color.h:1048 -#: ../src/extension/internal/filter/color.h:1118 -#: ../src/extension/internal/filter/color.h:1211 -#: ../src/extension/internal/filter/color.h:1323 -#: ../src/extension/internal/filter/color.h:1428 -#: ../src/extension/internal/filter/color.h:1504 -#: ../src/extension/internal/filter/color.h:1615 -#: ../src/extension/internal/filter/distort.h:95 -#: ../src/extension/internal/filter/distort.h:204 -#: ../src/extension/internal/filter/filter-file.cpp:151 -#: ../src/extension/internal/filter/filter.cpp:214 -#: ../src/extension/internal/filter/image.h:61 -#: ../src/extension/internal/filter/morphology.h:75 -#: ../src/extension/internal/filter/morphology.h:202 -#: ../src/extension/internal/filter/overlays.h:79 -#: ../src/extension/internal/filter/paint.h:112 -#: ../src/extension/internal/filter/paint.h:243 -#: ../src/extension/internal/filter/paint.h:362 -#: ../src/extension/internal/filter/paint.h:506 -#: ../src/extension/internal/filter/paint.h:601 -#: ../src/extension/internal/filter/paint.h:724 -#: ../src/extension/internal/filter/paint.h:876 -#: ../src/extension/internal/filter/paint.h:980 -#: ../src/extension/internal/filter/protrusions.h:54 -#: ../src/extension/internal/filter/shadows.h:80 -#: ../src/extension/internal/filter/textures.h:90 -#: ../src/extension/internal/filter/transparency.h:69 -#: ../src/extension/internal/filter/transparency.h:140 -#: ../src/extension/internal/filter/transparency.h:214 -#: ../src/extension/internal/filter/transparency.h:287 -#: ../src/extension/internal/filter/transparency.h:349 -#: ../src/ui/dialog/inkscape-preferences.cpp:1751 -msgid "Filters" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:66 -msgid "Basic diffuse bevel to use for building textures" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:133 -msgid "Matte Jelly" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:136 -#: ../src/extension/internal/filter/bevels.h:220 -#: ../src/extension/internal/filter/blurs.h:187 -#: ../src/extension/internal/filter/color.h:74 -msgid "Brightness" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:147 -msgid "Bulging, matte jelly covering" -msgstr "" - -#: ../src/extension/internal/filter/bevels.h:217 -msgid "Specular Light" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:56 -#: ../src/extension/internal/filter/blurs.h:189 -#: ../src/extension/internal/filter/blurs.h:329 -#: ../src/extension/internal/filter/distort.h:73 -msgid "Horizontal blur" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:57 -#: ../src/extension/internal/filter/blurs.h:190 -#: ../src/extension/internal/filter/blurs.h:330 -#: ../src/extension/internal/filter/distort.h:74 -msgid "Vertical blur" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:58 -msgid "Blur content only" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:66 -msgid "Simple vertical and horizontal blur effect" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:125 -msgid "Clean Edges" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:127 -#: ../src/extension/internal/filter/blurs.h:262 -#: ../src/extension/internal/filter/paint.h:237 -#: ../src/extension/internal/filter/paint.h:336 -#: ../src/extension/internal/filter/paint.h:341 -msgid "Strength" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:135 -msgid "" -"Removes or decreases glows and jaggeries around objects edges after applying " -"some filters" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:185 -msgid "Cross Blur" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:188 -msgid "Fading" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:191 -#: ../src/extension/internal/filter/textures.h:74 -msgid "Blend:" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:192 -#: ../src/extension/internal/filter/blurs.h:339 -#: ../src/extension/internal/filter/bumps.h:131 -#: ../src/extension/internal/filter/bumps.h:337 -#: ../src/extension/internal/filter/bumps.h:344 -#: ../src/extension/internal/filter/color.h:329 -#: ../src/extension/internal/filter/color.h:336 -#: ../src/extension/internal/filter/color.h:1423 -#: ../src/extension/internal/filter/color.h:1596 -#: ../src/extension/internal/filter/color.h:1602 -#: ../src/extension/internal/filter/paint.h:705 -#: ../src/extension/internal/filter/transparency.h:63 -#: ../src/filter-enums.cpp:55 -msgid "Darken" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:193 -#: ../src/extension/internal/filter/blurs.h:340 -#: ../src/extension/internal/filter/bumps.h:132 -#: ../src/extension/internal/filter/bumps.h:335 -#: ../src/extension/internal/filter/bumps.h:342 -#: ../src/extension/internal/filter/color.h:327 -#: ../src/extension/internal/filter/color.h:332 -#: ../src/extension/internal/filter/color.h:647 -#: ../src/extension/internal/filter/color.h:1415 -#: ../src/extension/internal/filter/color.h:1420 -#: ../src/extension/internal/filter/color.h:1594 -#: ../src/extension/internal/filter/paint.h:703 -#: ../src/extension/internal/filter/transparency.h:62 -#: ../src/filter-enums.cpp:54 ../src/ui/dialog/input.cpp:382 -msgid "Screen" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:194 -#: ../src/extension/internal/filter/blurs.h:341 -#: ../src/extension/internal/filter/bumps.h:133 -#: ../src/extension/internal/filter/bumps.h:338 -#: ../src/extension/internal/filter/bumps.h:345 -#: ../src/extension/internal/filter/color.h:325 -#: ../src/extension/internal/filter/color.h:333 -#: ../src/extension/internal/filter/color.h:645 -#: ../src/extension/internal/filter/color.h:1414 -#: ../src/extension/internal/filter/color.h:1421 -#: ../src/extension/internal/filter/color.h:1595 -#: ../src/extension/internal/filter/color.h:1601 -#: ../src/extension/internal/filter/paint.h:701 -#: ../src/extension/internal/filter/transparency.h:60 -#: ../src/filter-enums.cpp:53 -msgid "Multiply" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:195 -#: ../src/extension/internal/filter/blurs.h:342 -#: ../src/extension/internal/filter/bumps.h:134 -#: ../src/extension/internal/filter/bumps.h:339 -#: ../src/extension/internal/filter/bumps.h:346 -#: ../src/extension/internal/filter/color.h:328 -#: ../src/extension/internal/filter/color.h:335 -#: ../src/extension/internal/filter/color.h:1422 -#: ../src/extension/internal/filter/color.h:1593 -#: ../src/extension/internal/filter/paint.h:704 -#: ../src/extension/internal/filter/transparency.h:64 -#: ../src/filter-enums.cpp:56 -msgid "Lighten" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:204 -msgid "Combine vertical and horizontal blur" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:260 -msgid "Feather" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:270 -msgid "Blurred mask on the edge without altering the contents" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:325 -msgid "Out of Focus" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:331 -#: ../src/extension/internal/filter/distort.h:75 -#: ../src/extension/internal/filter/morphology.h:67 -#: ../src/extension/internal/filter/paint.h:235 -#: ../src/extension/internal/filter/paint.h:342 -#: ../src/extension/internal/filter/paint.h:346 -msgid "Dilatation" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:332 -#: ../src/extension/internal/filter/distort.h:76 -#: ../src/extension/internal/filter/morphology.h:68 -#: ../src/extension/internal/filter/paint.h:98 -#: ../src/extension/internal/filter/paint.h:236 -#: ../src/extension/internal/filter/paint.h:343 -#: ../src/extension/internal/filter/paint.h:347 -#: ../src/extension/internal/filter/transparency.h:208 -#: ../src/extension/internal/filter/transparency.h:282 -msgid "Erosion" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:336 -#: ../src/extension/internal/filter/color.h:1205 -#: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Background color" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:337 -#: ../src/extension/internal/filter/bumps.h:129 -msgid "Blend type:" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:338 -#: ../src/extension/internal/filter/bumps.h:130 -#: ../src/extension/internal/filter/bumps.h:336 -#: ../src/extension/internal/filter/bumps.h:343 -#: ../src/extension/internal/filter/color.h:326 -#: ../src/extension/internal/filter/color.h:334 -#: ../src/extension/internal/filter/color.h:646 -#: ../src/extension/internal/filter/color.h:1413 -#: ../src/extension/internal/filter/color.h:1419 -#: ../src/extension/internal/filter/color.h:1586 -#: ../src/extension/internal/filter/color.h:1600 -#: ../src/extension/internal/filter/distort.h:78 -#: ../src/extension/internal/filter/paint.h:702 -#: ../src/extension/internal/filter/textures.h:77 -#: ../src/extension/internal/filter/transparency.h:61 -#: ../src/filter-enums.cpp:52 ../src/ui/dialog/inkscape-preferences.cpp:653 -msgid "Normal" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:344 -msgid "Blend to background" -msgstr "" - -#: ../src/extension/internal/filter/blurs.h:354 -msgid "Blur eroded by white or transparency" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:80 -msgid "Bump" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:84 -#: ../src/extension/internal/filter/bumps.h:313 -msgid "Image simplification" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:85 -#: ../src/extension/internal/filter/bumps.h:314 -msgid "Bump simplification" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:87 -#: ../src/extension/internal/filter/bumps.h:316 -msgid "Bump source" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:88 -#: ../src/extension/internal/filter/bumps.h:317 -#: ../src/extension/internal/filter/color.h:157 -#: ../src/extension/internal/filter/color.h:637 -#: ../src/extension/internal/filter/color.h:821 -#: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:193 -#: ../src/widgets/sp-color-icc-selector.cpp:330 -#: ../src/widgets/sp-color-scales.cpp:415 -#: ../src/widgets/sp-color-scales.cpp:416 -msgid "Red" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:89 -#: ../src/extension/internal/filter/bumps.h:318 -#: ../src/extension/internal/filter/color.h:158 -#: ../src/extension/internal/filter/color.h:638 -#: ../src/extension/internal/filter/color.h:822 -#: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:194 -#: ../src/widgets/sp-color-icc-selector.cpp:331 -#: ../src/widgets/sp-color-scales.cpp:418 -#: ../src/widgets/sp-color-scales.cpp:419 -msgid "Green" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:90 -#: ../src/extension/internal/filter/bumps.h:319 -#: ../src/extension/internal/filter/color.h:159 -#: ../src/extension/internal/filter/color.h:639 -#: ../src/extension/internal/filter/color.h:823 -#: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:195 -#: ../src/widgets/sp-color-icc-selector.cpp:332 -#: ../src/widgets/sp-color-scales.cpp:421 -#: ../src/widgets/sp-color-scales.cpp:422 -msgid "Blue" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:91 -msgid "Bump from background" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:94 -msgid "Lighting type:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:95 -msgid "Specular" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:96 -msgid "Diffuse" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:98 -#: ../src/extension/internal/filter/bumps.h:329 -#: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:335 -#: ../share/extensions/interp_att_g.inx.h:11 -msgid "Height" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:99 -#: ../src/extension/internal/filter/bumps.h:330 -#: ../src/extension/internal/filter/color.h:76 -#: ../src/extension/internal/filter/color.h:824 -#: ../src/extension/internal/filter/color.h:1113 -#: ../src/extension/internal/filter/paint.h:86 -#: ../src/extension/internal/filter/paint.h:592 -#: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 -#: ../src/widgets/sp-color-icc-selector.cpp:341 -#: ../src/widgets/sp-color-scales.cpp:447 -#: ../src/widgets/sp-color-scales.cpp:448 ../src/widgets/tweak-toolbar.cpp:318 -#: ../share/extensions/color_randomize.inx.h:5 -msgid "Lightness" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:100 -#: ../src/extension/internal/filter/bumps.h:331 -msgid "Precision" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:103 -msgid "Light source" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:104 -msgid "Light source:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:105 -msgid "Distant" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:106 -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Point" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:107 -msgid "Spot" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:109 -msgid "Distant light options" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:110 -#: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 -msgid "Azimuth" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:111 -#: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -msgid "Elevation" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:112 -msgid "Point light options" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:113 -#: ../src/extension/internal/filter/bumps.h:117 -msgid "X location" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:114 -#: ../src/extension/internal/filter/bumps.h:118 -msgid "Y location" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:115 -#: ../src/extension/internal/filter/bumps.h:119 -msgid "Z location" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:116 -msgid "Spot light options" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:120 -msgid "X target" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:121 -msgid "Y target" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:122 -msgid "Z target" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:123 -msgid "Specular exponent" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:124 -msgid "Cone angle" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:127 -msgid "Image color" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:128 -msgid "Color bump" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:145 -msgid "All purposes bump filter" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:309 -msgid "Wax Bump" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:320 -msgid "Background:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:322 -#: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:518 -msgid "Image" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:323 -msgid "Blurred image" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:325 -msgid "Background opacity" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 -msgid "Lighting" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:334 -msgid "Lighting blend:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:341 -msgid "Highlight blend:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:350 -msgid "Bump color" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:351 -msgid "Revert bump" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:352 -msgid "Transparency type:" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:353 -#: ../src/extension/internal/filter/morphology.h:176 -#: ../src/filter-enums.cpp:91 -msgid "Atop" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:354 -#: ../src/extension/internal/filter/distort.h:70 -#: ../src/extension/internal/filter/morphology.h:174 -#: ../src/filter-enums.cpp:89 -msgid "In" -msgstr "" - -#: ../src/extension/internal/filter/bumps.h:365 -msgid "Turns an image to jelly" -msgstr "" - -#: ../src/extension/internal/filter/color.h:72 -msgid "Brilliance" -msgstr "" - -#: ../src/extension/internal/filter/color.h:75 -#: ../src/extension/internal/filter/color.h:1417 -msgid "Over-saturation" -msgstr "" - -#: ../src/extension/internal/filter/color.h:77 -#: ../src/extension/internal/filter/color.h:161 -#: ../src/extension/internal/filter/overlays.h:70 -#: ../src/extension/internal/filter/paint.h:85 -#: ../src/extension/internal/filter/paint.h:502 -#: ../src/extension/internal/filter/transparency.h:136 -#: ../src/extension/internal/filter/transparency.h:210 -msgid "Inverted" -msgstr "" - -#: ../src/extension/internal/filter/color.h:85 -msgid "Brightness filter" -msgstr "" - -#: ../src/extension/internal/filter/color.h:152 -msgid "Channel Painting" -msgstr "" - -#: ../src/extension/internal/filter/color.h:156 -#: ../src/extension/internal/filter/color.h:257 -#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 -#: ../src/ui/dialog/inkscape-preferences.cpp:952 -#: ../src/ui/tools/flood-tool.cpp:197 -#: ../src/widgets/sp-color-icc-selector.cpp:337 -#: ../src/widgets/sp-color-icc-selector.cpp:342 -#: ../src/widgets/sp-color-scales.cpp:444 -#: ../src/widgets/sp-color-scales.cpp:445 ../src/widgets/tweak-toolbar.cpp:302 -#: ../share/extensions/color_randomize.inx.h:4 -msgid "Saturation" -msgstr "" - -#: ../src/extension/internal/filter/color.h:160 -#: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:199 -msgid "Alpha" -msgstr "" - -#: ../src/extension/internal/filter/color.h:174 -msgid "Replace RGB by any color" -msgstr "" - -#: ../src/extension/internal/filter/color.h:254 -msgid "Color Shift" -msgstr "" - -#: ../src/extension/internal/filter/color.h:256 -msgid "Shift (°)" -msgstr "" - -#: ../src/extension/internal/filter/color.h:265 -msgid "Rotate and desaturate hue" -msgstr "" - -#: ../src/extension/internal/filter/color.h:321 -msgid "Harsh light" -msgstr "" - -#: ../src/extension/internal/filter/color.h:322 -msgid "Normal light" -msgstr "" - -#: ../src/extension/internal/filter/color.h:323 -msgid "Duotone" -msgstr "" - -#: ../src/extension/internal/filter/color.h:324 -#: ../src/extension/internal/filter/color.h:1412 -msgid "Blend 1:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:331 -#: ../src/extension/internal/filter/color.h:1418 -msgid "Blend 2:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:350 -msgid "Blend image or object with a flood color" -msgstr "" - -#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:23 -msgid "Component Transfer" -msgstr "" - -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:110 -msgid "Identity" -msgstr "" - -#: ../src/extension/internal/filter/color.h:428 -#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 -msgid "Table" -msgstr "" - -#: ../src/extension/internal/filter/color.h:429 -#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 -msgid "Discrete" -msgstr "" - -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:113 -#: ../src/live_effects/lpe-interpolate_points.cpp:25 -#: ../src/live_effects/lpe-powerstroke.cpp:194 -msgid "Linear" -msgstr "" - -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:114 -msgid "Gamma" -msgstr "" - -#: ../src/extension/internal/filter/color.h:440 -msgid "Basic component transfer structure" -msgstr "" - -#: ../src/extension/internal/filter/color.h:509 -msgid "Duochrome" -msgstr "" - -#: ../src/extension/internal/filter/color.h:513 -msgid "Fluorescence level" -msgstr "" - -#: ../src/extension/internal/filter/color.h:514 -msgid "Swap:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:515 -msgid "No swap" -msgstr "" - -#: ../src/extension/internal/filter/color.h:516 -msgid "Color and alpha" -msgstr "" - -#: ../src/extension/internal/filter/color.h:517 -msgid "Color only" -msgstr "" - -#: ../src/extension/internal/filter/color.h:518 -msgid "Alpha only" -msgstr "" - -#: ../src/extension/internal/filter/color.h:522 -msgid "Color 1" -msgstr "" - -#: ../src/extension/internal/filter/color.h:525 -msgid "Color 2" -msgstr "" - -#: ../src/extension/internal/filter/color.h:535 -msgid "Convert luminance values to a duochrome palette" -msgstr "" - -#: ../src/extension/internal/filter/color.h:634 -msgid "Extract Channel" -msgstr "" - -#: ../src/extension/internal/filter/color.h:640 -#: ../src/widgets/sp-color-icc-selector.cpp:344 -#: ../src/widgets/sp-color-icc-selector.cpp:349 -#: ../src/widgets/sp-color-scales.cpp:469 -#: ../src/widgets/sp-color-scales.cpp:470 -msgid "Cyan" -msgstr "" - -#: ../src/extension/internal/filter/color.h:641 -#: ../src/widgets/sp-color-icc-selector.cpp:345 -#: ../src/widgets/sp-color-icc-selector.cpp:350 -#: ../src/widgets/sp-color-scales.cpp:472 -#: ../src/widgets/sp-color-scales.cpp:473 -msgid "Magenta" -msgstr "" - -#: ../src/extension/internal/filter/color.h:642 -#: ../src/widgets/sp-color-icc-selector.cpp:346 -#: ../src/widgets/sp-color-icc-selector.cpp:351 -#: ../src/widgets/sp-color-scales.cpp:475 -#: ../src/widgets/sp-color-scales.cpp:476 -msgid "Yellow" -msgstr "" - -#: ../src/extension/internal/filter/color.h:644 -msgid "Background blend mode:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:649 -msgid "Channel to alpha" -msgstr "" - -#: ../src/extension/internal/filter/color.h:657 -msgid "Extract color channel as a transparent image" -msgstr "" - -#: ../src/extension/internal/filter/color.h:740 -msgid "Fade to Black or White" -msgstr "" - -#: ../src/extension/internal/filter/color.h:743 -msgid "Fade to:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:744 -#: ../src/ui/widget/selected-style.cpp:274 -#: ../src/widgets/sp-color-icc-selector.cpp:347 -#: ../src/widgets/sp-color-scales.cpp:478 -#: ../src/widgets/sp-color-scales.cpp:479 -msgid "Black" -msgstr "" - -#: ../src/extension/internal/filter/color.h:745 -#: ../src/ui/widget/selected-style.cpp:270 -msgid "White" -msgstr "" - -#: ../src/extension/internal/filter/color.h:754 -msgid "Fade to black or white" -msgstr "" - -#: ../src/extension/internal/filter/color.h:819 -msgid "Greyscale" -msgstr "" - -#: ../src/extension/internal/filter/color.h:825 -#: ../src/extension/internal/filter/paint.h:83 -#: ../src/extension/internal/filter/paint.h:239 -msgid "Transparent" -msgstr "" - -#: ../src/extension/internal/filter/color.h:833 -msgid "Customize greyscale components" -msgstr "" - -#: ../src/extension/internal/filter/color.h:905 -#: ../src/ui/widget/selected-style.cpp:266 -msgid "Invert" -msgstr "" - -#: ../src/extension/internal/filter/color.h:907 -msgid "Invert channels:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:908 -msgid "No inversion" -msgstr "" - -#: ../src/extension/internal/filter/color.h:909 -msgid "Red and blue" -msgstr "" - -#: ../src/extension/internal/filter/color.h:910 -msgid "Red and green" -msgstr "" - -#: ../src/extension/internal/filter/color.h:911 -msgid "Green and blue" -msgstr "" - -#: ../src/extension/internal/filter/color.h:913 -msgid "Light transparency" -msgstr "" - -#: ../src/extension/internal/filter/color.h:914 -msgid "Invert hue" -msgstr "" - -#: ../src/extension/internal/filter/color.h:915 -msgid "Invert lightness" -msgstr "" - -#: ../src/extension/internal/filter/color.h:916 -msgid "Invert transparency" -msgstr "" - -#: ../src/extension/internal/filter/color.h:924 -msgid "Manage hue, lightness and transparency inversions" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1042 -msgid "Lights" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1043 -msgid "Shadows" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1044 -#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 -#: ../src/live_effects/effect.cpp:110 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1156 -msgid "Offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1052 -msgid "Modify lights and shadows separately" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1111 -msgid "Lightness-Contrast" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1122 -msgid "Modify lightness and contrast separately" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1190 -msgid "Nudge RGB" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1194 -msgid "Red offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1195 -#: ../src/extension/internal/filter/color.h:1198 -#: ../src/extension/internal/filter/color.h:1201 -#: ../src/extension/internal/filter/color.h:1307 -#: ../src/extension/internal/filter/color.h:1310 -#: ../src/extension/internal/filter/color.h:1313 -#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 -msgid "X" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 -#: ../src/ui/dialog/input.cpp:1616 -msgid "Y" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1197 -msgid "Green offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1200 -msgid "Blue offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1215 -msgid "" -"Nudge RGB channels separately and blend them to different types of " -"backgrounds" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1302 -msgid "Nudge CMY" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1306 -msgid "Cyan offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1309 -msgid "Magenta offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1312 -msgid "Yellow offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1327 -msgid "" -"Nudge CMY channels separately and blend them to different types of " -"backgrounds" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1408 -msgid "Quadritone fantasy" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1410 -msgid "Hue distribution (°)" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1411 -#: ../share/extensions/svgcalendar.inx.h:19 -msgid "Colors" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1432 -msgid "Replace hue by two colors" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1496 -msgid "Hue rotation (°)" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1499 -msgid "Moonarize" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1508 -msgid "Classic photographic solarization effect" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1581 -msgid "Tritone" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1587 -msgid "Enhance hue" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1588 -msgid "Phosphorescence" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1589 -msgid "Colored nights" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1590 -msgid "Hue to background" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1592 -msgid "Global blend:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1598 -msgid "Glow" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1599 -msgid "Glow blend:" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1604 -msgid "Local light" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1605 -msgid "Global light" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1608 -msgid "Hue distribution (°):" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1619 -msgid "" -"Create a custom tritone palette with additional glow, blend modes and hue " -"moving" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:67 -msgid "Felt Feather" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:71 -#: ../src/extension/internal/filter/morphology.h:175 -#: ../src/filter-enums.cpp:90 -msgid "Out" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:77 -#: ../src/extension/internal/filter/textures.h:75 -#: ../src/ui/widget/selected-style.cpp:132 -#: ../src/ui/widget/style-swatch.cpp:128 -msgid "Stroke:" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:79 -#: ../src/extension/internal/filter/textures.h:76 -msgid "Wide" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:80 -#: ../src/extension/internal/filter/textures.h:78 -msgid "Narrow" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:81 -msgid "No fill" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:83 -msgid "Turbulence:" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:84 -#: ../src/extension/internal/filter/distort.h:193 -#: ../src/extension/internal/filter/overlays.h:61 -#: ../src/extension/internal/filter/paint.h:692 -msgid "Fractal noise" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:85 -#: ../src/extension/internal/filter/distort.h:194 -#: ../src/extension/internal/filter/overlays.h:62 -#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:36 -#: ../src/filter-enums.cpp:145 -msgid "Turbulence" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:87 -#: ../src/extension/internal/filter/distort.h:196 -#: ../src/extension/internal/filter/paint.h:93 -#: ../src/extension/internal/filter/paint.h:695 -msgid "Horizontal frequency" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:88 -#: ../src/extension/internal/filter/distort.h:197 -#: ../src/extension/internal/filter/paint.h:94 -#: ../src/extension/internal/filter/paint.h:696 -msgid "Vertical frequency" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:89 -#: ../src/extension/internal/filter/distort.h:198 -#: ../src/extension/internal/filter/paint.h:95 -#: ../src/extension/internal/filter/paint.h:697 -msgid "Complexity" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:90 -#: ../src/extension/internal/filter/distort.h:199 -#: ../src/extension/internal/filter/paint.h:96 -#: ../src/extension/internal/filter/paint.h:698 -msgid "Variation" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:91 -#: ../src/extension/internal/filter/distort.h:200 -msgid "Intensity" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:99 -msgid "Blur and displace edges of shapes and pictures" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:190 -#: ../src/live_effects/effect.cpp:140 -msgid "Roughen" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:192 -#: ../src/extension/internal/filter/overlays.h:60 -#: ../src/extension/internal/filter/paint.h:691 -#: ../src/extension/internal/filter/textures.h:64 -msgid "Turbulence type:" -msgstr "" - -#: ../src/extension/internal/filter/distort.h:208 -msgid "Small-scale roughening to edges and content" -msgstr "" - -#: ../src/extension/internal/filter/filter-file.cpp:34 -msgid "Bundled" -msgstr "" - -#: ../src/extension/internal/filter/filter-file.cpp:35 -msgid "Personal" -msgstr "" - -#: ../src/extension/internal/filter/filter-file.cpp:47 -msgid "Null external module directory name. Filters will not be loaded." -msgstr "" - -#: ../src/extension/internal/filter/image.h:49 -msgid "Edge Detect" -msgstr "" - -#: ../src/extension/internal/filter/image.h:51 -msgid "Detect:" -msgstr "" - -#: ../src/extension/internal/filter/image.h:52 -#: ../src/ui/dialog/template-load-tab.cpp:105 -#: ../src/ui/dialog/template-load-tab.cpp:142 -msgid "All" -msgstr "" - -#: ../src/extension/internal/filter/image.h:53 -msgid "Vertical lines" -msgstr "" - -#: ../src/extension/internal/filter/image.h:54 -msgid "Horizontal lines" -msgstr "" - -#: ../src/extension/internal/filter/image.h:57 -msgid "Invert colors" -msgstr "" - -#: ../src/extension/internal/filter/image.h:65 -msgid "Detect color edges in object" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:58 -msgid "Cross-smooth" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:61 -#: ../src/extension/internal/filter/shadows.h:66 -msgid "Inner" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:62 -#: ../src/extension/internal/filter/shadows.h:65 -msgid "Outer" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:63 -msgid "Open" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:65 -#: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:318 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/interp_att_g.inx.h:10 -msgid "Width" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:69 -#: ../src/extension/internal/filter/morphology.h:190 -msgid "Antialiasing" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:70 -msgid "Blur content" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:79 -msgid "Smooth edges and angles of shapes" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:166 -msgid "Outline" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:170 -msgid "Fill image" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:171 -msgid "Hide image" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:172 -msgid "Composite type:" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:173 -#: ../src/filter-enums.cpp:88 -msgid "Over" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:177 -#: ../src/filter-enums.cpp:92 -msgid "XOR" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:179 -#: ../src/ui/dialog/layer-properties.cpp:185 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 -msgid "Position:" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:180 -msgid "Inside" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:181 -msgid "Outside" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:182 -msgid "Overlayed" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:184 -msgid "Width 1" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:185 -msgid "Dilatation 1" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:186 -msgid "Erosion 1" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:187 -msgid "Width 2" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:188 -msgid "Dilatation 2" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:189 -msgid "Erosion 2" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:191 -msgid "Smooth" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:195 -msgid "Fill opacity:" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:196 -msgid "Stroke opacity:" -msgstr "" - -#: ../src/extension/internal/filter/morphology.h:206 -msgid "Adds a colorizable outline" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:56 -msgid "Noise Fill" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:59 -#: ../src/extension/internal/filter/paint.h:690 -#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 -#: ../src/ui/dialog/tracedialog.cpp:747 -#: ../share/extensions/color_HSL_adjust.inx.h:2 -#: ../share/extensions/color_custom.inx.h:2 -#: ../share/extensions/color_randomize.inx.h:2 -#: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 -#: ../share/extensions/dxf_outlines.inx.h:2 -#: ../share/extensions/gcodetools_area.inx.h:29 -#: ../share/extensions/gcodetools_engraving.inx.h:7 -#: ../share/extensions/gcodetools_graffiti.inx.h:21 -#: ../share/extensions/gcodetools_lathe.inx.h:22 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 -#: ../share/extensions/generate_voronoi.inx.h:2 -#: ../share/extensions/gimp_xcf.inx.h:2 -#: ../share/extensions/interp_att_g.inx.h:2 -#: ../share/extensions/jessyInk_uninstall.inx.h:2 -#: ../share/extensions/lorem_ipsum.inx.h:2 -#: ../share/extensions/pathalongpath.inx.h:2 -#: ../share/extensions/pathscatter.inx.h:2 -#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 -#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 -#: ../share/extensions/web-set-att.inx.h:2 -#: ../share/extensions/web-transmit-att.inx.h:2 -#: ../share/extensions/webslicer_create_group.inx.h:2 -#: ../share/extensions/webslicer_export.inx.h:2 -msgid "Options" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:64 -msgid "Horizontal frequency:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:65 -msgid "Vertical frequency:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:66 -#: ../src/extension/internal/filter/textures.h:69 -msgid "Complexity:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:67 -#: ../src/extension/internal/filter/textures.h:70 -msgid "Variation:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:68 -msgid "Dilatation:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:69 -msgid "Erosion:" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:72 -msgid "Noise color" -msgstr "" - -#: ../src/extension/internal/filter/overlays.h:83 -msgid "Basic noise fill and transparency texture" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:71 -msgid "Chromolitho" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:75 -#: ../share/extensions/jessyInk_keyBindings.inx.h:16 -msgid "Drawing mode" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:76 -msgid "Drawing blend:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:84 -msgid "Dented" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:88 -#: ../src/extension/internal/filter/paint.h:699 -msgid "Noise reduction" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:91 -msgid "Grain" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:92 -msgid "Grain mode" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:97 -#: ../src/extension/internal/filter/transparency.h:207 -#: ../src/extension/internal/filter/transparency.h:281 -msgid "Expansion" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:100 -msgid "Grain blend:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:116 -msgid "Chromo effect with customizable edge drawing and graininess" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:232 -msgid "Cross Engraving" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:234 -#: ../src/extension/internal/filter/paint.h:337 -msgid "Clean-up" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:238 -#: ../share/extensions/measure.inx.h:11 -msgid "Length" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:247 -msgid "Convert image to an engraving made of vertical and horizontal lines" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:331 -#: ../src/ui/dialog/align-and-distribute.cpp:1003 -#: ../src/widgets/desktop-widget.cpp:1996 -msgid "Drawing" -msgstr "" - -#. 0.91 -#: ../src/extension/internal/filter/paint.h:335 -#: ../src/extension/internal/filter/paint.h:496 -#: ../src/extension/internal/filter/paint.h:590 -#: ../src/extension/internal/filter/paint.h:976 -#: ../src/live_effects/effect.cpp:151 ../src/splivarot.cpp:2212 -msgid "Simplify" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:338 -#: ../src/extension/internal/filter/paint.h:709 -msgid "Erase" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:344 -msgid "Melt" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:350 -#: ../src/extension/internal/filter/paint.h:712 -msgid "Fill color" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:351 -#: ../src/extension/internal/filter/paint.h:714 -msgid "Image on fill" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:354 -msgid "Stroke color" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:355 -msgid "Image on stroke" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:366 -msgid "Convert images to duochrome drawings" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:494 -msgid "Electrize" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:497 -#: ../src/extension/internal/filter/paint.h:852 -msgid "Effect type:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:501 -#: ../src/extension/internal/filter/paint.h:860 -#: ../src/extension/internal/filter/paint.h:975 -msgid "Levels" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:510 -msgid "Electro solarization effects" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:584 -msgid "Neon Draw" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:586 -msgid "Line type:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:587 -msgid "Smoothed" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:588 -msgid "Contrasted" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:591 -#: ../src/live_effects/lpe-jointype.cpp:51 -msgid "Line width" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:593 -#: ../src/extension/internal/filter/paint.h:861 -#: ../src/ui/widget/filter-effect-chooser.cpp:25 -msgid "Blend mode:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:605 -msgid "Posterize and draw smooth lines around color shapes" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:687 -msgid "Point Engraving" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:700 -msgid "Noise blend:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:708 -msgid "Grain lightness" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:716 -msgid "Points color" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:718 -msgid "Image on points" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:728 -msgid "Convert image to a transparent point engraving" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:850 -msgid "Poster Paint" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:856 -msgid "Transfer type:" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:857 -msgid "Poster" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:858 -msgid "Painting" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:868 -msgid "Simplify (primary)" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:869 -msgid "Simplify (secondary)" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:870 -msgid "Pre-saturation" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:871 -msgid "Post-saturation" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:872 -msgid "Simulate antialiasing" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:880 -msgid "Poster and painting effects" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:973 -msgid "Posterize Basic" -msgstr "" - -#: ../src/extension/internal/filter/paint.h:984 -msgid "Simple posterizing effect" -msgstr "" - -#: ../src/extension/internal/filter/protrusions.h:48 -msgid "Snow crest" -msgstr "" - -#: ../src/extension/internal/filter/protrusions.h:50 -msgid "Drift Size" -msgstr "" - -#: ../src/extension/internal/filter/protrusions.h:58 -msgid "Snow has fallen on object" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:57 -msgid "Drop Shadow" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:61 -msgid "Blur radius (px)" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:62 -msgid "Horizontal offset (px)" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:63 -msgid "Vertical offset (px)" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:64 -msgid "Shadow type:" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:67 -msgid "Outer cutout" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:68 -msgid "Inner cutout" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:69 -msgid "Shadow only" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:72 -msgid "Blur color" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:74 -msgid "Use object's color" -msgstr "" - -#: ../src/extension/internal/filter/shadows.h:84 -msgid "Colorizable Drop shadow" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:62 -msgid "Ink Blot" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:68 -msgid "Frequency:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:71 -msgid "Horizontal inlay:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:72 -msgid "Vertical inlay:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:73 -msgid "Displacement:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:79 -msgid "Overlapping" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:80 -msgid "External" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:81 -#: ../share/extensions/markers_strokepaint.inx.h:8 -msgid "Custom" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:83 -msgid "Custom stroke options" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:84 -msgid "k1:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:85 -msgid "k2:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:86 -msgid "k3:" -msgstr "" - -#: ../src/extension/internal/filter/textures.h:94 -msgid "Inkblot on tissue or rough paper" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:53 -#: ../src/filter-enums.cpp:21 -msgid "Blend" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 -msgid "Source:" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:56 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1591 -msgid "Background" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 -#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 -#: ../src/widgets/pencil-toolbar.cpp:132 ../src/widgets/spray-toolbar.cpp:186 -#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 -#: ../share/extensions/triangle.inx.h:8 -msgid "Mode:" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:73 -msgid "Blend objects with background images or with themselves" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:130 -msgid "Channel Transparency" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:144 -msgid "Replace RGB with transparency" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:205 -msgid "Light Eraser" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:209 -#: ../src/extension/internal/filter/transparency.h:283 -msgid "Global opacity" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:218 -msgid "Make the lightest parts of the object progressively transparent" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:291 -msgid "Set opacity and strength of opacity boundaries" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:341 -msgid "Silhouette" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:344 -msgid "Cutout" -msgstr "" - -#: ../src/extension/internal/filter/transparency.h:353 -msgid "Repaint anything visible monochrome" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:183 -#, c-format -msgid "%s bitmap image import" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:190 -msgid "Image Import Type:" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:190 -msgid "" -"Embed results in stand-alone, larger SVG files. Link references a file " -"outside this SVG document and all files must be moved together." -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:191 -#: ../src/ui/dialog/inkscape-preferences.cpp:1456 -msgid "Embed" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:192 ../src/sp-anchor.cpp:119 -#: ../src/ui/dialog/inkscape-preferences.cpp:1456 -msgid "Link" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:195 -msgid "Image DPI:" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:195 -msgid "" -"Take information from file or use default bitmap import resolution as " -"defined in the preferences." -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:196 -msgid "From file" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:197 -msgid "Default import resolution" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:200 -msgid "Image Rendering Mode:" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:200 -msgid "" -"When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " -"not work in all browsers.)" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:201 -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -msgid "None (auto)" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:202 -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -msgid "Smooth (optimizeQuality)" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:203 -#: ../src/ui/dialog/inkscape-preferences.cpp:1463 -msgid "Blocky (optimizeSpeed)" -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:206 -msgid "Hide the dialog next time and always apply the same actions." -msgstr "" - -#: ../src/extension/internal/gdkpixbuf-input.cpp:206 -msgid "Don't ask again" -msgstr "" - -#: ../src/extension/internal/gimpgrad.cpp:272 -msgid "GIMP Gradients" -msgstr "" - -#: ../src/extension/internal/gimpgrad.cpp:277 -msgid "GIMP Gradient (*.ggr)" -msgstr "" - -#: ../src/extension/internal/gimpgrad.cpp:278 -msgid "Gradients used in GIMP" -msgstr "" - -#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:118 -msgid "Grid" -msgstr "" - -#: ../src/extension/internal/grid.cpp:214 -msgid "Line Width:" -msgstr "" - -#: ../src/extension/internal/grid.cpp:215 -msgid "Horizontal Spacing:" -msgstr "" - -#: ../src/extension/internal/grid.cpp:216 -msgid "Vertical Spacing:" -msgstr "" - -#: ../src/extension/internal/grid.cpp:217 -msgid "Horizontal Offset:" -msgstr "" - -#: ../src/extension/internal/grid.cpp:218 -msgid "Vertical Offset:" -msgstr "" - -#: ../src/extension/internal/grid.cpp:222 -#: ../src/ui/dialog/inkscape-preferences.cpp:1477 -#: ../share/extensions/draw_from_triangle.inx.h:58 -#: ../share/extensions/eqtexsvg.inx.h:4 -#: ../share/extensions/foldablebox.inx.h:9 -#: ../share/extensions/funcplot.inx.h:38 -#: ../share/extensions/grid_cartesian.inx.h:23 -#: ../share/extensions/grid_isometric.inx.h:11 -#: ../share/extensions/grid_polar.inx.h:22 -#: ../share/extensions/guides_creator.inx.h:25 -#: ../share/extensions/hershey.inx.h:52 -#: ../share/extensions/layout_nup.inx.h:35 -#: ../share/extensions/lindenmayer.inx.h:34 -#: ../share/extensions/param_curves.inx.h:30 -#: ../share/extensions/perfectboundcover.inx.h:19 -#: ../share/extensions/polyhedron_3d.inx.h:56 -#: ../share/extensions/printing_marks.inx.h:20 -#: ../share/extensions/render_alphabetsoup.inx.h:5 -#: ../share/extensions/render_barcode.inx.h:5 -#: ../share/extensions/render_barcode_datamatrix.inx.h:5 -#: ../share/extensions/render_barcode_qrcode.inx.h:18 -#: ../share/extensions/render_gear_rack.inx.h:5 -#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 -#: ../share/extensions/seamless_pattern.inx.h:5 -#: ../share/extensions/spirograph.inx.h:10 -#: ../share/extensions/svgcalendar.inx.h:38 -#: ../share/extensions/triangle.inx.h:14 -#: ../share/extensions/wireframe_sphere.inx.h:8 -msgid "Render" -msgstr "" - -#: ../src/extension/internal/grid.cpp:223 -#: ../src/ui/dialog/document-properties.cpp:155 -#: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/widgets/toolbox.cpp:1825 -msgid "Grids" -msgstr "" - -#: ../src/extension/internal/grid.cpp:226 -msgid "Draw a path which is a grid" -msgstr "" - -#: ../src/extension/internal/javafx-out.cpp:966 -msgid "JavaFX Output" -msgstr "" - -#: ../src/extension/internal/javafx-out.cpp:971 -msgid "JavaFX (*.fx)" -msgstr "" - -#: ../src/extension/internal/javafx-out.cpp:972 -msgid "JavaFX Raytracer File" -msgstr "" - -#: ../src/extension/internal/latex-pstricks-out.cpp:95 -msgid "LaTeX Output" -msgstr "" - -#: ../src/extension/internal/latex-pstricks-out.cpp:100 -msgid "LaTeX With PSTricks macros (*.tex)" -msgstr "" - -#: ../src/extension/internal/latex-pstricks-out.cpp:101 -msgid "LaTeX PSTricks File" -msgstr "" - -#: ../src/extension/internal/latex-pstricks.cpp:331 -msgid "LaTeX Print" -msgstr "" - -#: ../src/extension/internal/odf.cpp:2142 -msgid "OpenDocument Drawing Output" -msgstr "" - -#: ../src/extension/internal/odf.cpp:2147 -msgid "OpenDocument drawing (*.odg)" -msgstr "" - -#: ../src/extension/internal/odf.cpp:2148 -msgid "OpenDocument drawing file" -msgstr "" - -#. TRANSLATORS: The following are document crop settings for PDF import -#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ -#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 -msgid "media box" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 -msgid "crop box" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 -msgid "trim box" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 -msgid "bleed box" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 -msgid "art box" -msgstr "" - -#. Crop settings -#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 -msgid "Clip to:" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 -msgid "Page settings" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 -msgid "Precision of approximating gradient meshes:" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 -msgid "" -"Note: setting the precision too high may result in a large SVG file " -"and slow performance." -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 -msgid "import via Poppler" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:138 -msgid "rough" -msgstr "" - -#. Text options -#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 -msgid "Text handling:" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:144 -#: ../src/extension/internal/pdfinput/pdf-input.cpp:145 -msgid "Import text as text" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 -msgid "Replace PDF fonts by closest-named installed fonts" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:149 -msgid "Embed images" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:151 -msgid "Import settings" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:268 -msgid "PDF Import Settings" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:431 -msgctxt "PDF input precision" -msgid "rough" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:432 -msgctxt "PDF input precision" -msgid "medium" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:433 -msgctxt "PDF input precision" -msgid "fine" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:434 -msgctxt "PDF input precision" -msgid "very fine" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:901 -msgid "PDF Input" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:906 -msgid "Adobe PDF (*.pdf)" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:907 -msgid "Adobe Portable Document Format" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:914 -msgid "AI Input" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:919 -msgid "Adobe Illustrator 9.0 and above (*.ai)" -msgstr "" - -#: ../src/extension/internal/pdfinput/pdf-input.cpp:920 -msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" -msgstr "" - -#: ../src/extension/internal/pov-out.cpp:715 -msgid "PovRay Output" -msgstr "" - -#: ../src/extension/internal/pov-out.cpp:720 -msgid "PovRay (*.pov) (paths and shapes only)" -msgstr "" - -#: ../src/extension/internal/pov-out.cpp:721 -msgid "PovRay Raytracer File" -msgstr "" - -#: ../src/extension/internal/svg.cpp:100 -msgid "SVG Input" -msgstr "" - -#: ../src/extension/internal/svg.cpp:105 -msgid "Scalable Vector Graphic (*.svg)" -msgstr "" - -#: ../src/extension/internal/svg.cpp:106 -msgid "Inkscape native file format and W3C standard" -msgstr "" - -#: ../src/extension/internal/svg.cpp:114 -msgid "SVG Output Inkscape" -msgstr "" - -#: ../src/extension/internal/svg.cpp:119 -msgid "Inkscape SVG (*.svg)" -msgstr "" - -#: ../src/extension/internal/svg.cpp:120 -msgid "SVG format with Inkscape extensions" -msgstr "" - -#: ../src/extension/internal/svg.cpp:128 -msgid "SVG Output" -msgstr "" - -#: ../src/extension/internal/svg.cpp:133 -msgid "Plain SVG (*.svg)" -msgstr "" - -#: ../src/extension/internal/svg.cpp:134 -msgid "Scalable Vector Graphics format as defined by the W3C" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:46 -msgid "SVGZ Input" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 -msgid "Compressed Inkscape SVG (*.svgz)" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:53 -msgid "SVG file format compressed with GZip" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 -msgid "SVGZ Output" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:67 -msgid "Inkscape's native file format compressed with GZip" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:80 -msgid "Compressed plain SVG (*.svgz)" -msgstr "" - -#: ../src/extension/internal/svgz.cpp:81 -msgid "Scalable Vector Graphics format compressed with GZip" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:301 -msgid "VSD Input" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:306 -msgid "Microsoft Visio Diagram (*.vsd)" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:307 -msgid "File format used by Microsoft Visio 6 and later" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:314 -msgid "VDX Input" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:319 -msgid "Microsoft Visio XML Diagram (*.vdx)" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:320 -msgid "File format used by Microsoft Visio 2010 and later" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:327 -msgid "VSDM Input" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:332 -msgid "Microsoft Visio 2013 drawing (*.vsdm)" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:333 -#: ../src/extension/internal/vsd-input.cpp:346 -msgid "File format used by Microsoft Visio 2013 and later" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:340 -msgid "VSDX Input" -msgstr "" - -#: ../src/extension/internal/vsd-input.cpp:345 -msgid "Microsoft Visio 2013 drawing (*.vsdx)" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3128 -msgid "WMF Input" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3133 -msgid "Windows Metafiles (*.wmf)" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3134 -msgid "Windows Metafiles" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3142 -msgid "WMF Output" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3152 -msgid "Map all fill patterns to standard WMF hatches" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3156 -#: ../share/extensions/wmf_input.inx.h:2 -#: ../share/extensions/wmf_output.inx.h:2 -msgid "Windows Metafile (*.wmf)" -msgstr "" - -#: ../src/extension/internal/wmf-inout.cpp:3157 -msgid "Windows Metafile" -msgstr "" - -#: ../src/extension/internal/wpg-input.cpp:144 -msgid "WPG Input" -msgstr "" - -#: ../src/extension/internal/wpg-input.cpp:149 -msgid "WordPerfect Graphics (*.wpg)" -msgstr "" - -#: ../src/extension/internal/wpg-input.cpp:150 -msgid "Vector graphics format used by Corel WordPerfect" -msgstr "" - -#: ../src/extension/prefdialog.cpp:276 -msgid "Live preview" -msgstr "" - -#: ../src/extension/prefdialog.cpp:276 -msgid "Is the effect previewed live on canvas?" -msgstr "" - -#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 -msgid "Format autodetect failed. The file is being opened as SVG." -msgstr "" - -#: ../src/file.cpp:183 -msgid "default.svg" -msgstr "" - -#: ../src/file.cpp:322 -msgid "Broken links have been changed to point to existing files." -msgstr "" - -#: ../src/file.cpp:333 ../src/file.cpp:1249 -#, c-format -msgid "Failed to load the requested file %s" -msgstr "" - -#: ../src/file.cpp:359 -msgid "Document not saved yet. Cannot revert." -msgstr "" - -#: ../src/file.cpp:365 -msgid "Changes will be lost! Are you sure you want to reload document %1?" -msgstr "" - -#: ../src/file.cpp:391 -msgid "Document reverted." -msgstr "" - -#: ../src/file.cpp:393 -msgid "Document not reverted." -msgstr "" - -#: ../src/file.cpp:543 -msgid "Select file to open" -msgstr "" - -#: ../src/file.cpp:625 -msgid "Clean up document" -msgstr "" - -#: ../src/file.cpp:632 -#, c-format -msgid "Removed %i unused definition in <defs>." -msgid_plural "Removed %i unused definitions in <defs>." -msgstr[0] "" -msgstr[1] "" - -#: ../src/file.cpp:637 -msgid "No unused definitions in <defs>." -msgstr "" - -#: ../src/file.cpp:669 -#, 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:670 ../src/file.cpp:678 ../src/file.cpp:686 -#: ../src/file.cpp:692 ../src/file.cpp:697 -msgid "Document not saved." -msgstr "" - -#: ../src/file.cpp:677 -#, c-format -msgid "" -"File %s is write protected. Please remove write protection and try again." -msgstr "" - -#: ../src/file.cpp:685 -#, c-format -msgid "File %s could not be saved." -msgstr "" - -#: ../src/file.cpp:715 ../src/file.cpp:717 -msgid "Document saved." -msgstr "" - -#. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:860 ../src/file.cpp:1408 -msgid "drawing" -msgstr "" - -#: ../src/file.cpp:865 -msgid "drawing-%1" -msgstr "" - -#: ../src/file.cpp:882 -msgid "Select file to save a copy to" -msgstr "" - -#: ../src/file.cpp:884 -msgid "Select file to save to" -msgstr "" - -#: ../src/file.cpp:989 ../src/file.cpp:991 -msgid "No changes need to be saved." -msgstr "" - -#: ../src/file.cpp:1010 -msgid "Saving document..." -msgstr "" - -#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1450 -#: ../src/ui/dialog/ocaldialogs.cpp:1244 -msgid "Import" -msgstr "" - -#: ../src/file.cpp:1296 -msgid "Select file to import" -msgstr "" - -#: ../src/file.cpp:1429 -msgid "Select file to export to" -msgstr "" - -#: ../src/file.cpp:1682 -msgid "Import Clip Art" -msgstr "" - -#: ../src/filter-enums.cpp:22 -msgid "Color Matrix" -msgstr "" - -#: ../src/filter-enums.cpp:24 -msgid "Composite" -msgstr "" - -#: ../src/filter-enums.cpp:25 -msgid "Convolve Matrix" -msgstr "" - -#: ../src/filter-enums.cpp:26 -msgid "Diffuse Lighting" -msgstr "" - -#: ../src/filter-enums.cpp:27 -msgid "Displacement Map" -msgstr "" - -#: ../src/filter-enums.cpp:28 -msgid "Flood" -msgstr "" - -#: ../src/filter-enums.cpp:31 ../share/extensions/text_merge.inx.h:1 -msgid "Merge" -msgstr "" - -#: ../src/filter-enums.cpp:34 -msgid "Specular Lighting" -msgstr "" - -#: ../src/filter-enums.cpp:35 -msgid "Tile" -msgstr "" - -#: ../src/filter-enums.cpp:41 -msgid "Source Graphic" -msgstr "" - -#: ../src/filter-enums.cpp:42 -msgid "Source Alpha" -msgstr "" - -#: ../src/filter-enums.cpp:43 -msgid "Background Image" -msgstr "" - -#: ../src/filter-enums.cpp:44 -msgid "Background Alpha" -msgstr "" - -#: ../src/filter-enums.cpp:45 -msgid "Fill Paint" -msgstr "" - -#: ../src/filter-enums.cpp:46 -msgid "Stroke Paint" -msgstr "" - -#. New in Compositing and Blending Level 1 -#: ../src/filter-enums.cpp:58 -msgid "Overlay" -msgstr "" - -#: ../src/filter-enums.cpp:59 -msgid "Color Dodge" -msgstr "" - -#: ../src/filter-enums.cpp:60 -msgid "Color Burn" -msgstr "" - -#: ../src/filter-enums.cpp:61 -msgid "Hard Light" -msgstr "" - -#: ../src/filter-enums.cpp:62 -msgid "Soft Light" -msgstr "" - -#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 -msgid "Difference" -msgstr "" - -#: ../src/filter-enums.cpp:64 ../src/splivarot.cpp:100 -msgid "Exclusion" -msgstr "" - -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 -#: ../src/widgets/sp-color-icc-selector.cpp:336 -#: ../src/widgets/sp-color-icc-selector.cpp:340 -#: ../src/widgets/sp-color-scales.cpp:441 -#: ../src/widgets/sp-color-scales.cpp:442 ../src/widgets/tweak-toolbar.cpp:286 -#: ../share/extensions/color_randomize.inx.h:3 -msgid "Hue" -msgstr "" - -#: ../src/filter-enums.cpp:68 -msgid "Luminosity" -msgstr "" - -#: ../src/filter-enums.cpp:78 -msgid "Matrix" -msgstr "" - -#: ../src/filter-enums.cpp:79 -msgid "Saturate" -msgstr "" - -#: ../src/filter-enums.cpp:80 -msgid "Hue Rotate" -msgstr "" - -#: ../src/filter-enums.cpp:81 -msgid "Luminance to Alpha" -msgstr "" - -#: ../src/filter-enums.cpp:87 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:7 -msgid "Default" -msgstr "" - -#. New CSS -#: ../src/filter-enums.cpp:95 -msgid "Clear" -msgstr "" - -#: ../src/filter-enums.cpp:96 -msgid "Copy" -msgstr "" - -#: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1611 -msgid "Destination" -msgstr "" - -#: ../src/filter-enums.cpp:98 -msgid "Destination Over" -msgstr "" - -#: ../src/filter-enums.cpp:99 -msgid "Destination In" -msgstr "" - -#: ../src/filter-enums.cpp:100 -msgid "Destination Out" -msgstr "" - -#: ../src/filter-enums.cpp:101 -msgid "Destination Atop" -msgstr "" - -#: ../src/filter-enums.cpp:102 -msgid "Lighter" -msgstr "" - -#: ../src/filter-enums.cpp:104 -msgid "Arithmetic" -msgstr "" - -#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:546 -msgid "Duplicate" -msgstr "" - -#: ../src/filter-enums.cpp:121 -msgid "Wrap" -msgstr "" - -#: ../src/filter-enums.cpp:122 -msgctxt "Convolve matrix, edge mode" -msgid "None" -msgstr "" - -#: ../src/filter-enums.cpp:137 -msgid "Erode" -msgstr "" - -#: ../src/filter-enums.cpp:138 -msgid "Dilate" -msgstr "" - -#: ../src/filter-enums.cpp:144 -msgid "Fractal Noise" -msgstr "" - -#: ../src/filter-enums.cpp:151 -msgid "Distant Light" -msgstr "" - -#: ../src/filter-enums.cpp:152 -msgid "Point Light" -msgstr "" - -#: ../src/filter-enums.cpp:153 -msgid "Spot Light" -msgstr "" - -#: ../src/gradient-chemistry.cpp:1579 -msgid "Invert gradient colors" -msgstr "" - -#: ../src/gradient-chemistry.cpp:1605 -msgid "Reverse gradient" -msgstr "" - -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:227 -msgid "Delete swatch" -msgstr "" - -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 -msgid "Linear gradient start" -msgstr "" - -#. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 -msgid "Linear gradient end" -msgstr "" - -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 -msgid "Linear gradient mid stop" -msgstr "" - -#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 -msgid "Radial gradient center" -msgstr "" - -#: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 -msgid "Radial gradient radius" -msgstr "" - -#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 -msgid "Radial gradient focus" -msgstr "" - -#. POINT_RG_FOCUS -#: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 -msgid "Radial gradient mid stop" -msgstr "" - -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 -msgid "Mesh gradient corner" -msgstr "" - -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 -msgid "Mesh gradient handle" -msgstr "" - -#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 -msgid "Mesh gradient tensor" -msgstr "" - -#: ../src/gradient-drag.cpp:567 -msgid "Added patch row or column" -msgstr "" - -#: ../src/gradient-drag.cpp:799 -msgid "Merge gradient handles" -msgstr "" - -#. we did an undoable action -#: ../src/gradient-drag.cpp:1105 -msgid "Move gradient handle" -msgstr "" - -#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 -msgid "Delete gradient stop" -msgstr "" - -#: ../src/gradient-drag.cpp:1427 -#, c-format -msgid "" -"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" -"+Alt to delete stop" -msgstr "" - -#: ../src/gradient-drag.cpp:1431 ../src/gradient-drag.cpp:1438 -msgid " (stroke)" -msgstr "" - -#: ../src/gradient-drag.cpp:1435 -#, c-format -msgid "" -"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " -"preserve angle, with Ctrl+Shift to scale around center" -msgstr "" - -#: ../src/gradient-drag.cpp:1443 -msgid "" -"Radial gradient center and focus; drag with Shift to " -"separate focus" -msgstr "" - -#: ../src/gradient-drag.cpp:1446 -#, c-format -msgid "" -"Gradient point shared by %d gradient; drag with Shift to " -"separate" -msgid_plural "" -"Gradient point shared by %d gradients; drag with Shift to " -"separate" -msgstr[0] "" -msgstr[1] "" - -#: ../src/gradient-drag.cpp:2378 -msgid "Move gradient handle(s)" -msgstr "" - -#: ../src/gradient-drag.cpp:2414 -msgid "Move gradient mid stop(s)" -msgstr "" - -#: ../src/gradient-drag.cpp:2703 -msgid "Delete gradient stop(s)" -msgstr "" - -#: ../src/inkscape.cpp:246 -msgid "Autosave failed! Cannot create directory %1." -msgstr "" - -#: ../src/inkscape.cpp:255 -msgid "Autosave failed! Cannot open directory %1." -msgstr "" - -#: ../src/inkscape.cpp:271 -msgid "Autosaving documents..." -msgstr "" - -#: ../src/inkscape.cpp:339 -msgid "Autosave failed! Could not find inkscape extension to save document." -msgstr "" - -#: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 -#, c-format -msgid "Autosave failed! File %s could not be saved." -msgstr "" - -#: ../src/inkscape.cpp:364 -msgid "Autosave complete." -msgstr "" - -#: ../src/inkscape.cpp:622 -msgid "Untitled document" -msgstr "" - -#. Show nice dialog box -#: ../src/inkscape.cpp:654 -msgid "Inkscape encountered an internal error and will close now.\n" -msgstr "" - -#: ../src/inkscape.cpp:655 -msgid "" -"Automatic backups of unsaved documents were done to the following " -"locations:\n" -msgstr "" - -#: ../src/inkscape.cpp:656 -msgid "Automatic backup of the following documents failed:\n" -msgstr "" - -#: ../src/knot.cpp:346 -msgid "Node or handle drag canceled." -msgstr "" - -#: ../src/knotholder.cpp:170 -msgid "Change handle" -msgstr "" - -#: ../src/knotholder.cpp:257 -msgid "Move handle" -msgstr "" - -#. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:276 ../src/knotholder.cpp:298 -msgid "Move the pattern fill inside the object" -msgstr "" - -#: ../src/knotholder.cpp:280 ../src/knotholder.cpp:302 -msgid "Scale the pattern fill; uniformly if with Ctrl" -msgstr "" - -#: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 -msgid "Rotate the pattern fill; with Ctrl to snap angle" -msgstr "" - -#: ../src/libgdl/gdl-dock-bar.c:105 -msgid "Master" -msgstr "" - -#: ../src/libgdl/gdl-dock-bar.c:106 -msgid "GdlDockMaster object which the dockbar widget is attached to" -msgstr "" - -#: ../src/libgdl/gdl-dock-bar.c:113 -msgid "Dockbar style" -msgstr "" - -#: ../src/libgdl/gdl-dock-bar.c:114 -msgid "Dockbar style to show items on it" -msgstr "" - -#: ../src/libgdl/gdl-dock-item-grip.c:399 -msgid "Iconify this dock" -msgstr "" - -#: ../src/libgdl/gdl-dock-item-grip.c:401 -msgid "Close this dock" -msgstr "" - -#: ../src/libgdl/gdl-dock-item-grip.c:720 -#: ../src/libgdl/gdl-dock-tablabel.c:125 -msgid "Controlling dock item" -msgstr "" - -#: ../src/libgdl/gdl-dock-item-grip.c:721 -msgid "Dockitem which 'owns' this grip" -msgstr "" - -#. Name -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 -#: ../src/widgets/text-toolbar.cpp:1405 -#: ../share/extensions/gcodetools_graffiti.inx.h:9 -#: ../share/extensions/gcodetools_orientation_points.inx.h:2 -msgid "Orientation" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:299 -msgid "Orientation of the docking item" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:314 -msgid "Resizable" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:315 -msgid "If set, the dock item can be resized when docked in a GtkPanel widget" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:322 -msgid "Item behavior" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:323 -msgid "" -"General behavior for the dock item (i.e. whether it can float, if it's " -"locked, etc.)" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 -msgid "Locked" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:332 -msgid "" -"If set, the dock item cannot be dragged around and it doesn't show a grip" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:340 -msgid "Preferred width" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:341 -msgid "Preferred width for the dock item" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:347 -msgid "Preferred height" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:348 -msgid "Preferred height for the dock item" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:716 -#, c-format -msgid "" -"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " -"some other compound dock object." -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:723 -#, c-format -msgid "" -"Attempting to add a widget with type %s to a %s, but it can only contain one " -"widget at a time; it already contains a widget of type %s" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:1471 ../src/libgdl/gdl-dock-item.c:1521 -#, c-format -msgid "Unsupported docking strategy %s in dock object of type %s" -msgstr "" - -#. UnLock menuitem -#: ../src/libgdl/gdl-dock-item.c:1629 -msgid "UnLock" -msgstr "" - -#. Hide menuitem. -#: ../src/libgdl/gdl-dock-item.c:1636 -msgid "Hide" -msgstr "" - -#. Lock menuitem -#: ../src/libgdl/gdl-dock-item.c:1641 -msgid "Lock" -msgstr "" - -#: ../src/libgdl/gdl-dock-item.c:1904 -#, c-format -msgid "Attempt to bind an unbound item %p" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 -msgid "Default title" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:142 -msgid "Default title for newly created floating docks" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:149 -msgid "" -"If is set to 1, all the dock items bound to the master are locked; if it's " -"0, all are unlocked; -1 indicates inconsistency among the items" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 -msgid "Switcher Style" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 -msgid "Switcher buttons style" -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:783 -#, c-format -msgid "" -"master %p: unable to add object %p[%s] to the hash. There already is an " -"item with that name (%p)." -msgstr "" - -#: ../src/libgdl/gdl-dock-master.c:955 -#, c-format -msgid "" -"The new dock controller %p is automatic. Only manual dock objects should be " -"named controller." -msgstr "" - -#: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1002 -#: ../src/ui/dialog/document-properties.cpp:153 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 -#: ../src/widgets/desktop-widget.cpp:1992 -#: ../share/extensions/empty_page.inx.h:1 -#: ../share/extensions/voronoi2svg.inx.h:9 -msgid "Page" -msgstr "" - -#: ../src/libgdl/gdl-dock-notebook.c:133 -msgid "The index of the current page" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/live_effects/parameter/originalpatharray.cpp:86 -#: ../src/ui/dialog/inkscape-preferences.cpp:1511 -#: ../src/ui/widget/page-sizer.cpp:258 -#: ../src/widgets/gradient-selector.cpp:140 -#: ../src/widgets/sp-xmlview-attr-list.cpp:49 -msgid "Name" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:126 -msgid "Unique name for identifying the dock object" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:133 -msgid "Long name" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:134 -msgid "Human readable name for the dock object" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:140 -msgid "Stock Icon" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:141 -msgid "Stock icon for the dock object" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:147 -msgid "Pixbuf Icon" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:148 -msgid "Pixbuf icon for the dock object" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:153 -msgid "Dock master" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:154 -msgid "Dock master this dock object is bound to" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:463 -#, c-format -msgid "" -"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " -"hasn't implemented this method" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:602 -#, c-format -msgid "" -"Dock operation requested in a non-bound object %p. The application might " -"crash" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:609 -#, c-format -msgid "Cannot dock %p to %p because they belong to different masters" -msgstr "" - -#: ../src/libgdl/gdl-dock-object.c:651 -#, c-format -msgid "" -"Attempt to bind to %p an already bound dock object %p (current master: %p)" -msgstr "" - -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 -msgid "Position" -msgstr "" - -#: ../src/libgdl/gdl-dock-paned.c:131 -msgid "Position of the divider in pixels" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:141 -msgid "Sticky" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:142 -msgid "" -"Whether the placeholder will stick to its host or move up the hierarchy when " -"the host is redocked" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:149 -msgid "Host" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:150 -msgid "The dock object this placeholder is attached to" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:157 -msgid "Next placement" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:158 -msgid "" -"The position an item will be docked to our host if a request is made to dock " -"to us" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:168 -msgid "Width for the widget when it's attached to the placeholder" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:176 -msgid "Height for the widget when it's attached to the placeholder" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:182 -msgid "Floating Toplevel" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:183 -msgid "Whether the placeholder is standing in for a floating toplevel dock" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:189 -msgid "X Coordinate" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:190 -msgid "X coordinate for dock when floating" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:196 -msgid "Y Coordinate" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:197 -msgid "Y coordinate for dock when floating" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:499 -msgid "Attempt to dock a dock object to an unbound placeholder" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:611 -#, c-format -msgid "Got a detach signal from an object (%p) who is not our host %p" -msgstr "" - -#: ../src/libgdl/gdl-dock-placeholder.c:636 -#, c-format -msgid "" -"Something weird happened while getting the child placement for %p from " -"parent %p" -msgstr "" - -#: ../src/libgdl/gdl-dock-tablabel.c:126 -msgid "Dockitem which 'owns' this tablabel" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:642 -#: ../src/ui/dialog/inkscape-preferences.cpp:685 -msgid "Floating" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:177 -msgid "Whether the dock is floating in its own window" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:185 -msgid "Default title for the newly created floating docks" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:192 -msgid "Width for the dock when it's of floating type" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:200 -msgid "Height for the dock when it's of floating type" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:207 -msgid "Float X" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:208 -msgid "X coordinate for a floating dock" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:215 -msgid "Float Y" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:216 -msgid "Y coordinate for a floating dock" -msgstr "" - -#: ../src/libgdl/gdl-dock.c:476 -#, c-format -msgid "Dock #%d" -msgstr "" - -#: ../src/libnrtype/FontFactory.cpp:618 -msgid "Ignoring font without family that will crash Pango" -msgstr "" - -#: ../src/live_effects/effect.cpp:99 -msgid "doEffect stack test" -msgstr "" - -#: ../src/live_effects/effect.cpp:100 -msgid "Angle bisector" -msgstr "" - -#. TRANSLATORS: boolean operations -#: ../src/live_effects/effect.cpp:102 -msgid "Boolops" -msgstr "" - -#: ../src/live_effects/effect.cpp:103 -msgid "Circle (by center and radius)" -msgstr "" - -#: ../src/live_effects/effect.cpp:104 -msgid "Circle by 3 points" -msgstr "" - -#: ../src/live_effects/effect.cpp:105 -msgid "Dynamic stroke" -msgstr "" - -#: ../src/live_effects/effect.cpp:106 ../share/extensions/extrude.inx.h:1 -msgid "Extrude" -msgstr "" - -#: ../src/live_effects/effect.cpp:107 -msgid "Lattice Deformation" -msgstr "" - -#: ../src/live_effects/effect.cpp:108 -msgid "Line Segment" -msgstr "" - -#: ../src/live_effects/effect.cpp:109 -msgid "Mirror symmetry" -msgstr "" - -#: ../src/live_effects/effect.cpp:111 -msgid "Parallel" -msgstr "" - -#: ../src/live_effects/effect.cpp:112 -msgid "Path length" -msgstr "" - -#: ../src/live_effects/effect.cpp:113 -msgid "Perpendicular bisector" -msgstr "" - -#: ../src/live_effects/effect.cpp:114 -msgid "Perspective path" -msgstr "" - -#: ../src/live_effects/effect.cpp:115 -msgid "Rotate copies" -msgstr "" - -#: ../src/live_effects/effect.cpp:116 -msgid "Recursive skeleton" -msgstr "" - -#: ../src/live_effects/effect.cpp:117 -msgid "Tangent to curve" -msgstr "" - -#: ../src/live_effects/effect.cpp:118 -msgid "Text label" -msgstr "" - -#. 0.46 -#: ../src/live_effects/effect.cpp:121 -msgid "Bend" -msgstr "" - -#: ../src/live_effects/effect.cpp:122 -msgid "Gears" -msgstr "" - -#: ../src/live_effects/effect.cpp:123 -msgid "Pattern Along Path" -msgstr "" - -#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG -#: ../src/live_effects/effect.cpp:124 -msgid "Stitch Sub-Paths" -msgstr "" - -#. 0.47 -#: ../src/live_effects/effect.cpp:126 -msgid "VonKoch" -msgstr "" - -#: ../src/live_effects/effect.cpp:127 -msgid "Knot" -msgstr "" - -#: ../src/live_effects/effect.cpp:128 -msgid "Construct grid" -msgstr "" - -#: ../src/live_effects/effect.cpp:129 -msgid "Spiro spline" -msgstr "" - -#: ../src/live_effects/effect.cpp:130 -msgid "Envelope Deformation" -msgstr "" - -#: ../src/live_effects/effect.cpp:131 -msgid "Interpolate Sub-Paths" -msgstr "" - -#: ../src/live_effects/effect.cpp:132 -msgid "Hatches (rough)" -msgstr "" - -#: ../src/live_effects/effect.cpp:133 -msgid "Sketch" -msgstr "" - -#: ../src/live_effects/effect.cpp:134 -msgid "Ruler" -msgstr "" - -#. 0.91 -#: ../src/live_effects/effect.cpp:136 -msgid "Power stroke" -msgstr "" - -#: ../src/live_effects/effect.cpp:137 -msgid "Clone original path" -msgstr "" - -#. EXPERIMENTAL -#: ../src/live_effects/effect.cpp:139 -#: ../src/live_effects/lpe-show_handles.cpp:26 -msgid "Show handles" -msgstr "" - -#: ../src/live_effects/effect.cpp:141 ../src/widgets/pencil-toolbar.cpp:109 -msgid "BSpline" -msgstr "" - -#: ../src/live_effects/effect.cpp:142 -msgid "Join type" -msgstr "" - -#: ../src/live_effects/effect.cpp:143 -msgid "Taper stroke" -msgstr "" - -#. Ponyscape -#: ../src/live_effects/effect.cpp:145 -msgid "Attach path" -msgstr "" - -#: ../src/live_effects/effect.cpp:146 -msgid "Fill between strokes" -msgstr "" - -#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2926 -msgid "Fill between many" -msgstr "" - -#: ../src/live_effects/effect.cpp:148 -msgid "Ellipse by 5 points" -msgstr "" - -#: ../src/live_effects/effect.cpp:149 -msgid "Bounding Box" -msgstr "" - -#: ../src/live_effects/effect.cpp:152 -msgid "Lattice Deformation 2" -msgstr "" - -#: ../src/live_effects/effect.cpp:153 -msgid "Perspective/Envelope" -msgstr "" - -#: ../src/live_effects/effect.cpp:154 -msgid "Fillet/Chamfer" -msgstr "" - -#: ../src/live_effects/effect.cpp:155 -msgid "Interpolate points" -msgstr "" - -#: ../src/live_effects/effect.cpp:362 -msgid "Is visible?" -msgstr "" - -#: ../src/live_effects/effect.cpp:362 -msgid "" -"If unchecked, the effect remains applied to the object but is temporarily " -"disabled on canvas" -msgstr "" - -#: ../src/live_effects/effect.cpp:384 -msgid "No effect" -msgstr "" - -#: ../src/live_effects/effect.cpp:492 -#, c-format -msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" -msgstr "" - -#: ../src/live_effects/effect.cpp:759 -#, c-format -msgid "Editing parameter %s." -msgstr "" - -#: ../src/live_effects/effect.cpp:764 -msgid "None of the applied path effect's parameters can be edited on-canvas." -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:29 -msgid "Start path:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:29 -msgid "Path to attach to the start of this path" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:30 -msgid "Start path position:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:30 -msgid "Position to attach path start to" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:31 -msgid "Start path curve start:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:31 -#: ../src/live_effects/lpe-attach-path.cpp:35 -msgid "Starting curve" -msgstr "" - -#. , true -#: ../src/live_effects/lpe-attach-path.cpp:32 -msgid "Start path curve end:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:32 -#: ../src/live_effects/lpe-attach-path.cpp:36 -msgid "Ending curve" -msgstr "" - -#. , true -#: ../src/live_effects/lpe-attach-path.cpp:33 -msgid "End path:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:33 -msgid "Path to attach to the end of this path" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:34 -msgid "End path position:" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:34 -msgid "Position to attach path end to" -msgstr "" - -#: ../src/live_effects/lpe-attach-path.cpp:35 -msgid "End path curve start:" -msgstr "" - -#. , true -#: ../src/live_effects/lpe-attach-path.cpp:36 -msgid "End path curve end:" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:53 -msgid "Bend path:" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:53 -msgid "Path along which to bend the original path" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:54 -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/transformation.cpp:78 -#: ../src/ui/widget/page-sizer.cpp:236 -msgid "_Width:" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:54 -msgid "Width of the path" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:55 -msgid "W_idth in units of length" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:55 -msgid "Scale the width of the path in units of its length" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:56 -msgid "_Original path is vertical" -msgstr "" - -#: ../src/live_effects/lpe-bendpath.cpp:56 -msgid "Rotates the original 90 degrees, before bending it along the bend path" -msgstr "" - -#: ../src/live_effects/lpe-bounding-box.cpp:24 -#: ../src/live_effects/lpe-clone-original.cpp:18 -#: ../src/live_effects/lpe-fill-between-many.cpp:25 -#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 -msgid "Linked path:" -msgstr "" - -#: ../src/live_effects/lpe-bounding-box.cpp:24 -#: ../src/live_effects/lpe-clone-original.cpp:18 -#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 -msgid "Path from which to take the original path data" -msgstr "" - -#: ../src/live_effects/lpe-bounding-box.cpp:25 -msgid "Visual Bounds" -msgstr "" - -#: ../src/live_effects/lpe-bounding-box.cpp:25 -msgid "Uses the visual bounding box" -msgstr "" - -#. initialise your parameters here: -#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, -#. Geom::Point(100,100)), -#: ../src/live_effects/lpe-bspline.cpp:60 -msgid "Steps with CTRL:" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:60 -msgid "Change number of steps with CTRL pressed" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:61 -msgid "Ignore cusp nodes" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:61 -msgid "Change ignoring cusp nodes" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:62 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 -msgid "Change only selected nodes" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:63 -msgid "Show helper paths" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:64 -msgid "Change weight:" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:64 -msgid "Change weight of the effect" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:291 -msgid "Default weight" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:296 -msgid "Make cusp" -msgstr "" - -#: ../src/live_effects/lpe-constructgrid.cpp:27 -msgid "Size _X:" -msgstr "" - -#: ../src/live_effects/lpe-constructgrid.cpp:27 -msgid "The size of the grid in X direction." -msgstr "" - -#: ../src/live_effects/lpe-constructgrid.cpp:28 -msgid "Size _Y:" -msgstr "" - -#: ../src/live_effects/lpe-constructgrid.cpp:28 -msgid "The size of the grid in Y direction." -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:41 -msgid "Stitch path:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:41 -msgid "The path that will be used as stitch." -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:42 -msgid "N_umber of paths:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:42 -msgid "The number of paths that will be generated." -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:43 -msgid "Sta_rt edge variance:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:43 -msgid "" -"The amount of random jitter to move the start points of the stitches inside " -"& outside the guide path" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:44 -msgid "Sta_rt spacing variance:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:44 -msgid "" -"The amount of random shifting to move the start points of the stitches back " -"& forth along the guide path" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:45 -msgid "End ed_ge variance:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:45 -msgid "" -"The amount of randomness that moves the end points of the stitches inside & " -"outside the guide path" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:46 -msgid "End spa_cing variance:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:46 -msgid "" -"The amount of random shifting to move the end points of the stitches back & " -"forth along the guide path" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:47 -msgid "Scale _width:" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:47 -msgid "Scale the width of the stitch path" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:48 -msgid "Scale _width relative to length" -msgstr "" - -#: ../src/live_effects/lpe-curvestitch.cpp:48 -msgid "Scale the width of the stitch path relative to its length" -msgstr "" - -#: ../src/live_effects/lpe-ellipse_5pts.cpp:77 -msgid "Five points required for constructing an ellipse" -msgstr "" - -#: ../src/live_effects/lpe-ellipse_5pts.cpp:162 -msgid "No ellipse found for specified points" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:31 -msgid "Top bend path:" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:31 -msgid "Top path along which to bend the original path" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:32 -msgid "Right bend path:" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:32 -msgid "Right path along which to bend the original path" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:33 -msgid "Bottom bend path:" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:33 -msgid "Bottom path along which to bend the original path" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:34 -msgid "Left bend path:" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:34 -msgid "Left path along which to bend the original path" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:35 -msgid "_Enable left & right paths" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:35 -msgid "Enable the left and right deformation paths" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:36 -msgid "_Enable top & bottom paths" -msgstr "" - -#: ../src/live_effects/lpe-envelope.cpp:36 -msgid "Enable the top and bottom deformation paths" -msgstr "" - -#: ../src/live_effects/lpe-extrude.cpp:30 -msgid "Direction" -msgstr "" - -#: ../src/live_effects/lpe-extrude.cpp:30 -msgid "Defines the direction and magnitude of the extrusion" -msgstr "" - -#: ../src/live_effects/lpe-fill-between-many.cpp:25 -msgid "Paths from which to take the original path data" -msgstr "" - -#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 -msgid "Second path:" -msgstr "" - -#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 -msgid "Second path from which to take the original path data" -msgstr "" - -#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 -msgid "Reverse Second" -msgstr "" - -#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 -msgid "Reverses the second path order" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 -#: ../share/extensions/render_barcode_qrcode.inx.h:5 -msgid "Auto" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 -msgid "Force arc" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:44 -msgid "Force bezier" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 -msgid "Fillet point" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 -msgid "Hide knots" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 -msgid "Ignore 0 radius knots" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 -msgid "Flexible radius size (%)" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 -msgid "Use knots distance instead radius" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 -#: ../src/live_effects/lpe-ruler.cpp:42 -#: ../share/extensions/foldablebox.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:9 -#: ../share/extensions/layout_nup.inx.h:3 -#: ../share/extensions/printing_marks.inx.h:11 -msgid "Unit:" -msgstr "" - -#. initialise your parameters here: -#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 -#: ../src/live_effects/lpe-roughen.cpp:39 ../src/live_effects/lpe-ruler.cpp:42 -#: ../src/widgets/ruler.cpp:201 -msgid "Unit" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 -msgid "Method:" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 -msgid "Fillets methods" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 -msgid "Radius (unit or %):" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 -msgid "Radius, in unit or %" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 -msgid "Chamfer steps:" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 -msgid "Chamfer steps" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 -msgid "Helper size with direction:" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 -msgid "Helper size with direction" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 -msgid "Fillet" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 -msgid "Inverse fillet" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:80 -msgid "Chamfer" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:82 -msgid "Inverse chamfer" -msgstr "" - -#: ../src/live_effects/lpe-gears.cpp:214 -msgid "_Teeth:" -msgstr "" - -#: ../src/live_effects/lpe-gears.cpp:214 -msgid "The number of teeth" -msgstr "" - -#: ../src/live_effects/lpe-gears.cpp:215 -msgid "_Phi:" -msgstr "" - -#: ../src/live_effects/lpe-gears.cpp:215 -msgid "" -"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " -"contact." -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:31 -msgid "Trajectory:" -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:31 -msgid "Path along which intermediate steps are created." -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:32 -msgid "Steps_:" -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:32 -msgid "Determines the number of steps from start to end path." -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:33 -msgid "E_quidistant spacing" -msgstr "" - -#: ../src/live_effects/lpe-interpolate.cpp:33 -msgid "" -"If true, the spacing between intermediates is constant along the length of " -"the path. If false, the distance depends on the location of the nodes of the " -"trajectory path." -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:26 -#: ../src/live_effects/lpe-powerstroke.cpp:195 -msgid "CubicBezierFit" -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:27 -#: ../src/live_effects/lpe-powerstroke.cpp:196 -msgid "CubicBezierJohan" -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:28 -#: ../src/live_effects/lpe-powerstroke.cpp:197 -msgid "SpiroInterpolator" -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:29 -#: ../src/live_effects/lpe-powerstroke.cpp:198 -msgid "Centripetal Catmull-Rom" -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:37 -#: ../src/live_effects/lpe-powerstroke.cpp:240 -msgid "Interpolator type:" -msgstr "" - -#: ../src/live_effects/lpe-interpolate_points.cpp:38 -#: ../src/live_effects/lpe-powerstroke.cpp:240 -msgid "" -"Determines which kind of interpolator will be used to interpolate between " -"stroke width along the path" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:31 -#: ../src/live_effects/lpe-powerstroke.cpp:227 -#: ../src/live_effects/lpe-taperstroke.cpp:63 -msgid "Beveled" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:32 -#: ../src/live_effects/lpe-jointype.cpp:40 -#: ../src/live_effects/lpe-powerstroke.cpp:228 -#: ../src/live_effects/lpe-taperstroke.cpp:64 -#: ../src/widgets/star-toolbar.cpp:536 -msgid "Rounded" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:33 -#: ../src/live_effects/lpe-powerstroke.cpp:231 -#: ../src/live_effects/lpe-taperstroke.cpp:66 -msgid "Miter" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:34 -#: ../src/live_effects/lpe-taperstroke.cpp:65 -#: ../src/widgets/gradient-toolbar.cpp:1115 -msgid "Reflected" -msgstr "" - -#. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well -#: ../src/live_effects/lpe-jointype.cpp:35 -#: ../src/live_effects/lpe-powerstroke.cpp:230 -msgid "Extrapolated arc" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:39 -#: ../src/live_effects/lpe-powerstroke.cpp:210 -msgid "Butt" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:41 -#: ../src/live_effects/lpe-powerstroke.cpp:211 -msgid "Square" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:42 -#: ../src/live_effects/lpe-powerstroke.cpp:213 -msgid "Peak" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:43 -msgid "Leaned" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:51 -msgid "Thickness of the stroke" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:52 -msgid "Line cap" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:52 -msgid "The end shape of the stroke" -msgstr "" - -#. Join type -#. TRANSLATORS: The line join style specifies the shape to be used at the -#. corners of paths. It can be "miter", "round" or "bevel". -#: ../src/live_effects/lpe-jointype.cpp:53 -#: ../src/live_effects/lpe-powerstroke.cpp:243 -#: ../src/widgets/stroke-style.cpp:227 -msgid "Join:" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:53 -#: ../src/live_effects/lpe-powerstroke.cpp:243 -msgid "Determines the shape of the path's corners" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:54 -msgid "Start path lean" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:55 -msgid "End path lean" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:56 -#: ../src/live_effects/lpe-powerstroke.cpp:244 -#: ../src/live_effects/lpe-taperstroke.cpp:79 -msgid "Miter limit:" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:56 -msgid "Maximum length of the miter join (in units of stroke width)" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:57 -msgid "Force miter" -msgstr "" - -#: ../src/live_effects/lpe-jointype.cpp:57 -msgid "Overrides the miter limit and forces a join." -msgstr "" - -#. initialise your parameters here: -#: ../src/live_effects/lpe-knot.cpp:351 -msgid "Fi_xed width:" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:351 -msgid "Size of hidden region of lower string" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:352 -msgid "_In units of stroke width" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:352 -msgid "Consider 'Interruption width' as a ratio of stroke width" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:353 -msgid "St_roke width" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:353 -msgid "Add the stroke width to the interruption size" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:354 -msgid "_Crossing path stroke width" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:354 -msgid "Add crossed stroke width to the interruption size" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:355 -msgid "S_witcher size:" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:355 -msgid "Orientation indicator/switcher size" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:356 -msgid "Crossing Signs" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:356 -msgid "Crossings signs" -msgstr "" - -#: ../src/live_effects/lpe-knot.cpp:627 -msgid "Drag to select a crossing, click to flip it" -msgstr "" - -#. / @todo Is this the right verb? -#: ../src/live_effects/lpe-knot.cpp:665 -msgid "Change knot crossing" -msgstr "" - -#. initialise your parameters here: -#: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35:" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:221 -msgid "Reset grid" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:50 -#: ../share/extensions/pathalongpath.inx.h:10 -msgid "Single" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:51 -#: ../share/extensions/pathalongpath.inx.h:11 -msgid "Single, stretched" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:52 -#: ../share/extensions/pathalongpath.inx.h:12 -msgid "Repeated" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:53 -#: ../share/extensions/pathalongpath.inx.h:13 -msgid "Repeated, stretched" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:59 -msgid "Pattern source:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:59 -msgid "Path to put along the skeleton path" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:60 -msgid "Pattern copies:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:60 -msgid "How many pattern copies to place along the skeleton path" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:62 -msgid "Width of the pattern" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:63 -msgid "Wid_th in units of length" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:64 -msgid "Scale the width of the pattern in units of its length" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:66 -msgid "Spa_cing:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:68 -#, 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:70 -msgid "No_rmal offset:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:71 -msgid "Tan_gential offset:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:72 -msgid "Offsets in _unit of pattern size" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:73 -msgid "" -"Spacing, tangential and normal offset are expressed as a ratio of width/" -"height" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:75 -msgid "Pattern is _vertical" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:75 -msgid "Rotate pattern 90 deg before applying" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:77 -msgid "_Fuse nearby ends:" -msgstr "" - -#: ../src/live_effects/lpe-patternalongpath.cpp:77 -msgid "Fuse ends closer than this number. 0 means don't fuse." -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:37 -#: ../share/extensions/perspective.inx.h:1 -msgid "Perspective" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:38 -msgid "Envelope deformation" -msgstr "" - -#. initialise your parameters here: -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 -msgid "Type" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 -msgid "Select the type of deformation" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 -msgid "Top Left" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 -msgid "Top Left - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 -msgid "Top Right" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 -msgid "Top Right - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 -msgid "Down Left" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 -msgid "Down Left - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 -msgid "Down Right" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 -msgid "Down Right - Ctrl+Alt+Click to reset" -msgstr "" - -#: ../src/live_effects/lpe-perspective-envelope.cpp:257 -msgid "Handles:" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:193 -msgid "CubicBezierSmooth" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:212 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 -msgid "Round" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:214 -msgid "Zero width" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:232 -#: ../src/widgets/pencil-toolbar.cpp:103 -msgid "Spiro" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:238 -msgid "Offset points" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:239 -msgid "Sort points" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:239 -msgid "Sort offset points according to their time value along the curve" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:241 -#: ../share/extensions/fractalize.inx.h:3 -msgid "Smoothness:" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:241 -msgid "" -"Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " -"interpolation, 1 = smooth" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:242 -msgid "Start cap:" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:242 -msgid "Determines the shape of the path's start" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:244 -#: ../src/widgets/stroke-style.cpp:278 -msgid "Maximum length of the miter (in units of stroke width)" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:245 -msgid "End cap:" -msgstr "" - -#: ../src/live_effects/lpe-powerstroke.cpp:245 -msgid "Determines the shape of the path's end" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:225 -msgid "Frequency randomness:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:225 -msgid "Variation of distance between hatches, in %." -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:226 -msgid "Growth:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:226 -msgid "Growth of distance between hatches." -msgstr "" - -#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! -#: ../src/live_effects/lpe-rough-hatches.cpp:228 -msgid "Half-turns smoothness: 1st side, in:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:228 -msgid "" -"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " -"0=sharp, 1=default" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:229 -msgid "1st side, out:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:229 -msgid "" -"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " -"1=default" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:230 -msgid "2nd side, in:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:230 -msgid "" -"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " -"1=default" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:231 -msgid "2nd side, out:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:231 -msgid "" -"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " -"1=default" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:232 -msgid "Magnitude jitter: 1st side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:232 -msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:233 -#: ../src/live_effects/lpe-rough-hatches.cpp:235 -#: ../src/live_effects/lpe-rough-hatches.cpp:237 -msgid "2nd side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:233 -msgid "Randomly moves 'top' half-turns to produce magnitude variations." -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:234 -msgid "Parallelism jitter: 1st side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:234 -msgid "" -"Add direction randomness by moving 'bottom' half-turns tangentially to the " -"boundary." -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:235 -msgid "" -"Add direction randomness by randomly moving 'top' half-turns tangentially to " -"the boundary." -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:236 -msgid "Variance: 1st side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:236 -msgid "Randomness of 'bottom' half-turns smoothness" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:237 -msgid "Randomness of 'top' half-turns smoothness" -msgstr "" - -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:239 -msgid "Generate thick/thin path" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:239 -msgid "Simulate a stroke of varying width" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:240 -msgid "Bend hatches" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:240 -msgid "Add a global bend to the hatches (slower)" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:241 -msgid "Thickness: at 1st side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:241 -msgid "Width at 'bottom' half-turns" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:242 -msgid "At 2nd side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:242 -msgid "Width at 'top' half-turns" -msgstr "" - -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:244 -msgid "From 2nd to 1st side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:244 -msgid "Width from 'top' to 'bottom'" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:245 -msgid "From 1st to 2nd side:" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:245 -msgid "Width from 'bottom' to 'top'" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:247 -msgid "Hatches width and dir" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:247 -msgid "Defines hatches frequency and direction" -msgstr "" - -#. -#: ../src/live_effects/lpe-rough-hatches.cpp:249 -msgid "Global bending" -msgstr "" - -#: ../src/live_effects/lpe-rough-hatches.cpp:249 -msgid "" -"Relative position to a reference point defines global bending direction and " -"amount" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:30 ../share/extensions/addnodes.inx.h:4 -msgid "By number of segments" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:31 -msgid "By max. segment size" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:40 -msgid "Method" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:40 -msgid "Division method" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:42 -msgid "Max. segment size" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:44 -msgid "Number of segments" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:46 -msgid "Max. displacement in X" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:48 -msgid "Max. displacement in Y" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:50 -msgid "Global randomize" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:52 -#: ../share/extensions/radiusrand.inx.h:5 -msgid "Shift nodes" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:54 -#: ../share/extensions/radiusrand.inx.h:6 -msgid "Shift node handles" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:103 -msgid "Roughen unit" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:111 -msgid "Add nodes Subdivide each segment" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:120 -msgid "Jitter nodes Move nodes/handles" -msgstr "" - -#: ../src/live_effects/lpe-roughen.cpp:129 -msgid "Extra roughen Add a extra layer of rough" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 -#: ../share/extensions/text_extract.inx.h:8 -#: ../share/extensions/text_merge.inx.h:8 -msgid "Left" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 -#: ../share/extensions/text_extract.inx.h:10 -#: ../share/extensions/text_merge.inx.h:10 -msgid "Right" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 -msgid "Both" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:32 -msgctxt "Border mark" -msgid "None" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:328 -msgid "Start" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:341 -msgid "End" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:41 -msgid "_Mark distance:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:41 -msgid "Distance between successive ruler marks" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:43 -msgid "Ma_jor length:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:43 -msgid "Length of major ruler marks" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:44 -msgid "Mino_r length:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:44 -msgid "Length of minor ruler marks" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:45 -msgid "Major steps_:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:45 -msgid "Draw a major mark every ... steps" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:46 -msgid "Shift marks _by:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:46 -msgid "Shift marks by this many steps" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:47 -msgid "Mark direction:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:47 -msgid "Direction of marks (when viewing along the path from start to end)" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:48 -msgid "_Offset:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:48 -msgid "Offset of first mark" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:49 -msgid "Border marks:" -msgstr "" - -#: ../src/live_effects/lpe-ruler.cpp:49 -msgid "Choose whether to draw marks at the beginning and end of the path" -msgstr "" - -#: ../src/live_effects/lpe-show_handles.cpp:25 -msgid "Show nodes" -msgstr "" - -#: ../src/live_effects/lpe-show_handles.cpp:27 -msgid "Show path" -msgstr "" - -#: ../src/live_effects/lpe-show_handles.cpp:28 -msgid "Scale nodes and handles" -msgstr "" - -#: ../src/live_effects/lpe-show_handles.cpp:29 -#: ../src/ui/tool/multi-path-manipulator.cpp:779 -#: ../src/ui/tool/multi-path-manipulator.cpp:782 -msgid "Rotate nodes" -msgstr "" - -#: ../src/live_effects/lpe-show_handles.cpp:55 -msgid "" -"The \"show handles\" path effect will remove any custom style on the object " -"you are applying it to. If this is not what you want, click Cancel." -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:29 -msgid "Steps:" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:29 -msgid "Change number of simplify steps " -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:30 -msgid "Roughly threshold:" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:31 -msgid "Helper size:" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:31 -msgid "Helper size" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:32 -msgid "Helper nodes" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:32 -msgid "Show helper nodes" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:34 -msgid "Helper handles" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:34 -msgid "Show helper handles" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:36 -msgid "Paths separately" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:36 -msgid "Simplifying paths (separately)" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:38 -msgid "Just coalesce" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:38 -msgid "Simplify just coalesce" -msgstr "" - -#. initialise your parameters here: -#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), -#: ../src/live_effects/lpe-sketch.cpp:38 -msgid "Strokes:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:38 -msgid "Draw that many approximating strokes" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:39 -msgid "Max stroke length:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:40 -msgid "Maximum length of approximating strokes" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:41 -msgid "Stroke length variation:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:42 -msgid "Random variation of stroke length (relative to maximum length)" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:43 -msgid "Max. overlap:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:44 -msgid "How much successive strokes should overlap (relative to maximum length)" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:45 -msgid "Overlap variation:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:46 -msgid "Random variation of overlap (relative to maximum overlap)" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:47 -msgid "Max. end tolerance:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:48 -msgid "" -"Maximum distance between ends of original and approximating paths (relative " -"to maximum length)" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:49 -msgid "Average offset:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:50 -msgid "Average distance each stroke is away from the original path" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:51 -msgid "Max. tremble:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:52 -msgid "Maximum tremble magnitude" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:53 -msgid "Tremble frequency:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:54 -msgid "Average number of tremble periods in a stroke" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:56 -msgid "Construction lines:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:57 -msgid "How many construction lines (tangents) to draw" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -#: ../share/extensions/render_alphabetsoup.inx.h:3 -msgid "Scale:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:59 -msgid "" -"Scale factor relating curvature and length of construction lines (try " -"5*offset)" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:60 -msgid "Max. length:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:60 -msgid "Maximum length of construction lines" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:61 -msgid "Length variation:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:61 -msgid "Random variation of the length of construction lines" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:62 -msgid "Placement randomness:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:62 -msgid "0: evenly distributed construction lines, 1: purely random placement" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:64 -msgid "k_min:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:64 -msgid "min curvature" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:65 -msgid "k_max:" -msgstr "" - -#: ../src/live_effects/lpe-sketch.cpp:65 -msgid "max curvature" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:67 -msgid "Extrapolated" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:74 -#: ../share/extensions/edge3d.inx.h:5 -msgid "Stroke width:" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:74 -msgid "The (non-tapered) width of the path" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:75 -msgid "Start offset:" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:75 -msgid "Taper distance from path start" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:76 -msgid "End offset:" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:76 -msgid "The ending position of the taper" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:77 -msgid "Taper smoothing:" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:77 -msgid "Amount of smoothing to apply to the tapers" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:78 -msgid "Join type:" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:78 -msgid "Join type for non-smooth nodes" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:79 -msgid "Limit for miter joins" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:536 -msgid "Start point of the taper" -msgstr "" - -#: ../src/live_effects/lpe-taperstroke.cpp:540 -msgid "End point of the taper" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:46 -msgid "N_r of generations:" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:46 -msgid "Depth of the recursion --- keep low!!" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:47 -msgid "Generating path:" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:47 -msgid "Path whose segments define the iterated transforms" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:48 -msgid "_Use uniform transforms only" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:48 -msgid "" -"2 consecutive segments are used to reverse/preserve orientation only " -"(otherwise, they define a general transform)." -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:49 -msgid "Dra_w all generations" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:49 -msgid "If unchecked, draw only the last generation" -msgstr "" - -#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) -#: ../src/live_effects/lpe-vonkoch.cpp:51 -msgid "Reference segment:" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:51 -msgid "The reference segment. Defaults to the horizontal midline of the bbox." -msgstr "" - -#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), -#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), -#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. -#: ../src/live_effects/lpe-vonkoch.cpp:55 -msgid "_Max complexity:" -msgstr "" - -#: ../src/live_effects/lpe-vonkoch.cpp:55 -msgid "Disable effect if the output is too complex" -msgstr "" - -#: ../src/live_effects/parameter/bool.cpp:67 -msgid "Change bool parameter" -msgstr "" - -#: ../src/live_effects/parameter/enum.h:47 -msgid "Change enumeration parameter" -msgstr "" - -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 -msgid "" -"Chamfer: Ctrl+Click toggle type, Shift+Click open " -"dialog, Ctrl+Alt+Click reset" -msgstr "" - -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:847 -msgid "" -"Inverse Chamfer: Ctrl+Click toggle type, Shift+Click " -"open dialog, Ctrl+Alt+Click reset" -msgstr "" - -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:851 -msgid "" -"Inverse Fillet: Ctrl+Click toggle type, Shift+Click " -"open dialog, Ctrl+Alt+Click reset" -msgstr "" - -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:794 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:855 -msgid "" -"Fillet: Ctrl+Click toggle type, Shift+Click open " -"dialog, Ctrl+Alt+Click reset" -msgstr "" - -#: ../src/live_effects/parameter/originalpath.cpp:71 -#: ../src/live_effects/parameter/originalpatharray.cpp:159 -msgid "Link to path" -msgstr "" - -#: ../src/live_effects/parameter/originalpath.cpp:83 -msgid "Select original" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1202 -msgid "Reverse" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:134 -#: ../src/live_effects/parameter/originalpatharray.cpp:319 -#: ../src/live_effects/parameter/path.cpp:475 -msgid "Link path parameter to path" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:171 -msgid "Remove Path" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:183 -#: ../src/ui/dialog/objects.cpp:1847 -msgid "Move Down" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:195 -#: ../src/ui/dialog/objects.cpp:1862 -msgid "Move Up" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:235 -msgid "Move path up" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:265 -msgid "Move path down" -msgstr "" - -#: ../src/live_effects/parameter/originalpatharray.cpp:283 -msgid "Remove path" -msgstr "" - -#: ../src/live_effects/parameter/parameter.cpp:168 -msgid "Change scalar parameter" -msgstr "" - -#: ../src/live_effects/parameter/path.cpp:170 -msgid "Edit on-canvas" -msgstr "" - -#: ../src/live_effects/parameter/path.cpp:180 -msgid "Copy path" -msgstr "" - -#: ../src/live_effects/parameter/path.cpp:190 -msgid "Paste path" -msgstr "" - -#: ../src/live_effects/parameter/path.cpp:200 -msgid "Link to path on clipboard" -msgstr "" - -#: ../src/live_effects/parameter/path.cpp:443 -msgid "Paste path parameter" -msgstr "" - -#: ../src/live_effects/parameter/point.cpp:89 -#: ../src/live_effects/parameter/pointreseteable.cpp:103 -msgid "Change point parameter" -msgstr "" - -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:239 -#: ../src/live_effects/parameter/powerstrokepointarray.cpp:256 -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:134 -msgid "Change random parameter" -msgstr "" - -#: ../src/live_effects/parameter/text.cpp:101 -msgid "Change text parameter" -msgstr "" - -#: ../src/live_effects/parameter/togglebutton.cpp:112 -msgid "Change togglebutton parameter" -msgstr "" - -#: ../src/live_effects/parameter/transformedpoint.cpp:98 -#: ../src/live_effects/parameter/vector.cpp:99 -msgid "Change vector parameter" -msgstr "" - -#: ../src/live_effects/parameter/unit.cpp:80 -msgid "Change unit parameter" -msgstr "" - -#: ../src/main-cmdlineact.cpp:49 -#, c-format -msgid "Unable to find verb ID '%s' specified on the command line.\n" -msgstr "" - -#: ../src/main-cmdlineact.cpp:60 -#, c-format -msgid "Unable to find node ID: '%s'\n" -msgstr "" - -#: ../src/main.cpp:295 -msgid "Print the Inkscape version number" -msgstr "" - -#: ../src/main.cpp:300 -msgid "Do not use X server (only process files from console)" -msgstr "" - -#: ../src/main.cpp:305 -msgid "Try to use X server (even if $DISPLAY is not set)" -msgstr "" - -#: ../src/main.cpp:310 -msgid "Open specified document(s) (option string may be excluded)" -msgstr "" - -#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 -#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 -#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 -msgid "FILENAME" -msgstr "" - -#: ../src/main.cpp:315 -msgid "Print document(s) to specified output file (use '| program' for pipe)" -msgstr "" - -#: ../src/main.cpp:320 -msgid "Export document to a PNG file" -msgstr "" - -#: ../src/main.cpp:325 -msgid "" -"Resolution for exporting to bitmap and for rasterization of filters in PS/" -"EPS/PDF (default 96)" -msgstr "" - -#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 -msgid "DPI" -msgstr "" - -#: ../src/main.cpp:330 -msgid "" -"Exported area in SVG user units (default is the page; 0,0 is lower-left " -"corner)" -msgstr "" - -#: ../src/main.cpp:331 -msgid "x0:y0:x1:y1" -msgstr "" - -#: ../src/main.cpp:335 -msgid "Exported area is the entire drawing (not page)" -msgstr "" - -#: ../src/main.cpp:340 -msgid "Exported area is the entire page" -msgstr "" - -#: ../src/main.cpp:345 -msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" -msgstr "" - -#: ../src/main.cpp:346 ../src/main.cpp:388 -msgid "VALUE" -msgstr "" - -#: ../src/main.cpp:350 -msgid "" -"Snap the bitmap export area outwards to the nearest integer values (in SVG " -"user units)" -msgstr "" - -#: ../src/main.cpp:355 -msgid "The width of exported bitmap in pixels (overrides export-dpi)" -msgstr "" - -#: ../src/main.cpp:356 -msgid "WIDTH" -msgstr "" - -#: ../src/main.cpp:360 -msgid "The height of exported bitmap in pixels (overrides export-dpi)" -msgstr "" - -#: ../src/main.cpp:361 -msgid "HEIGHT" -msgstr "" - -#: ../src/main.cpp:365 -msgid "The ID of the object to export" -msgstr "" - -#: ../src/main.cpp:366 ../src/main.cpp:479 -#: ../src/ui/dialog/inkscape-preferences.cpp:1514 -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:372 -msgid "" -"Export just the object with export-id, hide all others (only with export-id)" -msgstr "" - -#: ../src/main.cpp:377 -msgid "Use stored filename and DPI hints when exporting (only with export-id)" -msgstr "" - -#: ../src/main.cpp:382 -msgid "Background color of exported bitmap (any SVG-supported color string)" -msgstr "" - -#: ../src/main.cpp:383 -msgid "COLOR" -msgstr "" - -#: ../src/main.cpp:387 -msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" -msgstr "" - -#: ../src/main.cpp:392 -msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" -msgstr "" - -#: ../src/main.cpp:397 -msgid "Export document to a PS file" -msgstr "" - -#: ../src/main.cpp:402 -msgid "Export document to an EPS file" -msgstr "" - -#: ../src/main.cpp:407 -msgid "" -"Choose the PostScript Level used to export. Possible choices are 2 (the " -"default) and 3" -msgstr "" - -#: ../src/main.cpp:409 -msgid "PS Level" -msgstr "" - -#: ../src/main.cpp:413 -msgid "Export document to a PDF file" -msgstr "" - -#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" -#: ../src/main.cpp:419 -msgid "" -"Export PDF to given version. (hint: make sure to input the exact string " -"found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" -msgstr "" - -#: ../src/main.cpp:420 -msgid "PDF_VERSION" -msgstr "" - -#: ../src/main.cpp:424 -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:429 -msgid "Export document to an Enhanced Metafile (EMF) File" -msgstr "" - -#: ../src/main.cpp:434 -msgid "Export document to a Windows Metafile (WMF) File" -msgstr "" - -#: ../src/main.cpp:439 -msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" -msgstr "" - -#: ../src/main.cpp:444 -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:450 -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:456 -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:462 -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:468 -msgid "" -"Query the height of the drawing or, if specified, of the object with --query-" -"id" -msgstr "" - -#: ../src/main.cpp:473 -msgid "List id,x,y,w,h for all objects" -msgstr "" - -#: ../src/main.cpp:478 -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:484 -msgid "Print out the extension directory and exit" -msgstr "" - -#: ../src/main.cpp:489 -msgid "Remove unused definitions from the defs section(s) of the document" -msgstr "" - -#: ../src/main.cpp:495 -msgid "Enter a listening loop for D-Bus messages in console mode" -msgstr "" - -#: ../src/main.cpp:500 -msgid "" -"Specify the D-Bus bus name to listen for messages on (default is org." -"inkscape)" -msgstr "" - -#: ../src/main.cpp:501 -msgid "BUS-NAME" -msgstr "" - -#: ../src/main.cpp:506 -msgid "List the IDs of all the verbs in Inkscape" -msgstr "" - -#: ../src/main.cpp:511 -msgid "Verb to call when Inkscape opens." -msgstr "" - -#: ../src/main.cpp:512 -msgid "VERB-ID" -msgstr "" - -#: ../src/main.cpp:516 -msgid "Object ID to select when Inkscape opens." -msgstr "" - -#: ../src/main.cpp:517 -msgid "OBJECT-ID" -msgstr "" - -#: ../src/main.cpp:521 -msgid "Start Inkscape in interactive shell mode." -msgstr "" - -#: ../src/main.cpp:871 ../src/main.cpp:1283 -msgid "" -"[OPTIONS...] [FILE...]\n" -"\n" -"Available options:" -msgstr "" - -#. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 -msgid "_File" -msgstr "" - -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 -msgid "_Edit" -msgstr "" - -#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 -msgid "Paste Si_ze" -msgstr "" - -#: ../src/menus-skeleton.h:63 -msgid "Clo_ne" -msgstr "" - -#: ../src/menus-skeleton.h:77 -msgid "Select Sa_me" -msgstr "" - -#: ../src/menus-skeleton.h:95 -msgid "_View" -msgstr "" - -#: ../src/menus-skeleton.h:96 -msgid "_Zoom" -msgstr "" - -#: ../src/menus-skeleton.h:112 -msgid "_Display mode" -msgstr "" - -#. Better location in menu needs to be found -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:121 -msgid "_Color display mode" -msgstr "" - -#. Better location in menu needs to be found -#. " \n" -#. " \n" -#: ../src/menus-skeleton.h:134 -msgid "Sh_ow/Hide" -msgstr "" - -#. Not quite ready to be in the menus. -#. " \n" -#: ../src/menus-skeleton.h:154 -msgid "_Layer" -msgstr "" - -#: ../src/menus-skeleton.h:178 -msgid "_Object" -msgstr "" - -#: ../src/menus-skeleton.h:189 -msgid "Cli_p" -msgstr "" - -#: ../src/menus-skeleton.h:193 -msgid "Mas_k" -msgstr "" - -#: ../src/menus-skeleton.h:197 -msgid "Patter_n" -msgstr "" - -#: ../src/menus-skeleton.h:221 -msgid "_Path" -msgstr "" - -#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:77 -#: ../src/ui/dialog/text-edit.cpp:71 -msgid "_Text" -msgstr "" - -#: ../src/menus-skeleton.h:267 -msgid "Filter_s" -msgstr "" - -#: ../src/menus-skeleton.h:273 -msgid "Exte_nsions" -msgstr "" - -#: ../src/menus-skeleton.h:279 -msgid "_Help" -msgstr "" - -#: ../src/menus-skeleton.h:283 -msgid "Tutorials" -msgstr "" - -#: ../src/path-chemistry.cpp:54 -msgid "Select object(s) to combine." -msgstr "" - -#: ../src/path-chemistry.cpp:58 -msgid "Combining paths..." -msgstr "" - -#: ../src/path-chemistry.cpp:174 -msgid "Combine" -msgstr "" - -#: ../src/path-chemistry.cpp:181 -msgid "No path(s) to combine in the selection." -msgstr "" - -#: ../src/path-chemistry.cpp:193 -msgid "Select path(s) to break apart." -msgstr "" - -#: ../src/path-chemistry.cpp:197 -msgid "Breaking apart paths..." -msgstr "" - -#: ../src/path-chemistry.cpp:287 -msgid "Break apart" -msgstr "" - -#: ../src/path-chemistry.cpp:289 -msgid "No path(s) to break apart in the selection." -msgstr "" - -#: ../src/path-chemistry.cpp:299 -msgid "Select object(s) to convert to path." -msgstr "" - -#: ../src/path-chemistry.cpp:305 -msgid "Converting objects to paths..." -msgstr "" - -#: ../src/path-chemistry.cpp:327 -msgid "Object to path" -msgstr "" - -#: ../src/path-chemistry.cpp:329 -msgid "No objects to convert to path in the selection." -msgstr "" - -#: ../src/path-chemistry.cpp:618 -msgid "Select path(s) to reverse." -msgstr "" - -#: ../src/path-chemistry.cpp:627 -msgid "Reversing paths..." -msgstr "" - -#: ../src/path-chemistry.cpp:662 -msgid "Reverse path" -msgstr "" - -#: ../src/path-chemistry.cpp:664 -msgid "No paths to reverse in the selection." -msgstr "" - -#: ../src/persp3d.cpp:333 -msgid "Toggle vanishing point" -msgstr "" - -#: ../src/persp3d.cpp:344 -msgid "Toggle multiple vanishing points" -msgstr "" - -#: ../src/preferences-skeleton.h:102 -msgid "Dip pen" -msgstr "" - -#: ../src/preferences-skeleton.h:103 -msgid "Marker" -msgstr "" - -#: ../src/preferences-skeleton.h:104 -msgid "Brush" -msgstr "" - -#: ../src/preferences-skeleton.h:105 -msgid "Wiggly" -msgstr "" - -#: ../src/preferences-skeleton.h:106 -msgid "Splotchy" -msgstr "" - -#: ../src/preferences-skeleton.h:107 -msgid "Tracing" -msgstr "" - -#: ../src/preferences.cpp:136 -msgid "" -"Inkscape will run with default settings, and new settings will not be saved. " -msgstr "" - -#. the creation failed -#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:151 -#, c-format -msgid "Cannot create profile directory %s." -msgstr "" - -#. The profile dir is not actually a directory -#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), -#. Glib::filename_to_utf8(_prefs_dir)), not_saved); -#: ../src/preferences.cpp:169 -#, c-format -msgid "%s is not a valid directory." -msgstr "" - -#. The write failed. -#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), -#. Glib::filename_to_utf8(_prefs_filename)), not_saved); -#: ../src/preferences.cpp:180 -#, c-format -msgid "Failed to create the preferences file %s." -msgstr "" - -#: ../src/preferences.cpp:216 -#, c-format -msgid "The preferences file %s is not a regular file." -msgstr "" - -#: ../src/preferences.cpp:226 -#, c-format -msgid "The preferences file %s could not be read." -msgstr "" - -#: ../src/preferences.cpp:237 -#, c-format -msgid "The preferences file %s is not a valid XML document." -msgstr "" - -#: ../src/preferences.cpp:246 -#, c-format -msgid "The file %s is not a valid Inkscape preferences file." -msgstr "" - -#: ../src/rdf.cpp:175 -msgid "CC Attribution" -msgstr "" - -#: ../src/rdf.cpp:180 -msgid "CC Attribution-ShareAlike" -msgstr "" - -#: ../src/rdf.cpp:185 -msgid "CC Attribution-NoDerivs" -msgstr "" - -#: ../src/rdf.cpp:190 -msgid "CC Attribution-NonCommercial" -msgstr "" - -#: ../src/rdf.cpp:195 -msgid "CC Attribution-NonCommercial-ShareAlike" -msgstr "" - -#: ../src/rdf.cpp:200 -msgid "CC Attribution-NonCommercial-NoDerivs" -msgstr "" - -#: ../src/rdf.cpp:205 -msgid "CC0 Public Domain Dedication" -msgstr "" - -#: ../src/rdf.cpp:210 -msgid "FreeArt" -msgstr "" - -#: ../src/rdf.cpp:215 -msgid "Open Font License" -msgstr "" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 -msgid "Title:" -msgstr "" - -#: ../src/rdf.cpp:236 -msgid "A name given to the resource" -msgstr "" - -#: ../src/rdf.cpp:238 -msgid "Date:" -msgstr "" - -#: ../src/rdf.cpp:239 -msgid "" -"A point or period of time associated with an event in the lifecycle of the " -"resource" -msgstr "" - -#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 -msgid "Format:" -msgstr "" - -#: ../src/rdf.cpp:242 -msgid "The file format, physical medium, or dimensions of the resource" -msgstr "" - -#: ../src/rdf.cpp:245 -msgid "The nature or genre of the resource" -msgstr "" - -#: ../src/rdf.cpp:248 -msgid "Creator:" -msgstr "" - -#: ../src/rdf.cpp:249 -msgid "An entity primarily responsible for making the resource" -msgstr "" - -#: ../src/rdf.cpp:251 -msgid "Rights:" -msgstr "" - -#: ../src/rdf.cpp:252 -msgid "Information about rights held in and over the resource" -msgstr "" - -#: ../src/rdf.cpp:254 -msgid "Publisher:" -msgstr "" - -#: ../src/rdf.cpp:255 -msgid "An entity responsible for making the resource available" -msgstr "" - -#: ../src/rdf.cpp:258 -msgid "Identifier:" -msgstr "" - -#: ../src/rdf.cpp:259 -msgid "An unambiguous reference to the resource within a given context" -msgstr "" - -#: ../src/rdf.cpp:262 -msgid "A related resource from which the described resource is derived" -msgstr "" - -#: ../src/rdf.cpp:264 -msgid "Relation:" -msgstr "" - -#: ../src/rdf.cpp:265 -msgid "A related resource" -msgstr "" - -#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1870 -msgid "Language:" -msgstr "" - -#: ../src/rdf.cpp:268 -msgid "A language of the resource" -msgstr "" - -#: ../src/rdf.cpp:270 -msgid "Keywords:" -msgstr "" - -#: ../src/rdf.cpp:271 -msgid "The topic of the resource" -msgstr "" - -#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. -#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ -#: ../src/rdf.cpp:275 -msgid "Coverage:" -msgstr "" - -#: ../src/rdf.cpp:276 -msgid "" -"The spatial or temporal topic of the resource, the spatial applicability of " -"the resource, or the jurisdiction under which the resource is relevant" -msgstr "" - -#: ../src/rdf.cpp:279 -msgid "Description:" -msgstr "" - -#: ../src/rdf.cpp:280 -msgid "An account of the resource" -msgstr "" - -#. FIXME: need to handle 1 agent per line of input -#: ../src/rdf.cpp:284 -msgid "Contributors:" -msgstr "" - -#: ../src/rdf.cpp:285 -msgid "An entity responsible for making contributions to the resource" -msgstr "" - -#. TRANSLATORS: URL to a page that defines the license for the document -#: ../src/rdf.cpp:289 -msgid "URI:" -msgstr "" - -#. TRANSLATORS: this is where you put a URL to a page that defines the license -#: ../src/rdf.cpp:291 -msgid "URI to this document's license's namespace definition" -msgstr "" - -#. TRANSLATORS: fragment of XML representing the license of the document -#: ../src/rdf.cpp:295 -msgid "Fragment:" -msgstr "" - -#: ../src/rdf.cpp:296 -msgid "XML fragment for the RDF 'License' section" -msgstr "" - -#: ../src/resource-manager.cpp:332 -msgid "Fixup broken links" -msgstr "" - -#: ../src/selection-chemistry.cpp:406 -msgid "Delete text" -msgstr "" - -#: ../src/selection-chemistry.cpp:414 -msgid "Nothing was deleted." -msgstr "" - -#: ../src/selection-chemistry.cpp:433 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:974 -#: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1178 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-toolbar.cpp:1206 -#: ../src/widgets/node-toolbar.cpp:401 -msgid "Delete" -msgstr "" - -#: ../src/selection-chemistry.cpp:461 -msgid "Select object(s) to duplicate." -msgstr "" - -#: ../src/selection-chemistry.cpp:572 -msgid "Delete all" -msgstr "" - -#: ../src/selection-chemistry.cpp:763 -msgid "Select some objects to group." -msgstr "" - -#: ../src/selection-chemistry.cpp:778 -msgctxt "Verb" -msgid "Group" -msgstr "" - -#: ../src/selection-chemistry.cpp:801 -msgid "Select a group to ungroup." -msgstr "" - -#: ../src/selection-chemistry.cpp:816 -msgid "No groups to ungroup in the selection." -msgstr "" - -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:571 -msgid "Ungroup" -msgstr "" - -#: ../src/selection-chemistry.cpp:956 -msgid "Select object(s) to raise." -msgstr "" - -#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1019 -#: ../src/selection-chemistry.cpp:1047 ../src/selection-chemistry.cpp:1109 -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:1003 -msgctxt "Undo action" -msgid "Raise" -msgstr "" - -#: ../src/selection-chemistry.cpp:1011 -msgid "Select object(s) to raise to top." -msgstr "" - -#: ../src/selection-chemistry.cpp:1034 -msgid "Raise to top" -msgstr "" - -#: ../src/selection-chemistry.cpp:1041 -msgid "Select object(s) to lower." -msgstr "" - -#. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1093 -msgctxt "Undo action" -msgid "Lower" -msgstr "" - -#: ../src/selection-chemistry.cpp:1101 -msgid "Select object(s) to lower to bottom." -msgstr "" - -#: ../src/selection-chemistry.cpp:1136 -msgid "Lower to bottom" -msgstr "" - -#: ../src/selection-chemistry.cpp:1146 -msgid "Nothing to undo." -msgstr "" - -#: ../src/selection-chemistry.cpp:1157 -msgid "Nothing to redo." -msgstr "" - -#: ../src/selection-chemistry.cpp:1229 -msgid "Paste" -msgstr "" - -#: ../src/selection-chemistry.cpp:1237 -msgid "Paste style" -msgstr "" - -#: ../src/selection-chemistry.cpp:1247 -msgid "Paste live path effect" -msgstr "" - -#: ../src/selection-chemistry.cpp:1269 -msgid "Select object(s) to remove live path effects from." -msgstr "" - -#: ../src/selection-chemistry.cpp:1281 -msgid "Remove live path effect" -msgstr "" - -#: ../src/selection-chemistry.cpp:1292 -msgid "Select object(s) to remove filters from." -msgstr "" - -#: ../src/selection-chemistry.cpp:1302 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 -msgid "Remove filter" -msgstr "" - -#: ../src/selection-chemistry.cpp:1311 -msgid "Paste size" -msgstr "" - -#: ../src/selection-chemistry.cpp:1320 -msgid "Paste size separately" -msgstr "" - -#: ../src/selection-chemistry.cpp:1330 -msgid "Select object(s) to move to the layer above." -msgstr "" - -#: ../src/selection-chemistry.cpp:1356 -msgid "Raise to next layer" -msgstr "" - -#: ../src/selection-chemistry.cpp:1363 -msgid "No more layers above." -msgstr "" - -#: ../src/selection-chemistry.cpp:1375 -msgid "Select object(s) to move to the layer below." -msgstr "" - -#: ../src/selection-chemistry.cpp:1401 -msgid "Lower to previous layer" -msgstr "" - -#: ../src/selection-chemistry.cpp:1408 -msgid "No more layers below." -msgstr "" - -#: ../src/selection-chemistry.cpp:1420 -msgid "Select object(s) to move." -msgstr "" - -#: ../src/selection-chemistry.cpp:1437 ../src/verbs.cpp:2656 -msgid "Move selection to layer" -msgstr "" - -#. An SVG element cannot have a transform. We could change 'x' and 'y' in response -#. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1527 ../src/seltrans.cpp:388 -msgid "Cannot transform an embedded SVG." -msgstr "" - -#: ../src/selection-chemistry.cpp:1698 -msgid "Remove transform" -msgstr "" - -#: ../src/selection-chemistry.cpp:1805 -msgid "Rotate 90° CCW" -msgstr "" - -#: ../src/selection-chemistry.cpp:1805 -msgid "Rotate 90° CW" -msgstr "" - -#: ../src/selection-chemistry.cpp:1826 ../src/seltrans.cpp:483 -#: ../src/ui/dialog/transformation.cpp:893 -msgid "Rotate" -msgstr "" - -#: ../src/selection-chemistry.cpp:2214 -msgid "Rotate by pixels" -msgstr "" - -#: ../src/selection-chemistry.cpp:2244 ../src/seltrans.cpp:480 -#: ../src/ui/dialog/transformation.cpp:868 -#: ../share/extensions/interp_att_g.inx.h:12 -msgid "Scale" -msgstr "" - -#: ../src/selection-chemistry.cpp:2269 -msgid "Scale by whole factor" -msgstr "" - -#: ../src/selection-chemistry.cpp:2284 -msgid "Move vertically" -msgstr "" - -#: ../src/selection-chemistry.cpp:2287 -msgid "Move horizontally" -msgstr "" - -#: ../src/selection-chemistry.cpp:2290 ../src/selection-chemistry.cpp:2316 -#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 -msgid "Move" -msgstr "" - -#: ../src/selection-chemistry.cpp:2310 -msgid "Move vertically by pixels" -msgstr "" - -#: ../src/selection-chemistry.cpp:2313 -msgid "Move horizontally by pixels" -msgstr "" - -#: ../src/selection-chemistry.cpp:2445 -msgid "The selection has no applied path effect." -msgstr "" - -#: ../src/selection-chemistry.cpp:2617 ../src/ui/dialog/clonetiler.cpp:2223 -msgid "Select an object to clone." -msgstr "" - -#: ../src/selection-chemistry.cpp:2653 -msgctxt "Action" -msgid "Clone" -msgstr "" - -#: ../src/selection-chemistry.cpp:2669 -msgid "Select clones to relink." -msgstr "" - -#: ../src/selection-chemistry.cpp:2676 -msgid "Copy an object to clipboard to relink clones to." -msgstr "" - -#: ../src/selection-chemistry.cpp:2699 -msgid "No clones to relink in the selection." -msgstr "" - -#: ../src/selection-chemistry.cpp:2702 -msgid "Relink clone" -msgstr "" - -#: ../src/selection-chemistry.cpp:2716 -msgid "Select clones to unlink." -msgstr "" - -#: ../src/selection-chemistry.cpp:2772 -msgid "No clones to unlink in the selection." -msgstr "" - -#: ../src/selection-chemistry.cpp:2776 -msgid "Unlink clone" -msgstr "" - -#: ../src/selection-chemistry.cpp:2789 -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:2837 -msgid "" -"Cannot find the object to select (orphaned clone, offset, textpath, " -"flowed text?)" -msgstr "" - -#: ../src/selection-chemistry.cpp:2843 -msgid "" -"The object you're trying to select is not visible (it is in <" -"defs>)" -msgstr "" - -#: ../src/selection-chemistry.cpp:2932 -msgid "Select path(s) to fill." -msgstr "" - -#: ../src/selection-chemistry.cpp:2950 -msgid "Select object(s) to convert to marker." -msgstr "" - -#: ../src/selection-chemistry.cpp:3025 -msgid "Objects to marker" -msgstr "" - -#: ../src/selection-chemistry.cpp:3050 -msgid "Select object(s) to convert to guides." -msgstr "" - -#: ../src/selection-chemistry.cpp:3073 -msgid "Objects to guides" -msgstr "" - -#: ../src/selection-chemistry.cpp:3109 -msgid "Select objects to convert to symbol." -msgstr "" - -#: ../src/selection-chemistry.cpp:3212 -msgid "Group to symbol" -msgstr "" - -#: ../src/selection-chemistry.cpp:3231 -msgid "Select a symbol to extract objects from." -msgstr "" - -#: ../src/selection-chemistry.cpp:3240 -msgid "Select only one symbol in Symbol dialog to convert to group." -msgstr "" - -#: ../src/selection-chemistry.cpp:3298 -msgid "Group from symbol" -msgstr "" - -#: ../src/selection-chemistry.cpp:3316 -msgid "Select object(s) to convert to pattern." -msgstr "" - -#: ../src/selection-chemistry.cpp:3415 -msgid "Objects to pattern" -msgstr "" - -#: ../src/selection-chemistry.cpp:3431 -msgid "Select an object with pattern fill to extract objects from." -msgstr "" - -#: ../src/selection-chemistry.cpp:3492 -msgid "No pattern fills in the selection." -msgstr "" - -#: ../src/selection-chemistry.cpp:3495 -msgid "Pattern to objects" -msgstr "" - -#: ../src/selection-chemistry.cpp:3586 -msgid "Select object(s) to make a bitmap copy." -msgstr "" - -#: ../src/selection-chemistry.cpp:3590 -msgid "Rendering bitmap..." -msgstr "" - -#: ../src/selection-chemistry.cpp:3777 -msgid "Create bitmap" -msgstr "" - -#: ../src/selection-chemistry.cpp:3802 ../src/selection-chemistry.cpp:3921 -msgid "Select object(s) to create clippath or mask from." -msgstr "" - -#: ../src/selection-chemistry.cpp:3895 -msgid "Create Clip Group" -msgstr "" - -#: ../src/selection-chemistry.cpp:3924 -msgid "Select mask object and object(s) to apply clippath or mask to." -msgstr "" - -#: ../src/selection-chemistry.cpp:4105 -msgid "Set clipping path" -msgstr "" - -#: ../src/selection-chemistry.cpp:4107 -msgid "Set mask" -msgstr "" - -#: ../src/selection-chemistry.cpp:4122 -msgid "Select object(s) to remove clippath or mask from." -msgstr "" - -#: ../src/selection-chemistry.cpp:4242 -msgid "Release clipping path" -msgstr "" - -#: ../src/selection-chemistry.cpp:4244 -msgid "Release mask" -msgstr "" - -#: ../src/selection-chemistry.cpp:4263 -msgid "Select object(s) to fit canvas to." -msgstr "" - -#. Fit Page -#: ../src/selection-chemistry.cpp:4283 ../src/verbs.cpp:2992 -msgid "Fit Page to Selection" -msgstr "" - -#: ../src/selection-chemistry.cpp:4312 ../src/verbs.cpp:2994 -msgid "Fit Page to Drawing" -msgstr "" - -#: ../src/selection-chemistry.cpp:4333 ../src/verbs.cpp:2996 -msgid "Fit Page to Selection or Drawing" -msgstr "" - -#: ../src/selection-describer.cpp:138 -msgid "root" -msgstr "" - -#: ../src/selection-describer.cpp:140 ../src/widgets/ege-paint-def.cpp:66 -#: ../src/widgets/ege-paint-def.cpp:90 -msgid "none" -msgstr "" - -#: ../src/selection-describer.cpp:152 -#, c-format -msgid "layer %s" -msgstr "" - -#: ../src/selection-describer.cpp:154 -#, c-format -msgid "layer %s" -msgstr "" - -#: ../src/selection-describer.cpp:165 -#, c-format -msgid "%s" -msgstr "" - -#: ../src/selection-describer.cpp:175 -#, c-format -msgid " in %s" -msgstr "" - -#: ../src/selection-describer.cpp:177 -msgid " hidden in definitions" -msgstr "" - -#: ../src/selection-describer.cpp:179 -#, c-format -msgid " in group %s (%s)" -msgstr "" - -#: ../src/selection-describer.cpp:181 -#, c-format -msgid " in unnamed group (%s)" -msgstr "" - -#: ../src/selection-describer.cpp:183 -#, c-format -msgid " in %i parent (%s)" -msgid_plural " in %i parents (%s)" -msgstr[0] "" -msgstr[1] "" - -#: ../src/selection-describer.cpp:186 -#, c-format -msgid " in %i layer" -msgid_plural " in %i layers" -msgstr[0] "" -msgstr[1] "" - -#: ../src/selection-describer.cpp:198 -msgid "Convert symbol to group to edit" -msgstr "" - -#: ../src/selection-describer.cpp:202 -msgid "Remove from symbols tray to edit symbol" -msgstr "" - -#: ../src/selection-describer.cpp:208 -msgid "Use Shift+D to look up original" -msgstr "" - -#: ../src/selection-describer.cpp:214 -msgid "Use Shift+D to look up path" -msgstr "" - -#: ../src/selection-describer.cpp:220 -msgid "Use Shift+D to look up frame" -msgstr "" - -#: ../src/selection-describer.cpp:236 -#, c-format -msgid "%i objects selected of type %s" -msgid_plural "%i objects selected of types %s" -msgstr[0] "" -msgstr[1] "" - -#: ../src/selection-describer.cpp:246 -#, c-format -msgid "; %d filtered object " -msgid_plural "; %d filtered objects " -msgstr[0] "" -msgstr[1] "" - -#: ../src/seltrans-handles.cpp:9 -msgid "" -"Squeeze or stretch selection; with Ctrl to scale uniformly; " -"with Shift to scale around rotation center" -msgstr "" - -#: ../src/seltrans-handles.cpp:10 -msgid "" -"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" -msgstr "" - -#: ../src/seltrans-handles.cpp:11 -msgid "" -"Skew selection; with Ctrl to snap angle; with Shift to " -"skew around the opposite side" -msgstr "" - -#: ../src/seltrans-handles.cpp:12 -msgid "" -"Rotate selection; with Ctrl to snap angle; with Shift " -"to rotate around the opposite corner" -msgstr "" - -#: ../src/seltrans-handles.cpp:13 -msgid "" -"Center of rotation and skewing: drag to reposition; scaling with " -"Shift also uses this center" -msgstr "" - -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:981 -msgid "Skew" -msgstr "" - -#: ../src/seltrans.cpp:499 -msgid "Set center" -msgstr "" - -#: ../src/seltrans.cpp:574 -msgid "Stamp" -msgstr "" - -#: ../src/seltrans.cpp:723 -msgid "Reset center" -msgstr "" - -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 -#, 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 -#, 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:1274 -#, c-format -msgid "Rotate: %0.2f°; with Ctrl to snap angle" -msgstr "" - -#: ../src/seltrans.cpp:1311 -#, c-format -msgid "Move center to %s, %s" -msgstr "" - -#: ../src/seltrans.cpp:1465 -#, c-format -msgid "" -"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " -"with Shift to disable snapping" -msgstr "" - -#: ../src/shortcuts.cpp:226 -#, c-format -msgid "Keyboard directory (%s) is unavailable." -msgstr "" - -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1298 -#: ../src/ui/dialog/export.cpp:1332 -msgid "Select a filename for exporting" -msgstr "" - -#: ../src/shortcuts.cpp:370 -msgid "Select a file to import" -msgstr "" - -#: ../src/sp-anchor.cpp:125 -#, c-format -msgid "to %s" -msgstr "" - -#: ../src/sp-anchor.cpp:129 -msgid "without URI" -msgstr "" - -#: ../src/sp-ellipse.cpp:373 -msgid "Segment" -msgstr "" - -#: ../src/sp-ellipse.cpp:375 -msgid "Arc" -msgstr "" - -#. Ellipse -#: ../src/sp-ellipse.cpp:378 ../src/sp-ellipse.cpp:385 -#: ../src/ui/dialog/inkscape-preferences.cpp:412 -#: ../src/widgets/pencil-toolbar.cpp:163 -msgid "Ellipse" -msgstr "" - -#: ../src/sp-ellipse.cpp:382 -msgid "Circle" -msgstr "" - -#. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:195 -msgid "Flow Region" -msgstr "" - -#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the -#. * 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:348 -msgid "Flow Excluded Region" -msgstr "" - -#: ../src/sp-flowtext.cpp:290 -msgid "Flowed Text" -msgstr "" - -#: ../src/sp-flowtext.cpp:292 -msgid "Linked Flowed Text" -msgstr "" - -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:381 -#: ../src/ui/tools/text-tool.cpp:1566 -msgid " [truncated]" -msgstr "" - -#: ../src/sp-flowtext.cpp:300 -#, c-format -msgid "(%d character%s)" -msgid_plural "(%d characters%s)" -msgstr[0] "" -msgstr[1] "" - -#: ../src/sp-guide.cpp:249 -msgid "Create Guides Around the Page" -msgstr "" - -#: ../src/sp-guide.cpp:261 ../src/verbs.cpp:2549 -msgid "Delete All Guides" -msgstr "" - -#. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:448 -msgid "Deleted" -msgstr "" - -#: ../src/sp-guide.cpp:457 -msgid "" -"Shift+drag to rotate, Ctrl+drag to move origin, Del to " -"delete" -msgstr "" - -#: ../src/sp-guide.cpp:461 -#, c-format -msgid "vertical, at %s" -msgstr "" - -#: ../src/sp-guide.cpp:464 -#, c-format -msgid "horizontal, at %s" -msgstr "" - -#: ../src/sp-guide.cpp:469 -#, c-format -msgid "at %d degrees, through (%s,%s)" -msgstr "" - -#: ../src/sp-image.cpp:526 -msgid "embedded" -msgstr "" - -#: ../src/sp-image.cpp:534 -#, c-format -msgid "[bad reference]: %s" -msgstr "" - -#: ../src/sp-image.cpp:535 -#, c-format -msgid "%d × %d: %s" -msgstr "" - -#: ../src/sp-item-group.cpp:332 -msgid "Group" -msgstr "" - -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 -#, c-format -msgid "of %d object" -msgstr "" - -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 -#, c-format -msgid "of %d objects" -msgstr "" - -#: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 -msgid "Object" -msgstr "" - -#: ../src/sp-item.cpp:1063 -#, c-format -msgid "%s; clipped" -msgstr "" - -#: ../src/sp-item.cpp:1069 -#, c-format -msgid "%s; masked" -msgstr "" - -#: ../src/sp-item.cpp:1079 -#, c-format -msgid "%s; filtered (%s)" -msgstr "" - -#: ../src/sp-item.cpp:1081 -#, c-format -msgid "%s; filtered" -msgstr "" - -#: ../src/sp-line.cpp:126 -msgid "Line" -msgstr "" - -#: ../src/sp-lpe-item.cpp:260 -msgid "An exception occurred during execution of the Path Effect." -msgstr "" - -#: ../src/sp-offset.cpp:339 -msgid "Linked Offset" -msgstr "" - -#: ../src/sp-offset.cpp:341 -msgid "Dynamic Offset" -msgstr "" - -#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:347 -#, c-format -msgid "%s by %f pt" -msgstr "" - -#: ../src/sp-offset.cpp:348 -msgid "outset" -msgstr "" - -#: ../src/sp-offset.cpp:348 -msgid "inset" -msgstr "" - -#: ../src/sp-path.cpp:70 -msgid "Path" -msgstr "" - -#: ../src/sp-path.cpp:95 -#, c-format -msgid ", path effect: %s" -msgstr "" - -#: ../src/sp-path.cpp:98 -#, c-format -msgid "%i node%s" -msgstr "" - -#: ../src/sp-path.cpp:98 -#, c-format -msgid "%i nodes%s" -msgstr "" - -#: ../src/sp-polygon.cpp:185 -msgid "Polygon" -msgstr "" - -#: ../src/sp-polyline.cpp:131 -msgid "Polyline" -msgstr "" - -#. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:402 -msgid "Rectangle" -msgstr "" - -#. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:420 -#: ../share/extensions/gcodetools_area.inx.h:11 -msgid "Spiral" -msgstr "" - -#. TRANSLATORS: since turn count isn't an integer, please adjust the -#. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 -#, c-format -msgid "with %3f turns" -msgstr "" - -#. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:416 -#: ../src/widgets/star-toolbar.cpp:471 -msgid "Star" -msgstr "" - -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:464 -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:264 -#, c-format -msgid "with %d vertex" -msgstr "" - -#: ../src/sp-star.cpp:264 -#, c-format -msgid "with %d vertices" -msgstr "" - -#: ../src/sp-switch.cpp:76 -msgid "Conditional Group" -msgstr "" - -#: ../src/sp-text.cpp:365 ../src/verbs.cpp:348 -#: ../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 -#: ../share/extensions/text_extract.inx.h:14 -#: ../share/extensions/text_flipcase.inx.h:2 -#: ../share/extensions/text_lowercase.inx.h:2 -#: ../share/extensions/text_merge.inx.h:16 -#: ../share/extensions/text_randomcase.inx.h:2 -#: ../share/extensions/text_sentencecase.inx.h:2 -#: ../share/extensions/text_titlecase.inx.h:2 -#: ../share/extensions/text_uppercase.inx.h:2 -msgid "Text" -msgstr "" - -#: ../src/sp-text.cpp:385 -#, c-format -msgid "on path%s (%s, %s)" -msgstr "" - -#: ../src/sp-text.cpp:386 -#, c-format -msgid "%s (%s, %s)" -msgstr "" - -#: ../src/sp-tref.cpp:230 -msgid "Cloned Character Data" -msgstr "" - -#: ../src/sp-tref.cpp:246 -msgid " from " -msgstr "" - -#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:281 -msgid "[orphaned]" -msgstr "" - -#: ../src/sp-tspan.cpp:218 -msgid "Text Span" -msgstr "" - -#: ../src/sp-use.cpp:244 -msgid "Symbol" -msgstr "" - -#: ../src/sp-use.cpp:246 -msgid "Clone" -msgstr "" - -#: ../src/sp-use.cpp:254 ../src/sp-use.cpp:256 ../src/sp-use.cpp:258 -#, c-format -msgid "called %s" -msgstr "" - -#: ../src/sp-use.cpp:258 -msgid "Unnamed Symbol" -msgstr "" - -#. TRANSLATORS: Used for statusbar description for long chains: -#. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:267 -msgid "..." -msgstr "" - -#: ../src/sp-use.cpp:276 -#, c-format -msgid "of: %s" -msgstr "" - -#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 -msgid "Union" -msgstr "" - -#: ../src/splivarot.cpp:82 -msgid "Intersection" -msgstr "" - -#: ../src/splivarot.cpp:105 -msgid "Division" -msgstr "" - -#: ../src/splivarot.cpp:110 -msgid "Cut path" -msgstr "" - -#: ../src/splivarot.cpp:333 -msgid "Select at least 2 paths to perform a boolean operation." -msgstr "" - -#: ../src/splivarot.cpp:337 -msgid "Select at least 1 path to perform a boolean union." -msgstr "" - -#: ../src/splivarot.cpp:345 -msgid "" -"Select exactly 2 paths to perform difference, division, or path cut." -msgstr "" - -#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 -msgid "" -"Unable to determine the z-order of the objects selected for " -"difference, XOR, division, or path cut." -msgstr "" - -#: ../src/splivarot.cpp:407 -msgid "" -"One of the objects is not a path, cannot perform boolean operation." -msgstr "" - -#: ../src/splivarot.cpp:1157 -msgid "Select stroked path(s) to convert stroke to path." -msgstr "" - -#: ../src/splivarot.cpp:1516 -msgid "Convert stroke to path" -msgstr "" - -#. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 -msgid "No stroked paths in the selection." -msgstr "" - -#: ../src/splivarot.cpp:1590 -msgid "Selected object is not a path, cannot inset/outset." -msgstr "" - -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 -msgid "Create linked offset" -msgstr "" - -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 -msgid "Create dynamic offset" -msgstr "" - -#: ../src/splivarot.cpp:1772 -msgid "Select path(s) to inset/outset." -msgstr "" - -#: ../src/splivarot.cpp:1968 -msgid "Outset path" -msgstr "" - -#: ../src/splivarot.cpp:1968 -msgid "Inset path" -msgstr "" - -#: ../src/splivarot.cpp:1970 -msgid "No paths to inset/outset in the selection." -msgstr "" - -#: ../src/splivarot.cpp:2132 -msgid "Simplifying paths (separately):" -msgstr "" - -#: ../src/splivarot.cpp:2134 -msgid "Simplifying paths:" -msgstr "" - -#: ../src/splivarot.cpp:2171 -#, c-format -msgid "%s %d of %d paths simplified..." -msgstr "" - -#: ../src/splivarot.cpp:2184 -#, c-format -msgid "%d paths simplified." -msgstr "" - -#: ../src/splivarot.cpp:2198 -msgid "Select path(s) to simplify." -msgstr "" - -#: ../src/splivarot.cpp:2214 -msgid "No paths to simplify in the selection." -msgstr "" - -#: ../src/text-chemistry.cpp:94 -msgid "Select a text and a path to put text on path." -msgstr "" - -#: ../src/text-chemistry.cpp:99 -msgid "" -"This text object is already put on a path. Remove it from the path " -"first. Use Shift+D to look up its path." -msgstr "" - -#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 -msgid "" -"You cannot put text on a rectangle in this version. Convert rectangle to " -"path first." -msgstr "" - -#: ../src/text-chemistry.cpp:115 -msgid "The flowed text(s) must be visible in order to be put on a path." -msgstr "" - -#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2571 -msgid "Put text on path" -msgstr "" - -#: ../src/text-chemistry.cpp:197 -msgid "Select a text on path to remove it from path." -msgstr "" - -#: ../src/text-chemistry.cpp:218 -msgid "No texts-on-paths in the selection." -msgstr "" - -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 -msgid "Remove text from path" -msgstr "" - -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 -msgid "Select text(s) to remove kerns from." -msgstr "" - -#: ../src/text-chemistry.cpp:286 -msgid "Remove manual kerns" -msgstr "" - -#: ../src/text-chemistry.cpp:306 -msgid "" -"Select a text and one or more paths or shapes to flow text " -"into frame." -msgstr "" - -#: ../src/text-chemistry.cpp:376 -msgid "Flow text into shape" -msgstr "" - -#: ../src/text-chemistry.cpp:398 -msgid "Select a flowed text to unflow it." -msgstr "" - -#: ../src/text-chemistry.cpp:472 -msgid "Unflow flowed text" -msgstr "" - -#: ../src/text-chemistry.cpp:484 -msgid "Select flowed text(s) to convert." -msgstr "" - -#: ../src/text-chemistry.cpp:502 -msgid "The flowed text(s) must be visible in order to be converted." -msgstr "" - -#: ../src/text-chemistry.cpp:530 -msgid "Convert flowed text to text" -msgstr "" - -#: ../src/text-chemistry.cpp:535 -msgid "No flowed text(s) to convert in the selection." -msgstr "" - -#: ../src/text-editing.cpp:44 -msgid "You cannot edit cloned character data." -msgstr "" - -#: ../src/trace/potrace/inkscape-potrace.cpp:512 -#: ../src/trace/potrace/inkscape-potrace.cpp:575 -msgid "Trace: %1. %2 nodes" -msgstr "" - -#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 -#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 -#: ../src/ui/dialog/pixelartdialog.cpp:370 -#: ../src/ui/dialog/pixelartdialog.cpp:402 -msgid "Select an image to trace" -msgstr "" - -#: ../src/trace/trace.cpp:94 -msgid "Select only one image to trace" -msgstr "" - -#: ../src/trace/trace.cpp:112 -msgid "Select one image and one or more shapes above it" -msgstr "" - -#: ../src/trace/trace.cpp:216 -msgid "Trace: No active desktop" -msgstr "" - -#: ../src/trace/trace.cpp:313 -msgid "Invalid SIOX result" -msgstr "" - -#: ../src/trace/trace.cpp:406 -msgid "Trace: No active document" -msgstr "" - -#: ../src/trace/trace.cpp:438 -msgid "Trace: Image has no bitmap data" -msgstr "" - -#: ../src/trace/trace.cpp:445 -msgid "Trace: Starting trace..." -msgstr "" - -#. ## inform the document, so we can undo -#: ../src/trace/trace.cpp:548 -msgid "Trace bitmap" -msgstr "" - -#: ../src/trace/trace.cpp:552 -#, c-format -msgid "Trace: Done. %ld nodes created" -msgstr "" - -#. check whether something is selected -#: ../src/ui/clipboard.cpp:262 -msgid "Nothing was copied." -msgstr "" - -#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 -#: ../src/ui/clipboard.cpp:634 -msgid "Nothing on the clipboard." -msgstr "" - -#: ../src/ui/clipboard.cpp:451 -msgid "Select object(s) to paste style to." -msgstr "" - -#: ../src/ui/clipboard.cpp:462 ../src/ui/clipboard.cpp:479 -msgid "No style on the clipboard." -msgstr "" - -#: ../src/ui/clipboard.cpp:504 -msgid "Select object(s) to paste size to." -msgstr "" - -#: ../src/ui/clipboard.cpp:511 -msgid "No size on the clipboard." -msgstr "" - -#: ../src/ui/clipboard.cpp:567 -msgid "Select object(s) to paste live path effect to." -msgstr "" - -#. no_effect: -#: ../src/ui/clipboard.cpp:592 -msgid "No effect on the clipboard." -msgstr "" - -#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 -msgid "Clipboard does not contain a path." -msgstr "" - -#. * -#. * Constructor -#. -#: ../src/ui/dialog/aboutbox.cpp:80 -msgid "About Inkscape" -msgstr "" - -#: ../src/ui/dialog/aboutbox.cpp:91 -msgid "_Splash" -msgstr "" - -#: ../src/ui/dialog/aboutbox.cpp:95 -msgid "_Authors" -msgstr "" - -#: ../src/ui/dialog/aboutbox.cpp:97 -msgid "_Translators" -msgstr "" - -#: ../src/ui/dialog/aboutbox.cpp:99 -msgid "_License" -msgstr "" - -#. 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. -#. -#. N.B. about.svg changes once per release. (We should probably rename -#. the original to about-0.40.svg etc. as soon as we have a translation. -#. If we do so, then add an item to release-checklist saying that the -#. string here should be changed.) -#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the -#. native filename encoding... and the filename passed to sp_document_new -#. should be in UTF-*8.. -#: ../src/ui/dialog/aboutbox.cpp:166 -msgid "about.svg" -msgstr "" - -#. TRANSLATORS: Put here your name (and other national contributors') -#. one per line in the form of: name surname (email). Use \n for newline. -#: ../src/ui/dialog/aboutbox.cpp:426 -msgid "translator-credits" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:851 -msgid "Align" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:852 -msgid "Distribute" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:420 -msgid "Minimum horizontal gap (in px units) between bounding boxes" -msgstr "" - -#. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:422 -msgctxt "Gap" -msgid "_H:" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:430 -msgid "Minimum vertical gap (in px units) between bounding boxes" -msgstr "" - -#. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 -msgctxt "Gap" -msgid "_V:" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:467 -#: ../src/ui/dialog/align-and-distribute.cpp:854 -#: ../src/widgets/connector-toolbar.cpp:411 -msgid "Remove overlaps" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:498 -#: ../src/widgets/connector-toolbar.cpp:240 -msgid "Arrange connector network" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:591 -msgid "Exchange Positions" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:625 -msgid "Unclump" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:697 -msgid "Randomize positions" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:800 -msgid "Distribute text baselines" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:823 -msgid "Align text baselines" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:853 -msgid "Rearrange" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1727 -msgid "Nodes" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:869 -msgid "Relative to: " -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:870 -msgid "_Treat selection as group: " -msgstr "" - -#. Align -#: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 -#: ../src/verbs.cpp:3025 -msgid "Align right edges of objects to the left edge of the anchor" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:879 ../src/verbs.cpp:3026 -#: ../src/verbs.cpp:3027 -msgid "Align left edges" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 -#: ../src/verbs.cpp:3029 -msgid "Center on vertical axis" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 -#: ../src/verbs.cpp:3031 -msgid "Align right sides" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 -#: ../src/verbs.cpp:3033 -msgid "Align left edges of objects to the right edge of the anchor" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:891 ../src/verbs.cpp:3034 -#: ../src/verbs.cpp:3035 -msgid "Align bottom edges of objects to the top edge of the anchor" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:894 ../src/verbs.cpp:3036 -#: ../src/verbs.cpp:3037 -msgid "Align top edges" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 -#: ../src/verbs.cpp:3039 -msgid "Center on horizontal axis" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 -#: ../src/verbs.cpp:3041 -msgid "Align bottom edges" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 -#: ../src/verbs.cpp:3043 -msgid "Align top edges of objects to the bottom edge of the anchor" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:908 -msgid "Align baseline anchors of texts horizontally" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:911 -msgid "Align baselines of texts" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:916 -msgid "Make horizontal gaps between objects equal" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:920 -msgid "Distribute left edges equidistantly" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:923 -msgid "Distribute centers equidistantly horizontally" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:926 -msgid "Distribute right edges equidistantly" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:930 -msgid "Make vertical gaps between objects equal" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:934 -msgid "Distribute top edges equidistantly" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:937 -msgid "Distribute centers equidistantly vertically" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:940 -msgid "Distribute bottom edges equidistantly" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:945 -msgid "Distribute baseline anchors of texts horizontally" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:948 -msgid "Distribute baselines of texts vertically" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:954 -#: ../src/widgets/connector-toolbar.cpp:373 -msgid "Nicely arrange selected connector network" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:957 -msgid "Exchange positions of selected objects - selection order" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:960 -msgid "Exchange positions of selected objects - stacking order" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:963 -msgid "Exchange positions of selected objects - clockwise rotate" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:968 -msgid "Randomize centers in both dimensions" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:971 -msgid "Unclump objects: try to equalize edge-to-edge distances" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:976 -msgid "" -"Move objects as little as possible so that their bounding boxes do not " -"overlap" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:984 -msgid "Align selected nodes to a common horizontal line" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:987 -msgid "Align selected nodes to a common vertical line" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:990 -msgid "Distribute selected nodes horizontally" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:993 -msgid "Distribute selected nodes vertically" -msgstr "" - -#. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:998 -msgid "Last selected" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:999 -msgid "First selected" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:1000 -msgid "Biggest object" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:1001 -msgid "Smallest object" -msgstr "" - -#: ../src/ui/dialog/align-and-distribute.cpp:1004 -msgid "Selection Area" -msgstr "" - -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 -msgid "Edit profile" -msgstr "" - -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 -msgid "Profile name:" -msgstr "" - -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 -msgid "Save" -msgstr "" - -#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 -msgid "Add profile" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:110 -msgid "_Symmetry" -msgstr "" - -#. TRANSLATORS: "translation" means "shift" / "displacement" here. -#: ../src/ui/dialog/clonetiler.cpp:122 -msgid "P1: simple translation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:123 -msgid "P2: 180° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:124 -msgid "PM: reflection" -msgstr "" - -#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. -#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html -#: ../src/ui/dialog/clonetiler.cpp:127 -msgid "PG: glide reflection" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:128 -msgid "CM: reflection + glide reflection" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:129 -msgid "PMM: reflection + reflection" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:130 -msgid "PMG: reflection + 180° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:131 -msgid "PGG: glide reflection + 180° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:132 -msgid "CMM: reflection + reflection + 180° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:133 -msgid "P4: 90° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:134 -msgid "P4M: 90° rotation + 45° reflection" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:135 -msgid "P4G: 90° rotation + 90° reflection" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:136 -msgid "P3: 120° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:137 -msgid "P31M: reflection + 120° rotation, dense" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:138 -msgid "P3M1: reflection + 120° rotation, sparse" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:139 -msgid "P6: 60° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:140 -msgid "P6M: reflection + 60° rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:160 -msgid "Select one of the 17 symmetry groups for the tiling" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:178 -msgid "S_hift" -msgstr "" - -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount -#: ../src/ui/dialog/clonetiler.cpp:188 -#, no-c-format -msgid "Shift X:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:196 -#, no-c-format -msgid "Horizontal shift per row (in % of tile width)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:204 -#, no-c-format -msgid "Horizontal shift per column (in % of tile width)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:210 -msgid "Randomize the horizontal shift by this percentage" -msgstr "" - -#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount -#: ../src/ui/dialog/clonetiler.cpp:220 -#, no-c-format -msgid "Shift Y:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:228 -#, no-c-format -msgid "Vertical shift per row (in % of tile height)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:236 -#, no-c-format -msgid "Vertical shift per column (in % of tile height)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:243 -msgid "Randomize the vertical shift by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:251 ../src/ui/dialog/clonetiler.cpp:397 -msgid "Exponent:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:258 -msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:265 -msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" -msgstr "" - -#. TRANSLATORS: "Alternate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:273 ../src/ui/dialog/clonetiler.cpp:437 -#: ../src/ui/dialog/clonetiler.cpp:513 ../src/ui/dialog/clonetiler.cpp:586 -#: ../src/ui/dialog/clonetiler.cpp:632 ../src/ui/dialog/clonetiler.cpp:759 -msgid "Alternate:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:279 -msgid "Alternate the sign of shifts for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:284 -msgid "Alternate the sign of shifts for each column" -msgstr "" - -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:291 ../src/ui/dialog/clonetiler.cpp:455 -#: ../src/ui/dialog/clonetiler.cpp:531 -msgid "Cumulate:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:297 -msgid "Cumulate the shifts for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:302 -msgid "Cumulate the shifts for each column" -msgstr "" - -#. TRANSLATORS: "Cumulate" is a verb here -#: ../src/ui/dialog/clonetiler.cpp:309 -msgid "Exclude tile:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:315 -msgid "Exclude tile height in shift" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:320 -msgid "Exclude tile width in shift" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:329 -msgid "Sc_ale" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:337 -msgid "Scale X:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:345 -#, no-c-format -msgid "Horizontal scale per row (in % of tile width)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:353 -#, no-c-format -msgid "Horizontal scale per column (in % of tile width)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:359 -msgid "Randomize the horizontal scale by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:367 -msgid "Scale Y:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:375 -#, no-c-format -msgid "Vertical scale per row (in % of tile height)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:383 -#, no-c-format -msgid "Vertical scale per column (in % of tile height)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:389 -msgid "Randomize the vertical scale by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:403 -msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:409 -msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:417 -msgid "Base:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:423 ../src/ui/dialog/clonetiler.cpp:429 -msgid "" -"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:443 -msgid "Alternate the sign of scales for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:448 -msgid "Alternate the sign of scales for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:461 -msgid "Cumulate the scales for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:466 -msgid "Cumulate the scales for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:475 -msgid "_Rotation" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:483 -msgid "Angle:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:491 -#, no-c-format -msgid "Rotate tiles by this angle for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:499 -#, no-c-format -msgid "Rotate tiles by this angle for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:505 -msgid "Randomize the rotation angle by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:519 -msgid "Alternate the rotation direction for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:524 -msgid "Alternate the rotation direction for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:537 -msgid "Cumulate the rotation for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:542 -msgid "Cumulate the rotation for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:551 -msgid "_Blur & opacity" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:560 -msgid "Blur:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:566 -msgid "Blur tiles by this percentage for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:572 -msgid "Blur tiles by this percentage for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:578 -msgid "Randomize the tile blur by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:592 -msgid "Alternate the sign of blur change for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:597 -msgid "Alternate the sign of blur change for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:606 -msgid "Opacity:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:612 -msgid "Decrease tile opacity by this percentage for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:618 -msgid "Decrease tile opacity by this percentage for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:624 -msgid "Randomize the tile opacity by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:638 -msgid "Alternate the sign of opacity change for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:643 -msgid "Alternate the sign of opacity change for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:651 -msgid "Co_lor" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:661 -msgid "Initial color: " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:665 -msgid "Initial color of tiled clones" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:665 -msgid "" -"Initial color for clones (works only if the original has unset fill or " -"stroke)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:680 -msgid "H:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:686 -msgid "Change the tile hue by this percentage for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:692 -msgid "Change the tile hue by this percentage for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:698 -msgid "Randomize the tile hue by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:707 -msgid "S:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:713 -msgid "Change the color saturation by this percentage for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:719 -msgid "Change the color saturation by this percentage for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:725 -msgid "Randomize the color saturation by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:733 -msgid "L:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:739 -msgid "Change the color lightness by this percentage for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:745 -msgid "Change the color lightness by this percentage for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:751 -msgid "Randomize the color lightness by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:765 -msgid "Alternate the sign of color changes for each row" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:770 -msgid "Alternate the sign of color changes for each column" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:778 -msgid "_Trace" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:790 -msgid "Trace the drawing under the tiles" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:794 -msgid "" -"For each clone, pick a value from the drawing in that clone's location and " -"apply it to the clone" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:813 -msgid "1. Pick from the drawing:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:831 -msgid "Pick the visible color and opacity" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:839 -msgid "Pick the total accumulated opacity" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:846 -msgid "R" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:847 -msgid "Pick the Red component of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:854 -msgid "G" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:855 -msgid "Pick the Green component of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:862 -msgid "B" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:863 -msgid "Pick the Blue component of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:870 -msgctxt "Clonetiler color hue" -msgid "H" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:871 -msgid "Pick the hue of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:878 -msgctxt "Clonetiler color saturation" -msgid "S" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:879 -msgid "Pick the saturation of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:886 -msgctxt "Clonetiler color lightness" -msgid "L" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:887 -msgid "Pick the lightness of the color" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:897 -msgid "2. Tweak the picked value:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:914 -msgid "Gamma-correct:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:918 -msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:925 -msgid "Randomize:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:929 -msgid "Randomize the picked value by this percentage" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:936 -msgid "Invert:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:940 -msgid "Invert the picked value" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:946 -msgid "3. Apply the value to the clones':" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:961 -msgid "Presence" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:964 -msgid "" -"Each clone is created with the probability determined by the picked value in " -"that point" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:971 -msgid "Size" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:974 -msgid "Each clone's size is determined by the picked value in that point" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:984 -msgid "" -"Each clone is painted by the picked color (the original must have unset fill " -"or stroke)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:994 -msgid "Each clone's opacity is determined by the picked value in that point" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1042 -msgid "How many rows in the tiling" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1072 -msgid "How many columns in the tiling" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1117 -msgid "Width of the rectangle to be filled" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1150 -msgid "Height of the rectangle to be filled" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1167 -msgid "Rows, columns: " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1168 -msgid "Create the specified number of rows and columns" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1177 -msgid "Width, height: " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1178 -msgid "Fill the specified width and height with the tiling" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1199 -msgid "Use saved size and position of the tile" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1202 -msgid "" -"Pretend that the size and position of the tile are the same as the last time " -"you tiled it (if any), instead of using the current size" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1236 -msgid " _Create " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1238 -msgid "Create and tile the clones of the selection" -msgstr "" - -#. TRANSLATORS: if a group of objects are "clumped" together, then they -#. are unevenly spread in the given amount of space - as shown in the -#. diagrams on the left in the following screenshot: -#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png -#. So unclumping is the process of spreading a number of objects out more evenly. -#: ../src/ui/dialog/clonetiler.cpp:1258 -msgid " _Unclump " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1259 -msgid "Spread out clones to reduce clumping; can be applied repeatedly" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1265 -msgid " Re_move " -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1266 -msgid "Remove existing tiled clones of the selected object (siblings only)" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1283 -msgid " R_eset " -msgstr "" - -#. TRANSLATORS: "change" is a noun here -#: ../src/ui/dialog/clonetiler.cpp:1285 -msgid "" -"Reset all shifts, scales, rotates, opacity and color changes in the dialog " -"to zero" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1358 -msgid "Nothing selected." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1364 -msgid "More than one object selected." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1371 -#, c-format -msgid "Object has %d tiled clones." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:1376 -msgid "Object has no tiled clones." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2100 -msgid "Select one object whose tiled clones to unclump." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2122 -msgid "Unclump tiled clones" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2151 -msgid "Select one object whose tiled clones to remove." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2176 -msgid "Delete tiled clones" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2229 -msgid "" -"If you want to clone several objects, group them and clone the " -"group." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2238 -msgid "Creating tiled clones..." -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2651 -msgid "Create tiled clones" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2884 -msgid "Per row:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2902 -msgid "Per column:" -msgstr "" - -#: ../src/ui/dialog/clonetiler.cpp:2910 -msgid "Randomize:" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:131 -#, c-format -msgid "" -"Color: %s; Click to set fill, Shift+click to set stroke" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:509 -msgid "Change color definition" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove stroke color" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:679 -msgid "Remove fill color" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set stroke color to none" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:684 -msgid "Set fill color to none" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:702 -msgid "Set stroke color from swatch" -msgstr "" - -#: ../src/ui/dialog/color-item.cpp:702 -msgid "Set fill color from swatch" -msgstr "" - -#: ../src/ui/dialog/debug.cpp:73 -msgid "Messages" -msgstr "" - -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 -msgid "_Clear" -msgstr "" - -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 -msgid "Capture log messages" -msgstr "" - -#: ../src/ui/dialog/debug.cpp:95 -msgid "Release log messages" -msgstr "" - -#: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:159 -msgid "Metadata" -msgstr "" - -#: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:160 -msgid "License" -msgstr "" - -#: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1007 -msgid "Dublin Core Entities" -msgstr "" - -#: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1069 -msgid "License" -msgstr "" - -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:111 -msgid "Use antialiasing" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:111 -msgid "If unset, no antialiasing will be done on the drawing" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "Show page _border" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:112 -msgid "If set, rectangular page border is shown" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "Border on _top of drawing" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:113 -msgid "If set, border is always on top of the drawing" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "_Show border shadow" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:114 -msgid "If set, page border shows a shadow on its right and lower side" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "Back_ground color:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:115 -msgid "" -"Color of the page background. Note: transparency setting ignored while " -"editing but used when exporting to bitmap." -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Border _color:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Page border color" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:116 -msgid "Color of the page border" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:117 -msgid "Display _units:" -msgstr "" - -#. --------------------------------------------------------------- -#. General snap options -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Show _guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:121 -msgid "Show or hide guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Guide co_lor:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Guideline color" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:122 -msgid "Color of guidelines" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "_Highlight color:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "Highlighted guideline color" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:123 -msgid "Color of a guideline when it is under mouse" -msgstr "" - -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Snap _distance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:125 -msgid "Snap only when _closer than:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:125 -#: ../src/ui/dialog/document-properties.cpp:130 -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Always snap" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:126 -msgid "Snapping distance, in screen pixels, for snapping to objects" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:126 -msgid "Always snap to objects, regardless of their distance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:127 -msgid "" -"If set, objects only snap to another object when it's within the range " -"specified below" -msgstr "" - -#. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Snap d_istance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:130 -msgid "Snap only when c_loser than:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:131 -msgid "Snapping distance, in screen pixels, for snapping to grid" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:131 -msgid "Always snap to grids, regardless of the distance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:132 -msgid "" -"If set, objects only snap to a grid line when it's within the range " -"specified below" -msgstr "" - -#. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Snap dist_ance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:135 -msgid "Snap only when close_r than:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:136 -msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:136 -msgid "Always snap to guides, regardless of the distance" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:137 -msgid "" -"If set, objects only snap to a guide when it's within the range specified " -"below" -msgstr "" - -#. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:140 -msgid "Snap to clip paths" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:140 -msgid "When snapping to paths, then also try snapping to clip paths" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:141 -msgid "Snap to mask paths" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:141 -msgid "When snapping to paths, then also try snapping to mask paths" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:142 -msgid "Snap perpendicularly" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:142 -msgid "" -"When snapping to paths or guides, then also try snapping perpendicularly" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:143 -msgid "Snap tangentially" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:143 -msgid "When snapping to paths or guides, then also try snapping tangentially" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:146 -msgctxt "Grid" -msgid "_New" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:146 -msgid "Create new grid." -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:147 -msgctxt "Grid" -msgid "_Remove" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:147 -msgid "Remove selected grid." -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1834 -msgid "Guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2827 -msgid "Snap" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:158 -msgid "Scripting" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:322 -msgid "General" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:324 -msgid "Page Size" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:326 -msgid "Display" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:361 -msgid "Guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:379 -msgid "Snap to objects" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:381 -msgid "Snap to grids" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:383 -msgid "Snap to guides" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:385 -msgid "Miscellaneous" -msgstr "" - -#. TODO check if this next line was sometimes needed. It being there caused an assertion. -#. Inkscape::GC::release(defsRepr); -#. inform the document, so we can undo -#. Color Management -#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:3008 -msgid "Link Color Profile" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:599 -msgid "Remove linked color profile" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:613 -msgid "Linked Color Profiles:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:615 -msgid "Available Color Profiles:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:617 -msgid "Link Profile" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:626 -msgid "Unlink Profile" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:710 -msgid "Profile Name" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:746 -msgid "External scripts" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:747 -msgid "Embedded scripts" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:752 -msgid "External script files:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:754 -msgid "Add the current file name or browse for a file" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:763 -#: ../src/ui/dialog/document-properties.cpp:852 -#: ../src/ui/widget/selected-style.cpp:356 -msgid "Remove" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:833 -msgid "Filename" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:841 -msgid "Embedded script files:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:843 -msgid "New" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:922 -msgid "Script id" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:928 -msgid "Content:" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1045 -msgid "_Save as default" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1046 -msgid "Save this metadata as the default metadata" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1047 -msgid "Use _default" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1048 -msgid "Use the previously saved default metadata here" -msgstr "" - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1121 -msgid "Add external script..." -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1160 -msgid "Select a script to load" -msgstr "" - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1188 -msgid "Add embedded script..." -msgstr "" - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1219 -msgid "Remove external script" -msgstr "" - -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1249 -msgid "Remove embedded script" -msgstr "" - -#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); -#. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1346 -msgid "Edit embedded script" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1434 -msgid "Creation" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1435 -msgid "Defined grids" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1682 -msgid "Remove grid" -msgstr "" - -#: ../src/ui/dialog/document-properties.cpp:1770 -msgid "Changed default display unit" -msgstr "" - -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2879 -msgid "_Page" -msgstr "" - -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2883 -msgid "_Drawing" -msgstr "" - -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2885 -msgid "_Selection" -msgstr "" - -#: ../src/ui/dialog/export.cpp:151 -msgid "_Custom" -msgstr "" - -#: ../src/ui/dialog/export.cpp:169 ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 -#: ../share/extensions/render_gears.inx.h:6 -msgid "Units:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:171 -msgid "_Export As..." -msgstr "" - -#: ../src/ui/dialog/export.cpp:174 -msgid "B_atch export all selected objects" -msgstr "" - -#: ../src/ui/dialog/export.cpp:174 -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:176 -msgid "Hide a_ll except selected" -msgstr "" - -#: ../src/ui/dialog/export.cpp:176 -msgid "In the exported image, hide all objects except those that are selected" -msgstr "" - -#: ../src/ui/dialog/export.cpp:177 -msgid "Close when complete" -msgstr "" - -#: ../src/ui/dialog/export.cpp:177 -msgid "Once the export completes, close this dialog" -msgstr "" - -#: ../src/ui/dialog/export.cpp:179 -msgid "_Export" -msgstr "" - -#: ../src/ui/dialog/export.cpp:197 -msgid "Export area" -msgstr "" - -#: ../src/ui/dialog/export.cpp:236 -msgid "_x0:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:240 -msgid "x_1:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:244 -msgid "Wid_th:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:248 -msgid "_y0:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:252 -msgid "y_1:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:256 -msgid "Hei_ght:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:271 -msgid "Image size" -msgstr "" - -#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/export.cpp:300 -msgid "pixels at" -msgstr "" - -#: ../src/ui/dialog/export.cpp:295 -msgid "dp_i" -msgstr "" - -#: ../src/ui/dialog/export.cpp:300 ../src/ui/dialog/transformation.cpp:80 -#: ../src/ui/widget/page-sizer.cpp:237 -msgid "_Height:" -msgstr "" - -#: ../src/ui/dialog/export.cpp:308 -#: ../src/ui/dialog/inkscape-preferences.cpp:1443 -#: ../src/ui/dialog/inkscape-preferences.cpp:1447 -#: ../src/ui/dialog/inkscape-preferences.cpp:1471 -msgid "dpi" -msgstr "" - -#: ../src/ui/dialog/export.cpp:316 -msgid "_Filename" -msgstr "" - -#: ../src/ui/dialog/export.cpp:358 -msgid "Export the bitmap file with these settings" -msgstr "" - -#: ../src/ui/dialog/export.cpp:611 -#, 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:927 -msgid "Export in progress" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1017 -msgid "No items selected." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1021 ../src/ui/dialog/export.cpp:1023 -msgid "Exporting %1 files" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1063 ../src/ui/dialog/export.cpp:1065 -#, c-format -msgid "Exporting file %s..." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1074 ../src/ui/dialog/export.cpp:1165 -#, c-format -msgid "Could not export to filename %s.\n" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1077 -#, c-format -msgid "Could not export to filename %s." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1092 -#, c-format -msgid "Successfully exported %d files from %d selected items." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1103 -msgid "You have to enter a filename." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1104 -msgid "You have to enter a filename" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1118 -msgid "The chosen area to be exported is invalid." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1119 -msgid "The chosen area to be exported is invalid" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1134 -#, 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:1148 ../src/ui/dialog/export.cpp:1150 -msgid "Exporting %1 (%2 x %3)" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1176 -#, c-format -msgid "Drawing exported to %s." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1180 -msgid "Export aborted." -msgstr "" - -#: ../src/ui/dialog/export.cpp:1301 ../src/ui/interface.cpp:1392 -#: ../src/widgets/desktop-widget.cpp:1122 -#: ../src/widgets/desktop-widget.cpp:1184 -msgid "_Cancel" -msgstr "" - -#: ../src/ui/dialog/export.cpp:1302 ../src/ui/dialog/input.cpp:1082 -#: ../src/verbs.cpp:2437 ../src/widgets/desktop-widget.cpp:1123 -msgid "_Save" -msgstr "" - -#: ../src/ui/dialog/extension-editor.cpp:81 -msgid "Information" -msgstr "" - -#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:310 -#: ../src/verbs.cpp:329 ../share/extensions/color_HSL_adjust.inx.h:11 -#: ../share/extensions/color_custom.inx.h:7 -#: ../share/extensions/color_randomize.inx.h:6 -#: ../share/extensions/dots.inx.h:7 -#: ../share/extensions/draw_from_triangle.inx.h:35 -#: ../share/extensions/dxf_input.inx.h:10 -#: ../share/extensions/dxf_outlines.inx.h:24 -#: ../share/extensions/gcodetools_about.inx.h:3 -#: ../share/extensions/gcodetools_area.inx.h:53 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 -#: ../share/extensions/gcodetools_dxf_points.inx.h:25 -#: ../share/extensions/gcodetools_engraving.inx.h:31 -#: ../share/extensions/gcodetools_graffiti.inx.h:42 -#: ../share/extensions/gcodetools_lathe.inx.h:46 -#: ../share/extensions/gcodetools_orientation_points.inx.h:14 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 -#: ../share/extensions/gcodetools_tools_library.inx.h:12 -#: ../share/extensions/generate_voronoi.inx.h:5 -#: ../share/extensions/gimp_xcf.inx.h:7 -#: ../share/extensions/interp_att_g.inx.h:27 -#: ../share/extensions/jessyInk_autoTexts.inx.h:8 -#: ../share/extensions/jessyInk_effects.inx.h:13 -#: ../share/extensions/jessyInk_export.inx.h:7 -#: ../share/extensions/jessyInk_install.inx.h:2 -#: ../share/extensions/jessyInk_keyBindings.inx.h:44 -#: ../share/extensions/jessyInk_masterSlide.inx.h:5 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 -#: ../share/extensions/jessyInk_summary.inx.h:2 -#: ../share/extensions/jessyInk_transitions.inx.h:12 -#: ../share/extensions/jessyInk_uninstall.inx.h:10 -#: ../share/extensions/jessyInk_video.inx.h:2 -#: ../share/extensions/jessyInk_view.inx.h:7 -#: ../share/extensions/layout_nup.inx.h:24 -#: ../share/extensions/lindenmayer.inx.h:13 -#: ../share/extensions/lorem_ipsum.inx.h:6 -#: ../share/extensions/measure.inx.h:16 -#: ../share/extensions/pathalongpath.inx.h:16 -#: ../share/extensions/pathscatter.inx.h:18 -#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 -#: ../share/extensions/voronoi2svg.inx.h:11 -#: ../share/extensions/web-set-att.inx.h:25 -#: ../share/extensions/web-transmit-att.inx.h:23 -#: ../share/extensions/webslicer_create_group.inx.h:11 -#: ../share/extensions/webslicer_export.inx.h:6 -msgid "Help" -msgstr "" - -#: ../src/ui/dialog/extension-editor.cpp:83 -msgid "Parameters" -msgstr "" - -#. Fill in the template -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:415 -msgid "No preview" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:519 -msgid "too large for preview" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:605 -msgid "Enable preview" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:755 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:768 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:772 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:775 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:814 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:282 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:413 -msgid "All Files" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:796 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:811 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:283 -msgid "All Inkscape Files" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:787 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:803 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:817 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:284 -msgid "All Images" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:790 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:806 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:820 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:285 -msgid "All Vectors" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:793 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:809 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:823 -#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 -msgid "All Bitmaps" -msgstr "" - -#. ###### File options -#. ###### Do we want the .xxx extension automatically added? -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1042 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 -msgid "Append filename extension automatically" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1215 -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1468 -msgid "Guess from extension" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1487 -msgid "Left edge of source" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1488 -msgid "Top edge of source" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1489 -msgid "Right edge of source" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1490 -msgid "Bottom edge of source" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1491 -msgid "Source width" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1492 -msgid "Source height" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 -msgid "Destination width" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1494 -msgid "Destination height" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1495 -msgid "Resolution (dots per inch)" -msgstr "" - -#. ######################################### -#. ## EXTRA WIDGET -- SOURCE SIDE -#. ######################################### -#. ##### Export options buttons/spinners, etc -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1533 -msgid "Document" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:176 -#: ../src/widgets/desktop-widget.cpp:2000 -#: ../share/extensions/printing_marks.inx.h:18 -msgid "Selection" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 -msgctxt "Export dialog" -msgid "Custom" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1565 -msgid "Source" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1585 -msgid "Cairo" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1588 -msgid "Antialias" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 -msgid "All Executable Files" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 -msgid "Show Preview" -msgstr "" - -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 -msgid "No file selected" -msgstr "" - -#: ../src/ui/dialog/fill-and-stroke.cpp:62 -msgid "_Fill" -msgstr "" - -#: ../src/ui/dialog/fill-and-stroke.cpp:63 -msgid "Stroke _paint" -msgstr "" - -#: ../src/ui/dialog/fill-and-stroke.cpp:64 -msgid "Stroke st_yle" -msgstr "" - -#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 -msgid "" -"This matrix determines a linear transform on color space. Each line affects " -"one of the color components. Each column determines how much of each color " -"component from the input is passed to the output. The last column does not " -"depend on input colors, so can be used to adjust a constant component value." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 -#: ../share/extensions/grid_polar.inx.h:4 -msgctxt "Label" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 -msgid "Image File" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 -msgid "Selected SVG Element" -msgstr "" - -#. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 -msgid "Select an image to be used as feImage input" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 -msgid "This SVG filter effect does not require any parameters." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 -msgid "This SVG filter effect is not yet implemented in Inkscape." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 -msgid "Slope" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 -msgid "Intercept" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 -msgid "Amplitude" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 -msgid "Exponent" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 -msgid "New transfer function type" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 -msgid "Light Source:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 -msgid "Direction angle for the light source on the XY plane, in degrees" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 -msgid "Direction angle for the light source on the YZ plane, in degrees" -msgstr "" - -#. default x: -#. default y: -#. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -msgid "Location:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "X coordinate" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Y coordinate" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Z coordinate" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 -msgid "Points At" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Specular Exponent" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 -msgid "Exponent value controlling the focus for the light source" -msgstr "" - -#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "Cone Angle" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 -msgid "" -"This is the angle between the spot light axis (i.e. the axis between the " -"light source and the point to which it is pointing at) and the spot light " -"cone. No light is projected outside this cone." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 -msgid "New light source" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 -msgid "_Duplicate" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 -msgid "_Filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 -msgid "R_ename" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 -msgid "Rename filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 -msgid "Apply filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 -msgid "filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 -msgid "Add filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 -msgid "Duplicate filter" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 -msgid "_Effect" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 -msgid "Connections" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 -msgid "Remove filter primitive" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 -msgid "Remove merge node" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 -msgid "Reorder filter primitive" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 -msgid "Add Effect:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 -msgid "No effect selected" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 -msgid "No filter selected" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 -msgid "Effect parameters" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 -msgid "Filter General Settings" -msgstr "" - -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Coordinates:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "X coordinate of the left corners of filter effects region" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 -msgid "Y coordinate of the upper corners of filter effects region" -msgstr "" - -#. default width: -#. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Dimensions:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Width of filter effects region" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 -msgid "Height of filter effects region" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -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 " -"convenience shortcuts to allow commonly used color operations to be " -"performed without specifying a complete matrix." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 -msgid "Value(s):" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 -msgid "R:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 -#: ../src/widgets/sp-color-icc-selector.cpp:334 -msgid "G:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 -msgid "B:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 -msgid "A:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "Operator:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -msgid "K1:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 -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:2855 -msgid "K2:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -msgid "K3:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 -msgid "K4:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "Size:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "width of the convolve matrix" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 -msgid "height of the convolve matrix" -msgstr "" - -#. default x: -#. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -#: ../src/ui/dialog/object-attributes.cpp:48 -msgid "Target:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 -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:2861 -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:2863 -msgid "Kernel:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 -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 " -"arrangements of values in this matrix result in various possible visual " -"effects. An identity matrix would lead to a motion blur effect (parallel to " -"the matrix diagonal) while a matrix filled with a constant non-zero value " -"would lead to a common blur effect." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 -msgid "Divisor:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 -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 " -"divisor that is the sum of all the matrix values tends to have an evening " -"effect on the overall color intensity of the result." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -msgid "Bias:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 -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:2867 -msgid "Edge Mode:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 -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:2868 -msgid "Preserve Alpha" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 -msgid "If set, the alpha channel won't be altered by this filter primitive." -msgstr "" - -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -msgid "Diffuse Color:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Defines the color of the light source" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -msgid "Surface Scale:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 -msgid "" -"This value amplifies the heights of the bump map defined by the input alpha " -"channel" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "Constant:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 -msgid "This constant affects the Phong lighting model." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 -msgid "Kernel Unit Length:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 -msgid "This defines the intensity of the displacement effect." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "X displacement:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 -msgid "Color component that controls the displacement in the X direction" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Y displacement:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 -msgid "Color component that controls the displacement in the Y direction" -msgstr "" - -#. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "Flood Color:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 -msgid "The whole filter region will be filled with this color." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "Standard Deviation:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 -msgid "The standard deviation for the blur operation." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 -msgid "" -"Erode: performs \"thinning\" of input image.\n" -"Dilate: performs \"fattenning\" of input image." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 -msgid "Source of Image:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "Delta X:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 -msgid "This is how far the input image gets shifted to the right" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "Delta Y:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 -msgid "This is how far the input image gets shifted downwards" -msgstr "" - -#. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 -msgid "Specular Color:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -#: ../share/extensions/interp.inx.h:2 -msgid "Exponent:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 -msgid "Exponent for specular term, larger is more \"shiny\"." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 -msgid "" -"Indicates whether the filter primitive should perform a noise or turbulence " -"function." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 -msgid "Base Frequency:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 -msgid "Octaves:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "Seed:" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 -msgid "The starting number for the pseudo random number generator." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 -msgid "Add filter primitive" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 -msgid "" -"The feBlend filter primitive provides 4 image blending modes: screen, " -"multiply, darken and lighten." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 -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:2956 -msgid "" -"The feComponentTransfer filter primitive manipulates the input's " -"color components (red, green, blue, and alpha) according to particular " -"transfer functions, allowing operations like brightness and contrast " -"adjustment, color balance, and thresholding." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 -msgid "" -"The feComposite filter primitive composites two images using one of " -"the Porter-Duff blending modes or the arithmetic mode described in SVG " -"standard. Porter-Duff blending modes are essentially logical operations " -"between the corresponding pixel values of the images." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 -msgid "" -"The feConvolveMatrix lets you specify a Convolution to be applied on " -"the image. Common effects created using convolution matrices are blur, " -"sharpening, embossing and edge detection. Note that while gaussian blur can " -"be created using this filter primitive, the special gaussian blur primitive " -"is faster and resolution-independent." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives create " -"\"embossed\" shadings. The input's alpha channel is used to provide depth " -"information: higher opacity areas are raised toward the viewer and lower " -"opacity areas recede away from the viewer." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 -msgid "" -"The feDisplacementMap filter primitive displaces the pixels in the " -"first input using the second input as a displacement map, that shows from " -"how far the pixel should come from. Classical examples are whirl and pinch " -"effects." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 -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:2980 -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:2984 -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:2988 -msgid "" -"The feMerge filter primitive composites several temporary images " -"inside the filter primitive to a single image. It uses normal alpha " -"compositing for this. This is equivalent to using several feBlend primitives " -"in 'normal' mode or several feComposite primitives in 'over' mode." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 -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:2996 -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:3000 -msgid "" -"The feDiffuseLighting and feSpecularLighting filter primitives " -"create \"embossed\" shadings. The input's alpha channel is used to provide " -"depth information: higher opacity areas are raised toward the viewer and " -"lower opacity areas recede away from the viewer." -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 -msgid "" -"The feTile filter primitive tiles a region with its input graphic" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 -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:3027 -msgid "Duplicate filter primitive" -msgstr "" - -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 -msgid "Set filter primitive attribute" -msgstr "" - -#: ../src/ui/dialog/find.cpp:71 -msgid "F_ind:" -msgstr "" - -#: ../src/ui/dialog/find.cpp:71 -msgid "Find objects by their content or properties (exact or partial match)" -msgstr "" - -#: ../src/ui/dialog/find.cpp:72 -msgid "R_eplace:" -msgstr "" - -#: ../src/ui/dialog/find.cpp:72 -msgid "Replace match with this value" -msgstr "" - -#: ../src/ui/dialog/find.cpp:74 -msgid "_All" -msgstr "" - -#: ../src/ui/dialog/find.cpp:74 -msgid "Search in all layers" -msgstr "" - -#: ../src/ui/dialog/find.cpp:75 -msgid "Current _layer" -msgstr "" - -#: ../src/ui/dialog/find.cpp:75 -msgid "Limit search to the current layer" -msgstr "" - -#: ../src/ui/dialog/find.cpp:76 -msgid "Sele_ction" -msgstr "" - -#: ../src/ui/dialog/find.cpp:76 -msgid "Limit search to the current selection" -msgstr "" - -#: ../src/ui/dialog/find.cpp:77 -msgid "Search in text objects" -msgstr "" - -#: ../src/ui/dialog/find.cpp:78 -msgid "_Properties" -msgstr "" - -#: ../src/ui/dialog/find.cpp:78 -msgid "Search in object properties, styles, attributes and IDs" -msgstr "" - -#: ../src/ui/dialog/find.cpp:80 -msgid "Search in" -msgstr "" - -#: ../src/ui/dialog/find.cpp:81 -msgid "Scope" -msgstr "" - -#: ../src/ui/dialog/find.cpp:83 -msgid "Case sensiti_ve" -msgstr "" - -#: ../src/ui/dialog/find.cpp:83 -msgid "Match upper/lower case" -msgstr "" - -#: ../src/ui/dialog/find.cpp:84 -msgid "E_xact match" -msgstr "" - -#: ../src/ui/dialog/find.cpp:84 -msgid "Match whole objects only" -msgstr "" - -#: ../src/ui/dialog/find.cpp:85 -msgid "Include _hidden" -msgstr "" - -#: ../src/ui/dialog/find.cpp:85 -msgid "Include hidden objects in search" -msgstr "" - -#: ../src/ui/dialog/find.cpp:86 -msgid "Include loc_ked" -msgstr "" - -#: ../src/ui/dialog/find.cpp:86 -msgid "Include locked objects in search" -msgstr "" - -#: ../src/ui/dialog/find.cpp:88 -msgid "General" -msgstr "" - -#: ../src/ui/dialog/find.cpp:90 -msgid "_ID" -msgstr "" - -#: ../src/ui/dialog/find.cpp:90 -msgid "Search id name" -msgstr "" - -#: ../src/ui/dialog/find.cpp:91 -msgid "Attribute _name" -msgstr "" - -#: ../src/ui/dialog/find.cpp:91 -msgid "Search attribute name" -msgstr "" - -#: ../src/ui/dialog/find.cpp:92 -msgid "Attri_bute value" -msgstr "" - -#: ../src/ui/dialog/find.cpp:92 -msgid "Search attribute value" -msgstr "" - -#: ../src/ui/dialog/find.cpp:93 -msgid "_Style" -msgstr "" - -#: ../src/ui/dialog/find.cpp:93 -msgid "Search style" -msgstr "" - -#: ../src/ui/dialog/find.cpp:94 -msgid "F_ont" -msgstr "" - -#: ../src/ui/dialog/find.cpp:94 -msgid "Search fonts" -msgstr "" - -#: ../src/ui/dialog/find.cpp:95 -msgid "Properties" -msgstr "" - -#: ../src/ui/dialog/find.cpp:97 -msgid "All types" -msgstr "" - -#: ../src/ui/dialog/find.cpp:97 -msgid "Search all object types" -msgstr "" - -#: ../src/ui/dialog/find.cpp:98 -msgid "Rectangles" -msgstr "" - -#: ../src/ui/dialog/find.cpp:98 -msgid "Search rectangles" -msgstr "" - -#: ../src/ui/dialog/find.cpp:99 -msgid "Ellipses" -msgstr "" - -#: ../src/ui/dialog/find.cpp:99 -msgid "Search ellipses, arcs, circles" -msgstr "" - -#: ../src/ui/dialog/find.cpp:100 -msgid "Stars" -msgstr "" - -#: ../src/ui/dialog/find.cpp:100 -msgid "Search stars and polygons" -msgstr "" - -#: ../src/ui/dialog/find.cpp:101 -msgid "Spirals" -msgstr "" - -#: ../src/ui/dialog/find.cpp:101 -msgid "Search spirals" -msgstr "" - -#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1735 -msgid "Paths" -msgstr "" - -#: ../src/ui/dialog/find.cpp:102 -msgid "Search paths, lines, polylines" -msgstr "" - -#: ../src/ui/dialog/find.cpp:103 -msgid "Texts" -msgstr "" - -#: ../src/ui/dialog/find.cpp:103 -msgid "Search text objects" -msgstr "" - -#: ../src/ui/dialog/find.cpp:104 -msgid "Groups" -msgstr "" - -#: ../src/ui/dialog/find.cpp:104 -msgid "Search groups" -msgstr "" - -#. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:107 -msgctxt "Find dialog" -msgid "Clones" -msgstr "" - -#: ../src/ui/dialog/find.cpp:107 -msgid "Search clones" -msgstr "" - -#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 -#: ../share/extensions/extractimage.inx.h:5 -msgid "Images" -msgstr "" - -#: ../src/ui/dialog/find.cpp:109 -msgid "Search images" -msgstr "" - -#: ../src/ui/dialog/find.cpp:110 -msgid "Offsets" -msgstr "" - -#: ../src/ui/dialog/find.cpp:110 -msgid "Search offset objects" -msgstr "" - -#: ../src/ui/dialog/find.cpp:111 -msgid "Object types" -msgstr "" - -#: ../src/ui/dialog/find.cpp:114 -msgid "_Find" -msgstr "" - -#: ../src/ui/dialog/find.cpp:114 -msgid "Select all objects matching the selection criteria" -msgstr "" - -#: ../src/ui/dialog/find.cpp:115 -msgid "_Replace All" -msgstr "" - -#: ../src/ui/dialog/find.cpp:115 -msgid "Replace all matches" -msgstr "" - -#: ../src/ui/dialog/find.cpp:797 -msgid "Nothing to replace" -msgstr "" - -#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:838 -#, c-format -msgid "%d object found (out of %d), %s match." -msgid_plural "%d objects found (out of %d), %s match." -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/dialog/find.cpp:841 -msgid "exact" -msgstr "" - -#: ../src/ui/dialog/find.cpp:841 -msgid "partial" -msgstr "" - -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:844 -msgid "%1 match replaced" -msgid_plural "%1 matches replaced" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:848 -msgid "%1 object found" -msgid_plural "%1 objects found" -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/dialog/find.cpp:862 -msgid "Replace text or property" -msgstr "" - -#: ../src/ui/dialog/find.cpp:866 -msgid "Nothing found" -msgstr "" - -#: ../src/ui/dialog/find.cpp:871 -msgid "No objects found" -msgstr "" - -#: ../src/ui/dialog/find.cpp:892 -msgid "Select an object type" -msgstr "" - -#: ../src/ui/dialog/find.cpp:910 -msgid "Select a property" -msgstr "" - -#: ../src/ui/dialog/font-substitution.cpp:87 -msgid "" -"\n" -"Some fonts are not available and have been substituted." -msgstr "" - -#: ../src/ui/dialog/font-substitution.cpp:90 -msgid "Font substitution" -msgstr "" - -#: ../src/ui/dialog/font-substitution.cpp:109 -msgid "Select all the affected items" -msgstr "" - -#: ../src/ui/dialog/font-substitution.cpp:114 -msgid "Don't show this warning again" -msgstr "" - -#: ../src/ui/dialog/font-substitution.cpp:255 -msgid "Font '%1' substituted with '%2'" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 -msgid "all" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:61 -msgid "common" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:62 -msgid "inherited" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 -msgid "Arabic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 -msgid "Armenian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 -msgid "Bengali" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 -msgid "Bopomofo" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 -msgid "Cherokee" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 -msgid "Coptic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 -#: ../share/extensions/hershey.inx.h:22 -msgid "Cyrillic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:70 -msgid "Deseret" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 -msgid "Devanagari" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 -msgid "Ethiopic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 -msgid "Georgian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:74 -msgid "Gothic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:75 -msgid "Greek" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 -msgid "Gujarati" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 -msgid "Gurmukhi" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:78 -msgid "Han" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:79 -msgid "Hangul" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 -msgid "Hebrew" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 -msgid "Hiragana" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 -msgid "Kannada" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 -msgid "Katakana" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 -msgid "Khmer" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 -msgid "Lao" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:86 -msgid "Latin" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 -msgid "Malayalam" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 -msgid "Mongolian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 -msgid "Myanmar" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 -msgid "Ogham" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:91 -msgid "Old Italic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 -msgid "Oriya" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 -msgid "Runic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 -msgid "Sinhala" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 -msgid "Syriac" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 -msgid "Tamil" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 -msgid "Telugu" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 -msgid "Thaana" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 -msgid "Thai" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 -msgid "Tibetan" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:101 -msgid "Canadian Aboriginal" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:102 -msgid "Yi" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 -msgid "Tagalog" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 -msgid "Hanunoo" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 -msgid "Buhid" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 -msgid "Tagbanwa" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:107 -msgid "Braille" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:108 -msgid "Cypriot" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 -msgid "Limbu" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:110 -msgid "Osmanya" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:111 -msgid "Shavian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:112 -msgid "Linear B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 -msgid "Tai Le" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:114 -msgid "Ugaritic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 -msgid "New Tai Lue" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 -msgid "Buginese" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 -msgid "Glagolitic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 -msgid "Tifinagh" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 -msgid "Syloti Nagri" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:120 -msgid "Old Persian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:121 -msgid "Kharoshthi" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:122 -msgid "unassigned" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 -msgid "Balinese" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:124 -msgid "Cuneiform" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:125 -msgid "Phoenician" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 -msgid "Phags-pa" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:127 -msgid "N'Ko" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 -msgid "Kayah Li" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 -msgid "Lepcha" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 -msgid "Rejang" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 -msgid "Sundanese" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 -msgid "Saurashtra" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 -msgid "Cham" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 -msgid "Ol Chiki" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 -msgid "Vai" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:136 -msgid "Carian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:137 -msgid "Lycian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:138 -msgid "Lydian" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:153 -msgid "Basic Latin" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:154 -msgid "Latin-1 Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:155 -msgid "Latin Extended-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:156 -msgid "Latin Extended-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:157 -msgid "IPA Extensions" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:158 -msgid "Spacing Modifier Letters" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:159 -msgid "Combining Diacritical Marks" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:160 -msgid "Greek and Coptic" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:162 -msgid "Cyrillic Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:167 -msgid "Arabic Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:169 -msgid "NKo" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:170 -msgid "Samaritan" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:186 -msgid "Hangul Jamo" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:188 -msgid "Ethiopic Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:190 -msgid "Unified Canadian Aboriginal Syllabics" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:199 -msgid "Unified Canadian Aboriginal Syllabics Extended" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:203 -msgid "Khmer Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:205 -msgid "Tai Tham" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:210 -msgid "Vedic Extensions" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:211 -msgid "Phonetic Extensions" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:212 -msgid "Phonetic Extensions Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:213 -msgid "Combining Diacritical Marks Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:214 -msgid "Latin Extended Additional" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:215 -msgid "Greek Extended" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:216 -msgid "General Punctuation" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:217 -msgid "Superscripts and Subscripts" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:218 -msgid "Currency Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:219 -msgid "Combining Diacritical Marks for Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:220 -msgid "Letterlike Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:221 -msgid "Number Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:222 -msgid "Arrows" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:223 -msgid "Mathematical Operators" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:224 -msgid "Miscellaneous Technical" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:225 -msgid "Control Pictures" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:226 -msgid "Optical Character Recognition" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:227 -msgid "Enclosed Alphanumerics" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:228 -msgid "Box Drawing" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:229 -msgid "Block Elements" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:230 -msgid "Geometric Shapes" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:231 -msgid "Miscellaneous Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:232 -msgid "Dingbats" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:233 -msgid "Miscellaneous Mathematical Symbols-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:234 -msgid "Supplemental Arrows-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:235 -msgid "Braille Patterns" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:236 -msgid "Supplemental Arrows-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:237 -msgid "Miscellaneous Mathematical Symbols-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:238 -msgid "Supplemental Mathematical Operators" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:239 -msgid "Miscellaneous Symbols and Arrows" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:241 -msgid "Latin Extended-C" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:243 -msgid "Georgian Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:245 -msgid "Ethiopic Extended" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:246 -msgid "Cyrillic Extended-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:247 -msgid "Supplemental Punctuation" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:248 -msgid "CJK Radicals Supplement" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:249 -msgid "Kangxi Radicals" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:250 -msgid "Ideographic Description Characters" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:251 -msgid "CJK Symbols and Punctuation" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:255 -msgid "Hangul Compatibility Jamo" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:256 -msgid "Kanbun" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:257 -msgid "Bopomofo Extended" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:258 -msgid "CJK Strokes" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:259 -msgid "Katakana Phonetic Extensions" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:260 -msgid "Enclosed CJK Letters and Months" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:261 -msgid "CJK Compatibility" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:262 -msgid "CJK Unified Ideographs Extension A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:263 -msgid "Yijing Hexagram Symbols" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:264 -msgid "CJK Unified Ideographs" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:265 -msgid "Yi Syllables" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:266 -msgid "Yi Radicals" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:267 -msgid "Lisu" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:269 -msgid "Cyrillic Extended-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:270 -msgid "Bamum" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:271 -msgid "Modifier Tone Letters" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:272 -msgid "Latin Extended-D" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:274 -msgid "Common Indic Number Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:277 -msgid "Devanagari Extended" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:280 -msgid "Hangul Jamo Extended-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:281 -msgid "Javanese" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:283 -msgid "Myanmar Extended-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:284 -msgid "Tai Viet" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:285 -msgid "Meetei Mayek" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:286 -msgid "Hangul Syllables" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:287 -msgid "Hangul Jamo Extended-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:288 -msgid "High Surrogates" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:289 -msgid "High Private Use Surrogates" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:290 -msgid "Low Surrogates" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:291 -msgid "Private Use Area" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:292 -msgid "CJK Compatibility Ideographs" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:293 -msgid "Alphabetic Presentation Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:294 -msgid "Arabic Presentation Forms-A" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:295 -msgid "Variation Selectors" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:296 -msgid "Vertical Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:297 -msgid "Combining Half Marks" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:298 -msgid "CJK Compatibility Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:299 -msgid "Small Form Variants" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:300 -msgid "Arabic Presentation Forms-B" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:301 -msgid "Halfwidth and Fullwidth Forms" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:302 -msgid "Specials" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:377 -msgid "Script: " -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:414 -msgid "Range: " -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:497 -msgid "Append" -msgstr "" - -#: ../src/ui/dialog/glyphs.cpp:618 -msgid "Append text" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:351 -msgid "Arrange in a grid" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 -#: ../src/ui/dialog/object-attributes.cpp:66 -#: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 -msgid "X:" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 -msgid "Horizontal spacing between columns." -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 -#: ../src/ui/dialog/object-attributes.cpp:67 -#: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 -msgid "Y:" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 -msgid "Vertical spacing between rows." -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:626 -msgid "_Rows:" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:635 -msgid "Number of rows" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:639 -msgid "Equal _height" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 -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:666 -msgid "_Columns:" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:675 -msgid "Number of columns" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:679 -msgid "Equal _width" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:689 -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:700 -msgid "Alignment:" -msgstr "" - -#. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:709 -msgid "_Fit into selection box" -msgstr "" - -#: ../src/ui/dialog/grid-arrange-tab.cpp:716 -msgid "_Set spacing:" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:47 -msgid "Rela_tive change" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:47 -msgid "Move and/or rotate the guide relative to current settings" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:48 -msgctxt "Guides" -msgid "_X:" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:49 -msgctxt "Guides" -msgid "_Y:" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 -msgid "_Label:" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:50 -msgid "Optionally give this guideline a name" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:51 -msgid "_Angle:" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:130 -msgid "Set guide properties" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:160 -msgid "Guideline" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:311 -#, c-format -msgid "Guideline ID: %s" -msgstr "" - -#: ../src/ui/dialog/guides.cpp:317 -#, c-format -msgid "Current: %s" -msgstr "" - -#: ../src/ui/dialog/icon-preview.cpp:159 -#, c-format -msgid "%d x %d" -msgstr "" - -#: ../src/ui/dialog/icon-preview.cpp:171 -msgid "Magnified:" -msgstr "" - -#: ../src/ui/dialog/icon-preview.cpp:240 -msgid "Actual Size:" -msgstr "" - -#: ../src/ui/dialog/icon-preview.cpp:245 -msgctxt "Icon preview window" -msgid "Sele_ction" -msgstr "" - -#: ../src/ui/dialog/icon-preview.cpp:247 -msgid "Selection only or whole document" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:183 -msgid "Show selection cue" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:184 -msgid "" -"Whether selected objects display a selection cue (the same as in selector)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:190 -msgid "Enable gradient editing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:191 -msgid "Whether selected objects display gradient editing controls" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:196 -msgid "Conversion to guides uses edges instead of bounding box" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:197 -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:204 -msgid "Ctrl+click _dot size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:204 -msgid "times current stroke width" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:205 -msgid "Size of dots created with Ctrl+click (relative to current stroke width)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:220 -msgid "No objects selected to take the style from." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:229 -msgid "" -"More than one object selected. Cannot take style from multiple " -"objects." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:265 -msgid "Style of new objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:267 -msgid "Last used style" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:269 -msgid "Apply the style you last set on an object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:274 -msgid "This tool's own style:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:278 -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:282 -msgid "Take from selection" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:291 -msgid "This tool's style of new objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:298 -msgid "Remember the style of the (first) selected object as this tool's style" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:303 -msgid "Tools" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:306 -msgid "Bounding box to use" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:307 -msgid "Visual bounding box" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:309 -msgid "This bounding box includes stroke width, markers, filter margins, etc." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:310 -msgid "Geometric bounding box" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:312 -msgid "This bounding box includes only the bare path" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:314 -msgid "Conversion to guides" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:315 -msgid "Keep objects after conversion to guides" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:317 -msgid "" -"When converting an object to guides, don't delete the object after the " -"conversion" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:318 -msgid "Treat groups as a single object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:320 -msgid "" -"Treat groups as a single object during conversion to guides rather than " -"converting each child separately" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:322 -msgid "Average all sketches" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:323 -msgid "Width is in absolute units" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:324 -msgid "Select new path" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:325 -msgid "Don't attach connectors to text objects" -msgstr "" - -#. Selector -#: ../src/ui/dialog/inkscape-preferences.cpp:328 -msgid "Selector" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:333 -msgid "When transforming, show" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:334 -msgid "Objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:336 -msgid "Show the actual objects when moving or transforming" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:337 -msgid "Box outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:339 -msgid "Show only a box outline of the objects when moving or transforming" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:340 -msgid "Per-object selection cue" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:341 -msgctxt "Selection cue" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:343 -msgid "No per-object selection indication" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:344 -msgid "Mark" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:346 -msgid "Each selected object has a diamond mark in the top left corner" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:347 -msgid "Box" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:349 -msgid "Each selected object displays its bounding box" -msgstr "" - -#. Node -#: ../src/ui/dialog/inkscape-preferences.cpp:352 -msgid "Node" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:355 -msgid "Path outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:356 -msgid "Path outline color" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:357 -msgid "Selects the color used for showing the path outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:358 -msgid "Always show outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:359 -msgid "Show outlines for all paths, not only invisible paths" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:360 -msgid "Update outline when dragging nodes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:361 -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:362 -msgid "Update paths when dragging nodes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:363 -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:364 -msgid "Show path direction on outlines" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:365 -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:366 -msgid "Show temporary path outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:367 -msgid "When hovering over a path, briefly flash its outline" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:368 -msgid "Show temporary outline for selected paths" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:369 -msgid "Show temporary outline even when a path is selected for editing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:371 -msgid "_Flash time:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:371 -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:372 -msgid "Editing preferences" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:373 -msgid "Show transform handles for single nodes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:374 -msgid "Show transform handles even when only a single node is selected" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:375 -msgid "Deleting nodes preserves shape" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:376 -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:379 -msgid "Tweak" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:380 -msgid "Object paint style" -msgstr "" - -#. Zoom -#: ../src/ui/dialog/inkscape-preferences.cpp:385 -#: ../src/widgets/desktop-widget.cpp:631 -msgid "Zoom" -msgstr "" - -#. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2761 -msgctxt "ContextVerb" -msgid "Measure" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:392 -msgid "Ignore first and last points" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:393 -msgid "" -"The start and end of the measurement tool's control line will not be " -"considered for calculating lengths. Only lengths between actual curve " -"intersections will be displayed." -msgstr "" - -#. Shapes -#: ../src/ui/dialog/inkscape-preferences.cpp:396 -msgid "Shapes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:428 -msgid "Sketch mode" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:430 -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:433 -#: ../src/ui/dialog/input.cpp:1485 -msgid "Pen" -msgstr "" - -#. Calligraphy -#: ../src/ui/dialog/inkscape-preferences.cpp:439 -msgid "Calligraphy" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:443 -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:445 -msgid "" -"If on, each newly created object will be selected (deselecting previous " -"selection)" -msgstr "" - -#. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2753 -msgctxt "ContextVerb" -msgid "Text" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:453 -msgid "Show font samples in the drop-down list" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:454 -msgid "" -"Show font samples alongside font names in the drop-down list in Text bar" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:456 -msgid "Show font substitution warning dialog" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:457 -msgid "" -"Show font substitution warning dialog when requested fonts are not available " -"on the system" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Pixel" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Pica" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Millimeter" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Centimeter" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Inch" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:460 -msgid "Em square" -msgstr "" - -#. , _("Ex square"), _("Percent") -#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT -#: ../src/ui/dialog/inkscape-preferences.cpp:463 -msgid "Text units" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:465 -msgid "Text size unit type:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:466 -msgid "Set the type of unit used in the text toolbar and text dialogs" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:467 -msgid "Always output text size in pixels (px)" -msgstr "" - -#. Spray -#: ../src/ui/dialog/inkscape-preferences.cpp:473 -msgid "Spray" -msgstr "" - -#. Eraser -#: ../src/ui/dialog/inkscape-preferences.cpp:478 -msgid "Eraser" -msgstr "" - -#. Paint Bucket -#: ../src/ui/dialog/inkscape-preferences.cpp:482 -msgid "Paint Bucket" -msgstr "" - -#. Gradient -#: ../src/ui/dialog/inkscape-preferences.cpp:487 -#: ../src/widgets/gradient-selector.cpp:134 -#: ../src/widgets/gradient-selector.cpp:302 -msgid "Gradient" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:489 -msgid "Prevent sharing of gradient definitions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:491 -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:492 -msgid "Use legacy Gradient Editor" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:494 -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:497 -msgid "Linear gradient _angle:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:498 -msgid "" -"Default angle of new linear gradients in degrees (clockwise from horizontal)" -msgstr "" - -#. Dropper -#: ../src/ui/dialog/inkscape-preferences.cpp:502 -msgid "Dropper" -msgstr "" - -#. Connector -#: ../src/ui/dialog/inkscape-preferences.cpp:507 -msgid "Connector" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:510 -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:515 -msgid "LPE Tool" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:522 -msgid "Interface" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "System default" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Albanian (sq)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Amharic (am)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Arabic (ar)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Armenian (hy)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Azerbaijani (az)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Basque (eu)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:525 -msgid "Belarusian (be)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Bulgarian (bg)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Bengali (bn)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Bengali/Bangladesh (bn_BD)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Breton (br)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Catalan (ca)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Valencian Catalan (ca@valencia)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:526 -msgid "Chinese/China (zh_CN)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Chinese/Taiwan (zh_TW)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Croatian (hr)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:527 -msgid "Czech (cs)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "Danish (da)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "Dutch (nl)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "Dzongkha (dz)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "German (de)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "Greek (el)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "English (en)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:528 -msgid "English/Australia (en_AU)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:529 -msgid "English/Canada (en_CA)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:529 -msgid "English/Great Britain (en_GB)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:529 -msgid "Pig Latin (en_US@piglatin)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:530 -msgid "Esperanto (eo)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:530 -msgid "Estonian (et)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:530 -msgid "Farsi (fa)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:530 -msgid "Finnish (fi)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:531 -msgid "French (fr)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:531 -msgid "Irish (ga)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:531 -msgid "Galician (gl)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:531 -msgid "Hebrew (he)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:531 -msgid "Hungarian (hu)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Indonesian (id)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Italian (it)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Japanese (ja)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Khmer (km)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Kinyarwanda (rw)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Korean (ko)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Lithuanian (lt)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Latvian (lv)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:532 -msgid "Macedonian (mk)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:533 -msgid "Mongolian (mn)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:533 -msgid "Nepali (ne)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:533 -msgid "Norwegian Bokmål (nb)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:533 -msgid "Norwegian Nynorsk (nn)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:533 -msgid "Panjabi (pa)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:534 -msgid "Polish (pl)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:534 -msgid "Portuguese (pt)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:534 -msgid "Portuguese/Brazil (pt_BR)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:534 -msgid "Romanian (ro)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:534 -msgid "Russian (ru)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Serbian (sr)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Serbian in Latin script (sr@latin)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Slovak (sk)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Slovenian (sl)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Spanish (es)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:535 -msgid "Spanish/Mexico (es_MX)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Swedish (sv)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Telugu (te)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Thai (th)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Turkish (tr)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Ukrainian (uk)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:536 -msgid "Vietnamese (vi)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:568 -msgid "Language (requires restart):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:569 -msgid "Set the language for menus and number formats" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:572 -#: ../src/ui/dialog/inkscape-preferences.cpp:657 -msgid "Large" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:572 -#: ../src/ui/dialog/inkscape-preferences.cpp:657 -msgid "Small" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:572 -msgid "Smaller" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:576 -msgid "Toolbox icon size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:577 -msgid "Set the size for the tool icons (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:580 -msgid "Control bar icon size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:581 -msgid "" -"Set the size for the icons in tools' control bars to use (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:584 -msgid "Secondary toolbar icon size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:585 -msgid "" -"Set the size for the icons in secondary toolbars to use (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:588 -msgid "Work-around color sliders not drawing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:590 -msgid "" -"When on, will attempt to work around bugs in certain GTK themes drawing " -"color sliders" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:595 -msgid "Clear list" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:598 -msgid "Maximum documents in Open _Recent:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:599 -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:602 -msgid "_Zoom correction factor (in %):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:603 -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:606 -msgid "Enable dynamic relayout for incomplete sections" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:608 -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:611 -msgid "Show filter primitives infobox (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:613 -msgid "" -"Show icons and descriptions for the filter primitives available at the " -"filter effects dialog" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:616 -#: ../src/ui/dialog/inkscape-preferences.cpp:624 -msgid "Icons only" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:616 -#: ../src/ui/dialog/inkscape-preferences.cpp:624 -msgid "Text only" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:616 -#: ../src/ui/dialog/inkscape-preferences.cpp:624 -msgid "Icons and text" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:621 -msgid "Dockbar style (requires restart):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:622 -msgid "" -"Selects whether the vertical bars on the dockbar will show text labels, " -"icons, or both" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:629 -msgid "Switcher style (requires restart):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:630 -msgid "" -"Selects whether the dockbar switcher will show text labels, icons, or both" -msgstr "" - -#. Windows -#: ../src/ui/dialog/inkscape-preferences.cpp:634 -msgid "Save and restore window geometry for each document" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:635 -msgid "Remember and use last window's geometry" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:636 -msgid "Don't save window geometry" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:638 -msgid "Save and restore dialogs status" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:639 -#: ../src/ui/dialog/inkscape-preferences.cpp:675 -msgid "Don't save dialogs status" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:641 -#: ../src/ui/dialog/inkscape-preferences.cpp:683 -msgid "Dockable" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:645 -msgid "Native open/save dialogs" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:646 -msgid "GTK open/save dialogs" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:648 -msgid "Dialogs are hidden in taskbar" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:649 -msgid "Save and restore documents viewport" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:650 -msgid "Zoom when window is resized" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:651 -msgid "Show close button on dialogs" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:652 -msgctxt "Dialog on top" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:654 -msgid "Aggressive" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:657 -msgid "Maximized" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:661 -msgid "Default window size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:662 -msgid "Set the default window size" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:665 -msgid "Saving window geometry (size and position)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:667 -msgid "Let the window manager determine placement of all windows" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:669 -msgid "" -"Remember and use the last window's geometry (saves geometry to user " -"preferences)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:671 -msgid "" -"Save and restore window geometry for each document (saves geometry in the " -"document)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:673 -msgid "Saving dialogs status" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:677 -msgid "" -"Save and restore dialogs status (the last open windows dialogs are saved " -"when it closes)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:681 -msgid "Dialog behavior (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:687 -msgid "Desktop integration" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:689 -msgid "Use Windows like open and save dialogs" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:691 -msgid "Use GTK open and save dialogs " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:695 -msgid "Dialogs on top:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:698 -msgid "Dialogs are treated as regular windows" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:700 -msgid "Dialogs stay on top of document windows" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:702 -msgid "Same as Normal but may work better with some window managers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:705 -msgid "Dialog Transparency" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:707 -msgid "_Opacity when focused:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:709 -msgid "Opacity when _unfocused:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:711 -msgid "_Time of opacity change animation:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:714 -msgid "Miscellaneous" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:717 -msgid "Whether dialog windows are to be hidden in the window manager taskbar" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:720 -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:722 -msgid "" -"Save documents viewport (zoom and panning position). Useful to turn off when " -"sharing version controlled files." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:724 -msgid "Whether dialog windows have a close button (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:725 -msgid "Windows" -msgstr "" - -#. Grids -#: ../src/ui/dialog/inkscape-preferences.cpp:728 -msgid "Line color when zooming out" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:731 -msgid "The gridlines will be shown in minor grid line color" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:733 -msgid "The gridlines will be shown in major grid line color" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:735 -msgid "Default grid settings" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:741 -#: ../src/ui/dialog/inkscape-preferences.cpp:766 -msgid "Grid units:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:746 -#: ../src/ui/dialog/inkscape-preferences.cpp:771 -msgid "Origin X:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:747 -#: ../src/ui/dialog/inkscape-preferences.cpp:772 -msgid "Origin Y:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:752 -msgid "Spacing X:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:753 -#: ../src/ui/dialog/inkscape-preferences.cpp:775 -msgid "Spacing Y:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:755 -#: ../src/ui/dialog/inkscape-preferences.cpp:756 -#: ../src/ui/dialog/inkscape-preferences.cpp:780 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 -msgid "Minor grid line color:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:756 -#: ../src/ui/dialog/inkscape-preferences.cpp:781 -msgid "Color used for normal grid lines" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:757 -#: ../src/ui/dialog/inkscape-preferences.cpp:758 -#: ../src/ui/dialog/inkscape-preferences.cpp:782 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 -msgid "Major grid line color:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:758 -#: ../src/ui/dialog/inkscape-preferences.cpp:783 -msgid "Color used for major (highlighted) grid lines" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:760 -#: ../src/ui/dialog/inkscape-preferences.cpp:785 -msgid "Major grid line every:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:761 -msgid "Show dots instead of lines" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:762 -msgid "If set, display dots at gridpoints instead of gridlines" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:843 -msgid "Input/Output" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:846 -msgid "Use current directory for \"Save As ...\"" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:848 -msgid "" -"When this option is on, the \"Save as...\" and \"Save a Copy...\" dialogs " -"will always open in the directory where the currently open document is; when " -"it's off, each will open in the directory where you last saved a file using " -"it" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:850 -msgid "Add label comments to printing output" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:852 -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:854 -msgid "Add default metadata to new documents" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:856 -msgid "" -"Add default metadata to new documents. Default metadata can be set from " -"Document Properties->Metadata." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:860 -msgid "_Grab sensitivity:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:860 -msgid "pixels (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:861 -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:863 -msgid "_Click/drag threshold:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:863 -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 -#: ../src/ui/dialog/inkscape-preferences.cpp:1209 -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 -msgid "pixels" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:864 -msgid "" -"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:867 -msgid "_Handle size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:868 -msgid "Set the relative size of node handles" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:870 -msgid "Use pressure-sensitive tablet (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:872 -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:874 -msgid "Switch tool based on tablet device (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:876 -msgid "" -"Change tool as different devices are used on the tablet (pen, eraser, mouse)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:877 -msgid "Input devices" -msgstr "" - -#. SVG output options -#: ../src/ui/dialog/inkscape-preferences.cpp:880 -msgid "Use named colors" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:881 -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:883 -msgid "XML formatting" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:885 -msgid "Inline attributes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:886 -msgid "Put attributes on the same line as the element tag" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -msgid "_Indent, spaces:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:889 -msgid "" -"The number of spaces to use for indenting nested elements; set to 0 for no " -"indentation" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:891 -msgid "Path data" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:894 -msgid "Absolute" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:894 -msgid "Relative" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:894 -#: ../src/ui/dialog/inkscape-preferences.cpp:1184 -msgid "Optimized" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:898 -msgid "Path string format:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:898 -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:900 -msgid "Force repeat commands" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:901 -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:903 -msgid "Numbers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:906 -msgid "_Numeric precision:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:906 -msgid "Significant figures of the values written to the SVG file" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:909 -msgid "Minimum _exponent:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:909 -msgid "" -"The smallest number written to SVG is 10 to the power of this exponent; " -"anything smaller is written as zero" -msgstr "" - -#. Code to add controls for attribute checking options -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:914 -msgid "Improper Attributes Actions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:916 -#: ../src/ui/dialog/inkscape-preferences.cpp:924 -#: ../src/ui/dialog/inkscape-preferences.cpp:932 -msgid "Print warnings" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:917 -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:918 -msgid "Remove attributes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:919 -msgid "Delete invalid or non-useful attributes from element tag" -msgstr "" - -#. Add incorrect style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:922 -msgid "Inappropriate Style Properties Actions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:925 -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:926 -#: ../src/ui/dialog/inkscape-preferences.cpp:934 -msgid "Remove style properties" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:927 -msgid "Delete inappropriate style properties" -msgstr "" - -#. Add default or inherited style properties options -#: ../src/ui/dialog/inkscape-preferences.cpp:930 -msgid "Non-useful Style Properties Actions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:933 -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 " -"same as would be inherited). Database files located in inkscape_data_dir/" -"attributes." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:935 -msgid "Delete redundant style properties" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:937 -msgid "Check Attributes and Style Properties on" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:939 -msgid "Reading" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:940 -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:941 -msgid "Editing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:942 -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:943 -msgid "Writing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:944 -msgid "Check attributes and style properties on writing out SVG files" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:946 -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:952 -msgid "Perceptual" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:952 -msgid "Relative Colorimetric" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:952 -msgid "Absolute Colorimetric" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:956 -msgid "(Note: Color management has been disabled in this build)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:960 -msgid "Display adjustment" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:970 -#, c-format -msgid "" -"The ICC profile to use to calibrate display output.\n" -"Searched directories:%s" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:971 -msgid "Display profile:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:976 -msgid "Retrieve profile from display" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:979 -msgid "Retrieve profiles from those attached to displays via XICC" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:981 -msgid "Retrieve profiles from those attached to displays" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:986 -msgid "Display rendering intent:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:987 -msgid "The rendering intent to use to calibrate display output" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:989 -msgid "Proofing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:991 -msgid "Simulate output on screen" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:993 -msgid "Simulates output of target device" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:995 -msgid "Mark out of gamut colors" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:997 -msgid "Highlights colors that are out of gamut for the target device" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1009 -msgid "Out of gamut warning color:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1010 -msgid "Selects the color used for out of gamut warning" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1012 -msgid "Device profile:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1013 -msgid "The ICC profile to use to simulate device output" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1016 -msgid "Device rendering intent:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1017 -msgid "The rendering intent to use to calibrate device output" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1019 -msgid "Black point compensation" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1021 -msgid "Enables black point compensation" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1023 -msgid "Preserve black" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1030 -msgid "(LittleCMS 1.15 or later required)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1032 -msgid "Preserve K channel in CMYK -> CMYK transforms" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1046 -#: ../src/widgets/sp-color-icc-selector.cpp:449 -#: ../src/widgets/sp-color-icc-selector.cpp:741 -msgid "" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1091 -msgid "Color management" -msgstr "" - -#. Autosave options -#: ../src/ui/dialog/inkscape-preferences.cpp:1094 -msgid "Enable autosave (requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1095 -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:1101 -msgctxt "Filesystem" -msgid "Autosave _directory:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1101 -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:1103 -msgid "_Interval (in minutes):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1103 -msgid "Interval (in minutes) at which document will be autosaved" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1105 -msgid "_Maximum number of autosaves:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1105 -msgid "" -"Maximum number of autosaved files; use this to limit the storage space used" -msgstr "" - -#. When changing the interval or enabling/disabling the autosave function, -#. * update our running configuration -#. * -#. * FIXME! -#. * the inkscape_autosave_init should be called AFTER the values have been changed -#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere -#. -#. -#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); -#. -#. ----------- -#: ../src/ui/dialog/inkscape-preferences.cpp:1120 -msgid "Autosave" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1124 -msgid "Open Clip Art Library _Server Name:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1125 -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:1127 -msgid "Open Clip Art Library _Username:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1128 -msgid "The username used to log into Open Clip Art Library" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1130 -msgid "Open Clip Art Library _Password:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1131 -msgid "The password used to log into Open Clip Art Library" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1132 -msgid "Open Clip Art" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1137 -msgid "Behavior" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1141 -msgid "_Simplification threshold:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1142 -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:1144 -msgid "Color stock markers the same color as object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1145 -msgid "Color custom markers the same color as object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1146 -#: ../src/ui/dialog/inkscape-preferences.cpp:1356 -msgid "Update marker color when object color changes" -msgstr "" - -#. Selecting options -#: ../src/ui/dialog/inkscape-preferences.cpp:1149 -msgid "Select in all layers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1150 -msgid "Select only within current layer" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1151 -msgid "Select in current layer and sublayers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1152 -msgid "Ignore hidden objects and layers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1153 -msgid "Ignore locked objects and layers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1154 -msgid "Deselect upon layer change" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1157 -msgid "" -"Uncheck this to be able to keep the current objects selected when the " -"current layer changes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1159 -msgid "Ctrl+A, Tab, Shift+Tab" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1161 -msgid "Make keyboard selection commands work on objects in all layers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1163 -msgid "Make keyboard selection commands work on objects in current layer only" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1165 -msgid "" -"Make keyboard selection commands work on objects in current layer and all " -"its sublayers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1167 -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:1169 -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:1171 -msgid "Wrap when cycling objects in z-order" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1173 -msgid "Alt+Scroll Wheel" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1175 -msgid "Wrap around at start and end when cycling objects in z-order" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1177 -msgid "Selecting" -msgstr "" - -#. Transforms options -#: ../src/ui/dialog/inkscape-preferences.cpp:1180 -#: ../src/widgets/select-toolbar.cpp:572 -msgid "Scale stroke width" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1181 -msgid "Scale rounded corners in rectangles" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1182 -msgid "Transform gradients" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1183 -msgid "Transform patterns" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1185 -msgid "Preserved" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1188 -#: ../src/widgets/select-toolbar.cpp:573 -msgid "When scaling objects, scale the stroke width by the same proportion" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1190 -#: ../src/widgets/select-toolbar.cpp:584 -msgid "When scaling rectangles, scale the radii of rounded corners" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1192 -#: ../src/widgets/select-toolbar.cpp:595 -msgid "Move gradients (in fill or stroke) along with the objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1194 -#: ../src/widgets/select-toolbar.cpp:606 -msgid "Move patterns (in fill or stroke) along with the objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1195 -msgid "Store transformation" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1197 -msgid "" -"If possible, apply transformation to objects without adding a transform= " -"attribute" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1199 -msgid "Always store transformation as a transform= attribute on objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1201 -msgid "Transforms" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1205 -msgid "Mouse _wheel scrolls by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1206 -msgid "" -"One mouse wheel notch scrolls by this distance in screen pixels " -"(horizontally with Shift)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1207 -msgid "Ctrl+arrows" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1209 -msgid "Sc_roll by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1210 -msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1212 -msgid "_Acceleration:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1213 -msgid "" -"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " -"acceleration)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1214 -msgid "Autoscrolling" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1216 -msgid "_Speed:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1217 -msgid "" -"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " -"autoscroll off)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1219 -#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 -msgid "_Threshold:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1220 -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 "" - -#. -#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); -#. _page_scrolling.add_line( false, "", _scroll_space, "", -#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); -#. -#: ../src/ui/dialog/inkscape-preferences.cpp:1226 -msgid "Mouse wheel zooms by default" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1228 -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:1229 -msgid "Scrolling" -msgstr "" - -#. Snapping options -#: ../src/ui/dialog/inkscape-preferences.cpp:1232 -msgid "Enable snap indicator" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1234 -msgid "After snapping, a symbol is drawn at the point that has snapped" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1237 -msgid "_Delay (in ms):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1238 -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:1240 -msgid "Only snap the node closest to the pointer" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1242 -msgid "" -"Only try to snap the node that is initially closest to the mouse pointer" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1245 -msgid "_Weight factor:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1246 -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:1248 -msgid "Snap the mouse pointer when dragging a constrained knot" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1250 -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:1252 -msgid "Snapping" -msgstr "" - -#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here -#: ../src/ui/dialog/inkscape-preferences.cpp:1257 -msgid "_Arrow keys move by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1258 -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:1261 -msgid "> and < _scale by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1262 -msgid "Pressing > or < scales selection up or down by this increment" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1264 -msgid "_Inset/Outset by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1265 -msgid "Inset and Outset commands displace the path by this distance" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1266 -msgid "Compass-like display of angles" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1268 -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:1270 -msgctxt "Rotation angle" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1274 -msgid "_Rotation snaps every:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1274 -msgid "degrees" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1275 -msgid "" -"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " -"[ or ] rotates by this amount" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1276 -msgid "Relative snapping of guideline angles" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1278 -msgid "" -"When on, the snap angles when rotating a guideline will be relative to the " -"original angle" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1280 -msgid "_Zoom in/out by:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1280 -#: ../src/ui/dialog/objects.cpp:1622 -#: ../src/ui/widget/filter-effect-chooser.cpp:27 -msgid "%" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1281 -msgid "" -"Zoom tool click, +/- keys, and middle click zoom in and out by this " -"multiplier" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1282 -msgid "Steps" -msgstr "" - -#. Clones options -#: ../src/ui/dialog/inkscape-preferences.cpp:1285 -msgid "Move in parallel" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1287 -msgid "Stay unmoved" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1289 -msgid "Move according to transform" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1291 -msgid "Are unlinked" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1293 -msgid "Are deleted" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1296 -msgid "Moving original: clones and linked offsets" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1298 -msgid "Clones are translated by the same vector as their original" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1300 -msgid "Clones preserve their positions when their original is moved" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1302 -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:1303 -msgid "Deleting original: clones" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1305 -msgid "Orphaned clones are converted to regular objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1307 -msgid "Orphaned clones are deleted along with their original" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1309 -msgid "Duplicating original+clones/linked offset" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1311 -msgid "Relink duplicated clones" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1313 -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 "" - -#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page -#: ../src/ui/dialog/inkscape-preferences.cpp:1316 -msgid "Clones" -msgstr "" - -#. Clip paths and masks options -#: ../src/ui/dialog/inkscape-preferences.cpp:1319 -msgid "When applying, use the topmost selected object as clippath/mask" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1321 -msgid "" -"Uncheck this to use the bottom selected object as the clipping path or mask" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1322 -msgid "Remove clippath/mask object after applying" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1324 -msgid "" -"After applying, remove the object used as the clipping path or mask from the " -"drawing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1326 -msgid "Before applying" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1328 -msgid "Do not group clipped/masked objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1329 -msgid "Put every clipped/masked object in its own group" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1330 -msgid "Put all clipped/masked objects into one group" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1333 -msgid "Apply clippath/mask to every object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1336 -msgid "Apply clippath/mask to groups containing single object" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1339 -msgid "Apply clippath/mask to group containing all objects" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1341 -msgid "After releasing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1343 -msgid "Ungroup automatically created groups" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1345 -msgid "Ungroup groups created when setting clip/mask" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1347 -msgid "Clippaths and masks" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1350 -msgid "Stroke Style Markers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1352 -#: ../src/ui/dialog/inkscape-preferences.cpp:1354 -msgid "" -"Stroke color same as object, fill color either object fill color or marker " -"fill color" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1358 -#: ../share/extensions/hershey.inx.h:27 -msgid "Markers" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1361 -msgid "Document cleanup" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1362 -#: ../src/ui/dialog/inkscape-preferences.cpp:1364 -msgid "Remove unused swatches when doing a document cleanup" -msgstr "" - -#. tooltip -#: ../src/ui/dialog/inkscape-preferences.cpp:1365 -msgid "Cleanup" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1373 -msgid "Number of _Threads:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1373 -#: ../src/ui/dialog/inkscape-preferences.cpp:1909 -msgid "(requires restart)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1374 -msgid "Configure number of processors/threads to use when rendering filters" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 -msgid "Rendering _cache size:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 -msgctxt "mebibyte (2^20 bytes) abbreviation" -msgid "MiB" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1378 -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 "" - -#. blur quality -#. filter quality -#: ../src/ui/dialog/inkscape-preferences.cpp:1381 -#: ../src/ui/dialog/inkscape-preferences.cpp:1405 -msgid "Best quality (slowest)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1383 -#: ../src/ui/dialog/inkscape-preferences.cpp:1407 -msgid "Better quality (slower)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1385 -#: ../src/ui/dialog/inkscape-preferences.cpp:1409 -msgid "Average quality" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1387 -#: ../src/ui/dialog/inkscape-preferences.cpp:1411 -msgid "Lower quality (faster)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1389 -#: ../src/ui/dialog/inkscape-preferences.cpp:1413 -msgid "Lowest quality (fastest)" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1392 -msgid "Gaussian blur quality for display" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1394 -#: ../src/ui/dialog/inkscape-preferences.cpp:1418 -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:1396 -#: ../src/ui/dialog/inkscape-preferences.cpp:1420 -msgid "Better quality, but slower display" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1398 -#: ../src/ui/dialog/inkscape-preferences.cpp:1422 -msgid "Average quality, acceptable display speed" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1400 -#: ../src/ui/dialog/inkscape-preferences.cpp:1424 -msgid "Lower quality (some artifacts), but display is faster" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1402 -#: ../src/ui/dialog/inkscape-preferences.cpp:1426 -msgid "Lowest quality (considerable artifacts), but display is fastest" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1416 -msgid "Filter effects quality for display" -msgstr "" - -#. build custom preferences tab -#: ../src/ui/dialog/inkscape-preferences.cpp:1428 -#: ../src/ui/dialog/print.cpp:232 -msgid "Rendering" -msgstr "" - -#. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:157 -#: ../src/widgets/calligraphy-toolbar.cpp:626 -msgid "Edit" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1435 -msgid "Automatically reload bitmaps" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1437 -msgid "Automatically reload linked images when file is changed on disk" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1439 -msgid "_Bitmap editor:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 -#: ../share/extensions/print_win32_vector.inx.h:2 -msgid "Export" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1443 -msgid "Default export _resolution:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1444 -msgid "Default bitmap resolution (in dots per inch) in the Export dialog" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1445 -#: ../src/ui/dialog/xml-tree.cpp:912 -msgid "Create" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1447 -msgid "Resolution for Create Bitmap _Copy:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1448 -msgid "Resolution used by the Create Bitmap Copy command" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1451 -msgid "Ask about linking and scaling when importing" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1453 -msgid "Pop-up linking and scaling dialog when importing bitmap image." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1459 -msgid "Bitmap link:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1466 -msgid "Bitmap scale (image-rendering):" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1471 -msgid "Default _import resolution:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1472 -msgid "Default bitmap resolution (in dots per inch) for bitmap import" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1473 -msgid "Override file resolution" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1475 -msgid "Use default bitmap resolution in favor of information from file" -msgstr "" - -#. rendering outlines for pixmap image tags -#: ../src/ui/dialog/inkscape-preferences.cpp:1479 -msgid "Images in Outline Mode" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1480 -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:1482 -msgid "Bitmaps" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1494 -msgid "" -"Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added seperately to " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1497 -msgid "Shortcut file:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1500 -#: ../src/ui/dialog/template-load-tab.cpp:48 -msgid "Search:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1512 -msgid "Shortcut" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1513 -#: ../src/ui/widget/page-sizer.cpp:260 -msgid "Description" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1568 -#: ../src/ui/dialog/pixelartdialog.cpp:296 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:699 -#: ../src/ui/dialog/tracedialog.cpp:813 -#: ../src/ui/widget/preferences-widget.cpp:749 -msgid "Reset" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1568 -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:1572 -msgid "Import ..." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1572 -msgid "Import custom keyboard shortcuts from a file" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1575 -msgid "Export ..." -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1575 -msgid "Export custom keyboard shortcuts to a file" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1585 -msgid "Keyboard Shortcuts" -msgstr "" - -#. Find this group in the tree -#: ../src/ui/dialog/inkscape-preferences.cpp:1748 -msgid "Misc" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1850 -msgctxt "Spellchecker language" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1871 -msgid "Set the main spell check language" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1874 -msgid "Second language:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1875 -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:1878 -msgid "Third language:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1879 -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:1881 -msgid "Ignore words with digits" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1883 -msgid "Ignore words containing digits, such as \"R2D2\"" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1885 -msgid "Ignore words in ALL CAPITALS" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1887 -msgid "Ignore words in all capitals, such as \"IUPAC\"" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1889 -msgid "Spellcheck" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1909 -msgid "Latency _skew:" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1910 -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:1912 -msgid "Pre-render named icons" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1914 -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:1922 -msgid "System info" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1926 -msgid "User config: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1926 -msgid "Location of users configuration" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1930 -msgid "User preferences: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1930 -msgid "Location of the users preferences file" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1934 -msgid "User extensions: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1934 -msgid "Location of the users extensions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1938 -msgid "User cache: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1938 -msgid "Location of users cache" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1946 -msgid "Temporary files: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1946 -msgid "Location of the temporary files used for autosave" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "Inkscape data: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1950 -msgid "Location of Inkscape data" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1954 -msgid "Inkscape extensions: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1954 -msgid "Location of the Inkscape extensions" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1963 -msgid "System data: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1963 -msgid "Locations of system data" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1987 -msgid "Icon theme: " -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1987 -msgid "Locations of icon themes" -msgstr "" - -#: ../src/ui/dialog/inkscape-preferences.cpp:1989 -msgid "System" -msgstr "" - -#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 -#: ../src/ui/dialog/input.cpp:1641 -msgid "Disabled" -msgstr "" - -#: ../src/ui/dialog/input.cpp:361 -msgctxt "Input device" -msgid "Screen" -msgstr "" - -#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 -msgid "Window" -msgstr "" - -#: ../src/ui/dialog/input.cpp:618 -msgid "Test Area" -msgstr "" - -#: ../src/ui/dialog/input.cpp:619 -msgid "Axis" -msgstr "" - -#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 -msgid "Configuration" -msgstr "" - -#: ../src/ui/dialog/input.cpp:709 -msgid "Hardware" -msgstr "" - -#: ../src/ui/dialog/input.cpp:732 -msgid "Link:" -msgstr "" - -#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 -#: ../src/ui/dialog/input.cpp:1571 -msgid "None" -msgstr "" - -#: ../src/ui/dialog/input.cpp:758 -msgid "Axes count:" -msgstr "" - -#: ../src/ui/dialog/input.cpp:788 -msgid "axis:" -msgstr "" - -#: ../src/ui/dialog/input.cpp:812 -msgid "Button count:" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1010 -msgid "Tablet" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 -msgid "pad" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1081 -msgid "_Use pressure-sensitive tablet (requires restart)" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1086 -msgid "Axes" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1087 -msgid "Keys" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1170 -msgid "" -"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " -"or to a single (usually focused) 'Window'" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 -#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 -msgid "Pressure" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1616 -msgid "X tilt" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1616 -msgid "Y tilt" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1616 -#: ../src/widgets/sp-color-wheel-selector.cpp:32 -msgid "Wheel" -msgstr "" - -#: ../src/ui/dialog/input.cpp:1625 -msgctxt "Input device axe" -msgid "None" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:55 -msgid "Layer name:" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:136 -msgid "Add layer" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:176 -msgid "Above current" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:180 -msgid "Below current" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:183 -msgid "As sublayer of current" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:352 -msgid "Rename Layer" -msgstr "" - -#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" -#: ../src/ui/dialog/layer-properties.cpp:354 -#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:195 -#: ../src/verbs.cpp:2368 -msgid "Layer" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:355 -msgid "_Rename" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 -msgid "Rename layer" -msgstr "" - -#. TRANSLATORS: This means "The layer has been renamed" -#: ../src/ui/dialog/layer-properties.cpp:370 -msgid "Renamed layer" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:374 -msgid "Add Layer" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:380 -msgid "_Add" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:404 -msgid "New layer created." -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:408 -msgid "Move to Layer" -msgstr "" - -#: ../src/ui/dialog/layer-properties.cpp:411 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:120 -#: ../src/ui/dialog/transformation.cpp:112 -msgid "_Move" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Unhide layer" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 -msgid "Hide layer" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Lock layer" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 -msgid "Unlock layer" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:845 -#: ../src/verbs.cpp:1438 -msgid "Toggle layer solo" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:848 -#: ../src/verbs.cpp:1462 -msgid "Lock other layers" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:721 -msgid "Moved layer" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:884 -msgctxt "Layers" -msgid "New" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:889 -msgctxt "Layers" -msgid "Bot" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:895 -msgctxt "Layers" -msgid "Dn" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:901 -msgctxt "Layers" -msgid "Up" -msgstr "" - -#: ../src/ui/dialog/layers.cpp:907 -msgctxt "Layers" -msgid "Top" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-add.cpp:32 -msgid "Add Path Effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 -msgid "Add path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 -msgid "Delete current path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 -msgid "Raise the current path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 -msgid "Lower the current path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:312 -msgid "Unknown effect is applied" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:315 -msgid "Click button to add an effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:330 -msgid "Click add button to convert clone" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:335 -#: ../src/ui/dialog/livepatheffect-editor.cpp:339 -#: ../src/ui/dialog/livepatheffect-editor.cpp:348 -msgid "Select a path or shape" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:344 -msgid "Only one item can be selected" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:376 -msgid "Unknown effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:452 -msgid "Create and apply path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:492 -msgid "Create and apply Clone original path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:514 -msgid "Remove path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:532 -msgid "Move path effect up" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:549 -msgid "Move path effect down" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 -msgid "Activate path effect" -msgstr "" - -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 -msgid "Deactivate path effect" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:57 -msgid "Radius (pixels):" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 -msgid "Chamfer subdivisions:" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:144 -msgid "Modify Fillet-Chamfer" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:145 -msgid "_Modify" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:210 -msgid "Radius" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 -msgid "Radius approximated" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 -msgid "Knot distance" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:222 -msgid "Position (%):" -msgstr "" - -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:225 -msgid "%1 (%2):" -msgstr "" - -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:119 -msgid "Modify Node Position" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:96 -msgid "Heap" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:97 -msgid "In Use" -msgstr "" - -#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. -#. More typical usage is to call this memory "free" rather than "slack". -#: ../src/ui/dialog/memory.cpp:100 -msgid "Slack" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:101 -msgid "Total" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 -#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 -msgid "Unknown" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:167 -msgid "Combined" -msgstr "" - -#: ../src/ui/dialog/memory.cpp:209 -msgid "Recalculate" -msgstr "" - -#: ../src/ui/dialog/messages.cpp:47 -msgid "Clear log messages" -msgstr "" - -#: ../src/ui/dialog/messages.cpp:81 -msgid "Ready." -msgstr "" - -#: ../src/ui/dialog/messages.cpp:174 -msgid "Log capture started." -msgstr "" - -#: ../src/ui/dialog/messages.cpp:203 -msgid "Log capture stopped." -msgstr "" - -#: ../src/ui/dialog/new-from-template.cpp:27 -msgid "Create from template" -msgstr "" - -#: ../src/ui/dialog/new-from-template.cpp:29 -msgid "New From Template" -msgstr "" - -#: ../src/ui/dialog/object-attributes.cpp:47 -msgid "Href:" -msgstr "" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute -#. Identifies the type of the related resource with an absolute URI -#: ../src/ui/dialog/object-attributes.cpp:52 -msgid "Role:" -msgstr "" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute -#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. -#: ../src/ui/dialog/object-attributes.cpp:55 -msgid "Arcrole:" -msgstr "" - -#: ../src/ui/dialog/object-attributes.cpp:58 -#: ../share/extensions/polyhedron_3d.inx.h:47 -msgid "Show:" -msgstr "" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute -#: ../src/ui/dialog/object-attributes.cpp:60 -msgid "Actuate:" -msgstr "" - -#: ../src/ui/dialog/object-attributes.cpp:65 -msgid "URL:" -msgstr "" - -#: ../src/ui/dialog/object-attributes.cpp:70 -msgid "Image Rendering:" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:58 -#: ../src/ui/dialog/object-properties.cpp:399 -#: ../src/ui/dialog/object-properties.cpp:470 -#: ../src/ui/dialog/object-properties.cpp:477 -msgid "_ID:" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:60 -msgid "_Title:" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:61 -msgid "_Image Rendering:" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:62 -msgid "_Hide" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:63 -msgid "L_ock" -msgstr "" - -#. Create the entry box for the object id -#: ../src/ui/dialog/object-properties.cpp:139 -msgid "" -"The id= attribute (only letters, digits, and the characters .-_: allowed)" -msgstr "" - -#. Create the entry box for the object label -#: ../src/ui/dialog/object-properties.cpp:174 -msgid "A freeform label for the object" -msgstr "" - -#. Create the frame for the object description -#: ../src/ui/dialog/object-properties.cpp:225 -msgid "_Description:" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:260 -msgid "" -"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" -"\t'auto' no preference;\n" -"\t'optimizeQuality' smooth;\n" -"\t'optimizeSpeed' blocky.\n" -"Note that this behaviour is not defined in the SVG 1.1 specification and not " -"all browsers follow this interpretation." -msgstr "" - -#. Hide -#: ../src/ui/dialog/object-properties.cpp:293 -msgid "Check to make the object invisible" -msgstr "" - -#. Lock -#. TRANSLATORS: "Lock" is a verb here -#: ../src/ui/dialog/object-properties.cpp:309 -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:325 ../src/verbs.cpp:2711 -#: ../src/verbs.cpp:2717 -msgid "_Set" -msgstr "" - -#. Create the frame for interactivity options -#: ../src/ui/dialog/object-properties.cpp:339 -msgid "_Interactivity" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:386 -#: ../src/ui/dialog/object-properties.cpp:391 -msgid "Ref" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:472 -msgid "Id invalid! " -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:474 -msgid "Id exists! " -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:480 -msgid "Set object ID" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:494 -msgid "Set object label" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:500 -msgid "Set object title" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:509 -msgid "Set object description" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Lock object" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:552 -msgid "Unlock object" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Hide object" -msgstr "" - -#: ../src/ui/dialog/object-properties.cpp:568 -msgid "Unhide object" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:875 -msgid "Unhide objects" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:875 -msgid "Hide objects" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:895 -msgid "Lock objects" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:895 -msgid "Unlock objects" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:907 -msgid "Layer to group" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:907 -msgid "Group to layer" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1105 -msgid "Moved objects" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1354 ../src/ui/dialog/tags.cpp:875 -#: ../src/ui/dialog/tags.cpp:882 -msgid "Rename object" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1461 -msgid "Set object highlight color" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1471 -msgid "Set object opacity" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1504 -msgid "Set object blend mode" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1560 -msgid "Set object blur" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1802 -msgid "Add layer..." -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1817 -msgid "Remove object" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1832 -msgid "Move To Bottom" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1877 -msgid "Move To Top" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1892 -msgid "Collapse All" -msgstr "" - -#: ../src/ui/dialog/objects.cpp:1974 -msgid "Select Highlight Color" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:715 -msgid "Clipart found" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:764 -msgid "Downloading image..." -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:912 -msgid "Could not download image" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:922 -msgid "Clipart downloaded successfully" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:936 -msgid "Could not download thumbnail file" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1011 -msgid "No description" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1079 -msgid "Searching clipart..." -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 -msgid "Could not connect to the Open Clip Art Library" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1145 -msgid "Could not parse search results" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1177 -msgid "No clipart named %1 was found." -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1179 -msgid "" -"Please make sure all keywords are spelled correctly, or try again with " -"different keywords." -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1231 -msgid "Search" -msgstr "" - -#: ../src/ui/dialog/ocaldialogs.cpp:1243 -msgid "Close" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:190 -msgid "_Curves (multiplier):" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:193 -msgid "Favors connections that are part of a long curve" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:204 -msgid "_Islands (weight):" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:207 -msgid "Avoid single disconnected pixels" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:209 -msgid "A constant vote value" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:219 -msgid "Sparse pixels (window _radius):" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:228 -msgid "The radius of the window analyzed" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:229 -msgid "Sparse pixels (_multiplier):" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:240 -msgid "Favors connections that are part of foreground color" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:246 -msgid "The heuristic computed vote will be multiplied by this value" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:259 -msgid "Heuristics" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:266 -msgid "_Voronoi diagram" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:267 -msgid "Output composed of straight lines" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:273 -msgid "Convert to _B-spline curves" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:274 -msgid "Preserve staircasing artifacts" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:281 -msgid "_Smooth curves" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:282 -msgid "The Kopf-Lischinski algorithm" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:289 -msgid "Output" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:297 -#: ../src/ui/dialog/tracedialog.cpp:814 -msgid "Reset all settings to defaults" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:302 -#: ../src/ui/dialog/tracedialog.cpp:819 -msgid "Abort a trace in progress" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:306 -#: ../src/ui/dialog/tracedialog.cpp:823 -msgid "Execute the trace" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:388 -#: ../src/ui/dialog/pixelartdialog.cpp:422 -msgid "" -"Image looks too big. Process may take a while and it is wise to save your " -"document before continuing.\n" -"\n" -"Continue the procedure (without saving)?" -msgstr "" - -#: ../src/ui/dialog/pixelartdialog.cpp:499 -msgid "Trace pixel art" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:41 -msgctxt "Polar arrange tab" -msgid "Y coordinate of the center" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:42 -msgctxt "Polar arrange tab" -msgid "X coordinate of the center" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:43 -msgctxt "Polar arrange tab" -msgid "Y coordinate of the radius" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:44 -msgctxt "Polar arrange tab" -msgid "X coordinate of the radius" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:45 -msgctxt "Polar arrange tab" -msgid "Starting angle" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:46 -msgctxt "Polar arrange tab" -msgid "End angle" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:48 -msgctxt "Polar arrange tab" -msgid "Anchor point:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:52 -msgctxt "Polar arrange tab" -msgid "Object's bounding box:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:59 -msgctxt "Polar arrange tab" -msgid "Object's rotational center" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:64 -msgctxt "Polar arrange tab" -msgid "Arrange on:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:68 -msgctxt "Polar arrange tab" -msgid "First selected circle/ellipse/arc" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:73 -msgctxt "Polar arrange tab" -msgid "Last selected circle/ellipse/arc" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:78 -msgctxt "Polar arrange tab" -msgid "Parameterized:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:83 -msgctxt "Polar arrange tab" -msgid "Center X/Y:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:105 -msgctxt "Polar arrange tab" -msgid "Radius X/Y:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:127 -msgid "Angle X/Y:" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:150 -msgid "Rotate objects" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:338 -msgid "Couldn't find an ellipse in selection" -msgstr "" - -#: ../src/ui/dialog/polar-arrange-tab.cpp:403 -msgid "Arrange on ellipse" -msgstr "" - -#: ../src/ui/dialog/print.cpp:111 -msgid "Could not open temporary PNG for bitmap printing" -msgstr "" - -#: ../src/ui/dialog/print.cpp:155 -msgid "Could not set up Document" -msgstr "" - -#: ../src/ui/dialog/print.cpp:159 -msgid "Failed to set CairoRenderContext" -msgstr "" - -#. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:197 -msgid "SVG Document" -msgstr "" - -#: ../src/ui/dialog/print.cpp:198 -msgid "Print" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:73 -msgid "_Accept" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:74 -msgid "_Ignore once" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:75 -msgid "_Ignore" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:76 -msgid "A_dd" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:78 -msgid "_Stop" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:79 -msgid "_Start" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:109 -msgid "Suggestions:" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:124 -msgid "Accept the chosen suggestion" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:125 -msgid "Ignore this word only once" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:126 -msgid "Ignore this word in this session" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:127 -msgid "Add this word to the chosen dictionary" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:141 -msgid "Stop the check" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:142 -msgid "Start the check" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:460 -#, c-format -msgid "Finished, %d words added to dictionary" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:462 -msgid "Finished, nothing suspicious found" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:578 -#, c-format -msgid "Not in dictionary (%s): %s" -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:727 -msgid "Checking..." -msgstr "" - -#: ../src/ui/dialog/spellcheck.cpp:796 -msgid "Fix spelling" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:139 -msgid "Set SVG Font attribute" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:197 -msgid "Adjust kerning value" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:387 -msgid "Family Name:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:397 -msgid "Set width:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:456 -msgid "glyph" -msgstr "" - -#. SPGlyph* glyph = -#: ../src/ui/dialog/svg-fonts-dialog.cpp:488 -msgid "Add glyph" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:522 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:564 -msgid "Select a path to define the curves of a glyph" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:530 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:572 -msgid "The selected object does not have a path description." -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:537 -msgid "No glyph selected in the SVGFonts dialog." -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:548 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:587 -msgid "Set glyph curves" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:607 -msgid "Reset missing-glyph" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:623 -msgid "Edit glyph name" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:637 -msgid "Set glyph unicode" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:649 -msgid "Remove font" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:666 -msgid "Remove glyph" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:683 -msgid "Remove kerning pair" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:693 -msgid "Missing Glyph:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:697 -msgid "From selection..." -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 -msgid "Glyph name" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:711 -msgid "Matching string" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:714 -msgid "Add Glyph" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:721 -msgid "Get curves from selection..." -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:770 -msgid "Add kerning pair" -msgstr "" - -#. Kerning Setup: -#: ../src/ui/dialog/svg-fonts-dialog.cpp:778 -msgid "Kerning Setup" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:780 -msgid "1st Glyph:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:782 -msgid "2nd Glyph:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:785 -msgid "Add pair" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 -msgid "First Unicode range" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:798 -msgid "Second Unicode range" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:805 -msgid "Kerning value:" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:863 -msgid "Set font family" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:872 -msgid "font" -msgstr "" - -#. select_font(font); -#: ../src/ui/dialog/svg-fonts-dialog.cpp:887 -msgid "Add font" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:913 ../src/ui/dialog/text-edit.cpp:69 -msgid "_Font" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 -msgid "_Global Settings" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 -msgid "_Glyphs" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:923 -msgid "_Kerning" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 -#: ../src/ui/dialog/svg-fonts-dialog.cpp:931 -msgid "Sample Text" -msgstr "" - -#: ../src/ui/dialog/svg-fonts-dialog.cpp:935 -msgid "Preview Text:" -msgstr "" - -#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:370 -#: ../src/ui/tools/gradient-tool.cpp:468 -#: ../src/widgets/gradient-vector.cpp:794 -msgid "Add gradient stop" -msgstr "" - -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:257 -msgid "Set fill" -msgstr "" - -#. TRANSLATORS: An item in context menu on a colour in the swatches -#: ../src/ui/dialog/swatches.cpp:265 -msgid "Set stroke" -msgstr "" - -#: ../src/ui/dialog/swatches.cpp:286 -msgid "Edit..." -msgstr "" - -#: ../src/ui/dialog/swatches.cpp:298 -msgid "Convert" -msgstr "" - -#: ../src/ui/dialog/swatches.cpp:542 -#, c-format -msgid "Palettes directory (%s) is unavailable." -msgstr "" - -#. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:139 -msgid "Symbol set: " -msgstr "" - -#. Fill in later -#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 -msgid "Current Document" -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:216 -msgid "Add Symbol from the current document." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:225 -msgid "Remove Symbol from the current document." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:239 -msgid "Display more icons in row." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:248 -msgid "Display fewer icons in row." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:258 -msgid "Toggle 'fit' symbols in icon space." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:270 -msgid "Make symbols smaller by zooming out." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:280 -msgid "Make symbols bigger by zooming in." -msgstr "" - -#: ../src/ui/dialog/symbols.cpp:641 -msgid "Unnamed Symbols" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:293 ../src/ui/dialog/tags.cpp:591 -#: ../src/ui/dialog/tags.cpp:705 -msgid "Remove from selection set" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:449 -msgid "Items" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:688 -msgid "Add selection to set" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:846 -msgid "Moved sets" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:1016 -msgid "Add a new selection set" -msgstr "" - -#: ../src/ui/dialog/tags.cpp:1025 -msgid "Remove Item/Set" -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:37 -msgid "More info" -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:39 -msgid "no template selected" -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:123 -msgid "Path: " -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:126 -msgid "Description: " -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:128 -msgid "Keywords: " -msgstr "" - -#: ../src/ui/dialog/template-widget.cpp:135 -msgid "By: " -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:72 -msgid "Set as _default" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:86 -msgid "AaBbCcIiPpQq12369$€¢?.;/()" -msgstr "" - -#. Align buttons -#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1333 -#: ../src/widgets/text-toolbar.cpp:1334 -msgid "Align left" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1341 -#: ../src/widgets/text-toolbar.cpp:1342 -msgid "Align center" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1349 -#: ../src/widgets/text-toolbar.cpp:1350 -msgid "Align right" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 -msgid "Justify (only flowed text)" -msgstr "" - -#. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 -msgid "Horizontal text" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1400 -msgid "Vertical text" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:129 ../src/ui/dialog/text-edit.cpp:130 -msgid "Spacing between lines (percent of font size)" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:146 -msgid "Text path offset" -msgstr "" - -#: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 -#: ../src/ui/tools/text-tool.cpp:1455 -msgid "Set text style" -msgstr "" - -#: ../src/ui/dialog/tile.cpp:36 -msgctxt "Arrange dialog" -msgid "Rectangular grid" -msgstr "" - -#: ../src/ui/dialog/tile.cpp:37 -msgctxt "Arrange dialog" -msgid "Polar Coordinates" -msgstr "" - -#: ../src/ui/dialog/tile.cpp:40 -msgctxt "Arrange dialog" -msgid "_Arrange" -msgstr "" - -#: ../src/ui/dialog/tile.cpp:42 -msgid "Arrange selected objects" -msgstr "" - -#. #### begin left panel -#. ### begin notebook -#. ## begin mode page -#. # begin single scan -#. brightness -#: ../src/ui/dialog/tracedialog.cpp:508 -msgid "_Brightness cutoff" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:512 -msgid "Trace by a given brightness level" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:519 -msgid "Brightness cutoff for black/white" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:529 -msgid "Single scan: creates a path" -msgstr "" - -#. canny edge detection -#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method -#: ../src/ui/dialog/tracedialog.cpp:534 -msgid "_Edge detection" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:538 -msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:556 -msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:559 -msgid "T_hreshold:" -msgstr "" - -#. quantization -#. TRANSLATORS: Color Quantization: the process of reducing the number -#. of colors in an image by selecting an optimized set of representative -#. colors and then re-applying this reduced set to the original image. -#: ../src/ui/dialog/tracedialog.cpp:571 -msgid "Color _quantization" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:575 -msgid "Trace along the boundaries of reduced colors" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:583 -msgid "The number of reduced colors" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:586 -msgid "_Colors:" -msgstr "" - -#. swap black and white -#: ../src/ui/dialog/tracedialog.cpp:594 -msgid "_Invert image" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:599 -msgid "Invert black and white regions" -msgstr "" - -#. # end single scan -#. # begin multiple scan -#: ../src/ui/dialog/tracedialog.cpp:609 -msgid "B_rightness steps" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:613 -msgid "Trace the given number of brightness levels" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:621 -msgid "Sc_ans:" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:625 -msgid "The desired number of scans" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:630 -msgid "Co_lors" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:634 -msgid "Trace the given number of reduced colors" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:639 -msgid "_Grays" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:643 -msgid "Same as Colors, but the result is converted to grayscale" -msgstr "" - -#. TRANSLATORS: "Smooth" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:649 -msgid "S_mooth" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:653 -msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "" - -#. TRANSLATORS: "Stack" is a verb here -#: ../src/ui/dialog/tracedialog.cpp:657 -msgid "Stac_k scans" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:661 -msgid "" -"Stack scans on top of one another (no gaps) instead of tiling (usually with " -"gaps)" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:665 -msgid "Remo_ve background" -msgstr "" - -#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan -#: ../src/ui/dialog/tracedialog.cpp:670 -msgid "Remove bottom (background) layer when done" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:675 -msgid "Multiple scans: creates a group of paths" -msgstr "" - -#. # end multiple scan -#. ## end mode page -#: ../src/ui/dialog/tracedialog.cpp:684 -msgid "_Mode" -msgstr "" - -#. ## begin option page -#. # potrace parameters -#: ../src/ui/dialog/tracedialog.cpp:690 -msgid "Suppress _speckles" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:692 -msgid "Ignore small spots (speckles) in the bitmap" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:700 -msgid "Speckles of up to this many pixels will be suppressed" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:703 -msgid "S_ize:" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:708 -msgid "Smooth _corners" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:710 -msgid "Smooth out sharp corners of the trace" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:719 -msgid "Increase this to smooth corners more" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:726 -msgid "Optimize p_aths" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:729 -msgid "Try to optimize paths by joining adjacent Bezier curve segments" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:737 -msgid "" -"Increase this to reduce the number of nodes in the trace by more aggressive " -"optimization" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:739 -msgid "To_lerance:" -msgstr "" - -#. ## end option page -#: ../src/ui/dialog/tracedialog.cpp:753 -msgid "O_ptions" -msgstr "" - -#. ### credits -#: ../src/ui/dialog/tracedialog.cpp:757 -msgid "" -"Inkscape bitmap tracing\n" -"is based on Potrace,\n" -"created by Peter Selinger\n" -"\n" -"http://potrace.sourceforge.net" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:760 -msgid "Credits" -msgstr "" - -#. #### begin right panel -#. ## SIOX -#: ../src/ui/dialog/tracedialog.cpp:774 -msgid "SIOX _foreground selection" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:777 -msgid "Cover the area you want to select as the foreground" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:782 -msgid "Live Preview" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:788 -msgid "_Update" -msgstr "" - -#. I guess it's correct to call the "intermediate bitmap" a preview of the trace -#: ../src/ui/dialog/tracedialog.cpp:796 -msgid "" -"Preview the intermediate bitmap with the current settings, without actual " -"tracing" -msgstr "" - -#: ../src/ui/dialog/tracedialog.cpp:800 -msgid "Preview" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:74 -#: ../src/ui/dialog/transformation.cpp:84 -msgid "_Horizontal:" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:74 -msgid "Horizontal displacement (relative) or position (absolute)" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 -msgid "_Vertical:" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:76 -msgid "Vertical displacement (relative) or position (absolute)" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:78 -msgid "Horizontal size (absolute or percentage of current)" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:80 -msgid "Vertical size (absolute or percentage of current)" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:82 -msgid "A_ngle:" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:82 -#: ../src/ui/dialog/transformation.cpp:1103 -msgid "Rotation angle (positive = counterclockwise)" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:84 -msgid "" -"Horizontal skew angle (positive = counterclockwise), or absolute " -"displacement, or percentage displacement" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:86 -msgid "" -"Vertical skew angle (positive = counterclockwise), or absolute displacement, " -"or percentage displacement" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:89 -msgid "Transformation matrix element A" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:90 -msgid "Transformation matrix element B" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:91 -msgid "Transformation matrix element C" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:92 -msgid "Transformation matrix element D" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:93 -msgid "Transformation matrix element E" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:94 -msgid "Transformation matrix element F" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:99 -msgid "Rela_tive move" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:99 -msgid "" -"Add the specified relative displacement to the current position; otherwise, " -"edit the current absolute position directly" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:100 -msgid "_Scale proportionally" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:100 -msgid "Preserve the width/height ratio of the scaled objects" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:101 -msgid "Apply to each _object separately" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:101 -msgid "" -"Apply the scale/rotate/skew to each selected object separately; otherwise, " -"transform the selection as a whole" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:102 -msgid "Edit c_urrent matrix" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:102 -msgid "" -"Edit the current transform= matrix; otherwise, post-multiply transform= by " -"this matrix" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:115 -msgid "_Scale" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:118 -msgid "_Rotate" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:121 -msgid "Ske_w" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:124 -msgid "Matri_x" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:148 -msgid "Reset the values on the current tab to defaults" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:155 -msgid "Apply transformation to selection" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:331 -msgid "Rotate in a counterclockwise direction" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:337 -msgid "Rotate in a clockwise direction" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:907 -#: ../src/ui/dialog/transformation.cpp:918 -#: ../src/ui/dialog/transformation.cpp:932 -#: ../src/ui/dialog/transformation.cpp:951 -#: ../src/ui/dialog/transformation.cpp:962 -#: ../src/ui/dialog/transformation.cpp:972 -#: ../src/ui/dialog/transformation.cpp:996 -msgid "Transform matrix is singular, not used." -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:1011 -msgid "Edit transformation matrix" -msgstr "" - -#: ../src/ui/dialog/transformation.cpp:1110 -msgid "Rotation angle (positive = clockwise)" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 -msgid "New element node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 -msgid "New text node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 -msgid "nodeAsInXMLdialogTooltip|Delete node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 -msgid "Duplicate node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 -msgid "Delete attribute" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:87 -msgid "Set" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:121 -msgid "Drag to reorder nodes" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1135 -msgid "Unindent node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1113 -msgid "Indent node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1064 -msgid "Raise node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1082 -msgid "Lower node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:208 -msgid "Attribute name" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:223 -msgid "Attribute value" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:311 -msgid "Click to select nodes, drag to rearrange." -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:322 -msgid "Click attribute to edit." -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:326 -#, c-format -msgid "" -"Attribute %s selected. Press Ctrl+Enter when done editing to " -"commit changes." -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:566 -msgid "Drag XML subtree" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:868 -msgid "New element node..." -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:906 -msgid "Cancel" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:943 -msgid "Create new element node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:959 -msgid "Create new text node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:994 -msgid "nodeAsInXMLinHistoryDialog|Delete node" -msgstr "" - -#: ../src/ui/dialog/xml-tree.cpp:1038 -msgid "Change attribute" -msgstr "" - -#: ../src/ui/interface.cpp:748 -msgctxt "Interface setup" -msgid "Default" -msgstr "" - -#: ../src/ui/interface.cpp:748 -msgid "Default interface setup" -msgstr "" - -#: ../src/ui/interface.cpp:749 -msgctxt "Interface setup" -msgid "Custom" -msgstr "" - -#: ../src/ui/interface.cpp:749 -msgid "Setup for custom task" -msgstr "" - -#: ../src/ui/interface.cpp:750 -msgctxt "Interface setup" -msgid "Wide" -msgstr "" - -#: ../src/ui/interface.cpp:750 -msgid "Setup for widescreen work" -msgstr "" - -#: ../src/ui/interface.cpp:862 -#, c-format -msgid "Verb \"%s\" Unknown" -msgstr "" - -#: ../src/ui/interface.cpp:901 -msgid "Open _Recent" -msgstr "" - -#: ../src/ui/interface.cpp:1009 ../src/ui/interface.cpp:1095 -#: ../src/ui/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:544 -msgid "Drop color" -msgstr "" - -#: ../src/ui/interface.cpp:1048 ../src/ui/interface.cpp:1158 -msgid "Drop color on gradient" -msgstr "" - -#: ../src/ui/interface.cpp:1211 -msgid "Could not parse SVG data" -msgstr "" - -#: ../src/ui/interface.cpp:1250 -msgid "Drop SVG" -msgstr "" - -#: ../src/ui/interface.cpp:1263 -msgid "Drop Symbol" -msgstr "" - -#: ../src/ui/interface.cpp:1294 -msgid "Drop bitmap image" -msgstr "" - -#: ../src/ui/interface.cpp:1386 -#, c-format -msgid "" -"A file named \"%s\" already exists. Do " -"you want to replace it?\n" -"\n" -"The file already exists in \"%s\". Replacing it will overwrite its contents." -msgstr "" - -#: ../src/ui/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 -#: ../share/extensions/web-transmit-att.inx.h:19 -msgid "Replace" -msgstr "" - -#: ../src/ui/interface.cpp:1464 -msgid "Go to parent" -msgstr "" - -#. TRANSLATORS: #%1 is the id of the group e.g. , not a number. -#: ../src/ui/interface.cpp:1505 -msgid "Enter group #%1" -msgstr "" - -#. Item dialog -#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2932 -msgid "_Object Properties..." -msgstr "" - -#: ../src/ui/interface.cpp:1650 -msgid "_Select This" -msgstr "" - -#: ../src/ui/interface.cpp:1661 -msgid "Select Same" -msgstr "" - -#. Select same fill and stroke -#: ../src/ui/interface.cpp:1671 -msgid "Fill and Stroke" -msgstr "" - -#. Select same fill color -#: ../src/ui/interface.cpp:1678 -msgid "Fill Color" -msgstr "" - -#. Select same stroke color -#: ../src/ui/interface.cpp:1685 -msgid "Stroke Color" -msgstr "" - -#. Select same stroke style -#: ../src/ui/interface.cpp:1692 -msgid "Stroke Style" -msgstr "" - -#. Select same stroke style -#: ../src/ui/interface.cpp:1699 -msgid "Object type" -msgstr "" - -#. Move to layer -#: ../src/ui/interface.cpp:1706 -msgid "_Move to layer ..." -msgstr "" - -#. Create link -#: ../src/ui/interface.cpp:1716 -msgid "Create _Link" -msgstr "" - -#. Set mask -#: ../src/ui/interface.cpp:1739 -msgid "Set Mask" -msgstr "" - -#. Release mask -#: ../src/ui/interface.cpp:1750 -msgid "Release Mask" -msgstr "" - -#. SSet Clip Group -#: ../src/ui/interface.cpp:1761 -msgid "Create Clip G_roup" -msgstr "" - -#. Set Clip -#: ../src/ui/interface.cpp:1768 -msgid "Set Cl_ip" -msgstr "" - -#. Release Clip -#: ../src/ui/interface.cpp:1779 -msgid "Release C_lip" -msgstr "" - -#. Group -#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2565 -msgid "_Group" -msgstr "" - -#: ../src/ui/interface.cpp:1861 -msgid "Create link" -msgstr "" - -#. Ungroup -#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2567 -msgid "_Ungroup" -msgstr "" - -#. Link dialog -#: ../src/ui/interface.cpp:1921 -msgid "Link _Properties..." -msgstr "" - -#. Select item -#: ../src/ui/interface.cpp:1927 -msgid "_Follow Link" -msgstr "" - -#. Reset transformations -#: ../src/ui/interface.cpp:1933 -msgid "_Remove Link" -msgstr "" - -#: ../src/ui/interface.cpp:1964 -msgid "Remove link" -msgstr "" - -#. Image properties -#: ../src/ui/interface.cpp:1975 -msgid "Image _Properties..." -msgstr "" - -#. Edit externally -#: ../src/ui/interface.cpp:1981 -msgid "Edit Externally..." -msgstr "" - -#. Trace Bitmap -#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/ui/interface.cpp:1990 ../src/verbs.cpp:2628 -msgid "_Trace Bitmap..." -msgstr "" - -#. Trace Pixel Art -#: ../src/ui/interface.cpp:1999 -msgid "Trace Pixel Art" -msgstr "" - -#: ../src/ui/interface.cpp:2009 -msgctxt "Context menu" -msgid "Embed Image" -msgstr "" - -#: ../src/ui/interface.cpp:2020 -msgctxt "Context menu" -msgid "Extract Image..." -msgstr "" - -#. Item dialog -#. Fill and Stroke dialog -#: ../src/ui/interface.cpp:2165 ../src/ui/interface.cpp:2185 -#: ../src/verbs.cpp:2895 -msgid "_Fill and Stroke..." -msgstr "" - -#. Edit Text dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2914 -msgid "_Text and Font..." -msgstr "" - -#. Spellcheck dialog -#: ../src/ui/interface.cpp:2197 ../src/verbs.cpp:2922 -msgid "Check Spellin_g..." -msgstr "" - -#: ../src/ui/object-edit.cpp:456 -msgid "" -"Adjust the horizontal rounding radius; with Ctrl to make the " -"vertical radius the same" -msgstr "" - -#: ../src/ui/object-edit.cpp:461 -msgid "" -"Adjust the vertical rounding radius; with Ctrl to make the " -"horizontal radius the same" -msgstr "" - -#: ../src/ui/object-edit.cpp:466 ../src/ui/object-edit.cpp:471 -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:718 ../src/ui/object-edit.cpp:722 -#: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 -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:734 ../src/ui/object-edit.cpp:738 -#: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 -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:750 -msgid "Move the box in perspective" -msgstr "" - -#: ../src/ui/object-edit.cpp:989 -msgid "Adjust ellipse width, with Ctrl to make circle" -msgstr "" - -#: ../src/ui/object-edit.cpp:993 -msgid "Adjust ellipse height, with Ctrl to make circle" -msgstr "" - -#: ../src/ui/object-edit.cpp:997 -msgid "" -"Position the start point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" -msgstr "" - -#: ../src/ui/object-edit.cpp:1002 -msgid "" -"Position the end point of the arc or segment; with Ctrl to " -"snap angle; drag inside the ellipse for arc, outside for " -"segment" -msgstr "" - -#: ../src/ui/object-edit.cpp:1148 -msgid "" -"Adjust the tip radius of the star or polygon; with Shift to " -"round; with Alt to randomize" -msgstr "" - -#: ../src/ui/object-edit.cpp:1156 -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:1351 -msgid "" -"Roll/unroll the spiral from inside; with Ctrl to snap angle; " -"with Alt to converge/diverge" -msgstr "" - -#: ../src/ui/object-edit.cpp:1355 -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:1402 -msgid "Adjust the offset distance" -msgstr "" - -#: ../src/ui/object-edit.cpp:1439 -msgid "Drag to resize the flowed text frame" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:119 -msgid "Drag curve" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:176 -msgid "Add node" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:186 -msgctxt "Path segment tip" -msgid "Shift: click to toggle segment selection" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:190 -msgctxt "Path segment tip" -msgid "Ctrl+Alt: click to insert a node" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:194 -msgctxt "Path segment tip" -msgid "" -"Linear segment: drag to convert to a Bezier segment, doubleclick to " -"insert node, click to select (more: Shift, Ctrl+Alt)" -msgstr "" - -#: ../src/ui/tool/curve-drag-point.cpp:198 -msgctxt "Path segment tip" -msgid "" -"Bezier segment: drag to shape the segment, doubleclick to insert " -"node, click to select (more: Shift, Ctrl+Alt)" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:315 -msgid "Retract handles" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 -msgid "Change node type" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:323 -msgid "Straighten segments" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:325 -msgid "Make segments curves" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:333 -msgid "Add nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:339 -msgid "Add extremum nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:346 -msgid "Duplicate nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:409 -#: ../src/widgets/node-toolbar.cpp:408 -msgid "Join nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:416 -#: ../src/widgets/node-toolbar.cpp:419 -msgid "Break nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:423 -msgid "Delete nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:768 -msgid "Move nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:771 -msgid "Move nodes horizontally" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:775 -msgid "Move nodes vertically" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:786 -#: ../src/ui/tool/multi-path-manipulator.cpp:792 -msgid "Scale nodes uniformly" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:789 -msgid "Scale nodes" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:796 -msgid "Scale nodes horizontally" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:800 -msgid "Scale nodes vertically" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:804 -msgid "Skew nodes horizontally" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:808 -msgid "Skew nodes vertically" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:812 -msgid "Flip nodes horizontally" -msgstr "" - -#: ../src/ui/tool/multi-path-manipulator.cpp:815 -msgid "Flip nodes vertically" -msgstr "" - -#: ../src/ui/tool/node.cpp:271 -msgid "Cusp node handle" -msgstr "" - -#: ../src/ui/tool/node.cpp:272 -msgid "Smooth node handle" -msgstr "" - -#: ../src/ui/tool/node.cpp:273 -msgid "Symmetric node handle" -msgstr "" - -#: ../src/ui/tool/node.cpp:274 -msgid "Auto-smooth node handle" -msgstr "" - -#: ../src/ui/tool/node.cpp:493 -msgctxt "Path handle tip" -msgid "more: Shift, Ctrl, Alt" -msgstr "" - -#: ../src/ui/tool/node.cpp:495 -msgctxt "Path handle tip" -msgid "more: Ctrl" -msgstr "" - -#: ../src/ui/tool/node.cpp:497 -msgctxt "Path handle tip" -msgid "more: Ctrl, Alt" -msgstr "" - -#: ../src/ui/tool/node.cpp:503 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " -"increments while rotating both handles" -msgstr "" - -#: ../src/ui/tool/node.cpp:508 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" -msgstr "" - -#: ../src/ui/tool/node.cpp:514 -msgctxt "Path handle tip" -msgid "Shift+Alt: preserve handle length and rotate both handles" -msgstr "" - -#: ../src/ui/tool/node.cpp:517 -msgctxt "Path handle tip" -msgid "Alt: preserve handle length while dragging" -msgstr "" - -#: ../src/ui/tool/node.cpp:524 -#, c-format -msgctxt "Path handle tip" -msgid "" -"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " -"handles" -msgstr "" - -#: ../src/ui/tool/node.cpp:528 -msgctxt "Path handle tip" -msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" -msgstr "" - -#: ../src/ui/tool/node.cpp:531 -#, c-format -msgctxt "Path handle tip" -msgid "Ctrl: snap rotation angle to %g° increments, click to retract" -msgstr "" - -#: ../src/ui/tool/node.cpp:536 -msgctxt "Path hande tip" -msgid "Shift: rotate both handles by the same angle" -msgstr "" - -#: ../src/ui/tool/node.cpp:539 -msgctxt "Path hande tip" -msgid "Shift: move handle" -msgstr "" - -#: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 -#, c-format -msgctxt "Path handle tip" -msgid "Auto node handle: drag to convert to smooth node (%s)" -msgstr "" - -#: ../src/ui/tool/node.cpp:553 -#, c-format -msgctxt "Path handle tip" -msgid "BSpline node handle: Shift to drag, double click to reset (%s)" -msgstr "" - -#: ../src/ui/tool/node.cpp:573 -#, c-format -msgctxt "Path handle tip" -msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "" - -#: ../src/ui/tool/node.cpp:1447 -msgctxt "Path node tip" -msgid "Shift: drag out a handle, click to toggle selection" -msgstr "" - -#: ../src/ui/tool/node.cpp:1449 -msgctxt "Path node tip" -msgid "Shift: click to toggle selection" -msgstr "" - -#: ../src/ui/tool/node.cpp:1454 -msgctxt "Path node tip" -msgid "Ctrl+Alt: move along handle lines, click to delete node" -msgstr "" - -#: ../src/ui/tool/node.cpp:1457 -msgctxt "Path node tip" -msgid "Ctrl: move along axes, click to change node type" -msgstr "" - -#: ../src/ui/tool/node.cpp:1461 -msgctxt "Path node tip" -msgid "Alt: sculpt nodes" -msgstr "" - -#: ../src/ui/tool/node.cpp:1469 -#, c-format -msgctxt "Path node tip" -msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" - -#: ../src/ui/tool/node.cpp:1472 -#, c-format -msgctxt "Path node tip" -msgid "" -"BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, " -"Alt)" -msgstr "" - -#: ../src/ui/tool/node.cpp:1475 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to toggle scale/rotation handles " -"(more: Shift, Ctrl, Alt)" -msgstr "" - -#: ../src/ui/tool/node.cpp:1479 -#, c-format -msgctxt "Path node tip" -msgid "" -"%s: drag to shape the path, click to select only this node (more: " -"Shift, Ctrl, Alt)" -msgstr "" - -#: ../src/ui/tool/node.cpp:1482 -msgctxt "Path node tip" -msgid "" -"BSpline node: drag to shape the path, click to select only this node " -"(more: Shift, Ctrl, Alt)" -msgstr "" - -#: ../src/ui/tool/node.cpp:1495 -#, c-format -msgctxt "Path node tip" -msgid "Move node by %s, %s" -msgstr "" - -#: ../src/ui/tool/node.cpp:1506 -msgid "Symmetric node" -msgstr "" - -#: ../src/ui/tool/node.cpp:1507 -msgid "Auto-smooth node" -msgstr "" - -#: ../src/ui/tool/path-manipulator.cpp:836 -msgid "Scale handle" -msgstr "" - -#: ../src/ui/tool/path-manipulator.cpp:860 -msgid "Rotate handle" -msgstr "" - -#. We need to call MPM's method because it could have been our last node -#: ../src/ui/tool/path-manipulator.cpp:1524 -#: ../src/widgets/node-toolbar.cpp:397 -msgid "Delete node" -msgstr "" - -#: ../src/ui/tool/path-manipulator.cpp:1532 -msgid "Cycle node type" -msgstr "" - -#: ../src/ui/tool/path-manipulator.cpp:1547 -msgid "Drag handle" -msgstr "" - -#: ../src/ui/tool/path-manipulator.cpp:1556 -msgid "Retract handle" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:195 -msgctxt "Transform handle tip" -msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:197 -msgctxt "Transform handle tip" -msgid "Ctrl: scale uniformly" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:202 -msgctxt "Transform handle tip" -msgid "" -"Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:204 -msgctxt "Transform handle tip" -msgid "Shift: scale from the rotation center" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:207 -msgctxt "Transform handle tip" -msgid "Alt: scale using an integer ratio" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:209 -msgctxt "Transform handle tip" -msgid "Scale handle: drag to scale the selection" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:214 -#, c-format -msgctxt "Transform handle tip" -msgid "Scale by %.2f%% x %.2f%%" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:438 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " -"increments" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:441 -msgctxt "Transform handle tip" -msgid "Shift: rotate around the opposite corner" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:445 -#, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap angle to %f° increments" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:447 -msgctxt "Transform handle tip" -msgid "" -"Rotation handle: drag to rotate the selection around the rotation " -"center" -msgstr "" - -#. event -#: ../src/ui/tool/transform-handle-set.cpp:452 -#, c-format -msgctxt "Transform handle tip" -msgid "Rotate by %.2f°" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:578 -#, c-format -msgctxt "Transform handle tip" -msgid "" -"Shift+Ctrl: skew about the rotation center with snapping to %f° " -"increments" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:581 -msgctxt "Transform handle tip" -msgid "Shift: skew about the rotation center" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:585 -#, c-format -msgctxt "Transform handle tip" -msgid "Ctrl: snap skew angle to %f° increments" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:588 -msgctxt "Transform handle tip" -msgid "" -"Skew handle: drag to skew (shear) selection about the opposite handle" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:594 -#, c-format -msgctxt "Transform handle tip" -msgid "Skew horizontally by %.2f°" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:597 -#, c-format -msgctxt "Transform handle tip" -msgid "Skew vertically by %.2f°" -msgstr "" - -#: ../src/ui/tool/transform-handle-set.cpp:656 -msgctxt "Transform handle tip" -msgid "Rotation center: drag to change the origin of transforms" -msgstr "" - -#: ../src/ui/tools-switch.cpp:95 -msgid "" -"Click to Select and Transform objects, Drag to select many " -"objects." -msgstr "" - -#: ../src/ui/tools-switch.cpp:96 -msgid "Modify selected path points (nodes) directly." -msgstr "" - -#: ../src/ui/tools-switch.cpp:97 -msgid "To tweak a path by pushing, select it and drag over it." -msgstr "" - -#: ../src/ui/tools-switch.cpp:98 -msgid "" -"Drag, click or click and scroll to spray the selected " -"objects." -msgstr "" - -#: ../src/ui/tools-switch.cpp:99 -msgid "" -"Drag to create a rectangle. Drag controls to round corners and " -"resize. Click to select." -msgstr "" - -#: ../src/ui/tools-switch.cpp:100 -msgid "" -"Drag to create a 3D box. Drag controls to resize in " -"perspective. Click to select (with Ctrl+Alt for single faces)." -msgstr "" - -#: ../src/ui/tools-switch.cpp:101 -msgid "" -"Drag to create an ellipse. Drag controls to make an arc or " -"segment. Click to select." -msgstr "" - -#: ../src/ui/tools-switch.cpp:102 -msgid "" -"Drag to create a star. Drag controls to edit the star shape. " -"Click to select." -msgstr "" - -#: ../src/ui/tools-switch.cpp:103 -msgid "" -"Drag to create a spiral. Drag controls to edit the spiral " -"shape. Click to select." -msgstr "" - -#: ../src/ui/tools-switch.cpp:104 -msgid "" -"Drag to create a freehand line. Shift appends to selected " -"path, Alt activates sketch mode." -msgstr "" - -#: ../src/ui/tools-switch.cpp:105 -msgid "" -"Click or click and drag to start a path; with Shift to " -"append to selected path. Ctrl+click to create single dots (straight " -"line modes only)." -msgstr "" - -#: ../src/ui/tools-switch.cpp:106 -msgid "" -"Drag to draw a calligraphic stroke; with Ctrl to track a guide " -"path. Arrow keys adjust width (left/right) and angle (up/down)." -msgstr "" - -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1593 -msgid "" -"Click to select or create text, drag to create flowed text; " -"then type." -msgstr "" - -#: ../src/ui/tools-switch.cpp:108 -msgid "" -"Drag or double click to create a gradient on selected objects, " -"drag handles to adjust gradients." -msgstr "" - -#: ../src/ui/tools-switch.cpp:109 -msgid "" -"Drag or double click to create a mesh on selected objects, " -"drag handles to adjust meshes." -msgstr "" - -#: ../src/ui/tools-switch.cpp:110 -msgid "" -"Click or drag around an area to zoom in, Shift+click to " -"zoom out." -msgstr "" - -#: ../src/ui/tools-switch.cpp:111 -msgid "Drag to measure the dimensions of objects." -msgstr "" - -#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:285 -msgid "" -"Click to set fill, Shift+click to set stroke; drag to " -"average color in area; with Alt to pick inverse color; Ctrl+C " -"to copy the color under mouse to clipboard" -msgstr "" - -#: ../src/ui/tools-switch.cpp:113 -msgid "Click and drag between shapes to create a connector." -msgstr "" - -#: ../src/ui/tools-switch.cpp:114 -msgid "" -"Click to paint a bounded area, Shift+click to union the new " -"fill with the current selection, Ctrl+click to change the clicked " -"object's fill and stroke to the current setting." -msgstr "" - -#: ../src/ui/tools-switch.cpp:115 -msgid "Drag to erase." -msgstr "" - -#: ../src/ui/tools-switch.cpp:116 -msgid "Choose a subtool from the toolbar" -msgstr "" - -#: ../src/ui/tools/arc-tool.cpp:252 -msgid "" -"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" -msgstr "" - -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 -msgid "Shift: draw around the starting point" -msgstr "" - -#: ../src/ui/tools/arc-tool.cpp:422 -#, c-format -msgid "" -"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " -"to draw around the starting point" -msgstr "" - -#: ../src/ui/tools/arc-tool.cpp:424 -#, c-format -msgid "" -"Ellipse: %s × %s; with Ctrl to make square or integer-" -"ratio ellipse; with Shift to draw around the starting point" -msgstr "" - -#: ../src/ui/tools/arc-tool.cpp:447 -msgid "Create ellipse" -msgstr "" - -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 -msgid "Change perspective (angle of PLs)" -msgstr "" - -#. status text -#: ../src/ui/tools/box3d-tool.cpp:583 -msgid "3D Box; with Shift to extrude along the Z axis" -msgstr "" - -#: ../src/ui/tools/box3d-tool.cpp:609 -msgid "Create 3D box" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:536 -msgid "" -"Guide path selected; start drawing along the guide with Ctrl" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:538 -msgid "Select a guide path to track with Ctrl" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking: connection to guide path lost!" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:673 -msgid "Tracking a guide path" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:676 -msgid "Drawing a calligraphic stroke" -msgstr "" - -#: ../src/ui/tools/calligraphic-tool.cpp:977 -msgid "Draw calligraphic stroke" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:499 -msgid "Creating new connector" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:740 -msgid "Connector endpoint drag cancelled." -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:783 -msgid "Reroute connector" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:936 -msgid "Create connector" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:953 -msgid "Finishing connector" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:1191 -msgid "Connector endpoint: drag to reroute or connect to new shapes" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:1336 -msgid "Select at least one non-connector object." -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:1341 -#: ../src/widgets/connector-toolbar.cpp:314 -msgid "Make connectors avoid selected objects" -msgstr "" - -#: ../src/ui/tools/connector-tool.cpp:1342 -#: ../src/widgets/connector-toolbar.cpp:324 -msgid "Make connectors ignore selected objects" -msgstr "" - -#. alpha of color under cursor, to show in the statusbar -#. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 -#, c-format -msgid " alpha %.3g" -msgstr "" - -#. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 -#, c-format -msgid ", averaged with radius %d" -msgstr "" - -#: ../src/ui/tools/dropper-tool.cpp:283 -msgid " under cursor" -msgstr "" - -#. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 -msgid "Release mouse to set color." -msgstr "" - -#: ../src/ui/tools/dropper-tool.cpp:333 -msgid "Set picked color" -msgstr "" - -#: ../src/ui/tools/eraser-tool.cpp:437 -msgid "Drawing an eraser stroke" -msgstr "" - -#: ../src/ui/tools/eraser-tool.cpp:770 -msgid "Draw eraser stroke" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:192 -msgid "Visible Colors" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:210 -msgctxt "Flood autogap" -msgid "None" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:211 -msgctxt "Flood autogap" -msgid "Small" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:212 -msgctxt "Flood autogap" -msgid "Medium" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:213 -msgctxt "Flood autogap" -msgid "Large" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:435 -msgid "Too much inset, the result is empty." -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:476 -#, c-format -msgid "" -"Area filled, path with %d node created and unioned with selection." -msgid_plural "" -"Area filled, path with %d nodes created and unioned with selection." -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/flood-tool.cpp:482 -#, c-format -msgid "Area filled, path with %d node created." -msgid_plural "Area filled, path with %d nodes created." -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 -msgid "Area is not bounded, cannot fill." -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:1065 -msgid "" -"Only the visible part of the bounded area was filled. If you want to " -"fill all of the area, undo, zoom out, and fill again." -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 -msgid "Fill bounded area" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:1099 -msgid "Set style on object" -msgstr "" - -#: ../src/ui/tools/flood-tool.cpp:1159 -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:557 -msgid "Path is closed." -msgstr "" - -#. We hit bot start and end of single curve, closing paths -#: ../src/ui/tools/freehand-base.cpp:572 -msgid "Closing path." -msgstr "" - -#: ../src/ui/tools/freehand-base.cpp:709 -msgid "Draw path" -msgstr "" - -#: ../src/ui/tools/freehand-base.cpp:862 -msgid "Creating single dot" -msgstr "" - -#: ../src/ui/tools/freehand-base.cpp:863 -msgid "Create single dot" -msgstr "" - -#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 -#, c-format -msgid "%s selected" -msgstr "" - -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 -#, c-format -msgid " out of %d gradient handle" -msgid_plural " out of %d gradient handles" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 -#, c-format -msgid " on %d selected object" -msgid_plural " on %d selected objects" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 -#, c-format -msgid "" -"One handle merging %d stop (drag with Shift to separate) selected" -msgid_plural "" -"One handle merging %d stops (drag with Shift to separate) selected" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 -#, c-format -msgid "%d gradient handle selected out of %d" -msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 -#, c-format -msgid "No gradient handles selected out of %d on %d selected object" -msgid_plural "" -"No gradient handles selected out of %d on %d selected objects" -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/gradient-tool.cpp:443 -msgid "Simplify gradient" -msgstr "" - -#: ../src/ui/tools/gradient-tool.cpp:519 -msgid "Create default gradient" -msgstr "" - -#: ../src/ui/tools/gradient-tool.cpp:578 ../src/ui/tools/mesh-tool.cpp:570 -msgid "Draw around handles to select them" -msgstr "" - -#: ../src/ui/tools/gradient-tool.cpp:701 -msgid "Ctrl: snap gradient angle" -msgstr "" - -#: ../src/ui/tools/gradient-tool.cpp:702 -msgid "Shift: draw gradient around the starting point" -msgstr "" - -#: ../src/ui/tools/gradient-tool.cpp:956 ../src/ui/tools/mesh-tool.cpp:993 -#, 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:960 ../src/ui/tools/mesh-tool.cpp:997 -msgid "Select objects on which to create gradient." -msgstr "" - -#: ../src/ui/tools/lpe-tool.cpp:206 -msgid "Choose a construction tool from the toolbar." -msgstr "" - -#. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 -#, c-format -msgid " out of %d mesh handle" -msgid_plural " out of %d mesh handles" -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/mesh-tool.cpp:150 -#, c-format -msgid "%d mesh handle selected out of %d" -msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "" -msgstr[1] "" - -#. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 -#, c-format -msgid "No mesh handles selected out of %d on %d selected object" -msgid_plural "No mesh handles selected out of %d on %d selected objects" -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/mesh-tool.cpp:321 -msgid "Split mesh row/column" -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:407 -msgid "Toggled mesh path type." -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:411 -msgid "Approximated arc for mesh side." -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:415 -msgid "Toggled mesh tensors." -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:419 -msgid "Smoothed mesh corner color." -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:423 -msgid "Picked mesh corner color." -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:498 -msgid "Create default mesh" -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:718 -msgid "FIXMECtrl: snap mesh angle" -msgstr "" - -#: ../src/ui/tools/mesh-tool.cpp:719 -msgid "FIXMEShift: draw mesh around the starting point" -msgstr "" - -#: ../src/ui/tools/node-tool.cpp:612 -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:616 -msgctxt "Node tool tip" -msgid "Shift: drag to add nodes to the selection" -msgstr "" - -#: ../src/ui/tools/node-tool.cpp:628 -#, 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:634 -#, 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:640 -#, c-format -msgctxt "Node tool tip" -msgid "%s Drag to select nodes, click clear the selection" -msgstr "" - -#: ../src/ui/tools/node-tool.cpp:649 -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to edit only this object" -msgstr "" - -#: ../src/ui/tools/node-tool.cpp:652 -msgctxt "Node tool tip" -msgid "Drag to select nodes, click to clear the selection" -msgstr "" - -#: ../src/ui/tools/node-tool.cpp:657 -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:660 -msgctxt "Node tool tip" -msgid "Drag to select objects to edit" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:233 ../src/ui/tools/pencil-tool.cpp:466 -msgid "Drawing cancelled" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:469 ../src/ui/tools/pencil-tool.cpp:204 -msgid "Continuing selected path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:479 ../src/ui/tools/pencil-tool.cpp:212 -msgid "Creating new path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:481 ../src/ui/tools/pencil-tool.cpp:215 -msgid "Appending to selected path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:646 -msgid "Click or click and drag to close and finish the path." -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:648 -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:660 -msgid "" -"Click or click and drag to continue the path from this point." -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:662 -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:2036 -#, c-format -msgid "" -"Curve segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:2037 -#, c-format -msgid "" -"Line segment: angle %3.2f°, distance %s; with Ctrl to " -"snap angle, Enter to finish the path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:2040 -#, c-format -msgid "" -"Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:2041 -#, c-format -msgid "" -"Line segment: angle %3.2f°, distance %s; with Shift+Click " -"make a cusp node, Enter to finish the path" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:2058 -#, c-format -msgid "" -"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " -"angle" -msgstr "" - -#: ../src/ui/tools/pen-tool.cpp:2082 -#, 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:2083 -#, 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:2217 -msgid "Drawing finished" -msgstr "" - -#: ../src/ui/tools/pencil-tool.cpp:316 -msgid "Release here to close and finish the path." -msgstr "" - -#: ../src/ui/tools/pencil-tool.cpp:322 -msgid "Drawing a freehand path" -msgstr "" - -#: ../src/ui/tools/pencil-tool.cpp:327 -msgid "Drag to continue the path from this point." -msgstr "" - -#. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:412 -msgid "Finishing freehand" -msgstr "" - -#: ../src/ui/tools/pencil-tool.cpp:515 -msgid "" -"Sketch mode: holding Alt interpolates between sketched paths. " -"Release Alt to finalize." -msgstr "" - -#: ../src/ui/tools/pencil-tool.cpp:542 -msgid "Finishing freehand sketch" -msgstr "" - -#: ../src/ui/tools/rect-tool.cpp:288 -msgid "" -"Ctrl: make square or integer-ratio rect, lock a rounded corner " -"circular" -msgstr "" - -#: ../src/ui/tools/rect-tool.cpp:449 -#, 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:452 -#, 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:454 -#, 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:458 -#, 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:481 -msgid "Create rectangle" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:169 -msgid "Click selection to toggle scale/rotation handles" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:170 -msgid "" -"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " -"or drag around objects to select." -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:223 -msgid "Move canceled." -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:231 -msgid "Selection canceled." -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:653 -msgid "" -"Draw over objects to select them; release Alt to switch to " -"rubberband selection" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:655 -msgid "" -"Drag around objects to select them; press Alt to switch to " -"touch selection" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:950 -msgid "Ctrl: click to select in groups; drag to move hor/vert" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:951 -msgid "Shift: click to toggle select; drag for rubberband selection" -msgstr "" - -#: ../src/ui/tools/select-tool.cpp:952 -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:1160 -msgid "Selected object is not a group. Cannot enter." -msgstr "" - -#: ../src/ui/tools/spiral-tool.cpp:259 -msgid "Ctrl: snap angle" -msgstr "" - -#: ../src/ui/tools/spiral-tool.cpp:261 -msgid "Alt: lock spiral radius" -msgstr "" - -#: ../src/ui/tools/spiral-tool.cpp:400 -#, c-format -msgid "" -"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" - -#: ../src/ui/tools/spiral-tool.cpp:421 -msgid "Create spiral" -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 -#, c-format -msgid "%i object selected" -msgid_plural "%i objects selected" -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 -msgid "Nothing selected" -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:199 -#, c-format -msgid "" -"%s. Drag, click or click and scroll to spray copies of the initial " -"selection." -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:202 -#, c-format -msgid "" -"%s. Drag, click or click and scroll to spray clones of the initial " -"selection." -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:205 -#, c-format -msgid "" -"%s. Drag, click or click and scroll to spray in a single path of the " -"initial selection." -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:664 -msgid "Nothing selected! Select objects to spray." -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:739 ../src/widgets/spray-toolbar.cpp:166 -msgid "Spray with copies" -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:743 ../src/widgets/spray-toolbar.cpp:173 -msgid "Spray with clones" -msgstr "" - -#: ../src/ui/tools/spray-tool.cpp:747 -msgid "Spray in single path" -msgstr "" - -#: ../src/ui/tools/star-tool.cpp:271 -msgid "Ctrl: snap angle; keep rays radial" -msgstr "" - -#: ../src/ui/tools/star-tool.cpp:417 -#, c-format -msgid "" -"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" - -#: ../src/ui/tools/star-tool.cpp:418 -#, c-format -msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" -msgstr "" - -#: ../src/ui/tools/star-tool.cpp:446 -msgid "Create star" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:379 -msgid "Click to edit the text, drag to select part of the text." -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:381 -msgid "" -"Click to edit the flowed text, drag to select part of the text." -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:435 -msgid "Create text" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:460 -msgid "Non-printable character" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:475 -msgid "Insert Unicode character" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:510 -#, c-format -msgid "Unicode (Enter to finish): %s: %s" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 -msgid "Unicode (Enter to finish): " -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:595 -#, c-format -msgid "Flowed text frame: %s × %s" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:653 -msgid "Type text; Enter to start new line." -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:664 -msgid "Flowed text is created." -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:665 -msgid "Create flowed text" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:667 -msgid "" -"The frame is too small for the current font size. Flowed text not " -"created." -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:803 -msgid "No-break space" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:804 -msgid "Insert no-break space" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:840 -msgid "Make bold" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:857 -msgid "Make italic" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:895 -msgid "New line" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:936 -msgid "Backspace" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:990 -msgid "Kern to the left" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1014 -msgid "Kern to the right" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1038 -msgid "Kern up" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1062 -msgid "Kern down" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1137 -msgid "Rotate counterclockwise" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1157 -msgid "Rotate clockwise" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1173 -msgid "Contract line spacing" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1179 -msgid "Contract letter spacing" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1196 -msgid "Expand line spacing" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1202 -msgid "Expand letter spacing" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1332 -msgid "Paste text" -msgstr "" - -#: ../src/ui/tools/text-tool.cpp:1583 -#, c-format -msgid "" -"Type or edit flowed text (%d character%s); Enter to start new " -"paragraph." -msgid_plural "" -"Type or edit flowed text (%d characters%s); Enter to start new " -"paragraph." -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/text-tool.cpp:1585 -#, c-format -msgid "Type or edit text (%d character%s); Enter to start new line." -msgid_plural "" -"Type or edit text (%d characters%s); Enter to start new line." -msgstr[0] "" -msgstr[1] "" - -#: ../src/ui/tools/text-tool.cpp:1695 -msgid "Type text" -msgstr "" - -#: ../src/ui/tools/tool-base.cpp:705 -msgid "Space+mouse move to pan canvas" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:174 -#, c-format -msgid "%s. Drag to move." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:178 -#, c-format -msgid "%s. Drag or click to move in; with Shift to move out." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:186 -#, c-format -msgid "%s. Drag or click to move randomly." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:190 -#, c-format -msgid "%s. Drag or click to scale down; with Shift to scale up." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:198 -#, c-format -msgid "" -"%s. Drag or click to rotate clockwise; with Shift, " -"counterclockwise." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:206 -#, c-format -msgid "%s. Drag or click to duplicate; with Shift, delete." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:214 -#, c-format -msgid "%s. Drag to push paths." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:218 -#, c-format -msgid "%s. Drag or click to inset paths; with Shift to outset." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:226 -#, c-format -msgid "%s. Drag or click to attract paths; with Shift to repel." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:234 -#, c-format -msgid "%s. Drag or click to roughen paths." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:238 -#, c-format -msgid "%s. Drag or click to paint objects with color." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:242 -#, c-format -msgid "%s. Drag or click to randomize colors." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:246 -#, c-format -msgid "" -"%s. Drag or click to increase blur; with Shift to decrease." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1205 -msgid "Nothing selected! Select objects to tweak." -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1239 -msgid "Move tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1243 -msgid "Move in/out tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1247 -msgid "Move jitter tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1251 -msgid "Scale tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1255 -msgid "Rotate tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1259 -msgid "Duplicate/delete tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1263 -msgid "Push path tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1267 -msgid "Shrink/grow path tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1271 -msgid "Attract/repel path tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1275 -msgid "Roughen path tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1279 -msgid "Color paint tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1283 -msgid "Color jitter tweak" -msgstr "" - -#: ../src/ui/tools/tweak-tool.cpp:1287 -msgid "Blur tweak" -msgstr "" - -#: ../src/ui/widget/filter-effect-chooser.cpp:26 -msgid "_Blur:" -msgstr "" - -#: ../src/ui/widget/filter-effect-chooser.cpp:29 -msgid "Blur (%)" -msgstr "" - -#: ../src/ui/widget/layer-selector.cpp:118 -msgid "Toggle current layer visibility" -msgstr "" - -#: ../src/ui/widget/layer-selector.cpp:139 -msgid "Lock or unlock current layer" -msgstr "" - -#: ../src/ui/widget/layer-selector.cpp:142 -msgid "Current layer" -msgstr "" - -#: ../src/ui/widget/layer-selector.cpp:583 -msgid "(root)" -msgstr "" - -#: ../src/ui/widget/licensor.cpp:40 -msgid "Proprietary" -msgstr "" - -#: ../src/ui/widget/licensor.cpp:43 -msgid "MetadataLicence|Other" -msgstr "" - -#: ../src/ui/widget/object-composite-settings.cpp:47 -#: ../src/ui/widget/selected-style.cpp:1119 -#: ../src/ui/widget/selected-style.cpp:1120 -msgid "Opacity (%)" -msgstr "" - -#: ../src/ui/widget/object-composite-settings.cpp:159 -msgid "Change blur" -msgstr "" - -#: ../src/ui/widget/object-composite-settings.cpp:199 -#: ../src/ui/widget/selected-style.cpp:943 -#: ../src/ui/widget/selected-style.cpp:1245 -msgid "Change opacity" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:235 -msgid "U_nits:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:236 -msgid "Width of paper" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:237 -msgid "Height of paper" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:238 -msgid "T_op margin:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:238 -msgid "Top margin" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:239 -msgid "L_eft:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:239 -msgid "Left margin" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:240 -msgid "Ri_ght:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:240 -msgid "Right margin" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:241 -msgid "Botto_m:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:241 -msgid "Bottom margin" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:296 -msgid "Orientation:" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:299 -msgid "_Landscape" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:304 -msgid "_Portrait" -msgstr "" - -#. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:322 -msgid "Custom size" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:367 -msgid "Resi_ze page to content..." -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:419 -msgid "_Resize page to drawing or selection" -msgstr "" - -#: ../src/ui/widget/page-sizer.cpp:420 -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:489 -msgid "Set page size" -msgstr "" - -#: ../src/ui/widget/panel.cpp:117 -msgid "List" -msgstr "" - -#: ../src/ui/widget/panel.cpp:140 -msgctxt "Swatches" -msgid "Size" -msgstr "" - -#: ../src/ui/widget/panel.cpp:144 -msgctxt "Swatches height" -msgid "Tiny" -msgstr "" - -#: ../src/ui/widget/panel.cpp:145 -msgctxt "Swatches height" -msgid "Small" -msgstr "" - -#: ../src/ui/widget/panel.cpp:146 -msgctxt "Swatches height" -msgid "Medium" -msgstr "" - -#: ../src/ui/widget/panel.cpp:147 -msgctxt "Swatches height" -msgid "Large" -msgstr "" - -#: ../src/ui/widget/panel.cpp:148 -msgctxt "Swatches height" -msgid "Huge" -msgstr "" - -#: ../src/ui/widget/panel.cpp:170 -msgctxt "Swatches" -msgid "Width" -msgstr "" - -#: ../src/ui/widget/panel.cpp:174 -msgctxt "Swatches width" -msgid "Narrower" -msgstr "" - -#: ../src/ui/widget/panel.cpp:175 -msgctxt "Swatches width" -msgid "Narrow" -msgstr "" - -#: ../src/ui/widget/panel.cpp:176 -msgctxt "Swatches width" -msgid "Medium" -msgstr "" - -#: ../src/ui/widget/panel.cpp:177 -msgctxt "Swatches width" -msgid "Wide" -msgstr "" - -#: ../src/ui/widget/panel.cpp:178 -msgctxt "Swatches width" -msgid "Wider" -msgstr "" - -#: ../src/ui/widget/panel.cpp:208 -msgctxt "Swatches" -msgid "Border" -msgstr "" - -#: ../src/ui/widget/panel.cpp:212 -msgctxt "Swatches border" -msgid "None" -msgstr "" - -#: ../src/ui/widget/panel.cpp:213 -msgctxt "Swatches border" -msgid "Solid" -msgstr "" - -#: ../src/ui/widget/panel.cpp:214 -msgctxt "Swatches border" -msgid "Wide" -msgstr "" - -#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:245 -msgctxt "Swatches" -msgid "Wrap" -msgstr "" - -#: ../src/ui/widget/preferences-widget.cpp:802 -msgid "_Browse..." -msgstr "" - -#: ../src/ui/widget/preferences-widget.cpp:888 -msgid "Select a bitmap editor" -msgstr "" - -#: ../src/ui/widget/random.cpp:84 -msgid "" -"Reseed the random number generator; this creates a different sequence of " -"random numbers." -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:33 -msgid "Backend" -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:34 -msgid "Vector" -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:35 -msgid "Bitmap" -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:36 -msgid "Bitmap options" -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:38 -msgid "Preferred resolution of rendering, in dots per inch." -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:47 -msgid "" -"Render using Cairo vector operations. The resulting image is usually " -"smaller in file size and can be arbitrarily scaled, but some filter effects " -"will not be correctly rendered." -msgstr "" - -#: ../src/ui/widget/rendering-options.cpp:52 -msgid "" -"Render everything as bitmap. The resulting image is usually larger in file " -"size and cannot be arbitrarily scaled without quality loss, but all objects " -"will be rendered exactly as displayed." -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:131 -#: ../src/ui/widget/style-swatch.cpp:127 -msgid "Fill:" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:133 -msgid "O:" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:178 -msgid "N/A" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:181 -#: ../src/ui/widget/selected-style.cpp:1112 -#: ../src/ui/widget/selected-style.cpp:1113 -#: ../src/widgets/gradient-toolbar.cpp:162 -msgid "Nothing selected" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:184 -msgctxt "Fill" -msgid "None" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:186 -msgctxt "Stroke" -msgid "None" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:190 -#: ../src/ui/widget/style-swatch.cpp:321 -msgctxt "Fill and stroke" -msgid "No fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:190 -#: ../src/ui/widget/style-swatch.cpp:321 -msgctxt "Fill and stroke" -msgid "No stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:192 -#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:234 -msgid "Pattern" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:195 -#: ../src/ui/widget/style-swatch.cpp:302 -msgid "Pattern fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:195 -#: ../src/ui/widget/style-swatch.cpp:302 -msgid "Pattern stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:197 -msgid "L" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:200 -#: ../src/ui/widget/style-swatch.cpp:294 -msgid "Linear gradient fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:200 -#: ../src/ui/widget/style-swatch.cpp:294 -msgid "Linear gradient stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:207 -msgid "R" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:210 -#: ../src/ui/widget/style-swatch.cpp:298 -msgid "Radial gradient fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:210 -#: ../src/ui/widget/style-swatch.cpp:298 -msgid "Radial gradient stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:218 -msgid "M" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:221 -msgid "Mesh gradient fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:221 -msgid "Mesh gradient stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:229 -msgid "Different" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:232 -msgid "Different fills" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:232 -msgid "Different strokes" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:234 -#: ../src/ui/widget/style-swatch.cpp:324 -msgid "Unset" -msgstr "" - -#. TRANSLATORS COMMENT: unset is a verb here -#: ../src/ui/widget/selected-style.cpp:237 -#: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:575 -#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:709 -msgid "Unset fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:237 -#: ../src/ui/widget/selected-style.cpp:295 -#: ../src/ui/widget/selected-style.cpp:591 -#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:709 -msgid "Unset stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:240 -msgid "Flat color fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:240 -msgid "Flat color stroke" -msgstr "" - -#. TRANSLATOR COMMENT: A means "Averaged" -#: ../src/ui/widget/selected-style.cpp:243 -msgid "a" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:246 -msgid "Fill is averaged over selected objects" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:246 -msgid "Stroke is averaged over selected objects" -msgstr "" - -#. TRANSLATOR COMMENT: M means "Multiple" -#: ../src/ui/widget/selected-style.cpp:249 -msgid "m" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:252 -msgid "Multiple selected objects have the same fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:252 -msgid "Multiple selected objects have the same stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:254 -msgid "Edit fill..." -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:254 -msgid "Edit stroke..." -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:258 -msgid "Last set color" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:262 -msgid "Last selected color" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:278 -msgid "Copy color" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:282 -msgid "Paste color" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:286 -#: ../src/ui/widget/selected-style.cpp:868 -msgid "Swap fill and stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:290 -#: ../src/ui/widget/selected-style.cpp:600 -#: ../src/ui/widget/selected-style.cpp:609 -msgid "Make fill opaque" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:290 -msgid "Make stroke opaque" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:508 -msgid "Remove fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:508 -msgid "Remove stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:621 -msgid "Apply last set color to fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:633 -msgid "Apply last set color to stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:644 -msgid "Apply last selected color to fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:655 -msgid "Apply last selected color to stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:681 -msgid "Invert fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:705 -msgid "Invert stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:717 -msgid "White fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:729 -msgid "White stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:741 -msgid "Black fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:753 -msgid "Black stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:796 -msgid "Paste fill" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:814 -msgid "Paste stroke" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:970 -msgid "Change stroke width" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1073 -msgid ", drag to adjust" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1158 -#, c-format -msgid "Stroke width: %.5g%s%s" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1162 -msgid " (averaged)" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1188 -msgid "0 (transparent)" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1212 -msgid "100% (opaque)" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1386 -msgid "Adjust alpha" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1388 -#, c-format -msgid "" -"Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " -"modifiers to adjust hue" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1392 -msgid "Adjust saturation" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1394 -#, c-format -msgid "" -"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " -"Ctrl to adjust lightness, with Alt to adjust alpha, without " -"modifiers to adjust hue" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1398 -msgid "Adjust lightness" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1400 -#, c-format -msgid "" -"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " -"Shift to adjust saturation, with Alt to adjust alpha, without " -"modifiers to adjust hue" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1404 -msgid "Adjust hue" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1406 -#, c-format -msgid "" -"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " -"to adjust lightness" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1524 -#: ../src/ui/widget/selected-style.cpp:1538 -msgid "Adjust stroke width" -msgstr "" - -#: ../src/ui/widget/selected-style.cpp:1525 -#, c-format -msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" -msgstr "" - -#. TRANSLATORS: "Link" means to _link_ two sliders together -#: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 -msgctxt "Sliders" -msgid "Link" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:292 -msgid "L Gradient" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:296 -msgid "R Gradient" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:312 -#, c-format -msgid "Fill: %06x/%.3g" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:314 -#, c-format -msgid "Stroke: %06x/%.3g" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:319 -msgctxt "Fill and stroke" -msgid "None" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:346 -#, c-format -msgid "Stroke width: %.5g%s" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:362 -#, c-format -msgid "O: %2.0f" -msgstr "" - -#: ../src/ui/widget/style-swatch.cpp:367 -#, c-format -msgid "Opacity: %2.1f %%" -msgstr "" - -#: ../src/vanishing-point.cpp:133 -msgid "Split vanishing points" -msgstr "" - -#: ../src/vanishing-point.cpp:178 -msgid "Merge vanishing points" -msgstr "" - -#: ../src/vanishing-point.cpp:244 -msgid "3D box: Move vanishing point" -msgstr "" - -#: ../src/vanishing-point.cpp:327 -#, c-format -msgid "Finite vanishing point shared by %d box" -msgid_plural "" -"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" -msgstr[0] "" -msgstr[1] "" - -#. This won't make sense any more when infinite VPs are not shown on the canvas, -#. but currently we update the status message anyway -#: ../src/vanishing-point.cpp:334 -#, c-format -msgid "Infinite vanishing point shared by %d box" -msgid_plural "" -"Infinite vanishing point shared by %d boxes; drag with " -"Shift to separate selected box(es)" -msgstr[0] "" -msgstr[1] "" - -#: ../src/vanishing-point.cpp:342 -#, c-format -msgid "" -"shared by %d box; drag with Shift to separate selected box(es)" -msgid_plural "" -"shared by %d boxes; drag with Shift to separate selected box" -"(es)" -msgstr[0] "" -msgstr[1] "" - -#: ../src/verbs.cpp:138 -msgid "File" -msgstr "" - -#: ../src/verbs.cpp:233 ../share/extensions/interp_att_g.inx.h:22 -msgid "Tag" -msgstr "" - -#: ../src/verbs.cpp:252 -msgid "Context" -msgstr "" - -#: ../src/verbs.cpp:271 ../src/verbs.cpp:2302 -#: ../share/extensions/jessyInk_view.inx.h:1 -#: ../share/extensions/polyhedron_3d.inx.h:26 -msgid "View" -msgstr "" - -#: ../src/verbs.cpp:291 -msgid "Dialog" -msgstr "" - -#: ../src/verbs.cpp:1260 -msgid "Switch to next layer" -msgstr "" - -#: ../src/verbs.cpp:1261 -msgid "Switched to next layer." -msgstr "" - -#: ../src/verbs.cpp:1263 -msgid "Cannot go past last layer." -msgstr "" - -#: ../src/verbs.cpp:1272 -msgid "Switch to previous layer" -msgstr "" - -#: ../src/verbs.cpp:1273 -msgid "Switched to previous layer." -msgstr "" - -#: ../src/verbs.cpp:1275 -msgid "Cannot go before first layer." -msgstr "" - -#: ../src/verbs.cpp:1296 ../src/verbs.cpp:1393 ../src/verbs.cpp:1429 -#: ../src/verbs.cpp:1435 ../src/verbs.cpp:1459 ../src/verbs.cpp:1474 -msgid "No current layer." -msgstr "" - -#: ../src/verbs.cpp:1325 ../src/verbs.cpp:1329 -#, c-format -msgid "Raised layer %s." -msgstr "" - -#: ../src/verbs.cpp:1326 -msgid "Layer to top" -msgstr "" - -#: ../src/verbs.cpp:1330 -msgid "Raise layer" -msgstr "" - -#: ../src/verbs.cpp:1333 ../src/verbs.cpp:1337 -#, c-format -msgid "Lowered layer %s." -msgstr "" - -#: ../src/verbs.cpp:1334 -msgid "Layer to bottom" -msgstr "" - -#: ../src/verbs.cpp:1338 -msgid "Lower layer" -msgstr "" - -#: ../src/verbs.cpp:1347 -msgid "Cannot move layer any further." -msgstr "" - -#: ../src/verbs.cpp:1361 ../src/verbs.cpp:1380 -#, c-format -msgid "%s copy" -msgstr "" - -#: ../src/verbs.cpp:1388 -msgid "Duplicate layer" -msgstr "" - -#. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1391 -msgid "Duplicated layer." -msgstr "" - -#: ../src/verbs.cpp:1424 -msgid "Delete layer" -msgstr "" - -#. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1427 -msgid "Deleted layer." -msgstr "" - -#: ../src/verbs.cpp:1444 -msgid "Show all layers" -msgstr "" - -#: ../src/verbs.cpp:1449 -msgid "Hide all layers" -msgstr "" - -#: ../src/verbs.cpp:1454 -msgid "Lock all layers" -msgstr "" - -#: ../src/verbs.cpp:1468 -msgid "Unlock all layers" -msgstr "" - -#: ../src/verbs.cpp:1552 -msgid "Flip horizontally" -msgstr "" - -#: ../src/verbs.cpp:1557 -msgid "Flip vertically" -msgstr "" - -#: ../src/verbs.cpp:1614 ../src/verbs.cpp:2727 -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:2184 -msgid "tutorial-basic.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2188 -msgid "tutorial-shapes.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2192 -msgid "tutorial-advanced.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2196 -msgid "tutorial-tracing.svg" -msgstr "" - -#: ../src/verbs.cpp:2199 -msgid "tutorial-tracing-pixelart.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2203 -msgid "tutorial-calligraphy.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2207 -msgid "tutorial-interpolate.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2211 -msgid "tutorial-elements.svg" -msgstr "" - -#. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2215 -msgid "tutorial-tips.svg" -msgstr "" - -#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3000 -msgid "Unlock all objects in the current layer" -msgstr "" - -#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3002 -msgid "Unlock all objects in all layers" -msgstr "" - -#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3004 -msgid "Unhide all objects in the current layer" -msgstr "" - -#: ../src/verbs.cpp:2413 ../src/verbs.cpp:3006 -msgid "Unhide all objects in all layers" -msgstr "" - -#: ../src/verbs.cpp:2428 -msgctxt "Verb" -msgid "None" -msgstr "" - -#: ../src/verbs.cpp:2428 -msgid "Does nothing" -msgstr "" - -#. File -#. Tag -#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 -msgid "_New" -msgstr "" - -#: ../src/verbs.cpp:2431 -msgid "Create new document from the default template" -msgstr "" - -#: ../src/verbs.cpp:2433 -msgid "_Open..." -msgstr "" - -#: ../src/verbs.cpp:2434 -msgid "Open an existing document" -msgstr "" - -#: ../src/verbs.cpp:2435 -msgid "Re_vert" -msgstr "" - -#: ../src/verbs.cpp:2436 -msgid "Revert to the last saved version of document (changes will be lost)" -msgstr "" - -#: ../src/verbs.cpp:2437 -msgid "Save document" -msgstr "" - -#: ../src/verbs.cpp:2439 -msgid "Save _As..." -msgstr "" - -#: ../src/verbs.cpp:2440 -msgid "Save document under a new name" -msgstr "" - -#: ../src/verbs.cpp:2441 -msgid "Save a Cop_y..." -msgstr "" - -#: ../src/verbs.cpp:2442 -msgid "Save a copy of the document under a new name" -msgstr "" - -#: ../src/verbs.cpp:2443 -msgid "_Print..." -msgstr "" - -#: ../src/verbs.cpp:2443 -msgid "Print document" -msgstr "" - -#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2446 -msgid "Clean _up document" -msgstr "" - -#: ../src/verbs.cpp:2446 -msgid "" -"Remove unused definitions (such as gradients or clipping paths) from the <" -"defs> of the document" -msgstr "" - -#: ../src/verbs.cpp:2448 -msgid "_Import..." -msgstr "" - -#: ../src/verbs.cpp:2449 -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:2451 -msgid "Import Clip Art..." -msgstr "" - -#: ../src/verbs.cpp:2452 -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:2454 -msgid "N_ext Window" -msgstr "" - -#: ../src/verbs.cpp:2455 -msgid "Switch to the next document window" -msgstr "" - -#: ../src/verbs.cpp:2456 -msgid "P_revious Window" -msgstr "" - -#: ../src/verbs.cpp:2457 -msgid "Switch to the previous document window" -msgstr "" - -#: ../src/verbs.cpp:2458 -msgid "_Close" -msgstr "" - -#: ../src/verbs.cpp:2459 -msgid "Close this document window" -msgstr "" - -#: ../src/verbs.cpp:2460 -msgid "_Quit" -msgstr "" - -#: ../src/verbs.cpp:2460 -msgid "Quit Inkscape" -msgstr "" - -#: ../src/verbs.cpp:2461 -msgid "New from _Template..." -msgstr "" - -#: ../src/verbs.cpp:2462 -msgid "Create new project from template" -msgstr "" - -#: ../src/verbs.cpp:2465 -msgid "Undo last action" -msgstr "" - -#: ../src/verbs.cpp:2468 -msgid "Do again the last undone action" -msgstr "" - -#: ../src/verbs.cpp:2469 -msgid "Cu_t" -msgstr "" - -#: ../src/verbs.cpp:2470 -msgid "Cut selection to clipboard" -msgstr "" - -#: ../src/verbs.cpp:2471 -msgid "_Copy" -msgstr "" - -#: ../src/verbs.cpp:2472 -msgid "Copy selection to clipboard" -msgstr "" - -#: ../src/verbs.cpp:2473 -msgid "_Paste" -msgstr "" - -#: ../src/verbs.cpp:2474 -msgid "Paste objects from clipboard to mouse point, or paste text" -msgstr "" - -#: ../src/verbs.cpp:2475 -msgid "Paste _Style" -msgstr "" - -#: ../src/verbs.cpp:2476 -msgid "Apply the style of the copied object to selection" -msgstr "" - -#: ../src/verbs.cpp:2478 -msgid "Scale selection to match the size of the copied object" -msgstr "" - -#: ../src/verbs.cpp:2479 -msgid "Paste _Width" -msgstr "" - -#: ../src/verbs.cpp:2480 -msgid "Scale selection horizontally to match the width of the copied object" -msgstr "" - -#: ../src/verbs.cpp:2481 -msgid "Paste _Height" -msgstr "" - -#: ../src/verbs.cpp:2482 -msgid "Scale selection vertically to match the height of the copied object" -msgstr "" - -#: ../src/verbs.cpp:2483 -msgid "Paste Size Separately" -msgstr "" - -#: ../src/verbs.cpp:2484 -msgid "Scale each selected object to match the size of the copied object" -msgstr "" - -#: ../src/verbs.cpp:2485 -msgid "Paste Width Separately" -msgstr "" - -#: ../src/verbs.cpp:2486 -msgid "" -"Scale each selected object horizontally to match the width of the copied " -"object" -msgstr "" - -#: ../src/verbs.cpp:2487 -msgid "Paste Height Separately" -msgstr "" - -#: ../src/verbs.cpp:2488 -msgid "" -"Scale each selected object vertically to match the height of the copied " -"object" -msgstr "" - -#: ../src/verbs.cpp:2489 -msgid "Paste _In Place" -msgstr "" - -#: ../src/verbs.cpp:2490 -msgid "Paste objects from clipboard to the original location" -msgstr "" - -#: ../src/verbs.cpp:2491 -msgid "Paste Path _Effect" -msgstr "" - -#: ../src/verbs.cpp:2492 -msgid "Apply the path effect of the copied object to selection" -msgstr "" - -#: ../src/verbs.cpp:2493 -msgid "Remove Path _Effect" -msgstr "" - -#: ../src/verbs.cpp:2494 -msgid "Remove any path effects from selected objects" -msgstr "" - -#: ../src/verbs.cpp:2495 -msgid "_Remove Filters" -msgstr "" - -#: ../src/verbs.cpp:2496 -msgid "Remove any filters from selected objects" -msgstr "" - -#: ../src/verbs.cpp:2497 -msgid "_Delete" -msgstr "" - -#: ../src/verbs.cpp:2498 -msgid "Delete selection" -msgstr "" - -#: ../src/verbs.cpp:2499 -msgid "Duplic_ate" -msgstr "" - -#: ../src/verbs.cpp:2500 -msgid "Duplicate selected objects" -msgstr "" - -#: ../src/verbs.cpp:2501 -msgid "Create Clo_ne" -msgstr "" - -#: ../src/verbs.cpp:2502 -msgid "Create a clone (a copy linked to the original) of selected object" -msgstr "" - -#: ../src/verbs.cpp:2503 -msgid "Unlin_k Clone" -msgstr "" - -#: ../src/verbs.cpp:2504 -msgid "" -"Cut the selected clones' links to the originals, turning them into " -"standalone objects" -msgstr "" - -#: ../src/verbs.cpp:2505 -msgid "Relink to Copied" -msgstr "" - -#: ../src/verbs.cpp:2506 -msgid "Relink the selected clones to the object currently on the clipboard" -msgstr "" - -#: ../src/verbs.cpp:2507 -msgid "Select _Original" -msgstr "" - -#: ../src/verbs.cpp:2508 -msgid "Select the object to which the selected clone is linked" -msgstr "" - -#: ../src/verbs.cpp:2509 -msgid "Clone original path (LPE)" -msgstr "" - -#: ../src/verbs.cpp:2510 -msgid "" -"Creates a new path, applies the Clone original LPE, and refers it to the " -"selected path" -msgstr "" - -#: ../src/verbs.cpp:2511 -msgid "Objects to _Marker" -msgstr "" - -#: ../src/verbs.cpp:2512 -msgid "Convert selection to a line marker" -msgstr "" - -#: ../src/verbs.cpp:2513 -msgid "Objects to Gu_ides" -msgstr "" - -#: ../src/verbs.cpp:2514 -msgid "" -"Convert selected objects to a collection of guidelines aligned with their " -"edges" -msgstr "" - -#: ../src/verbs.cpp:2515 -msgid "Objects to Patter_n" -msgstr "" - -#: ../src/verbs.cpp:2516 -msgid "Convert selection to a rectangle with tiled pattern fill" -msgstr "" - -#: ../src/verbs.cpp:2517 -msgid "Pattern to _Objects" -msgstr "" - -#: ../src/verbs.cpp:2518 -msgid "Extract objects from a tiled pattern fill" -msgstr "" - -#: ../src/verbs.cpp:2519 -msgid "Group to Symbol" -msgstr "" - -#: ../src/verbs.cpp:2520 -msgid "Convert group to a symbol" -msgstr "" - -#: ../src/verbs.cpp:2521 -msgid "Symbol to Group" -msgstr "" - -#: ../src/verbs.cpp:2522 -msgid "Extract group from a symbol" -msgstr "" - -#: ../src/verbs.cpp:2523 -msgid "Clea_r All" -msgstr "" - -#: ../src/verbs.cpp:2524 -msgid "Delete all objects from document" -msgstr "" - -#: ../src/verbs.cpp:2525 -msgid "Select Al_l" -msgstr "" - -#: ../src/verbs.cpp:2526 -msgid "Select all objects or all nodes" -msgstr "" - -#: ../src/verbs.cpp:2527 -msgid "Select All in All La_yers" -msgstr "" - -#: ../src/verbs.cpp:2528 -msgid "Select all objects in all visible and unlocked layers" -msgstr "" - -#: ../src/verbs.cpp:2529 -msgid "Fill _and Stroke" -msgstr "" - -#: ../src/verbs.cpp:2530 -msgid "" -"Select all objects with the same fill and stroke as the selected objects" -msgstr "" - -#: ../src/verbs.cpp:2531 -msgid "_Fill Color" -msgstr "" - -#: ../src/verbs.cpp:2532 -msgid "Select all objects with the same fill as the selected objects" -msgstr "" - -#: ../src/verbs.cpp:2533 -msgid "_Stroke Color" -msgstr "" - -#: ../src/verbs.cpp:2534 -msgid "Select all objects with the same stroke as the selected objects" -msgstr "" - -#: ../src/verbs.cpp:2535 -msgid "Stroke St_yle" -msgstr "" - -#: ../src/verbs.cpp:2536 -msgid "" -"Select all objects with the same stroke style (width, dash, markers) as the " -"selected objects" -msgstr "" - -#: ../src/verbs.cpp:2537 -msgid "_Object Type" -msgstr "" - -#: ../src/verbs.cpp:2538 -msgid "" -"Select all objects with the same object type (rect, arc, text, path, bitmap " -"etc) as the selected objects" -msgstr "" - -#: ../src/verbs.cpp:2539 -msgid "In_vert Selection" -msgstr "" - -#: ../src/verbs.cpp:2540 -msgid "Invert selection (unselect what is selected and select everything else)" -msgstr "" - -#: ../src/verbs.cpp:2541 -msgid "Invert in All Layers" -msgstr "" - -#: ../src/verbs.cpp:2542 -msgid "Invert selection in all visible and unlocked layers" -msgstr "" - -#: ../src/verbs.cpp:2543 -msgid "Select Next" -msgstr "" - -#: ../src/verbs.cpp:2544 -msgid "Select next object or node" -msgstr "" - -#: ../src/verbs.cpp:2545 -msgid "Select Previous" -msgstr "" - -#: ../src/verbs.cpp:2546 -msgid "Select previous object or node" -msgstr "" - -#: ../src/verbs.cpp:2547 -msgid "D_eselect" -msgstr "" - -#: ../src/verbs.cpp:2548 -msgid "Deselect any selected objects or nodes" -msgstr "" - -#: ../src/verbs.cpp:2550 -msgid "Delete all the guides in the document" -msgstr "" - -#: ../src/verbs.cpp:2551 -msgid "Create _Guides Around the Page" -msgstr "" - -#: ../src/verbs.cpp:2552 -msgid "Create four guides aligned with the page borders" -msgstr "" - -#: ../src/verbs.cpp:2553 -msgid "Next path effect parameter" -msgstr "" - -#: ../src/verbs.cpp:2554 -msgid "Show next editable path effect parameter" -msgstr "" - -#. Selection -#: ../src/verbs.cpp:2557 -msgid "Raise to _Top" -msgstr "" - -#: ../src/verbs.cpp:2558 -msgid "Raise selection to top" -msgstr "" - -#: ../src/verbs.cpp:2559 -msgid "Lower to _Bottom" -msgstr "" - -#: ../src/verbs.cpp:2560 -msgid "Lower selection to bottom" -msgstr "" - -#: ../src/verbs.cpp:2561 -msgid "_Raise" -msgstr "" - -#: ../src/verbs.cpp:2562 -msgid "Raise selection one step" -msgstr "" - -#: ../src/verbs.cpp:2563 -msgid "_Lower" -msgstr "" - -#: ../src/verbs.cpp:2564 -msgid "Lower selection one step" -msgstr "" - -#: ../src/verbs.cpp:2566 -msgid "Group selected objects" -msgstr "" - -#: ../src/verbs.cpp:2568 -msgid "Ungroup selected groups" -msgstr "" - -#: ../src/verbs.cpp:2570 -msgid "_Put on Path" -msgstr "" - -#: ../src/verbs.cpp:2572 -msgid "_Remove from Path" -msgstr "" - -#: ../src/verbs.cpp:2574 -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:2577 -msgid "Remove all manual kerns and glyph rotations from a text object" -msgstr "" - -#: ../src/verbs.cpp:2579 -msgid "_Union" -msgstr "" - -#: ../src/verbs.cpp:2580 -msgid "Create union of selected paths" -msgstr "" - -#: ../src/verbs.cpp:2581 -msgid "_Intersection" -msgstr "" - -#: ../src/verbs.cpp:2582 -msgid "Create intersection of selected paths" -msgstr "" - -#: ../src/verbs.cpp:2583 -msgid "_Difference" -msgstr "" - -#: ../src/verbs.cpp:2584 -msgid "Create difference of selected paths (bottom minus top)" -msgstr "" - -#: ../src/verbs.cpp:2585 -msgid "E_xclusion" -msgstr "" - -#: ../src/verbs.cpp:2586 -msgid "" -"Create exclusive OR of selected paths (those parts that belong to only one " -"path)" -msgstr "" - -#: ../src/verbs.cpp:2587 -msgid "Di_vision" -msgstr "" - -#: ../src/verbs.cpp:2588 -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:2591 -msgid "Cut _Path" -msgstr "" - -#: ../src/verbs.cpp:2592 -msgid "Cut the bottom path's stroke into pieces, removing fill" -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:2596 -msgid "Outs_et" -msgstr "" - -#: ../src/verbs.cpp:2597 -msgid "Outset selected paths" -msgstr "" - -#: ../src/verbs.cpp:2599 -msgid "O_utset Path by 1 px" -msgstr "" - -#: ../src/verbs.cpp:2600 -msgid "Outset selected paths by 1 px" -msgstr "" - -#: ../src/verbs.cpp:2602 -msgid "O_utset Path by 10 px" -msgstr "" - -#: ../src/verbs.cpp:2603 -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:2607 -msgid "I_nset" -msgstr "" - -#: ../src/verbs.cpp:2608 -msgid "Inset selected paths" -msgstr "" - -#: ../src/verbs.cpp:2610 -msgid "I_nset Path by 1 px" -msgstr "" - -#: ../src/verbs.cpp:2611 -msgid "Inset selected paths by 1 px" -msgstr "" - -#: ../src/verbs.cpp:2613 -msgid "I_nset Path by 10 px" -msgstr "" - -#: ../src/verbs.cpp:2614 -msgid "Inset selected paths by 10 px" -msgstr "" - -#: ../src/verbs.cpp:2616 -msgid "D_ynamic Offset" -msgstr "" - -#: ../src/verbs.cpp:2616 -msgid "Create a dynamic offset object" -msgstr "" - -#: ../src/verbs.cpp:2618 -msgid "_Linked Offset" -msgstr "" - -#: ../src/verbs.cpp:2619 -msgid "Create a dynamic offset object linked to the original path" -msgstr "" - -#: ../src/verbs.cpp:2621 -msgid "_Stroke to Path" -msgstr "" - -#: ../src/verbs.cpp:2622 -msgid "Convert selected object's stroke to paths" -msgstr "" - -#: ../src/verbs.cpp:2623 -msgid "Si_mplify" -msgstr "" - -#: ../src/verbs.cpp:2624 -msgid "Simplify selected paths (remove extra nodes)" -msgstr "" - -#: ../src/verbs.cpp:2625 -msgid "_Reverse" -msgstr "" - -#: ../src/verbs.cpp:2626 -msgid "Reverse the direction of selected paths (useful for flipping markers)" -msgstr "" - -#: ../src/verbs.cpp:2629 -msgid "Create one or more paths from a bitmap by tracing it" -msgstr "" - -#: ../src/verbs.cpp:2630 -msgid "Trace Pixel Art..." -msgstr "" - -#: ../src/verbs.cpp:2631 -msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" -msgstr "" - -#: ../src/verbs.cpp:2632 -msgid "Make a _Bitmap Copy" -msgstr "" - -#: ../src/verbs.cpp:2633 -msgid "Export selection to a bitmap and insert it into document" -msgstr "" - -#: ../src/verbs.cpp:2634 -msgid "_Combine" -msgstr "" - -#: ../src/verbs.cpp:2635 -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:2638 -msgid "Break _Apart" -msgstr "" - -#: ../src/verbs.cpp:2639 -msgid "Break selected paths into subpaths" -msgstr "" - -#: ../src/verbs.cpp:2640 -msgid "_Arrange..." -msgstr "" - -#: ../src/verbs.cpp:2641 -msgid "Arrange selected objects in a table or circle" -msgstr "" - -#. Layer -#: ../src/verbs.cpp:2643 -msgid "_Add Layer..." -msgstr "" - -#: ../src/verbs.cpp:2644 -msgid "Create a new layer" -msgstr "" - -#: ../src/verbs.cpp:2645 -msgid "Re_name Layer..." -msgstr "" - -#: ../src/verbs.cpp:2646 -msgid "Rename the current layer" -msgstr "" - -#: ../src/verbs.cpp:2647 -msgid "Switch to Layer Abov_e" -msgstr "" - -#: ../src/verbs.cpp:2648 -msgid "Switch to the layer above the current" -msgstr "" - -#: ../src/verbs.cpp:2649 -msgid "Switch to Layer Belo_w" -msgstr "" - -#: ../src/verbs.cpp:2650 -msgid "Switch to the layer below the current" -msgstr "" - -#: ../src/verbs.cpp:2651 -msgid "Move Selection to Layer Abo_ve" -msgstr "" - -#: ../src/verbs.cpp:2652 -msgid "Move selection to the layer above the current" -msgstr "" - -#: ../src/verbs.cpp:2653 -msgid "Move Selection to Layer Bel_ow" -msgstr "" - -#: ../src/verbs.cpp:2654 -msgid "Move selection to the layer below the current" -msgstr "" - -#: ../src/verbs.cpp:2655 -msgid "Move Selection to Layer..." -msgstr "" - -#: ../src/verbs.cpp:2657 -msgid "Layer to _Top" -msgstr "" - -#: ../src/verbs.cpp:2658 -msgid "Raise the current layer to the top" -msgstr "" - -#: ../src/verbs.cpp:2659 -msgid "Layer to _Bottom" -msgstr "" - -#: ../src/verbs.cpp:2660 -msgid "Lower the current layer to the bottom" -msgstr "" - -#: ../src/verbs.cpp:2661 -msgid "_Raise Layer" -msgstr "" - -#: ../src/verbs.cpp:2662 -msgid "Raise the current layer" -msgstr "" - -#: ../src/verbs.cpp:2663 -msgid "_Lower Layer" -msgstr "" - -#: ../src/verbs.cpp:2664 -msgid "Lower the current layer" -msgstr "" - -#: ../src/verbs.cpp:2665 -msgid "D_uplicate Current Layer" -msgstr "" - -#: ../src/verbs.cpp:2666 -msgid "Duplicate an existing layer" -msgstr "" - -#: ../src/verbs.cpp:2667 -msgid "_Delete Current Layer" -msgstr "" - -#: ../src/verbs.cpp:2668 -msgid "Delete the current layer" -msgstr "" - -#: ../src/verbs.cpp:2669 -msgid "_Show/hide other layers" -msgstr "" - -#: ../src/verbs.cpp:2670 -msgid "Solo the current layer" -msgstr "" - -#: ../src/verbs.cpp:2671 -msgid "_Show all layers" -msgstr "" - -#: ../src/verbs.cpp:2672 -msgid "Show all the layers" -msgstr "" - -#: ../src/verbs.cpp:2673 -msgid "_Hide all layers" -msgstr "" - -#: ../src/verbs.cpp:2674 -msgid "Hide all the layers" -msgstr "" - -#: ../src/verbs.cpp:2675 -msgid "_Lock all layers" -msgstr "" - -#: ../src/verbs.cpp:2676 -msgid "Lock all the layers" -msgstr "" - -#: ../src/verbs.cpp:2677 -msgid "Lock/Unlock _other layers" -msgstr "" - -#: ../src/verbs.cpp:2678 -msgid "Lock all the other layers" -msgstr "" - -#: ../src/verbs.cpp:2679 -msgid "_Unlock all layers" -msgstr "" - -#: ../src/verbs.cpp:2680 -msgid "Unlock all the layers" -msgstr "" - -#: ../src/verbs.cpp:2681 -msgid "_Lock/Unlock Current Layer" -msgstr "" - -#: ../src/verbs.cpp:2682 -msgid "Toggle lock on current layer" -msgstr "" - -#: ../src/verbs.cpp:2683 -msgid "_Show/hide Current Layer" -msgstr "" - -#: ../src/verbs.cpp:2684 -msgid "Toggle visibility of current layer" -msgstr "" - -#. Object -#: ../src/verbs.cpp:2687 -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:2690 -msgid "Rotate selection 90° clockwise" -msgstr "" - -#: ../src/verbs.cpp:2691 -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:2694 -msgid "Rotate selection 90° counter-clockwise" -msgstr "" - -#: ../src/verbs.cpp:2695 -msgid "Remove _Transformations" -msgstr "" - -#: ../src/verbs.cpp:2696 -msgid "Remove transformations from object" -msgstr "" - -#: ../src/verbs.cpp:2697 -msgid "_Object to Path" -msgstr "" - -#: ../src/verbs.cpp:2698 -msgid "Convert selected object to path" -msgstr "" - -#: ../src/verbs.cpp:2699 -msgid "_Flow into Frame" -msgstr "" - -#: ../src/verbs.cpp:2700 -msgid "" -"Put text into a frame (path or shape), creating a flowed text linked to the " -"frame object" -msgstr "" - -#: ../src/verbs.cpp:2701 -msgid "_Unflow" -msgstr "" - -#: ../src/verbs.cpp:2702 -msgid "Remove text from frame (creates a single-line text object)" -msgstr "" - -#: ../src/verbs.cpp:2703 -msgid "_Convert to Text" -msgstr "" - -#: ../src/verbs.cpp:2704 -msgid "Convert flowed text to regular text object (preserves appearance)" -msgstr "" - -#: ../src/verbs.cpp:2706 -msgid "Flip _Horizontal" -msgstr "" - -#: ../src/verbs.cpp:2706 -msgid "Flip selected objects horizontally" -msgstr "" - -#: ../src/verbs.cpp:2709 -msgid "Flip _Vertical" -msgstr "" - -#: ../src/verbs.cpp:2709 -msgid "Flip selected objects vertically" -msgstr "" - -#: ../src/verbs.cpp:2712 -msgid "Apply mask to selection (using the topmost object as mask)" -msgstr "" - -#: ../src/verbs.cpp:2714 -msgid "Edit mask" -msgstr "" - -#: ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 -msgid "_Release" -msgstr "" - -#: ../src/verbs.cpp:2716 -msgid "Remove mask from selection" -msgstr "" - -#: ../src/verbs.cpp:2718 -msgid "" -"Apply clipping path to selection (using the topmost object as clipping path)" -msgstr "" - -#: ../src/verbs.cpp:2719 -msgid "Create Cl_ip Group" -msgstr "" - -#: ../src/verbs.cpp:2720 -msgid "Creates a clip group using the selected objects as a base" -msgstr "" - -#: ../src/verbs.cpp:2722 -msgid "Edit clipping path" -msgstr "" - -#: ../src/verbs.cpp:2724 -msgid "Remove clipping path from selection" -msgstr "" - -#. Tools -#: ../src/verbs.cpp:2729 -msgctxt "ContextVerb" -msgid "Select" -msgstr "" - -#: ../src/verbs.cpp:2730 -msgid "Select and transform objects" -msgstr "" - -#: ../src/verbs.cpp:2731 -msgctxt "ContextVerb" -msgid "Node Edit" -msgstr "" - -#: ../src/verbs.cpp:2732 -msgid "Edit paths by nodes" -msgstr "" - -#: ../src/verbs.cpp:2733 -msgctxt "ContextVerb" -msgid "Tweak" -msgstr "" - -#: ../src/verbs.cpp:2734 -msgid "Tweak objects by sculpting or painting" -msgstr "" - -#: ../src/verbs.cpp:2735 -msgctxt "ContextVerb" -msgid "Spray" -msgstr "" - -#: ../src/verbs.cpp:2736 -msgid "Spray objects by sculpting or painting" -msgstr "" - -#: ../src/verbs.cpp:2737 -msgctxt "ContextVerb" -msgid "Rectangle" -msgstr "" - -#: ../src/verbs.cpp:2738 -msgid "Create rectangles and squares" -msgstr "" - -#: ../src/verbs.cpp:2739 -msgctxt "ContextVerb" -msgid "3D Box" -msgstr "" - -#: ../src/verbs.cpp:2740 -msgid "Create 3D boxes" -msgstr "" - -#: ../src/verbs.cpp:2741 -msgctxt "ContextVerb" -msgid "Ellipse" -msgstr "" - -#: ../src/verbs.cpp:2742 -msgid "Create circles, ellipses, and arcs" -msgstr "" - -#: ../src/verbs.cpp:2743 -msgctxt "ContextVerb" -msgid "Star" -msgstr "" - -#: ../src/verbs.cpp:2744 -msgid "Create stars and polygons" -msgstr "" - -#: ../src/verbs.cpp:2745 -msgctxt "ContextVerb" -msgid "Spiral" -msgstr "" - -#: ../src/verbs.cpp:2746 -msgid "Create spirals" -msgstr "" - -#: ../src/verbs.cpp:2747 -msgctxt "ContextVerb" -msgid "Pencil" -msgstr "" - -#: ../src/verbs.cpp:2748 -msgid "Draw freehand lines" -msgstr "" - -#: ../src/verbs.cpp:2749 -msgctxt "ContextVerb" -msgid "Pen" -msgstr "" - -#: ../src/verbs.cpp:2750 -msgid "Draw Bezier curves and straight lines" -msgstr "" - -#: ../src/verbs.cpp:2751 -msgctxt "ContextVerb" -msgid "Calligraphy" -msgstr "" - -#: ../src/verbs.cpp:2752 -msgid "Draw calligraphic or brush strokes" -msgstr "" - -#: ../src/verbs.cpp:2754 -msgid "Create and edit text objects" -msgstr "" - -#: ../src/verbs.cpp:2755 -msgctxt "ContextVerb" -msgid "Gradient" -msgstr "" - -#: ../src/verbs.cpp:2756 -msgid "Create and edit gradients" -msgstr "" - -#: ../src/verbs.cpp:2757 -msgctxt "ContextVerb" -msgid "Mesh" -msgstr "" - -#: ../src/verbs.cpp:2758 -msgid "Create and edit meshes" -msgstr "" - -#: ../src/verbs.cpp:2759 -msgctxt "ContextVerb" -msgid "Zoom" -msgstr "" - -#: ../src/verbs.cpp:2760 -msgid "Zoom in or out" -msgstr "" - -#: ../src/verbs.cpp:2762 -msgid "Measurement tool" -msgstr "" - -#: ../src/verbs.cpp:2763 -msgctxt "ContextVerb" -msgid "Dropper" -msgstr "" - -#: ../src/verbs.cpp:2764 ../src/widgets/sp-color-notebook.cpp:396 -msgid "Pick colors from image" -msgstr "" - -#: ../src/verbs.cpp:2765 -msgctxt "ContextVerb" -msgid "Connector" -msgstr "" - -#: ../src/verbs.cpp:2766 -msgid "Create diagram connectors" -msgstr "" - -#: ../src/verbs.cpp:2767 -msgctxt "ContextVerb" -msgid "Paint Bucket" -msgstr "" - -#: ../src/verbs.cpp:2768 -msgid "Fill bounded areas" -msgstr "" - -#: ../src/verbs.cpp:2769 -msgctxt "ContextVerb" -msgid "LPE Edit" -msgstr "" - -#: ../src/verbs.cpp:2770 -msgid "Edit Path Effect parameters" -msgstr "" - -#: ../src/verbs.cpp:2771 -msgctxt "ContextVerb" -msgid "Eraser" -msgstr "" - -#: ../src/verbs.cpp:2772 -msgid "Erase existing paths" -msgstr "" - -#: ../src/verbs.cpp:2773 -msgctxt "ContextVerb" -msgid "LPE Tool" -msgstr "" - -#: ../src/verbs.cpp:2774 -msgid "Do geometric constructions" -msgstr "" - -#. Tool prefs -#: ../src/verbs.cpp:2776 -msgid "Selector Preferences" -msgstr "" - -#: ../src/verbs.cpp:2777 -msgid "Open Preferences for the Selector tool" -msgstr "" - -#: ../src/verbs.cpp:2778 -msgid "Node Tool Preferences" -msgstr "" - -#: ../src/verbs.cpp:2779 -msgid "Open Preferences for the Node tool" -msgstr "" - -#: ../src/verbs.cpp:2780 -msgid "Tweak Tool Preferences" -msgstr "" - -#: ../src/verbs.cpp:2781 -msgid "Open Preferences for the Tweak tool" -msgstr "" - -#: ../src/verbs.cpp:2782 -msgid "Spray Tool Preferences" -msgstr "" - -#: ../src/verbs.cpp:2783 -msgid "Open Preferences for the Spray tool" -msgstr "" - -#: ../src/verbs.cpp:2784 -msgid "Rectangle Preferences" -msgstr "" - -#: ../src/verbs.cpp:2785 -msgid "Open Preferences for the Rectangle tool" -msgstr "" - -#: ../src/verbs.cpp:2786 -msgid "3D Box Preferences" -msgstr "" - -#: ../src/verbs.cpp:2787 -msgid "Open Preferences for the 3D Box tool" -msgstr "" - -#: ../src/verbs.cpp:2788 -msgid "Ellipse Preferences" -msgstr "" - -#: ../src/verbs.cpp:2789 -msgid "Open Preferences for the Ellipse tool" -msgstr "" - -#: ../src/verbs.cpp:2790 -msgid "Star Preferences" -msgstr "" - -#: ../src/verbs.cpp:2791 -msgid "Open Preferences for the Star tool" -msgstr "" - -#: ../src/verbs.cpp:2792 -msgid "Spiral Preferences" -msgstr "" - -#: ../src/verbs.cpp:2793 -msgid "Open Preferences for the Spiral tool" -msgstr "" - -#: ../src/verbs.cpp:2794 -msgid "Pencil Preferences" -msgstr "" - -#: ../src/verbs.cpp:2795 -msgid "Open Preferences for the Pencil tool" -msgstr "" - -#: ../src/verbs.cpp:2796 -msgid "Pen Preferences" -msgstr "" - -#: ../src/verbs.cpp:2797 -msgid "Open Preferences for the Pen tool" -msgstr "" - -#: ../src/verbs.cpp:2798 -msgid "Calligraphic Preferences" -msgstr "" - -#: ../src/verbs.cpp:2799 -msgid "Open Preferences for the Calligraphy tool" -msgstr "" - -#: ../src/verbs.cpp:2800 -msgid "Text Preferences" -msgstr "" - -#: ../src/verbs.cpp:2801 -msgid "Open Preferences for the Text tool" -msgstr "" - -#: ../src/verbs.cpp:2802 -msgid "Gradient Preferences" -msgstr "" - -#: ../src/verbs.cpp:2803 -msgid "Open Preferences for the Gradient tool" -msgstr "" - -#: ../src/verbs.cpp:2804 -msgid "Mesh Preferences" -msgstr "" - -#: ../src/verbs.cpp:2805 -msgid "Open Preferences for the Mesh tool" -msgstr "" - -#: ../src/verbs.cpp:2806 -msgid "Zoom Preferences" -msgstr "" - -#: ../src/verbs.cpp:2807 -msgid "Open Preferences for the Zoom tool" -msgstr "" - -#: ../src/verbs.cpp:2808 -msgid "Measure Preferences" -msgstr "" - -#: ../src/verbs.cpp:2809 -msgid "Open Preferences for the Measure tool" -msgstr "" - -#: ../src/verbs.cpp:2810 -msgid "Dropper Preferences" -msgstr "" - -#: ../src/verbs.cpp:2811 -msgid "Open Preferences for the Dropper tool" -msgstr "" - -#: ../src/verbs.cpp:2812 -msgid "Connector Preferences" -msgstr "" - -#: ../src/verbs.cpp:2813 -msgid "Open Preferences for the Connector tool" -msgstr "" - -#: ../src/verbs.cpp:2814 -msgid "Paint Bucket Preferences" -msgstr "" - -#: ../src/verbs.cpp:2815 -msgid "Open Preferences for the Paint Bucket tool" -msgstr "" - -#: ../src/verbs.cpp:2816 -msgid "Eraser Preferences" -msgstr "" - -#: ../src/verbs.cpp:2817 -msgid "Open Preferences for the Eraser tool" -msgstr "" - -#: ../src/verbs.cpp:2818 -msgid "LPE Tool Preferences" -msgstr "" - -#: ../src/verbs.cpp:2819 -msgid "Open Preferences for the LPETool tool" -msgstr "" - -#. Zoom/View -#: ../src/verbs.cpp:2821 -msgid "Zoom In" -msgstr "" - -#: ../src/verbs.cpp:2821 -msgid "Zoom in" -msgstr "" - -#: ../src/verbs.cpp:2822 -msgid "Zoom Out" -msgstr "" - -#: ../src/verbs.cpp:2822 -msgid "Zoom out" -msgstr "" - -#: ../src/verbs.cpp:2823 -msgid "_Rulers" -msgstr "" - -#: ../src/verbs.cpp:2823 -msgid "Show or hide the canvas rulers" -msgstr "" - -#: ../src/verbs.cpp:2824 -msgid "Scroll_bars" -msgstr "" - -#: ../src/verbs.cpp:2824 -msgid "Show or hide the canvas scrollbars" -msgstr "" - -#: ../src/verbs.cpp:2825 -msgid "Page _Grid" -msgstr "" - -#: ../src/verbs.cpp:2825 -msgid "Show or hide the page grid" -msgstr "" - -#: ../src/verbs.cpp:2826 -msgid "G_uides" -msgstr "" - -#: ../src/verbs.cpp:2826 -msgid "Show or hide guides (drag from a ruler to create a guide)" -msgstr "" - -#: ../src/verbs.cpp:2827 -msgid "Enable snapping" -msgstr "" - -#: ../src/verbs.cpp:2828 -msgid "_Commands Bar" -msgstr "" - -#: ../src/verbs.cpp:2828 -msgid "Show or hide the Commands bar (under the menu)" -msgstr "" - -#: ../src/verbs.cpp:2829 -msgid "Sn_ap Controls Bar" -msgstr "" - -#: ../src/verbs.cpp:2829 -msgid "Show or hide the snapping controls" -msgstr "" - -#: ../src/verbs.cpp:2830 -msgid "T_ool Controls Bar" -msgstr "" - -#: ../src/verbs.cpp:2830 -msgid "Show or hide the Tool Controls bar" -msgstr "" - -#: ../src/verbs.cpp:2831 -msgid "_Toolbox" -msgstr "" - -#: ../src/verbs.cpp:2831 -msgid "Show or hide the main toolbox (on the left)" -msgstr "" - -#: ../src/verbs.cpp:2832 -msgid "_Palette" -msgstr "" - -#: ../src/verbs.cpp:2832 -msgid "Show or hide the color palette" -msgstr "" - -#: ../src/verbs.cpp:2833 -msgid "_Statusbar" -msgstr "" - -#: ../src/verbs.cpp:2833 -msgid "Show or hide the statusbar (at the bottom of the window)" -msgstr "" - -#: ../src/verbs.cpp:2834 -msgid "Nex_t Zoom" -msgstr "" - -#: ../src/verbs.cpp:2834 -msgid "Next zoom (from the history of zooms)" -msgstr "" - -#: ../src/verbs.cpp:2836 -msgid "Pre_vious Zoom" -msgstr "" - -#: ../src/verbs.cpp:2836 -msgid "Previous zoom (from the history of zooms)" -msgstr "" - -#: ../src/verbs.cpp:2838 -msgid "Zoom 1:_1" -msgstr "" - -#: ../src/verbs.cpp:2838 -msgid "Zoom to 1:1" -msgstr "" - -#: ../src/verbs.cpp:2840 -msgid "Zoom 1:_2" -msgstr "" - -#: ../src/verbs.cpp:2840 -msgid "Zoom to 1:2" -msgstr "" - -#: ../src/verbs.cpp:2842 -msgid "_Zoom 2:1" -msgstr "" - -#: ../src/verbs.cpp:2842 -msgid "Zoom to 2:1" -msgstr "" - -#: ../src/verbs.cpp:2845 -msgid "_Fullscreen" -msgstr "" - -#: ../src/verbs.cpp:2845 ../src/verbs.cpp:2847 -msgid "Stretch this document window to full screen" -msgstr "" - -#: ../src/verbs.cpp:2847 -msgid "Fullscreen & Focus Mode" -msgstr "" - -#: ../src/verbs.cpp:2850 -msgid "Toggle _Focus Mode" -msgstr "" - -#: ../src/verbs.cpp:2850 -msgid "Remove excess toolbars to focus on drawing" -msgstr "" - -#: ../src/verbs.cpp:2852 -msgid "Duplic_ate Window" -msgstr "" - -#: ../src/verbs.cpp:2852 -msgid "Open a new window with the same document" -msgstr "" - -#: ../src/verbs.cpp:2854 -msgid "_New View Preview" -msgstr "" - -#: ../src/verbs.cpp:2855 -msgid "New View Preview" -msgstr "" - -#. "view_new_preview" -#: ../src/verbs.cpp:2857 ../src/verbs.cpp:2865 -msgid "_Normal" -msgstr "" - -#: ../src/verbs.cpp:2858 -msgid "Switch to normal display mode" -msgstr "" - -#: ../src/verbs.cpp:2859 -msgid "No _Filters" -msgstr "" - -#: ../src/verbs.cpp:2860 -msgid "Switch to normal display without filters" -msgstr "" - -#: ../src/verbs.cpp:2861 -msgid "_Outline" -msgstr "" - -#: ../src/verbs.cpp:2862 -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:2863 ../src/verbs.cpp:2871 -msgid "_Toggle" -msgstr "" - -#: ../src/verbs.cpp:2864 -msgid "Toggle between normal and outline display modes" -msgstr "" - -#: ../src/verbs.cpp:2866 -msgid "Switch to normal color display mode" -msgstr "" - -#: ../src/verbs.cpp:2867 -msgid "_Grayscale" -msgstr "" - -#: ../src/verbs.cpp:2868 -msgid "Switch to grayscale display mode" -msgstr "" - -#: ../src/verbs.cpp:2872 -msgid "Toggle between normal and grayscale color display modes" -msgstr "" - -#: ../src/verbs.cpp:2874 -msgid "Color-managed view" -msgstr "" - -#: ../src/verbs.cpp:2875 -msgid "Toggle color-managed display for this document window" -msgstr "" - -#: ../src/verbs.cpp:2877 -msgid "Ico_n Preview..." -msgstr "" - -#: ../src/verbs.cpp:2878 -msgid "Open a window to preview objects at different icon resolutions" -msgstr "" - -#: ../src/verbs.cpp:2880 -msgid "Zoom to fit page in window" -msgstr "" - -#: ../src/verbs.cpp:2881 -msgid "Page _Width" -msgstr "" - -#: ../src/verbs.cpp:2882 -msgid "Zoom to fit page width in window" -msgstr "" - -#: ../src/verbs.cpp:2884 -msgid "Zoom to fit drawing in window" -msgstr "" - -#: ../src/verbs.cpp:2886 -msgid "Zoom to fit selection in window" -msgstr "" - -#. Dialogs -#: ../src/verbs.cpp:2889 -msgid "P_references..." -msgstr "" - -#: ../src/verbs.cpp:2890 -msgid "Edit global Inkscape preferences" -msgstr "" - -#: ../src/verbs.cpp:2891 -msgid "_Document Properties..." -msgstr "" - -#: ../src/verbs.cpp:2892 -msgid "Edit properties of this document (to be saved with the document)" -msgstr "" - -#: ../src/verbs.cpp:2893 -msgid "Document _Metadata..." -msgstr "" - -#: ../src/verbs.cpp:2894 -msgid "Edit document metadata (to be saved with the document)" -msgstr "" - -#: ../src/verbs.cpp:2896 -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:2898 -msgid "Gl_yphs..." -msgstr "" - -#: ../src/verbs.cpp:2899 -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:2902 -msgid "S_watches..." -msgstr "" - -#: ../src/verbs.cpp:2903 -msgid "Select colors from a swatches palette" -msgstr "" - -#: ../src/verbs.cpp:2904 -msgid "S_ymbols..." -msgstr "" - -#: ../src/verbs.cpp:2905 -msgid "Select symbol from a symbols palette" -msgstr "" - -#: ../src/verbs.cpp:2906 -msgid "Transfor_m..." -msgstr "" - -#: ../src/verbs.cpp:2907 -msgid "Precisely control objects' transformations" -msgstr "" - -#: ../src/verbs.cpp:2908 -msgid "_Align and Distribute..." -msgstr "" - -#: ../src/verbs.cpp:2909 -msgid "Align and distribute objects" -msgstr "" - -#: ../src/verbs.cpp:2910 -msgid "_Spray options..." -msgstr "" - -#: ../src/verbs.cpp:2911 -msgid "Some options for the spray" -msgstr "" - -#: ../src/verbs.cpp:2912 -msgid "Undo _History..." -msgstr "" - -#: ../src/verbs.cpp:2913 -msgid "Undo History" -msgstr "" - -#: ../src/verbs.cpp:2915 -msgid "View and select font family, font size and other text properties" -msgstr "" - -#: ../src/verbs.cpp:2916 -msgid "_XML Editor..." -msgstr "" - -#: ../src/verbs.cpp:2917 -msgid "View and edit the XML tree of the document" -msgstr "" - -#: ../src/verbs.cpp:2918 -msgid "_Find/Replace..." -msgstr "" - -#: ../src/verbs.cpp:2919 -msgid "Find objects in document" -msgstr "" - -#: ../src/verbs.cpp:2920 -msgid "Find and _Replace Text..." -msgstr "" - -#: ../src/verbs.cpp:2921 -msgid "Find and replace text in document" -msgstr "" - -#: ../src/verbs.cpp:2923 -msgid "Check spelling of text in document" -msgstr "" - -#: ../src/verbs.cpp:2924 -msgid "_Messages..." -msgstr "" - -#: ../src/verbs.cpp:2925 -msgid "View debug messages" -msgstr "" - -#: ../src/verbs.cpp:2926 -msgid "Show/Hide D_ialogs" -msgstr "" - -#: ../src/verbs.cpp:2927 -msgid "Show or hide all open dialogs" -msgstr "" - -#: ../src/verbs.cpp:2928 -msgid "Create Tiled Clones..." -msgstr "" - -#: ../src/verbs.cpp:2929 -msgid "" -"Create multiple clones of selected object, arranging them into a pattern or " -"scattering" -msgstr "" - -#: ../src/verbs.cpp:2930 -msgid "_Object attributes..." -msgstr "" - -#: ../src/verbs.cpp:2931 -msgid "Edit the object attributes..." -msgstr "" - -#: ../src/verbs.cpp:2933 -msgid "Edit the ID, locked and visible status, and other object properties" -msgstr "" - -#: ../src/verbs.cpp:2934 -msgid "_Input Devices..." -msgstr "" - -#: ../src/verbs.cpp:2935 -msgid "Configure extended input devices, such as a graphics tablet" -msgstr "" - -#: ../src/verbs.cpp:2936 -msgid "_Extensions..." -msgstr "" - -#: ../src/verbs.cpp:2937 -msgid "Query information about extensions" -msgstr "" - -#: ../src/verbs.cpp:2938 -msgid "Layer_s..." -msgstr "" - -#: ../src/verbs.cpp:2939 -msgid "View Layers" -msgstr "" - -#: ../src/verbs.cpp:2940 -msgid "Object_s..." -msgstr "" - -#: ../src/verbs.cpp:2941 -msgid "View Objects" -msgstr "" - -#: ../src/verbs.cpp:2942 -msgid "Selection se_ts..." -msgstr "" - -#: ../src/verbs.cpp:2943 -msgid "View Tags" -msgstr "" - -#: ../src/verbs.cpp:2944 -msgid "Path E_ffects ..." -msgstr "" - -#: ../src/verbs.cpp:2945 -msgid "Manage, edit, and apply path effects" -msgstr "" - -#: ../src/verbs.cpp:2946 -msgid "Filter _Editor..." -msgstr "" - -#: ../src/verbs.cpp:2947 -msgid "Manage, edit, and apply SVG filters" -msgstr "" - -#: ../src/verbs.cpp:2948 -msgid "SVG Font Editor..." -msgstr "" - -#: ../src/verbs.cpp:2949 -msgid "Edit SVG fonts" -msgstr "" - -#: ../src/verbs.cpp:2950 -msgid "Print Colors..." -msgstr "" - -#: ../src/verbs.cpp:2951 -msgid "" -"Select which color separations to render in Print Colors Preview rendermode" -msgstr "" - -#: ../src/verbs.cpp:2952 -msgid "_Export PNG Image..." -msgstr "" - -#: ../src/verbs.cpp:2953 -msgid "Export this document or a selection as a PNG image" -msgstr "" - -#. Help -#: ../src/verbs.cpp:2955 -msgid "About E_xtensions" -msgstr "" - -#: ../src/verbs.cpp:2956 -msgid "Information on Inkscape extensions" -msgstr "" - -#: ../src/verbs.cpp:2957 -msgid "About _Memory" -msgstr "" - -#: ../src/verbs.cpp:2958 -msgid "Memory usage information" -msgstr "" - -#: ../src/verbs.cpp:2959 -msgid "_About Inkscape" -msgstr "" - -#: ../src/verbs.cpp:2960 -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:2965 -msgid "Inkscape: _Basic" -msgstr "" - -#: ../src/verbs.cpp:2966 -msgid "Getting started with Inkscape" -msgstr "" - -#. "tutorial_basic" -#: ../src/verbs.cpp:2967 -msgid "Inkscape: _Shapes" -msgstr "" - -#: ../src/verbs.cpp:2968 -msgid "Using shape tools to create and edit shapes" -msgstr "" - -#: ../src/verbs.cpp:2969 -msgid "Inkscape: _Advanced" -msgstr "" - -#: ../src/verbs.cpp:2970 -msgid "Advanced Inkscape topics" -msgstr "" - -#. "tutorial_advanced" -#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2972 -msgid "Inkscape: T_racing" -msgstr "" - -#: ../src/verbs.cpp:2973 -msgid "Using bitmap tracing" -msgstr "" - -#. "tutorial_tracing" -#: ../src/verbs.cpp:2974 -msgid "Inkscape: Tracing Pixel Art" -msgstr "" - -#: ../src/verbs.cpp:2975 -msgid "Using Trace Pixel Art dialog" -msgstr "" - -#: ../src/verbs.cpp:2976 -msgid "Inkscape: _Calligraphy" -msgstr "" - -#: ../src/verbs.cpp:2977 -msgid "Using the Calligraphy pen tool" -msgstr "" - -#: ../src/verbs.cpp:2978 -msgid "Inkscape: _Interpolate" -msgstr "" - -#: ../src/verbs.cpp:2979 -msgid "Using the interpolate extension" -msgstr "" - -#. "tutorial_interpolate" -#: ../src/verbs.cpp:2980 -msgid "_Elements of Design" -msgstr "" - -#: ../src/verbs.cpp:2981 -msgid "Principles of design in the tutorial form" -msgstr "" - -#. "tutorial_design" -#: ../src/verbs.cpp:2982 -msgid "_Tips and Tricks" -msgstr "" - -#: ../src/verbs.cpp:2983 -msgid "Miscellaneous tips and tricks" -msgstr "" - -#. "tutorial_tips" -#. Effect -- renamed Extension -#: ../src/verbs.cpp:2986 -msgid "Previous Exte_nsion" -msgstr "" - -#: ../src/verbs.cpp:2987 -msgid "Repeat the last extension with the same settings" -msgstr "" - -#: ../src/verbs.cpp:2988 -msgid "_Previous Extension Settings..." -msgstr "" - -#: ../src/verbs.cpp:2989 -msgid "Repeat the last extension with new settings" -msgstr "" - -#: ../src/verbs.cpp:2993 -msgid "Fit the page to the current selection" -msgstr "" - -#: ../src/verbs.cpp:2995 -msgid "Fit the page to the drawing" -msgstr "" - -#: ../src/verbs.cpp:2997 -msgid "" -"Fit the page to the current selection or the drawing if there is no selection" -msgstr "" - -#. LockAndHide -#: ../src/verbs.cpp:2999 -msgid "Unlock All" -msgstr "" - -#: ../src/verbs.cpp:3001 -msgid "Unlock All in All Layers" -msgstr "" - -#: ../src/verbs.cpp:3003 -msgid "Unhide All" -msgstr "" - -#: ../src/verbs.cpp:3005 -msgid "Unhide All in All Layers" -msgstr "" - -#: ../src/verbs.cpp:3009 -msgid "Link an ICC color profile" -msgstr "" - -#: ../src/verbs.cpp:3010 -msgid "Remove Color Profile" -msgstr "" - -#: ../src/verbs.cpp:3011 -msgid "Remove a linked ICC color profile" -msgstr "" - -#: ../src/verbs.cpp:3014 -msgid "Add External Script" -msgstr "" - -#: ../src/verbs.cpp:3014 -msgid "Add an external script" -msgstr "" - -#: ../src/verbs.cpp:3016 -msgid "Add Embedded Script" -msgstr "" - -#: ../src/verbs.cpp:3016 -msgid "Add an embedded script" -msgstr "" - -#: ../src/verbs.cpp:3018 -msgid "Edit Embedded Script" -msgstr "" - -#: ../src/verbs.cpp:3018 -msgid "Edit an embedded script" -msgstr "" - -#: ../src/verbs.cpp:3020 -msgid "Remove External Script" -msgstr "" - -#: ../src/verbs.cpp:3020 -msgid "Remove an external script" -msgstr "" - -#: ../src/verbs.cpp:3022 -msgid "Remove Embedded Script" -msgstr "" - -#: ../src/verbs.cpp:3022 -msgid "Remove an embedded script" -msgstr "" - -#: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 -msgid "Center on horizontal and vertical axis" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:132 -msgid "Arc: Change start/end" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:198 -msgid "Arc: Change open/closed" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 -#: ../src/widgets/rect-toolbar.cpp:261 ../src/widgets/rect-toolbar.cpp:300 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 -msgid "New:" -msgstr "" - -#. FIXME: implement averaging of all parameters for multiple selected -#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); -#: ../src/widgets/arc-toolbar.cpp:292 ../src/widgets/arc-toolbar.cpp:303 -#: ../src/widgets/rect-toolbar.cpp:269 ../src/widgets/rect-toolbar.cpp:287 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:386 -msgid "Change:" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:328 -msgid "Start:" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:329 -msgid "The angle (in degrees) from the horizontal to the arc's start point" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:341 -msgid "End:" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:342 -msgid "The angle (in degrees) from the horizontal to the arc's end point" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:358 -msgid "Closed arc" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:359 -msgid "Switch to segment (closed shape with two radii)" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:365 -msgid "Open Arc" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:366 -msgid "Switch to arc (unclosed shape)" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:389 -msgid "Make whole" -msgstr "" - -#: ../src/widgets/arc-toolbar.cpp:390 -msgid "Make the shape a whole ellipse, not arc or segment" -msgstr "" - -#. TODO: use the correct axis here, too -#: ../src/widgets/box3d-toolbar.cpp:233 -msgid "3D Box: Change perspective (angle of infinite axis)" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:302 -msgid "Angle in X direction" -msgstr "" - -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:304 -msgid "Angle of PLs in X direction" -msgstr "" - -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:326 -msgid "State of VP in X direction" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:327 -msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:342 -msgid "Angle in Y direction" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:342 -msgid "Angle Y:" -msgstr "" - -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:344 -msgid "Angle of PLs in Y direction" -msgstr "" - -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:365 -msgid "State of VP in Y direction" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:366 -msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:381 -msgid "Angle in Z direction" -msgstr "" - -#. Translators: PL is short for 'perspective line' -#: ../src/widgets/box3d-toolbar.cpp:383 -msgid "Angle of PLs in Z direction" -msgstr "" - -#. Translators: VP is short for 'vanishing point' -#: ../src/widgets/box3d-toolbar.cpp:404 -msgid "State of VP in Z direction" -msgstr "" - -#: ../src/widgets/box3d-toolbar.cpp:405 -msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" -msgstr "" - -#. gint preset_index = ege_select_one_action_get_active( sel ); -#: ../src/widgets/calligraphy-toolbar.cpp:218 -#: ../src/widgets/calligraphy-toolbar.cpp:262 -#: ../src/widgets/calligraphy-toolbar.cpp:267 -msgid "No preset" -msgstr "" - -#. Width -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 -msgid "(hairline)" -msgstr "" - -#. Mean -#. Rotation -#. Scale -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/calligraphy-toolbar.cpp:460 -#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:275 -#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 -#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 -#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 -#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(default)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:427 -#: ../src/widgets/eraser-toolbar.cpp:125 -msgid "(broad stroke)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:430 -#: ../src/widgets/eraser-toolbar.cpp:128 -msgid "Pen Width" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:431 -msgid "The width of the calligraphic pen (relative to the visible canvas area)" -msgstr "" - -#. Thinning -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(speed blows up stroke)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(slight widening)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(constant width)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(slight thinning, default)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:444 -msgid "(speed deflates stroke)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:447 -msgid "Stroke Thinning" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:447 -msgid "Thinning:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:448 -msgid "" -"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " -"makes them broader, 0 makes width independent of velocity)" -msgstr "" - -#. Angle -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(left edge up)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(horizontal)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:460 -msgid "(right edge up)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:463 -msgid "Pen Angle" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:463 -#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 -msgid "Angle:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:464 -msgid "" -"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " -"fixation = 0)" -msgstr "" - -#. Fixation -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(perpendicular to stroke, \"brush\")" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(almost fixed, default)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:478 -msgid "(fixed by Angle, \"pen\")" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:481 -msgid "Fixation" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:481 -msgid "Fixation:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:482 -msgid "" -"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " -"fixed angle)" -msgstr "" - -#. Cap Rounding -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(blunt caps, default)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(slightly bulging)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(approximately round)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:494 -msgid "(long protruding caps)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:498 -msgid "Cap rounding" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:498 -msgid "Caps:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:499 -msgid "" -"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " -"round caps)" -msgstr "" - -#. Tremor -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(smooth line)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(slight tremor)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(noticeable tremor)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:511 -msgid "(maximum tremor)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:514 -msgid "Stroke Tremor" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:514 -msgid "Tremor:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:515 -msgid "Increase to make strokes rugged and trembling" -msgstr "" - -#. Wiggle -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(no wiggle)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(slight deviation)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:529 -msgid "(wild waves and curls)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:532 -msgid "Pen Wiggle" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:532 -msgid "Wiggle:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:533 -msgid "Increase to make the pen waver and wiggle" -msgstr "" - -#. Mass -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(no inertia)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(slight smoothing, default)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(noticeable lagging)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:546 -msgid "(maximum inertia)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:549 -msgid "Pen Mass" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:549 -msgid "Mass:" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:550 -msgid "Increase to make the pen drag behind, as if slowed by inertia" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:565 -msgid "Trace Background" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:566 -msgid "" -"Trace the lightness of the background by the width of the pen (white - " -"minimum width, black - maximum width)" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:579 -msgid "Use the pressure of the input device to alter the width of the pen" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:591 -msgid "Tilt" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:592 -msgid "Use the tilt of the input device to alter the angle of the pen's nib" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:607 -msgid "Choose a preset" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:622 -msgid "Add/Edit Profile" -msgstr "" - -#: ../src/widgets/calligraphy-toolbar.cpp:623 -msgid "Add or edit calligraphic profile" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:120 -msgid "Set connector type: orthogonal" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:120 -msgid "Set connector type: polyline" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:169 -msgid "Change connector curvature" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:220 -msgid "Change connector spacing" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:313 -msgid "Avoid" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:323 -msgid "Ignore" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:334 -msgid "Orthogonal" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:335 -msgid "Make connector orthogonal or polyline" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:349 -msgid "Connector Curvature" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:349 -msgid "Curvature:" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:350 -msgid "The amount of connectors curvature" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:360 -msgid "Connector Spacing" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:360 -msgid "Spacing:" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:361 -msgid "The amount of space left around objects by auto-routing connectors" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:372 -msgid "Graph" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:382 -msgid "Connector Length" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:382 -msgid "Length:" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:383 -msgid "Ideal length for connectors when layout is applied" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:395 -msgid "Downwards" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:396 -msgid "Make connectors with end-markers (arrows) point downwards" -msgstr "" - -#: ../src/widgets/connector-toolbar.cpp:412 -msgid "Do not allow overlapping shapes" -msgstr "" - -#: ../src/widgets/dash-selector.cpp:59 -msgid "Dash pattern" -msgstr "" - -#: ../src/widgets/dash-selector.cpp:76 -msgid "Pattern offset" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:466 -msgid "Zoom drawing if window size changes" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:665 -msgid "Cursor coordinates" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:691 -msgid "Z:" -msgstr "" - -#. display the initial welcome message in the statusbar -#: ../src/widgets/desktop-widget.cpp:734 -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:828 -msgid "grayscale" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:829 -msgid ", grayscale" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:830 -msgid "print colors preview" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:831 -msgid ", print colors preview" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:832 -msgid "outline" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:833 -msgid "no filters" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:860 -#, c-format -msgid "%s%s: %d (%s%s) - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 -#, c-format -msgid "%s%s: %d (%s) - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:868 -#, c-format -msgid "%s%s: %d - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:874 -#, c-format -msgid "%s%s (%s%s) - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 -#, c-format -msgid "%s%s (%s) - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:882 -#, c-format -msgid "%s%s - Inkscape" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1051 -msgid "Color-managed display is enabled in this window" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1053 -msgid "Color-managed display is disabled in this window" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1108 -#, c-format -msgid "" -"Save changes to document \"%s\" before " -"closing?\n" -"\n" -"If you close without saving, your changes will be discarded." -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1118 -#: ../src/widgets/desktop-widget.cpp:1177 -msgid "Close _without saving" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1167 -#, c-format -msgid "" -"The file \"%s\" was saved with a " -"format that may cause data loss!\n" -"\n" -"Do you want to save this file as Inkscape SVG?" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1179 -msgid "_Save as Inkscape SVG" -msgstr "" - -#: ../src/widgets/desktop-widget.cpp:1392 -msgid "Note:" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:90 -msgid "Pick opacity" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:91 -msgid "" -"Pick both the color and the alpha (transparency) under cursor; otherwise, " -"pick only the visible color premultiplied by alpha" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:94 -msgid "Pick" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:103 -msgid "Assign opacity" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:104 -msgid "" -"If alpha was picked, assign it to selection as fill or stroke transparency" -msgstr "" - -#: ../src/widgets/dropper-toolbar.cpp:107 -msgid "Assign" -msgstr "" - -#: ../src/widgets/ege-paint-def.cpp:87 -msgid "remove" -msgstr "" - -#: ../src/widgets/eraser-toolbar.cpp:94 -msgid "Delete objects touched by the eraser" -msgstr "" - -#: ../src/widgets/eraser-toolbar.cpp:100 -msgid "Cut" -msgstr "" - -#: ../src/widgets/eraser-toolbar.cpp:101 -msgid "Cut out from objects" -msgstr "" - -#: ../src/widgets/eraser-toolbar.cpp:129 -msgid "The width of the eraser pen (relative to the visible canvas area)" -msgstr "" - -#: ../src/widgets/fill-style.cpp:360 -msgid "Change fill rule" -msgstr "" - -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 -msgid "Set fill color" -msgstr "" - -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 -msgid "Set stroke color" -msgstr "" - -#: ../src/widgets/fill-style.cpp:622 -msgid "Set gradient on fill" -msgstr "" - -#: ../src/widgets/fill-style.cpp:622 -msgid "Set gradient on stroke" -msgstr "" - -#: ../src/widgets/fill-style.cpp:682 -msgid "Set pattern on fill" -msgstr "" - -#: ../src/widgets/fill-style.cpp:683 -msgid "Set pattern on stroke" -msgstr "" - -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:947 -#: ../src/widgets/text-toolbar.cpp:1259 -msgid "Font size" -msgstr "" - -#. Family frame -#: ../src/widgets/font-selector.cpp:134 -msgid "Font family" -msgstr "" - -#. Style frame -#: ../src/widgets/font-selector.cpp:179 -msgctxt "Font selector" -msgid "Style" -msgstr "" - -#: ../src/widgets/font-selector.cpp:211 -msgid "Face" -msgstr "" - -#: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 -msgid "Font size:" -msgstr "" - -#: ../src/widgets/gradient-selector.cpp:196 -msgid "Create a duplicate gradient" -msgstr "" - -#: ../src/widgets/gradient-selector.cpp:212 -msgid "Edit gradient" -msgstr "" - -#: ../src/widgets/gradient-selector.cpp:288 -#: ../src/widgets/paint-selector.cpp:236 -msgid "Swatch" -msgstr "" - -#: ../src/widgets/gradient-selector.cpp:338 -msgid "Rename gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:156 -#: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:756 -#: ../src/widgets/gradient-toolbar.cpp:1094 -msgid "No gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:175 -msgid "Multiple gradients" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:676 -msgid "Multiple stops" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:774 -#: ../src/widgets/gradient-vector.cpp:609 -msgid "No stops in gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:927 -msgid "Assign gradient to object" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:949 -msgid "Set gradient repeat" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:987 -#: ../src/widgets/gradient-vector.cpp:720 -msgid "Change gradient stop offset" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1034 -msgid "linear" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1034 -msgid "Create linear gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1038 -msgid "radial" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1038 -msgid "Create radial (elliptic or circular) gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1041 -#: ../src/widgets/mesh-toolbar.cpp:207 -msgid "New:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 -msgid "fill" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 -msgid "Create gradient in the fill" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 -msgid "stroke" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 -msgid "Create gradient in the stroke" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:237 -msgid "on:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1096 -msgid "Select" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1096 -msgid "Choose a gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1097 -msgid "Select:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1112 -msgctxt "Gradient repeat type" -msgid "None" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1118 -msgid "Direct" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1120 -msgid "Repeat" -msgstr "" - -#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1122 -msgid "" -"Whether to fill with flat color beyond the ends of the gradient vector " -"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " -"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " -"directions (spreadMethod=\"reflect\")" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1127 -msgid "Repeat:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1141 -msgid "No stops" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1143 -msgid "Stops" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1143 -msgid "Select a stop for the current gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1144 -msgid "Stops:" -msgstr "" - -#. Label -#: ../src/widgets/gradient-toolbar.cpp:1156 -#: ../src/widgets/gradient-vector.cpp:906 -msgctxt "Gradient" -msgid "Offset:" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1156 -msgid "Offset of selected stop" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1174 -#: ../src/widgets/gradient-toolbar.cpp:1175 -msgid "Insert new stop" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1188 -#: ../src/widgets/gradient-toolbar.cpp:1189 -#: ../src/widgets/gradient-vector.cpp:888 -msgid "Delete stop" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1203 -msgid "Reverse the direction of the gradient" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1217 -msgid "Link gradients" -msgstr "" - -#: ../src/widgets/gradient-toolbar.cpp:1218 -msgid "Link gradients to change all related gradients" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:312 -#: ../src/widgets/paint-selector.cpp:947 -#: ../src/widgets/stroke-marker-selector.cpp:154 -msgid "No document selected" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:316 -msgid "No gradients in document" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:320 -msgid "No gradient selected" -msgstr "" - -#. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:883 -msgid "Add stop" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:886 -msgid "Add another control stop to gradient" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:891 -msgid "Delete current control stop from gradient" -msgstr "" - -#. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:959 -msgid "Stop Color" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:987 -msgid "Gradient editor" -msgstr "" - -#: ../src/widgets/gradient-vector.cpp:1324 -msgid "Change gradient stop color" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:233 -msgid "Closed" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:235 -msgid "Open start" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:237 -msgid "Open end" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:239 -msgid "Open both" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:301 -msgid "All inactive" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:302 -msgid "No geometric tool is active" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:335 -msgid "Show limiting bounding box" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:336 -msgid "Show bounding box (used to cut infinite lines)" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:347 -msgid "Get limiting bounding box from selection" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:348 -msgid "" -"Set limiting bounding box (used to cut infinite lines) to the bounding box " -"of current selection" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:360 -msgid "Choose a line segment type" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:376 -msgid "Display measuring info" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:377 -msgid "Display measuring info for selected items" -msgstr "" - -#. Add the units menu. -#: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 -#: ../src/widgets/paintbucket-toolbar.cpp:168 -#: ../src/widgets/rect-toolbar.cpp:379 ../src/widgets/select-toolbar.cpp:538 -msgid "Units" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:397 -msgid "Open LPE dialog" -msgstr "" - -#: ../src/widgets/lpe-toolbar.cpp:398 -msgid "Open LPE dialog (to adapt parameters numerically)" -msgstr "" - -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 -msgid "Font Size" -msgstr "" - -#: ../src/widgets/measure-toolbar.cpp:86 -msgid "Font Size:" -msgstr "" - -#: ../src/widgets/measure-toolbar.cpp:87 -msgid "The font size to be used in the measurement labels" -msgstr "" - -#: ../src/widgets/measure-toolbar.cpp:99 -#: ../src/widgets/measure-toolbar.cpp:107 -msgid "The units to be used for the measurements" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:200 -msgid "normal" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:200 -msgid "Create mesh gradient" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:204 -msgid "conical" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:204 -msgid "Create conical gradient" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:259 -msgid "Rows" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:259 -#: ../share/extensions/guides_creator.inx.h:5 -#: ../share/extensions/layout_nup.inx.h:12 -msgid "Rows:" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:259 -msgid "Number of rows in new mesh" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:275 -msgid "Columns" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:275 -#: ../share/extensions/guides_creator.inx.h:4 -msgid "Columns:" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:275 -msgid "Number of columns in new mesh" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:289 -msgid "Edit Fill" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:290 -msgid "Edit fill mesh" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:301 -msgid "Edit Stroke" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:302 -msgid "Edit stroke mesh" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:313 ../src/widgets/node-toolbar.cpp:521 -msgid "Show Handles" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:314 -msgid "Show side and tensor handles" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:341 -msgid "Insert node" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:342 -msgid "Insert new nodes into selected segments" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:345 -msgid "Insert" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:356 -msgid "Insert node at min X" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:357 -msgid "Insert new nodes at min X into selected segments" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:360 -msgid "Insert min X" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:366 -msgid "Insert node at max X" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:367 -msgid "Insert new nodes at max X into selected segments" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:370 -msgid "Insert max X" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:376 -msgid "Insert node at min Y" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:377 -msgid "Insert new nodes at min Y into selected segments" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:380 -msgid "Insert min Y" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:386 -msgid "Insert node at max Y" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:387 -msgid "Insert new nodes at max Y into selected segments" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:390 -msgid "Insert max Y" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:398 -msgid "Delete selected nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:409 -msgid "Join selected nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:412 -msgid "Join" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:420 -msgid "Break path at selected nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:430 -msgid "Join with segment" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:431 -msgid "Join selected endnodes with a new segment" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:440 -msgid "Delete segment" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:441 -msgid "Delete segment between two non-endpoint nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:450 -msgid "Node Cusp" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:451 -msgid "Make selected nodes corner" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:460 -msgid "Node Smooth" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:461 -msgid "Make selected nodes smooth" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:470 -msgid "Node Symmetric" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:471 -msgid "Make selected nodes symmetric" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:480 -msgid "Node Auto" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:481 -msgid "Make selected nodes auto-smooth" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:490 -msgid "Node Line" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:491 -msgid "Make selected segments lines" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:500 -msgid "Node Curve" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:501 -msgid "Make selected segments curves" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:510 -msgid "Show Transform Handles" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:511 -msgid "Show transformation handles for selected nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:522 -msgid "Show Bezier handles of selected nodes" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:532 -msgid "Show Outline" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:533 -msgid "Show path outline (without path effects)" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:555 -msgid "Edit clipping paths" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:556 -msgid "Show clipping path(s) of selected object(s)" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:566 -msgid "Edit masks" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:567 -msgid "Show mask(s) of selected object(s)" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:581 -msgid "X coordinate:" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:581 -msgid "X coordinate of selected node(s)" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:599 -msgid "Y coordinate:" -msgstr "" - -#: ../src/widgets/node-toolbar.cpp:599 -msgid "Y coordinate of selected node(s)" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:222 -msgid "No paint" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:224 -msgid "Flat color" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:226 -msgid "Linear gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:228 -msgid "Radial gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:231 -msgid "Mesh gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:238 -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:255 -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:266 -msgid "" -"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:600 -msgid "No objects" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:611 -msgid "Multiple styles" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:622 -msgid "Paint is undefined" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:633 -msgid "No paint" -msgstr "" - -#: ../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:773 -msgid "Linear gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:776 -msgid "Radial gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:781 -msgid "Mesh gradient" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:1080 -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:1093 -msgid "Pattern fill" -msgstr "" - -#: ../src/widgets/paint-selector.cpp:1187 -msgid "Swatch fill" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:135 -msgid "Fill by" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:136 -msgid "Fill by:" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:148 -msgid "Fill Threshold" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:149 -msgid "" -"The maximum allowed difference between the clicked pixel and the neighboring " -"pixels to be counted in the fill" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:176 -msgid "Grow/shrink by" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:176 -msgid "Grow/shrink by:" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:177 -msgid "" -"The amount to grow (positive) or shrink (negative) the created fill path" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:202 -msgid "Close gaps" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:203 -msgid "Close gaps:" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:214 -#: ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:289 -#: ../src/widgets/star-toolbar.cpp:566 -msgid "Defaults" -msgstr "" - -#: ../src/widgets/paintbucket-toolbar.cpp:215 -msgid "" -"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " -"to change defaults)" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:96 -msgid "Bezier" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:97 -msgid "Create regular Bezier path" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:104 -msgid "Create Spiro path" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:110 -msgid "Create BSpline path" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:116 -msgid "Zigzag" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:117 -msgid "Create a sequence of straight line segments" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:123 -msgid "Paraxial" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:124 -msgid "Create a sequence of paraxial line segments" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:132 -msgid "Mode of new lines drawn by this tool" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:160 -msgctxt "Freehand shape" -msgid "None" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:161 -msgid "Triangle in" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:162 -msgid "Triangle out" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:164 -msgid "From clipboard" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:165 -msgid "Last applied" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:190 ../src/widgets/pencil-toolbar.cpp:191 -msgid "Shape:" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:190 -msgid "Shape of new paths drawn by this tool" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:275 -msgid "(many nodes, rough)" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:275 -msgid "(few nodes, smooth)" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:278 -msgid "Smoothing:" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:278 -msgid "Smoothing: " -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:279 -msgid "How much smoothing (simplifying) is applied to the line" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:300 -msgid "" -"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " -"change defaults)" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:124 -msgid "Change rectangle" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:318 -msgid "W:" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:318 -msgid "Width of rectangle" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:335 -msgid "H:" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:335 -msgid "Height of rectangle" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:349 ../src/widgets/rect-toolbar.cpp:364 -msgid "not rounded" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:352 -msgid "Horizontal radius" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:352 -msgid "Rx:" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:352 -msgid "Horizontal radius of rounded corners" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:367 -msgid "Vertical radius" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:367 -msgid "Ry:" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:367 -msgid "Vertical radius of rounded corners" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:386 -msgid "Not rounded" -msgstr "" - -#: ../src/widgets/rect-toolbar.cpp:387 -msgid "Make corners sharp" -msgstr "" - -#: ../src/widgets/ruler.cpp:192 -msgid "The orientation of the ruler" -msgstr "" - -#: ../src/widgets/ruler.cpp:202 -msgid "Unit of the ruler" -msgstr "" - -#: ../src/widgets/ruler.cpp:209 -msgid "Lower" -msgstr "" - -#: ../src/widgets/ruler.cpp:210 -msgid "Lower limit of ruler" -msgstr "" - -#: ../src/widgets/ruler.cpp:219 -msgid "Upper" -msgstr "" - -#: ../src/widgets/ruler.cpp:220 -msgid "Upper limit of ruler" -msgstr "" - -#: ../src/widgets/ruler.cpp:230 -msgid "Position of mark on the ruler" -msgstr "" - -#: ../src/widgets/ruler.cpp:239 -msgid "Max Size" -msgstr "" - -#: ../src/widgets/ruler.cpp:240 -msgid "Maximum size of the ruler" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:262 -msgid "Transform by toolbar" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:341 -msgid "Now stroke width is scaled when objects are scaled." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:343 -msgid "Now stroke width is not scaled when objects are scaled." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:354 -msgid "" -"Now rounded rectangle corners are scaled when rectangles are " -"scaled." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:356 -msgid "" -"Now rounded rectangle corners are not scaled when rectangles " -"are scaled." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:367 -msgid "" -"Now gradients are transformed along with their objects when " -"those are transformed (moved, scaled, rotated, or skewed)." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:369 -msgid "" -"Now gradients remain fixed when objects are transformed " -"(moved, scaled, rotated, or skewed)." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:380 -msgid "" -"Now patterns are transformed along with their objects when " -"those are transformed (moved, scaled, rotated, or skewed)." -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:382 -msgid "" -"Now patterns remain fixed when objects are transformed (moved, " -"scaled, rotated, or skewed)." -msgstr "" - -#. four spinbuttons -#: ../src/widgets/select-toolbar.cpp:500 -msgctxt "Select toolbar" -msgid "X position" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:500 -msgctxt "Select toolbar" -msgid "X:" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:502 -msgid "Horizontal coordinate of selection" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:506 -msgctxt "Select toolbar" -msgid "Y position" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:506 -msgctxt "Select toolbar" -msgid "Y:" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:508 -msgid "Vertical coordinate of selection" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:512 -msgctxt "Select toolbar" -msgid "Width" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:512 -msgctxt "Select toolbar" -msgid "W:" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:514 -msgid "Width of selection" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:521 -msgid "Lock width and height" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:522 -msgid "When locked, change both width and height by the same proportion" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:531 -msgctxt "Select toolbar" -msgid "Height" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:531 -msgctxt "Select toolbar" -msgid "H:" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:533 -msgid "Height of selection" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:583 -msgid "Scale rounded corners" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:594 -msgid "Move gradients" -msgstr "" - -#: ../src/widgets/select-toolbar.cpp:605 -msgid "Move patterns" -msgstr "" - -#: ../src/widgets/sp-attribute-widget.cpp:299 -msgid "Set attribute" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:234 -msgid "CMS" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:330 -#: ../src/widgets/sp-color-scales.cpp:414 -msgid "_R:" -msgstr "" - -#. TYPE_RGB_16 -#: ../src/widgets/sp-color-icc-selector.cpp:331 -#: ../src/widgets/sp-color-scales.cpp:417 -msgid "_G:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:332 -#: ../src/widgets/sp-color-scales.cpp:420 -msgid "_B:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:334 -msgid "Gray" -msgstr "" - -#. TYPE_GRAY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:336 -#: ../src/widgets/sp-color-icc-selector.cpp:340 -#: ../src/widgets/sp-color-scales.cpp:440 -msgid "_H:" -msgstr "" - -#. TYPE_HSV_16 -#: ../src/widgets/sp-color-icc-selector.cpp:337 -#: ../src/widgets/sp-color-icc-selector.cpp:342 -#: ../src/widgets/sp-color-scales.cpp:443 -msgid "_S:" -msgstr "" - -#. TYPE_HLS_16 -#: ../src/widgets/sp-color-icc-selector.cpp:341 -#: ../src/widgets/sp-color-scales.cpp:446 -msgid "_L:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:344 -#: ../src/widgets/sp-color-icc-selector.cpp:349 -#: ../src/widgets/sp-color-scales.cpp:468 -msgid "_C:" -msgstr "" - -#. TYPE_CMYK_16 -#. TYPE_CMY_16 -#: ../src/widgets/sp-color-icc-selector.cpp:345 -#: ../src/widgets/sp-color-icc-selector.cpp:350 -#: ../src/widgets/sp-color-scales.cpp:471 -msgid "_M:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:346 -#: ../src/widgets/sp-color-icc-selector.cpp:351 -#: ../src/widgets/sp-color-scales.cpp:474 -msgid "_Y:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:347 -#: ../src/widgets/sp-color-scales.cpp:477 -msgid "_K:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:430 -msgid "Fix" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:433 -msgid "Fix RGB fallback to match icc-color() value." -msgstr "" - -#. Label -#: ../src/widgets/sp-color-icc-selector.cpp:536 -#: ../src/widgets/sp-color-scales.cpp:423 -#: ../src/widgets/sp-color-scales.cpp:449 -#: ../src/widgets/sp-color-scales.cpp:480 -#: ../src/widgets/sp-color-wheel-selector.cpp:111 -msgid "_A:" -msgstr "" - -#: ../src/widgets/sp-color-icc-selector.cpp:547 -#: ../src/widgets/sp-color-icc-selector.cpp:560 -#: ../src/widgets/sp-color-scales.cpp:424 -#: ../src/widgets/sp-color-scales.cpp:425 -#: ../src/widgets/sp-color-scales.cpp:450 -#: ../src/widgets/sp-color-scales.cpp:451 -#: ../src/widgets/sp-color-scales.cpp:481 -#: ../src/widgets/sp-color-scales.cpp:482 -#: ../src/widgets/sp-color-wheel-selector.cpp:137 -#: ../src/widgets/sp-color-wheel-selector.cpp:166 -msgid "Alpha (opacity)" -msgstr "" - -#: ../src/widgets/sp-color-notebook.cpp:370 -msgid "Color Managed" -msgstr "" - -#: ../src/widgets/sp-color-notebook.cpp:377 -msgid "Out of gamut!" -msgstr "" - -#: ../src/widgets/sp-color-notebook.cpp:384 -msgid "Too much ink!" -msgstr "" - -#. Create RGBA entry and color preview -#: ../src/widgets/sp-color-notebook.cpp:401 -msgid "RGBA_:" -msgstr "" - -#: ../src/widgets/sp-color-notebook.cpp:409 -msgid "Hexadecimal RGBA value of the color" -msgstr "" - -#: ../src/widgets/sp-color-scales.cpp:53 -msgid "RGB" -msgstr "" - -#: ../src/widgets/sp-color-scales.cpp:53 -msgid "HSL" -msgstr "" - -#: ../src/widgets/sp-color-scales.cpp:53 -msgid "CMYK" -msgstr "" - -#: ../src/widgets/sp-color-selector.cpp:42 -msgid "Unnamed" -msgstr "" - -#: ../src/widgets/sp-xmlview-attr-list.cpp:59 -msgid "Value" -msgstr "" - -#: ../src/widgets/sp-xmlview-content.cpp:151 -msgid "Type text in a text node" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:100 -msgid "Change spiral" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:246 -msgid "just a curve" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:246 -msgid "one full revolution" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Number of turns" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Turns:" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:249 -msgid "Number of revolutions" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "circle" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "edge is much denser" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "edge is denser" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "even" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "center is denser" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:260 -msgid "center is much denser" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "Divergence" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "Divergence:" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:263 -msgid "How much denser/sparser are outer revolutions; 1 = uniform" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts from center" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts mid-way" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:274 -msgid "starts near edge" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Inner radius" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Inner radius:" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:277 -msgid "Radius of the innermost revolution (relative to the spiral size)" -msgstr "" - -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:567 -msgid "" -"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " -"change defaults)" -msgstr "" - -#. Width -#: ../src/widgets/spray-toolbar.cpp:113 -msgid "(narrow spray)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:113 -msgid "(broad spray)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:116 -msgid "The width of the spray area (relative to the visible canvas area)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:129 -msgid "(maximum mean)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:132 -msgid "Focus" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:132 -msgid "Focus:" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:132 -msgid "0 to spray a spot; increase to enlarge the ring radius" -msgstr "" - -#. Standard_deviation -#: ../src/widgets/spray-toolbar.cpp:145 -msgid "(minimum scatter)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:145 -msgid "(maximum scatter)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:148 -msgctxt "Spray tool" -msgid "Scatter" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:148 -msgctxt "Spray tool" -msgid "Scatter:" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:148 -msgid "Increase to scatter sprayed objects" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:167 -msgid "Spray copies of the initial selection" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:174 -msgid "Spray clones of the initial selection" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:180 -msgid "Spray single path" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:181 -msgid "Spray objects in a single path" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 -msgid "Mode" -msgstr "" - -#. Population -#: ../src/widgets/spray-toolbar.cpp:205 -msgid "(low population)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:205 -msgid "(high population)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:208 -msgid "Amount" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:209 -msgid "Adjusts the number of items sprayed per click" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:225 -msgid "" -"Use the pressure of the input device to alter the amount of sprayed objects" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:235 -msgid "(high rotation variation)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:238 -msgid "Rotation" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:238 -msgid "Rotation:" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:240 -#, no-c-format -msgid "" -"Variation of the rotation of the sprayed objects; 0% for the same rotation " -"than the original object" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:253 -msgid "(high scale variation)" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:256 -msgctxt "Spray tool" -msgid "Scale" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:256 -msgctxt "Spray tool" -msgid "Scale:" -msgstr "" - -#: ../src/widgets/spray-toolbar.cpp:258 -#, no-c-format -msgid "" -"Variation in the scale of the sprayed objects; 0% for the same scale than " -"the original object" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:103 -msgid "Star: Change number of corners" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:156 -msgid "Star: Change spoke ratio" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:201 -msgid "Make polygon" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:201 -msgid "Make star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:240 -msgid "Star: Change rounding" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:280 -msgid "Star: Change randomization" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:465 -msgid "Regular polygon (with one handle) instead of a star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:472 -msgid "Star instead of a regular polygon (with one handle)" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:493 -msgid "triangle/tri-star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:493 -msgid "square/quad-star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:493 -msgid "pentagon/five-pointed star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:493 -msgid "hexagon/six-pointed star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:496 -msgid "Corners" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:496 -msgid "Corners:" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:496 -msgid "Number of corners of a polygon or star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "thin-ray star" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "pentagram" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "hexagram" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "heptagram" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "octagram" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:509 -msgid "regular polygon" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:512 -msgid "Spoke ratio" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:512 -msgid "Spoke ratio:" -msgstr "" - -#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. -#. Base radius is the same for the closest handle. -#: ../src/widgets/star-toolbar.cpp:515 -msgid "Base radius to tip radius ratio" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "stretched" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "twisted" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "slightly pinched" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "NOT rounded" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "slightly rounded" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "visibly rounded" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "well rounded" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 -msgid "amply rounded" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:533 ../src/widgets/star-toolbar.cpp:548 -msgid "blown up" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:536 -msgid "Rounded:" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:536 -msgid "How much rounded are the corners (0 for sharp)" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:548 -msgid "NOT randomized" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:548 -msgid "slightly irregular" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:548 -msgid "visibly randomized" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:548 -msgid "strongly randomized" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:551 -msgid "Randomized" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:551 -msgid "Randomized:" -msgstr "" - -#: ../src/widgets/star-toolbar.cpp:551 -msgid "Scatter randomly the corners and angles" -msgstr "" - -#: ../src/widgets/stroke-marker-selector.cpp:388 -msgctxt "Marker" -msgid "None" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:192 -msgid "Stroke width" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:194 -msgctxt "Stroke width" -msgid "_Width:" -msgstr "" - -#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:239 -msgid "Miter join" -msgstr "" - -#. TRANSLATORS: Round join: joining lines with a rounded corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:247 -msgid "Round join" -msgstr "" - -#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. -#. For an example, draw a triangle with a large stroke width and modify the -#. "Join" option (in the Fill and Stroke dialog). -#: ../src/widgets/stroke-style.cpp:255 -msgid "Bevel join" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:280 -msgid "Miter _limit:" -msgstr "" - -#. Cap type -#. TRANSLATORS: cap type specifies the shape for the ends of lines -#. spw_label(t, _("_Cap:"), 0, i); -#: ../src/widgets/stroke-style.cpp:296 -msgid "Cap:" -msgstr "" - -#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point -#. of the line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:307 -msgid "Butt cap" -msgstr "" - -#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the -#. line; the ends of the line are rounded -#: ../src/widgets/stroke-style.cpp:314 -msgid "Round cap" -msgstr "" - -#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the -#. line; the ends of the line are square -#: ../src/widgets/stroke-style.cpp:321 -msgid "Square cap" -msgstr "" - -#. Dash -#: ../src/widgets/stroke-style.cpp:326 -msgid "Dashes:" -msgstr "" - -#. Drop down marker selectors -#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes -#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. -#: ../src/widgets/stroke-style.cpp:352 -msgid "Markers:" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:358 -msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:367 -msgid "" -"Mid Markers are drawn on every node of a path or shape except the first and " -"last nodes" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:376 -msgid "End Markers are drawn on the last node of a path or shape" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:494 -msgid "Set markers" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:1030 ../src/widgets/stroke-style.cpp:1114 -msgid "Set stroke style" -msgstr "" - -#: ../src/widgets/stroke-style.cpp:1202 -msgid "Set marker color" -msgstr "" - -#: ../src/widgets/swatch-selector.cpp:137 -msgid "Change swatch color" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:169 -msgid "Text: Change font family" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:233 -msgid "Text: Change font size" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:269 -msgid "Text: Change font style" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:347 -msgid "Text: Change superscript or subscript" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:489 -msgid "Text: Change alignment" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:532 -msgid "Text: Change line-height" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:580 -msgid "Text: Change word-spacing" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:620 -msgid "Text: Change letter-spacing" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:658 -msgid "Text: Change dx (kern)" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:692 -msgid "Text: Change dy" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:727 -msgid "Text: Change rotate" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:774 -msgid "Text: Change orientation" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1210 -msgid "Font Family" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1211 -msgid "Select Font Family (Alt-X to access)" -msgstr "" - -#. Focus widget -#. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1221 -msgid "Select all text with this font-family" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1225 -msgid "Font not found on system" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1284 -msgid "Font Style" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1285 -msgid "Font style" -msgstr "" - -#. Name -#: ../src/widgets/text-toolbar.cpp:1302 -msgid "Toggle Superscript" -msgstr "" - -#. Label -#: ../src/widgets/text-toolbar.cpp:1303 -msgid "Toggle superscript" -msgstr "" - -#. Name -#: ../src/widgets/text-toolbar.cpp:1315 -msgid "Toggle Subscript" -msgstr "" - -#. Label -#: ../src/widgets/text-toolbar.cpp:1316 -msgid "Toggle subscript" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1357 -msgid "Justify" -msgstr "" - -#. Name -#: ../src/widgets/text-toolbar.cpp:1364 -msgid "Alignment" -msgstr "" - -#. Label -#: ../src/widgets/text-toolbar.cpp:1365 -msgid "Text alignment" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1392 -msgid "Horizontal" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1399 -msgid "Vertical" -msgstr "" - -#. Label -#: ../src/widgets/text-toolbar.cpp:1406 -msgid "Text orientation" -msgstr "" - -#. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1429 -msgid "Smaller spacing" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1429 ../src/widgets/text-toolbar.cpp:1460 -#: ../src/widgets/text-toolbar.cpp:1491 -msgctxt "Text tool" -msgid "Normal" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1429 -msgid "Larger spacing" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1434 -msgid "Line Height" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1435 -msgid "Line:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1436 -msgid "Spacing between lines (times font size)" -msgstr "" - -#. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 -msgid "Negative spacing" -msgstr "" - -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 -msgid "Positive spacing" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1465 -msgid "Word spacing" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1466 -msgid "Word:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1467 -msgid "Spacing between words (px)" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1496 -msgid "Letter spacing" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1497 -msgid "Letter:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1498 -msgid "Spacing between letters (px)" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1527 -msgid "Kerning" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1528 -msgid "Kern:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1529 -msgid "Horizontal kerning (px)" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1558 -msgid "Vertical Shift" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1559 -msgid "Vert:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1560 -msgid "Vertical shift (px)" -msgstr "" - -#. name -#: ../src/widgets/text-toolbar.cpp:1589 -msgid "Letter rotation" -msgstr "" - -#. label -#: ../src/widgets/text-toolbar.cpp:1590 -msgid "Rot:" -msgstr "" - -#. short label -#: ../src/widgets/text-toolbar.cpp:1591 -msgid "Character rotation (degrees)" -msgstr "" - -#: ../src/widgets/toolbox.cpp:181 -msgid "Color/opacity used for color tweaking" -msgstr "" - -#: ../src/widgets/toolbox.cpp:189 -msgid "Style of new stars" -msgstr "" - -#: ../src/widgets/toolbox.cpp:191 -msgid "Style of new rectangles" -msgstr "" - -#: ../src/widgets/toolbox.cpp:193 -msgid "Style of new 3D boxes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:195 -msgid "Style of new ellipses" -msgstr "" - -#: ../src/widgets/toolbox.cpp:197 -msgid "Style of new spirals" -msgstr "" - -#: ../src/widgets/toolbox.cpp:199 -msgid "Style of new paths created by Pencil" -msgstr "" - -#: ../src/widgets/toolbox.cpp:201 -msgid "Style of new paths created by Pen" -msgstr "" - -#: ../src/widgets/toolbox.cpp:203 -msgid "Style of new calligraphic strokes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 -msgid "TBD" -msgstr "" - -#: ../src/widgets/toolbox.cpp:219 -msgid "Style of Paint Bucket fill objects" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1681 -msgid "Bounding box" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1681 -msgid "Snap bounding boxes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1690 -msgid "Bounding box edges" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1690 -msgid "Snap to edges of a bounding box" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1699 -msgid "Bounding box corners" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1699 -msgid "Snap bounding box corners" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1708 -msgid "BBox Edge Midpoints" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1708 -msgid "Snap midpoints of bounding box edges" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1718 -msgid "BBox Centers" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1718 -msgid "Snapping centers of bounding boxes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1727 -msgid "Snap nodes, paths, and handles" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1735 -msgid "Snap to paths" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1744 -msgid "Path intersections" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1744 -msgid "Snap to path intersections" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1753 -msgid "To nodes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1753 -msgid "Snap cusp nodes, incl. rectangle corners" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1762 -msgid "Smooth nodes" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1762 -msgid "Snap smooth nodes, incl. quadrant points of ellipses" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1771 -msgid "Line Midpoints" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1771 -msgid "Snap midpoints of line segments" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1780 -msgid "Others" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1780 -msgid "Snap other points (centers, guide origins, gradient handles, etc.)" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1788 -msgid "Object Centers" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1788 -msgid "Snap centers of objects" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1797 -msgid "Rotation Centers" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1797 -msgid "Snap an item's rotation center" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1806 -msgid "Text baseline" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1806 -msgid "Snap text anchors and baselines" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1816 -msgid "Page border" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1816 -msgid "Snap to the page border" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1825 -msgid "Snap to grids" -msgstr "" - -#: ../src/widgets/toolbox.cpp:1834 -msgid "Snap guides" -msgstr "" - -#. Width -#: ../src/widgets/tweak-toolbar.cpp:125 -msgid "(pinch tweak)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:125 -msgid "(broad tweak)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:128 -msgid "The width of the tweak area (relative to the visible canvas area)" -msgstr "" - -#. Force -#: ../src/widgets/tweak-toolbar.cpp:142 -msgid "(minimum force)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:142 -msgid "(maximum force)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "Force" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "Force:" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:145 -msgid "The force of the tweak action" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:163 -msgid "Move mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:164 -msgid "Move objects in any direction" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:170 -msgid "Move in/out mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:171 -msgid "Move objects towards cursor; with Shift from cursor" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:177 -msgid "Move jitter mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:178 -msgid "Move objects in random directions" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:184 -msgid "Scale mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:185 -msgid "Shrink objects, with Shift enlarge" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:191 -msgid "Rotate mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:192 -msgid "Rotate objects, with Shift counterclockwise" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:198 -msgid "Duplicate/delete mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:199 -msgid "Duplicate objects, with Shift delete" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:205 -msgid "Push mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:206 -msgid "Push parts of paths in any direction" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:212 -msgid "Shrink/grow mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:213 -msgid "Shrink (inset) parts of paths; with Shift grow (outset)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:219 -msgid "Attract/repel mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:220 -msgid "Attract parts of paths towards cursor; with Shift from cursor" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:226 -msgid "Roughen mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:227 -msgid "Roughen parts of paths" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:233 -msgid "Color paint mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:234 -msgid "Paint the tool's color upon selected objects" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:240 -msgid "Color jitter mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:241 -msgid "Jitter the colors of selected objects" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:247 -msgid "Blur mode" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:248 -msgid "Blur selected objects more; with Shift, blur less" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:275 -msgid "Channels:" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:287 -msgid "In color mode, act on objects' hue" -msgstr "" - -#. TRANSLATORS: "H" here stands for hue -#: ../src/widgets/tweak-toolbar.cpp:291 -msgid "H" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:303 -msgid "In color mode, act on objects' saturation" -msgstr "" - -#. TRANSLATORS: "S" here stands for Saturation -#: ../src/widgets/tweak-toolbar.cpp:307 -msgid "S" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:319 -msgid "In color mode, act on objects' lightness" -msgstr "" - -#. TRANSLATORS: "L" here stands for Lightness -#: ../src/widgets/tweak-toolbar.cpp:323 -msgid "L" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:335 -msgid "In color mode, act on objects' opacity" -msgstr "" - -#. TRANSLATORS: "O" here stands for Opacity -#: ../src/widgets/tweak-toolbar.cpp:339 -msgid "O" -msgstr "" - -#. Fidelity -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(rough, simplified)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:350 -msgid "(fine, but many nodes)" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:353 -msgid "Fidelity" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:353 -msgid "Fidelity:" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:354 -msgid "" -"Low fidelity simplifies paths; high fidelity preserves path features but may " -"generate a lot of new nodes" -msgstr "" - -#: ../src/widgets/tweak-toolbar.cpp:373 -msgid "Use the pressure of the input device to alter the force of tweak action" -msgstr "" - -#: ../share/extensions/convert2dashes.py:93 -msgid "" -"The selected object is not a path.\n" -"Try using the procedure Path->Object to Path." -msgstr "" - -#: ../share/extensions/dimension.py:109 -msgid "Please select an object." -msgstr "" - -#: ../share/extensions/dimension.py:134 -msgid "Unable to process this object. Try changing it into a path first." -msgstr "" - -#. report to the Inkscape console using errormsg -#: ../share/extensions/draw_from_triangle.py:180 -msgid "Side Length 'a' (px): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:181 -msgid "Side Length 'b' (px): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:182 -msgid "Side Length 'c' (px): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:183 -msgid "Angle 'A' (radians): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:184 -msgid "Angle 'B' (radians): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:185 -msgid "Angle 'C' (radians): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:186 -msgid "Semiperimeter (px): " -msgstr "" - -#: ../share/extensions/draw_from_triangle.py:187 -msgid "Area (px^2): " -msgstr "" - -#: ../share/extensions/dxf_input.py:512 -#, python-format -msgid "" -"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " -"to Release 13 format using QCad." -msgstr "" - -#: ../share/extensions/dxf_outlines.py:49 -msgid "" -"Failed to import the numpy or numpy.linalg modules. These modules are " -"required by this extension. Please install them and try again." -msgstr "" - -#: ../share/extensions/dxf_outlines.py:300 -msgid "" -"Error: Field 'Layer match name' must be filled when using 'By name match' " -"option" -msgstr "" - -#: ../share/extensions/dxf_outlines.py:341 -#, python-format -msgid "Warning: Layer '%s' not found!" -msgstr "" - -#: ../share/extensions/embedimage.py:84 -msgid "" -"No xlink:href or sodipodi:absref attributes found, or they do not point to " -"an existing file! Unable to embed image." -msgstr "" - -#: ../share/extensions/embedimage.py:86 -#, python-format -msgid "Sorry we could not locate %s" -msgstr "" - -#: ../share/extensions/embedimage.py:111 -#, python-format -msgid "" -"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " -"or image/x-icon" -msgstr "" - -#: ../share/extensions/export_gimp_palette.py:16 -msgid "" -"The export_gpl.py module requires PyXML. Please download the latest version " -"from http://pyxml.sourceforge.net/." -msgstr "" - -#: ../share/extensions/extractimage.py:68 -#, python-format -msgid "Image extracted to: %s" -msgstr "" - -#: ../share/extensions/extractimage.py:75 -msgid "Unable to find image data." -msgstr "" - -#: ../share/extensions/extrude.py:43 -msgid "Need at least 2 paths selected" -msgstr "" - -#: ../share/extensions/funcplot.py:48 -msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" -msgstr "" - -#: ../share/extensions/funcplot.py:60 -msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" -msgstr "" - -#: ../share/extensions/funcplot.py:315 -msgid "Please select a rectangle" -msgstr "" - -#: ../share/extensions/gcodetools.py:3321 -#: ../share/extensions/gcodetools.py:4526 -#: ../share/extensions/gcodetools.py:4699 -#: ../share/extensions/gcodetools.py:6232 -#: ../share/extensions/gcodetools.py:6427 -msgid "No paths are selected! Trying to work on all available paths." -msgstr "" - -#: ../share/extensions/gcodetools.py:3324 -msgid "Nothing is selected. Please select something." -msgstr "" - -#: ../share/extensions/gcodetools.py:3864 -msgid "" -"Directory does not exist! Please specify existing directory at Preferences " -"tab!" -msgstr "" - -#: ../share/extensions/gcodetools.py:3894 -#, python-format -msgid "" -"Can not write to specified file!\n" -"%s" -msgstr "" - -#: ../share/extensions/gcodetools.py:4040 -#, python-format -msgid "" -"Orientation points for '%s' layer have not been found! Please add " -"orientation points using Orientation tab!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4047 -#, python-format -msgid "There are more than one orientation point groups in '%s' layer" -msgstr "" - -#: ../share/extensions/gcodetools.py:4078 -#: ../share/extensions/gcodetools.py:4080 -msgid "" -"Orientation points are wrong! (if there are two orientation points they " -"should not be the same. If there are three orientation points they should " -"not be in a straight line.)" -msgstr "" - -#: ../share/extensions/gcodetools.py:4250 -#, python-format -msgid "" -"Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " -"be corrupt!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4263 -#, python-format -msgid "" -"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " -"could be corrupt!" -msgstr "" - -#. xgettext:no-pango-format -#: ../share/extensions/gcodetools.py:4284 -msgid "" -"This extension works with Paths and Dynamic Offsets and groups of them only! " -"All other objects will be ignored!\n" -"Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" -"Solution 2: Path->Dynamic offset or Ctrl+J.\n" -"Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " -"and File->Import this file." -msgstr "" - -#: ../share/extensions/gcodetools.py:4290 -msgid "" -"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" -"+L)" -msgstr "" - -#: ../share/extensions/gcodetools.py:4294 -msgid "" -"Warning! There are some paths in the root of the document, but not in any " -"layer! Using bottom-most layer for them." -msgstr "" - -#: ../share/extensions/gcodetools.py:4371 -#, python-format -msgid "" -"Warning! Tool's and default tool's parameter's (%s) types are not the same " -"( type('%s') != type('%s') )." -msgstr "" - -#: ../share/extensions/gcodetools.py:4374 -#, python-format -msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." -msgstr "" - -#: ../share/extensions/gcodetools.py:4388 -#, python-format -msgid "Layer '%s' contains more than one tool!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4391 -#, python-format -msgid "" -"Can not find tool for '%s' layer! Please add one with Tools library tab!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4553 -#: ../share/extensions/gcodetools.py:4708 -msgid "" -"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" -"+Shift+G) and Object to Path (Ctrl+Shift+C)!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4667 -msgid "" -"Nothing is selected. Please select something to convert to drill point " -"(dxfpoint) or clear point sign." -msgstr "" - -#: ../share/extensions/gcodetools.py:4750 -#: ../share/extensions/gcodetools.py:4996 -msgid "This extension requires at least one selected path." -msgstr "" - -#: ../share/extensions/gcodetools.py:4756 -#: ../share/extensions/gcodetools.py:5002 -#, python-format -msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" -msgstr "" - -#: ../share/extensions/gcodetools.py:4767 -#: ../share/extensions/gcodetools.py:4956 -#: ../share/extensions/gcodetools.py:5011 -msgid "Warning: omitting non-path" -msgstr "" - -#: ../share/extensions/gcodetools.py:5511 -msgid "Please select at least one path to engrave and run again." -msgstr "" - -#: ../share/extensions/gcodetools.py:5519 -msgid "Unknown unit selected. mm assumed" -msgstr "" - -#: ../share/extensions/gcodetools.py:5540 -#, python-format -msgid "Tool '%s' has no shape. 45 degree cone assumed!" -msgstr "" - -#: ../share/extensions/gcodetools.py:5611 -#: ../share/extensions/gcodetools.py:5616 -msgid "csp_normalised_normal error. See log." -msgstr "" - -#: ../share/extensions/gcodetools.py:5804 -msgid "No need to engrave sharp angles." -msgstr "" - -#: ../share/extensions/gcodetools.py:5848 -msgid "" -"Active layer already has orientation points! Remove them or select another " -"layer!" -msgstr "" - -#: ../share/extensions/gcodetools.py:5893 -msgid "Active layer already has a tool! Remove it or select another layer!" -msgstr "" - -#: ../share/extensions/gcodetools.py:6008 -msgid "Selection is empty! Will compute whole drawing." -msgstr "" - -#: ../share/extensions/gcodetools.py:6062 -msgid "" -"Tutorials, manuals and support can be found at\n" -"English support forum:\n" -"\thttp://www.cnc-club.ru/gcodetools\n" -"and Russian support forum:\n" -"\thttp://www.cnc-club.ru/gcodetoolsru" -msgstr "" - -#: ../share/extensions/gcodetools.py:6107 -msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." -msgstr "" - -#: ../share/extensions/gcodetools.py:6110 -msgid "Lathe X and Z axis remap should be the same. Exiting..." -msgstr "" - -#: ../share/extensions/gcodetools.py:6662 -#, python-format -msgid "" -"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " -"Orientation, Offset, Lathe or Tools library.\n" -" Current active tab id is %s" -msgstr "" - -#: ../share/extensions/gcodetools.py:6668 -msgid "" -"Orientation points have not been defined! A default set of orientation " -"points has been automatically added." -msgstr "" - -#: ../share/extensions/gcodetools.py:6672 -msgid "" -"Cutting tool has not been defined! A default tool has been automatically " -"added." -msgstr "" - -#: ../share/extensions/generate_voronoi.py:35 -msgid "" -"Failed to import the subprocess module. Please report this as a bug at: " -"https://bugs.launchpad.net/inkscape." -msgstr "" - -#: ../share/extensions/generate_voronoi.py:36 -msgid "Python version is: " -msgstr "" - -#: ../share/extensions/generate_voronoi.py:94 -msgid "Please select an object" -msgstr "" - -#: ../share/extensions/gimp_xcf.py:39 -msgid "Gimp must be installed and set in your path variable." -msgstr "" - -#: ../share/extensions/gimp_xcf.py:43 -msgid "An error occurred while processing the XCF file." -msgstr "" - -#: ../share/extensions/gimp_xcf.py:177 -msgid "This extension requires at least one non empty layer." -msgstr "" - -#: ../share/extensions/guillotine.py:250 -msgid "The sliced bitmaps have been saved as:" -msgstr "" - -#: ../share/extensions/hpgl_decoder.py:43 -msgid "Movements" -msgstr "" - -#: ../share/extensions/hpgl_decoder.py:44 -msgid "Pen #" -msgstr "" - -#. issue error if no hpgl data found -#: ../share/extensions/hpgl_input.py:58 -msgid "No HPGL data found." -msgstr "" - -#: ../share/extensions/hpgl_input.py:66 -msgid "" -"The HPGL data contained unknown (unsupported) commands, there is a " -"possibility that the drawing is missing some content." -msgstr "" - -#. issue error if no paths found -#: ../share/extensions/hpgl_output.py:58 -msgid "" -"No paths where found. Please convert all objects you want to save into paths." -msgstr "" - -#: ../share/extensions/inkex.py:116 -#, python-format -msgid "" -"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " -"this extension. Please download and install the latest version from http://" -"cheeseshop.python.org/pypi/lxml/, or install it through your package manager " -"by a command like: sudo apt-get install python-lxml\n" -"\n" -"Technical details:\n" -"%s" -msgstr "" - -#: ../share/extensions/inkex.py:169 -#, python-format -msgid "Unable to open specified file: %s" -msgstr "" - -#: ../share/extensions/inkex.py:178 -#, python-format -msgid "Unable to open object member file: %s" -msgstr "" - -#: ../share/extensions/inkex.py:283 -#, python-format -msgid "No matching node for expression: %s" -msgstr "" - -#: ../share/extensions/inkex.py:313 -msgid "SVG Width not set correctly! Assuming width = 100" -msgstr "" - -#: ../share/extensions/interp_att_g.py:167 -msgid "There is no selection to interpolate" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.py:45 -#: ../share/extensions/jessyInk_effects.py:50 -#: ../share/extensions/jessyInk_export.py:96 -#: ../share/extensions/jessyInk_keyBindings.py:188 -#: ../share/extensions/jessyInk_masterSlide.py:46 -#: ../share/extensions/jessyInk_mouseHandler.py:48 -#: ../share/extensions/jessyInk_summary.py:64 -#: ../share/extensions/jessyInk_transitions.py:50 -#: ../share/extensions/jessyInk_video.py:49 -#: ../share/extensions/jessyInk_view.py:67 -msgid "" -"The JessyInk script is not installed in this SVG file or has a different " -"version than the JessyInk extensions. Please select \"install/update...\" " -"from the \"JessyInk\" sub-menu of the \"Extensions\" menu to install or " -"update the JessyInk script.\n" -"\n" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.py:48 -msgid "" -"To assign an effect, please select an object.\n" -"\n" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.py:54 -msgid "" -"Node with id '{0}' is not a suitable text node and was therefore ignored.\n" -"\n" -msgstr "" - -#: ../share/extensions/jessyInk_effects.py:53 -msgid "" -"No object selected. Please select the object you want to assign an effect to " -"and then press apply.\n" -msgstr "" - -#: ../share/extensions/jessyInk_export.py:82 -msgid "Could not find Inkscape command.\n" -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.py:56 -msgid "Layer not found. Removed current master slide selection.\n" -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.py:58 -msgid "" -"More than one layer with this name found. Removed current master slide " -"selection.\n" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:69 -msgid "JessyInk script version {0} installed." -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:71 -msgid "JessyInk script installed." -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:83 -msgid "" -"\n" -"Master slide:" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:89 -msgid "" -"\n" -"Slide {0!s}:" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:94 -msgid "{0}Layer name: {1}" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:102 -msgid "{0}Transition in: {1} ({2!s} s)" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:104 -msgid "{0}Transition in: {1}" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:111 -msgid "{0}Transition out: {1} ({2!s} s)" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:113 -msgid "{0}Transition out: {1}" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:120 -msgid "" -"\n" -"{0}Auto-texts:" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:123 -msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:168 -msgid "" -"\n" -"{0}Initial effect (order number {1}):" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:170 -msgid "" -"\n" -"{0}Effect {1!s} (order number {2}):" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:174 -msgid "{0}\tView will be set according to object \"{1}\"" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:176 -msgid "{0}\tObject \"{1}\"" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:179 -msgid " will appear" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:181 -msgid " will disappear" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:184 -msgid " using effect \"{0}\"" -msgstr "" - -#: ../share/extensions/jessyInk_summary.py:187 -msgid " in {0!s} s" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.py:55 -msgid "Layer not found.\n" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.py:57 -msgid "More than one layer with this name found.\n" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.py:70 -msgid "Please enter a layer name.\n" -msgstr "" - -#: ../share/extensions/jessyInk_video.py:54 -#: ../share/extensions/jessyInk_video.py:59 -msgid "" -"Could not obtain the selected layer for inclusion of the video element.\n" -"\n" -msgstr "" - -#: ../share/extensions/jessyInk_view.py:75 -msgid "More than one object selected. Please select only one object.\n" -msgstr "" - -#: ../share/extensions/jessyInk_view.py:79 -msgid "" -"No object selected. Please select the object you want to assign a view to " -"and then press apply.\n" -msgstr "" - -#: ../share/extensions/markers_strokepaint.py:83 -#, python-format -msgid "No style attribute found for id: %s" -msgstr "" - -#: ../share/extensions/markers_strokepaint.py:137 -#, python-format -msgid "unable to locate marker: %s" -msgstr "" - -#: ../share/extensions/measure.py:50 -msgid "" -"Failed to import the numpy modules. These modules are required by this " -"extension. Please install them and try again. On a Debian-like system this " -"can be done with the command, sudo apt-get install python-numpy." -msgstr "" - -#: ../share/extensions/measure.py:112 -msgid "Area is zero, cannot calculate Center of Mass" -msgstr "" - -#: ../share/extensions/pathalongpath.py:208 -#: ../share/extensions/pathscatter.py:228 -#: ../share/extensions/perspective.py:53 -msgid "This extension requires two selected paths." -msgstr "" - -#: ../share/extensions/pathalongpath.py:234 -msgid "" -"The total length of the pattern is too small :\n" -"Please choose a larger object or set 'Space between copies' > 0" -msgstr "" - -#: ../share/extensions/pathalongpath.py:277 -msgid "" -"The 'stretch' option requires that the pattern must have non-zero width :\n" -"Please edit the pattern width." -msgstr "" - -#: ../share/extensions/pathmodifier.py:237 -#, python-format -msgid "Please first convert objects to paths! (Got [%s].)" -msgstr "" - -#: ../share/extensions/perspective.py:45 -msgid "" -"Failed to import the numpy or numpy.linalg modules. These modules are " -"required by this extension. Please install them and try again. On a Debian-" -"like system this can be done with the command, sudo apt-get install python-" -"numpy." -msgstr "" - -#: ../share/extensions/perspective.py:61 -#: ../share/extensions/summersnight.py:52 -#, 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:68 -#: ../share/extensions/summersnight.py:60 -msgid "" -"This extension requires that the second selected path be four nodes long." -msgstr "" - -#: ../share/extensions/perspective.py:94 -#: ../share/extensions/summersnight.py:93 -msgid "" -"The second selected object is a group, not a path.\n" -"Try using the procedure Object->Ungroup." -msgstr "" - -#: ../share/extensions/perspective.py:96 -#: ../share/extensions/summersnight.py:95 -msgid "" -"The second selected object is not a path.\n" -"Try using the procedure Path->Object to Path." -msgstr "" - -#: ../share/extensions/perspective.py:99 -#: ../share/extensions/summersnight.py:98 -msgid "" -"The first selected object is not a path.\n" -"Try using the procedure Path->Object to Path." -msgstr "" - -#. issue error if no paths found -#: ../share/extensions/plotter.py:66 -msgid "" -"No paths where found. Please convert all objects you want to plot into paths." -msgstr "" - -#: ../share/extensions/plotter.py:143 -msgid "pySerial is not installed." -msgstr "" - -#: ../share/extensions/plotter.py:163 -msgid "" -"Could not open port. Please check that your plotter is running, connected " -"and the settings are correct." -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:65 -msgid "" -"Failed to import the numpy module. This module is required by this " -"extension. Please install it and try again. On a Debian-like system this " -"can be done with the command 'sudo apt-get install python-numpy'." -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:336 -msgid "No face data found in specified file." -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:337 -msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:343 -msgid "No edge data found in specified file." -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:344 -msgid "Try selecting \"Face Specified\" in the Model File tab.\n" -msgstr "" - -#. we cannot generate a list of faces from the edges without a lot of computation -#: ../share/extensions/polyhedron_3d.py:522 -msgid "" -"Face Data Not Found. Ensure file contains face data, and check the file is " -"imported as \"Face-Specified\" under the \"Model File\" tab.\n" -msgstr "" - -#: ../share/extensions/polyhedron_3d.py:524 -msgid "Internal Error. No view type selected\n" -msgstr "" - -#: ../share/extensions/print_win32_vector.py:41 -msgid "sorry, this will run only on Windows, exiting..." -msgstr "" - -#: ../share/extensions/print_win32_vector.py:179 -msgid "Failed to open default printer" -msgstr "" - -#: ../share/extensions/render_barcode_datamatrix.py:202 -msgid "Unrecognised DataMatrix size" -msgstr "" - -#. we have an invalid bit value -#: ../share/extensions/render_barcode_datamatrix.py:643 -msgid "Invalid bit value, this is a bug!" -msgstr "" - -#. abort if converting blank text -#: ../share/extensions/render_barcode_datamatrix.py:678 -msgid "Please enter an input string" -msgstr "" - -#. abort if converting blank text -#: ../share/extensions/render_barcode_qrcode.py:1054 -msgid "Please enter an input text" -msgstr "" - -#: ../share/extensions/replace_font.py:133 -msgid "" -"Couldn't find anything using that font, please ensure the spelling and " -"spacing is correct." -msgstr "" - -#: ../share/extensions/replace_font.py:140 -#: ../share/extensions/svg_and_media_zip_output.py:193 -msgid "Didn't find any fonts in this document/selection." -msgstr "" - -#: ../share/extensions/replace_font.py:143 -#: ../share/extensions/svg_and_media_zip_output.py:196 -#, python-format -msgid "Found the following font only: %s" -msgstr "" - -#: ../share/extensions/replace_font.py:145 -#: ../share/extensions/svg_and_media_zip_output.py:198 -#, python-format -msgid "" -"Found the following fonts:\n" -"%s" -msgstr "" - -#: ../share/extensions/replace_font.py:196 -msgid "There was nothing selected" -msgstr "" - -#: ../share/extensions/replace_font.py:244 -msgid "Please enter a search string in the find box." -msgstr "" - -#: ../share/extensions/replace_font.py:248 -msgid "Please enter a replacement font in the replace with box." -msgstr "" - -#: ../share/extensions/replace_font.py:253 -msgid "Please enter a replacement font in the replace all box." -msgstr "" - -#: ../share/extensions/summersnight.py:44 -msgid "" -"This extension requires two selected paths. \n" -"The second path must be exactly four nodes long." -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.py:128 -#, python-format -msgid "Could not locate file: %s" -msgstr "" - -#: ../share/extensions/svgcalendar.py:266 -#: ../share/extensions/svgcalendar.py:288 -msgid "You must select a correct system encoding." -msgstr "" - -#: ../share/extensions/uniconv-ext.py:56 -#: ../share/extensions/uniconv_output.py:122 -msgid "You need to install the UniConvertor software.\n" -msgstr "" - -#: ../share/extensions/voronoi2svg.py:215 -msgid "Please select objects!" -msgstr "" - -#: ../share/extensions/web-set-att.py:58 -#: ../share/extensions/web-transmit-att.py:54 -msgid "You must select at least two elements." -msgstr "" - -#: ../share/extensions/webslicer_create_group.py:57 -msgid "" -"You must create and select some \"Slicer rectangles\" before trying to group." -msgstr "" - -#: ../share/extensions/webslicer_create_group.py:72 -msgid "" -"You must to select some \"Slicer rectangles\" or other \"Layout groups\"." -msgstr "" - -#: ../share/extensions/webslicer_create_group.py:76 -#, python-format -msgid "Oops... The element \"%s\" is not in the Web Slicer layer" -msgstr "" - -#: ../share/extensions/webslicer_export.py:57 -msgid "You must give a directory to export the slices." -msgstr "" - -#: ../share/extensions/webslicer_export.py:69 -#, python-format -msgid "Can't create \"%s\"." -msgstr "" - -#: ../share/extensions/webslicer_export.py:70 -#, python-format -msgid "Error: %s" -msgstr "" - -#: ../share/extensions/webslicer_export.py:73 -#, python-format -msgid "The directory \"%s\" does not exists." -msgstr "" - -#: ../share/extensions/webslicer_export.py:102 -#, python-format -msgid "You have more than one element with \"%s\" html-id." -msgstr "" - -#: ../share/extensions/webslicer_export.py:332 -msgid "You must install the ImageMagick to get JPG and GIF." -msgstr "" - -#. PARAMETER PROCESSING -#. lines of longitude are odd : abort -#: ../share/extensions/wireframe_sphere.py:116 -msgid "Please enter an even number of lines of longitude." -msgstr "" - -#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 -#: ../share/extensions/addnodes.inx.h:1 -msgid "Add Nodes" -msgstr "" - -#: ../share/extensions/addnodes.inx.h:2 -msgid "Division method:" -msgstr "" - -#: ../share/extensions/addnodes.inx.h:3 -msgid "By max. segment length" -msgstr "" - -#: ../share/extensions/addnodes.inx.h:5 -msgid "Maximum segment length (px):" -msgstr "" - -#: ../share/extensions/addnodes.inx.h:6 -msgid "Number of segments:" -msgstr "" - -#: ../share/extensions/addnodes.inx.h:7 -#: ../share/extensions/convert2dashes.inx.h:2 -#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 -#: ../share/extensions/fractalize.inx.h:4 -#: ../share/extensions/interp_att_g.inx.h:29 -#: ../share/extensions/markers_strokepaint.inx.h:13 -#: ../share/extensions/perspective.inx.h:2 -#: ../share/extensions/pixelsnap.inx.h:3 -#: ../share/extensions/radiusrand.inx.h:10 -#: ../share/extensions/rubberstretch.inx.h:6 -#: ../share/extensions/straightseg.inx.h:4 -#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 -msgid "Modify Path" -msgstr "" - -#: ../share/extensions/ai_input.inx.h:1 -msgid "AI 8.0 Input" -msgstr "" - -#: ../share/extensions/ai_input.inx.h:2 -msgid "Adobe Illustrator 8.0 and below (*.ai)" -msgstr "" - -#: ../share/extensions/ai_input.inx.h:3 -msgid "Open files saved with Adobe Illustrator 8.0 or older" -msgstr "" - -#: ../share/extensions/aisvg.inx.h:1 -msgid "AI SVG Input" -msgstr "" - -#: ../share/extensions/aisvg.inx.h:2 -msgid "Adobe Illustrator SVG (*.ai.svg)" -msgstr "" - -#: ../share/extensions/aisvg.inx.h:3 -msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" -msgstr "" - -#: ../share/extensions/ccx_input.inx.h:1 -msgid "Corel DRAW Compressed Exchange files input (UC)" -msgstr "" - -#: ../share/extensions/ccx_input.inx.h:2 -msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" -msgstr "" - -#: ../share/extensions/ccx_input.inx.h:3 -msgid "Open compressed exchange files saved in Corel DRAW (UC)" -msgstr "" - -#: ../share/extensions/cdr_input.inx.h:1 -msgid "Corel DRAW Input (UC)" -msgstr "" - -#: ../share/extensions/cdr_input.inx.h:2 -msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" -msgstr "" - -#: ../share/extensions/cdr_input.inx.h:3 -msgid "Open files saved in Corel DRAW 7-X4 (UC)" -msgstr "" - -#: ../share/extensions/cdt_input.inx.h:1 -msgid "Corel DRAW templates input (UC)" -msgstr "" - -#: ../share/extensions/cdt_input.inx.h:2 -msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" -msgstr "" - -#: ../share/extensions/cdt_input.inx.h:3 -msgid "Open files saved in Corel DRAW 7-13 (UC)" -msgstr "" - -#: ../share/extensions/cgm_input.inx.h:1 -msgid "Computer Graphics Metafile files input" -msgstr "" - -#: ../share/extensions/cgm_input.inx.h:2 -msgid "Computer Graphics Metafile files (*.cgm)" -msgstr "" - -#: ../share/extensions/cgm_input.inx.h:3 -msgid "Open Computer Graphics Metafile files" -msgstr "" - -#: ../share/extensions/cmx_input.inx.h:1 -msgid "Corel DRAW Presentation Exchange files input (UC)" -msgstr "" - -#: ../share/extensions/cmx_input.inx.h:2 -msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" -msgstr "" - -#: ../share/extensions/cmx_input.inx.h:3 -msgid "Open presentation exchange files saved in Corel DRAW (UC)" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:1 -msgid "HSL Adjust" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:3 -msgid "Hue (°)" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:4 -msgid "Random hue" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:6 -#, no-c-format -msgid "Saturation (%)" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:7 -msgid "Random saturation" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:9 -#, no-c-format -msgid "Lightness (%)" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:10 -msgid "Random lightness" -msgstr "" - -#: ../share/extensions/color_HSL_adjust.inx.h:13 -#, no-c-format -msgid "" -"Adjusts hue, saturation and lightness in the HSL representation of the " -"selected objects's color.\n" -"Options:\n" -" * Hue: rotate by degrees (wraps around).\n" -" * Saturation: add/subtract % (min=-100, max=100).\n" -" * Lightness: add/subtract % (min=-100, max=100).\n" -" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" -" " -msgstr "" - -#: ../share/extensions/color_blackandwhite.inx.h:1 -msgid "Black and White" -msgstr "" - -#: ../share/extensions/color_blackandwhite.inx.h:2 -msgid "Threshold Color (1-255):" -msgstr "" - -#: ../share/extensions/color_brighter.inx.h:1 -msgid "Brighter" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:1 -msgctxt "Custom color extension" -msgid "Custom" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:3 -msgid "Red Function:" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:4 -msgid "Green Function:" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:5 -msgid "Blue Function:" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:6 -msgid "Input (r,g,b) Color Range:" -msgstr "" - -#: ../share/extensions/color_custom.inx.h:8 -msgid "" -"Allows you to evaluate different functions for each channel.\n" -"r, g and b are the normalized values of the red, green and blue channels. " -"The resulting RGB values are automatically clamped.\n" -" \n" -"Example (half the red, swap green and blue):\n" -" Red Function: r*0.5 \n" -" Green Function: b \n" -" Blue Function: g" -msgstr "" - -#: ../share/extensions/color_darker.inx.h:1 -msgid "Darker" -msgstr "" - -#: ../share/extensions/color_desaturate.inx.h:1 -msgid "Desaturate" -msgstr "" - -#: ../share/extensions/color_grayscale.inx.h:1 -#: ../share/extensions/webslicer_create_rect.inx.h:15 -msgid "Grayscale" -msgstr "" - -#: ../share/extensions/color_lesshue.inx.h:1 -msgid "Less Hue" -msgstr "" - -#: ../share/extensions/color_lesslight.inx.h:1 -msgid "Less Light" -msgstr "" - -#: ../share/extensions/color_lesssaturation.inx.h:1 -msgid "Less Saturation" -msgstr "" - -#: ../share/extensions/color_morehue.inx.h:1 -msgid "More Hue" -msgstr "" - -#: ../share/extensions/color_morelight.inx.h:1 -msgid "More Light" -msgstr "" - -#: ../share/extensions/color_moresaturation.inx.h:1 -msgid "More Saturation" -msgstr "" - -#: ../share/extensions/color_negative.inx.h:1 -msgid "Negative" -msgstr "" - -#: ../share/extensions/color_randomize.inx.h:1 -#: ../share/extensions/render_alphabetsoup.inx.h:4 -msgid "Randomize" -msgstr "" - -#: ../share/extensions/color_randomize.inx.h:7 -msgid "" -"Converts to HSL, randomizes hue and/or saturation and/or lightness and " -"converts it back to RGB." -msgstr "" - -#: ../share/extensions/color_removeblue.inx.h:1 -msgid "Remove Blue" -msgstr "" - -#: ../share/extensions/color_removegreen.inx.h:1 -msgid "Remove Green" -msgstr "" - -#: ../share/extensions/color_removered.inx.h:1 -msgid "Remove Red" -msgstr "" - -#: ../share/extensions/color_replace.inx.h:1 -msgid "Replace color" -msgstr "" - -#: ../share/extensions/color_replace.inx.h:2 -msgid "Replace color (RRGGBB hex):" -msgstr "" - -#: ../share/extensions/color_replace.inx.h:3 -msgid "Color to replace" -msgstr "" - -#: ../share/extensions/color_replace.inx.h:4 -msgid "By color (RRGGBB hex):" -msgstr "" - -#: ../share/extensions/color_replace.inx.h:5 -msgid "New color" -msgstr "" - -#: ../share/extensions/color_rgbbarrel.inx.h:1 -msgid "RGB Barrel" -msgstr "" - -#: ../share/extensions/convert2dashes.inx.h:1 -msgid "Convert to Dashes" -msgstr "" - -#: ../share/extensions/dhw_input.inx.h:1 -msgid "DHW file input" -msgstr "" - -#: ../share/extensions/dhw_input.inx.h:2 -msgid "ACECAD Digimemo File (*.dhw)" -msgstr "" - -#: ../share/extensions/dhw_input.inx.h:3 -msgid "Open files from ACECAD Digimemo" -msgstr "" - -#: ../share/extensions/dia.inx.h:1 -msgid "Dia Input" -msgstr "" - -#: ../share/extensions/dia.inx.h:2 -msgid "" -"The dia2svg.sh script should be installed with your Inkscape distribution. " -"If you do not have it, there is likely to be something wrong with your " -"Inkscape installation." -msgstr "" - -#: ../share/extensions/dia.inx.h:3 -msgid "" -"In order to import Dia files, Dia itself must be installed. You can get Dia " -"at http://live.gnome.org/Dia" -msgstr "" - -#: ../share/extensions/dia.inx.h:4 -msgid "Dia Diagram (*.dia)" -msgstr "" - -#: ../share/extensions/dia.inx.h:5 -msgid "A diagram created with the program Dia" -msgstr "" - -#: ../share/extensions/dimension.inx.h:1 -msgid "Dimensions" -msgstr "" - -#: ../share/extensions/dimension.inx.h:2 -msgid "X Offset:" -msgstr "" - -#: ../share/extensions/dimension.inx.h:3 -msgid "Y Offset:" -msgstr "" - -#: ../share/extensions/dimension.inx.h:4 -msgid "Bounding box type:" -msgstr "" - -#: ../share/extensions/dimension.inx.h:5 -msgid "Geometric" -msgstr "" - -#: ../share/extensions/dimension.inx.h:6 -msgid "Visual" -msgstr "" - -#: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 -#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 -msgid "Visualize Path" -msgstr "" - -#: ../share/extensions/dots.inx.h:1 -msgid "Number Nodes" -msgstr "" - -#: ../share/extensions/dots.inx.h:4 -msgid "Dot size:" -msgstr "" - -#: ../share/extensions/dots.inx.h:5 -msgid "Starting dot number:" -msgstr "" - -#: ../share/extensions/dots.inx.h:6 -msgid "Step:" -msgstr "" - -#: ../share/extensions/dots.inx.h:8 -msgid "" -"This extension replaces the selection's nodes with numbered dots according " -"to the following options:\n" -" * Font size: size of the node number labels (20px, 12pt...).\n" -" * Dot size: diameter of the dots placed at path nodes (10px, 2mm...).\n" -" * Starting dot number: first number in the sequence, assigned to the " -"first node of the path.\n" -" * Step: numbering step between two nodes." -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:1 -msgid "Draw From Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:2 -msgid "Common Objects" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:3 -msgid "Circumcircle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:4 -msgid "Circumcentre" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:5 -msgid "Incircle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:6 -msgid "Incentre" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:7 -msgid "Contact Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:8 -msgid "Excircles" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:9 -msgid "Excentres" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:10 -msgid "Extouch Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:11 -msgid "Excentral Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:12 -msgid "Orthocentre" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:13 -msgid "Orthic Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:14 -msgid "Altitudes" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:15 -msgid "Angle Bisectors" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:16 -msgid "Centroid" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:17 -msgid "Nine-Point Centre" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:18 -msgid "Nine-Point Circle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:19 -msgid "Symmedians" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:20 -msgid "Symmedian Point" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:21 -msgid "Symmedial Triangle" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:22 -msgid "Gergonne Point" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:23 -msgid "Nagel Point" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:24 -msgid "Custom Points and Options" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:25 -msgid "Custom Point Specified By:" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:26 -msgid "Point At:" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:27 -msgid "Draw Marker At This Point" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:28 -msgid "Draw Circle Around This Point" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:29 -#: ../share/extensions/wireframe_sphere.inx.h:6 -msgid "Radius (px):" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:30 -msgid "Draw Isogonal Conjugate" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:31 -msgid "Draw Isotomic Conjugate" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:32 -msgid "Report this triangle's properties" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:33 -msgid "Trilinear Coordinates" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:34 -msgid "Triangle Function" -msgstr "" - -#: ../share/extensions/draw_from_triangle.inx.h:36 -msgid "" -"This extension draws constructions about a triangle defined by the first 3 " -"nodes of a selected path. You may select one of preset objects or create " -"your own ones.\n" -" \n" -"All units are the Inkscape's pixel unit. Angles are all in radians.\n" -"You can specify a point by trilinear coordinates or by a triangle centre " -"function.\n" -"Enter as functions of the side length or angles.\n" -"Trilinear elements should be separated by a colon: ':'.\n" -"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" -"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" -"You can also use the semi-perimeter and area of the triangle as constants. " -"Write 'area' or 'semiperim' for these.\n" -"\n" -"You can use any standard Python math function:\n" -"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" -"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" -"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" -"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" -"cosh(x); sinh(x); tanh(x)\n" -"\n" -"Also available are the inverse trigonometric functions:\n" -"sec(x); csc(x); cot(x)\n" -"\n" -"You can specify the radius of a circle around a custom point using a " -"formula, which may also contain the side lengths, angles, etc. You can also " -"plot the isogonal and isotomic conjugate of the point. Be aware that this " -"may cause a divide-by-zero error for certain points.\n" -" " -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:1 -msgid "DXF Input" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:3 -msgid "Method of Scaling:" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:4 -msgid "Manual scale factor:" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:5 -msgid "Manual x-axis origin (mm):" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:6 -msgid "Manual y-axis origin (mm):" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:7 -msgid "Gcodetools compatible point import" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:8 -#: ../share/extensions/render_barcode_qrcode.inx.h:16 -msgid "Character encoding:" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:9 -msgid "Text Font:" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:11 -msgid "" -"- AutoCAD Release 13 and newer.\n" -"- for manual scaling, assume dxf drawing is in mm.\n" -"- assume svg drawing is in pixels, at 96 dpi.\n" -"- scale factor and origin apply only to manual scaling.\n" -"- 'Automatic scaling' will fit the width of an A4 page.\n" -"- 'Read from file' uses the variable $MEASUREMENT.\n" -"- layers are preserved only on File->Open, not Import.\n" -"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:19 -msgid "AutoCAD DXF R13 (*.dxf)" -msgstr "" - -#: ../share/extensions/dxf_input.inx.h:20 -msgid "Import AutoCAD's Document Exchange Format" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:1 -msgid "Desktop Cutting Plotter" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:3 -msgid "use ROBO-Master type of spline output" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:4 -msgid "use LWPOLYLINE type of line output" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:5 -msgid "Base unit:" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:6 -msgid "Character Encoding:" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:7 -msgid "Layer export selection:" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:8 -msgid "Layer match name:" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:9 -msgid "pt" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:10 -msgid "pc" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:11 -#: ../share/extensions/render_gears.inx.h:7 -msgid "px" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:12 -#: ../share/extensions/gcodetools_area.inx.h:46 -#: ../share/extensions/gcodetools_dxf_points.inx.h:18 -#: ../share/extensions/gcodetools_engraving.inx.h:24 -#: ../share/extensions/gcodetools_graffiti.inx.h:18 -#: ../share/extensions/gcodetools_lathe.inx.h:39 -#: ../share/extensions/gcodetools_orientation_points.inx.h:11 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 -#: ../share/extensions/render_gears.inx.h:9 -msgid "mm" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:13 -msgid "cm" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:14 -msgid "m" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:15 -#: ../share/extensions/gcodetools_area.inx.h:47 -#: ../share/extensions/gcodetools_dxf_points.inx.h:19 -#: ../share/extensions/gcodetools_engraving.inx.h:25 -#: ../share/extensions/gcodetools_graffiti.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:40 -#: ../share/extensions/gcodetools_orientation_points.inx.h:12 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 -#: ../share/extensions/render_gears.inx.h:8 -msgid "in" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:16 -msgid "ft" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:17 -msgid "Latin 1" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:18 -msgid "CP 1250" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:19 -msgid "CP 1252" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:20 -msgid "UTF 8" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:21 -msgid "All (default)" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:22 -msgid "Visible only" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:23 -msgid "By name match" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:25 -msgid "" -"- AutoCAD Release 14 DXF format.\n" -"- The base unit parameter specifies in what unit the coordinates are output " -"(96 px = 1 in).\n" -"- Supported element types\n" -" - paths (lines and splines)\n" -" - rectangles\n" -" - clones (the crossreference to the original is lost)\n" -"- ROBO-Master spline output is a specialized spline readable only by ROBO-" -"Master and AutoDesk viewers, not Inkscape.\n" -"- LWPOLYLINE output is a multiply-connected polyline, disable it to use a " -"legacy version of the LINE output.\n" -"- You can choose to export all layers, only visible ones or by name match " -"(case insensitive and use comma ',' as separator)" -msgstr "" - -#: ../share/extensions/dxf_outlines.inx.h:34 -msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" -msgstr "" - -#: ../share/extensions/dxf_output.inx.h:1 -msgid "DXF Output" -msgstr "" - -#: ../share/extensions/dxf_output.inx.h:2 -msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" -msgstr "" - -#: ../share/extensions/dxf_output.inx.h:3 -msgid "AutoCAD DXF R12 (*.dxf)" -msgstr "" - -#: ../share/extensions/dxf_output.inx.h:4 -msgid "DXF file written by pstoedit" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:1 -msgid "Edge 3D" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:2 -msgid "Illumination Angle:" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:3 -msgid "Shades:" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:4 -msgid "Only black and white:" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:6 -msgid "Blur stdDeviation:" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:7 -msgid "Blur width:" -msgstr "" - -#: ../share/extensions/edge3d.inx.h:8 -msgid "Blur height:" -msgstr "" - -#: ../share/extensions/embedimage.inx.h:1 -msgid "Embed Images" -msgstr "" - -#: ../share/extensions/embedimage.inx.h:2 -#: ../share/extensions/embedselectedimages.inx.h:2 -msgid "Embed only selected images" -msgstr "" - -#: ../share/extensions/embedselectedimages.inx.h:1 -msgid "Embed Selected Images" -msgstr "" - -#: ../share/extensions/empty_business_card.inx.h:1 -msgid "Business Card" -msgstr "" - -#: ../share/extensions/empty_business_card.inx.h:2 -msgid "Business card size:" -msgstr "" - -#: ../share/extensions/empty_desktop.inx.h:1 -msgid "Desktop" -msgstr "" - -#: ../share/extensions/empty_desktop.inx.h:2 -msgid "Desktop size:" -msgstr "" - -#. Maximum size is '16k' -#: ../share/extensions/empty_desktop.inx.h:4 -#: ../share/extensions/empty_generic.inx.h:2 -#: ../share/extensions/empty_video.inx.h:4 -msgid "Custom Width:" -msgstr "" - -#: ../share/extensions/empty_desktop.inx.h:5 -#: ../share/extensions/empty_generic.inx.h:3 -#: ../share/extensions/empty_video.inx.h:5 -msgid "Custom Height:" -msgstr "" - -#: ../share/extensions/empty_dvd_cover.inx.h:1 -msgid "DVD Cover" -msgstr "" - -#: ../share/extensions/empty_dvd_cover.inx.h:2 -msgid "DVD spine width:" -msgstr "" - -#: ../share/extensions/empty_dvd_cover.inx.h:3 -msgid "DVD cover bleed (mm):" -msgstr "" - -#: ../share/extensions/empty_generic.inx.h:1 -msgid "Generic Canvas" -msgstr "" - -#: ../share/extensions/empty_generic.inx.h:4 -msgid "SVG Unit:" -msgstr "" - -#: ../share/extensions/empty_generic.inx.h:5 -msgid "Canvas background:" -msgstr "" - -#: ../share/extensions/empty_generic.inx.h:6 -#: ../share/extensions/empty_page.inx.h:5 -msgid "Hide border" -msgstr "" - -#: ../share/extensions/empty_icon.inx.h:1 -msgid "Icon" -msgstr "" - -#: ../share/extensions/empty_icon.inx.h:2 -msgid "Icon size:" -msgstr "" - -#: ../share/extensions/empty_page.inx.h:2 -msgid "Page size:" -msgstr "" - -#: ../share/extensions/empty_page.inx.h:3 -msgid "Page orientation:" -msgstr "" - -#: ../share/extensions/empty_page.inx.h:4 -msgid "Page background:" -msgstr "" - -#: ../share/extensions/empty_video.inx.h:1 -msgid "Video Screen" -msgstr "" - -#: ../share/extensions/empty_video.inx.h:2 -msgid "Video size:" -msgstr "" - -#: ../share/extensions/eps_input.inx.h:1 -msgid "EPS Input" -msgstr "" - -#: ../share/extensions/eqtexsvg.inx.h:1 -msgid "LaTeX" -msgstr "" - -#: ../share/extensions/eqtexsvg.inx.h:2 -msgid "LaTeX input: " -msgstr "" - -#: ../share/extensions/eqtexsvg.inx.h:3 -msgid "Additional packages (comma-separated): " -msgstr "" - -#: ../share/extensions/export_gimp_palette.inx.h:1 -msgid "Export as GIMP Palette" -msgstr "" - -#: ../share/extensions/export_gimp_palette.inx.h:2 -msgid "GIMP Palette (*.gpl)" -msgstr "" - -#: ../share/extensions/export_gimp_palette.inx.h:3 -msgid "Exports the colors of this document as GIMP Palette" -msgstr "" - -#: ../share/extensions/extractimage.inx.h:1 -msgid "Extract Image" -msgstr "" - -#: ../share/extensions/extractimage.inx.h:2 -msgid "Path to save image:" -msgstr "" - -#: ../share/extensions/extractimage.inx.h:3 -msgid "" -"* Don't type the file extension, it is appended automatically.\n" -"* A relative path (or a filename without path) is relative to the user's " -"home directory." -msgstr "" - -#: ../share/extensions/extrude.inx.h:3 -msgid "Lines" -msgstr "" - -#: ../share/extensions/extrude.inx.h:4 -msgid "Polygons" -msgstr "" - -#: ../share/extensions/fig_input.inx.h:1 -msgid "XFIG Input" -msgstr "" - -#: ../share/extensions/fig_input.inx.h:2 -msgid "XFIG Graphics File (*.fig)" -msgstr "" - -#: ../share/extensions/fig_input.inx.h:3 -msgid "Open files saved with XFIG" -msgstr "" - -#: ../share/extensions/flatten.inx.h:1 -msgid "Flatten Beziers" -msgstr "" - -#: ../share/extensions/flatten.inx.h:2 -msgid "Flatness:" -msgstr "" - -#: ../share/extensions/foldablebox.inx.h:1 -msgid "Foldable Box" -msgstr "" - -#: ../share/extensions/foldablebox.inx.h:4 -msgid "Depth:" -msgstr "" - -#: ../share/extensions/foldablebox.inx.h:5 -msgid "Paper Thickness:" -msgstr "" - -#: ../share/extensions/foldablebox.inx.h:6 -msgid "Tab Proportion:" -msgstr "" - -#: ../share/extensions/foldablebox.inx.h:8 -msgid "Add Guide Lines" -msgstr "" - -#: ../share/extensions/fractalize.inx.h:1 -msgid "Fractalize" -msgstr "" - -#: ../share/extensions/fractalize.inx.h:2 -msgid "Subdivisions:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:1 -msgid "Function Plotter" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:2 -msgid "Range and sampling" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:3 -msgid "Start X value:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:4 -msgid "End X value:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:5 -msgid "Multiply X range by 2*pi" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:6 -msgid "Y value of rectangle's bottom:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:7 -msgid "Y value of rectangle's top:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:8 -msgid "Number of samples:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:9 -#: ../share/extensions/param_curves.inx.h:11 -msgid "Isotropic scaling" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:10 -msgid "Use polar coordinates" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:11 -#: ../share/extensions/param_curves.inx.h:12 -msgid "" -"When set, Isotropic scaling uses smallest of width/xrange or height/yrange" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:12 -#: ../share/extensions/param_curves.inx.h:13 -msgid "Use" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:13 -msgid "" -"Select a rectangle before calling the extension,\n" -"it will determine X and Y scales. If you wish to fill the area, then add x-" -"axis endpoints.\n" -"\n" -"With polar coordinates:\n" -" Start and end X values define the angle range in radians.\n" -" X scale is set so that left and right edges of rectangle are at +/-1.\n" -" Isotropic scaling is disabled.\n" -" First derivative is always determined numerically." -msgstr "" - -#: ../share/extensions/funcplot.inx.h:21 -#: ../share/extensions/param_curves.inx.h:16 -msgid "Functions" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:22 -#: ../share/extensions/param_curves.inx.h:17 -msgid "" -"Standard Python math functions are available:\n" -"\n" -"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" -"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" -"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" -"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" -"cosh(x); sinh(x); tanh(x).\n" -"\n" -"The constants pi and e are also available." -msgstr "" - -#: ../share/extensions/funcplot.inx.h:31 -msgid "Function:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:32 -msgid "Calculate first derivative numerically" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:33 -msgid "First derivative:" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:34 -msgid "Clip with rectangle" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:35 -#: ../share/extensions/param_curves.inx.h:28 -msgid "Remove rectangle" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:36 -#: ../share/extensions/param_curves.inx.h:29 -msgid "Draw Axes" -msgstr "" - -#: ../share/extensions/funcplot.inx.h:37 -msgid "Add x-axis endpoints" -msgstr "" - -#: ../share/extensions/gcodetools_about.inx.h:1 -msgid "About" -msgstr "" - -#: ../share/extensions/gcodetools_about.inx.h:2 -msgid "" -"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " -"is a special format which is used in most of CNC machines. So Gcodetools " -"allows you to use Inkscape as CAM program. It can be use with a lot of " -"machine types: Mills Lathes Laser and Plasma cutters and engravers Mill " -"engravers Plotters etc. To get more info visit developers page at http://www." -"cnc-club.ru/gcodetools" -msgstr "" - -#: ../share/extensions/gcodetools_about.inx.h:4 -#: ../share/extensions/gcodetools_area.inx.h:54 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 -#: ../share/extensions/gcodetools_dxf_points.inx.h:26 -#: ../share/extensions/gcodetools_engraving.inx.h:32 -#: ../share/extensions/gcodetools_graffiti.inx.h:43 -#: ../share/extensions/gcodetools_lathe.inx.h:47 -#: ../share/extensions/gcodetools_orientation_points.inx.h:15 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 -#: ../share/extensions/gcodetools_tools_library.inx.h:13 -msgid "" -"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " -"makes offset paths and engraves sharp corners using cone cutters. This plug-" -"in calculates Gcode for paths using circular interpolation or linear motion " -"when needed. Tutorials, manuals and support can be found at English support " -"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" -"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " -"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" -msgstr "" - -#: ../share/extensions/gcodetools_about.inx.h:5 -#: ../share/extensions/gcodetools_area.inx.h:55 -#: ../share/extensions/gcodetools_check_for_updates.inx.h:5 -#: ../share/extensions/gcodetools_dxf_points.inx.h:27 -#: ../share/extensions/gcodetools_engraving.inx.h:33 -#: ../share/extensions/gcodetools_graffiti.inx.h:44 -#: ../share/extensions/gcodetools_lathe.inx.h:48 -#: ../share/extensions/gcodetools_orientation_points.inx.h:16 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 -#: ../share/extensions/gcodetools_tools_library.inx.h:14 -msgid "Gcodetools" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:1 -msgid "Area" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:2 -msgid "Maximum area cutting curves:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:3 -msgid "Area width:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:4 -msgid "Area tool overlap (0..0.9):" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:5 -msgid "" -"\"Create area offset\": creates several Inkscape path offsets to fill " -"original path's area up to \"Area radius\" value. Outlines start from \"1/2 D" -"\" up to \"Area width\" total width with \"D\" steps where D is taken from " -"the nearest tool definition (\"Tool diameter\" value). Only one offset will " -"be created if the \"Area width\" is equal to \"1/2 D\"." -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:6 -msgid "Fill area" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:7 -msgid "Area fill angle" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:8 -msgid "Area fill shift" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:9 -msgid "Filling method" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:10 -msgid "Zig zag" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:12 -msgid "Area artifacts" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:13 -msgid "Artifact diameter:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:14 -msgid "Action:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:15 -msgid "mark with an arrow" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:16 -msgid "mark with style" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:17 -msgid "delete" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:18 -msgid "" -"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" -"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " -"colored arrows." -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:19 -#: ../share/extensions/gcodetools_lathe.inx.h:12 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 -msgid "Path to Gcode" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:20 -#: ../share/extensions/gcodetools_lathe.inx.h:13 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 -msgid "Biarc interpolation tolerance:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:21 -#: ../share/extensions/gcodetools_lathe.inx.h:14 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 -msgid "Maximum splitting depth:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:22 -#: ../share/extensions/gcodetools_lathe.inx.h:15 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 -msgid "Cutting order:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:16 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 -msgid "Depth function:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:17 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 -msgid "Sort paths to reduse rapid distance" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:25 -#: ../share/extensions/gcodetools_lathe.inx.h:18 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 -msgid "Subpath by subpath" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:26 -#: ../share/extensions/gcodetools_lathe.inx.h:19 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 -msgid "Path by path" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:27 -#: ../share/extensions/gcodetools_lathe.inx.h:20 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 -msgid "Pass by Pass" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:28 -#: ../share/extensions/gcodetools_lathe.inx.h:21 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 -msgid "" -"Biarc interpolation tolerance is the maximum distance between path and its " -"approximation. The segment will be split into two segments if the distance " -"between path's segment and its approximation exceeds biarc interpolation " -"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " -"(black), d is the depth defined by orientation points, s - surface defined " -"by orientation points." -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:30 -#: ../share/extensions/gcodetools_engraving.inx.h:8 -#: ../share/extensions/gcodetools_graffiti.inx.h:22 -#: ../share/extensions/gcodetools_lathe.inx.h:23 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 -msgid "Scale along Z axis:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:31 -#: ../share/extensions/gcodetools_engraving.inx.h:9 -#: ../share/extensions/gcodetools_graffiti.inx.h:23 -#: ../share/extensions/gcodetools_lathe.inx.h:24 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 -msgid "Offset along Z axis:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:32 -#: ../share/extensions/gcodetools_engraving.inx.h:10 -#: ../share/extensions/gcodetools_graffiti.inx.h:24 -#: ../share/extensions/gcodetools_lathe.inx.h:25 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 -msgid "Select all paths if nothing is selected" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:33 -#: ../share/extensions/gcodetools_engraving.inx.h:11 -#: ../share/extensions/gcodetools_graffiti.inx.h:25 -#: ../share/extensions/gcodetools_lathe.inx.h:26 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 -msgid "Minimum arc radius:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:34 -#: ../share/extensions/gcodetools_engraving.inx.h:12 -#: ../share/extensions/gcodetools_graffiti.inx.h:26 -#: ../share/extensions/gcodetools_lathe.inx.h:27 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 -msgid "Comment Gcode:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:35 -#: ../share/extensions/gcodetools_engraving.inx.h:13 -#: ../share/extensions/gcodetools_graffiti.inx.h:27 -#: ../share/extensions/gcodetools_lathe.inx.h:28 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 -msgid "Get additional comments from object's properties" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:36 -#: ../share/extensions/gcodetools_dxf_points.inx.h:8 -#: ../share/extensions/gcodetools_engraving.inx.h:14 -#: ../share/extensions/gcodetools_graffiti.inx.h:28 -#: ../share/extensions/gcodetools_lathe.inx.h:29 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 -msgid "Preferences" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:37 -#: ../share/extensions/gcodetools_dxf_points.inx.h:9 -#: ../share/extensions/gcodetools_engraving.inx.h:15 -#: ../share/extensions/gcodetools_graffiti.inx.h:29 -#: ../share/extensions/gcodetools_lathe.inx.h:30 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 -msgid "File:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:38 -#: ../share/extensions/gcodetools_dxf_points.inx.h:10 -#: ../share/extensions/gcodetools_engraving.inx.h:16 -#: ../share/extensions/gcodetools_graffiti.inx.h:30 -#: ../share/extensions/gcodetools_lathe.inx.h:31 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 -msgid "Add numeric suffix to filename" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:39 -#: ../share/extensions/gcodetools_dxf_points.inx.h:11 -#: ../share/extensions/gcodetools_engraving.inx.h:17 -#: ../share/extensions/gcodetools_graffiti.inx.h:31 -#: ../share/extensions/gcodetools_lathe.inx.h:32 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 -msgid "Directory:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:40 -#: ../share/extensions/gcodetools_dxf_points.inx.h:12 -#: ../share/extensions/gcodetools_engraving.inx.h:18 -#: ../share/extensions/gcodetools_graffiti.inx.h:32 -#: ../share/extensions/gcodetools_lathe.inx.h:33 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 -msgid "Z safe height for G00 move over blank:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:41 -#: ../share/extensions/gcodetools_dxf_points.inx.h:13 -#: ../share/extensions/gcodetools_engraving.inx.h:19 -#: ../share/extensions/gcodetools_graffiti.inx.h:13 -#: ../share/extensions/gcodetools_lathe.inx.h:34 -#: ../share/extensions/gcodetools_orientation_points.inx.h:6 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 -msgid "Units (mm or in):" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:42 -#: ../share/extensions/gcodetools_dxf_points.inx.h:14 -#: ../share/extensions/gcodetools_engraving.inx.h:20 -#: ../share/extensions/gcodetools_graffiti.inx.h:33 -#: ../share/extensions/gcodetools_lathe.inx.h:35 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 -msgid "Post-processor:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:43 -#: ../share/extensions/gcodetools_dxf_points.inx.h:15 -#: ../share/extensions/gcodetools_engraving.inx.h:21 -#: ../share/extensions/gcodetools_graffiti.inx.h:34 -#: ../share/extensions/gcodetools_lathe.inx.h:36 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 -msgid "Additional post-processor:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:44 -#: ../share/extensions/gcodetools_dxf_points.inx.h:16 -#: ../share/extensions/gcodetools_engraving.inx.h:22 -#: ../share/extensions/gcodetools_graffiti.inx.h:35 -#: ../share/extensions/gcodetools_lathe.inx.h:37 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 -msgid "Generate log file" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:45 -#: ../share/extensions/gcodetools_dxf_points.inx.h:17 -#: ../share/extensions/gcodetools_engraving.inx.h:23 -#: ../share/extensions/gcodetools_graffiti.inx.h:36 -#: ../share/extensions/gcodetools_lathe.inx.h:38 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 -msgid "Full path to log file:" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:48 -#: ../share/extensions/gcodetools_dxf_points.inx.h:20 -#: ../share/extensions/gcodetools_engraving.inx.h:26 -#: ../share/extensions/gcodetools_graffiti.inx.h:37 -#: ../share/extensions/gcodetools_lathe.inx.h:41 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 -msgctxt "GCode postprocessor" -msgid "None" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:49 -#: ../share/extensions/gcodetools_dxf_points.inx.h:21 -#: ../share/extensions/gcodetools_engraving.inx.h:27 -#: ../share/extensions/gcodetools_graffiti.inx.h:38 -#: ../share/extensions/gcodetools_lathe.inx.h:42 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 -msgid "Parameterize Gcode" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:50 -#: ../share/extensions/gcodetools_dxf_points.inx.h:22 -#: ../share/extensions/gcodetools_engraving.inx.h:28 -#: ../share/extensions/gcodetools_graffiti.inx.h:39 -#: ../share/extensions/gcodetools_lathe.inx.h:43 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 -msgid "Flip y axis and parameterize Gcode" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:51 -#: ../share/extensions/gcodetools_dxf_points.inx.h:23 -#: ../share/extensions/gcodetools_engraving.inx.h:29 -#: ../share/extensions/gcodetools_graffiti.inx.h:40 -#: ../share/extensions/gcodetools_lathe.inx.h:44 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 -msgid "Round all values to 4 digits" -msgstr "" - -#: ../share/extensions/gcodetools_area.inx.h:52 -#: ../share/extensions/gcodetools_dxf_points.inx.h:24 -#: ../share/extensions/gcodetools_engraving.inx.h:30 -#: ../share/extensions/gcodetools_graffiti.inx.h:41 -#: ../share/extensions/gcodetools_lathe.inx.h:45 -#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 -msgid "Fast pre-penetrate" -msgstr "" - -#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 -msgid "Check for updates" -msgstr "" - -#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 -msgid "Check for Gcodetools latest stable version and try to get the updates." -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:1 -msgid "DXF Points" -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:2 -msgid "DXF points" -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:3 -msgid "Convert selection:" -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:4 -msgid "" -"Convert selected objects to drill points (as dxf_import plugin does). Also " -"you can save original shape. Only the start point of each curve will be " -"used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " -"and add or remove XML tag 'dxfpoint' with any value." -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:5 -msgid "set as dxfpoint and save shape" -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:6 -msgid "set as dxfpoint and draw arrow" -msgstr "" - -#: ../share/extensions/gcodetools_dxf_points.inx.h:7 -msgid "clear dxfpoint sign" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:1 -msgid "Engraving" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:2 -msgid "Smooth convex corners between this value and 180 degrees:" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:3 -msgid "Maximum distance for engraving (mm/inch):" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:4 -msgid "Accuracy factor (2 low to 10 high):" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:5 -msgid "Draw additional graphics to see engraving path" -msgstr "" - -#: ../share/extensions/gcodetools_engraving.inx.h:6 -msgid "" -"This function creates path to engrave letters or any shape with sharp " -"angles. Cutter's depth as a function of radius is defined by the tool. Depth " -"may be any Python expression. For instance: cone....(45 " -"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " -"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " -"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:1 -msgid "Graffiti" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:2 -msgid "Maximum segment length:" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:3 -msgid "Minimal connector radius:" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:4 -msgid "Start position (x;y):" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:5 -msgid "Create preview" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:6 -msgid "Create linearization preview" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:7 -msgid "Preview's size (px):" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:8 -msgid "Preview's paint emmit (pts/s):" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:10 -#: ../share/extensions/gcodetools_orientation_points.inx.h:3 -msgid "Orientation type:" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:11 -#: ../share/extensions/gcodetools_orientation_points.inx.h:4 -msgid "Z surface:" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:12 -#: ../share/extensions/gcodetools_orientation_points.inx.h:5 -msgid "Z depth:" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:14 -#: ../share/extensions/gcodetools_orientation_points.inx.h:7 -msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:15 -#: ../share/extensions/gcodetools_orientation_points.inx.h:8 -msgid "3-points mode (move, rotate and mirror, different X/Y scale)" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:16 -#: ../share/extensions/gcodetools_orientation_points.inx.h:9 -msgid "graffiti points" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:17 -#: ../share/extensions/gcodetools_orientation_points.inx.h:10 -msgid "in-out reference point" -msgstr "" - -#: ../share/extensions/gcodetools_graffiti.inx.h:20 -#: ../share/extensions/gcodetools_orientation_points.inx.h:13 -msgid "" -"Orientation points are used to calculate transformation (offset,scale,mirror," -"rotation in XY plane) of the path. 3-points mode only: do not put all three " -"into one line (use 2-points mode instead). You can modify Z surface, Z depth " -"values later using text tool (3rd coordinates). If there are no orientation " -"points inside current layer they are taken from the upper layer. Do not " -"ungroup orientation points! You can select them using double click to enter " -"the group or by Ctrl+Click. Now press apply to create control points " -"(independent set for each layer)." -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:1 -msgid "Lathe" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:2 -msgid "Lathe width:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:3 -msgid "Fine cut width:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:4 -msgid "Fine cut count:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:5 -msgid "Create fine cut using:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:6 -msgid "Lathe X axis remap:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:7 -msgid "Lathe Z axis remap:" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:8 -msgid "Move path" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:9 -msgid "Offset path" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:10 -msgid "Lathe modify path" -msgstr "" - -#: ../share/extensions/gcodetools_lathe.inx.h:11 -msgid "" -"This function modifies path so it will be able to be cut with the " -"rectangular cutter." -msgstr "" - -#: ../share/extensions/gcodetools_orientation_points.inx.h:1 -msgid "Orientation points" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 -msgid "Prepare path for plasma" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 -msgid "Prepare path for plasma or laser cuters" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 -msgid "Create in-out paths" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 -msgid "In-out path length:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 -msgid "In-out path max distance to reference point:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 -msgid "In-out path type:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 -msgid "In-out path radius for round path:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 -msgid "Replace original path" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 -msgid "Do not add in-out reference points" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 -msgid "Prepare corners" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 -msgid "Stepout distance for corners:" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 -msgid "Maximum angle for corner (0-180 deg):" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 -msgid "Perpendicular" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 -msgid "Tangent" -msgstr "" - -#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 -msgid "-------------------------------------------------" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:1 -msgid "Tools library" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:2 -msgid "Tools type:" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:3 -msgid "default" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:4 -msgid "cylinder" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:5 -msgid "cone" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:6 -msgid "plasma" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:7 -msgid "tangent knife" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:8 -msgid "lathe cutter" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:9 -msgid "graffiti" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:10 -msgid "Just check tools" -msgstr "" - -#: ../share/extensions/gcodetools_tools_library.inx.h:11 -msgid "" -"Selected tool type fills appropriate default values. You can change these " -"values using the Text tool later on. The topmost (z order) tool in the " -"active layer is used. If there is no tool inside the current layer it is " -"taken from the upper layer. Press Apply to create new tool." -msgstr "" - -#: ../share/extensions/generate_voronoi.inx.h:1 -msgid "Voronoi Pattern" -msgstr "" - -#: ../share/extensions/generate_voronoi.inx.h:3 -msgid "Average size of cell (px):" -msgstr "" - -#: ../share/extensions/generate_voronoi.inx.h:4 -msgid "Size of Border (px):" -msgstr "" - -#: ../share/extensions/generate_voronoi.inx.h:6 -msgid "" -"Generate a random pattern of Voronoi cells. The pattern will be accessible " -"in the Fill and Stroke dialog. You must select an object or a group.\n" -"\n" -"If border is zero, the pattern will be discontinuous at the edges. Use a " -"positive border, preferably greater than the cell size, to produce a smooth " -"join of the pattern at the edges. Use a negative border to reduce the size " -"of the pattern and get an empty border." -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:1 -msgid "GIMP XCF" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:3 -msgid "Save Guides" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:4 -msgid "Save Grid" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:5 -msgid "Save Background" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:6 -msgid "File Resolution:" -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:8 -msgid "" -"This extension exports the document to Gimp XCF format according to the " -"following options:\n" -" * Save Guides: convert all guides to Gimp guides.\n" -" * Save Grid: convert the first rectangular grid to a Gimp grid (note " -"that the default Inkscape grid is very narrow when shown in Gimp).\n" -" * Save Background: add the document background to each converted layer.\n" -" * File Resolution: XCF file resolution, in DPI.\n" -"\n" -"Each first level layer is converted to a Gimp layer. Sublayers are " -"concatenated and converted with their first level parent layer into a single " -"Gimp layer." -msgstr "" - -#: ../share/extensions/gimp_xcf.inx.h:15 -msgid "GIMP XCF maintaining layers (*.xcf)" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:1 -msgid "Cartesian Grid" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:2 -#: ../share/extensions/grid_isometric.inx.h:10 -msgid "Border Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:3 -msgid "X Axis" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:4 -msgid "Major X Divisions:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:5 -msgid "Major X Division Spacing (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:6 -msgid "Subdivisions per Major X Division:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:7 -msgid "Logarithmic X Subdiv. (Base given by entry above)" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:8 -msgid "Subsubdivs. per X Subdivision:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:9 -msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:10 -msgid "Major X Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:11 -msgid "Minor X Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:12 -msgid "Subminor X Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:13 -msgid "Y Axis" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:14 -msgid "Major Y Divisions:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:15 -msgid "Major Y Division Spacing (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:16 -msgid "Subdivisions per Major Y Division:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:17 -msgid "Logarithmic Y Subdiv. (Base given by entry above)" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:18 -msgid "Subsubdivs. per Y Subdivision:" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:19 -msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:20 -msgid "Major Y Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:21 -msgid "Minor Y Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_cartesian.inx.h:22 -msgid "Subminor Y Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:1 -msgid "Isometric Grid" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:2 -msgid "X Divisions [x2]:" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:3 -msgid "Y Divisions [x2] [> 1/2 X Div]:" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:4 -msgid "Division Spacing (px):" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:5 -msgid "Subdivisions per Major Division:" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:6 -msgid "Subsubdivs per Subdivision:" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:7 -msgid "Major Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:8 -msgid "Minor Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_isometric.inx.h:9 -msgid "Subminor Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:1 -msgid "Polar Grid" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:2 -msgid "Centre Dot Diameter (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:3 -msgid "Circumferential Labels:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:5 -msgid "Degrees" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:6 -msgid "Circumferential Label Size (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:7 -msgid "Circumferential Label Outset (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:8 -msgid "Circular Divisions" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:9 -msgid "Major Circular Divisions:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:10 -msgid "Major Circular Division Spacing (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:11 -msgid "Subdivisions per Major Circular Division:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:12 -msgid "Logarithmic Subdiv. (Base given by entry above)" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:13 -msgid "Major Circular Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:14 -msgid "Minor Circular Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:15 -msgid "Angular Divisions" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:16 -msgid "Angle Divisions:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:17 -msgid "Angle Divisions at Centre:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:18 -msgid "Subdivisions per Major Angular Division:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:19 -msgid "Minor Angle Division End 'n' Divs. Before Centre:" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:20 -msgid "Major Angular Division Thickness (px):" -msgstr "" - -#: ../share/extensions/grid_polar.inx.h:21 -msgid "Minor Angular Division Thickness (px):" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:1 -msgid "Guides creator" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:2 -msgid "Regular guides" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:3 -msgid "Guides preset:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:6 -msgid "Start from edges" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:7 -msgid "Delete existing guides" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:8 -msgid "Custom..." -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:9 -msgid "Golden ratio" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:10 -msgid "Rule-of-third" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:11 -msgid "Diagonal guides" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:12 -msgid "Upper left corner" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:13 -msgid "Upper right corner" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:14 -msgid "Lower left corner" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:15 -msgid "Lower right corner" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:16 -msgid "Margins" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:17 -msgid "Margins preset:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:18 -msgid "Header margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:19 -msgid "Footer margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:20 -msgid "Left margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:21 -msgid "Right margin:" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:22 -msgid "Left book page" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:23 -msgid "Right book page" -msgstr "" - -#: ../share/extensions/guides_creator.inx.h:24 -msgctxt "Margin" -msgid "None" -msgstr "" - -#: ../share/extensions/guillotine.inx.h:1 -msgid "Guillotine" -msgstr "" - -#: ../share/extensions/guillotine.inx.h:2 -msgid "Directory to save images to:" -msgstr "" - -#: ../share/extensions/guillotine.inx.h:3 -msgid "Image name (without extension):" -msgstr "" - -#: ../share/extensions/guillotine.inx.h:4 -msgid "Ignore these settings and use export hints" -msgstr "" - -#: ../share/extensions/handles.inx.h:1 -msgid "Draw Handles" -msgstr "" - -#: ../share/extensions/hershey.inx.h:1 -msgid "Hershey Text" -msgstr "" - -#: ../share/extensions/hershey.inx.h:2 -msgid "Render Text" -msgstr "" - -#: ../share/extensions/hershey.inx.h:3 -#: ../share/extensions/render_alphabetsoup.inx.h:2 -#: ../share/extensions/render_barcode_datamatrix.inx.h:2 -#: ../share/extensions/render_barcode_qrcode.inx.h:3 -msgid "Text:" -msgstr "" - -#: ../share/extensions/hershey.inx.h:4 -msgid "Action: " -msgstr "" - -#: ../share/extensions/hershey.inx.h:5 -msgid "Font face: " -msgstr "" - -#: ../share/extensions/hershey.inx.h:6 -msgid "Typeset that text" -msgstr "" - -#: ../share/extensions/hershey.inx.h:7 -msgid "Write glyph table" -msgstr "" - -#: ../share/extensions/hershey.inx.h:8 -msgid "Sans 1-stroke" -msgstr "" - -#: ../share/extensions/hershey.inx.h:9 -msgid "Sans bold" -msgstr "" - -#: ../share/extensions/hershey.inx.h:10 -msgid "Serif medium" -msgstr "" - -#: ../share/extensions/hershey.inx.h:11 -msgid "Serif medium italic" -msgstr "" - -#: ../share/extensions/hershey.inx.h:12 -msgid "Serif bold italic" -msgstr "" - -#: ../share/extensions/hershey.inx.h:13 -msgid "Serif bold" -msgstr "" - -#: ../share/extensions/hershey.inx.h:14 -msgid "Script 1-stroke" -msgstr "" - -#: ../share/extensions/hershey.inx.h:15 -msgid "Script 1-stroke (alt)" -msgstr "" - -#: ../share/extensions/hershey.inx.h:16 -msgid "Script medium" -msgstr "" - -#: ../share/extensions/hershey.inx.h:17 -msgid "Gothic English" -msgstr "" - -#: ../share/extensions/hershey.inx.h:18 -msgid "Gothic German" -msgstr "" - -#: ../share/extensions/hershey.inx.h:19 -msgid "Gothic Italian" -msgstr "" - -#: ../share/extensions/hershey.inx.h:20 -msgid "Greek 1-stroke" -msgstr "" - -#: ../share/extensions/hershey.inx.h:21 -msgid "Greek medium" -msgstr "" - -#: ../share/extensions/hershey.inx.h:23 -msgid "Japanese" -msgstr "" - -#: ../share/extensions/hershey.inx.h:24 -msgid "Astrology" -msgstr "" - -#: ../share/extensions/hershey.inx.h:25 -msgid "Math (lower)" -msgstr "" - -#: ../share/extensions/hershey.inx.h:26 -msgid "Math (upper)" -msgstr "" - -#: ../share/extensions/hershey.inx.h:28 -msgid "Meteorology" -msgstr "" - -#: ../share/extensions/hershey.inx.h:29 -msgid "Music" -msgstr "" - -#: ../share/extensions/hershey.inx.h:30 -msgid "Symbolic" -msgstr "" - -#: ../share/extensions/hershey.inx.h:31 -msgid "" -" \n" -"\n" -"\n" -"\n" -msgstr "" - -#: ../share/extensions/hershey.inx.h:36 -msgid "About..." -msgstr "" - -#: ../share/extensions/hershey.inx.h:37 -msgid "" -"\n" -"This extension renders a line of text using\n" -"\"Hershey\" fonts for plotters, derived from \n" -"NBS SP-424 1976-04, \"A contribution to \n" -"computer typesetting techniques: Tables of\n" -"Coordinates for Hershey's Repertory of\n" -"Occidental Type Fonts and Graphic Symbols.\"\n" -"\n" -"These are not traditional \"outline\" fonts, \n" -"but are instead \"single-stroke\" fonts, or\n" -"\"engraving\" fonts where the character is\n" -"formed by the stroke (and not the fill).\n" -"\n" -"For additional information, please visit:\n" -" www.evilmadscientist.com/go/hershey" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:1 -msgid "HPGL Input" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:2 -msgid "" -"Please note that you can only open HPGL files written by Inkscape, to open " -"other HPGL files please change their file extension to .plt, make sure you " -"have UniConverter installed and open them again." -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:3 -#: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 -msgid "Resolution X (dpi):" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:4 -#: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the X axis " -"(Default: 1016.0)" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:5 -#: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 -msgid "Resolution Y (dpi):" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:6 -#: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 -msgid "" -"The amount of steps the plotter moves if it moves for 1 inch on the Y axis " -"(Default: 1016.0)" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:7 -msgid "Show movements between paths" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:8 -msgid "Check this to show movements between paths (Default: Unchecked)" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 -msgid "HP Graphics Language file (*.hpgl)" -msgstr "" - -#: ../share/extensions/hpgl_input.inx.h:10 -msgid "Import an HP Graphics Language file" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:1 -msgid "HPGL Output" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:2 -msgid "" -"Please make sure that all objects you want to save are converted to paths. " -"Please use the plotter extension (Extensions menu) to plot directly over a " -"serial connection." -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 -msgid "Plotter Settings " -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 -msgid "Pen number:" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 -msgid "The number of the pen (tool) to use (Standard: '1')" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 -msgid "Pen force (g):" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 -msgid "" -"The amount of force pushing down the pen in grams, set to 0 to omit command; " -"most plotters ignore this command (Default: 0)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 -msgid "Pen speed (cm/s or mm/s):" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:13 -msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command; most plotters " -"ignore this command (Default: 0)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:14 -msgid "Rotation (°, Clockwise):" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 -msgid "Rotation of the drawing (Default: 0°)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 -msgid "Mirror X axis" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 -msgid "Check this to mirror the X axis (Default: Unchecked)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 -msgid "Mirror Y axis" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 -msgid "Check this to mirror the Y axis (Default: Unchecked)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 -msgid "Center zero point" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 -msgid "" -"Check this if your plotter uses a centered zero point (Default: Unchecked)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 -msgid "Plot Features " -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 -msgid "Overcut (mm):" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 -msgid "" -"The distance in mm that will be cut over the starting point of the path to " -"prevent open paths, set to 0.0 to omit command (Default: 1.00)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 -msgid "Tool offset (mm):" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 -msgid "" -"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " -"command (Default: 0.25)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 -msgid "Use precut" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 -msgid "" -"Check this to cut a small line before the real drawing starts to correctly " -"align the tool orientation. (Default: Checked)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 -msgid "Curve flatness:" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 -msgid "" -"Curves are divided into lines, this number controls how fine the curves will " -"be reproduced, the smaller the finer (Default: '1.2')" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 -msgid "Auto align" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 -msgid "" -"Check this to auto align the drawing to the zero point (Plus the tool offset " -"if used). If unchecked you have to make sure that all parts of your drawing " -"are within the document border! (Default: Checked)" -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 -msgid "" -"All these settings depend on the plotter you use, for more information " -"please consult the manual or homepage for your plotter." -msgstr "" - -#: ../share/extensions/hpgl_output.inx.h:35 -msgid "Export an HP Graphics Language file" -msgstr "" - -#: ../share/extensions/ink2canvas.inx.h:1 -msgid "Convert to html5 canvas" -msgstr "" - -#: ../share/extensions/ink2canvas.inx.h:2 -msgid "HTML 5 canvas (*.html)" -msgstr "" - -#: ../share/extensions/ink2canvas.inx.h:3 -msgid "HTML 5 canvas code" -msgstr "" - -#: ../share/extensions/inkscape_follow_link.inx.h:1 -msgid "Follow Link" -msgstr "" - -#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 -msgid "Ask Us a Question" -msgstr "" - -#: ../share/extensions/inkscape_help_commandline.inx.h:1 -msgid "Command Line Options" -msgstr "" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_commandline.inx.h:3 -msgid "http://inkscape.org/doc/inkscape-man.html" -msgstr "" - -#: ../share/extensions/inkscape_help_faq.inx.h:1 -msgid "FAQ" -msgstr "" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_faq.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" -msgstr "" - -#: ../share/extensions/inkscape_help_keys.inx.h:1 -msgid "Keys and Mouse Reference" -msgstr "" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_keys.inx.h:3 -msgid "http://inkscape.org/doc/keys091.html" -msgstr "" - -#: ../share/extensions/inkscape_help_manual.inx.h:1 -msgid "Inkscape Manual" -msgstr "" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_manual.inx.h:3 -msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" -msgstr "" - -#: ../share/extensions/inkscape_help_relnotes.inx.h:1 -msgid "New in This Version" -msgstr "" - -#. i18n. Please don't translate it unless a page exists in your language -#: ../share/extensions/inkscape_help_relnotes.inx.h:3 -msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91" -msgstr "" - -#: ../share/extensions/inkscape_help_reportabug.inx.h:1 -msgid "Report a Bug" -msgstr "" - -#: ../share/extensions/inkscape_help_svgspec.inx.h:1 -msgid "SVG 1.1 Specification" -msgstr "" - -#: ../share/extensions/interp.inx.h:1 -msgid "Interpolate" -msgstr "" - -#: ../share/extensions/interp.inx.h:3 -msgid "Interpolation steps:" -msgstr "" - -#: ../share/extensions/interp.inx.h:4 -msgid "Interpolation method:" -msgstr "" - -#: ../share/extensions/interp.inx.h:5 -msgid "Duplicate endpaths" -msgstr "" - -#: ../share/extensions/interp.inx.h:6 -msgid "Interpolate style" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:1 -msgid "Interpolate Attribute in a group" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:3 -msgid "Attribute to Interpolate:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:4 -msgid "Other Attribute:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:5 -msgid "Other Attribute type:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:6 -msgid "Apply to:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:7 -msgid "Start Value:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:8 -msgid "End Value:" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:13 -msgid "Translate X" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:14 -msgid "Translate Y" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:15 -#: ../share/extensions/markers_strokepaint.inx.h:9 -msgid "Fill" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:17 -msgid "Other" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:18 -msgid "" -"If you select \"Other\", you must know the SVG attributes to identify here " -"this \"other\"." -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:20 -msgid "Integer Number" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:21 -msgid "Float Number" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:23 -#: ../share/extensions/polyhedron_3d.inx.h:33 -msgid "Style" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:24 -msgid "Transformation" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:25 -msgid "••••••••••••••••••••••••••••••••••••••••••••••••" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:26 -msgid "No Unit" -msgstr "" - -#: ../share/extensions/interp_att_g.inx.h:28 -msgid "" -"This effect applies a value for any interpolatable attribute for all " -"elements inside the selected group or for all elements in a multiple " -"selection." -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:1 -msgid "Auto-texts" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:2 -#: ../share/extensions/jessyInk_effects.inx.h:2 -#: ../share/extensions/jessyInk_export.inx.h:2 -#: ../share/extensions/jessyInk_masterSlide.inx.h:2 -#: ../share/extensions/jessyInk_transitions.inx.h:2 -#: ../share/extensions/jessyInk_view.inx.h:2 -msgid "Settings" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:3 -msgid "Auto-Text:" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:4 -msgid "None (remove)" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:5 -msgid "Slide title" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:6 -msgid "Slide number" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:7 -msgid "Number of slides" -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:9 -msgid "" -"This extension allows you to install, update and remove auto-texts for a " -"JessyInk presentation. Please see code.google.com/p/jessyink for more " -"details." -msgstr "" - -#: ../share/extensions/jessyInk_autoTexts.inx.h:10 -#: ../share/extensions/jessyInk_effects.inx.h:15 -#: ../share/extensions/jessyInk_install.inx.h:4 -#: ../share/extensions/jessyInk_keyBindings.inx.h:46 -#: ../share/extensions/jessyInk_masterSlide.inx.h:7 -#: ../share/extensions/jessyInk_mouseHandler.inx.h:8 -#: ../share/extensions/jessyInk_summary.inx.h:4 -#: ../share/extensions/jessyInk_transitions.inx.h:14 -#: ../share/extensions/jessyInk_uninstall.inx.h:12 -#: ../share/extensions/jessyInk_video.inx.h:4 -#: ../share/extensions/jessyInk_view.inx.h:9 -msgid "JessyInk" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:1 -msgid "Effects" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:4 -#: ../share/extensions/jessyInk_transitions.inx.h:4 -#: ../share/extensions/jessyInk_view.inx.h:4 -msgid "Duration in seconds:" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:6 -msgid "Build-in effect" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:7 -msgid "None (default)" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:8 -#: ../share/extensions/jessyInk_transitions.inx.h:8 -msgid "Appear" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:9 -msgid "Fade in" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:10 -#: ../share/extensions/jessyInk_transitions.inx.h:10 -msgid "Pop" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:11 -msgid "Build-out effect" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:12 -msgid "Fade out" -msgstr "" - -#: ../share/extensions/jessyInk_effects.inx.h:14 -msgid "" -"This extension allows you to install, update and remove object effects for a " -"JessyInk presentation. Please see code.google.com/p/jessyink for more " -"details." -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:1 -msgid "JessyInk zipped pdf or png output" -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:4 -msgid "Resolution:" -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:5 -msgid "PDF" -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:6 -msgid "PNG" -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:8 -msgid "" -"This extension allows you to export a JessyInk presentation once you created " -"an export layer in your browser. Please see code.google.com/p/jessyink for " -"more details." -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:9 -msgid "JessyInk zipped pdf or png output (*.zip)" -msgstr "" - -#: ../share/extensions/jessyInk_export.inx.h:10 -msgid "" -"Creates a zip file containing pdfs or pngs of all slides of a JessyInk " -"presentation." -msgstr "" - -#: ../share/extensions/jessyInk_install.inx.h:1 -msgid "Install/update" -msgstr "" - -#: ../share/extensions/jessyInk_install.inx.h:3 -msgid "" -"This extension allows you to install or update the JessyInk script in order " -"to turn your SVG file into a presentation. Please see code.google.com/p/" -"jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:1 -msgid "Key bindings" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:2 -msgid "Slide mode" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:3 -msgid "Back (with effects):" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:4 -msgid "Next (with effects):" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:5 -msgid "Back (without effects):" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:6 -msgid "Next (without effects):" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:7 -msgid "First slide:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:8 -msgid "Last slide:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:9 -msgid "Switch to index mode:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:10 -msgid "Switch to drawing mode:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:11 -msgid "Set duration:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:12 -msgid "Add slide:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:13 -msgid "Toggle progress bar:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:14 -msgid "Reset timer:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:15 -msgid "Export presentation:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:17 -msgid "Switch to slide mode:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:18 -msgid "Set path width to default:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:19 -msgid "Set path width to 1:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:20 -msgid "Set path width to 3:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:21 -msgid "Set path width to 5:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:22 -msgid "Set path width to 7:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:23 -msgid "Set path width to 9:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:24 -msgid "Set path color to blue:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:25 -msgid "Set path color to cyan:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:26 -msgid "Set path color to green:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:27 -msgid "Set path color to black:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:28 -msgid "Set path color to magenta:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:29 -msgid "Set path color to orange:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:30 -msgid "Set path color to red:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:31 -msgid "Set path color to white:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:32 -msgid "Set path color to yellow:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:33 -msgid "Undo last path segment:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:34 -msgid "Index mode" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:35 -msgid "Select the slide to the left:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:36 -msgid "Select the slide to the right:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:37 -msgid "Select the slide above:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:38 -msgid "Select the slide below:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:39 -msgid "Previous page:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:40 -msgid "Next page:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:41 -msgid "Decrease number of columns:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:42 -msgid "Increase number of columns:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:43 -msgid "Set number of columns to default:" -msgstr "" - -#: ../share/extensions/jessyInk_keyBindings.inx.h:45 -msgid "" -"This extension allows you customise the key bindings JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.inx.h:1 -msgid "Master slide" -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.inx.h:3 -#: ../share/extensions/jessyInk_transitions.inx.h:3 -msgid "Name of layer:" -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.inx.h:4 -msgid "If no layer name is supplied, the master slide is unset." -msgstr "" - -#: ../share/extensions/jessyInk_masterSlide.inx.h:6 -msgid "" -"This extension allows you to change the master slide JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_mouseHandler.inx.h:1 -msgid "Mouse handler" -msgstr "" - -#: ../share/extensions/jessyInk_mouseHandler.inx.h:2 -msgid "Mouse settings:" -msgstr "" - -#: ../share/extensions/jessyInk_mouseHandler.inx.h:4 -msgid "No-click" -msgstr "" - -#: ../share/extensions/jessyInk_mouseHandler.inx.h:5 -msgid "Dragging/zoom" -msgstr "" - -#: ../share/extensions/jessyInk_mouseHandler.inx.h:7 -msgid "" -"This extension allows you customise the mouse handler JessyInk uses. Please " -"see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_summary.inx.h:1 -msgid "Summary" -msgstr "" - -#: ../share/extensions/jessyInk_summary.inx.h:3 -msgid "" -"This extension allows you to obtain information about the JessyInk script, " -"effects and transitions contained in this SVG file. Please see code.google." -"com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_transitions.inx.h:1 -msgid "Transitions" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.inx.h:6 -msgid "Transition in effect" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.inx.h:9 -msgid "Fade" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.inx.h:11 -msgid "Transition out effect" -msgstr "" - -#: ../share/extensions/jessyInk_transitions.inx.h:13 -msgid "" -"This extension allows you to change the transition JessyInk uses for the " -"selected layer. Please see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:1 -msgid "Uninstall/remove" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:3 -msgid "Remove script" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:4 -msgid "Remove effects" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:5 -msgid "Remove master slide assignment" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:6 -msgid "Remove transitions" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:7 -msgid "Remove auto-texts" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:8 -msgid "Remove views" -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:9 -msgid "Please select the parts of JessyInk you want to uninstall/remove." -msgstr "" - -#: ../share/extensions/jessyInk_uninstall.inx.h:11 -msgid "" -"This extension allows you to uninstall the JessyInk script. Please see code." -"google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_video.inx.h:1 -msgid "Video" -msgstr "" - -#: ../share/extensions/jessyInk_video.inx.h:3 -msgid "" -"This extension puts a JessyInk video element on the current slide (layer). " -"This element allows you to integrate a video into your JessyInk " -"presentation. Please see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/jessyInk_view.inx.h:5 -msgid "Remove view" -msgstr "" - -#: ../share/extensions/jessyInk_view.inx.h:6 -msgid "Choose order number 0 to set the initial view of a slide." -msgstr "" - -#: ../share/extensions/jessyInk_view.inx.h:8 -msgid "" -"This extension allows you to set, update and remove views for a JessyInk " -"presentation. Please see code.google.com/p/jessyink for more details." -msgstr "" - -#: ../share/extensions/layers2svgfont.inx.h:1 -msgid "3 - Convert Glyph Layers to SVG Font" -msgstr "" - -#: ../share/extensions/layers2svgfont.inx.h:2 -#: ../share/extensions/new_glyph_layer.inx.h:3 -#: ../share/extensions/next_glyph_layer.inx.h:2 -#: ../share/extensions/previous_glyph_layer.inx.h:2 -#: ../share/extensions/setup_typography_canvas.inx.h:7 -#: ../share/extensions/svgfont2layers.inx.h:3 -msgid "Typography" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:1 -msgid "N-up layout" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:2 -msgid "Page dimensions" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:4 -msgid "Size X:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:5 -msgid "Size Y:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:6 -#: ../share/extensions/printing_marks.inx.h:13 -msgid "Top:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:7 -#: ../share/extensions/printing_marks.inx.h:14 -msgid "Bottom:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:8 -#: ../share/extensions/printing_marks.inx.h:15 -msgid "Left:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:9 -#: ../share/extensions/printing_marks.inx.h:16 -msgid "Right:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:10 -msgid "Page margins" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:11 -msgid "Layout dimensions" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:13 -msgid "Cols:" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:14 -msgid "Auto calculate layout size" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:15 -msgid "Layout padding" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:16 -msgid "Layout margins" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:17 -#: ../share/extensions/printing_marks.inx.h:2 -msgid "Marks" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:18 -msgid "Place holder" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:19 -msgid "Cutting marks" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:20 -msgid "Padding guide" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:21 -msgid "Margin guide" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:22 -msgid "Padding box" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:23 -msgid "Margin box" -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:25 -msgid "" -"\n" -"Parameters:\n" -" * Page size: width and height.\n" -" * Page margins: extra space around each page.\n" -" * Layout rows and cols.\n" -" * Layout size: width and height, auto calculated if one is 0.\n" -" * Auto calculate layout size: don't use the layout size values.\n" -" * Layout margins: white space around each part of the layout.\n" -" * Layout padding: inner padding for each part of the layout.\n" -" " -msgstr "" - -#: ../share/extensions/layout_nup.inx.h:36 -#: ../share/extensions/perfectboundcover.inx.h:20 -#: ../share/extensions/printing_marks.inx.h:21 -#: ../share/extensions/svgcalendar.inx.h:13 -msgid "Layout" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:1 -msgid "L-system" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:2 -msgid "Axiom and rules" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:3 -msgid "Axiom:" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:4 -msgid "Rules:" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:6 -msgid "Step length (px):" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:8 -#, no-c-format -msgid "Randomize step (%):" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:9 -msgid "Left angle:" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:10 -msgid "Right angle:" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:12 -#, no-c-format -msgid "Randomize angle (%):" -msgstr "" - -#: ../share/extensions/lindenmayer.inx.h:14 -msgid "" -"\n" -"The path is generated by applying the \n" -"substitutions of Rules to the Axiom, \n" -"Order times. The following commands are \n" -"recognized in Axiom and Rules:\n" -"\n" -"Any of A,B,C,D,E,F: draw forward \n" -"\n" -"Any of G,H,I,J,K,L: move forward \n" -"\n" -"+: turn left\n" -"\n" -"-: turn right\n" -"\n" -"|: turn 180 degrees\n" -"\n" -"[: remember point\n" -"\n" -"]: return to remembered point\n" -msgstr "" - -#: ../share/extensions/lorem_ipsum.inx.h:1 -msgid "Lorem ipsum" -msgstr "" - -#: ../share/extensions/lorem_ipsum.inx.h:3 -msgid "Number of paragraphs:" -msgstr "" - -#: ../share/extensions/lorem_ipsum.inx.h:4 -msgid "Sentences per paragraph:" -msgstr "" - -#: ../share/extensions/lorem_ipsum.inx.h:5 -msgid "Paragraph length fluctuation (sentences):" -msgstr "" - -#: ../share/extensions/lorem_ipsum.inx.h:7 -msgid "" -"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder " -"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " -"new flowed text object, the size of the page, is created in a new layer." -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:1 -msgid "Color Markers" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:2 -msgid "From object" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:3 -msgid "Marker type:" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:4 -msgid "Invert fill and stroke colors" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:5 -msgid "Assign alpha" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:6 -msgid "solid" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:7 -msgid "filled" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:10 -msgid "Assign fill color" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:11 -msgid "Stroke" -msgstr "" - -#: ../share/extensions/markers_strokepaint.inx.h:12 -msgid "Assign stroke color" -msgstr "" - -#: ../share/extensions/measure.inx.h:1 -msgid "Measure Path" -msgstr "" - -#: ../share/extensions/measure.inx.h:2 -msgid "Measure" -msgstr "" - -#: ../share/extensions/measure.inx.h:3 -msgid "Measurement Type: " -msgstr "" - -#: ../share/extensions/measure.inx.h:4 -msgid "Text Orientation: " -msgstr "" - -#: ../share/extensions/measure.inx.h:5 -msgid "Angle [with Fixed Angle option only] (°):" -msgstr "" - -#: ../share/extensions/measure.inx.h:6 -msgid "Font size (px):" -msgstr "" - -#: ../share/extensions/measure.inx.h:7 -msgid "Offset (px):" -msgstr "" - -#: ../share/extensions/measure.inx.h:8 -msgid "Precision:" -msgstr "" - -#: ../share/extensions/measure.inx.h:9 -msgid "Scale Factor (Drawing:Real Length) = 1:" -msgstr "" - -#: ../share/extensions/measure.inx.h:10 -msgid "Length Unit:" -msgstr "" - -#: ../share/extensions/measure.inx.h:12 -msgctxt "measure extension" -msgid "Area" -msgstr "" - -#: ../share/extensions/measure.inx.h:13 -msgctxt "measure extension" -msgid "Center of Mass" -msgstr "" - -#: ../share/extensions/measure.inx.h:14 -msgctxt "measure extension" -msgid "Text On Path" -msgstr "" - -#: ../share/extensions/measure.inx.h:15 -msgctxt "measure extension" -msgid "Fixed Angle" -msgstr "" - -#: ../share/extensions/measure.inx.h:18 -#, no-c-format -msgid "" -"This effect measures the length, area, or center-of-mass of the selected " -"paths. Length and area are added as a text object with the selected units. " -"Center-of-mass is shown as a cross symbol.\n" -"\n" -" * Text display format can be either Text-On-Path, or stand-alone text at a " -"specified angle.\n" -" * The number of significant digits can be controlled by the Precision " -"field.\n" -" * The Offset field controls the distance from the text to the path.\n" -" * The Scale factor can be used to make measurements in scaled drawings. " -"For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " -"must be set to 250.\n" -" * When calculating area, the result should be precise for polygons and " -"Bezier curves. If a circle is used, the area may be too high by as much as " -"0.03%." -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:1 -msgid "Merge Styles into CSS" -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:2 -msgid "" -"All selected nodes will be grouped together and their common style " -"attributes will create a new class, this class will replace the existing " -"inline style attributes. Please use a name which best describes the kinds of " -"objects and their common context for best effect." -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:3 -msgid "New Class Name:" -msgstr "" - -#: ../share/extensions/merge_styles.inx.h:4 -msgid "Stylesheet" -msgstr "" - -#: ../share/extensions/motion.inx.h:1 -msgid "Motion" -msgstr "" - -#: ../share/extensions/motion.inx.h:2 -msgid "Magnitude:" -msgstr "" - -#: ../share/extensions/new_glyph_layer.inx.h:1 -msgid "2 - Add Glyph Layer" -msgstr "" - -#: ../share/extensions/new_glyph_layer.inx.h:2 -msgid "Unicode character:" -msgstr "" - -#: ../share/extensions/next_glyph_layer.inx.h:1 -msgid "View Next Glyph" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:1 -msgid "Parametric Curves" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:2 -msgid "Range and Sampling" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:3 -msgid "Start t-value:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:4 -msgid "End t-value:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:5 -msgid "Multiply t-range by 2*pi" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:6 -msgid "X-value of rectangle's left:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:7 -msgid "X-value of rectangle's right:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:8 -msgid "Y-value of rectangle's bottom:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:9 -msgid "Y-value of rectangle's top:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:10 -msgid "Samples:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:14 -msgid "" -"Select a rectangle before calling the extension, it will determine X and Y " -"scales.\n" -"First derivatives are always determined numerically." -msgstr "" - -#: ../share/extensions/param_curves.inx.h:26 -msgid "X-Function:" -msgstr "" - -#: ../share/extensions/param_curves.inx.h:27 -msgid "Y-Function:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:1 -msgid "Pattern along Path" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:3 -msgid "Copies of the pattern:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:4 -msgid "Deformation type:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:5 -#: ../share/extensions/pathscatter.inx.h:5 -msgid "Space between copies:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:6 -#: ../share/extensions/pathscatter.inx.h:6 -msgid "Normal offset:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:7 -#: ../share/extensions/pathscatter.inx.h:7 -msgid "Tangential offset:" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:8 -#: ../share/extensions/pathscatter.inx.h:8 -msgid "Pattern is vertical" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:9 -#: ../share/extensions/pathscatter.inx.h:10 -msgid "Duplicate the pattern before deformation" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:14 -msgid "Snake" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:15 -msgid "Ribbon" -msgstr "" - -#: ../share/extensions/pathalongpath.inx.h:17 -msgid "" -"This effect scatters or bends a pattern along arbitrary \"skeleton\" paths. " -"The pattern is the topmost object in the selection. Groups of paths, shapes " -"or clones are allowed." -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:3 -msgid "Follow path orientation" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:4 -msgid "Stretch spaces to fit skeleton length" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:9 -msgid "Original pattern will be:" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:11 -msgid "If pattern is a group, pick group members" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:12 -msgid "Pick group members:" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:13 -msgid "Moved" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:14 -msgid "Copied" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:15 -msgid "Cloned" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:16 -msgid "Randomly" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:17 -msgid "Sequentially" -msgstr "" - -#: ../share/extensions/pathscatter.inx.h:19 -msgid "" -"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " -"pattern must be the topmost object in the selection. Groups of paths, " -"shapes, clones are allowed." -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:1 -msgid "Perfect-Bound Cover Template" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:2 -msgid "Book Properties" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:3 -msgid "Book Width (inches):" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:4 -msgid "Book Height (inches):" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:5 -msgid "Number of Pages:" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:6 -msgid "Remove existing guides" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:7 -msgid "Interior Pages" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:8 -msgid "Paper Thickness Measurement:" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:9 -msgid "Pages Per Inch (PPI)" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:10 -msgid "Caliper (inches)" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:11 -msgid "Points" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:12 -msgid "Bond Weight #" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:13 -msgid "Specify Width" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:14 -msgid "Value:" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:15 -msgid "Cover" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:16 -msgid "Cover Thickness Measurement:" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:17 -msgid "Bleed (in):" -msgstr "" - -#: ../share/extensions/perfectboundcover.inx.h:18 -msgid "Note: Bond Weight # calculations are a best-guess estimate." -msgstr "" - -#: ../share/extensions/pixelsnap.inx.h:1 -msgid "PixelSnap" -msgstr "" - -#: ../share/extensions/pixelsnap.inx.h:2 -msgid "" -"Snap all paths in selection to pixels. Snaps borders to half-points and " -"fills to full points." -msgstr "" - -#: ../share/extensions/plotter.inx.h:1 -msgid "Plot" -msgstr "" - -#: ../share/extensions/plotter.inx.h:2 -msgid "" -"Please make sure that all objects you want to plot are converted to paths." -msgstr "" - -#: ../share/extensions/plotter.inx.h:3 -msgid "Connection Settings " -msgstr "" - -#: ../share/extensions/plotter.inx.h:4 -msgid "Serial port:" -msgstr "" - -#: ../share/extensions/plotter.inx.h:5 -msgid "" -"The port of your serial connection, on Windows something like 'COM1', on " -"Linux something like: '/dev/ttyUSB0' (Default: COM1)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:6 -msgid "Serial baud rate:" -msgstr "" - -#: ../share/extensions/plotter.inx.h:7 -msgid "The Baud rate of your serial connection (Default: 9600)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:8 -msgid "Flow control:" -msgstr "" - -#: ../share/extensions/plotter.inx.h:9 -msgid "" -"The Software / Hardware flow control of your serial connection (Default: " -"Software)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:10 -msgid "Command language:" -msgstr "" - -#: ../share/extensions/plotter.inx.h:11 -msgid "The command language to use (Default: HPGL)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:12 -msgid "Software (XON/XOFF)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:13 -msgid "Hardware (RTS/CTS)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:14 -msgid "Hardware (DSR/DTR + RTS/CTS)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:15 -msgctxt "Flow control" -msgid "None" -msgstr "" - -#: ../share/extensions/plotter.inx.h:16 -msgid "HPGL" -msgstr "" - -#: ../share/extensions/plotter.inx.h:17 -msgid "DMPL" -msgstr "" - -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:19 -msgid "" -"Using wrong settings can under certain circumstances cause Inkscape to " -"freeze. Always save your work before plotting!" -msgstr "" - -#: ../share/extensions/plotter.inx.h:20 -msgid "" -"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " -"plotter manufacturer for drivers if needed." -msgstr "" - -#: ../share/extensions/plotter.inx.h:21 -msgid "Parallel (LPT) connections are not supported." -msgstr "" - -#: ../share/extensions/plotter.inx.h:32 -msgid "" -"The speed the pen will move with in centimeters or millimeters per second " -"(depending on your plotter model), set to 0 to omit command. Most plotters " -"ignore this command. (Default: 0)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:33 -msgid "Rotation (°, clockwise):" -msgstr "" - -#: ../share/extensions/plotter.inx.h:52 -msgid "Show debug information" -msgstr "" - -#: ../share/extensions/plotter.inx.h:53 -msgid "" -"Check this to get verbose information about the plot without actually " -"sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" -msgstr "" - -#: ../share/extensions/plt_input.inx.h:1 -msgid "AutoCAD Plot Input" -msgstr "" - -#: ../share/extensions/plt_input.inx.h:2 -#: ../share/extensions/plt_output.inx.h:2 -msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" -msgstr "" - -#: ../share/extensions/plt_input.inx.h:3 -msgid "Open HPGL plotter files" -msgstr "" - -#: ../share/extensions/plt_output.inx.h:1 -msgid "AutoCAD Plot Output" -msgstr "" - -#: ../share/extensions/plt_output.inx.h:3 -msgid "Save a file for plotters" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:1 -msgid "3D Polyhedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:2 -msgid "Model file" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:3 -msgid "Object:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:4 -msgid "Filename:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:5 -msgid "Object Type:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:6 -msgid "Clockwise wound object" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:7 -msgid "Cube" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:8 -msgid "Truncated Cube" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:9 -msgid "Snub Cube" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:10 -msgid "Cuboctahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:11 -msgid "Tetrahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:12 -msgid "Truncated Tetrahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:13 -msgid "Octahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:14 -msgid "Truncated Octahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:15 -msgid "Icosahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:16 -msgid "Truncated Icosahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:17 -msgid "Small Triambic Icosahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:18 -msgid "Dodecahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:19 -msgid "Truncated Dodecahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:20 -msgid "Snub Dodecahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:21 -msgid "Great Dodecahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:22 -msgid "Great Stellated Dodecahedron" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:23 -msgid "Load from file" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:24 -msgid "Face-Specified" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:25 -msgid "Edge-Specified" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:27 -msgid "Rotate around:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:28 -#: ../share/extensions/spirograph.inx.h:8 -#: ../share/extensions/wireframe_sphere.inx.h:5 -msgid "Rotation (deg):" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:29 -msgid "Then rotate around:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:30 -msgid "X-Axis" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:31 -msgid "Y-Axis" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:32 -msgid "Z-Axis" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:34 -msgid "Scaling factor:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:35 -msgid "Fill color, Red:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:36 -msgid "Fill color, Green:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:37 -msgid "Fill color, Blue:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:39 -#, no-c-format -msgid "Fill opacity (%):" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:41 -#, no-c-format -msgid "Stroke opacity (%):" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:42 -msgid "Stroke width (px):" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:43 -msgid "Shading" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:44 -msgid "Light X:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:45 -msgid "Light Y:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:46 -msgid "Light Z:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:48 -msgid "Draw back-facing polygons" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:49 -msgid "Z-sort faces by:" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:50 -msgid "Faces" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:51 -msgid "Edges" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:52 -msgid "Vertices" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:53 -msgid "Maximum" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:54 -msgid "Minimum" -msgstr "" - -#: ../share/extensions/polyhedron_3d.inx.h:55 -msgid "Mean" -msgstr "" - -#: ../share/extensions/previous_glyph_layer.inx.h:1 -msgid "View Previous Glyph" -msgstr "" - -#: ../share/extensions/print_win32_vector.inx.h:1 -msgid "Win32 Vector Print" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:1 -msgid "Printing Marks" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:3 -msgid "Crop Marks" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:4 -msgid "Bleed Marks" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:5 -msgid "Registration Marks" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:6 -msgid "Star Target" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:7 -msgid "Color Bars" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:8 -msgid "Page Information" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:9 -msgid "Positioning" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:10 -msgid "Set crop marks to:" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:17 -msgid "Canvas" -msgstr "" - -#: ../share/extensions/printing_marks.inx.h:19 -msgid "Bleed Margin" -msgstr "" - -#: ../share/extensions/ps_input.inx.h:1 -msgid "PostScript Input" -msgstr "" - -#: ../share/extensions/radiusrand.inx.h:1 -msgid "Jitter nodes" -msgstr "" - -#: ../share/extensions/radiusrand.inx.h:3 -msgid "Maximum displacement in X (px):" -msgstr "" - -#: ../share/extensions/radiusrand.inx.h:4 -msgid "Maximum displacement in Y (px):" -msgstr "" - -#: ../share/extensions/radiusrand.inx.h:7 -msgid "Use normal distribution" -msgstr "" - -#: ../share/extensions/radiusrand.inx.h:9 -msgid "" -"This effect randomly shifts the nodes (and optionally node handles) of the " -"selected path." -msgstr "" - -#: ../share/extensions/render_alphabetsoup.inx.h:1 -msgid "Alphabet Soup" -msgstr "" - -#: ../share/extensions/render_barcode.inx.h:1 -msgid "Classic" -msgstr "" - -#: ../share/extensions/render_barcode.inx.h:2 -msgid "Barcode Type:" -msgstr "" - -#: ../share/extensions/render_barcode.inx.h:3 -msgid "Barcode Data:" -msgstr "" - -#: ../share/extensions/render_barcode.inx.h:4 -msgid "Bar Height:" -msgstr "" - -#: ../share/extensions/render_barcode.inx.h:6 -#: ../share/extensions/render_barcode_datamatrix.inx.h:6 -#: ../share/extensions/render_barcode_qrcode.inx.h:19 -msgid "Barcode" -msgstr "" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:1 -msgid "Datamatrix" -msgstr "" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:3 -#: ../share/extensions/render_barcode_qrcode.inx.h:4 -msgid "Size, in unit squares:" -msgstr "" - -#: ../share/extensions/render_barcode_datamatrix.inx.h:4 -msgid "Square Size (px):" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:1 -msgid "QR Code" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:2 -msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:6 -msgid "" -"With \"Auto\", the size of the barcode depends on the length of the text and " -"the error correction level" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:7 -msgid "Error correction level:" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:9 -#, no-c-format -msgid "L (Approx. 7%)" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:11 -#, no-c-format -msgid "M (Approx. 15%)" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:13 -#, no-c-format -msgid "Q (Approx. 25%)" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:15 -#, no-c-format -msgid "H (Approx. 30%)" -msgstr "" - -#: ../share/extensions/render_barcode_qrcode.inx.h:17 -msgid "Square size (px):" -msgstr "" - -#: ../share/extensions/render_gear_rack.inx.h:1 -msgid "Rack Gear" -msgstr "" - -#: ../share/extensions/render_gear_rack.inx.h:2 -msgid "Rack Length:" -msgstr "" - -#: ../share/extensions/render_gear_rack.inx.h:3 -msgid "Tooth Spacing:" -msgstr "" - -#: ../share/extensions/render_gear_rack.inx.h:4 -msgid "Contact Angle:" -msgstr "" - -#: ../share/extensions/render_gear_rack.inx.h:6 -#: ../share/extensions/render_gears.inx.h:1 -msgid "Gear" -msgstr "" - -#: ../share/extensions/render_gears.inx.h:2 -msgid "Number of teeth:" -msgstr "" - -#: ../share/extensions/render_gears.inx.h:3 -msgid "Circular pitch (tooth size):" -msgstr "" - -#: ../share/extensions/render_gears.inx.h:4 -msgid "Pressure angle (degrees):" -msgstr "" - -#: ../share/extensions/render_gears.inx.h:5 -msgid "Diameter of center hole (0 for none):" -msgstr "" - -#: ../share/extensions/render_gears.inx.h:10 -msgid "Unit of measurement for both circular pitch and center diameter." -msgstr "" - -#: ../share/extensions/replace_font.inx.h:1 -msgid "Replace font" -msgstr "" - -#: ../share/extensions/replace_font.inx.h:2 -msgid "Find and Replace font" -msgstr "" - -#: ../share/extensions/replace_font.inx.h:3 -msgid "Find font: " -msgstr "" - -#: ../share/extensions/replace_font.inx.h:4 -msgid "Replace with: " -msgstr "" - -#: ../share/extensions/replace_font.inx.h:5 -msgid "Replace all fonts with: " -msgstr "" - -#: ../share/extensions/replace_font.inx.h:6 -msgid "List all fonts" -msgstr "" - -#: ../share/extensions/replace_font.inx.h:7 -msgid "" -"Choose this tab if you would like to see a list of the fonts used/found." -msgstr "" - -#: ../share/extensions/replace_font.inx.h:8 -msgid "Work on:" -msgstr "" - -#: ../share/extensions/replace_font.inx.h:9 -msgid "Entire drawing" -msgstr "" - -#: ../share/extensions/replace_font.inx.h:10 -msgid "Selected objects only" -msgstr "" - -#: ../share/extensions/restack.inx.h:1 -msgid "Restack" -msgstr "" - -#: ../share/extensions/restack.inx.h:2 -msgid "Restack Direction:" -msgstr "" - -#: ../share/extensions/restack.inx.h:3 -msgid "Left to Right (0)" -msgstr "" - -#: ../share/extensions/restack.inx.h:4 -msgid "Bottom to Top (90)" -msgstr "" - -#: ../share/extensions/restack.inx.h:5 -msgid "Right to Left (180)" -msgstr "" - -#: ../share/extensions/restack.inx.h:6 -msgid "Top to Bottom (270)" -msgstr "" - -#: ../share/extensions/restack.inx.h:7 -msgid "Radial Outward" -msgstr "" - -#: ../share/extensions/restack.inx.h:8 -msgid "Radial Inward" -msgstr "" - -#: ../share/extensions/restack.inx.h:9 -msgid "Arbitrary Angle" -msgstr "" - -#: ../share/extensions/restack.inx.h:11 -msgid "Horizontal Point:" -msgstr "" - -#: ../share/extensions/restack.inx.h:13 -#: ../share/extensions/text_extract.inx.h:9 -#: ../share/extensions/text_merge.inx.h:9 -msgid "Middle" -msgstr "" - -#: ../share/extensions/restack.inx.h:15 -msgid "Vertical Point:" -msgstr "" - -#: ../share/extensions/restack.inx.h:16 -#: ../share/extensions/text_extract.inx.h:12 -#: ../share/extensions/text_merge.inx.h:12 -msgid "Top" -msgstr "" - -#: ../share/extensions/restack.inx.h:17 -#: ../share/extensions/text_extract.inx.h:13 -#: ../share/extensions/text_merge.inx.h:13 -msgid "Bottom" -msgstr "" - -#: ../share/extensions/restack.inx.h:18 -msgid "Arrange" -msgstr "" - -#: ../share/extensions/rtree.inx.h:1 -msgid "Random Tree" -msgstr "" - -#: ../share/extensions/rtree.inx.h:2 -msgid "Initial size:" -msgstr "" - -#: ../share/extensions/rtree.inx.h:3 -msgid "Minimum size:" -msgstr "" - -#: ../share/extensions/rubberstretch.inx.h:1 -msgid "Rubber Stretch" -msgstr "" - -#: ../share/extensions/rubberstretch.inx.h:3 -#, no-c-format -msgid "Strength (%):" -msgstr "" - -#: ../share/extensions/rubberstretch.inx.h:5 -#, no-c-format -msgid "Curve (%):" -msgstr "" - -#: ../share/extensions/scour.inx.h:1 -msgid "Optimized SVG Output" -msgstr "" - -#: ../share/extensions/scour.inx.h:3 -msgid "Shorten color values" -msgstr "" - -#: ../share/extensions/scour.inx.h:4 -msgid "Convert CSS attributes to XML attributes" -msgstr "" - -#: ../share/extensions/scour.inx.h:5 -msgid "Group collapsing" -msgstr "" - -#: ../share/extensions/scour.inx.h:6 -msgid "Create groups for similar attributes" -msgstr "" - -#: ../share/extensions/scour.inx.h:7 -msgid "Embed rasters" -msgstr "" - -#: ../share/extensions/scour.inx.h:8 -msgid "Keep editor data" -msgstr "" - -#: ../share/extensions/scour.inx.h:9 -msgid "Remove metadata" -msgstr "" - -#: ../share/extensions/scour.inx.h:10 -msgid "Remove comments" -msgstr "" - -#: ../share/extensions/scour.inx.h:11 -msgid "Work around renderer bugs" -msgstr "" - -#: ../share/extensions/scour.inx.h:12 -msgid "Enable viewboxing" -msgstr "" - -#: ../share/extensions/scour.inx.h:13 -msgid "Remove the xml declaration" -msgstr "" - -#: ../share/extensions/scour.inx.h:14 -msgid "Number of significant digits for coords:" -msgstr "" - -#: ../share/extensions/scour.inx.h:15 -msgid "XML indentation (pretty-printing):" -msgstr "" - -#: ../share/extensions/scour.inx.h:16 -msgid "Space" -msgstr "" - -#: ../share/extensions/scour.inx.h:17 -msgid "Tab" -msgstr "" - -#: ../share/extensions/scour.inx.h:18 -msgctxt "Indent" -msgid "None" -msgstr "" - -#: ../share/extensions/scour.inx.h:19 -msgid "Ids" -msgstr "" - -#: ../share/extensions/scour.inx.h:20 -msgid "Remove unused ID names for elements" -msgstr "" - -#: ../share/extensions/scour.inx.h:21 -msgid "Shorten IDs" -msgstr "" - -#: ../share/extensions/scour.inx.h:22 -msgid "Preserve manually created ID names not ending with digits" -msgstr "" - -#: ../share/extensions/scour.inx.h:23 -msgid "Preserve these ID names, comma-separated:" -msgstr "" - -#: ../share/extensions/scour.inx.h:24 -msgid "Preserve ID names starting with:" -msgstr "" - -#: ../share/extensions/scour.inx.h:25 -msgid "Help (Options)" -msgstr "" - -#: ../share/extensions/scour.inx.h:27 -#, no-c-format -msgid "" -"This extension optimizes the SVG file according to the following options:\n" -" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" -" * Convert CSS attributes to XML attributes: convert styles from style " -"tags and inline style=\"\" declarations into XML attributes.\n" -" * Group collapsing: removes useless g elements, promoting their contents " -"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" -" * Create groups for similar attributes: create g elements for runs of " -"elements having at least one attribute in common (e.g. fill color, stroke " -"opacity, ...).\n" -" * Embed rasters: embed raster images as base64-encoded data URLs.\n" -" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " -"elements and attributes.\n" -" * Remove metadata: remove metadata tags along with all the information " -"in them, which may include license metadata, alternate versions for non-SVG-" -"enabled browsers, etc.\n" -" * Remove comments: remove comment tags.\n" -" * Work around renderer bugs: emits slightly larger SVG data, but works " -"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " -"various applications.\n" -" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" -" * Number of significant digits for coords: all coordinates are output " -"with that number of significant digits. For example, if 3 is specified, the " -"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " -"472.\n" -" * XML indentation (pretty-printing): either None for no indentation, " -"Space to use one space per nesting level, or Tab to use one tab per nesting " -"level." -msgstr "" - -#: ../share/extensions/scour.inx.h:40 -msgid "Help (Ids)" -msgstr "" - -#: ../share/extensions/scour.inx.h:41 -msgid "" -"Ids specific options:\n" -" * Remove unused ID names for elements: remove all unreferenced ID " -"attributes.\n" -" * Shorten IDs: reduce the length of all ID attributes, assigning the " -"shortest to the most-referenced elements. For instance, #linearGradient5621, " -"referenced 100 times, can become #a.\n" -" * Preserve manually created ID names not ending with digits: usually, " -"optimised SVG output removes these, but if they're needed for referencing (e." -"g. #middledot), you may use this option.\n" -" * Preserve these ID names, comma-separated: you can use this in " -"conjunction with the other preserve options if you wish to preserve some " -"more specific ID names.\n" -" * Preserve ID names starting with: usually, optimised SVG output removes " -"all unused ID names, but if all of your preserved ID names start with the " -"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." -msgstr "" - -#: ../share/extensions/scour.inx.h:47 -msgid "Optimized SVG (*.svg)" -msgstr "" - -#: ../share/extensions/scour.inx.h:48 -msgid "Scalable Vector Graphics" -msgstr "" - -#: ../share/extensions/seamless_pattern.inx.h:1 -msgid "Seamless Pattern" -msgstr "" - -#: ../share/extensions/seamless_pattern.inx.h:2 -msgid "Custom Width (px):" -msgstr "" - -#: ../share/extensions/seamless_pattern.inx.h:3 -msgid "Custom Height (px):" -msgstr "" - -#: ../share/extensions/seamless_pattern.inx.h:4 -msgid "This extension overwrite current document" -msgstr "" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:1 -msgid "Seamless Pattern Procedural" -msgstr "" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:2 -msgid "Custom Width (px.):" -msgstr "" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:3 -msgid "Custom Height (px.):" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:1 -msgid "1 - Setup Typography Canvas" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:2 -msgid "Em-size:" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:3 -msgid "Ascender:" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:4 -msgid "Caps Height:" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:5 -msgid "X-Height:" -msgstr "" - -#: ../share/extensions/setup_typography_canvas.inx.h:6 -msgid "Descender:" -msgstr "" - -#: ../share/extensions/sk1_input.inx.h:1 -msgid "sK1 vector graphics files input" -msgstr "" - -#: ../share/extensions/sk1_input.inx.h:2 -#: ../share/extensions/sk1_output.inx.h:2 -msgid "sK1 vector graphics files (*.sk1)" -msgstr "" - -#: ../share/extensions/sk1_input.inx.h:3 -msgid "Open files saved in sK1 vector graphics editor" -msgstr "" - -#: ../share/extensions/sk1_output.inx.h:1 -msgid "sK1 vector graphics files output" -msgstr "" - -#: ../share/extensions/sk1_output.inx.h:3 -msgid "File format for use in sK1 vector graphics editor" -msgstr "" - -#: ../share/extensions/sk_input.inx.h:1 -msgid "Sketch Input" -msgstr "" - -#: ../share/extensions/sk_input.inx.h:2 -msgid "Sketch Diagram (*.sk)" -msgstr "" - -#: ../share/extensions/sk_input.inx.h:3 -msgid "A diagram created with the program Sketch" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:1 -msgid "Spirograph" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:2 -msgid "R - Ring Radius (px):" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:3 -msgid "r - Gear Radius (px):" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:4 -msgid "d - Pen Radius (px):" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:5 -msgid "Gear Placement:" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:6 -msgid "Inside (Hypotrochoid)" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:7 -msgid "Outside (Epitrochoid)" -msgstr "" - -#: ../share/extensions/spirograph.inx.h:9 -msgid "Quality (Default = 16):" -msgstr "" - -#: ../share/extensions/split.inx.h:1 -msgid "Split text" -msgstr "" - -#: ../share/extensions/split.inx.h:3 -msgid "Split:" -msgstr "" - -#: ../share/extensions/split.inx.h:4 -msgid "Preserve original text" -msgstr "" - -#: ../share/extensions/split.inx.h:5 -msgctxt "split" -msgid "Lines" -msgstr "" - -#: ../share/extensions/split.inx.h:6 -msgctxt "split" -msgid "Words" -msgstr "" - -#: ../share/extensions/split.inx.h:7 -msgctxt "split" -msgid "Letters" -msgstr "" - -#: ../share/extensions/split.inx.h:9 -msgid "This effect splits texts into different lines, words or letters." -msgstr "" - -#: ../share/extensions/straightseg.inx.h:1 -msgid "Straighten Segments" -msgstr "" - -#: ../share/extensions/straightseg.inx.h:2 -msgid "Percent:" -msgstr "" - -#: ../share/extensions/straightseg.inx.h:3 -msgid "Behavior:" -msgstr "" - -#: ../share/extensions/summersnight.inx.h:1 -msgid "Envelope" -msgstr "" - -#: ../share/extensions/svg2fxg.inx.h:1 -msgid "FXG Output" -msgstr "" - -#: ../share/extensions/svg2fxg.inx.h:2 -msgid "Flash XML Graphics (*.fxg)" -msgstr "" - -#: ../share/extensions/svg2fxg.inx.h:3 -msgid "Adobe's XML Graphics file format" -msgstr "" - -#: ../share/extensions/svg2xaml.inx.h:1 -msgid "XAML Output" -msgstr "" - -#: ../share/extensions/svg2xaml.inx.h:2 -msgid "Silverlight compatible XAML" -msgstr "" - -#: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 -msgid "Microsoft XAML (*.xaml)" -msgstr "" - -#: ../share/extensions/svg2xaml.inx.h:4 ../share/extensions/xaml2svg.inx.h:3 -msgid "Microsoft's GUI definition format" -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.inx.h:1 -msgid "Compressed Inkscape SVG with media export" -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.inx.h:2 -msgid "Image zip directory:" -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.inx.h:3 -msgid "Add font list" -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.inx.h:4 -msgid "Compressed Inkscape SVG with media (*.zip)" -msgstr "" - -#: ../share/extensions/svg_and_media_zip_output.inx.h:5 -msgid "" -"Inkscape's native file format compressed with Zip and including all media " -"files" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:1 -msgid "Calendar" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:3 -msgid "Year (4 digits):" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:4 -msgid "Month (0 for all):" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:5 -msgid "Fill empty day boxes with next month's days" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:6 -msgid "Show week number" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:7 -msgid "Week start day:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:8 -msgid "Weekend:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:9 -msgid "Sunday" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:10 -msgid "Monday" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:11 -msgid "Saturday and Sunday" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:12 -msgid "Saturday" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:14 -msgid "Automatically set size and position" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:15 -msgid "Months per line:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:16 -msgid "Month Width:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:17 -msgid "Month Margin:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:18 -msgid "The options below have no influence when the above is checked." -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:20 -msgid "Year color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:21 -msgid "Month color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:22 -msgid "Weekday name color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:23 -msgid "Day color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:24 -msgid "Weekend day color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:25 -msgid "Next month day color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:26 -msgid "Week number color:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:27 -msgid "Localization" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:28 -msgid "Month names:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:29 -msgid "Day names:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:30 -msgid "Week number column name:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:31 -msgid "Char Encoding:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:32 -msgid "You may change the names for other languages:" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:33 -msgid "" -"January February March April May June July August September October November " -"December" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:34 -msgid "Sun Mon Tue Wed Thu Fri Sat" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:35 -msgid "The day names list must start from Sunday." -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:36 -msgid "Wk" -msgstr "" - -#: ../share/extensions/svgcalendar.inx.h:37 -msgid "" -"Select your system encoding. More information at http://docs.python.org/" -"library/codecs.html#standard-encodings." -msgstr "" - -#: ../share/extensions/svgfont2layers.inx.h:1 -msgid "Convert SVG Font to Glyph Layers" -msgstr "" - -#: ../share/extensions/svgfont2layers.inx.h:2 -msgid "Load only the first 30 glyphs (Recommended)" -msgstr "" - -#: ../share/extensions/synfig_output.inx.h:1 -msgid "Synfig Output" -msgstr "" - -#: ../share/extensions/synfig_output.inx.h:2 -msgid "Synfig Animation (*.sif)" -msgstr "" - -#: ../share/extensions/synfig_output.inx.h:3 -msgid "Synfig Animation written using the sif-file exporter extension" -msgstr "" - -#: ../share/extensions/tar_layers.inx.h:1 -msgid "Collection of SVG files One per root layer" -msgstr "" - -#: ../share/extensions/tar_layers.inx.h:2 -msgid "Layers as Separate SVG (*.tar)" -msgstr "" - -#: ../share/extensions/tar_layers.inx.h:3 -msgid "" -"Each layer split into it's own svg file and collected as a tape archive (tar " -"file)" -msgstr "" - -#: ../share/extensions/text_braille.inx.h:1 -msgid "Convert to Braille" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:1 -msgid "Extract" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:2 -#: ../share/extensions/text_merge.inx.h:2 -msgid "Text direction:" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:3 -#: ../share/extensions/text_merge.inx.h:3 -msgid "Left to right" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:4 -#: ../share/extensions/text_merge.inx.h:4 -msgid "Bottom to top" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:5 -#: ../share/extensions/text_merge.inx.h:5 -msgid "Right to left" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:6 -#: ../share/extensions/text_merge.inx.h:6 -msgid "Top to bottom" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:7 -#: ../share/extensions/text_merge.inx.h:7 -msgid "Horizontal point:" -msgstr "" - -#: ../share/extensions/text_extract.inx.h:11 -#: ../share/extensions/text_merge.inx.h:11 -msgid "Vertical point:" -msgstr "" - -#: ../share/extensions/text_flipcase.inx.h:1 -msgid "fLIP cASE" -msgstr "" - -#: ../share/extensions/text_flipcase.inx.h:3 -#: ../share/extensions/text_lowercase.inx.h:3 -#: ../share/extensions/text_randomcase.inx.h:3 -#: ../share/extensions/text_sentencecase.inx.h:3 -#: ../share/extensions/text_titlecase.inx.h:3 -#: ../share/extensions/text_uppercase.inx.h:3 -msgid "Change Case" -msgstr "" - -#: ../share/extensions/text_lowercase.inx.h:1 -msgid "lowercase" -msgstr "" - -#. false -#: ../share/extensions/text_merge.inx.h:15 -msgid "Keep style" -msgstr "" - -#: ../share/extensions/text_randomcase.inx.h:1 -msgid "rANdOm CasE" -msgstr "" - -#: ../share/extensions/text_sentencecase.inx.h:1 -msgid "Sentence case" -msgstr "" - -#: ../share/extensions/text_titlecase.inx.h:1 -msgid "Title Case" -msgstr "" - -#: ../share/extensions/text_uppercase.inx.h:1 -msgid "UPPERCASE" -msgstr "" - -#: ../share/extensions/triangle.inx.h:1 -msgid "Triangle" -msgstr "" - -#: ../share/extensions/triangle.inx.h:2 -msgid "Side Length a (px):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:3 -msgid "Side Length b (px):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:4 -msgid "Side Length c (px):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:5 -msgid "Angle a (deg):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:6 -msgid "Angle b (deg):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:7 -msgid "Angle c (deg):" -msgstr "" - -#: ../share/extensions/triangle.inx.h:9 -msgid "From Three Sides" -msgstr "" - -#: ../share/extensions/triangle.inx.h:10 -msgid "From Sides a, b and Angle c" -msgstr "" - -#: ../share/extensions/triangle.inx.h:11 -msgid "From Sides a, b and Angle a" -msgstr "" - -#: ../share/extensions/triangle.inx.h:12 -msgid "From Side a and Angles a, b" -msgstr "" - -#: ../share/extensions/triangle.inx.h:13 -msgid "From Side c and Angles a, b" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:1 -msgid "Voronoi Diagram" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:3 -msgid "Type of diagram:" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:4 -msgid "Bounding box of the diagram:" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:5 -msgid "Show the bounding box" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:6 -msgid "Delaunay Triangulation" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:7 -msgid "Voronoi and Delaunay" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:8 -msgid "Options for Voronoi diagram" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:10 -msgid "Automatic from selected objects" -msgstr "" - -#: ../share/extensions/voronoi2svg.inx.h:12 -msgid "" -"Select a set of objects. Their centroids will be used as the sites of the " -"Voronoi diagram. Text objects are not handled." -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:1 -msgid "Set Attributes" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:3 -msgid "Attribute to set:" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:4 -msgid "When should the set be done:" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:5 -msgid "Value to set:" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:6 -#: ../share/extensions/web-transmit-att.inx.h:5 -msgid "Compatibility with previews code to this event:" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:7 -msgid "Source and destination of setting:" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:8 -#: ../share/extensions/web-transmit-att.inx.h:7 -msgid "on click" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:9 -#: ../share/extensions/web-transmit-att.inx.h:8 -msgid "on focus" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:10 -#: ../share/extensions/web-transmit-att.inx.h:9 -msgid "on blur" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:11 -#: ../share/extensions/web-transmit-att.inx.h:10 -msgid "on activate" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:12 -#: ../share/extensions/web-transmit-att.inx.h:11 -msgid "on mouse down" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:13 -#: ../share/extensions/web-transmit-att.inx.h:12 -msgid "on mouse up" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:14 -#: ../share/extensions/web-transmit-att.inx.h:13 -msgid "on mouse over" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:15 -#: ../share/extensions/web-transmit-att.inx.h:14 -msgid "on mouse move" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:16 -#: ../share/extensions/web-transmit-att.inx.h:15 -msgid "on mouse out" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:17 -#: ../share/extensions/web-transmit-att.inx.h:16 -msgid "on element loaded" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:18 -msgid "The list of values must have the same size as the attributes list." -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:19 -#: ../share/extensions/web-transmit-att.inx.h:17 -msgid "Run it after" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:20 -#: ../share/extensions/web-transmit-att.inx.h:18 -msgid "Run it before" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:22 -#: ../share/extensions/web-transmit-att.inx.h:20 -msgid "The next parameter is useful when you select more than two elements" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:23 -msgid "All selected ones set an attribute in the last one" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:24 -msgid "The first selected sets an attribute in all others" -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:26 -#: ../share/extensions/web-transmit-att.inx.h:24 -msgid "" -"This effect adds a feature visible (or usable) only on a SVG enabled web " -"browser (like Firefox)." -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:27 -msgid "" -"This effect sets one or more attributes in the second selected element, when " -"a defined event occurs on the first selected element." -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:28 -msgid "" -"If you want to set more than one attribute, you must separate this with a " -"space, and only with a space." -msgstr "" - -#: ../share/extensions/web-set-att.inx.h:29 -#: ../share/extensions/web-transmit-att.inx.h:27 -#: ../share/extensions/webslicer_create_group.inx.h:13 -#: ../share/extensions/webslicer_create_rect.inx.h:41 -#: ../share/extensions/webslicer_export.inx.h:8 -msgid "Web" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:1 -msgid "Transmit Attributes" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:3 -msgid "Attribute to transmit:" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:4 -msgid "When to transmit:" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:6 -msgid "Source and destination of transmitting:" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:21 -msgid "All selected ones transmit to the last one" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:22 -msgid "The first selected transmits to all others" -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:25 -msgid "" -"This effect transmits one or more attributes from the first selected element " -"to the second when an event occurs." -msgstr "" - -#: ../share/extensions/web-transmit-att.inx.h:26 -msgid "" -"If you want to transmit more than one attribute, you should separate this " -"with a space, and only with a space." -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:1 -msgid "Set a layout group" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:3 -#: ../share/extensions/webslicer_create_rect.inx.h:18 -msgid "HTML id attribute:" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:4 -#: ../share/extensions/webslicer_create_rect.inx.h:19 -msgid "HTML class attribute:" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:5 -msgid "Width unit:" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:6 -msgid "Height unit:" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:7 -#: ../share/extensions/webslicer_create_rect.inx.h:9 -msgid "Background color:" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:8 -msgid "Pixel (fixed)" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:9 -msgid "Percent (relative to parent size)" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:10 -msgid "Undefined (relative to non-floating content size)" -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:12 -msgid "" -"Layout Group is only about to help a better code generation (if you need " -"it). To use this, you must to select some \"Slicer rectangles\" first." -msgstr "" - -#: ../share/extensions/webslicer_create_group.inx.h:14 -msgid "Slicer" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:1 -msgid "Create a slicer rectangle" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:4 -msgid "DPI:" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:5 -msgid "Force Dimension:" -msgstr "" - -#. i18n. Description duplicated in a fake value attribute in order to make it translatable -#: ../share/extensions/webslicer_create_rect.inx.h:7 -msgid "Force Dimension must be set as x" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:8 -msgid "If set, this will replace DPI." -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:10 -msgid "JPG specific options" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:11 -msgid "Quality:" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:12 -msgid "" -"0 is the lowest image quality and highest compression, and 100 is the best " -"quality but least effective compression" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:13 -msgid "GIF specific options" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:16 -msgid "Palette" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:17 -msgid "Palette size:" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:20 -msgid "Options for HTML export" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:21 -msgid "Layout disposition:" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:22 -msgid "Positioned html block element with the image as Background" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:23 -msgid "Tiled Background (on parent group)" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:24 -msgid "Background — repeat horizontally (on parent group)" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:25 -msgid "Background — repeat vertically (on parent group)" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:26 -msgid "Background — no repeat (on parent group)" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:27 -msgid "Positioned Image" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:28 -msgid "Non Positioned Image" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:29 -msgid "Left Floated Image" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:30 -msgid "Right Floated Image" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:31 -msgid "Position anchor:" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:32 -msgid "Top and Left" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:33 -msgid "Top and Center" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:34 -msgid "Top and right" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:35 -msgid "Middle and Left" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:36 -msgid "Middle and Center" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:37 -msgid "Middle and Right" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:38 -msgid "Bottom and Left" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:39 -msgid "Bottom and Center" -msgstr "" - -#: ../share/extensions/webslicer_create_rect.inx.h:40 -msgid "Bottom and Right" -msgstr "" - -#: ../share/extensions/webslicer_export.inx.h:1 -msgid "Export layout pieces and HTML+CSS code" -msgstr "" - -#: ../share/extensions/webslicer_export.inx.h:3 -msgid "Directory path to export:" -msgstr "" - -#: ../share/extensions/webslicer_export.inx.h:4 -msgid "Create directory, if it does not exists" -msgstr "" - -#: ../share/extensions/webslicer_export.inx.h:5 -msgid "With HTML and CSS" -msgstr "" - -#: ../share/extensions/webslicer_export.inx.h:7 -msgid "" -"All sliced images, and optionally - code, will be generated as you had " -"configured and saved to one directory." -msgstr "" - -#: ../share/extensions/whirl.inx.h:1 -msgid "Whirl" -msgstr "" - -#: ../share/extensions/whirl.inx.h:2 -msgid "Amount of whirl:" -msgstr "" - -#: ../share/extensions/whirl.inx.h:3 -msgid "Rotation is clockwise" -msgstr "" - -#: ../share/extensions/wireframe_sphere.inx.h:1 -msgid "Wireframe Sphere" -msgstr "" - -#: ../share/extensions/wireframe_sphere.inx.h:2 -msgid "Lines of latitude:" -msgstr "" - -#: ../share/extensions/wireframe_sphere.inx.h:3 -msgid "Lines of longitude:" -msgstr "" - -#: ../share/extensions/wireframe_sphere.inx.h:4 -msgid "Tilt (deg):" -msgstr "" - -#: ../share/extensions/wireframe_sphere.inx.h:7 -msgid "Hide lines behind the sphere" -msgstr "" - -#: ../share/extensions/wmf_input.inx.h:1 -#: ../share/extensions/wmf_output.inx.h:1 -msgid "Windows Metafile Input" -msgstr "" - -#: ../share/extensions/wmf_input.inx.h:3 -#: ../share/extensions/wmf_output.inx.h:3 -msgid "A popular graphics file format for clipart" -msgstr "" - -#: ../share/extensions/xaml2svg.inx.h:1 -msgid "XAML Input" -msgstr "" diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index c213e76e4..9f27ca22e 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -462,13 +462,13 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to duplicate.")); return; } - SelContainer reprs(selection->reprList()); + std::vector reprs(selection->reprList()); selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing // them, just what we need - reprs.sort(sp_repr_compare_position_obj); + sort(reprs.begin(),reprs.end(),sp_repr_compare_position); SelContainer newsel; @@ -478,8 +478,8 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) bool relink_clones = prefs->getBool("/options/relinkclonesonduplicate/value"); const bool fork_livepatheffects = prefs->getBool("/options/forklpeonduplicate/value", true); - while (!reprs.empty()) { - Inkscape::XML::Node *old_repr = dynamic_cast(reprs.front()); + for(std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ + Inkscape::XML::Node *old_repr = (*i); Inkscape::XML::Node *parent = old_repr->parent(); Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); @@ -501,7 +501,6 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) } newsel.push_front(dynamic_cast(copy)); - reprs.pop_front(); Inkscape::GC::release(copy); } @@ -692,16 +691,16 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop) sp_edit_select_all_full(desktop, true, true); } -static void sp_selection_group_impl(SelContainer p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { +static void sp_selection_group_impl(std::vector p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { - p.sort(sp_repr_compare_position_obj); + sort(p.begin(),p.end(),sp_repr_compare_position); // Remember the position and parent of the topmost object. gint topmost = (dynamic_cast(p.back()))->position(); Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); - while (!p.empty()) { - Inkscape::XML::Node *current = dynamic_cast(p.front()); + for(std::vector::const_iterator i=p.begin();i!=p.end();i++){ + Inkscape::XML::Node *current = (*i); if (current->parent() == topmost_parent) { Inkscape::XML::Node *spnew = current->duplicate(xml_doc); @@ -745,7 +744,6 @@ static void sp_selection_group_impl(SelContainer p, Inkscape::XML::Node *group, copied.clear(); } } - p.pop_front(); } // Add the new group to the topmost members' parent @@ -766,7 +764,7 @@ void sp_selection_group(Inkscape::Selection *selection, SPDesktop *desktop) return; } - SelContainer p (selection->reprList()); + std::vector p (selection->reprList()); selection->clear(); @@ -1027,16 +1025,14 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - SelContainer rl(selection->reprList()); - rl.sort(sp_repr_compare_position_obj); + std::vector rl(selection->reprList()); + sort(rl.begin(),rl.end(),sp_repr_compare_position); - for (SelContainer::iterator l=rl.begin(); l!=rl.end();l++) { - Inkscape::XML::Node *repr = dynamic_cast(*l); + for (std::vector::const_iterator l=rl.begin(); l!=rl.end();l++) { + Inkscape::XML::Node *repr =(*l); repr->setPosition(-1); } - rl.clear(); - DocumentUndo::done(document, SP_VERB_SELECTION_TO_FRONT, _("Raise to top")); } @@ -1117,14 +1113,13 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - SelContainer rl(selection->reprList()); - rl.sort(sp_repr_compare_position_obj); - rl.reverse(); + std::vector rl(selection->reprList()); + sort(rl.begin(),rl.end(),sp_repr_compare_position); - for (SelContainer::const_iterator l=rl.begin();l!=rl.end();l++) { + for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();l++) { gint minpos; SPObject *pp, *pc; - Inkscape::XML::Node *repr = dynamic_cast(*l); + Inkscape::XML::Node *repr = (*l); pp = document->getObjectByRepr(repr->parent()); minpos = 0; g_assert(dynamic_cast(pp)); @@ -1136,8 +1131,6 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des repr->setPosition(minpos); } - rl.clear(); - DocumentUndo::done(document, SP_VERB_SELECTION_TO_BACK, _("Lower to bottom")); } @@ -1691,9 +1684,9 @@ void sp_selection_remove_transform(SPDesktop *desktop) Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items = selection->itemList(); - for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { - ((Inkscape::XML::Node*)*l)->setAttribute("transform", NULL, false); + std::vector items = selection->reprList(); + for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { + (*l)->setAttribute("transform", NULL, false); } DocumentUndo::done(desktop->getDocument(), SP_VERB_OBJECT_FLATTEN, @@ -2590,17 +2583,17 @@ void sp_selection_clone(SPDesktop *desktop) return; } - SelContainer reprs (selection->reprList()); + std::vector reprs (selection->reprList()); selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing them, just what we need - reprs.sort(sp_repr_compare_position_obj); + sort(reprs.begin(),reprs.end(),sp_repr_compare_position); SelContainer newsel; - while (!reprs.empty()) { - Inkscape::XML::Node *sel_repr = dynamic_cast(reprs.front()); + for(std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ + Inkscape::XML::Node *sel_repr = *i; Inkscape::XML::Node *parent = sel_repr->parent(); Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); @@ -2617,7 +2610,6 @@ void sp_selection_clone(SPDesktop *desktop) parent->appendChild(clone); newsel.push_front(dynamic_cast(clone)); - reprs.pop_front(); Inkscape::GC::release(clone); } @@ -3462,14 +3454,14 @@ void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring return; } - SelContainer const reprlst = selection->reprList(); + std::vector const reprlst = selection->reprList(); bool filename_search = TRUE; bool xdpi_search = TRUE; bool ydpi_search = TRUE; - for (SelContainer::const_iterator i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();i++){ + for (std::vector::const_iterator i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();i++){ gchar const *dpi_string; - Inkscape::XML::Node * repr = dynamic_cast(*i); + Inkscape::XML::Node * repr = (*i); if (filename_search) { const gchar* tmp = repr->attribute("inkscape:export-filename"); @@ -3756,22 +3748,20 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) return; } - SelContainer l=selection->reprList(); - - SelContainer p(l); + std::vector p(selection->reprList()); - p.sort(sp_repr_compare_position_obj); + sort(p.begin(),p.end(),sp_repr_compare_position); selection->clear(); - gint topmost = (dynamic_cast(p.back()))->position(); - Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); + int topmost = (p.back())->position(); + Inkscape::XML::Node *topmost_parent = (p.back())->parent(); Inkscape::XML::Node *inner = xml_doc->createElement("svg:g"); inner->setAttribute("inkscape:label", "Clip"); - while (!p.empty()) { - Inkscape::XML::Node *current = dynamic_cast(p.front()); + for(std::vector::const_iterator i=p.begin();i!=p.end();i++){ + Inkscape::XML::Node *current = *i; if (current->parent() == topmost_parent) { Inkscape::XML::Node *spnew = current->duplicate(xml_doc); @@ -3813,7 +3803,6 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) Inkscape::GC::release(spnew); } } - p.pop_front(); } Inkscape::XML::Node *outer = xml_doc->createElement("svg:g"); @@ -3960,13 +3949,12 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // make a note we should ungroup this when unsetting mask group->setAttribute("inkscape:groupmode", "maskhelper"); - SelContainer reprs_to_group; + std::vector reprs_to_group; for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { - reprs_to_group.push_front(dynamic_cast(SP_OBJECT(i->data)->getRepr())); + reprs_to_group.push_back(static_cast(i->data)->getRepr()); items_to_select.remove(static_cast(i->data)); } - reprs_to_group.reverse(); sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); diff --git a/src/selection.cpp b/src/selection.cpp index b509f4272..cbde9a799 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -43,7 +43,7 @@ namespace Inkscape { Selection::Selection(LayerModel *layers, SPDesktop *desktop) : _objs(SelContainer()), - _reprs(SelContainer()), + _reprs(std::vector()), _items(SelContainer()), _layers(layers), _desktop(desktop), @@ -296,15 +296,13 @@ SelContainer const &Selection::itemList() { return _items; } -SelContainer const &Selection::reprList() { +std::vector const &Selection::reprList() { if (!_reprs.empty()) { return _reprs; } SelContainer list = itemList(); for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { SPObject *obj=reinterpret_cast(*iter); - _reprs.push_front(dynamic_cast(obj->getRepr())); + _reprs.push_back(obj->getRepr()); } - _reprs.reverse(); - return _reprs; } @@ -343,7 +341,7 @@ SPObject *Selection::single() { SPItem *Selection::singleItem() { SelContainer const items=itemList(); - if ( !items.size()==1) { + if ( items.size()==1) { return reinterpret_cast(items.front()); } else { return NULL; diff --git a/src/selection.h b/src/selection.h index 7171b8742..f85c6346b 100644 --- a/src/selection.h +++ b/src/selection.h @@ -260,7 +260,7 @@ public: /** Returns a list of the xml nodes of all selected objects. */ /// \todo only returns reprs of SPItems currently; need a separate /// method for that - std::list const &reprList(); + std::vector const &reprList(); /** Returns a list of all perspectives which have a 3D box in the current selection. (these may also be nested in groups) */ @@ -377,7 +377,7 @@ private: void _releaseContext(SPObject *obj); mutable std::list _objs; - mutable std::list _reprs; + mutable std::vector _reprs; mutable std::list _items; void add_box_perspective(SPBox3D *box); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index aec7051e0..107dfc629 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -691,11 +691,11 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool } } else { // find out the bottom object - SelContainer sorted(selection->reprList()); + std::vector sorted(selection->reprList()); - sorted.sort(sp_repr_compare_position_obj); + sort(sorted.begin(),sorted.end(),sp_repr_compare_position); - source = doc->getObjectByRepr((Inkscape::XML::Node *)sorted.front()); + source = doc->getObjectByRepr(sorted.front()); } // adjust style properties that depend on a possible transform in the source object in order diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index fc6094c9f..0667ba721 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -817,9 +817,9 @@ void Export::onAreaToggled () one that's nice */ if (filename.empty()) { const gchar * id = "object"; - const SelContainer reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); - for(SelContainer::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { - Inkscape::XML::Node * repr = (Inkscape::XML::Node *)(*i); + const std::vector reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); + for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { + Inkscape::XML::Node * repr = (*i); if (repr->attribute("id")) { id = repr->attribute("id"); break; @@ -1226,7 +1226,7 @@ void Export::onExport () break; } case SELECTION_SELECTION: { - SelContainer reprlst; + std::vector reprlst; SPDocument * doc = SP_ACTIVE_DOCUMENT; bool modified = false; @@ -1234,8 +1234,8 @@ void Export::onExport () DocumentUndo::setUndoSensitive(doc, false); reprlst = desktop->getSelection()->reprList(); - for(SelContainer::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { - Inkscape::XML::Node * repr = dynamic_cast(*i); + for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { + Inkscape::XML::Node * repr = *i; const gchar * temp_string; Glib::ustring dir = Glib::path_get_dirname(filename.c_str()); const gchar* docURI=SP_ACTIVE_DOCUMENT->getURI(); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 657d6771b..f67c1d173 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -690,7 +690,7 @@ private: void select_svg_element(){ Inkscape::Selection* sel = _desktop->getSelection(); if (sel->isEmpty()) return; - Inkscape::XML::Node* node = (Inkscape::XML::Node*) sel->reprList().front(); + Inkscape::XML::Node* node = sel->reprList().front(); if (!node || !node->matchAttributeName("id")) return; std::ostringstream xlikhref; diff --git a/src/ui/dialog/svg-fonts-dialog.cpp b/src/ui/dialog/svg-fonts-dialog.cpp index 8f5601e3a..12b423602 100644 --- a/src/ui/dialog/svg-fonts-dialog.cpp +++ b/src/ui/dialog/svg-fonts-dialog.cpp @@ -524,7 +524,7 @@ void SvgFontsDialog::set_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = (Inkscape::XML::Node*)(sel->reprList().front()); + Inkscape::XML::Node* node = sel->reprList().front(); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); @@ -566,7 +566,7 @@ void SvgFontsDialog::missing_glyph_description_from_selected_path(){ return; } - Inkscape::XML::Node* node = (Inkscape::XML::Node*)(sel->reprList().front()); + Inkscape::XML::Node* node = sel->reprList().front(); if (!node) return;//TODO: should this be an assert? if (!node->matchAttributeName("d") || !node->attribute("d")){ char *msg = _("The selected object does not have a path description."); -- cgit v1.2.3 From 5fd00cab14d48beaf2279a2b8f3ad5b02b76c87b Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 19 Feb 2015 04:25:21 +0100 Subject: Put a few std::vector (bzr r13922.1.5) --- src/conn-avoid-ref.cpp | 4 +- src/desktop-style.cpp | 66 ++--- src/desktop-style.h | 24 +- src/desktop.cpp | 2 +- src/desktop.h | 2 +- src/document.cpp | 20 +- src/document.h | 8 +- src/extension/execution-env.cpp | 4 +- src/extension/implementation/implementation.cpp | 2 +- src/extension/implementation/script.cpp | 4 +- src/extension/internal/bitmap/imagemagick.cpp | 6 +- src/extension/internal/bluredge.cpp | 4 +- src/extension/internal/filter/filter.cpp | 4 +- src/extension/internal/grid.cpp | 2 +- src/file.cpp | 4 +- src/gradient-chemistry.cpp | 8 +- src/gradient-drag.cpp | 12 +- src/graphlayout.cpp | 6 +- src/graphlayout.h | 4 +- src/helper/png-write.cpp | 6 +- src/helper/png-write.h | 4 +- src/live_effects/lpe-knot.cpp | 4 +- src/main.cpp | 12 +- src/object-snapper.cpp | 4 +- src/path-chemistry.cpp | 73 ++--- src/path-chemistry.h | 2 +- src/removeoverlap.cpp | 6 +- src/removeoverlap.h | 2 +- src/selcue.cpp | 14 +- src/selection-chemistry.cpp | 373 ++++++++++++------------ src/selection-chemistry.h | 10 +- src/selection-describer.cpp | 14 +- src/selection.cpp | 56 ++-- src/selection.h | 10 +- src/seltrans.cpp | 26 +- src/seltrans.h | 2 +- src/snap.cpp | 6 +- src/snap.h | 6 +- src/sp-conn-end.cpp | 4 +- src/sp-item-group.cpp | 19 +- src/sp-item-group.h | 4 +- src/sp-lpe-item.cpp | 20 +- src/sp-marker.cpp | 6 +- src/sp-marker.h | 2 +- src/sp-pattern.cpp | 4 +- src/sp-pattern.h | 2 +- src/splivarot.cpp | 30 +- src/text-chemistry.cpp | 40 +-- src/text-editing.cpp | 4 +- src/trace/trace.cpp | 4 +- src/ui/clipboard.cpp | 20 +- src/ui/dialog/align-and-distribute.cpp | 32 +- src/ui/dialog/clonetiler.cpp | 7 +- src/ui/dialog/export.cpp | 8 +- src/ui/dialog/filter-effects-dialog.cpp | 14 +- src/ui/dialog/find.cpp | 54 ++-- src/ui/dialog/find.h | 10 +- src/ui/dialog/font-substitution.cpp | 18 +- src/ui/dialog/font-substitution.h | 4 +- src/ui/dialog/glyphs.cpp | 8 +- src/ui/dialog/grid-arrange-tab.cpp | 21 +- src/ui/dialog/icon-preview.cpp | 4 +- src/ui/dialog/objects.cpp | 4 +- src/ui/dialog/pixelartdialog.cpp | 4 +- src/ui/dialog/polar-arrange-tab.cpp | 6 +- src/ui/dialog/print.cpp | 2 +- src/ui/dialog/swatches.cpp | 2 +- src/ui/dialog/tags.cpp | 4 +- src/ui/dialog/text-edit.cpp | 12 +- src/ui/dialog/transformation.cpp | 22 +- src/ui/interface.cpp | 8 +- src/ui/tools/connector-tool.cpp | 4 +- src/ui/tools/eraser-tool.cpp | 18 +- src/ui/tools/gradient-tool.cpp | 12 +- src/ui/tools/lpe-tool.cpp | 4 +- src/ui/tools/measure-tool.cpp | 4 +- src/ui/tools/mesh-tool.cpp | 12 +- src/ui/tools/node-tool.cpp | 6 +- src/ui/tools/select-tool.cpp | 2 +- src/ui/tools/spray-tool.cpp | 14 +- src/ui/tools/text-tool.cpp | 4 +- src/ui/tools/tool-base.cpp | 4 +- src/ui/tools/tweak-tool.cpp | 12 +- src/ui/widget/object-composite-settings.cpp | 4 +- src/ui/widget/style-subject.cpp | 4 +- src/unclump.cpp | 36 +-- src/unclump.h | 2 +- src/vanishing-point.cpp | 18 +- src/widgets/arc-toolbar.cpp | 16 +- src/widgets/connector-toolbar.cpp | 8 +- src/widgets/fill-style.cpp | 8 +- src/widgets/gradient-toolbar.cpp | 12 +- src/widgets/mesh-toolbar.cpp | 8 +- src/widgets/rect-toolbar.cpp | 8 +- src/widgets/spiral-toolbar.cpp | 8 +- src/widgets/star-toolbar.cpp | 24 +- src/widgets/stroke-style.cpp | 14 +- src/widgets/stroke-style.h | 2 +- src/widgets/text-toolbar.cpp | 22 +- 99 files changed, 744 insertions(+), 765 deletions(-) diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index f2cde352c..fb9fbd935 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -252,8 +252,8 @@ static std::vector approxItemWithPoints(SPItem const *item, const G { SPGroup* group = SP_GROUP(item); // consider all first-order children - SelContainer itemlist = sp_item_group_item_list(group); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist = sp_item_group_item_list(group); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem* child_item = SP_ITEM(*i); std::vector child_points = approxItemWithPoints(child_item, item_transform * child_item->transform); poly_points.insert(poly_points.end(), child_points.begin(), child_points.end()); diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 39dfad44b..0c661ebfb 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -194,8 +194,8 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_write, css); sp_css_attr_unset_uris(css_write); prefs->mergeStyle("/desktop/style", css_write); - SelContainer const itemlist = desktop->selection->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector const itemlist = desktop->selection->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { /* last used styles for 3D box faces are stored separately */ SPObject *obj = reinterpret_cast(*i); // TODO unsafe until Selection is refactored. Box3DSide *side = dynamic_cast(obj); @@ -234,8 +234,8 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_repr_css_merge(css_no_text, css); css_no_text = sp_css_attr_unset_text(css_no_text); - SelContainer const itemlist = desktop->selection->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector const itemlist = desktop->selection->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem *item = reinterpret_cast(*i); // If not text, don't apply text attributes (can a group have text attributes? Yes! FIXME) @@ -439,7 +439,7 @@ sp_desktop_get_font_size_tool(SPDesktop *desktop) /** Determine average stroke width, simple method */ // see TODO in dialogs/stroke-style.cpp on how to get rid of this eventually gdouble -stroke_average_width (const SelContainer &objects) +stroke_average_width (const std::vector &objects) { if (objects.empty()) return Geom::infinity(); @@ -447,7 +447,7 @@ stroke_average_width (const SelContainer &objects) gdouble avgwidth = 0.0; bool notstroked = true; int n_notstroked = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); SPItem *item = dynamic_cast(obj); if (!item) { @@ -492,7 +492,7 @@ static bool vectorsClose( std::vector const &lhs, std::vector co * Write to style_res the average fill or stroke of list of objects, if applicable. */ int -objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool const isfill) +objects_query_fillstroke (const std::vector &objects, SPStyle *style_res, bool const isfill) { if (objects.empty()) { /* No objects, set empty */ @@ -514,7 +514,7 @@ objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool prev[0] = prev[1] = prev[2] = 0.0; bool same_color = true; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -685,7 +685,7 @@ objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool * Write to style_res the average opacity of a list of objects. */ int -objects_query_opacity (const SelContainer &objects, SPStyle *style_res) +objects_query_opacity (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -698,7 +698,7 @@ objects_query_opacity (const SelContainer &objects, SPStyle *style_res) guint opacity_items = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -739,7 +739,7 @@ objects_query_opacity (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average stroke width of a list of objects. */ int -objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res) +objects_query_strokewidth (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -754,7 +754,7 @@ objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res) int n_stroked = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -815,7 +815,7 @@ objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average miter limit of a list of objects. */ int -objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res) +objects_query_miterlimit (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -828,7 +828,7 @@ objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res) gdouble prev_ml = -1; bool same_ml = true; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -875,7 +875,7 @@ objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res) * Write to style_res the stroke cap of a list of objects. */ int -objects_query_strokecap (const SelContainer &objects, SPStyle *style_res) +objects_query_strokecap (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -887,7 +887,7 @@ objects_query_strokecap (const SelContainer &objects, SPStyle *style_res) bool same_cap = true; int n_stroked = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -929,7 +929,7 @@ objects_query_strokecap (const SelContainer &objects, SPStyle *style_res) * Write to style_res the stroke join of a list of objects. */ int -objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res) +objects_query_strokejoin (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -941,7 +941,7 @@ objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res) bool same_join = true; int n_stroked = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -984,7 +984,7 @@ objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average font size and spacing of objects. */ int -objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res) +objects_query_fontnumbers (const std::vector &objects, SPStyle *style_res) { bool different = false; @@ -1004,7 +1004,7 @@ objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res) int texts = 0; int no_size = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1116,14 +1116,14 @@ objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average font style of objects. */ int -objects_query_fontstyle (const SelContainer &objects, SPStyle *style_res) +objects_query_fontstyle (const std::vector &objects, SPStyle *style_res) { bool different = false; bool set = false; int texts = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1173,7 +1173,7 @@ objects_query_fontstyle (const SelContainer &objects, SPStyle *style_res) * Write to style_res the baseline numbers. */ static int -objects_query_baselines (const SelContainer &objects, SPStyle *style_res) +objects_query_baselines (const std::vector &objects, SPStyle *style_res) { bool different = false; @@ -1192,7 +1192,7 @@ objects_query_baselines (const SelContainer &objects, SPStyle *style_res) int texts = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1269,7 +1269,7 @@ objects_query_baselines (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average font family of objects. */ int -objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res) +objects_query_fontfamily (const std::vector &objects, SPStyle *style_res) { bool different = false; int texts = 0; @@ -1280,7 +1280,7 @@ objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res) } style_res->font_family.set = FALSE; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; @@ -1325,7 +1325,7 @@ objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res) } static int -objects_query_fontspecification (const SelContainer &objects, SPStyle *style_res) +objects_query_fontspecification (const std::vector &objects, SPStyle *style_res) { bool different = false; int texts = 0; @@ -1336,7 +1336,7 @@ objects_query_fontspecification (const SelContainer &objects, SPStyle *style_res } style_res->font_specification.set = FALSE; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; @@ -1385,7 +1385,7 @@ objects_query_fontspecification (const SelContainer &objects, SPStyle *style_res } static int -objects_query_blend (const SelContainer &objects, SPStyle *style_res) +objects_query_blend (const std::vector &objects, SPStyle *style_res) { const int empty_prev = -2; const int complex_filter = 5; @@ -1394,7 +1394,7 @@ objects_query_blend (const SelContainer &objects, SPStyle *style_res) bool same_blend = true; guint items = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -1471,7 +1471,7 @@ objects_query_blend (const SelContainer &objects, SPStyle *style_res) * Write to style_res the average blurring of a list of objects. */ int -objects_query_blur (const SelContainer &objects, SPStyle *style_res) +objects_query_blur (const std::vector &objects, SPStyle *style_res) { if (objects.empty()) { /* No objects, set empty */ @@ -1484,7 +1484,7 @@ objects_query_blur (const SelContainer &objects, SPStyle *style_res) guint blur_items = 0; guint items = 0; - for (SelContainer::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -1553,7 +1553,7 @@ objects_query_blur (const SelContainer &objects, SPStyle *style_res) * the result to style, return appropriate flag. */ int -sp_desktop_query_style_from_list (const SelContainer &list, SPStyle *style, int property) +sp_desktop_query_style_from_list (const std::vector &list, SPStyle *style, int property) { if (property == QUERY_STYLE_PROPERTY_FILL) { return objects_query_fillstroke (list, style, true); diff --git a/src/desktop-style.h b/src/desktop-style.h index 0e40a2652..7ca25b9ae 100644 --- a/src/desktop-style.h +++ b/src/desktop-style.h @@ -65,21 +65,21 @@ guint32 sp_desktop_get_color_tool(SPDesktop *desktop, Glib::ustring const &tool, double sp_desktop_get_font_size_tool (SPDesktop *desktop); void sp_desktop_apply_style_tool(SPDesktop *desktop, Inkscape::XML::Node *repr, Glib::ustring const &tool, bool with_text); -gdouble stroke_average_width (const SelContainer &objects); +gdouble stroke_average_width (const std::vector &objects); -int objects_query_fillstroke (const SelContainer &objects, SPStyle *style_res, bool const isfill); -int objects_query_fontnumbers (const SelContainer &objects, SPStyle *style_res); -int objects_query_fontstyle (const SelContainer &objects, SPStyle *style_res); -int objects_query_fontfamily (const SelContainer &objects, SPStyle *style_res); -int objects_query_opacity (const SelContainer &objects, SPStyle *style_res); -int objects_query_strokewidth (const SelContainer &objects, SPStyle *style_res); -int objects_query_miterlimit (const SelContainer &objects, SPStyle *style_res); -int objects_query_strokecap (const SelContainer &objects, SPStyle *style_res); -int objects_query_strokejoin (const SelContainer &objects, SPStyle *style_res); +int objects_query_fillstroke (const std::vector &objects, SPStyle *style_res, bool const isfill); +int objects_query_fontnumbers (const std::vector &objects, SPStyle *style_res); +int objects_query_fontstyle (const std::vector &objects, SPStyle *style_res); +int objects_query_fontfamily (const std::vector &objects, SPStyle *style_res); +int objects_query_opacity (const std::vector &objects, SPStyle *style_res); +int objects_query_strokewidth (const std::vector &objects, SPStyle *style_res); +int objects_query_miterlimit (const std::vector &objects, SPStyle *style_res); +int objects_query_strokecap (const std::vector &objects, SPStyle *style_res); +int objects_query_strokejoin (const std::vector &objects, SPStyle *style_res); -int objects_query_blur (const SelContainer &objects, SPStyle *style_res); +int objects_query_blur (const std::vector &objects, SPStyle *style_res); -int sp_desktop_query_style_from_list (const SelContainer &list, SPStyle *style, int property); +int sp_desktop_query_style_from_list (const std::vector &list, SPStyle *style, int property); int sp_desktop_query_style(SPDesktop *desktop, SPStyle *style, int property); bool sp_desktop_query_style_all (SPDesktop *desktop, SPStyle *query); diff --git a/src/desktop.cpp b/src/desktop.cpp index 64353e582..0cf0a3872 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -716,7 +716,7 @@ Inkscape::UI::Widget::Dock* SPDesktop::getDock() { /** * \see SPDocument::getItemFromListAtPointBottom() */ -SPItem *SPDesktop::getItemFromListAtPointBottom(const SelContainer &list, Geom::Point const &p) const +SPItem *SPDesktop::getItemFromListAtPointBottom(const std::vector &list, Geom::Point const &p) const { g_return_val_if_fail (doc() != NULL, NULL); return SPDocument::getItemFromListAtPointBottom(dkey, doc()->getRoot(), list, p); diff --git a/src/desktop.h b/src/desktop.h index 8765fa699..754e09766 100644 --- a/src/desktop.h +++ b/src/desktop.h @@ -319,7 +319,7 @@ public: //void push_event_context (GType type, const gchar *config, unsigned int key); void set_coordinate_status (Geom::Point p); - SPItem *getItemFromListAtPointBottom(const SelContainer &list, Geom::Point const &p) const; + SPItem *getItemFromListAtPointBottom(const std::vector &list, Geom::Point const &p) const; SPItem *getItemAtPoint(Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; SPItem *getGroupAtPoint(Geom::Point const &p) const; Geom::Point point() const; diff --git a/src/document.cpp b/src/document.cpp index 5c49ff6c3..07ad10505 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1235,7 +1235,7 @@ static bool overlaps(Geom::Rect const &area, Geom::Rect const &box) return area.intersects(box); } -static SelContainer &find_items_in_area(SelContainer &s, SPGroup *group, unsigned int dkey, Geom::Rect const &area, +static std::vector &find_items_in_area(std::vector &s, SPGroup *group, unsigned int dkey, Geom::Rect const &area, bool (*test)(Geom::Rect const &, Geom::Rect const &), bool take_insensitive = false) { g_return_val_if_fail(SP_IS_GROUP(group), s); @@ -1275,7 +1275,7 @@ static bool item_is_in_group(SPItem *item, SPGroup *group) return inGroup; } -SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, SelContainer const &list,Geom::Point const &p, bool take_insensitive) +SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, std::vector const &list,Geom::Point const &p, bool take_insensitive) { g_return_val_if_fail(group, NULL); SPItem *bottomMost = 0; @@ -1391,9 +1391,9 @@ static SPItem *find_group_at_point(unsigned int dkey, SPGroup *group, Geom::Poin * Assumes box is normalized (and g_asserts it!) * */ -SelContainer SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) const +std::vector SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) const { - SelContainer x; + std::vector x; g_return_val_if_fail(this->priv != NULL, x); return find_items_in_area(x, SP_GROUP(this->root), dkey, box, is_within); } @@ -1405,16 +1405,16 @@ SelContainer SPDocument::getItemsInBox(unsigned int dkey, Geom::Rect const &box) * */ -SelContainer SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const +std::vector SPDocument::getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const { - SelContainer x; + std::vector x; g_return_val_if_fail(this->priv != NULL, x); return find_items_in_area(x, SP_GROUP(this->root), dkey, box, overlaps); } -SelContainer SPDocument::getItemsAtPoints(unsigned const key, std::vector points) const +std::vector SPDocument::getItemsAtPoints(unsigned const key, std::vector points) const { - SelContainer items; + std::vector items; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); // When picking along the path, we don't want small objects close together @@ -1423,11 +1423,11 @@ SelContainer SPDocument::getItemsAtPoints(unsigned const key, std::vectorgetDouble("/options/cursortolerance/value", 1.0); prefs->setDouble("/options/cursortolerance/value", 0.25); - for(unsigned int i = 0; i < points.size(); i++) { + for(int i = points.size()-1;i>=0; i--) { SPItem *item = getItemAtPoint(key, points[i], false, NULL); if (item && items.end()==find(items.begin(),items.end(), item)) - items.push_front(item); + items.push_back(item); } // and now we restore it back diff --git a/src/document.h b/src/document.h index 87262a079..57ff7643c 100644 --- a/src/document.h +++ b/src/document.h @@ -233,7 +233,7 @@ public: /** * Returns the bottommost item from the list which is at the point, or NULL if none. */ - static SPItem *getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, const SelContainer &list, Geom::Point const &p, bool take_insensitive = false); + static SPItem *getItemFromListAtPointBottom(unsigned int dkey, SPGroup *group, const std::vector &list, Geom::Point const &p, bool take_insensitive = false); static SPDocument *createDoc(Inkscape::XML::Document *rdoc, char const *uri, char const *base, char const *name, unsigned int keepalive, @@ -257,10 +257,10 @@ public: bool addResource(char const *key, SPObject *object); bool removeResource(char const *key, SPObject *object); const GSList *getResourceList(char const *key) const; - SelContainer getItemsInBox(unsigned int dkey, Geom::Rect const &box) const; - SelContainer getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const; + std::vector getItemsInBox(unsigned int dkey, Geom::Rect const &box) const; + std::vector getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const; SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const; - SelContainer getItemsAtPoints(unsigned const key, std::vector points) const; + std::vector getItemsAtPoints(unsigned const key, std::vector points) const; SPItem *getGroupAtPoint(unsigned int key, Geom::Point const &p) const; void changeUriAndHrefs(char const *uri); diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index 66a8c4358..90a7810e6 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -64,8 +64,8 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Imp sp_namedview_document_from_window(desktop); if (desktop != NULL) { - SelContainer selected = desktop->getSelection()->itemList(); - for(SelContainer::const_iterator x=selected.begin();x!=selected.end();x++){ + std::vector selected = desktop->getSelection()->itemList(); + for(std::vector::const_iterator x=selected.begin();x!=selected.end();x++){ Glib::ustring selected_id; selected_id = (*x)->getId(); _selected.insert(_selected.end(), selected_id); diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index 6eff3ede3..cea6d139f 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -48,7 +48,7 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I SPDocument * current_document = view->doc(); using Inkscape::Util::GSListConstIterator; - SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node const* first_select = NULL; if (!selected.empty()) { const SPItem * item = SP_ITEM(selected.front()); diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index f396e9848..95d5c7edc 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -689,9 +689,9 @@ void Script::effect(Inkscape::Extension::Effect *module, return; } - SelContainer selected = + std::vector selected = desktop->getSelection()->itemList(); //desktop should not be NULL since doc was checked and desktop is a casted pointer - for(SelContainer::const_iterator x=selected.begin();x!=selected.end();x++){ + for(std::vector::const_iterator x=selected.begin();x!=selected.end();x++){ Glib::ustring selected_id; selected_id += "--id="; selected_id += (*x)->getId(); diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index 87ef30887..64abd6c4d 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -70,7 +70,7 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems(NULL) { SPDesktop *desktop = (SPDesktop*)view; - const SelContainer selectedItemList = desktop->selection->itemList(); + const std::vector selectedItemList = desktop->selection->itemList(); int selectCount = selectedItemList.size(); // Init the data-holders @@ -83,7 +83,7 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems = new SPItem*[selectCount]; // Loop through selected items - for (SelContainer::const_iterator i=selectedItemList.begin();i!=selectedItemList.end();i++) { + for (std::vector::const_iterator i=selectedItemList.begin();i!=selectedItemList.end();i++) { SPItem *item = static_cast(*i); Inkscape::XML::Node *node = reinterpret_cast(item->getRepr()); if (!strcmp(node->name(), "image") || !strcmp(node->name(), "svg:image")) @@ -242,7 +242,7 @@ ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::Vie using Inkscape::Util::GSListConstIterator; - SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { first_select = (selected.front())->getRepr(); diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index 138172715..257cac161 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -65,10 +65,10 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View using Inkscape::Util::GSListConstIterator; // TODO need to properly refcount the items, at least - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); selection->clear(); - for(SelContainer::iterator item = items.begin(); + for(std::vector::iterator item = items.begin(); item != items.end(); ++item) { SPItem * spitem = static_cast(*item); diff --git a/src/extension/internal/filter/filter.cpp b/src/extension/internal/filter/filter.cpp index 821c023ac..a5eb7de60 100644 --- a/src/extension/internal/filter/filter.cpp +++ b/src/extension/internal/filter/filter.cpp @@ -126,12 +126,12 @@ void Filter::effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::Vie Inkscape::Selection * selection = ((SPDesktop *)document)->selection; // TODO need to properly refcount the items, at least - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); Inkscape::XML::Document * xmldoc = document->doc()->getReprDoc(); Inkscape::XML::Node * defsrepr = document->doc()->getDefs()->getRepr(); - for(SelContainer::iterator item = items.begin(); + for(std::vector::iterator item = items.begin(); item != items.end(); ++item) { SPItem * spitem = static_cast(*item); Inkscape::XML::Node * node = spitem->getRepr(); diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 4c12f629c..440c6b822 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -192,7 +192,7 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View using Inkscape::Util::GSListConstIterator; - SelContainer selected = ((SPDesktop *)view)->getSelection()->itemList(); + std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { first_select = (selected.front())->getRepr(); diff --git a/src/file.cpp b/src/file.cpp index 4325c838b..f9dbe00a7 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1063,7 +1063,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) desktop->doc()->importDefs(clipdoc); // copy objects - std::list pasted_objects; + std::vector pasted_objects; for (Inkscape::XML::Node *obj = root->firstChild() ; obj ; obj = obj->next()) { // Don't copy metadata, defs, named views and internal clipboard contents to the document if (!strcmp(obj->name(), "svg:defs")) { @@ -1082,7 +1082,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) target_parent->appendChild(obj_copy); Inkscape::GC::release(obj_copy); - pasted_objects.push_front(dynamic_cast(obj_copy)); + pasted_objects.push_back((obj_copy)); } // Change the selection to the freshly pasted objects diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index 5f1da6cf1..a72423bbb 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -1570,8 +1570,8 @@ void sp_gradient_invert_selected_gradients(SPDesktop *desktop, Inkscape::PaintTa { Inkscape::Selection *selection = desktop->getSelection(); - const SelContainer list=selection->itemList(); - for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + const std::vector list=selection->itemList(); + for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { sp_item_gradient_invert_vector_color(SP_ITEM(*i), fill_or_stroke); } @@ -1595,8 +1595,8 @@ void sp_gradient_reverse_selected_gradients(SPDesktop *desktop) if (drag && drag->selected) { drag->selected_reverse_vector(); } else { // If no drag or no dragger selected, act on selection (both fill and stroke gradients) - const SelContainer list=selection->itemList(); - for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + const std::vector list=selection->itemList(); + for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_FILL); sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_STROKE); } diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 649928060..525fc074f 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2082,8 +2082,8 @@ void GrDrag::updateDraggers() this->draggers = NULL; g_return_if_fail(this->selection != NULL); - SelContainer list = this->selection->itemList(); - for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + std::vector list = this->selection->itemList(); + for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; @@ -2151,8 +2151,8 @@ void GrDrag::updateLines() g_return_if_fail(this->selection != NULL); - SelContainer list = this->selection->itemList(); - for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + std::vector list = this->selection->itemList(); + for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; @@ -2295,8 +2295,8 @@ void GrDrag::updateLevels() g_return_if_fail (this->selection != NULL); - SelContainer list = this->selection->itemList(); - for (SelContainer::const_iterator i=list.begin();i!=list.end();i++) { + std::vector list = this->selection->itemList(); + for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { SPItem *item = SP_ITEM(*i); Geom::OptRect rect = item->desktopVisualBounds(); if (rect) { diff --git a/src/graphlayout.cpp b/src/graphlayout.cpp index 613440269..4d590173a 100644 --- a/src/graphlayout.cpp +++ b/src/graphlayout.cpp @@ -88,8 +88,8 @@ struct CheckProgress : TestConvergence { * Scans the items list and places those items that are * not connectors in filtered */ -void filterConnectors(SelContainer const &items, list &filtered) { - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ +void filterConnectors(std::vector const &items, list &filtered) { + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = SP_ITEM(*i); if(!isConnector(item)) { filtered.push_back(item); @@ -101,7 +101,7 @@ void filterConnectors(SelContainer const &items, list &filtered) { * connectors between them, and uses graph layout techniques to find * a nice layout */ -void graphlayout(SelContainer const &items) { +void graphlayout(std::vector const &items) { if(items.empty()) { return; } diff --git a/src/graphlayout.h b/src/graphlayout.h index c38f9471c..9794dd6b5 100644 --- a/src/graphlayout.h +++ b/src/graphlayout.h @@ -19,10 +19,10 @@ typedef struct _GSList GSList; class SPItem; -void graphlayout(SelContainer const &items); +void graphlayout(std::vector const &items); bool isConnector(SPItem const *const item); -void filterConnectors(SelContainer const &items, std::list &filtered); +void filterConnectors(std::vector const &items, std::list &filtered); #endif // SEEN_GRAPHLAYOUT_H diff --git a/src/helper/png-write.cpp b/src/helper/png-write.cpp index 55fef5a4c..fc365c435 100644 --- a/src/helper/png-write.cpp +++ b/src/helper/png-write.cpp @@ -361,7 +361,7 @@ sp_export_get_rows(guchar const **rows, void **to_free, int row, int num_rows, v /** * Hide all items that are not listed in list, recursively, skipping groups and defs. */ -static void hide_other_items_recursively(SPObject *o, const SelContainer &list, unsigned dkey) +static void hide_other_items_recursively(SPObject *o, const std::vector &list, unsigned dkey) { if ( SP_IS_ITEM(o) && !SP_IS_DEFS(o) @@ -387,7 +387,7 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, unsigned long bgcolor, unsigned int (*status) (float, void *), void *data, bool force_overwrite, - const SelContainer &items_only) + const std::vector &items_only) { return sp_export_png_file(doc, filename, Geom::Rect(Geom::Point(x0,y0),Geom::Point(x1,y1)), width, height, xdpi, ydpi, bgcolor, status, data, force_overwrite, items_only); @@ -399,7 +399,7 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, unsigned long bgcolor, unsigned (*status)(float, void *), void *data, bool force_overwrite, - const SelContainer &items_only) + const std::vector &items_only) { g_return_val_if_fail(doc != NULL, EXPORT_ERROR); g_return_val_if_fail(filename != NULL, EXPORT_ERROR); diff --git a/src/helper/png-write.h b/src/helper/png-write.h index 47fad1b41..04ca85cd6 100644 --- a/src/helper/png-write.h +++ b/src/helper/png-write.h @@ -38,12 +38,12 @@ ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, double x0, double y0, double x1, double y1, unsigned long int width, unsigned long int height, double xdpi, double ydpi, unsigned long bgcolor, - unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const SelContainer &items_only = SelContainer()); + unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const std::vector &items_only = std::vector()); ExportResult sp_export_png_file(SPDocument *doc, gchar const *filename, Geom::Rect const &area, unsigned long int width, unsigned long int height, double xdpi, double ydpi, unsigned long bgcolor, - unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const SelContainer &items_only = SelContainer()); + unsigned int (*status) (float, void *), void *data, bool force_overwrite = false, const std::vector &items_only = std::vector()); #endif // SEEN_SP_PNG_WRITE_H diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index 95a6b16dd..6cdf09180 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -505,8 +505,8 @@ LPEKnot::doEffect_path (std::vector const &path_in) static void collectPathsAndWidths (SPLPEItem const *lpeitem, std::vector &paths, std::vector &stroke_widths){ if (SP_IS_GROUP(lpeitem)) { - SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { collectPathsAndWidths(SP_LPE_ITEM(subitem), paths, stroke_widths); diff --git a/src/main.cpp b/src/main.cpp index 25dc91f14..c62b9cd25 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1156,7 +1156,7 @@ static int sp_process_file_list(GSList *fl) } if (sp_export_svg) { if (sp_export_text_to_path) { - SelContainer items; + std::vector items; SPRoot *root = doc->getRoot(); doc->ensureUpToDate(); for ( SPObject *iter = root->firstChild(); iter ; iter = iter->getNext()) { @@ -1169,8 +1169,8 @@ static int sp_process_file_list(GSList *fl) items.push_back(item); } - SelContainer selected; - SelContainer to_select; + std::vector selected; + std::vector to_select; sp_item_list_to_curves(items, selected, to_select); @@ -1435,7 +1435,7 @@ static int sp_do_export_png(SPDocument *doc) g_warning ("--export-use-hints can only be used with --export-id or --export-area-drawing; ignored."); } - SelContainer items; + std::vector items; Geom::Rect area; if (sp_export_id || sp_export_area_drawing) { @@ -1459,7 +1459,7 @@ static int sp_do_export_png(SPDocument *doc) return 1; } - items.push_front(SP_ITEM(o)); + items.push_back(SP_ITEM(o)); if (sp_export_id_only) { g_print("Exporting only object with id=\"%s\"; all other objects hidden\n", sp_export_id); @@ -1647,7 +1647,7 @@ static int sp_do_export_png(SPDocument *doc) if ((width >= 1) && (height >= 1) && (width <= PNG_UINT_31_MAX) && (height <= PNG_UINT_31_MAX)) { if( sp_export_png_file(doc, path.c_str(), area, width, height, dpi, - dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : SelContainer()) == 1 ) { + dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : std::vector()) == 1 ) { g_print("Bitmap saved as: %s\n", filename.c_str()); } else { g_warning("Bitmap failed to save to: %s", filename.c_str()); diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 960b5087b..830c3c1db 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -237,8 +237,8 @@ void Inkscape::ObjectSnapper::_collectNodes(SnapSourceType const &t, // current selection (see the comment in SelTrans::centerRequest()) bool old_pref2 = _snapmanager->snapprefs.isTargetSnappable(SNAPTARGET_ROTATION_CENTER); if (old_pref2) { - SelContainer rotationSource=_snapmanager->getRotationCenterSource(); - for ( SelContainer::const_iterator itemlist=rotationSource.begin();itemlist!=rotationSource.end();itemlist++) { + std::vector rotationSource=_snapmanager->getRotationCenterSource(); + for ( std::vector::const_iterator itemlist=rotationSource.begin();itemlist!=rotationSource.end();itemlist++) { if ((*i).item == reinterpret_cast(*itemlist)) { // don't snap to this item's rotation center _snapmanager->snapprefs.setTargetSnappable(SNAPTARGET_ROTATION_CENTER, false); diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index a5e71b720..ae1e0064f 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -51,13 +51,19 @@ inline bool less_than_objects(SPObject const *first, SPObject const *second) second->getRepr())<0; } +inline bool less_than_items(SPItem const *first, SPItem const *second) +{ + return sp_repr_compare_position(first->getRepr(), + second->getRepr())<0; +} + void sp_selected_path_combine(SPDesktop *desktop) { Inkscape::Selection *selection = desktop->getSelection(); SPDocument *doc = desktop->getDocument(); - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); if (items.size() < 1) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to combine.")); @@ -70,23 +76,22 @@ sp_selected_path_combine(SPDesktop *desktop) items = sp_degroup_list (items); // descend into any groups in selection - SelContainer to_paths; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + std::vector to_paths; + for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++) { SPItem *item = (SPItem *) (*i); if (!dynamic_cast(item) && !dynamic_cast(item)) { - to_paths.push_front(item); + to_paths.push_back(item); } } - SelContainer converted; + std::vector converted; bool did = sp_item_list_to_curves(to_paths, items, converted); to_paths.clear(); - for (SelContainer::const_iterator i=converted.begin();i!=converted.end();i++) - items.push_front(doc->getObjectByRepr((Inkscape::XML::Node*)(*i))); + for (std::vector::const_iterator i=converted.begin();i!=converted.end();i++) + items.push_back((SPItem*)doc->getObjectByRepr((Inkscape::XML::Node*)(*i))); items = sp_degroup_list (items); // converting to path may have added more groups, descend again - items.sort(less_than_objects); - items.reverse(); + sort(items.begin(),items.end(),less_than_objects); assert(!items.empty()); // cannot be NULL because of list length check at top of function // remember the position, id, transform and style of the topmost path, they will be assigned to the combined one @@ -104,7 +109,7 @@ sp_selected_path_combine(SPDesktop *desktop) selection->clear(); } - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ SPItem *item = (SPItem *) (*i); SPPath *path = dynamic_cast(item); @@ -206,8 +211,8 @@ sp_selected_path_break_apart(SPDesktop *desktop) bool did = false; - SelContainer itemlist(selection->itemList()); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist(selection->itemList()); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = (SPItem *) (*i); @@ -246,7 +251,7 @@ sp_selected_path_break_apart(SPDesktop *desktop) curve->unref(); - SelContainer reprs; + std::vector reprs; for (GSList *l = list; l != NULL; l = l->next) { curve = (SPCurve *) l->data; @@ -272,14 +277,13 @@ sp_selected_path_break_apart(SPDesktop *desktop) if (l == list) repr->setAttribute("id", id); - reprs.push_front(dynamic_cast(repr)); + reprs.push_back(repr); Inkscape::GC::release(repr); } - + //reverse selection->setReprList(reprs); - reprs.clear(); g_slist_free(list); g_free(style); g_free(path_effect); @@ -312,10 +316,10 @@ sp_selected_path_to_curves(Inkscape::Selection *selection, SPDesktop *desktop, b desktop->setWaitingCursor(); } - SelContainer selected(selection->itemList()); - SelContainer to_select; + std::vector selected(selection->itemList()); + std::vector to_select; selection->clear(); - SelContainer items(selected); + std::vector items(selected); did = sp_item_list_to_curves(items, selected, to_select); @@ -346,27 +350,24 @@ void sp_selected_to_lpeitems(SPDesktop *desktop) return; } - SelContainer selected(selection->itemList()); - SelContainer to_select; + std::vector selected(selection->itemList()); + std::vector to_select; selection->clear(); - SelContainer items(selected); + std::vector items(selected); sp_item_list_to_curves(items, selected, to_select, true); - items.clear(); selection->setReprList(to_select); selection->addList(selected); - to_select.clear(); - selected.clear(); } bool -sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelContainer &to_select, bool skip_all_lpeitems) +sp_item_list_to_curves(const std::vector &items, std::vector& selected, std::vector &to_select, bool skip_all_lpeitems) { bool did = false; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); @@ -399,9 +400,9 @@ sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelCon Inkscape::XML::Node *repr = box3d_convert_to_group(box)->getRepr(); if (repr) { - to_select.push_front(dynamic_cast(repr)); + to_select.push_back(repr); did = true; - selected.remove(item); + selected.erase(find(selected.begin(),selected.end(),item)); } continue; @@ -409,10 +410,10 @@ sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelCon if (group) { group->removeAllPathEffects(true); - SelContainer item_list = sp_item_group_item_list(group); + std::vector item_list = sp_item_group_item_list(group); - SelContainer item_to_select; - SelContainer item_selected; + std::vector item_to_select; + std::vector item_selected; if (sp_item_list_to_curves(item_list, item_selected, item_to_select)) did = true; @@ -429,7 +430,7 @@ sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelCon continue; did = true; - selected.remove(item); + selected.erase(find(selected.begin(),selected.end(),item)); // remember the position of the item gint pos = item->getRepr()->position(); @@ -471,7 +472,7 @@ sp_item_list_to_curves(const SelContainer &items, SelContainer& selected, SelCon /* Buglet: We don't re-add the (new version of the) object to the selection of any other * desktops where it was previously selected. */ - to_select.push_front(dynamic_cast(repr)); + to_select.push_back(repr); Inkscape::GC::release(repr); } @@ -613,7 +614,7 @@ void sp_selected_path_reverse(SPDesktop *desktop) { Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items = selection->itemList(); + std::vector items = selection->itemList(); if (items.empty()) { desktop->getMessageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select path(s) to reverse.")); @@ -627,7 +628,7 @@ sp_selected_path_reverse(SPDesktop *desktop) bool did = false; desktop->messageStack()->flash(Inkscape::IMMEDIATE_MESSAGE, _("Reversing paths...")); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPPath *path = dynamic_cast(static_cast(*i)); if (!path) { diff --git a/src/path-chemistry.h b/src/path-chemistry.h index 388268af4..f454167a9 100644 --- a/src/path-chemistry.h +++ b/src/path-chemistry.h @@ -33,7 +33,7 @@ void sp_selected_path_to_curves (Inkscape::Selection *selection, SPDesktop *desk void sp_selected_to_lpeitems(SPDesktop *desktop); Inkscape::XML::Node *sp_selected_item_to_curved_repr(SPItem *item, guint32 text_grouping_policy); void sp_selected_path_reverse (SPDesktop *desktop); -bool sp_item_list_to_curves(const SelContainer &items, SelContainer &selected, SelContainer &to_select, bool skip_all_lpeitems = false); +bool sp_item_list_to_curves(const std::vector &items, std::vector &selected, std::vector &to_select, bool skip_all_lpeitems = false); #endif // SEEN_PATH_CHEMISTRY_H diff --git a/src/removeoverlap.cpp b/src/removeoverlap.cpp index 9009de5e9..7cb1694e3 100644 --- a/src/removeoverlap.cpp +++ b/src/removeoverlap.cpp @@ -38,14 +38,14 @@ namespace { * such that rectangular bounding boxes are separated by at least xGap * horizontally and yGap vertically */ -void removeoverlap(SelContainer const &items, double const xGap, double const yGap) { +void removeoverlap(std::vector const &items, double const xGap, double const yGap) { using Inkscape::Util::GSListConstIterator; - SelContainer selected(items); + std::vector selected(items); std::vector records; std::vector rs; Geom::Point const gap(xGap, yGap); - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { diff --git a/src/removeoverlap.h b/src/removeoverlap.h index d050ca9ef..d873663d1 100644 --- a/src/removeoverlap.h +++ b/src/removeoverlap.h @@ -15,6 +15,6 @@ typedef struct _GSList GSList; -void removeoverlap(SelContainer const &items, double xGap, double yGap); +void removeoverlap(std::vector const &items, double xGap, double yGap); #endif // SEEN_REMOVEOVERLAP_H diff --git a/src/selcue.cpp b/src/selcue.cpp index 0fab6e5a8..f48378cdc 100644 --- a/src/selcue.cpp +++ b/src/selcue.cpp @@ -96,15 +96,15 @@ void Inkscape::SelCue::_updateItemBboxes(Inkscape::Preferences *prefs) void Inkscape::SelCue::_updateItemBboxes(gint mode, int prefs_bbox) { - const SelContainer items = _selection->itemList(); + const std::vector items = _selection->itemList(); if (_item_bboxes.size() != items.size()) { _newItemBboxes(); return; } int bcount = 0; - SelContainer ll=_selection->itemList(); - for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + std::vector ll=_selection->itemList(); + for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { SPItem *item = static_cast(*l); SPCanvasItem* box = _item_bboxes[bcount ++]; @@ -146,8 +146,8 @@ void Inkscape::SelCue::_newItemBboxes() int prefs_bbox = prefs->getBool("/tools/bounding_box"); - SelContainer ll=_selection->itemList(); - for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + std::vector ll=_selection->itemList(); + for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { SPItem *item = static_cast(*l); Geom::OptRect const b = (prefs_bbox == 0) ? @@ -201,8 +201,8 @@ void Inkscape::SelCue::_newTextBaselines() } _text_baselines.clear(); - SelContainer ll=_selection->itemList(); - for (SelContainer::const_iterator l=ll.begin();l!=ll.end();l++) { + std::vector ll=_selection->itemList(); + for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { SPItem *item = static_cast(*l); SPCanvasItem* baseline_point = NULL; diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 9f27ca22e..f1c96b6b8 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -279,23 +279,21 @@ void SelectionHelper::fixSelection(SPDesktop *dt) Inkscape::Selection *selection = dt->getSelection(); - SelContainer items ; + std::vector items ; - SelContainer const selList = selection->itemList(); + std::vector const selList = selection->itemList(); - for( SelContainer::const_iterator i=selList.begin();i!=selList.end();i++ ) { + for( std::vector::const_reverse_iterator i=selList.rbegin();i!=selList.rend();i++ ) { SPItem *item = dynamic_cast(static_cast(*i)); if( item && !dt->isLayer(item) && (!item->isLocked())) { - items.push_front(item); + items.push_back(item); } } selection->setList(items); - - items.clear(); } } // namespace Inkscape @@ -305,7 +303,7 @@ void SelectionHelper::fixSelection(SPDesktop *dt) * Copies repr and its inherited css style elements, along with the accumulated transform 'full_t', * then prepends the copy to 'clip'. */ -static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, SelContainer &clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, std::vector &clip, Inkscape::XML::Document* xml_doc) { Inkscape::XML::Node *copy = repr->duplicate(xml_doc); @@ -321,17 +319,17 @@ static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t copy->setAttribute("transform", affinestr); g_free(affinestr); - clip.push_front(dynamic_cast(copy)); + clip.insert(clip.begin(),dynamic_cast(copy)); } -static void sp_selection_copy_impl(SelContainer const &items, SelContainer &clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_impl(std::vector const &items, std::vector &clip, Inkscape::XML::Document* xml_doc) { // Sort items: - SelContainer sorted_items(items); - sorted_items.sort(sp_object_compare_position); + std::vector sorted_items(items); + sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); // Copy item reprs: - for (SelContainer::const_iterator i = sorted_items.begin();i!=sorted_items.end();i++) { + for (std::vector::const_iterator i = sorted_items.begin();i!=sorted_items.end();i++) { SPItem *item = dynamic_cast(SP_OBJECT(*i)); if (item) { sp_selection_copy_one(item->getRepr(), item->i2doc_affine(), clip, xml_doc); @@ -339,22 +337,22 @@ static void sp_selection_copy_impl(SelContainer const &items, SelContainer &clip g_assert_not_reached(); } } - - clip.reverse(); + std::vector tmp(clip); + for(int i=0;i sp_selection_paste_impl(SPDocument *doc, SPObject *parent, std::vector &clip) { Inkscape::XML::Document *xml_doc = doc->getReprDoc(); SPItem *parentItem = dynamic_cast(parent); g_assert(parentItem != NULL); - SelContainer copied; + std::vector copied; // add objects to document - for (SelContainer::const_iterator l=clip.begin();l!=clip.end();l++) { + for (std::vector::const_iterator l=clip.begin();l!=clip.end();l++) { Inkscape::XML::Node *repr = dynamic_cast(*l); Inkscape::XML::Node *copy = repr->duplicate(xml_doc); @@ -373,18 +371,18 @@ static SelContainer sp_selection_paste_impl(SPDocument *doc, SPObject *parent, S } parent->appendChildRepr(copy); - copied.push_front(dynamic_cast(copy)); + copied.push_back(copy); Inkscape::GC::release(copy); } return copied; } -static void sp_selection_delete_impl(SelContainer const &items, bool propagate = true, bool propagate_descendants = true) +static void sp_selection_delete_impl(std::vector const &items, bool propagate = true, bool propagate_descendants = true) { - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { sp_object_ref(static_cast(*i), NULL); } - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { SPItem *item = static_cast(*i); item->deleteObject(propagate, propagate_descendants); sp_object_unref(item, NULL); @@ -412,7 +410,7 @@ void sp_selection_delete(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Nothing was deleted.")); return; } - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); selection->clear(); sp_selection_delete_impl(selected); selected.clear(); @@ -470,7 +468,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) // them, just what we need sort(reprs.begin(),reprs.end(),sp_repr_compare_position); - SelContainer newsel; + std::vector newsel; std::vector old_ids; std::vector new_ids; @@ -500,7 +498,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) } } - newsel.push_front(dynamic_cast(copy)); + newsel.push_back(copy); Inkscape::GC::release(copy); } @@ -546,8 +544,6 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) } selection->setReprList(newsel); - - newsel.clear(); } void sp_edit_clear_all(Inkscape::Selection *selection) @@ -560,11 +556,10 @@ void sp_edit_clear_all(Inkscape::Selection *selection) SPGroup *group = dynamic_cast(selection->layers()->currentLayer()); g_return_if_fail(group != NULL); - SelContainer items = sp_item_group_item_list(group); + std::vector items = sp_item_group_item_list(group); - while (!items.empty()) { - reinterpret_cast(items.front())->deleteObject(); - items.pop_front(); + for(int i=0;i(items[i])->deleteObject(); } DocumentUndo::done(doc, SP_VERB_EDIT_CLEAR_ALL, @@ -581,7 +576,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) * onlysensitive - TRUE includes only non-locked items * ingroups - TRUE to recursively get grouped items children */ -SelContainer &get_all_items(SelContainer &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, SelContainer const &exclude) +std::vector &get_all_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, std::vector const &exclude) { for ( SPObject *child = from->firstChild() ; child; child = child->getNext() ) { SPItem *item = dynamic_cast(child); @@ -592,7 +587,7 @@ SelContainer &get_all_items(SelContainer &list, SPObject *from, SPDesktop *deskt (exclude.empty() || exclude.end() == std::find(exclude.begin(),exclude.end(),child)) ) { - list.push_front(item); + list.insert(list.begin(),item); } if (ingroups || (item && desktop->isLayer(item))) { @@ -617,9 +612,9 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); - SelContainer items ; + std::vector items ; - SelContainer exclude; + std::vector exclude; if (invert) { exclude = selection->itemList(); } @@ -633,16 +628,16 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i (onlyvisible && dt->itemIsHidden(dynamic_cast(dt->currentLayer()))) ) return; - SelContainer all_items = sp_item_group_item_list(dynamic_cast(dt->currentLayer())); + std::vector all_items = sp_item_group_item_list(dynamic_cast(dt->currentLayer())); - for (SelContainer::const_iterator i=all_items.begin();i!=all_items.end();i++) { + for (std::vector::const_reverse_iterator i=all_items.rbegin();i!=all_items.rend();i++) { SPItem *item = dynamic_cast(static_cast(*i)); if (item && (!onlysensitive || !item->isLocked())) { if (!onlyvisible || !dt->itemIsHidden(item)) { if (!dt->isLayer(item)) { if (!invert || exclude.end() == std::find(exclude.begin(),exclude.end(),item)) { - items.push_front(item); // leave it in the list + items.push_back(item); // leave it in the list } } } @@ -653,12 +648,12 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i break; } case PREFS_SELECTION_LAYER_RECURSIVE: { - SelContainer x; + std::vector x; items = get_all_items(x, dt->currentLayer(), dt, onlyvisible, onlysensitive, FALSE, exclude); break; } default: { - SelContainer x; + std::vector x; items = get_all_items(x, dt->currentRoot(), dt, onlyvisible, onlysensitive, FALSE, exclude); break; } @@ -709,7 +704,7 @@ static void sp_selection_group_impl(std::vector p, Inkscap Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - SelContainer temp_clip; + std::vector temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -729,11 +724,11 @@ static void sp_selection_group_impl(std::vector p, Inkscap sp_repr_unparent(current); // paste into topmost_parent (temporarily) - SelContainer copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); + std::vector copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); if (!temp_clip.empty())temp_clip.clear() ; if (!copied.empty()) { // if success, // take pasted object (now in topmost_parent) - Inkscape::XML::Node *in_topmost = dynamic_cast(copied.front()); + Inkscape::XML::Node *in_topmost = copied.back(); // make a copy Inkscape::XML::Node *spnew = in_topmost->duplicate(xml_doc); // remove pasted @@ -800,10 +795,10 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } // first check whether there is anything to ungroup - SelContainer old_select = selection->itemList(); - SelContainer new_select; + std::vector old_select = selection->itemList(); + std::vector new_select; GSList *groups = NULL; - for (SelContainer::const_iterator item = old_select.begin(); item!=old_select.end(); item++) { + for (std::vector::const_iterator item = old_select.begin(); item!=old_select.end(); item++) { SPItem *obj = static_cast(*item); if (dynamic_cast(obj)) { groups = g_slist_prepend(groups, obj); @@ -816,13 +811,13 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) return; } - SelContainer items(old_select); + std::vector items(old_select); selection->clear(); // If any of the clones refer to the groups, unlink them and replace them with successors // in the items list. GSList *clones_to_unlink = NULL; - for (SelContainer::const_iterator item = items.begin(); item!=items.end(); item++) { + for (std::vector::const_iterator item = items.begin(); item!=items.end(); item++) { SPUse *use = dynamic_cast(static_cast(*item)); SPItem *original = use; @@ -842,21 +837,21 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) for (GSList *item = clones_to_unlink; item; item = item->next) { SPUse *use = static_cast(item->data); - SelContainer::iterator items_node = std::find(items.begin(),items.end(), item->data); + std::vector::iterator items_node = std::find(items.begin(),items.end(), item->data); (*items_node) = use->unlink(); } g_slist_free(clones_to_unlink); // do the actual work - for (SelContainer::iterator item = items.begin(); item!=items.end(); item++) { + for (std::vector::iterator item = items.begin(); item!=items.end(); item++) { SPItem *obj = static_cast(*item); // ungroup only the groups marked earlier if (g_slist_find(groups, *item) != NULL) { - SelContainer children; + std::vector children; sp_item_group_ungroup(dynamic_cast(obj), children, false); // add the items resulting from ungrouping to the selection - new_select.splice(new_select.end(),children); + new_select.insert(new_select.end(),children.begin(),children.end()); (*item) = NULL; // zero out the original pointer, which is no longer valid } else { // if not a group, keep in the selection @@ -873,25 +868,24 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } /** Replace all groups in the list with their member objects, recursively; returns a new list, frees old */ -SelContainer -sp_degroup_list(SelContainer &items) +std::vector +sp_degroup_list(std::vector &items) { - SelContainer out; + std::vector out; bool has_groups = false; - for (SelContainer::const_iterator item=items.begin();item!=items.end();item++) { + for (std::vector::const_iterator item=items.begin();item!=items.end();item++) { SPGroup *group = dynamic_cast(static_cast(*item)); if (!group) { - out.push_front(*item); + out.push_back(*item); } else { has_groups = true; - SelContainer members = sp_item_group_item_list(group); - for (SelContainer::const_iterator member=members.begin();member!=members.end();member++) { - out.push_front(*member); + std::vector members = sp_item_group_item_list(group); + for (std::vector::const_iterator member=members.begin();member!=members.end();member++) { + out.push_back(*member); } members.clear(); } } - out.reverse(); items.clear(); if (has_groups) { // recurse if we unwrapped a group - it may have contained others @@ -904,7 +898,7 @@ sp_degroup_list(SelContainer &items) /** If items in the list have a common parent, return it, otherwise return NULL */ static SPGroup * -sp_item_list_common_parent_group(SelContainer const items) +sp_item_list_common_parent_group(std::vector const items) { if (items.empty()) { return NULL; @@ -914,7 +908,7 @@ sp_item_list_common_parent_group(SelContainer const items) if (!dynamic_cast(parent)) { return NULL; } - for (SelContainer::const_iterator item=items.begin();item!=items.end();item++) { + for (std::vector::const_iterator item=items.begin();item!=items.end();item++) { if((*item)==items.front())continue; if (SP_OBJECT(*item)->parent != parent) { return NULL; @@ -926,12 +920,12 @@ sp_item_list_common_parent_group(SelContainer const items) /** Finds out the minimum common bbox of the selected items. */ static Geom::OptRect -enclose_items(SelContainer const &items) +enclose_items(std::vector const &items) { g_assert(!items.empty()); Geom::OptRect r; - for (SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i = items.begin();i!=items.end();i++) { r.unionWith(static_cast(*i)->desktopVisualBounds()); } return r; @@ -956,7 +950,7 @@ int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *sec void sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) { - SelContainer items= selection->itemList(); + std::vector items= selection->itemList(); if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to raise.")); return; @@ -971,16 +965,16 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) Inkscape::XML::Node *grepr = const_cast(group->getRepr()); /* Construct reverse-ordered list of selected children. */ - SelContainer rev(items); - rev.sort(sp_item_repr_compare_position_obj); + std::vector rev(items); + sort(rev.begin(),rev.end(),sp_item_repr_compare_position); // Determine the common bbox of the selected items. Geom::OptRect selected = enclose_items(items); // Iterate over all objects in the selection (starting from top). if (selected) { - while (!rev.empty()) { - SPObject *child = reinterpret_cast(rev.front()); + for (std::vector::const_iterator item=rev.begin();item!=rev.end();item++) { + SPObject *child = reinterpret_cast(*item); // for each selected object, find the next sibling for (SPObject *newref = child->next; newref; newref = newref->next) { // if the sibling is an item AND overlaps our selection, @@ -997,7 +991,6 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) } } } - rev.pop_front(); } } else { rev.clear(); @@ -1017,7 +1010,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto return; } - SelContainer items = selection->itemList(); + std::vector items = selection->itemList(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1039,7 +1032,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) { - SelContainer items = selection->itemList(); + std::vector items = selection->itemList(); if (items.empty()) { selection_display_message(desktop, Inkscape::WARNING_MESSAGE, _("Select object(s) to lower.")); return; @@ -1057,14 +1050,13 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) Geom::OptRect selected = enclose_items(items); /* Construct direct-ordered list of selected children. */ - SelContainer rev(items); - rev.sort(sp_item_repr_compare_position_obj); - rev.reverse(); + std::vector rev(items); + sort(rev.begin(),rev.end(),sp_item_repr_compare_position); // Iterate over all objects in the selection (starting from top). if (selected) { - while (!rev.empty()) { - SPObject *child = reinterpret_cast(rev.front()); + for (std::vector::const_reverse_iterator item=rev.rbegin();item!=rev.rend();item++) { + SPObject *child = reinterpret_cast(*item); // for each selected object, find the prev sibling for (SPObject *newref = prev_sibling(child); newref; newref = prev_sibling(newref)) { // if the sibling is an item AND overlaps our selection, @@ -1085,7 +1077,6 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) } } } - rev.pop_front(); } } else { rev.clear(); @@ -1105,7 +1096,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des return; } - SelContainer items =selection->itemList(); + std::vector items =selection->itemList(); SPGroup const *group = sp_item_list_common_parent_group(items); if (!group) { @@ -1268,8 +1259,8 @@ void sp_selection_remove_livepatheffect(SPDesktop *desktop) desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to remove live path effects from.")); return; } - SelContainer list=selection->itemList(); - for ( SelContainer::const_iterator itemlist=list.begin();itemlist!=list.end();itemlist++) { + std::vector list=selection->itemList(); + for ( std::vector::const_iterator itemlist=list.begin();itemlist!=list.end();itemlist++) { SPItem *item = reinterpret_cast(*itemlist); sp_selection_remove_livepatheffect_impl(item); @@ -1330,16 +1321,16 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) return; } - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); bool no_more = false; // Set to true, if no more layers above SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { - SelContainer temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); sp_selection_delete_impl(items, false, false); next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers - SelContainer copied; + std::vector copied; if (next) { copied = sp_selection_paste_impl(dt->getDocument(), next, temp_clip); } else { @@ -1375,16 +1366,16 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) return; } - const SelContainer items(selection->itemList()); + const std::vector items(selection->itemList()); bool no_more = false; // Set to true, if no more layers below SPObject *next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (next) { - SelContainer temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers - SelContainer copied; + std::vector copied; if (next) { copied = sp_selection_paste_impl(dt->getDocument(), next, temp_clip); } else { @@ -1418,13 +1409,13 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) return; } - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); if (moveto) { - SelContainer temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); - SelContainer copied = sp_selection_paste_impl(dt->getDocument(), moveto, temp_clip); + std::vector copied = sp_selection_paste_impl(dt->getDocument(), moveto, temp_clip); selection->setReprList(copied); copied.clear(); if (!temp_clip.empty()) temp_clip.clear(); @@ -1468,8 +1459,8 @@ static bool selection_contains_both_clone_and_original(Inkscape::Selection *selection) { bool clone_with_original = false; - SelContainer items = selection->itemList(); - for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + std::vector items = selection->itemList(); + for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { SPItem *item = dynamic_cast(static_cast(*l)); if (item) { clone_with_original |= selection_contains_original(item, selection); @@ -1513,8 +1504,8 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons persp3d_apply_affine_transformation(transf_persp, affine); } - SelContainer items = selection->itemList(); - for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + std::vector items = selection->itemList(); + for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { SPItem *item = dynamic_cast(static_cast(*l)); if( dynamic_cast(item) ) { @@ -1784,9 +1775,9 @@ void sp_selection_rotate_90(SPDesktop *desktop, bool ccw) if (selection->isEmpty()) return; - SelContainer items = selection->itemList(); + std::vector items = selection->itemList(); Geom::Rotate const rot_90(Geom::Point(0, ccw ? 1 : -1)); // pos. or neg. rotation, depending on the value of ccw - for (SelContainer::const_iterator l=items.begin();l!=items.end() ;l++) { + for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { SPItem *item = dynamic_cast(static_cast(*l)); if (item) { sp_item_rotate_rel(item, rot_90); @@ -1843,15 +1834,15 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - SelContainer x,y; - SelContainer all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); - SelContainer all_matches; + std::vector x,y; + std::vector all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); + std::vector all_matches; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items = selection->itemList(); - for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + std::vector items = selection->itemList(); + for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { SPItem *sel = dynamic_cast(static_cast(*sel_iter)); - SelContainer matches = all_list; + std::vector matches = all_list; if (fill) { matches = sp_get_same_fill_or_stroke_color(sel, matches, SP_FILL_COLOR); } @@ -1863,7 +1854,7 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_DASHES); matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_MARKERS); } - all_matches.splice(all_matches.end(), matches); + all_matches.insert(all_matches.end(), matches.begin(),matches.end()); } selection->clear(); @@ -1889,14 +1880,14 @@ void sp_select_same_object_type(SPDesktop *desktop) bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true); bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - SelContainer x,y; - SelContainer all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); - SelContainer matches = all_list; + std::vector x,y; + std::vector all_list = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); + std::vector matches = all_list; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items=selection->itemList(); - for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + std::vector items=selection->itemList(); + for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { SPItem *sel = dynamic_cast(static_cast(*sel_iter)); if (sel) { matches = sp_get_same_object_type(sel, matches); @@ -1927,13 +1918,13 @@ void sp_select_same_stroke_style(SPDesktop *desktop) bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true); bool ingroups = TRUE; - SelContainer x,y; - SelContainer matches = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); + std::vector x,y; + std::vector matches = get_all_items(x, desktop->currentRoot(), desktop, onlyvisible, onlysensitive, ingroups, y); Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items=selection->itemList(); + std::vector items=selection->itemList(); - for (SelContainer::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { + for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { SPItem *sel = dynamic_cast(static_cast(*sel_iter)); if (sel) { matches = sp_get_same_stroke_style(sel, matches, SP_STROKE_STYLE_WIDTH); @@ -1953,14 +1944,14 @@ void sp_select_same_stroke_style(SPDesktop *desktop) * Find all items in src list that have the same fill or stroke style as sel * Return the list of matching items */ -SelContainer sp_get_same_fill_or_stroke_color(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type) +std::vector sp_get_same_fill_or_stroke_color(SPItem *sel, std::vector &src, SPSelectStrokeStyleType type) { - SelContainer matches ; + std::vector matches ; gboolean match = false; SPIPaint *sel_paint = (type == SP_FILL_COLOR) ? &(sel->style->fill) : &(sel->style->stroke); - for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + for (std::vector::const_reverse_iterator i=src.rbegin();i!=src.rend();i++) { SPItem *iter = dynamic_cast(static_cast(*i)); if (iter) { SPIPaint *iter_paint = (type == SP_FILL_COLOR) ? &(iter->style->fill) : &(iter->style->stroke); @@ -2000,7 +1991,7 @@ SelContainer sp_get_same_fill_or_stroke_color(SPItem *sel, SelContainer &src, SP } if (match) { - matches.push_front(iter); + matches.push_back(iter); } } else { g_assert_not_reached(); @@ -2051,14 +2042,14 @@ static bool item_type_match (SPItem *i, SPItem *j) * Find all items in src list that have the same object type as sel by type * Return the list of matching items */ -SelContainer sp_get_same_object_type(SPItem *sel, SelContainer &src) +std::vector sp_get_same_object_type(SPItem *sel, std::vector &src) { - SelContainer matches; + std::vector matches; - for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + for (std::vector::const_reverse_iterator i=src.rbegin();i!=src.rend();i++) { SPItem *item = dynamic_cast(static_cast(*i)); if (item && item_type_match(sel, item)) { - matches.push_front(item); + matches.push_back(item); } } return matches; @@ -2068,9 +2059,9 @@ SelContainer sp_get_same_object_type(SPItem *sel, SelContainer &src) * Find all items in src list that have the same stroke style as sel by type * Return the list of matching items */ -SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type) +std::vector sp_get_same_stroke_style(SPItem *sel, std::vector &src, SPSelectStrokeStyleType type) { - SelContainer matches; + std::vector matches; gboolean match = false; SPStyle *sel_style = sel->style; @@ -2083,14 +2074,14 @@ SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectSt * Stroke width needs to handle transformations, so call this function * to get the transformed stroke width */ - SelContainer objects; + std::vector objects; SPStyle *sel_style_for_width = NULL; if (type == SP_STROKE_STYLE_WIDTH) { - objects.push_front(sel); + objects.push_back(sel); sel_style_for_width = new SPStyle(SP_ACTIVE_DOCUMENT); objects_query_strokewidth (objects, sel_style_for_width); } - for (SelContainer::const_iterator i=src.begin();i!=src.end();i++) { + for (std::vector::const_iterator i=src.begin();i!=src.end();i++) { SPItem *iter = dynamic_cast(static_cast(*i)); if (iter) { SPStyle *iter_style = iter->style; @@ -2099,8 +2090,8 @@ SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectSt if (type == SP_STROKE_STYLE_WIDTH) { match = (sel_style->stroke_width.set == iter_style->stroke_width.set); if (sel_style->stroke_width.set && iter_style->stroke_width.set) { - SelContainer objects; - objects.push_front(iter); + std::vector objects; + objects.insert(objects.begin(),iter); SPStyle tmp_style(SP_ACTIVE_DOCUMENT); objects_query_strokewidth (objects, &tmp_style); @@ -2130,7 +2121,7 @@ SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectSt } if (match) { - matches.push_front(iter); + matches.insert(matches.begin(),iter); } } else { g_assert_not_reached(); @@ -2386,11 +2377,11 @@ SPItem *next_item(SPDesktop *desktop, GSList *path, SPObject *root, template -SPItem *next_item_from_list(SPDesktop *desktop, SelContainer const items, +SPItem *next_item_from_list(SPDesktop *desktop, std::vector const items, SPObject *root, bool only_in_viewport, PrefsSelectionContext inlayer, bool onlyvisible, bool onlysensitive) { SPObject *current=root; - for(SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + for(std::vector::const_iterator i = items.begin();i!=items.end();i++) { SPItem *item = dynamic_cast(static_cast(*i)); if ( root->isAncestorOf(item) && ( !only_in_viewport || desktop->isWithinViewport(item) ) ) @@ -2590,7 +2581,7 @@ void sp_selection_clone(SPDesktop *desktop) // sorting items from different parents sorts each parent's subset without possibly mixing them, just what we need sort(reprs.begin(),reprs.end(),sp_repr_compare_position); - SelContainer newsel; + std::vector newsel; for(std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ Inkscape::XML::Node *sel_repr = *i; @@ -2609,7 +2600,7 @@ void sp_selection_clone(SPDesktop *desktop) // add the new clone to the top of the original's parent parent->appendChild(clone); - newsel.push_front(dynamic_cast(clone)); + newsel.push_back(clone); Inkscape::GC::release(clone); } @@ -2642,8 +2633,8 @@ sp_selection_relink(SPDesktop *desktop) // Get a copy of current selection. bool relinked = false; - SelContainer items=selection->itemList(); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = static_cast(*i); if (dynamic_cast(item)) { @@ -2678,10 +2669,10 @@ sp_selection_unlink(SPDesktop *desktop) } // Get a copy of current selection. - SelContainer new_select; + std::vector new_select; bool unlinked = false; - SelContainer items=selection->itemList(); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ SPItem *item = static_cast(*i); if (dynamic_cast(item)) { @@ -2698,7 +2689,7 @@ sp_selection_unlink(SPDesktop *desktop) if (!(dynamic_cast(item) || dynamic_cast(item))) { // keep the non-use item in the new selection - new_select.push_front(item); + new_select.push_back(item); continue; } @@ -2708,7 +2699,7 @@ sp_selection_unlink(SPDesktop *desktop) unlink = use->unlink(); // Unable to unlink use (external or invalid href?) if (!unlink) { - new_select.push_front(item); + new_select.push_back(item); continue; } } else /*if (SP_IS_TREF(use))*/ { @@ -2718,7 +2709,7 @@ sp_selection_unlink(SPDesktop *desktop) unlinked = true; // Add ungrouped items to the new selection. - new_select.push_front(unlink); + new_select.push_back(unlink); } if (!new_select.empty()) { // set new selection @@ -2747,7 +2738,7 @@ sp_select_clone_original(SPDesktop *desktop) // Check if other than two objects are selected - SelContainer items=selection->itemList(); + std::vector items=selection->itemList(); if (items.size() != 1 || !item) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, error); return; @@ -2845,8 +2836,8 @@ void sp_selection_clone_original_path_lpe(SPDesktop *desktop) Inkscape::SVGOStringStream os; SPObject * firstItem = NULL; - SelContainer items=selection->itemList(); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_SHAPE(*i) || SP_IS_TEXT(*i)) { if (firstItem) { os << "|"; @@ -2930,7 +2921,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) Geom::Point center( *c - corner ); // As defined by rotation center center[Geom::Y] = -center[Geom::Y]; - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); //items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); // Why needed? @@ -2948,10 +2939,10 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) } // Create a list of duplicates, to be pasted inside marker element. - SelContainer repr_copies; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector repr_copies; + for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); - repr_copies.push_front(dynamic_cast(dup)); + repr_copies.push_back(dup); } Geom::Rect bbox(desktop->dt2doc(r->min()), desktop->dt2doc(r->max())); @@ -2959,7 +2950,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) if (apply) { // Delete objects so that their clones don't get alerted; // the objects will be restored inside the marker element. - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *item = reinterpret_cast(*i); item->deleteObject(false); } @@ -2987,8 +2978,8 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) static void sp_selection_to_guides_recursive(SPItem *item, bool wholegroups) { SPGroup *group = dynamic_cast(item); if (group && !dynamic_cast(item) && !wholegroups) { - SelContainer items=sp_item_group_item_list(group); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=sp_item_group_item_list(group); + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ sp_selection_to_guides_recursive(static_cast(*i), wholegroups); } } else { @@ -3004,7 +2995,7 @@ void sp_selection_to_guides(SPDesktop *desktop) SPDocument *doc = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); // we need to copy the list because it gets reset when objects are deleted - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); if (items.empty()) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to convert to guides.")); @@ -3019,7 +3010,7 @@ void sp_selection_to_guides(SPDesktop *desktop) // and its entry in the selection list is invalid (crash). // Therefore: first convert all, then delete all. - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ sp_selection_to_guides_recursive(static_cast(*i), wholegroups); } @@ -3282,9 +3273,9 @@ sp_selection_tile(SPDesktop *desktop, bool apply) move_p[Geom::Y] = -move_p[Geom::Y]; Geom::Affine move = Geom::Affine(Geom::Translate(move_p)); - SelContainer items (selection->itemList()); + std::vector items (selection->itemList()); - items.sort(sp_object_compare_position); + sort(items.begin(),items.end(),sp_object_compare_position); // bottommost object, after sorting SPObject *parent = SP_OBJECT(items.front())->parent; @@ -3304,19 +3295,17 @@ sp_selection_tile(SPDesktop *desktop, bool apply) gint pos = SP_OBJECT(items.front())->getRepr()->position(); // create a list of duplicates - SelContainer repr_copies; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector repr_copies; + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); - repr_copies.push_front(dynamic_cast(dup)); + repr_copies.push_back(dup); } - // restore the z-order after prepends - repr_copies.reverse(); Geom::Rect bbox(desktop->dt2doc(r->min()), desktop->dt2doc(r->max())); if (apply) { // delete objects so that their clones don't get alerted; this object will be restored shortly - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *item = reinterpret_cast(*i); item->deleteObject(false); } @@ -3385,12 +3374,12 @@ void sp_selection_untile(SPDesktop *desktop) return; } - SelContainer new_select; + std::vector new_select; bool did = false; - SelContainer items(selection->itemList()); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items(selection->itemList()); + for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ SPItem *item = static_cast(*i); SPStyle *style = item->style; @@ -3427,7 +3416,7 @@ void sp_selection_untile(SPDesktop *desktop) Geom::Affine transform( i->transform * pat_transform ); i->doWriteTransform(i->getRepr(), transform); - new_select.push_front(i); + new_select.push_back(i); } else { g_assert_not_reached(); } @@ -3547,10 +3536,10 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) } // List of the items to show; all others will be hidden - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); // Sort items so that the topmost comes last - items.sort(sp_item_repr_compare_position_obj); + sort(items.begin(),items.end(),sp_item_repr_compare_position); // Generate a random value from the current time (you may create bitmap from the same object(s) // multiple times, and this is done so that they don't clash) @@ -3770,7 +3759,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - SelContainer temp_clip; + std::vector temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -3790,10 +3779,10 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) sp_repr_unparent(current); // paste into topmost_parent (temporarily) - SelContainer copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); + std::vector copied = sp_selection_paste_impl(doc, doc->getObjectByRepr(topmost_parent), temp_clip); if (!copied.empty()) { // if success, // take pasted object (now in topmost_parent) - Inkscape::XML::Node *in_topmost = dynamic_cast(copied.front()); + Inkscape::XML::Node *in_topmost = copied.back(); // make a copy Inkscape::XML::Node *spnew = in_topmost->duplicate(xml_doc); // remove pasted @@ -3875,9 +3864,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ doc->ensureUpToDate(); - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); - items.sort(sp_object_compare_position); + sort(items.begin(),items.end(),sp_object_compare_position); // See lp bug #542004 selection->clear(); @@ -3886,7 +3875,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ GSList *mask_items = NULL; GSList *apply_to_items = NULL; GSList *items_to_delete = NULL; - SelContainer items_to_select; + std::vector items_to_select; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool topmost = prefs->getBool("/options/maskobject/topmost", true); @@ -3897,7 +3886,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // all selected items are used for mask, which is applied to a layer apply_to_items = g_slist_prepend(apply_to_items, desktop->currentLayer()); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); @@ -3906,7 +3895,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_delete = g_slist_prepend(items_to_delete, item); } else { - items_to_select.push_front(item); + items_to_select.push_back((SPItem*)item); } } } else if (!topmost) { @@ -3919,16 +3908,16 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_delete = g_slist_prepend(items_to_delete, item); } - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { if(i==items.begin())continue; apply_to_items = g_slist_prepend(apply_to_items, *i); - items_to_select.push_front(*i); + items_to_select.push_back(*i); } } else { GSList *i = NULL; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { apply_to_items = g_slist_prepend(apply_to_items, *i); - items_to_select.push_front(*i); + items_to_select.push_back(*i); } Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); @@ -3953,7 +3942,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { reprs_to_group.push_back(static_cast(i->data)->getRepr()); - items_to_select.remove(static_cast(i->data)); + items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),static_cast(i->data))); } sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); @@ -3963,7 +3952,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ apply_to_items = NULL; apply_to_items = g_slist_prepend(apply_to_items, doc->getObjectByRepr(group)); - items_to_select.push_front(doc->getObjectByRepr(group)); + items_to_select.push_back((SPItem*)(doc->getObjectByRepr(group))); Inkscape::GC::release(group); } @@ -4003,7 +3992,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *spnew = current->duplicate(xml_doc); gint position = current->position(); - items_to_select.remove(item); + items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),item)); current->parent()->appendChild(group); sp_repr_unparent(current); group->appendChild(spnew); @@ -4012,7 +4001,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ // Apply clip/mask to group instead apply_mask_to = group; - items_to_select.push_front(doc->getObjectByRepr(group)); + items_to_select.push_back((SPItem*)(doc->getObjectByRepr(group))); Inkscape::GC::release(spnew); Inkscape::GC::release(group); } @@ -4027,12 +4016,10 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = items_to_delete; NULL != i; i = i->next) { SPObject *item = reinterpret_cast(i->data); item->deleteObject(false); - items_to_select.remove(item); + items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),item)); } g_slist_free(items_to_delete); - items_to_select.reverse(); - selection->addList(items_to_select); if (apply_clip_path) { @@ -4065,17 +4052,16 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { gchar const *attributeName = apply_clip_path ? "clip-path" : "mask"; std::map referenced_objects; - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); selection->clear(); GSList *items_to_ungroup = NULL; - SelContainer items_to_select(items); - items_to_select.reverse(); + std::vector items_to_select(items); // SPObject* refers to a group containing the clipped path or mask itself, // whereas SPItem* refers to the item being clipped or masked - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (remove_original) { // remember referenced mask/clippath, so orphaned masks can be moved back to document SPItem *item = reinterpret_cast(*i); @@ -4140,7 +4126,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { repr->setPosition((pos + 1) > 0 ? (pos + 1) : 0); SPItem *mask_item = static_cast(desktop->getDocument()->getObjectByRepr(repr)); - items_to_select.push_front(mask_item); + items_to_select.push_back(mask_item); // transform mask, so it is moved the same spot where mask was applied Geom::Affine transform(mask_item->transform); @@ -4155,10 +4141,10 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (GSList *i = items_to_ungroup ; NULL != i ; i = i->next) { SPGroup *group = dynamic_cast(static_cast(i->data)); if (group) { - items_to_select.remove(group); - SelContainer children; + items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),group)); + std::vector children; sp_item_group_ungroup(group, children, false); - items_to_select.splice(items_to_select.begin(),children); + items_to_select.insert(items_to_select.end(),children.rbegin(),children.rend()); } else { g_assert_not_reached(); } @@ -4167,7 +4153,6 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { g_slist_free(items_to_ungroup); // rebuild selection - items_to_select.reverse(); selection->addList(items_to_select); if (apply_clip_path) { diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index bc317d556..2acd62c02 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -143,9 +143,9 @@ enum SPSelectStrokeStyleType { void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolean strok, gboolean style); void sp_select_same_stroke_style(SPDesktop *desktop); void sp_select_same_object_type(SPDesktop *desktop); -SelContainer sp_get_same_fill_or_stroke_color(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type); -SelContainer sp_get_same_stroke_style(SPItem *sel, SelContainer &src, SPSelectStrokeStyleType type); -SelContainer sp_get_same_object_type(SPItem *sel, SelContainer &src); +std::vector sp_get_same_fill_or_stroke_color(SPItem *sel, std::vector &src, SPSelectStrokeStyleType type); +std::vector sp_get_same_stroke_style(SPItem *sel, std::vector &src, SPSelectStrokeStyleType type); +std::vector sp_get_same_object_type(SPItem *sel, std::vector &src); void scroll_to_show_item(SPDesktop *desktop, SPItem *item); @@ -172,9 +172,9 @@ void unlock_all_in_all_layers(SPDesktop *dt); void unhide_all(SPDesktop *dt); void unhide_all_in_all_layers(SPDesktop *dt); -SelContainer &get_all_items(SelContainer &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, SelContainer const &exclude); +std::vector &get_all_items(std::vector &list, SPObject *from, SPDesktop *desktop, bool onlyvisible, bool onlysensitive, bool ingroups, std::vector const &exclude); -SelContainer sp_degroup_list (SelContainer &items); +std::vector sp_degroup_list (std::vector &items); /* selection cycling */ typedef enum diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp index 0625c4002..d86cfa700 100644 --- a/src/selection-describer.cpp +++ b/src/selection-describer.cpp @@ -40,13 +40,13 @@ #include "sp-spiral.h" // Returns a list of terms for the items to be used in the statusbar -char* collect_terms (const SelContainer &items) +char* collect_terms (const std::vector &items) { GSList *check = NULL; std::stringstream ss; bool first = true; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *item = dynamic_cast(reinterpret_cast(*iter)); if (item) { const char *term = item->displayName(); @@ -61,11 +61,11 @@ char* collect_terms (const SelContainer &items) } // Returns the number of terms in the list -static int count_terms (const SelContainer &items) +static int count_terms (const std::vector &items) { GSList *check = NULL; int count=0; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *item = dynamic_cast(reinterpret_cast(*iter)); if (item) { const char *term = item->displayName(); @@ -79,10 +79,10 @@ static int count_terms (const SelContainer &items) } // Returns the number of filtered items in the list -static int count_filtered (const SelContainer &items) +static int count_filtered (const std::vector &items) { int count=0; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *item = dynamic_cast(reinterpret_cast((*iter))); if (item) { count += item->isFiltered(); @@ -122,7 +122,7 @@ void SelectionDescriber::_selectionModified(Inkscape::Selection *selection, guin } void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *selection) { - SelContainer const items = selection->itemList(); + std::vector const items = selection->itemList(); if (items.empty()) { // no items _context.set(Inkscape::NORMAL_MESSAGE, _when_nothing); diff --git a/src/selection.cpp b/src/selection.cpp index cbde9a799..2e8251048 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -44,7 +44,7 @@ namespace Inkscape { Selection::Selection(LayerModel *layers, SPDesktop *desktop) : _objs(SelContainer()), _reprs(std::vector()), - _items(SelContainer()), + _items(std::vector()), _layers(layers), _desktop(desktop), _selection_context(NULL), @@ -234,7 +234,7 @@ void Selection::_remove(SPObject *obj) { _objs.remove(obj); } -void Selection::setList(SelContainer const &list) { +void Selection::setList(std::vector const &list) { // Clear and add, or just clear with emit. if (!list.empty()) { _clear(); @@ -242,14 +242,14 @@ void Selection::setList(SelContainer const &list) { } else clear(); } -void Selection::addList(SelContainer const &list) { +void Selection::addList(std::vector const &list) { if (list.empty()) return; _invalidateCachedLists(); - for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { + for ( std::vector::const_iterator iter=list.begin();iter!=list.end();iter++ ) { SPObject *obj = reinterpret_cast(*iter); if (includes(obj)) continue; _add (obj); @@ -258,11 +258,11 @@ void Selection::addList(SelContainer const &list) { _emitChanged(); } -void Selection::setReprList(SelContainer const &list) { +void Selection::setReprList(std::vector const &list) { _clear(); - for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { - SPObject *obj=_objectForXMLNode(reinterpret_cast(*iter)); + for ( std::vector::const_reverse_iterator iter=list.rbegin();iter!=list.rend();iter++ ) { + SPObject *obj=_objectForXMLNode(*iter); if (obj) { _add(obj); } @@ -280,7 +280,7 @@ SelContainer const &Selection::list() { return _objs; } -SelContainer const &Selection::itemList() { +std::vector const &Selection::itemList() { if (!_items.empty()) { return _items; } @@ -288,18 +288,16 @@ SelContainer const &Selection::itemList() { for ( SelContainer::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { SPObject *obj=reinterpret_cast(*iter); if (SP_IS_ITEM(obj)) { - _items.push_front(SP_ITEM(obj)); + _items.push_back(SP_ITEM(obj)); } } - _items.reverse(); - return _items; } std::vector const &Selection::reprList() { if (!_reprs.empty()) { return _reprs; } - SelContainer list = itemList(); - for ( SelContainer::const_iterator iter=list.begin();iter!=list.end();iter++ ) { + std::vector list = itemList(); + for ( std::vector::const_iterator iter=list.begin();iter!=list.end();iter++ ) { SPObject *obj=reinterpret_cast(*iter); _reprs.push_back(obj->getRepr()); } @@ -340,7 +338,7 @@ SPObject *Selection::single() { } SPItem *Selection::singleItem() { - SelContainer const items=itemList(); + std::vector const items=itemList(); if ( items.size()==1) { return reinterpret_cast(items.front()); } else { @@ -357,11 +355,11 @@ SPItem *Selection::largestItem(Selection::CompareSize compare) { } SPItem *Selection::_sizeistItem(bool sml, Selection::CompareSize compare) { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); gdouble max = sml ? 1e18 : 0; SPItem *ist = NULL; - for ( SelContainer::const_iterator i=items.begin();i!=items.end();i++ ) { + for ( std::vector::const_iterator i=items.begin();i!=items.end();i++ ) { Geom::OptRect obox = SP_ITEM(*i)->desktopPreferredBounds(); if (!obox || obox.isEmpty()) continue; Geom::Rect bbox = *obox; @@ -390,10 +388,10 @@ Geom::OptRect Selection::bounds(SPItem::BBoxType type) const Geom::OptRect Selection::geometricBounds() const { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); Geom::OptRect bbox; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { bbox.unionWith(SP_ITEM(*iter)->desktopGeometricBounds()); } return bbox; @@ -401,10 +399,10 @@ Geom::OptRect Selection::geometricBounds() const Geom::OptRect Selection::visualBounds() const { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); Geom::OptRect bbox; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { bbox.unionWith(SP_ITEM(*iter)->desktopVisualBounds()); } return bbox; @@ -422,10 +420,10 @@ Geom::OptRect Selection::preferredBounds() const Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const { Geom::OptRect bbox; - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); if (items.empty()) return bbox; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *item = SP_ITEM(*iter); bbox |= item->documentBounds(type); } @@ -436,7 +434,7 @@ Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const // If we have a selection of multiple items, then the center of the first item // will be returned; this is also the case in SelTrans::centerRequest() boost::optional Selection::center() const { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); if (!items.empty()) { SPItem *first = reinterpret_cast(items.back()); // from the first item in selection if (first->isCenterSet()) { // only if set explicitly @@ -452,12 +450,12 @@ boost::optional Selection::center() const { } std::vector Selection::getSnapPoints(SnapPreferences const *snapprefs) const { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs snapprefs_dummy.setTargetSnappable(Inkscape::SNAPTARGET_ROTATION_CENTER, false); // locally disable snapping to the item center std::vector p; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *this_item = SP_ITEM(*iter); this_item->getSnappoints(p, &snapprefs_dummy); @@ -505,9 +503,9 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { } uint Selection::numberOfLayers() { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); std::set layers; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPObject *layer = _layers->layerForObject(SP_OBJECT(*iter)); layers.insert(layer); } @@ -515,9 +513,9 @@ uint Selection::numberOfLayers() { } guint Selection::numberOfParents() { - SelContainer const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); std::set parents; - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPObject *parent = SP_OBJECT(*iter)->parent; parents.insert(parent); } diff --git a/src/selection.h b/src/selection.h index f85c6346b..2d5e7c34a 100644 --- a/src/selection.h +++ b/src/selection.h @@ -170,21 +170,21 @@ public: * * @param objs the objects to select */ - void setList(SelContainer const &objs); + void setList(std::vector const &objs); /** * Adds the specified objects to selection, without deselecting first. * * @param objs the objects to select */ - void addList(SelContainer const &objs); + void addList(std::vector const &objs); /** * Clears the selection and selects the specified objects. * * @param repr a list of xml nodes for the items to select */ - void setReprList(std::list const &reprs); + void setReprList(std::vector const &reprs); /** Add items from an STL iterator range to the selection. * \param from the begin iterator @@ -256,7 +256,7 @@ public: /** Returns the list of selected objects. */ std::list const &list(); /** Returns the list of selected SPItems. */ - std::list const &itemList(); + std::vector const &itemList(); /** Returns a list of the xml nodes of all selected objects. */ /// \todo only returns reprs of SPItems currently; need a separate /// method for that @@ -378,7 +378,7 @@ private: mutable std::list _objs; mutable std::vector _reprs; - mutable std::list _items; + mutable std::vector _items; void add_box_perspective(SPBox3D *box); void add_3D_boxes_recursively(SPObject *obj); diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 8c06356db..0a428edf2 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -112,7 +112,7 @@ Inkscape::SelTrans::SelTrans(SPDesktop *desktop) : _opposite_for_bboxpoints(Geom::Point(0,0)), _origin_for_specpoints(Geom::Point(0,0)), _origin_for_bboxpoints(Geom::Point(0,0)), - _stamp_cache(SelContainer()), + _stamp_cache(std::vector()), _message_context(desktop->messageStack()), _bounding_box_prefs_observer(*this) { @@ -239,8 +239,8 @@ void Inkscape::SelTrans::setCenter(Geom::Point const &p) _center_is_set = true; // Write the new center position into all selected items - SelContainer items=_desktop->selection->itemList(); - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + std::vector items=_desktop->selection->itemList(); + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *it = SP_ITEM(*iter); it->setCenter(p); // only set the value; updating repr and document_done will be done once, on ungrab @@ -269,8 +269,8 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s return; } - SelContainer items=_desktop->selection->itemList(); - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + std::vector items=_desktop->selection->itemList(); + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *it = reinterpret_cast(sp_object_ref(SP_ITEM(*iter), NULL)); _items.push_back(it); _items_const.push_back(it); @@ -492,8 +492,8 @@ void Inkscape::SelTrans::ungrab() if (_center_is_set) { // we were dragging center; update reprs and commit undoable action - SelContainer items=_desktop->selection->itemList(); - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + std::vector items=_desktop->selection->itemList(); + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *it = SP_ITEM(*iter); it->updateRepr(); } @@ -524,17 +524,17 @@ void Inkscape::SelTrans::stamp() /* stamping mode */ if (!_empty) { - SelContainer l; + std::vector l; if (!_stamp_cache.empty()) { l = _stamp_cache; } else { /* Build cache */ l = selection->itemList(); - l.sort(sp_object_compare_position); + sort(l.begin(),l.end(),sp_object_compare_position); _stamp_cache = l; } - for(SelContainer::const_iterator x=l.begin();x!=l.end();x++) { + for(std::vector::const_iterator x=l.begin();x!=l.end();x++) { SPItem *original_item = SP_ITEM(*x); Inkscape::XML::Node *original_repr = original_item->getRepr(); @@ -711,8 +711,8 @@ void Inkscape::SelTrans::handleClick(SPKnot */*knot*/, guint state, SPSelTransHa case HANDLE_CENTER: if (state & GDK_SHIFT_MASK) { // Unset the center position for all selected items - SelContainer items=_desktop->selection->itemList(); - for ( SelContainer::const_iterator iter=items.begin();iter!=items.end();iter++ ) { + std::vector items=_desktop->selection->itemList(); + for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPItem *it = SP_ITEM(*iter); it->unsetCenter(); it->updateRepr(); @@ -1283,7 +1283,7 @@ gboolean Inkscape::SelTrans::centerRequest(Geom::Point &pt, guint state) // items will share a single center. While dragging that single center, it should never snap to the // centers of any of the selected objects. Therefore we will have to pass the list of selected items // to the snapper, to avoid self-snapping of the rotation center - SelContainer items = const_cast(_selection)->itemList(); + std::vector items = const_cast(_selection)->itemList(); SnapManager &m = _desktop->namedview->snap_manager; m.setup(_desktop); m.setRotationCenterSource(items); diff --git a/src/seltrans.h b/src/seltrans.h index 8f9c329ed..26c2e9cd9 100644 --- a/src/seltrans.h +++ b/src/seltrans.h @@ -187,7 +187,7 @@ private: SPCtrlLine *_l[4]; unsigned int _sel_changed_id; unsigned int _sel_modified_id; - SelContainer _stamp_cache; + std::vector _stamp_cache; Geom::Point _origin; ///< position of origin for transforms Geom::Point _point; ///< original position of the knot being used for the current transform diff --git a/src/snap.cpp b/src/snap.cpp index a7145b834..c711874d7 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -43,7 +43,7 @@ SnapManager::SnapManager(SPNamedView const *v) : object(this, 0), snapprefs(), _named_view(v), - _rotation_center_source_items(SelContainer()), + _rotation_center_source_items(std::vector()), _guide_to_ignore(NULL), _desktop(NULL), _snapindicator(true), @@ -1053,8 +1053,8 @@ void SnapManager::setupIgnoreSelection(SPDesktop const *desktop, _items_to_ignore.clear(); Inkscape::Selection *sel = _desktop->selection; - SelContainer const items = sel->itemList(); - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + std::vector const items = sel->itemList(); + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { _items_to_ignore.push_back(static_cast(*i)); } } diff --git a/src/snap.h b/src/snap.h index 012eb072b..49bdbfa7c 100644 --- a/src/snap.h +++ b/src/snap.h @@ -145,8 +145,8 @@ public: // of this rotation center; this reference is used to make sure that we do not snap a rotation // center to itself // NOTE: Must be called after calling setup(), not before! - void setRotationCenterSource(const SelContainer &items) {_rotation_center_source_items = items;} - SelContainer getRotationCenterSource() {return _rotation_center_source_items;} + void setRotationCenterSource(const std::vector &items) {_rotation_center_source_items = items;} + const std::vector &getRotationCenterSource() {return _rotation_center_source_items;} // freeSnapReturnByRef() is preferred over freeSnap(), because it only returns a // point if snapping has occurred (by overwriting p); otherwise p is untouched @@ -490,7 +490,7 @@ protected: private: std::vector _items_to_ignore; ///< Items that should not be snapped to, for example the items that are currently being dragged. Set using the setup() method - SelContainer _rotation_center_source_items; // to avoid snapping a rotation center to itself + std::vector _rotation_center_source_items; // to avoid snapping a rotation center to itself SPGuide *_guide_to_ignore; ///< A guide that should not be snapped to, e.g. the guide that is currently being dragged SPDesktop const *_desktop; bool _snapindicator; ///< When true, an indicator will be drawn at the position that was being snapped to diff --git a/src/sp-conn-end.cpp b/src/sp-conn-end.cpp index bd139277d..d09699f41 100644 --- a/src/sp-conn-end.cpp +++ b/src/sp-conn-end.cpp @@ -50,8 +50,8 @@ static bool try_get_intersect_point_with_item_recursive(Geom::PathVector& conn_p // consider all first-order children double child_pos = 0.0; - SelContainer g = sp_item_group_item_list(group); - for (SelContainer::const_iterator i = g.begin();i!=g.end();i++) { + std::vector g = sp_item_group_item_list(group); + for (std::vector::const_iterator i = g.begin();i!=g.end();i++) { SPItem* child_item = SP_ITEM(*i); try_get_intersect_point_with_item_recursive(conn_pv, child_item, item_transform * child_item->transform, child_pos); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index e6531c6be..f09a4ee47 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -387,7 +387,7 @@ void SPGroup::snappoints(std::vector &p, Inkscape: void -sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done) +sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_done) { g_return_if_fail (group != NULL); @@ -547,7 +547,7 @@ sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done) Inkscape::GC::release(repr); if (!children.empty() && item) { - children.push_front(dynamic_cast(item)); + children.insert(children.begin(),item); } items = g_slist_remove (items, items->data); @@ -562,17 +562,16 @@ sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done) * some API for list aspect of SPGroup */ -SelContainer sp_item_group_item_list(SPGroup * group) +std::vector sp_item_group_item_list(SPGroup * group) { - SelContainer s; + std::vector s; g_return_val_if_fail(group != NULL, s); for (SPObject *o = group->firstChild() ; o ; o = o->getNext() ) { if ( dynamic_cast(o) ) { - s.push_front(o); + s.push_back((SPItem*)o); } } - s.reverse(); return s; } @@ -813,9 +812,9 @@ void SPGroup::update_patheffect(bool write) { g_message("sp_group_update_patheffect: %p\n", lpeitem); #endif - SelContainer const item_list = sp_item_group_item_list(this); + std::vector const item_list = sp_item_group_item_list(this); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); SPLPEItem *lpeItem = dynamic_cast(subitem); @@ -841,9 +840,9 @@ void SPGroup::update_patheffect(bool write) { static void sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup, bool write) { - SelContainer const item_list = sp_item_group_item_list(group); + std::vector const item_list = sp_item_group_item_list(group); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); SPGroup *subGroup = dynamic_cast(subitem); diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 9a5ee0161..dcabea78c 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -96,10 +96,10 @@ public: virtual void update_patheffect(bool write); }; -void sp_item_group_ungroup (SPGroup *group, SelContainer &children, bool do_done = true); +void sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_done = true); -SelContainer sp_item_group_item_list (SPGroup *group); +std::vector sp_item_group_item_list (SPGroup *group); SPObject *sp_item_group_get_child_by_name (SPGroup *group, SPObject *ref, const char *name); #endif diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 1305efd83..1f4704e22 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -353,8 +353,8 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); } if (SP_IS_GROUP(lpeitem)) { - SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(subitem)); @@ -387,8 +387,8 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem) sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(clipPath->firstChild())); } } - SelContainer item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(subitem)); @@ -680,8 +680,8 @@ SPLPEItem::apply_to_clippath(SPItem *item) } } if(SP_IS_GROUP(item)){ - SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); apply_to_clippath(SP_ITEM(subitem)); } @@ -732,8 +732,8 @@ SPLPEItem::apply_to_mask(SPItem *item) } } if(SP_IS_GROUP(item)){ - SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); apply_to_mask(SP_ITEM(subitem)); } @@ -746,8 +746,8 @@ SPLPEItem::apply_to_clip_or_mask_group(SPItem *group, SPItem *item) if (!SP_IS_GROUP(group)) { return; } - SelContainer item_list = sp_item_group_item_list(SP_GROUP(group)); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = sp_item_group_item_list(SP_GROUP(group)); + for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { SPObject *subitem = static_cast(*iter); if (SP_IS_GROUP(subitem)) { apply_to_clip_or_mask_group(SP_ITEM(subitem), item); diff --git a/src/sp-marker.cpp b/src/sp-marker.cpp index 66b445265..5bb80bd39 100644 --- a/src/sp-marker.cpp +++ b/src/sp-marker.cpp @@ -429,7 +429,7 @@ sp_marker_hide (SPMarker *marker, unsigned int key) } -const gchar *generate_marker(SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move) +const gchar *generate_marker(std::vector &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move) { Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -452,8 +452,8 @@ const gchar *generate_marker(SelContainer &reprs, Geom::Rect bounds, SPDocument const gchar *mark_id = repr->attribute("id"); SPObject *mark_object = document->getObjectById(mark_id); - for (SelContainer::const_iterator i=reprs.begin();i!=reprs.end();i++){ - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(*i); + for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ + Inkscape::XML::Node *node = (*i); SPItem *copy = SP_ITEM(mark_object->appendChildRepr(node)); Geom::Affine dup_transform; diff --git a/src/sp-marker.h b/src/sp-marker.h index 594c164c5..56cbaf94f 100644 --- a/src/sp-marker.h +++ b/src/sp-marker.h @@ -101,7 +101,7 @@ Inkscape::DrawingItem *sp_marker_show_instance (SPMarker *marker, Inkscape::Draw unsigned int key, unsigned int pos, Geom::Affine const &base, float linewidth); void sp_marker_hide (SPMarker *marker, unsigned int key); -const char *generate_marker (SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); +const char *generate_marker (std::vector &reprs, Geom::Rect bounds, SPDocument *document, Geom::Point center, Geom::Affine move); SPObject *sp_marker_fork_if_necessary(SPObject *marker); #endif diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index d5eff9796..33d66c5dc 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -408,7 +408,7 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se g_free(c); } -const gchar *pattern_tile(const SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) +const gchar *pattern_tile(const std::vector &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) { Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -426,7 +426,7 @@ const gchar *pattern_tile(const SelContainer &reprs, Geom::Rect bounds, SPDocume const gchar *pat_id = repr->attribute("id"); SPObject *pat_object = document->getObjectById(pat_id); - for (SelContainer::const_iterator i=reprs.begin();i!=reprs.end();i++){ + for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ Inkscape::XML::Node *node = (Inkscape::XML::Node *)(*i); SPItem *copy = SP_ITEM(pat_object->appendChildRepr(node)); diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 0e2b058b5..34dd5a05b 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -89,7 +89,7 @@ SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const char *property); void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); -const char *pattern_tile (const SelContainer &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); +const char *pattern_tile (const std::vector &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); SPPattern *pattern_getroot (SPPattern *pat); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 107dfc629..6e47dfff3 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -331,7 +331,7 @@ void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb, const Glib::ustring description) { SPDocument *doc = selection->layers()->getDocument(); - SelContainer il= selection->itemList(); + std::vector il= selection->itemList(); // allow union on a single object for the purpose of removing self overlapse (svn log, revision 13334) if ( (il.size() < 2) && (bop != bool_op_union)) { @@ -403,7 +403,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // first check if all the input objects have shapes // otherwise bail out - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++) + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++) { SPItem *item = SP_ITEM(*l); if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) @@ -421,7 +421,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool int curOrig; { curOrig = 0; - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++) + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++) { // apply live path effects prior to performing boolean operation if (SP_IS_LPE_ITEM(*l)) { @@ -474,7 +474,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool theShapeA->ConvertToShape(theShape, origWind[0]); curOrig = 1; - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ if(*l==il.front())continue; originaux[curOrig]->ConvertWithBackData(0.1); @@ -671,7 +671,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (res->descr_cmd.size() <= 1) { // only one command, presumably a moveto: it isn't a path - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ SP_OBJECT(*l)->deleteObject(); } DocumentUndo::done(doc, SP_VERB_NONE, description); @@ -720,7 +720,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool gchar *desc = source->desc(); // remove source paths selection->clear(); - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ // if this is the bottommost object, if (!strcmp(reinterpret_cast(*l)->getRepr()->attribute("id"), id)) { // delete it so that its clones don't get alerted; this object will be restored shortly, with the same id @@ -1157,8 +1157,8 @@ sp_selected_path_outline(SPDesktop *desktop) } bool did = false; - SelContainer il(selection->itemList()); - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + std::vector il(selection->itemList()); + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ SPItem *item = SP_ITEM(*l); if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) @@ -1769,8 +1769,8 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) } bool did = false; - SelContainer il(selection->itemList()); - for (SelContainer::const_iterator l = il.begin(); l != il.end(); l++){ + std::vector il(selection->itemList()); + for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ SPItem *item = SP_ITEM(*l); SPCurve *curve = NULL; @@ -1967,7 +1967,7 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) static bool sp_selected_path_simplify_items(SPDesktop *desktop, - Inkscape::Selection *selection, SelContainer &items, + Inkscape::Selection *selection, std::vector &items, float threshold, bool justCoalesce, float angleLimit, bool breakableAngles, bool modifySelection); @@ -1986,7 +1986,7 @@ sp_selected_path_simplify_item(SPDesktop *desktop, //If this is a group, do the children instead if (SP_IS_GROUP(item)) { - SelContainer items = sp_item_group_item_list(SP_GROUP(item)); + std::vector items = sp_item_group_item_list(SP_GROUP(item)); return sp_selected_path_simplify_items(desktop, selection, items, threshold, justCoalesce, @@ -2111,7 +2111,7 @@ sp_selected_path_simplify_item(SPDesktop *desktop, bool sp_selected_path_simplify_items(SPDesktop *desktop, - Inkscape::Selection *selection, SelContainer &items, + Inkscape::Selection *selection, std::vector &items, float threshold, bool justCoalesce, float angleLimit, bool breakableAngles, bool modifySelection) @@ -2142,7 +2142,7 @@ sp_selected_path_simplify_items(SPDesktop *desktop, // set "busy" cursor desktop->setWaitingCursor(); - for (SelContainer::const_iterator l = items.begin(); l != items.end(); l++){ + for (std::vector::const_iterator l = items.begin(); l != items.end(); l++){ SPItem *item = SP_ITEM(*l); if (!(SP_IS_GROUP(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item))) @@ -2191,7 +2191,7 @@ sp_selected_path_simplify_selection(SPDesktop *desktop, float threshold, bool ju return; } - SelContainer items(selection->itemList()); + std::vector items(selection->itemList()); bool didSomething = sp_selected_path_simplify_items(desktop, selection, items, threshold, diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 391e255a5..33192a330 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -43,8 +43,8 @@ using Inkscape::DocumentUndo; static SPItem * flowtext_in_selection(Inkscape::Selection *selection) { - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_FLOWTEXT(*i)) return ((SPItem *) *i); } @@ -54,8 +54,8 @@ flowtext_in_selection(Inkscape::Selection *selection) static SPItem * text_or_flowtext_in_selection(Inkscape::Selection *selection) { - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) return ((SPItem *) *i); } @@ -65,8 +65,8 @@ text_or_flowtext_in_selection(Inkscape::Selection *selection) static SPItem * shape_in_selection(Inkscape::Selection *selection) { - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_SHAPE(*i)) return ((SPItem *) *i); } @@ -196,8 +196,8 @@ text_remove_from_path() } bool did = false; - SelContainer items(selection->itemList()); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items(selection->itemList()); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *obj = SP_OBJECT(*i); if (SP_IS_TEXT_TEXTPATH(obj)) { @@ -260,8 +260,8 @@ text_remove_all_kerns() bool did = false; - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *obj = SP_OBJECT(*i); if (!SP_IS_TEXT(obj) && !SP_IS_TSPAN(obj) && !SP_IS_FLOWTEXT(obj)) { @@ -320,8 +320,8 @@ text_flow_into_shape() g_return_if_fail(SP_IS_FLOWREGION(object)); /* Add clones */ - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_SHAPE(item)){ Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); @@ -392,11 +392,11 @@ text_unflow () return; } - SelContainer new_objs; + std::vector new_objs; GSList *old_objs = NULL; - SelContainer items = selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items = selection->itemList(); + for(std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ if (!SP_IS_FLOWTEXT(SP_OBJECT(*i))) { continue; @@ -443,7 +443,7 @@ text_unflow () SPText *text = SP_TEXT(text_object); text->_adjustFontsizeRecursive(text, ex); - new_objs.push_front(text_object); + new_objs.push_back((SPItem*)text_object); old_objs = g_slist_prepend (old_objs, flowtext); Inkscape::GC::release(rtext); @@ -478,9 +478,9 @@ flowtext_to_text() bool did = false; - SelContainer reprs; - SelContainer items(selection->itemList()); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector reprs; + std::vector items(selection->itemList()); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = (SPItem *) *i; @@ -510,7 +510,7 @@ flowtext_to_text() Inkscape::GC::release(repr); item->deleteObject(); - reprs.push_front(dynamic_cast(repr)); + reprs.push_back(repr); } diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 44d90b4ae..88210dc0b 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -67,8 +67,8 @@ static void te_update_layout_now (SPItem *item) void te_update_layout_now_recursive(SPItem *item) { if (SP_IS_GROUP(item)) { - SelContainer item_list = sp_item_group_item_list(SP_GROUP(item)); - for(SelContainer::const_iterator i=item_list.begin();i!=item_list.end();i++){ + std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); + for(std::vector::const_iterator i=item_list.begin();i!=item_list.end();i++){ SPItem* list_item = static_cast(*i); te_update_layout_now_recursive(list_item); } diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 2becca5cc..4853f127c 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -65,7 +65,7 @@ SPImage *Tracer::getSelectedSPImage() if (sioxEnabled) { SPImage *img = NULL; - SelContainer const list = sel->itemList(); + std::vector const list = sel->itemList(); std::vector items; sioxShapes.clear(); @@ -74,7 +74,7 @@ SPImage *Tracer::getSelectedSPImage() them as bottom-to-top so that we can discover the image and any SPItems above it */ - for (SelContainer::const_iterator i=list.begin() ; list.end()!=i ; i++) + for (std::vector::const_iterator i=list.begin() ; list.end()!=i ; i++) { if (!SP_IS_ITEM(*i)) { diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 20b43af3b..6c15121c2 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -523,8 +523,8 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a // resize each object in the selection if (separately) { - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (item) { Geom::OptRect obj_size = item->desktopVisualBounds(); @@ -579,8 +579,8 @@ bool ClipboardManagerImpl::pastePathEffect(SPDesktop *desktop) desktop->doc()->importDefs(tempdoc); // make sure all selected items are converted to paths first (i.e. rectangles) sp_selected_to_lpeitems(desktop); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); _applyPathEffect(item, effectstack); } @@ -662,8 +662,8 @@ Glib::ustring ClipboardManagerImpl::getShapeOrTextObjectId(SPDesktop *desktop) void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) { // copy the defs used by all items - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (item) { _copyUsedDefs(item); @@ -673,10 +673,10 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) } // copy the representation of the items - SelContainer sorted_items(itemlist); - sorted_items.sort(sp_object_compare_position); + std::vector sorted_items(itemlist); + sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); - for(SelContainer::const_iterator i=sorted_items.begin();i!=sorted_items.end();i++){ + for(std::vector::const_iterator i=sorted_items.begin();i!=sorted_items.end();i++){ SPItem *item = SP_ITEM(*i); if (item) { Inkscape::XML::Node *obj = item->getRepr(); @@ -1157,7 +1157,7 @@ void ClipboardManagerImpl::_onGet(Gtk::SelectionData &sel, guint /*info*/) sp_repr_get_double(nv, "inkscape:pageopacity", &opacity); bgcolor |= SP_COLOR_F_TO_U(opacity); } - SelContainer x; + std::vector x; sp_export_png_file(_clipboardSPDoc, filename, area, width, height, dpi, dpi, bgcolor, NULL, NULL, true, x); } else diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 562bc28b7..34dbd150b 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -98,7 +98,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups"); using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; const Coeffs &a = _allCoeffs[index]; @@ -148,7 +148,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) b = selection->preferredBounds(); //Move each item in the selected list separately - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { SPItem* item=static_cast (*it); @@ -251,18 +251,18 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects - SelContainer::iterator second(selected.begin()); + std::vector::iterator second(selected.begin()); ++second; if (second == selected.end()) return; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int prefs_bbox = prefs->getBool("/tools/bounding_box"); std::vector< BBoxSort > sorted; - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) {SPItem *item=static_cast(*it); @@ -540,10 +540,6 @@ private : return (a->isSiblingOf(b)); } - static bool local_obj_compare(SPObject* a,SPObject* b){ - return ActionExchangePositions::sort_compare(static_cast(a),static_cast(b)); - } - virtual void on_button_click() { SPDesktop *desktop = _dialog.getDesktop(); @@ -553,7 +549,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -571,9 +567,9 @@ private : } else { // sorting by ZOrder is outomatically done by not setting the center center.reset(); } - selected.sort(local_obj_compare); + sort(selected.begin(),selected.end(),sort_compare); } - SelContainer::iterator it(selected.begin()); + std::vector::iterator it(selected.begin()); SPItem* item=static_cast(*it); Geom::Point p1 = (item)->getCenter(); for (++it ;it != selected.end(); ++it) @@ -619,7 +615,7 @@ private : Inkscape::Preferences *prefs = Inkscape::Preferences::get(); int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - SelContainer x(_dialog.getDesktop()->getSelection()->itemList()); + std::vector x(_dialog.getDesktop()->getSelection()->itemList()); unclump (x); // restore compensation setting @@ -651,7 +647,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -675,7 +671,7 @@ private : int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { @@ -750,7 +746,7 @@ private : if (!selection) return; using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; //Check 2 or more selected objects @@ -761,7 +757,7 @@ private : std::vector sorted; - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { @@ -805,7 +801,7 @@ private : } } else { - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index abfab8b19..680757373 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -2104,16 +2104,17 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) SPObject *obj = selection->singleItem(); SPObject *parent = obj->parent; - SelContainer to_unclump; // not including the original + std::vector to_unclump; // not including the original for (SPObject *child = parent->firstChild(); child != NULL; child = child->next) { if (clonetiler_is_a_clone_of (child, obj)) { - to_unclump.push_front(child); + to_unclump.push_back((SPItem*)child); } } desktop->getDocument()->ensureUpToDate(); - + std::vector tu2(to_unclump); + for(int i=0;igetDocument(), SP_VERB_DIALOG_CLONETILER, diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 0667ba721..32eed088c 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -1024,8 +1024,8 @@ void Export::onExport () gint export_count = 0; - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i = itemlist.begin();i!=itemlist.end() && !interrupted ;i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i = itemlist.begin();i!=itemlist.end() && !interrupted ;i++){ SPItem *item = reinterpret_cast(*i); prog_dlg->set_data("current", GINT_TO_POINTER(n)); @@ -1064,7 +1064,7 @@ void Export::onExport () _("Exporting file %s..."), safeFile), desktop); MessageCleaner msgFlashCleanup(desktop->messageStack()->flashF(Inkscape::IMMEDIATE_MESSAGE, _("Exporting file %s..."), safeFile), desktop); - SelContainer x; + std::vector x; if (!sp_export_png_file (doc, path.c_str(), *area, width, height, dpi, dpi, nv->pagecolor, @@ -1154,7 +1154,7 @@ void Export::onExport () prog_dlg->set_data("total", GINT_TO_POINTER(0)); /* Do export */ - SelContainer x; + std::vector x; ExportResult status = sp_export_png_file(desktop->getDocument(), path.c_str(), Geom::Rect(Geom::Point(x0, y0), Geom::Point(x1, y1)), width, height, xdpi, ydpi, nv->pagecolor, diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index f67c1d173..a6312140d 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1465,8 +1465,8 @@ void FilterEffectsDialog::FilterModifier::update_selection(Selection *sel) } std::set used; - SelContainer itemlist=sel->itemList(); - for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + std::vector itemlist=sel->itemList(); + for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPStyle *style = obj->style; if (!style || !SP_IS_ITEM(obj)) { @@ -1545,8 +1545,8 @@ void FilterEffectsDialog::FilterModifier::on_selection_toggled(const Glib::ustri if((*iter)[_columns.sel] == 1) filter = 0; - SelContainer itemlist=sel->itemList(); - for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + std::vector itemlist=sel->itemList(); + for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { SPItem * item = SP_ITEM(*i); SPStyle *style = item->style; g_assert(style != NULL); @@ -1649,9 +1649,9 @@ void FilterEffectsDialog::FilterModifier::remove_filter() SPDocument* doc = filter->document; // Delete all references to this filter - SelContainer x,y; - SelContainer all = get_all_items(x, _desktop->currentRoot(), _desktop, false, false, true, y); - for(SelContainer::const_iterator i=all.begin(); all.end() != i; i++) { + std::vector x,y; + std::vector all = get_all_items(x, _desktop->currentRoot(), _desktop, false, false, true, y); + for(std::vector::const_iterator i=all.begin(); all.end() != i; i++) { if (!SP_IS_ITEM(*i)) { continue; } diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 43ecb60ac..283d79c0d 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -549,7 +549,7 @@ bool Find::item_font_match(SPItem *item, const gchar *text, bool exact, bool cas } -SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) +std::vector Find::filter_fields (std::vector &l, bool exact, bool casematch) { Glib::ustring tmp = entry_find.getEntry()->get_text(); if (tmp.empty()) { @@ -557,17 +557,17 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) } gchar* text = g_strdup(tmp.c_str()); - SelContainer in = l; - SelContainer out; + std::vector in = l; + std::vector out; if (check_searchin_text.get_active()) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_text_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)) { - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_text_match(item, text, exact, casematch, _action_replace); } @@ -584,12 +584,12 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) bool attrvalue = check_attributevalue.get_active(); if (ids) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); if (item_id_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)) { - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_id_match(item, text, exact, casematch, _action_replace); } @@ -600,13 +600,13 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) if (style) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_style_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)){ - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_style_match(item, text, exact, casematch, _action_replace); } @@ -617,13 +617,13 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) if (attrname) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attr_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)) { - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_attr_match(item, text, exact, casematch, _action_replace); } @@ -634,13 +634,13 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) if (attrvalue) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attrvalue_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)) { - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_attrvalue_match(item, text, exact, casematch, _action_replace); } @@ -651,13 +651,13 @@ SelContainer Find::filter_fields (SelContainer &l, bool exact, bool casematch) if (font) { - for(SelContainer::const_iterator i=in.begin(); in.end() != i; i++) { + for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_font_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(),*i)) { - out.push_front(*i); + out.push_back(*i); if (_action_replace) { item_font_match(item, text, exact, casematch, _action_replace); } @@ -715,29 +715,29 @@ bool Find::item_type_match (SPItem *item) return false; } -SelContainer Find::filter_types (SelContainer &l) +std::vector Find::filter_types (std::vector &l) { - SelContainer n; - for(SelContainer::const_iterator i=l.begin(); l.end() != i; i++) { + std::vector n; + for(std::vector::const_reverse_iterator i=l.rbegin(); l.rend() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_type_match(item)) { - n.push_front(*i); + n.push_back(*i); } } return n; } -SelContainer &Find::filter_list (SelContainer &l, bool exact, bool casematch) +std::vector &Find::filter_list (std::vector &l, bool exact, bool casematch) { l = filter_types (l); l = filter_fields (l, exact, casematch); return l; } -SelContainer &Find::all_items (SPObject *r, SelContainer &l, bool hidden, bool locked) +std::vector &Find::all_items (SPObject *r, std::vector &l, bool hidden, bool locked) { if (dynamic_cast(r)) { return l; // we're not interested in items in defs @@ -751,7 +751,7 @@ SelContainer &Find::all_items (SPObject *r, SelContainer &l, bool hidden, bool l SPItem *item = dynamic_cast(child); if (item && !child->cloned && !desktop->isLayer(item)) { if ((hidden || !desktop->itemIsHidden(item)) && (locked || !item->isLocked())) { - l.push_front(child); + l.insert(l.begin(),(SPItem*)child); } } l = all_items (child, l, hidden, locked); @@ -759,10 +759,10 @@ SelContainer &Find::all_items (SPObject *r, SelContainer &l, bool hidden, bool l return l; } -SelContainer &Find::all_selection_items (Inkscape::Selection *s, SelContainer &l, SPObject *ancestor, bool hidden, bool locked) +std::vector &Find::all_selection_items (Inkscape::Selection *s, std::vector &l, SPObject *ancestor, bool hidden, bool locked) { - SelContainer itemlist=s->itemList(); - for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + std::vector itemlist=s->itemList(); + for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { SPObject *obj = SP_OBJECT (*i); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); @@ -817,7 +817,7 @@ void Find::onAction() bool casematch = check_case_sensitive.get_active(); blocked = true; - SelContainer l; + std::vector l; if (check_scope_selection.get_active()) { if (check_scope_layer.get_active()) { l = all_selection_items (desktop->selection, l, desktop->currentLayer(), hidden, locked); @@ -833,7 +833,7 @@ void Find::onAction() } guint all = l.size(); - SelContainer n = filter_list (l, exact, casematch); + std::vector n = filter_list (l, exact, casematch); if (!n.empty()) { int count = n.size(); diff --git a/src/ui/dialog/find.h b/src/ui/dialog/find.h index 1aded96f2..61f4463ae 100644 --- a/src/ui/dialog/find.h +++ b/src/ui/dialog/find.h @@ -149,10 +149,10 @@ protected: /** * Function to filter a list of items based on the item type by calling each item_XXX_match function */ - SelContainer filter_fields (SelContainer &l, bool exact, bool casematch); + std::vector filter_fields (std::vector &l, bool exact, bool casematch); bool item_type_match (SPItem *item); - SelContainer filter_types (SelContainer &l); - SelContainer & filter_list (SelContainer &l, bool exact, bool casematch); + std::vector filter_types (std::vector &l); + std::vector & filter_list (std::vector &l, bool exact, bool casematch); /** * Find a string within a string and returns true if found with options for exact and casematching @@ -173,12 +173,12 @@ protected: * recursive function to return a list of all the items in the SPObject tree * */ - SelContainer & all_items (SPObject *r, SelContainer &l, bool hidden, bool locked); + std::vector & all_items (SPObject *r, std::vector &l, bool hidden, bool locked); /** * to return a list of all the selected items * */ - SelContainer & all_selection_items (Inkscape::Selection *s, SelContainer &l, SPObject *ancestor, bool hidden, bool locked); + std::vector & all_selection_items (Inkscape::Selection *s, std::vector &l, SPObject *ancestor, bool hidden, bool locked); /** * Shrink the dialog size when the expander widget is closed diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index 625ed99b9..e9a0fc017 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -70,7 +70,7 @@ FontSubstitution::checkFontSubstitutions(SPDocument* doc) int show_dlg = prefs->getInt("/options/font/substitutedlg", 0); if (show_dlg) { Glib::ustring out; - SelContainer l = getFontReplacedItems(doc, &out); + std::vector l = getFontReplacedItems(doc, &out); if (out.length() > 0) { show(out, l); } @@ -78,7 +78,7 @@ FontSubstitution::checkFontSubstitutions(SPDocument* doc) } void -FontSubstitution::show(Glib::ustring out, SelContainer &l) +FontSubstitution::show(Glib::ustring out, std::vector &l) { Gtk::MessageDialog warning(_("\nSome fonts are not available and have been substituted."), false, Gtk::MESSAGE_INFO, Gtk::BUTTONS_OK, true); @@ -148,17 +148,17 @@ FontSubstitution::show(Glib::ustring out, SelContainer &l) * b. Build up a list of the objects rendered fonts - taken for the objects layout/spans * If there are fonts in a. that are not in b. then those fonts have been substituted. */ -SelContainer FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustring *out) +std::vector FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustring *out) { SPDesktop *desktop = SP_ACTIVE_DESKTOP; - SelContainer allList; - SelContainer outList,x,y; + std::vector allList; + std::vector outList,x,y; std::set setErrors; std::set setFontSpans; std::map mapFontStyles; allList = get_all_items(x, doc->getRoot(), desktop, false, false, true, y); - for(SelContainer::const_iterator i = allList.begin();i!=allList.end();i++){ + for(std::vector::const_iterator i = allList.begin();i!=allList.end();i++){ SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; Glib::ustring family = ""; @@ -214,8 +214,8 @@ SelContainer FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustri } // Check if any document styles are not in the actual layout - std::map::const_iterator mapIter; - for (mapIter = mapFontStyles.begin(); mapIter != mapFontStyles.end(); ++mapIter) { + std::map::const_reverse_iterator mapIter; + for (mapIter = mapFontStyles.rbegin(); mapIter != mapFontStyles.rend(); ++mapIter) { SPItem *item = mapIter->first; Glib::ustring fonts = mapIter->second; @@ -248,7 +248,7 @@ SelContainer FontSubstitution::getFontReplacedItems(SPDocument* doc, Glib::ustri Glib::ustring err = Glib::ustring::compose( _("Font '%1' substituted with '%2'"), fonts.c_str(), subName.c_str()); setErrors.insert(err); - outList.push_front(item); + outList.push_back(item); } } diff --git a/src/ui/dialog/font-substitution.h b/src/ui/dialog/font-substitution.h index eed7adcf2..cdb4e22b4 100644 --- a/src/ui/dialog/font-substitution.h +++ b/src/ui/dialog/font-substitution.h @@ -25,13 +25,13 @@ public: FontSubstitution(); virtual ~FontSubstitution(); void checkFontSubstitutions(SPDocument* doc); - void show(Glib::ustring out, SelContainer &l); + void show(Glib::ustring out, std::vector &l); static FontSubstitution &getInstance() { return *new FontSubstitution(); } Glib::ustring getSubstituteFontName (Glib::ustring font); protected: - SelContainer getFontReplacedItems(SPDocument* doc, Glib::ustring *out); + std::vector getFontReplacedItems(SPDocument* doc, Glib::ustring *out); private: FontSubstitution(FontSubstitution const &d); diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index 1ef97b996..fa469dc4b 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -578,8 +578,8 @@ void GlyphsPanel::setTargetDesktop(SPDesktop *desktop) void GlyphsPanel::insertText() { SPItem *textItem = 0; - SelContainer itemlist=targetDesktop->selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + std::vector itemlist=targetDesktop->selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { textItem = SP_ITEM(*i); break; @@ -688,8 +688,8 @@ void GlyphsPanel::selectionModifiedCB(guint flags) void GlyphsPanel::calcCanInsert() { int items = 0; - SelContainer itemlist=targetDesktop->selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + std::vector itemlist=targetDesktop->selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { ++items; } diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index ba8616d9b..d62032e9d 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -175,9 +175,9 @@ void GridArrangeTab::arrange() desktop->getDocument()->ensureUpToDate(); Inkscape::Selection *selection = desktop->getSelection(); - const SelContainer items = selection ? selection->itemList() : SelContainer(); + const std::vector items = selection ? selection->itemList() : std::vector(); cnt=0; - for(SelContainer::const_iterator i = items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i = items.begin();i!=items.end();i++){ SPItem *item = SP_ITEM(*i); Geom::OptRect b = item->documentVisualBounds(); if (!b) { @@ -205,18 +205,17 @@ void GridArrangeTab::arrange() // require the sorting done before we can calculate row heights etc. g_return_if_fail(selection); - SelContainer rev(selection->itemList()); - rev.sort(sp_compare_y_position_obj); - SelContainer sorted(rev); - sorted.sort(sp_compare_x_position_obj); + std::vector sorted(selection->itemList()); + sort(sorted.begin(),sorted.end(),sp_compare_y_position); + sort(sorted.begin(),sorted.end(),sp_compare_x_position); // Calculate individual Row and Column sizes if necessary cnt=0; - const SelContainer sizes(sorted); - for (SelContainer::const_iterator i = sizes.begin();i!=sizes.end();i++) { + const std::vector sizes(sorted); + for (std::vector::const_iterator i = sizes.begin();i!=sizes.end();i++) { SPItem *item = SP_ITEM(*i); Geom::OptRect b = item->documentVisualBounds(); if (b) { @@ -314,7 +313,7 @@ g_print("\n row = %f col = %f selection x= %f selection y = %f", total_row_h } cnt=0; - SelContainer::iterator it = sorted.begin(); + std::vector::iterator it = sorted.begin(); for (row_cnt=0; ((it != sorted.end()) && (row_cntselection : 0; g_return_if_fail( selection ); - SelContainer const items = selection->itemList(); + std::vector const items = selection->itemList(); int selcount = items.size(); double PerCol = ceil(selcount / NoOfColsSpinner.get_value()); @@ -545,7 +544,7 @@ void GridArrangeTab::updateSelection() updating = true; SPDesktop *desktop = Parent->getDesktop(); Inkscape::Selection *selection = desktop ? desktop->selection : 0; - SelContainer const items = selection ? selection->itemList() : SelContainer(); + std::vector const items = selection ? selection->itemList() : std::vector(); if (!items.empty()) { int selcount = items.size(); diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index 79e5b556d..6ad3d61ac 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -366,8 +366,8 @@ void IconPreviewPanel::refreshPreview() if ( sel ) { //g_message("found a selection to play with"); - SelContainer const items = sel->itemList(); - for(SelContainer::const_iterator i=items.begin();!target && i!=items.end();i++){ + std::vector const items = sel->itemList(); + for(std::vector::const_iterator i=items.begin();!target && i!=items.end();i++){ SPItem* item = SP_ITEM( *i); gchar const *id = item->getId(); if ( id ) { diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 0ae3027c7..d60780f78 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -479,8 +479,8 @@ void ObjectsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); SPItem *item = NULL; - SelContainer const items = sel->itemList(); - for(SelContainer::const_iterator i=items.begin(); i!=items.end();i++){ + std::vector const items = sel->itemList(); + for(std::vector::const_iterator i=items.begin(); i!=items.end();i++){ item = reinterpret_cast(*i); if (setOpacity) { diff --git a/src/ui/dialog/pixelartdialog.cpp b/src/ui/dialog/pixelartdialog.cpp index 273a378e5..760391df6 100644 --- a/src/ui/dialog/pixelartdialog.cpp +++ b/src/ui/dialog/pixelartdialog.cpp @@ -372,8 +372,8 @@ void PixelArtDialogImpl::vectorize() return; } - SelContainer const items = desktop->selection->itemList(); - for(SelContainer::const_iterator i=items.begin(); i!=items.end();i++){ + std::vector const items = desktop->selection->itemList(); + for(std::vector::const_iterator i=items.begin(); i!=items.end();i++){ if ( !SP_IS_IMAGE(*i) ) continue; diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp index 8a382fc93..a68e73caf 100644 --- a/src/ui/dialog/polar-arrange-tab.cpp +++ b/src/ui/dialog/polar-arrange-tab.cpp @@ -297,14 +297,14 @@ static void moveToPoint(int anchor, SPItem *item, Geom::Point p) void PolarArrangeTab::arrange() { Inkscape::Selection *selection = parent->getDesktop()->getSelection(); - const SelContainer tmp(selection->itemList()); + const std::vector tmp(selection->itemList()); SPGenericEllipse *referenceEllipse = NULL; // Last ellipse in selection bool arrangeOnEllipse = !arrangeOnParametersRadio.get_active(); bool arrangeOnFirstEllipse = arrangeOnEllipse && arrangeOnFirstCircleRadio.get_active(); int count = 0; - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { if(arrangeOnEllipse) { @@ -373,7 +373,7 @@ void PolarArrangeTab::arrange() Geom::Point realCenter = Geom::Point(cx, cy) * transformation; int i = 0; - for(SelContainer::const_iterator it=tmp.begin();it!=tmp.end();it++) + for(std::vector::const_iterator it=tmp.begin();it!=tmp.end();it++) { SPItem *item = SP_ITEM(*it); diff --git a/src/ui/dialog/print.cpp b/src/ui/dialog/print.cpp index dc98b6032..351971294 100644 --- a/src/ui/dialog/print.cpp +++ b/src/ui/dialog/print.cpp @@ -81,7 +81,7 @@ static void draw_page( width, height, (unsigned long)(Inkscape::Util::Quantity::convert(width, "px", "in") * dpi), (unsigned long)(Inkscape::Util::Quantity::convert(height, "px", "in") * dpi), - dpi, dpi, bgcolor, NULL, NULL, true, SelContainer()); + dpi, dpi, bgcolor, NULL, NULL, true, std::vector()); // This doesn't seem to work: //context->set_cairo_context ( Cairo::Context::create (Cairo::ImageSurface::create_from_png (tmp_png) ), dpi, dpi ); diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp index da24ad605..72677c07e 100644 --- a/src/ui/dialog/swatches.cpp +++ b/src/ui/dialog/swatches.cpp @@ -123,7 +123,7 @@ static void editGradientImpl( SPDesktop* desktop, SPGradient* gr ) bool shown = false; if ( desktop && desktop->doc() ) { Inkscape::Selection *selection = desktop->getSelection(); - SelContainer const items = selection->itemList(); + std::vector const items = selection->itemList(); if (!items.empty()) { SPStyle query( desktop->doc() ); int result = objects_query_fillstroke((items), &query, true); diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index ba3a6b914..c2df5fc1c 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -669,8 +669,8 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) if (col == _tree.get_column(COL_ADD - 1) && down_at_add) { if (SP_IS_TAG(obj)) { bool wasadded = false; - SelContainer items=_desktop->selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=_desktop->selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *newobj = reinterpret_cast(*i); bool addchild = true; for ( SPObject *child = obj->children; child != NULL; child = child->next) { diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 593261ec5..1c1cf5937 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -418,8 +418,8 @@ SPItem *TextEdit::getSelectedTextItem (void) if (!SP_ACTIVE_DESKTOP) return NULL; - SelContainer tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) + std::vector tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) return SP_ITEM (*i); @@ -436,8 +436,8 @@ unsigned TextEdit::getSelectedTextCount (void) unsigned int items = 0; - SelContainer tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) + std::vector tmp=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) ++items; @@ -540,11 +540,11 @@ void TextEdit::onApply() SPDesktop *desktop = SP_ACTIVE_DESKTOP; unsigned items = 0; - const SelContainer item_list = desktop->getSelection()->itemList(); + const std::vector item_list = desktop->getSelection()->itemList(); SPCSSAttr *css = fillTextStyle (); sp_desktop_set_style(desktop, css, true); - for(SelContainer::const_iterator i=item_list.begin();i!=item_list.end();i++){ + for(std::vector::const_iterator i=item_list.begin();i!=item_list.end();i++){ // apply style to the reprs of all text objects in the selection if (SP_IS_TEXT (*i)) { diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 8c52144e0..0f81a7e58 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -741,12 +741,12 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) if (_check_move_relative.get_active()) { // shift each object relatively to the previous one using Inkscape::Util::GSListConstIterator; - SelContainer selected(selection->itemList()); + std::vector selected(selection->itemList()); if (selected.empty()) return; if (fabs(x) > 1e-6) { std::vector< BBoxSort > sorted; - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { @@ -771,7 +771,7 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) } if (fabs(y) > 1e-6) { std::vector< BBoxSort > sorted; - for (SelContainer::iterator it(selected.begin()); + for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { @@ -816,8 +816,8 @@ void Transformation::applyPageScale(Inkscape::Selection *selection) bool transform_stroke = prefs->getBool("/options/transform/stroke", true); bool preserve = prefs->getBool("/options/preservetransform/value", false); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - SelContainer tmp=selection->itemList(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + std::vector tmp=selection->itemList(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ SPItem *item = SP_ITEM(*i); Geom::OptRect bbox_pref = item->desktopPreferredBounds(); Geom::OptRect bbox_geom = item->desktopGeometricBounds(); @@ -880,8 +880,8 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection) } if (prefs->getBool("/dialogs/transformation/applyseparately")) { - SelContainer tmp=selection->itemList(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + std::vector tmp=selection->itemList(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ SPItem *item = SP_ITEM(*i); sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0)); } @@ -900,8 +900,8 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); if (prefs->getBool("/dialogs/transformation/applyseparately")) { - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator i = items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for(std::vector::const_iterator i = items.begin();i!=items.end();i++){ SPItem *item = SP_ITEM(*i); if (!_units_skew.isAbsolute()) { // percentage @@ -1002,8 +1002,8 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) } if (_check_replace_matrix.get_active()) { - SelContainer tmp=selection->itemList(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++){ + std::vector tmp=selection->itemList(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ SPItem *item = SP_ITEM(*i); item->set_item_transform(displayed); SP_OBJECT(item)->updateRepr(); diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 86cf629c1..43e35df9d 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1906,7 +1906,7 @@ void ContextMenu::ActivateGroup(void) void ContextMenu::ActivateUngroup(void) { - SelContainer children; + std::vector children; sp_item_group_ungroup(static_cast(_item), children); _desktop->selection->setList(children); @@ -1958,7 +1958,7 @@ void ContextMenu::AnchorLinkFollow(void) void ContextMenu::AnchorLinkRemove(void) { - SelContainer children; + std::vector children; sp_item_group_ungroup(static_cast(_item), children, false); DocumentUndo::done(_desktop->doc(), SP_VERB_NONE, _("Remove link")); } @@ -2075,8 +2075,8 @@ void ContextMenu::ImageEdit(void) } #endif - SelContainer itemlist=_desktop->selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=_desktop->selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ Inkscape::XML::Node *ir = SP_ITEM(*i)->getRepr(); const gchar *href = ir->attribute("xlink:href"); diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index fc40c20e7..9c6eead16 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1316,8 +1316,8 @@ void cc_selection_set_avoid(bool const set_avoid) int changes = 0; - SelContainer l = selection->itemList(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++) { + std::vector l = selection->itemList(); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++) { SPItem *item = SP_ITEM(*i); char const *value = (set_avoid) ? "true" : NULL; diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 3526e015a..520b93e72 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -676,8 +676,7 @@ void EraserTool::set_to_accumulated() { Geom::OptRect eraserBbox = acid->visualBounds(); Geom::Rect bounds = (*eraserBbox) * desktop->doc2dt(); std::vector remainingItems; - SelContainer toWorkOn; - + std::vector toWorkOn; if (selection->isEmpty()) { if ( eraserMode ) { toWorkOn = desktop->getDocument()->getItemsPartiallyInBox(desktop->dkey, bounds); @@ -685,16 +684,15 @@ void EraserTool::set_to_accumulated() { Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); toWorkOn = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); } - - toWorkOn.remove(static_cast(acid) ); + toWorkOn.erase(find(toWorkOn.begin(),toWorkOn.end(),acid)); } else { - toWorkOn = selection->itemList(); + toWorkOn= selection->itemList(); wasSelection = true; } if ( !toWorkOn.empty() ) { if ( eraserMode ) { - for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + for (std::vector::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { SPItem *item = SP_ITEM(*i); if ( eraserMode ) { @@ -712,8 +710,8 @@ void EraserTool::set_to_accumulated() { if ( !selection->isEmpty() ) { // If the item was not completely erased, track the new remainder. - SelContainer nowSel(selection->itemList()); - for (SelContainer::const_iterator i2 = nowSel.begin();i!=nowSel.end();i++) { + std::vector nowSel(selection->itemList()); + for (std::vector::const_iterator i2 = nowSel.begin();i!=nowSel.end();i2++) { remainingItems.push_back(SP_ITEM(*i2)); } } @@ -723,11 +721,11 @@ void EraserTool::set_to_accumulated() { } } } else { - for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + for (std::vector ::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { sp_object_ref( SP_ITEM(*i), 0 ); } - for (SelContainer::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { + for (std::vector::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { SPItem *item = SP_ITEM(*i); item->deleteObject(true); sp_object_unref(item); diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index d1db5fb93..6f7b220ed 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -504,8 +504,8 @@ bool GradientTool::root_handler(GdkEvent* event) { // always resets selection to the single object under cursor sp_gradient_context_add_stop_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); } else { - SelContainer items=selection->itemList(); - for (SelContainer::const_iterator i = items.begin();i!=items.end();i++) { + std::vector items=selection->itemList(); + for (std::vector::const_iterator i = items.begin();i!=items.end();i++) { SPItem *item = SP_ITEM(*i); SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR); Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -915,8 +915,8 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta } else { // Starting from empty space: // Sort items so that the topmost comes last - SelContainer items(selection->itemList()); - items.sort(sp_item_repr_compare_position_obj); + std::vector items(selection->itemList()); + sort(items.begin(),items.end(),sp_item_repr_compare_position); // take topmost vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); } @@ -925,8 +925,8 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - SelContainer itemlist = selection->itemList(); - for (SelContainer::const_iterator i = itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist = selection->itemList(); + for (std::vector::const_iterator i = itemlist.begin();i!=itemlist.end();i++) { //FIXME: see above sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); diff --git a/src/ui/tools/lpe-tool.cpp b/src/ui/tools/lpe-tool.cpp index ce0ad7a9a..290eeef87 100644 --- a/src/ui/tools/lpe-tool.cpp +++ b/src/ui/tools/lpe-tool.cpp @@ -407,8 +407,8 @@ lpetool_create_measuring_items(LpeTool *lc, Inkscape::Selection *selection) SPCanvasGroup *tmpgrp = lc->desktop->getTempGroup(); gchar *arc_length; double lengthval; - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_PATH(*i)) { path = SP_PATH(*i); curve = path->getCurve(); diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 8d52210ff..2b44639c8 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -441,9 +441,9 @@ bool MeasureTool::root_handler(GdkEvent* event) { // TODO switch to a different variable name. The single letter 'l' is easy to misread. //select elements crossed by line segment: - SelContainer items = desktop->getDocument()->getItemsAtPoints(desktop->dkey, points); + std::vector items = desktop->getDocument()->getItemsAtPoints(desktop->dkey, points); std::vector intersection_times; - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++) { + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { SPItem *item = static_cast(*i); if (SP_IS_SHAPE(item)) { diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index 1cc06a5b9..0a34e4855 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -481,8 +481,8 @@ bool MeshTool::root_handler(GdkEvent* event) { sp_mesh_context_split_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); } else { // Create a new gradient with default coordinates. - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = SP_ITEM(*i); SPGradientType new_type = SP_GRADIENT_TYPE_MESH; Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -958,8 +958,8 @@ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/ } else { // Starting from empty space: // Sort items so that the topmost comes last - SelContainer items(selection->itemList()); - items.sort(sp_item_repr_compare_position_obj); + std::vector items(selection->itemList()); + sort(items.begin(),items.end(),sp_item_repr_compare_position); // take topmost vector = sp_gradient_vector_for_object(document, desktop, SP_ITEM(items.back()), fill_or_stroke); } @@ -968,8 +968,8 @@ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/ SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "fill-opacity", "1.0"); - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 46c978c84..6ddb379cc 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -420,8 +420,8 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { std::set shapes; - SelContainer items=sel->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=sel->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPObject *obj = static_cast(*i); if (SP_IS_ITEM(obj)) { @@ -667,7 +667,7 @@ void NodeTool::select_area(Geom::Rect const &sel, GdkEventButton *event) { if (this->_multipath->empty()) { // if multipath is empty, select rubberbanded items rather than nodes Inkscape::Selection *selection = this->desktop->selection; - SelContainer items = this->desktop->getDocument()->getItemsInBox(this->desktop->dkey, sel); + std::vector items = this->desktop->getDocument()->getItemsInBox(this->desktop->dkey, sel); selection->setList(items); } else { if (!held_shift(*event)) { diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index f84170631..25cbf76a4 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -718,7 +718,7 @@ bool SelectTool::root_handler(GdkEvent* event) { if (r->is_started() && !within_tolerance) { // this was a rubberband drag - SelContainer items; + std::vector items; if (r->getMode() == RUBBERBAND_MODE_RECT) { Geom::OptRect const b = r->getRectangle(); diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index d339f6d19..ac41f3a34 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -436,9 +436,9 @@ static bool sp_spray_recursive(SPDesktop *desktop, SPItem *unionResult = NULL; // Previous union int i=1; - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator it=items.begin();it!=items.end();it++){ - SPItem *item1 = dynamic_cast(static_cast(*it)); + std::vector items=selection->itemList(); + for(std::vector::const_iterator it=items.begin();it!=items.end();it++){ + SPItem *item1 = *it; if (i == 1) { parent_item = item1; } @@ -550,15 +550,15 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point double move_standard_deviation = get_move_standard_deviation(tc); { - SelContainer const items(selection->itemList()); + std::vector const items(selection->itemList()); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); sp_object_ref(item); } - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); @@ -573,7 +573,7 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point } } - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = dynamic_cast(static_cast(*i)); g_assert(item != NULL); sp_object_unref(item); diff --git a/src/ui/tools/text-tool.cpp b/src/ui/tools/text-tool.cpp index a4370256d..48c109688 100644 --- a/src/ui/tools/text-tool.cpp +++ b/src/ui/tools/text-tool.cpp @@ -1470,7 +1470,7 @@ int TextTool::_styleQueried(SPStyle *style, int property) } sp_text_context_validate_cursor_iterators(this); - SelContainer styles_list; + std::vector styles_list; Inkscape::Text::Layout::iterator begin_it, end_it; if (this->text_sel_start < this->text_sel_end) { @@ -1496,7 +1496,7 @@ int TextTool::_styleQueried(SPStyle *style, int property) while (SP_IS_STRING(pos_obj) && pos_obj->parent) { pos_obj = pos_obj->parent; // SPStrings don't have style } - styles_list.push_front(pos_obj); + styles_list.insert(styles_list.begin(),(SPItem*)pos_obj); } int result = sp_desktop_query_style_from_list (styles_list, style, property); diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index cc05f9775..def8080d0 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -1178,8 +1178,8 @@ SPItem *sp_event_context_find_item(SPDesktop *desktop, Geom::Point const &p, SPItem * sp_event_context_over_item(SPDesktop *desktop, SPItem *item, Geom::Point const &p) { - SelContainer temp; - temp.push_front(static_cast(item)); + std::vector temp; + temp.push_back(item); SPItem *item_at_point = desktop->getItemFromListAtPointBottom(temp, p); return item_at_point; } diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 9342127ce..6f7764506 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -382,13 +382,13 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P } if (dynamic_cast(item) || dynamic_cast(item)) { - SelContainer items; + std::vector items; items.push_back(item); - SelContainer selected; - SelContainer to_select; + std::vector selected; + std::vector to_select; SPDocument *doc = item->document; sp_item_list_to_curves (items, selected, to_select); - SPObject* newObj = doc->getObjectByRepr(dynamic_cast(to_select.front())); + SPObject* newObj = doc->getObjectByRepr(to_select.back()); item = dynamic_cast(newObj); g_assert(item != NULL); selection->add(item); @@ -1087,8 +1087,8 @@ sp_tweak_dilate (TweakTool *tc, Geom::Point event_p, Geom::Point p, Geom::Point double move_force = get_move_force(tc); double color_force = MIN(sqrt(path_force)/20.0, 1); - SelContainer items=selection->itemList(); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + std::vector items=selection->itemList(); + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ SPItem *item = dynamic_cast(static_cast(*i)); if (is_color_mode (tc->mode)) { diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index ddf67fb5b..598a90e95 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -125,8 +125,8 @@ ObjectCompositeSettings::_blendBlurValueChanged() const Glib::ustring blendmode = _fe_cb.get_blend_mode(); //apply created filter to every selected item - SelContainer sel=_subject->getDesktop()->getSelection()->itemList(); - for (SelContainer::const_iterator i = sel.begin() ; i != sel.end() ; ++i ) { + std::vector sel=_subject->getDesktop()->getSelection()->itemList(); + for (std::vector::const_iterator i = sel.begin() ; i != sel.end() ; ++i ) { if (!SP_IS_ITEM(*i)) { continue; } diff --git a/src/ui/widget/style-subject.cpp b/src/ui/widget/style-subject.cpp index 9d09e67d3..1ded546dd 100644 --- a/src/ui/widget/style-subject.cpp +++ b/src/ui/widget/style-subject.cpp @@ -148,10 +148,10 @@ Geom::OptRect StyleSubject::CurrentLayer::getBounds(SPItem::BBoxType type) { } int StyleSubject::CurrentLayer::queryStyle(SPStyle *query, int property) { - SelContainer list; + std::vector list; SPObject* i=_getLayerSList(); if (i) { - list.push_back(i); + list.push_back((SPItem*)i); return sp_desktop_query_style_from_list(list, query, property); } else { return QUERY_STYLE_NOTHING; diff --git a/src/unclump.cpp b/src/unclump.cpp index d1cfc6628..29608befa 100644 --- a/src/unclump.cpp +++ b/src/unclump.cpp @@ -168,11 +168,11 @@ unclump_dist (SPItem *item1, SPItem *item2) /** Average unclump_dist from item to others */ -static double unclump_average (SPItem *item, SelContainer &others) +static double unclump_average (SPItem *item, std::list &others) { int n = 0; double sum = 0; - for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + for (std::list::const_iterator i = others.begin(); i != others.end();i++) { SPItem *other = SP_ITEM (*i); if (other == item) @@ -191,12 +191,12 @@ static double unclump_average (SPItem *item, SelContainer &others) /** Closest to item among others */ -static SPItem *unclump_closest (SPItem *item, SelContainer &others) +static SPItem *unclump_closest (SPItem *item, std::list &others) { double min = HUGE_VAL; SPItem *closest = NULL; - for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + for (std::list::const_iterator i = others.begin(); i != others.end();i++) { SPItem *other = SP_ITEM (*i); if (other == item) @@ -215,11 +215,11 @@ static SPItem *unclump_closest (SPItem *item, SelContainer &others) /** Most distant from item among others */ -static SPItem *unclump_farest (SPItem *item, SelContainer &others) +static SPItem *unclump_farest (SPItem *item, std::list &others) { double max = -HUGE_VAL; SPItem *farest = NULL; - for (SelContainer::const_iterator i = others.begin(); i != others.end();i++) { + for (std::list::const_iterator i = others.begin(); i != others.end();i++) { SPItem *other = SP_ITEM (*i); if (other == item) @@ -240,8 +240,8 @@ Removes from the \a rest list those items that are "behind" \a closest as seen f i.e. those on the other side of the line through \a closest perpendicular to the direction from \a item to \a closest. Returns a newly created list which must be freed. */ -static SelContainer -unclump_remove_behind (SPItem *item, SPItem *closest, SelContainer &rest) +static std::vector +unclump_remove_behind (SPItem *item, SPItem *closest, std::list &rest) { Geom::Point it = unclump_center (item); Geom::Point p1 = unclump_center (closest); @@ -258,8 +258,8 @@ unclump_remove_behind (SPItem *item, SPItem *closest, SelContainer &rest) // substitute the item into it: double val_item = A * it[Geom::X] + B * it[Geom::Y] + C; - SelContainer out; - for (SelContainer::const_iterator i = rest.begin(); i != rest.end();i++) { + std::vector out; + for (std::list::const_reverse_iterator i = rest.rbegin(); i != rest.rend();i++) { SPItem *other = SP_ITEM (*i); if (other == item) @@ -271,7 +271,7 @@ unclump_remove_behind (SPItem *item, SPItem *closest, SelContainer &rest) if (val_item * val_other <= 1e-6) { // different signs, which means item and other are on the different sides of p1-p2 line; skip } else { - out.push_front(other); + out.push_back(other); } } @@ -331,17 +331,18 @@ similar to "engraver dots". The only distribution which is unchanged by unclumpi grid. May be called repeatedly for stronger effect. */ void -unclump (SelContainer &items) +unclump (std::vector &items) { c_cache.clear(); wh_cache.clear(); - for (SelContainer::const_iterator i = items.begin(); i != items.end();i++) { // for each original/clone x: + for (std::vector::const_iterator i = items.begin(); i != items.end();i++) { // for each original/clone x: SPItem *item = SP_ITEM (*i); - SelContainer nei; + std::list nei; - SelContainer rest(items); + std::list rest; + for(int i=0;i new_rest = unclump_remove_behind (item, closest, rest); + rest.clear(); + for(int i=0;i &items); #endif /* !UNCLUMP_H_SEEN */ diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index 98a3eaa67..770845f38 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -256,8 +256,8 @@ VanishingPoint::set_pos(Proj::Pt2 const &pt) { std::list VanishingPoint::selectedBoxes(Inkscape::Selection *sel) { std::list sel_boxes; - SelContainer itemlist=sel->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist=sel->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box && this->hasBox(box)) { @@ -396,8 +396,8 @@ VPDragger::VPsOfSelectedBoxes() { VanishingPoint *vp; // FIXME: Should we take the selection from the parent VPDrag? I guess it shouldn't make a difference. Inkscape::Selection *sel = SP_ACTIVE_DESKTOP->getSelection(); - SelContainer itemlist=sel->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist=sel->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { @@ -579,8 +579,8 @@ VPDrag::updateDraggers () g_return_if_fail (this->selection != NULL); - SelContainer itemlist=this->selection->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist=this->selection->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { @@ -612,8 +612,8 @@ VPDrag::updateLines () g_return_if_fail (this->selection != NULL); - SelContainer itemlist=this->selection->itemList(); - for (SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + std::vector itemlist=this->selection->itemList(); + for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { SPItem *item = static_cast(*i); SPBox3D *box = dynamic_cast(item); if (box) { @@ -630,7 +630,7 @@ VPDrag::updateBoxHandles () // FIXME: Is there a way to update the knots without accessing the // (previously) statically linked function KnotHolder::update_knots? - SelContainer sel = selection->itemList(); + std::vector sel = selection->itemList(); if (sel.empty()) return; // no selection diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp index 23c248129..cb24bb8aa 100644 --- a/src/widgets/arc-toolbar.cpp +++ b/src/widgets/arc-toolbar.cpp @@ -97,8 +97,8 @@ sp_arctb_startend_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *v gchar* namespaced_name = g_strconcat("sodipodi:", value_name, NULL); bool modmade = false; - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { @@ -163,8 +163,8 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) bool modmade = false; if ( ege_select_one_action_get_active(act) != 0 ) { - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -174,8 +174,8 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) } } } else { - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -264,8 +264,8 @@ static void sp_arc_toolbox_selection_changed(Inkscape::Selection *selection, GOb purge_repr_listener( tbl, tbl ); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_GENERICELLIPSE(item)) { n_selected++; diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp index 401ce932a..49cf8e6fd 100644 --- a/src/widgets/connector-toolbar.cpp +++ b/src/widgets/connector-toolbar.cpp @@ -97,8 +97,8 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl gchar *value = is_orthog ? orthog_str : polyline_str ; bool modmade = false; - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (Inkscape::UI::Tools::cc_item_is_connector(item)) { @@ -144,8 +144,8 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) g_ascii_dtostr(value, G_ASCII_DTOSTR_BUF_SIZE, newValue); bool modmade = false; - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (Inkscape::UI::Tools::cc_item_is_connector(item)) { diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index 2c298b04d..dbb84efba 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -481,7 +481,7 @@ void FillNStroke::updateFromPaint() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - SelContainer const items = selection->itemList(); + std::vector const items = selection->itemList(); switch (psel->mode) { case SPPaintSelector::MODE_EMPTY: @@ -576,7 +576,7 @@ void FillNStroke::updateFromPaint() } } - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); @@ -602,7 +602,7 @@ void FillNStroke::updateFromPaint() // We have changed from another gradient type, or modified spread/units within // this gradient type. vector = sp_gradient_ensure_vector_normalized(vector); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); @@ -648,7 +648,7 @@ void FillNStroke::updateFromPaint() // cannot just call sp_desktop_set_style, because we don't want to touch those // objects who already have the same root pattern but through a different href // chain. FIXME: move this to a sp_item_set_pattern - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ Inkscape::XML::Node *selrepr = reinterpret_cast(*i)->getRepr(); if ( (kind == STROKE) && !selrepr) { continue; diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index b9608130b..5aa654a80 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -116,8 +116,8 @@ void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient } // If no drag or no dragger selected, act on selection - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ gr_apply_gradient_to_item(SP_ITEM(*i), gr, initialType, initialMode, initialMode); } } @@ -218,8 +218,8 @@ void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr { SPGradient *gradient = 0; - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; @@ -286,8 +286,8 @@ void gr_read_selection( Inkscape::Selection *selection, } // If no selected dragger, read desktop selection - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; diff --git a/src/widgets/mesh-toolbar.cpp b/src/widgets/mesh-toolbar.cpp index b4176db6f..682c61e77 100644 --- a/src/widgets/mesh-toolbar.cpp +++ b/src/widgets/mesh-toolbar.cpp @@ -87,8 +87,8 @@ void ms_read_selection( Inkscape::Selection *selection, bool first = true; ms_smooth = SP_MESH_SMOOTH_NONE; - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; @@ -214,8 +214,8 @@ void ms_get_dt_selected_gradient(Inkscape::Selection *selection, SPMeshGradient { SPMeshGradient *gradient = 0; - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index 1f19867ee..65078af01 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -106,8 +106,8 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const * bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_RECT(*i)) { if (gtk_adjustment_get_value(adj) != 0) { (SP_RECT(*i)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, desktop->getNamedView()->svg_units)); @@ -244,8 +244,8 @@ static void sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GO } purge_repr_listener( tbl, tbl ); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_RECT(reinterpret_cast(*i))) { n_selected++; item = reinterpret_cast(*i); diff --git a/src/widgets/spiral-toolbar.cpp b/src/widgets/spiral-toolbar.cpp index 2f4ad481d..6f967e8ae 100644 --- a/src/widgets/spiral-toolbar.cpp +++ b/src/widgets/spiral-toolbar.cpp @@ -79,8 +79,8 @@ static void sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, Glib::ustr gchar* namespaced_name = g_strconcat("sodipodi:", value_name.data(), NULL); bool modmade = false; - SelContainer itemlist=desktop->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=desktop->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_SPIRAL(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -195,8 +195,8 @@ static void sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, purge_repr_listener( tbl, tbl ); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_SPIRAL(item)) { n_selected++; diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp index 37daf69d0..1946dee6e 100644 --- a/src/widgets/star-toolbar.cpp +++ b/src/widgets/star-toolbar.cpp @@ -83,8 +83,8 @@ static void sp_stb_magnitude_value_changed( GtkAdjustment *adj, GObject *dataKlu bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -128,8 +128,8 @@ static void sp_stb_proportion_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -185,8 +185,8 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d gtk_action_set_sensitive( prop_action, !flat ); } - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -224,8 +224,8 @@ static void sp_stb_rounded_value_changed( GtkAdjustment *adj, GObject *dataKludg bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -264,8 +264,8 @@ static void sp_stb_randomized_value_changed( GtkAdjustment *adj, GObject *dataKl bool modmade = false; Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -367,8 +367,8 @@ sp_star_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl) purge_repr_listener( tbl, tbl ); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (SP_IS_STAR(item)) { n_selected++; diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 2599fe537..65390819b 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -475,8 +475,8 @@ void StrokeStyle::markerSelectCB(MarkerComboBox *marker_combo, StrokeStyle *spw, //spw->updateMarkerHist(which); Inkscape::Selection *selection = spw->desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ SPItem *item = SP_ITEM(*i); if (!SP_IS_SHAPE(item) || SP_IS_RECT(item)) { // can't set marker to rect, until it's converted to using continue; @@ -901,7 +901,7 @@ StrokeStyle::updateLine() if (!sel || sel->isEmpty()) return; - SelContainer const objects = sel->itemList(); + std::vector const objects = sel->itemList(); SPObject * const object = SP_OBJECT(objects.front()); SPStyle * const style = object->style; @@ -957,7 +957,7 @@ StrokeStyle::scaleLine() SPDocument *document = desktop->getDocument(); Inkscape::Selection *selection = desktop->getSelection(); - SelContainer items=selection->itemList(); + std::vector items=selection->itemList(); /* TODO: Create some standardized method */ SPCSSAttr *css = sp_repr_css_attr_new(); @@ -977,7 +977,7 @@ StrokeStyle::scaleLine() int ndash; dashSelector->get_dash(&ndash, &dash, &offset); - for(SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ /* Set stroke width */ double width; if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { @@ -1143,7 +1143,7 @@ StrokeStyle::setCapButtons(Gtk::ToggleButton *active) * that marker. */ void -StrokeStyle::updateAllMarkers(SelContainer const &objects) +StrokeStyle::updateAllMarkers(std::vector const &objects) { struct { MarkerComboBox *key; int loc; } const keyloc[] = { { startMarkerCombo, SP_MARKER_LOC_START }, @@ -1152,7 +1152,7 @@ StrokeStyle::updateAllMarkers(SelContainer const &objects) }; bool all_texts = true; - for(SelContainer::const_iterator i=objects.begin();i!=objects.end();i++){ + for(std::vector::const_iterator i=objects.begin();i!=objects.end();i++){ if (!SP_IS_TEXT (*i)) { all_texts = false; } diff --git a/src/widgets/stroke-style.h b/src/widgets/stroke-style.h index 286305ec3..2605e1acf 100644 --- a/src/widgets/stroke-style.h +++ b/src/widgets/stroke-style.h @@ -153,7 +153,7 @@ private: }; void updateLine(); - void updateAllMarkers(SelContainer const &objects); + void updateAllMarkers(std::vector const &objects); void updateMarkerHist(SPMarkerLoc const which); void setDashSelectorFromStyle(SPDashSelector *dsel, SPStyle *style); void setJoinType (unsigned const jointype); diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index ba7dfc1fd..71915377e 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -366,8 +366,8 @@ static void sp_text_align_mode_changed( EgeSelectOneAction *act, GObject *tbl ) // move the x of all texts to preserve the same bbox Inkscape::Selection *selection = desktop->getSelection(); - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_TEXT(SP_ITEM(*i))) { SPItem *item = SP_ITEM(*i); @@ -519,8 +519,8 @@ static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) // Until deprecated sodipodi:linespacing purged: Inkscape::Selection *selection = desktop->getSelection(); bool modmade = false; - SelContainer itemlist=selection->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=selection->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_TEXT (*i)) { SP_OBJECT(*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); modmade = true; @@ -864,8 +864,8 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ // Only flowed text can be justified, only normal text can be kerned... // Find out if we have flowed text now so we can use it several places gboolean isFlow = false; - SelContainer itemlist=SP_ACTIVE_DESKTOP->getSelection()->itemList(); - for(SelContainer::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + std::vector itemlist=SP_ACTIVE_DESKTOP->getSelection()->itemList(); + for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ // const gchar* id = reinterpret_cast(items->data)->getId(); // std::cout << " " << id << std::endl; if( SP_IS_FLOWTEXT(SP_ITEM(*i))) { @@ -1153,13 +1153,13 @@ static void sp_text_toolbox_select_cb( GtkEntry* entry, GtkEntryIconPosition /*p //std::cout << "text_toolbox_missing_font_cb: selecting: " << family << std::endl; // Get all items with matching font-family set (not inherited!). - SelContainer selectList; + std::vector selectList; SPDesktop *desktop = SP_ACTIVE_DESKTOP; SPDocument *document = desktop->getDocument(); - SelContainer x,y; - SelContainer allList = get_all_items(x, document->getRoot(), desktop, false, false, true, y); - for(SelContainer::const_iterator i=allList.begin();i!=allList.end();i++){ + std::vector x,y; + std::vector allList = get_all_items(x, document->getRoot(), desktop, false, false, true, y); + for(std::vector::const_reverse_iterator i=allList.rbegin();i!=allList.rend();i++){ SPItem *item = SP_ITEM(*i); SPStyle *style = item->style; @@ -1177,7 +1177,7 @@ static void sp_text_toolbox_select_cb( GtkEntry* entry, GtkEntryIconPosition /*p if (family_style.compare( family ) == 0 ) { //std::cout << " found: " << item->getId() << std::endl; - selectList.push_front(static_cast(item)); + selectList.push_back(item); } } } -- cgit v1.2.3 From 7e4b6f793d31d3245bd8afbf6f10aa255ac3e7ae Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 19 Feb 2015 20:20:09 +0100 Subject: added a set to the Selection (bzr r13922.1.6) --- src/extension/internal/cairo-renderer.cpp | 5 ++--- src/extension/internal/latex-text-renderer.cpp | 5 ++--- src/selection-chemistry.cpp | 10 ++++----- src/selection.cpp | 23 ++++++++++++++------ src/selection.h | 12 +++++------ src/sp-defs.cpp | 5 ++--- src/sp-filter.cpp | 5 ++--- src/sp-item-group.cpp | 29 +++++++++++--------------- src/sp-object.cpp | 6 +++--- src/sp-object.h | 5 +++-- src/sp-switch.cpp | 14 ++++++------- src/sp-switch.h | 2 +- src/ui/dialog/grid-arrange-tab.cpp | 28 ++++++++++--------------- src/ui/dialog/tags.cpp | 4 ++-- src/ui/tools/eraser-tool.cpp | 2 +- src/xml/repr-util.cpp | 12 +++++------ src/xml/repr.h | 3 ++- 17 files changed, 83 insertions(+), 87 deletions(-) diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 7ce5cdf8a..f614ec745 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -294,9 +294,8 @@ static void sp_group_render(SPGroup *group, CairoRenderContext *ctx) CairoRenderer *renderer = ctx->getRenderer(); TRACE(("sp_group_render opacity: %f\n", SP_SCALE24_TO_FLOAT(item->style->opacity.value))); - SelContainer l(group->childList(false)); - l.reverse(); - for(SelContainer::const_iterator x=l.begin();x!=l.end();x++){ + std::vector l(group->childList(false)); + for(std::vector::const_iterator x=l.begin();x!=l.end();x++){ SPObject *o = reinterpret_cast(*x); SPItem *item = dynamic_cast(o); if (item) { diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index dab27a0e1..a2de264ab 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -228,9 +228,8 @@ LaTeXTextRenderer::writePostamble() void LaTeXTextRenderer::sp_group_render(SPGroup *group) { - SelContainer l = (group->childList(false)); - l.reverse(); - for(SelContainer::const_iterator x=l.begin();x!=l.end();x++){ + std::vector l = (group->childList(false)); + for(std::vector::const_iterator x=l.begin();x!=l.end();x++){ SPObject *o = reinterpret_cast(*x); SPItem *item = dynamic_cast(o); if (item) { diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index f1c96b6b8..736e020dd 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -558,7 +558,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) g_return_if_fail(group != NULL); std::vector items = sp_item_group_item_list(group); - for(int i=0;i(items[i])->deleteObject(); } @@ -3061,7 +3061,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) doc->ensureUpToDate(); - SelContainer items(selection->list()); + std::vector items(selection->list()); // Keep track of parent, this is where will be inserted. Inkscape::XML::Node *the_first_repr = reinterpret_cast( items.front() )->getRepr(); @@ -3128,7 +3128,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) } // Move selected items to new - for (SelContainer::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); repr->parent()->removeChild(repr); symbol_repr->addChild(repr,NULL); @@ -3195,7 +3195,7 @@ void sp_selection_unsymbol(SPDesktop *desktop) desktop->currentLayer()->getRepr()->appendChild(group); // Move all children of symbol to group - SelContainer children = symbol->childList(false); + std::vector children = symbol->childList(false); // Converting a group to a symbol inserts a group for non-translational transform. // In converting a symbol back to a group we strip out the inserted group (or any other @@ -3212,7 +3212,7 @@ void sp_selection_unsymbol(SPDesktop *desktop) } } - for (SelContainer::const_iterator i=children.begin();i!=children.end();i++){ + for (std::vector::const_iterator i=children.begin();i!=children.end();i++){ Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); repr->parent()->removeChild(repr); group->addChild(repr,NULL); diff --git a/src/selection.cpp b/src/selection.cpp index 2e8251048..fd3b6abae 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -42,7 +42,9 @@ namespace Inkscape { Selection::Selection(LayerModel *layers, SPDesktop *desktop) : - _objs(SelContainer()), + _objs(std::list()), + _objs_vector(std::vector()), + _objs_set(std::set()), _reprs(std::vector()), _items(std::vector()), _layers(layers), @@ -145,7 +147,7 @@ bool Selection::includes(SPObject *obj) const { g_return_val_if_fail(SP_IS_OBJECT(obj), FALSE); - return ( find(_objs.begin(),_objs.end(),obj)!=_objs.end() ); + return ( _objs_set.find(obj)!=_objs_set.end() ); } void Selection::add(SPObject *obj, bool persist_selection_context/* = false */) { @@ -178,6 +180,7 @@ void Selection::_add(SPObject *obj) { _removeObjectAncestors(obj); _objs.push_front(obj); + _objs_set.insert(obj); add_3D_boxes_recursively(obj); @@ -232,6 +235,7 @@ void Selection::_remove(SPObject *obj) { remove_3D_boxes_recursively(obj); _objs.remove(obj); + _objs_set.erase(obj); } void Selection::setList(std::vector const &list) { @@ -276,8 +280,15 @@ void Selection::clear() { _emitChanged(); } -SelContainer const &Selection::list() { - return _objs; +std::vector const &Selection::list() { + if(!_objs_vector.empty()) + return _objs_vector; + + for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + _objs_vector.push_back(*iter); + } + return _objs_vector; + } std::vector const &Selection::itemList() { @@ -285,7 +296,7 @@ std::vector const &Selection::itemList() { return _items; } - for ( SelContainer::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { SPObject *obj=reinterpret_cast(*iter); if (SP_IS_ITEM(obj)) { _items.push_back(SP_ITEM(obj)); @@ -470,7 +481,7 @@ std::vector Selection::getSnapPoints(SnapPreferenc } void Selection::_removeObjectDescendants(SPObject *obj) { - for ( SelContainer::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { SPObject *sel_obj=reinterpret_cast(*iter); SPObject *parent = sel_obj->parent; while (parent) { diff --git a/src/selection.h b/src/selection.h index 2d5e7c34a..e40810ded 100644 --- a/src/selection.h +++ b/src/selection.h @@ -16,14 +16,10 @@ #include #include #include +#include #include #include -#include -#include -#include -#include - #include "gc-managed.h" #include "gc-finalized.h" #include "gc-anchored.h" @@ -254,7 +250,7 @@ public: XML::Node *singleRepr(); /** Returns the list of selected objects. */ - std::list const &list(); + std::vector const &list(); /** Returns the list of selected SPItems. */ std::vector const &itemList(); /** Returns a list of the xml nodes of all selected objects. */ @@ -376,7 +372,9 @@ private: /** Releases an active layer object that is being removed. */ void _releaseContext(SPObject *obj); - mutable std::list _objs; + mutable std::list _objs; //to more efficiently remove arbitrary elements + mutable std::vector _objs_vector; // to be returned by list(); + mutable std::set _objs_set; //to efficiently test if object is selected mutable std::vector _reprs; mutable std::vector _items; diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index d52fa038a..76843fd28 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -46,9 +46,8 @@ void SPDefs::update(SPCtx *ctx, guint flags) { } flags &= SP_OBJECT_MODIFIED_CASCADE; - SelContainer l(this->childList(true)); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l(this->childList(true)); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *child = SP_OBJECT(*i); if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index bf8f7a5a4..93a979287 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -244,9 +244,8 @@ void SPFilter::update(SPCtx *ctx, guint flags) { childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } childflags &= SP_OBJECT_MODIFIED_CASCADE; - SelContainer l(this->childList(true, SPObject::ActionUpdate)); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l(this->childList(true, SPObject::ActionUpdate)); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *child = SP_OBJECT (*i); if( SP_IS_FILTER_PRIMITIVE( child ) ) { child->updateDisplay(ctx, childflags); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index f09a4ee47..8a40df5ed 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -171,9 +171,8 @@ void SPGroup::update(SPCtx *ctx, unsigned int flags) { childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } childflags &= SP_OBJECT_MODIFIED_CASCADE; - SelContainer l=this->childList(true, SPObject::ActionUpdate); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=this->childList(true, SPObject::ActionUpdate); + for(std::vector ::const_iterator i=l.begin();i!=l.end();i++){ SPObject *child = SP_OBJECT (*i); if (childflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { @@ -216,9 +215,8 @@ void SPGroup::modified(guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - SelContainer l=this->childList(true); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=this->childList(true); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *child = SP_OBJECT (*i); if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { @@ -291,8 +289,8 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox Geom::OptRect bbox; // TODO CPPIFY: replace this const_cast later - SelContainer l=const_cast(this)->childList(false, SPObject::ActionBBox); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=const_cast(this)->childList(false, SPObject::ActionBBox); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); if (item && !item->isHidden()) { @@ -305,9 +303,8 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox } void SPGroup::print(SPPrintContext *ctx) { - SelContainer l=this->childList(false); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=this->childList(false); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); if (item) { @@ -360,9 +357,8 @@ Inkscape::DrawingItem *SPGroup::show (Inkscape::Drawing &drawing, unsigned int k } void SPGroup::hide (unsigned int key) { - SelContainer l=this->childList(false, SPObject::ActionShow); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=this->childList(false, SPObject::ActionShow); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *o = SP_OBJECT (*i); SPItem *item = dynamic_cast(o); @@ -793,9 +789,8 @@ gint SPGroup::getItemCount() const { void SPGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) { Inkscape::DrawingItem *ac = NULL; - SelContainer l=this->childList(false, SPObject::ActionShow); - l.reverse(); - for(SelContainer::const_iterator i=l.begin();i!=l.end();i++){ + std::vector l=this->childList(false, SPObject::ActionShow); + for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ SPObject *o = SP_OBJECT (*i); SPItem * child = dynamic_cast(o); if (child) { diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 3ea480f66..6cc5d7114 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -382,14 +382,14 @@ void SPObject::changeCSS(SPCSSAttr *css, gchar const *attr) sp_repr_css_change(this->getRepr(), css, attr); } -SelContainer SPObject::childList(bool add_ref, Action) { - SelContainer l; +std::vector SPObject::childList(bool add_ref, Action) { + std::vector l; for ( SPObject *child = firstChild() ; child; child = child->getNext() ) { if (add_ref) { sp_object_ref (child); } - l.push_front(child); + l.push_back(child); } return l; diff --git a/src/sp-object.h b/src/sp-object.h index 858587611..1f3032a52 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -55,6 +55,7 @@ class SPObject; #include #include #include +#include #include "version.h" #include "util/forward-pointer-iterator.h" @@ -335,10 +336,10 @@ public: enum Action { ActionGeneral, ActionBBox, ActionUpdate, ActionShow }; /** - * Retrieves the children as a GSList object, optionally ref'ing the children + * Retrieves the children as a std vector object, optionally ref'ing the children * in the process, if add_ref is specified. */ - SelContainer childList(bool add_ref, Action action = ActionGeneral); + std::vector childList(bool add_ref, Action action = ActionGeneral); /** * Append repr as child of this object. diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index 0090f1855..2c9427df8 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -55,13 +55,13 @@ SPObject *SPSwitch::_evaluateFirst() { return first; } -SelContainer SPSwitch::_childList(bool add_ref, SPObject::Action action) { +std::vector SPSwitch::_childList(bool add_ref, SPObject::Action action) { if ( action != SPObject::ActionGeneral ) { return this->childList(add_ref, action); } SPObject *child = _evaluateFirst(); - SelContainer x; + std::vector x; if (NULL == child) return x; @@ -69,7 +69,7 @@ SelContainer SPSwitch::_childList(bool add_ref, SPObject::Action action) { //g_object_ref (G_OBJECT (child)); sp_object_ref(child); } - x.push_front(child); + x.push_back(child); return x; } @@ -110,8 +110,8 @@ void SPSwitch::_reevaluate(bool /*add_to_drawing*/) { _releaseLastItem(_cached_item); - SelContainer item_list = _childList(false, SPObject::ActionShow); - for ( SelContainer::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + std::vector item_list = _childList(false, SPObject::ActionShow); + for ( std::vector::const_reverse_iterator iter=item_list.rbegin();iter!=item_list.rend();iter++) { SPObject *o = SP_OBJECT (*iter); if ( !SP_IS_ITEM (o) ) { continue; @@ -144,9 +144,9 @@ void SPSwitch::_releaseLastItem(SPObject *obj) void SPSwitch::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) { SPObject *evaluated_child = this->_evaluateFirst(); - SelContainer l = this->_childList(false, SPObject::ActionShow); + std::vector l = this->_childList(false, SPObject::ActionShow); - for ( SelContainer::const_iterator iter=l.begin();iter!=l.end();iter++) { + for ( std::vector::const_reverse_iterator iter=l.rbegin();iter!=l.rend();iter++) { SPObject *o = SP_OBJECT (*iter); if (SP_IS_ITEM (o)) { diff --git a/src/sp-switch.h b/src/sp-switch.h index 6a83072e7..7152e1b82 100644 --- a/src/sp-switch.h +++ b/src/sp-switch.h @@ -29,7 +29,7 @@ public: void resetChildEvaluated() { _reevaluate(); } - SelContainer _childList(bool add_ref, SPObject::Action action); + std::vector _childList(bool add_ref, SPObject::Action action); virtual void _showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags); SPObject *_evaluateFirst(); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index d62032e9d..10498b0f9 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -48,7 +48,7 @@ * 0 *elem1 == *elem2 * >0 *elem1 goes after *elem2 */ -static int sp_compare_x_position(SPItem *first, SPItem *second) +static bool sp_compare_x_position(SPItem *first, SPItem *second) { using Geom::X; using Geom::Y; @@ -58,7 +58,7 @@ static int sp_compare_x_position(SPItem *first, SPItem *second) if ( !a || !b ) { // FIXME? - return 0; + return false; } double const a_height = a->dimensions()[Y]; @@ -76,44 +76,38 @@ static int sp_compare_x_position(SPItem *first, SPItem *second) } if (!a_in_b_vert) { - return -1; + return true; } if (a_in_b_vert && a->min()[X] > b->min()[X]) { - return 1; + return false; } if (a_in_b_vert && a->min()[X] < b->min()[X]) { - return -1; + return true; } - return 0; + return false; } /* * Sort items by their y co-ordinates. */ -static int sp_compare_y_position(SPItem *first, SPItem *second) +static bool sp_compare_y_position(SPItem *first, SPItem *second) { Geom::OptRect a = first->documentVisualBounds(); Geom::OptRect b = second->documentVisualBounds(); if ( !a || !b ) { // FIXME? - return 0; + return false; } if (a->min()[Geom::Y] > b->min()[Geom::Y]) { - return 1; + return false; } if (a->min()[Geom::Y] < b->min()[Geom::Y]) { - return -1; + return true; } - return 0; -} -static bool sp_compare_y_position_obj(SPObject *first, SPObject *second){ - return sp_compare_y_position(static_cast(first),static_cast(second))<0; -} -static bool sp_compare_x_position_obj(SPObject *first, SPObject *second){ - return sp_compare_x_position(static_cast(first),static_cast(second))<0; + return false; } diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index c2df5fc1c..bd34c7c66 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -371,8 +371,8 @@ void TagsPanel::_objectsSelected( Selection *sel ) { _selectedConnection.block(); _tree.get_selection()->unselect_all(); - SelContainer tmp=sel->list(); - for(SelContainer::const_iterator i=tmp.begin();i!=tmp.end();i++) + std::vector tmp=sel->list(); + for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { SPObject *obj = reinterpret_cast(*i); _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 520b93e72..b61a108f0 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -711,7 +711,7 @@ void EraserTool::set_to_accumulated() { if ( !selection->isEmpty() ) { // If the item was not completely erased, track the new remainder. std::vector nowSel(selection->itemList()); - for (std::vector::const_iterator i2 = nowSel.begin();i!=nowSel.end();i2++) { + for (std::vector::const_iterator i2 = nowSel.begin();i2!=nowSel.end();i2++) { remainingItems.push_back(SP_ITEM(*i2)); } } diff --git a/src/xml/repr-util.cpp b/src/xml/repr-util.cpp index 12280ea5a..447f2ff40 100644 --- a/src/xml/repr-util.cpp +++ b/src/xml/repr-util.cpp @@ -259,7 +259,7 @@ gchar const *sp_xml_ns_prefix_uri(gchar const *prefix) * -1 first object's position is less than the second * @todo Rewrite this function's description to be understandable */ -int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second) +bool sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second) { int p1, p2; if (first->parent() == second->parent()) { @@ -276,9 +276,9 @@ int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::No g_assert(ancestor != NULL); if (ancestor == first) { - return 1; + return false; } else if (ancestor == second) { - return -1; + return true; } else { Inkscape::XML::Node const *to_first = AncetreFils(first, ancestor); Inkscape::XML::Node const *to_second = AncetreFils(second, ancestor); @@ -288,9 +288,9 @@ int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::No } } - if (p1 > p2) return 1; - if (p1 < p2) return -1; - return 0; + if (p1 > p2) return false; + if (p1 < p2) return true; + return false; /* effic: Assuming that the parent--child relationship is consistent (i.e. that the parent really does contain first and second among diff --git a/src/xml/repr.h b/src/xml/repr.h index e1d7fdfd6..c96560a98 100644 --- a/src/xml/repr.h +++ b/src/xml/repr.h @@ -118,7 +118,8 @@ unsigned sp_repr_set_svg_double(Inkscape::XML::Node *repr, char const *key, doub unsigned sp_repr_set_point(Inkscape::XML::Node *repr, char const *key, Geom::Point const & val); unsigned sp_repr_get_point(Inkscape::XML::Node *repr, char const *key, Geom::Point *val); -int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second); +//c++-style comparison : returns (bool)(a Date: Mon, 23 Feb 2015 22:41:06 +0100 Subject: Removed eclipse files, added removed pot file (bzr r13922.1.7) --- .cproject | 63 - .project | 27 - po/inkscape.pot | 35517 +++++++++++++++++++++++++++++++++++++++++++++++ src/helper/png-write.h | 4 - src/selection.h | 2 - src/sp-object.h | 3 - 6 files changed, 35517 insertions(+), 99 deletions(-) delete mode 100644 .cproject delete mode 100644 .project create mode 100644 po/inkscape.pot diff --git a/.cproject b/.cproject deleted file mode 100644 index 9cf450ade..000000000 --- a/.cproject +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.project b/.project deleted file mode 100644 index 687f2ac6c..000000000 --- a/.project +++ /dev/null @@ -1,27 +0,0 @@ - - - Local - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.core.ccnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/po/inkscape.pot b/po/inkscape.pot new file mode 100644 index 000000000..ae7f68e6d --- /dev/null +++ b/po/inkscape.pot @@ -0,0 +1,35517 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" +"POT-Creation-Date: 2015-02-21 16:58+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" + +#: ../inkscape.desktop.in.h:1 +msgid "Inkscape" +msgstr "" + +#: ../inkscape.desktop.in.h:2 +msgid "Vector Graphics Editor" +msgstr "" + +#: ../inkscape.desktop.in.h:3 +msgid "Inkscape Vector Graphics Editor" +msgstr "" + +#: ../inkscape.desktop.in.h:4 +msgid "Create and edit Scalable Vector Graphics images" +msgstr "" + +#: ../inkscape.desktop.in.h:5 +msgid "New Drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:2 +msgid "Smart Jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:3 ../share/filters/filters.svg.h:7 +#: ../share/filters/filters.svg.h:15 ../share/filters/filters.svg.h:31 +#: ../share/filters/filters.svg.h:35 ../share/filters/filters.svg.h:107 +#: ../share/filters/filters.svg.h:139 ../share/filters/filters.svg.h:143 +#: ../share/filters/filters.svg.h:147 ../share/filters/filters.svg.h:151 +#: ../share/filters/filters.svg.h:163 ../share/filters/filters.svg.h:171 +#: ../share/filters/filters.svg.h:219 ../share/filters/filters.svg.h:227 +#: ../share/filters/filters.svg.h:283 ../share/filters/filters.svg.h:299 +#: ../share/filters/filters.svg.h:303 ../share/filters/filters.svg.h:551 +#: ../share/filters/filters.svg.h:555 ../share/filters/filters.svg.h:559 +#: ../share/filters/filters.svg.h:563 ../share/filters/filters.svg.h:567 +#: ../src/extension/internal/filter/bevels.h:63 +#: ../src/extension/internal/filter/bevels.h:144 +#: ../src/extension/internal/filter/bevels.h:228 +msgid "Bevels" +msgstr "" + +#: ../share/filters/filters.svg.h:4 +msgid "Same as Matte jelly but with more controls" +msgstr "" + +#: ../share/filters/filters.svg.h:6 +msgid "Metal Casting" +msgstr "" + +#: ../share/filters/filters.svg.h:8 +msgid "Smooth drop-like bevel with metallic finish" +msgstr "" + +#: ../share/filters/filters.svg.h:10 +msgid "Apparition" +msgstr "" + +#: ../share/filters/filters.svg.h:11 ../share/filters/filters.svg.h:323 +#: ../share/filters/filters.svg.h:655 +#: ../src/extension/internal/filter/blurs.h:63 +#: ../src/extension/internal/filter/blurs.h:132 +#: ../src/extension/internal/filter/blurs.h:201 +#: ../src/extension/internal/filter/blurs.h:267 +#: ../src/extension/internal/filter/blurs.h:351 +msgid "Blurs" +msgstr "" + +#: ../share/filters/filters.svg.h:12 +msgid "Edges are partly feathered out" +msgstr "" + +#: ../share/filters/filters.svg.h:14 +msgid "Jigsaw Piece" +msgstr "" + +#: ../share/filters/filters.svg.h:16 +msgid "Low, sharp bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:18 +msgid "Rubber Stamp" +msgstr "" + +#: ../share/filters/filters.svg.h:19 ../share/filters/filters.svg.h:43 +#: ../share/filters/filters.svg.h:47 ../share/filters/filters.svg.h:51 +#: ../share/filters/filters.svg.h:59 ../share/filters/filters.svg.h:63 +#: ../share/filters/filters.svg.h:95 ../share/filters/filters.svg.h:99 +#: ../share/filters/filters.svg.h:103 ../share/filters/filters.svg.h:287 +#: ../share/filters/filters.svg.h:291 ../share/filters/filters.svg.h:331 +#: ../share/filters/filters.svg.h:335 ../share/filters/filters.svg.h:339 +#: ../share/filters/filters.svg.h:391 ../share/filters/filters.svg.h:407 +#: ../share/filters/filters.svg.h:451 ../share/filters/filters.svg.h:455 +#: ../share/filters/filters.svg.h:459 ../share/filters/filters.svg.h:475 +#: ../share/filters/filters.svg.h:487 ../share/filters/filters.svg.h:583 +#: ../share/filters/filters.svg.h:643 ../share/filters/filters.svg.h:683 +#: ../share/filters/filters.svg.h:687 ../share/filters/filters.svg.h:691 +#: ../share/filters/filters.svg.h:695 ../share/filters/filters.svg.h:699 +#: ../share/filters/filters.svg.h:703 ../share/filters/filters.svg.h:707 +#: ../share/filters/filters.svg.h:711 ../share/filters/filters.svg.h:715 +#: ../share/filters/filters.svg.h:723 +#: ../src/extension/internal/filter/overlays.h:80 +msgid "Overlays" +msgstr "" + +#: ../share/filters/filters.svg.h:20 +msgid "Random whiteouts inside" +msgstr "" + +#: ../share/filters/filters.svg.h:22 +msgid "Ink Bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:23 ../share/filters/filters.svg.h:27 +#: ../share/filters/filters.svg.h:115 ../share/filters/filters.svg.h:431 +msgid "Protrusions" +msgstr "" + +#: ../share/filters/filters.svg.h:24 +msgid "Inky splotches underneath the object" +msgstr "" + +#: ../share/filters/filters.svg.h:26 +msgid "Fire" +msgstr "" + +#: ../share/filters/filters.svg.h:28 +msgid "Edges of object are on fire" +msgstr "" + +#: ../share/filters/filters.svg.h:30 +msgid "Bloom" +msgstr "" + +#: ../share/filters/filters.svg.h:32 +msgid "Soft, cushion-like bevel with matte highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:34 +msgid "Ridged Border" +msgstr "" + +#: ../share/filters/filters.svg.h:36 +msgid "Ridged border with inner bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:38 +msgid "Ripple" +msgstr "" + +#: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 +#: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 +#: ../share/filters/filters.svg.h:327 ../share/filters/filters.svg.h:363 +#: ../share/filters/filters.svg.h:443 ../share/filters/filters.svg.h:519 +#: ../share/filters/filters.svg.h:635 +#: ../src/extension/internal/filter/distort.h:96 +#: ../src/extension/internal/filter/distort.h:205 +msgid "Distort" +msgstr "" + +#: ../share/filters/filters.svg.h:40 +msgid "Horizontal rippling of edges" +msgstr "" + +#: ../share/filters/filters.svg.h:42 +msgid "Speckle" +msgstr "" + +#: ../share/filters/filters.svg.h:44 +msgid "Fill object with sparse translucent specks" +msgstr "" + +#: ../share/filters/filters.svg.h:46 +msgid "Oil Slick" +msgstr "" + +#: ../share/filters/filters.svg.h:48 +msgid "Rainbow-colored semitransparent oily splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:50 +msgid "Frost" +msgstr "" + +#: ../share/filters/filters.svg.h:52 +msgid "Flake-like white splotches" +msgstr "" + +#: ../share/filters/filters.svg.h:54 +msgid "Leopard Fur" +msgstr "" + +#: ../share/filters/filters.svg.h:55 ../share/filters/filters.svg.h:175 +#: ../share/filters/filters.svg.h:179 ../share/filters/filters.svg.h:183 +#: ../share/filters/filters.svg.h:191 ../share/filters/filters.svg.h:211 +#: ../share/filters/filters.svg.h:239 ../share/filters/filters.svg.h:243 +#: ../share/filters/filters.svg.h:247 ../share/filters/filters.svg.h:255 +#: ../share/filters/filters.svg.h:387 ../share/filters/filters.svg.h:395 +#: ../share/filters/filters.svg.h:399 ../share/filters/filters.svg.h:403 +msgid "Materials" +msgstr "" + +#: ../share/filters/filters.svg.h:56 +msgid "Leopard spots (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:58 +msgid "Zebra" +msgstr "" + +#: ../share/filters/filters.svg.h:60 +msgid "Irregular vertical dark stripes (loses object's own color)" +msgstr "" + +#: ../share/filters/filters.svg.h:62 +msgid "Clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:64 +msgid "Airy, fluffy, sparse white clouds" +msgstr "" + +#: ../share/filters/filters.svg.h:66 +#: ../src/extension/internal/bitmap/sharpen.cpp:38 +msgid "Sharpen" +msgstr "" + +#: ../share/filters/filters.svg.h:67 ../share/filters/filters.svg.h:71 +#: ../share/filters/filters.svg.h:87 ../share/filters/filters.svg.h:295 +#: ../share/filters/filters.svg.h:415 +#: ../src/extension/internal/filter/image.h:62 +msgid "Image Effects" +msgstr "" + +#: ../share/filters/filters.svg.h:68 +msgid "Sharpen edges and boundaries within the object, force=0.15" +msgstr "" + +#: ../share/filters/filters.svg.h:70 +msgid "Sharpen More" +msgstr "" + +#: ../share/filters/filters.svg.h:72 +msgid "Sharpen edges and boundaries within the object, force=0.3" +msgstr "" + +#: ../share/filters/filters.svg.h:74 +msgid "Oil painting" +msgstr "" + +#: ../share/filters/filters.svg.h:75 ../share/filters/filters.svg.h:79 +#: ../share/filters/filters.svg.h:83 ../share/filters/filters.svg.h:447 +#: ../share/filters/filters.svg.h:495 ../share/filters/filters.svg.h:499 +#: ../share/filters/filters.svg.h:503 ../share/filters/filters.svg.h:507 +#: ../share/filters/filters.svg.h:515 ../share/filters/filters.svg.h:659 +#: ../share/filters/filters.svg.h:663 ../share/filters/filters.svg.h:667 +#: ../share/filters/filters.svg.h:671 ../share/filters/filters.svg.h:675 +#: ../share/filters/filters.svg.h:679 ../share/filters/filters.svg.h:719 +#: ../share/filters/filters.svg.h:803 ../share/filters/filters.svg.h:815 +#: ../src/extension/internal/filter/paint.h:113 +#: ../src/extension/internal/filter/paint.h:244 +#: ../src/extension/internal/filter/paint.h:363 +#: ../src/extension/internal/filter/paint.h:507 +#: ../src/extension/internal/filter/paint.h:602 +#: ../src/extension/internal/filter/paint.h:725 +#: ../src/extension/internal/filter/paint.h:877 +#: ../src/extension/internal/filter/paint.h:981 +msgid "Image Paint and Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:76 +msgid "Simulate oil painting style" +msgstr "" + +#. Pencil +#: ../share/filters/filters.svg.h:78 +#: ../src/ui/dialog/inkscape-preferences.cpp:424 +msgid "Pencil" +msgstr "" + +#: ../share/filters/filters.svg.h:80 +msgid "Detect color edges and retrace them in grayscale" +msgstr "" + +#: ../share/filters/filters.svg.h:82 +msgid "Blueprint" +msgstr "" + +#: ../share/filters/filters.svg.h:84 +msgid "Detect color edges and retrace them in blue" +msgstr "" + +#: ../share/filters/filters.svg.h:86 +msgid "Age" +msgstr "" + +#: ../share/filters/filters.svg.h:88 +msgid "Imitate aged photograph" +msgstr "" + +#: ../share/filters/filters.svg.h:90 +msgid "Organic" +msgstr "" + +#: ../share/filters/filters.svg.h:91 ../share/filters/filters.svg.h:119 +#: ../share/filters/filters.svg.h:127 ../share/filters/filters.svg.h:187 +#: ../share/filters/filters.svg.h:195 ../share/filters/filters.svg.h:199 +#: ../share/filters/filters.svg.h:251 ../share/filters/filters.svg.h:259 +#: ../share/filters/filters.svg.h:263 ../share/filters/filters.svg.h:355 +#: ../share/filters/filters.svg.h:359 ../share/filters/filters.svg.h:367 +#: ../share/filters/filters.svg.h:371 ../share/filters/filters.svg.h:375 +#: ../share/filters/filters.svg.h:379 ../share/filters/filters.svg.h:383 +#: ../share/filters/filters.svg.h:439 ../share/filters/filters.svg.h:467 +#: ../share/filters/filters.svg.h:491 ../share/filters/filters.svg.h:531 +msgid "Textures" +msgstr "" + +#: ../share/filters/filters.svg.h:92 +msgid "Bulging, knotty, slick 3D surface" +msgstr "" + +#: ../share/filters/filters.svg.h:94 +msgid "Barbed Wire" +msgstr "" + +#: ../share/filters/filters.svg.h:96 +msgid "Gray bevelled wires with drop shadows" +msgstr "" + +#: ../share/filters/filters.svg.h:98 +msgid "Swiss Cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:100 +msgid "Random inner-bevel holes" +msgstr "" + +#: ../share/filters/filters.svg.h:102 +msgid "Blue Cheese" +msgstr "" + +#: ../share/filters/filters.svg.h:104 +msgid "Marble-like bluish speckles" +msgstr "" + +#: ../share/filters/filters.svg.h:106 +msgid "Button" +msgstr "" + +#: ../share/filters/filters.svg.h:108 +msgid "Soft bevel, slightly depressed middle" +msgstr "" + +#: ../share/filters/filters.svg.h:110 +msgid "Inset" +msgstr "" + +#: ../share/filters/filters.svg.h:111 ../share/filters/filters.svg.h:267 +#: ../share/filters/filters.svg.h:343 ../share/filters/filters.svg.h:435 +#: ../share/filters/filters.svg.h:811 +#: ../src/extension/internal/filter/shadows.h:81 +msgid "Shadows and Glows" +msgstr "" + +#: ../share/filters/filters.svg.h:112 +msgid "Shadowy outer bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:114 +msgid "Dripping" +msgstr "" + +#: ../share/filters/filters.svg.h:116 +msgid "Random paint streaks downwards" +msgstr "" + +#: ../share/filters/filters.svg.h:118 +msgid "Jam Spread" +msgstr "" + +#: ../share/filters/filters.svg.h:120 +msgid "Glossy clumpy jam spread" +msgstr "" + +#: ../share/filters/filters.svg.h:122 +msgid "Pixel Smear" +msgstr "" + +#: ../share/filters/filters.svg.h:124 +msgid "Van Gogh painting effect for bitmaps" +msgstr "" + +#: ../share/filters/filters.svg.h:126 +msgid "Cracked Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:128 +msgid "Under a cracked glass" +msgstr "" + +#: ../share/filters/filters.svg.h:130 +msgid "Bubbly Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:131 ../share/filters/filters.svg.h:307 +#: ../share/filters/filters.svg.h:311 ../share/filters/filters.svg.h:347 +#: ../share/filters/filters.svg.h:351 ../share/filters/filters.svg.h:419 +#: ../share/filters/filters.svg.h:423 ../share/filters/filters.svg.h:463 +#: ../share/filters/filters.svg.h:471 ../share/filters/filters.svg.h:479 +#: ../share/filters/filters.svg.h:483 ../share/filters/filters.svg.h:511 +#: ../share/filters/filters.svg.h:535 ../share/filters/filters.svg.h:539 +#: ../share/filters/filters.svg.h:543 ../share/filters/filters.svg.h:547 +#: ../share/filters/filters.svg.h:571 ../share/filters/filters.svg.h:579 +#: ../share/filters/filters.svg.h:595 ../share/filters/filters.svg.h:599 +#: ../share/filters/filters.svg.h:603 ../share/filters/filters.svg.h:607 +#: ../share/filters/filters.svg.h:611 ../share/filters/filters.svg.h:615 +#: ../share/filters/filters.svg.h:619 ../share/filters/filters.svg.h:623 +#: ../share/filters/filters.svg.h:799 ../share/filters/filters.svg.h:807 +#: ../src/extension/internal/filter/bumps.h:142 +#: ../src/extension/internal/filter/bumps.h:362 +msgid "Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:132 +msgid "Flexible bubbles effect with some displacement" +msgstr "" + +#: ../share/filters/filters.svg.h:134 +msgid "Glowing Bubble" +msgstr "" + +#: ../share/filters/filters.svg.h:135 ../share/filters/filters.svg.h:155 +#: ../share/filters/filters.svg.h:159 ../share/filters/filters.svg.h:203 +#: ../share/filters/filters.svg.h:207 ../share/filters/filters.svg.h:215 +#: ../share/filters/filters.svg.h:223 +msgid "Ridges" +msgstr "" + +#: ../share/filters/filters.svg.h:136 +msgid "Bubble effect with refraction and glow" +msgstr "" + +#: ../share/filters/filters.svg.h:138 +msgid "Neon" +msgstr "" + +#: ../share/filters/filters.svg.h:140 +msgid "Neon light effect" +msgstr "" + +#: ../share/filters/filters.svg.h:142 +msgid "Molten Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:144 +msgid "Melting parts of object together, with a glossy bevel and a glow" +msgstr "" + +#: ../share/filters/filters.svg.h:146 +msgid "Pressed Steel" +msgstr "" + +#: ../share/filters/filters.svg.h:148 +msgid "Pressed metal with a rolled edge" +msgstr "" + +#: ../share/filters/filters.svg.h:150 +msgid "Matte Bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:152 +msgid "Soft, pastel-colored, blurry bevel" +msgstr "" + +#: ../share/filters/filters.svg.h:154 +msgid "Thin Membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:156 +msgid "Thin like a soap membrane" +msgstr "" + +#: ../share/filters/filters.svg.h:158 +msgid "Matte Ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:160 +msgid "Soft pastel ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:162 +msgid "Glowing Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:164 +msgid "Glowing metal texture" +msgstr "" + +#: ../share/filters/filters.svg.h:166 +msgid "Leaves" +msgstr "" + +#: ../share/filters/filters.svg.h:167 ../share/filters/filters.svg.h:235 +#: ../share/filters/filters.svg.h:271 ../share/filters/filters.svg.h:639 +#: ../share/extensions/pathscatter.inx.h:1 +msgid "Scatter" +msgstr "" + +#: ../share/filters/filters.svg.h:168 +msgid "Leaves on the ground in Fall, or living foliage" +msgstr "" + +#: ../share/filters/filters.svg.h:170 +#: ../src/extension/internal/filter/paint.h:339 +msgid "Translucent" +msgstr "" + +#: ../share/filters/filters.svg.h:172 +msgid "Illuminated translucent plastic or glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:174 +msgid "Iridescent Beeswax" +msgstr "" + +#: ../share/filters/filters.svg.h:176 +msgid "Waxy texture which keeps its iridescence through color fill change" +msgstr "" + +#: ../share/filters/filters.svg.h:178 +msgid "Eroded Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:180 +msgid "Eroded metal texture with ridges, grooves, holes and bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:182 +msgid "Cracked Lava" +msgstr "" + +#: ../share/filters/filters.svg.h:184 +msgid "A volcanic texture, a little like leather" +msgstr "" + +#: ../share/filters/filters.svg.h:186 +msgid "Bark" +msgstr "" + +#: ../share/filters/filters.svg.h:188 +msgid "Bark texture, vertical; use with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:190 +msgid "Lizard Skin" +msgstr "" + +#: ../share/filters/filters.svg.h:192 +msgid "Stylized reptile skin texture" +msgstr "" + +#: ../share/filters/filters.svg.h:194 +msgid "Stone Wall" +msgstr "" + +#: ../share/filters/filters.svg.h:196 +msgid "Stone wall texture to use with not too saturated colors" +msgstr "" + +#: ../share/filters/filters.svg.h:198 +msgid "Silk Carpet" +msgstr "" + +#: ../share/filters/filters.svg.h:200 +msgid "Silk carpet texture, horizontal stripes" +msgstr "" + +#: ../share/filters/filters.svg.h:202 +msgid "Refractive Gel A" +msgstr "" + +#: ../share/filters/filters.svg.h:204 +msgid "Gel effect with light refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:206 +msgid "Refractive Gel B" +msgstr "" + +#: ../share/filters/filters.svg.h:208 +msgid "Gel effect with strong refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:210 +msgid "Metallized Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:212 +msgid "" +"Metallized effect with a soft lighting, slightly translucent at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:214 +msgid "Dragee" +msgstr "" + +#: ../share/filters/filters.svg.h:216 +msgid "Gel Ridge with a pearlescent look" +msgstr "" + +#: ../share/filters/filters.svg.h:218 +msgid "Raised Border" +msgstr "" + +#: ../share/filters/filters.svg.h:220 +msgid "Strongly raised border around a flat surface" +msgstr "" + +#: ../share/filters/filters.svg.h:222 +msgid "Metallized Ridge" +msgstr "" + +#: ../share/filters/filters.svg.h:224 +msgid "Gel Ridge metallized at its top" +msgstr "" + +#: ../share/filters/filters.svg.h:226 +msgid "Fat Oil" +msgstr "" + +#: ../share/filters/filters.svg.h:228 +msgid "Fat oil with some adjustable turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:230 +msgid "Black Hole" +msgstr "" + +#: ../share/filters/filters.svg.h:231 ../share/filters/filters.svg.h:275 +#: ../share/filters/filters.svg.h:279 ../share/filters/filters.svg.h:835 +#: ../share/filters/filters.svg.h:839 ../share/filters/filters.svg.h:843 +#: ../src/extension/internal/filter/morphology.h:76 +#: ../src/extension/internal/filter/morphology.h:203 +#: ../src/filter-enums.cpp:32 +msgid "Morphology" +msgstr "" + +#: ../share/filters/filters.svg.h:232 +msgid "Creates a black light inside and outside" +msgstr "" + +#: ../share/filters/filters.svg.h:234 +msgid "Cubes" +msgstr "" + +#: ../share/filters/filters.svg.h:236 +msgid "Scattered cubes; adjust the Morphology primitive to vary size" +msgstr "" + +#: ../share/filters/filters.svg.h:238 +msgid "Peel Off" +msgstr "" + +#: ../share/filters/filters.svg.h:240 +msgid "Peeling painting on a wall" +msgstr "" + +#: ../share/filters/filters.svg.h:242 +msgid "Gold Splatter" +msgstr "" + +#: ../share/filters/filters.svg.h:244 +msgid "Splattered cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:246 +msgid "Gold Paste" +msgstr "" + +#: ../share/filters/filters.svg.h:248 +msgid "Fat pasted cast metal, with golden highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:250 +msgid "Crumpled Plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:252 +msgid "Crumpled matte plastic, with melted edge" +msgstr "" + +#: ../share/filters/filters.svg.h:254 +msgid "Enamel Jewelry" +msgstr "" + +#: ../share/filters/filters.svg.h:256 +msgid "Slightly cracked enameled texture" +msgstr "" + +#: ../share/filters/filters.svg.h:258 +msgid "Rough Paper" +msgstr "" + +#: ../share/filters/filters.svg.h:260 +msgid "Aquarelle paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:262 +msgid "Rough and Glossy" +msgstr "" + +#: ../share/filters/filters.svg.h:264 +msgid "" +"Crumpled glossy paper effect which can be used for pictures as for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:266 +msgid "In and Out" +msgstr "" + +#: ../share/filters/filters.svg.h:268 +msgid "Inner colorized shadow, outer black shadow" +msgstr "" + +#: ../share/filters/filters.svg.h:270 +msgid "Air Spray" +msgstr "" + +#: ../share/filters/filters.svg.h:272 +msgid "Convert to small scattered particles with some thickness" +msgstr "" + +#: ../share/filters/filters.svg.h:274 +msgid "Warm Inside" +msgstr "" + +#: ../share/filters/filters.svg.h:276 +msgid "Blurred colorized contour, filled inside" +msgstr "" + +#: ../share/filters/filters.svg.h:278 +msgid "Cool Outside" +msgstr "" + +#: ../share/filters/filters.svg.h:280 +msgid "Blurred colorized contour, empty inside" +msgstr "" + +#: ../share/filters/filters.svg.h:282 +msgid "Electronic Microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:284 +msgid "" +"Bevel, crude light, discoloration and glow like in electronic microscopy" +msgstr "" + +#: ../share/filters/filters.svg.h:286 +msgid "Tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:288 +msgid "Checkered tartan pattern" +msgstr "" + +#: ../share/filters/filters.svg.h:290 +msgid "Shaken Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:292 +msgid "Colorizable filling with flow inside like transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:294 +msgid "Soft Focus Lens" +msgstr "" + +#: ../share/filters/filters.svg.h:296 +msgid "Glowing image content without blurring it" +msgstr "" + +#: ../share/filters/filters.svg.h:298 +msgid "Stained Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:300 +msgid "Illuminated stained glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:302 +msgid "Dark Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:304 +msgid "Illuminated glass effect with light coming from beneath" +msgstr "" + +#: ../share/filters/filters.svg.h:306 +msgid "HSL Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:308 +msgid "Same as HSL Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:310 +msgid "Bubbly Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:312 +msgid "Same as Bubbly Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 +msgid "Torn Edges" +msgstr "" + +#: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 +msgid "" +"Displace the outside of shapes and pictures without altering their content" +msgstr "" + +#: ../share/filters/filters.svg.h:318 +msgid "Roughen Inside" +msgstr "" + +#: ../share/filters/filters.svg.h:320 +msgid "Roughen all inside shapes" +msgstr "" + +#: ../share/filters/filters.svg.h:322 +msgid "Evanescent" +msgstr "" + +#: ../share/filters/filters.svg.h:324 +msgid "" +"Blur the contents of objects, preserving the outline and adding progressive " +"transparency at edges" +msgstr "" + +#: ../share/filters/filters.svg.h:326 +msgid "Chalk and Sponge" +msgstr "" + +#: ../share/filters/filters.svg.h:328 +msgid "Low turbulence gives sponge look and high turbulence chalk" +msgstr "" + +#: ../share/filters/filters.svg.h:330 +msgid "People" +msgstr "" + +#: ../share/filters/filters.svg.h:332 +msgid "Colorized blotches, like a crowd of people" +msgstr "" + +#: ../share/filters/filters.svg.h:334 +msgid "Scotland" +msgstr "" + +#: ../share/filters/filters.svg.h:336 +msgid "Colorized mountain tops out of the fog" +msgstr "" + +#: ../share/filters/filters.svg.h:338 +msgid "Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:340 +msgid "" +"Phantasmagorical turbulent wisps, like Hieronymus Bosch's Garden of Delights" +msgstr "" + +#: ../share/filters/filters.svg.h:342 +msgid "Cutout Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:344 +msgid "In and out glow with a possible offset and colorizable flood" +msgstr "" + +#: ../share/filters/filters.svg.h:346 +msgid "Dark Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:348 +msgid "Emboss effect : 3D relief where white is replaced by black" +msgstr "" + +#: ../share/filters/filters.svg.h:350 +msgid "Bubbly Bumps Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:352 +msgid "Same as Bubbly Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:354 +msgid "Blotting Paper" +msgstr "" + +#: ../share/filters/filters.svg.h:356 +msgid "Inkblot on blotting paper" +msgstr "" + +#: ../share/filters/filters.svg.h:358 +msgid "Wax Print" +msgstr "" + +#: ../share/filters/filters.svg.h:360 +msgid "Wax print on tissue texture" +msgstr "" + +#: ../share/filters/filters.svg.h:366 +msgid "Watercolor" +msgstr "" + +#: ../share/filters/filters.svg.h:368 +msgid "Cloudy watercolor effect" +msgstr "" + +#: ../share/filters/filters.svg.h:370 +msgid "Felt" +msgstr "" + +#: ../share/filters/filters.svg.h:372 +msgid "" +"Felt like texture with color turbulence and slightly darker at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:374 +msgid "Ink Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:376 +msgid "Ink paint on paper with some turbulent color shift" +msgstr "" + +#: ../share/filters/filters.svg.h:378 +msgid "Tinted Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:380 +msgid "Smooth rainbow colors melted along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:382 +msgid "Melted Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:384 +msgid "Smooth rainbow colors slightly melted along the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:386 +msgid "Flex Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:388 +msgid "Bright, polished uneven metal casting, colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:390 +msgid "Wavy Tartan" +msgstr "" + +#: ../share/filters/filters.svg.h:392 +msgid "Tartan pattern with a wavy displacement and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:394 +msgid "3D Marble" +msgstr "" + +#: ../share/filters/filters.svg.h:396 +msgid "3D warped marble texture" +msgstr "" + +#: ../share/filters/filters.svg.h:398 +msgid "3D Wood" +msgstr "" + +#: ../share/filters/filters.svg.h:400 +msgid "3D warped, fibered wood texture" +msgstr "" + +#: ../share/filters/filters.svg.h:402 +msgid "3D Mother of Pearl" +msgstr "" + +#: ../share/filters/filters.svg.h:404 +msgid "3D warped, iridescent pearly shell texture" +msgstr "" + +#: ../share/filters/filters.svg.h:406 +msgid "Tiger Fur" +msgstr "" + +#: ../share/filters/filters.svg.h:408 +msgid "Tiger fur pattern with folds and bevel around the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:410 +msgid "Black Light" +msgstr "" + +#: ../share/filters/filters.svg.h:411 ../share/filters/filters.svg.h:575 +#: ../share/filters/filters.svg.h:587 ../share/filters/filters.svg.h:627 +#: ../share/filters/filters.svg.h:631 ../share/filters/filters.svg.h:819 +#: ../share/filters/filters.svg.h:827 ../share/filters/filters.svg.h:831 +#: ../src/extension/internal/bitmap/colorize.cpp:52 +#: ../src/extension/internal/filter/bumps.h:101 +#: ../src/extension/internal/filter/bumps.h:321 +#: ../src/extension/internal/filter/bumps.h:328 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:164 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:262 +#: ../src/extension/internal/filter/color.h:340 +#: ../src/extension/internal/filter/color.h:347 +#: ../src/extension/internal/filter/color.h:437 +#: ../src/extension/internal/filter/color.h:532 +#: ../src/extension/internal/filter/color.h:654 +#: ../src/extension/internal/filter/color.h:751 +#: ../src/extension/internal/filter/color.h:830 +#: ../src/extension/internal/filter/color.h:921 +#: ../src/extension/internal/filter/color.h:1049 +#: ../src/extension/internal/filter/color.h:1119 +#: ../src/extension/internal/filter/color.h:1212 +#: ../src/extension/internal/filter/color.h:1324 +#: ../src/extension/internal/filter/color.h:1429 +#: ../src/extension/internal/filter/color.h:1505 +#: ../src/extension/internal/filter/color.h:1609 +#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/morphology.h:194 +#: ../src/extension/internal/filter/overlays.h:73 +#: ../src/extension/internal/filter/paint.h:99 +#: ../src/extension/internal/filter/paint.h:713 +#: ../src/extension/internal/filter/paint.h:717 +#: ../src/extension/internal/filter/shadows.h:73 +#: ../src/extension/internal/filter/transparency.h:345 +#: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:830 +#: ../src/ui/dialog/clonetiler.cpp:981 +#: ../src/ui/dialog/document-properties.cpp:157 +#: ../share/extensions/color_HSL_adjust.inx.h:20 +#: ../share/extensions/color_blackandwhite.inx.h:3 +#: ../share/extensions/color_brighter.inx.h:2 +#: ../share/extensions/color_custom.inx.h:15 +#: ../share/extensions/color_darker.inx.h:2 +#: ../share/extensions/color_desaturate.inx.h:2 +#: ../share/extensions/color_grayscale.inx.h:2 +#: ../share/extensions/color_lesshue.inx.h:2 +#: ../share/extensions/color_lesslight.inx.h:2 +#: ../share/extensions/color_lesssaturation.inx.h:2 +#: ../share/extensions/color_morehue.inx.h:2 +#: ../share/extensions/color_morelight.inx.h:2 +#: ../share/extensions/color_moresaturation.inx.h:2 +#: ../share/extensions/color_negative.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:8 +#: ../share/extensions/color_removeblue.inx.h:2 +#: ../share/extensions/color_removegreen.inx.h:2 +#: ../share/extensions/color_removered.inx.h:2 +#: ../share/extensions/color_replace.inx.h:6 +#: ../share/extensions/color_rgbbarrel.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:19 +msgid "Color" +msgstr "" + +#: ../share/filters/filters.svg.h:412 +msgid "Light areas turn to black" +msgstr "" + +#: ../share/filters/filters.svg.h:414 +msgid "Film Grain" +msgstr "" + +#: ../share/filters/filters.svg.h:416 +msgid "Adds a small scale graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:418 +msgid "Plaster Color" +msgstr "" + +#: ../share/filters/filters.svg.h:420 +msgid "Colored plaster emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:422 +msgid "Velvet Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:424 +msgid "Gives Smooth Bumps velvet like" +msgstr "" + +#: ../share/filters/filters.svg.h:426 +msgid "Comics Cream" +msgstr "" + +#: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 +#: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 +#: ../share/filters/filters.svg.h:739 ../share/filters/filters.svg.h:743 +#: ../share/filters/filters.svg.h:747 ../share/filters/filters.svg.h:751 +#: ../share/filters/filters.svg.h:755 ../share/filters/filters.svg.h:759 +#: ../share/filters/filters.svg.h:763 ../share/filters/filters.svg.h:767 +#: ../share/filters/filters.svg.h:771 ../share/filters/filters.svg.h:775 +#: ../share/filters/filters.svg.h:779 ../share/filters/filters.svg.h:783 +#: ../share/filters/filters.svg.h:787 ../share/filters/filters.svg.h:791 +#: ../share/filters/filters.svg.h:795 +msgid "Non realistic 3D shaders" +msgstr "" + +#: ../share/filters/filters.svg.h:428 +msgid "Comics shader with creamy waves transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:430 +msgid "Chewing Gum" +msgstr "" + +#: ../share/filters/filters.svg.h:432 +msgid "" +"Creates colorizable blotches which smoothly flow over the edges of the lines " +"at their crossings" +msgstr "" + +#: ../share/filters/filters.svg.h:434 +msgid "Dark And Glow" +msgstr "" + +#: ../share/filters/filters.svg.h:436 +msgid "Darkens the edge with an inner blur and adds a flexible glow" +msgstr "" + +#: ../share/filters/filters.svg.h:438 +msgid "Warped Rainbow" +msgstr "" + +#: ../share/filters/filters.svg.h:440 +msgid "Smooth rainbow colors warped along the edges and colorizable" +msgstr "" + +#: ../share/filters/filters.svg.h:442 +msgid "Rough and Dilate" +msgstr "" + +#: ../share/filters/filters.svg.h:444 +msgid "Create a turbulent contour around" +msgstr "" + +#: ../share/filters/filters.svg.h:446 +msgid "Old Postcard" +msgstr "" + +#: ../share/filters/filters.svg.h:448 +msgid "Slightly posterize and draw edges like on old printed postcards" +msgstr "" + +#: ../share/filters/filters.svg.h:450 +msgid "Dots Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:452 +msgid "Gives a pointillist HSL sensitive transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:454 +msgid "Canvas Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:456 +msgid "Gives a canvas like HSL sensitive transparency." +msgstr "" + +#: ../share/filters/filters.svg.h:458 +msgid "Smear Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:460 +msgid "" +"Paint objects with a transparent turbulence which turns around color edges" +msgstr "" + +#: ../share/filters/filters.svg.h:462 +msgid "Thick Paint" +msgstr "" + +#: ../share/filters/filters.svg.h:464 +msgid "Thick painting effect with turbulence" +msgstr "" + +#: ../share/filters/filters.svg.h:466 +msgid "Burst" +msgstr "" + +#: ../share/filters/filters.svg.h:468 +msgid "Burst balloon texture crumpled and with holes" +msgstr "" + +#: ../share/filters/filters.svg.h:470 +msgid "Embossed Leather" +msgstr "" + +#: ../share/filters/filters.svg.h:472 +msgid "" +"Combine a HSL edges detection bump with a leathery or woody and colorizable " +"texture" +msgstr "" + +#: ../share/filters/filters.svg.h:474 +msgid "Carnaval" +msgstr "" + +#: ../share/filters/filters.svg.h:476 +msgid "White splotches evocating carnaval masks" +msgstr "" + +#: ../share/filters/filters.svg.h:478 +msgid "Plastify" +msgstr "" + +#: ../share/filters/filters.svg.h:480 +msgid "" +"HSL edges detection bump with a wavy reflective surface effect and variable " +"crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:482 +msgid "Plaster" +msgstr "" + +#: ../share/filters/filters.svg.h:484 +msgid "" +"Combine a HSL edges detection bump with a matte and crumpled surface effect" +msgstr "" + +#: ../share/filters/filters.svg.h:486 +msgid "Rough Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:488 +msgid "Adds a turbulent transparency which displaces pixels at the same time" +msgstr "" + +#: ../share/filters/filters.svg.h:490 +msgid "Gouache" +msgstr "" + +#: ../share/filters/filters.svg.h:492 +msgid "Partly opaque water color effect with bleed" +msgstr "" + +#: ../share/filters/filters.svg.h:494 +msgid "Alpha Engraving" +msgstr "" + +#: ../share/filters/filters.svg.h:496 +msgid "Gives a transparent engraving effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:498 +msgid "Alpha Draw Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:500 +msgid "Gives a transparent fluid drawing effect with rough line and filling" +msgstr "" + +#: ../share/filters/filters.svg.h:502 +msgid "Liquid Drawing" +msgstr "" + +#: ../share/filters/filters.svg.h:504 +msgid "Gives a fluid and wavy expressionist drawing effect to images" +msgstr "" + +#: ../share/filters/filters.svg.h:506 +msgid "Marbled Ink" +msgstr "" + +#: ../share/filters/filters.svg.h:508 +msgid "Marbled transparency effect which conforms to image detected edges" +msgstr "" + +#: ../share/filters/filters.svg.h:510 +msgid "Thick Acrylic" +msgstr "" + +#: ../share/filters/filters.svg.h:512 +msgid "Thick acrylic paint texture with high texture depth" +msgstr "" + +#: ../share/filters/filters.svg.h:514 +msgid "Alpha Engraving B" +msgstr "" + +#: ../share/filters/filters.svg.h:516 +msgid "" +"Gives a controllable roughness engraving effect to bitmaps and materials" +msgstr "" + +#: ../share/filters/filters.svg.h:518 +msgid "Lapping" +msgstr "" + +#: ../share/filters/filters.svg.h:520 +msgid "Something like a water noise" +msgstr "" + +#: ../share/filters/filters.svg.h:522 +msgid "Monochrome Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 +#: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 +#: ../share/filters/filters.svg.h:823 +#: ../src/extension/internal/filter/transparency.h:70 +#: ../src/extension/internal/filter/transparency.h:141 +#: ../src/extension/internal/filter/transparency.h:215 +#: ../src/extension/internal/filter/transparency.h:288 +#: ../src/extension/internal/filter/transparency.h:350 +msgid "Fill and Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:524 +msgid "Convert to a colorizable transparent positive or negative" +msgstr "" + +#: ../share/filters/filters.svg.h:526 +msgid "Saturation Map" +msgstr "" + +#: ../share/filters/filters.svg.h:528 +msgid "" +"Creates an approximative semi-transparent and colorizable image of the " +"saturation levels" +msgstr "" + +#: ../share/filters/filters.svg.h:530 +msgid "Riddled" +msgstr "" + +#: ../share/filters/filters.svg.h:532 +msgid "Riddle the surface and add bump to images" +msgstr "" + +#: ../share/filters/filters.svg.h:534 +msgid "Wrinkled Varnish" +msgstr "" + +#: ../share/filters/filters.svg.h:536 +msgid "Thick glossy and translucent paint texture with high depth" +msgstr "" + +#: ../share/filters/filters.svg.h:538 +msgid "Canvas Bumps" +msgstr "" + +#: ../share/filters/filters.svg.h:540 +msgid "Canvas texture with an HSL sensitive height map" +msgstr "" + +#: ../share/filters/filters.svg.h:542 +msgid "Canvas Bumps Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:544 +msgid "Same as Canvas Bumps but with a diffuse light instead of a specular one" +msgstr "" + +#: ../share/filters/filters.svg.h:546 +msgid "Canvas Bumps Alpha" +msgstr "" + +#: ../share/filters/filters.svg.h:548 +msgid "Same as Canvas Bumps but with transparent highlights" +msgstr "" + +#: ../share/filters/filters.svg.h:550 +msgid "Bright Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:552 +msgid "Bright metallic effect for any color" +msgstr "" + +#: ../share/filters/filters.svg.h:554 +msgid "Deep Colors Plastic" +msgstr "" + +#: ../share/filters/filters.svg.h:556 +msgid "Transparent plastic with deep colors" +msgstr "" + +#: ../share/filters/filters.svg.h:558 +msgid "Melted Jelly Matte" +msgstr "" + +#: ../share/filters/filters.svg.h:560 +msgid "Matte bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:562 +msgid "Melted Jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:564 +msgid "Glossy bevel with blurred edges" +msgstr "" + +#: ../share/filters/filters.svg.h:566 +msgid "Combined Lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:568 +#: ../src/extension/internal/filter/bevels.h:231 +msgid "Basic specular bevel to use for building textures" +msgstr "" + +#: ../share/filters/filters.svg.h:570 +msgid "Tinfoil" +msgstr "" + +#: ../share/filters/filters.svg.h:572 +msgid "Metallic foil effect combining two lighting types and variable crumple" +msgstr "" + +#: ../share/filters/filters.svg.h:574 +msgid "Soft Colors" +msgstr "" + +#: ../share/filters/filters.svg.h:576 +msgid "Adds a colorizable edges glow inside objects and pictures" +msgstr "" + +#: ../share/filters/filters.svg.h:578 +msgid "Relief Print" +msgstr "" + +#: ../share/filters/filters.svg.h:580 +msgid "Bumps effect with a bevel, color flood and complex lighting" +msgstr "" + +#: ../share/filters/filters.svg.h:582 +msgid "Growing Cells" +msgstr "" + +#: ../share/filters/filters.svg.h:584 +msgid "Random rounded living cells like fill" +msgstr "" + +#: ../share/filters/filters.svg.h:586 +msgid "Fluorescence" +msgstr "" + +#: ../share/filters/filters.svg.h:588 +msgid "Oversaturate colors which can be fluorescent in real world" +msgstr "" + +#: ../share/filters/filters.svg.h:590 +msgid "Pixellize" +msgstr "" + +#: ../share/filters/filters.svg.h:591 +msgid "Pixel tools" +msgstr "" + +#: ../share/filters/filters.svg.h:592 +msgid "Reduce or remove antialiasing around shapes" +msgstr "" + +#: ../share/filters/filters.svg.h:594 +msgid "Basic Diffuse Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:596 +msgid "Matte emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:598 +msgid "Basic Specular Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:600 +msgid "Specular emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:602 +msgid "Basic Two Lights Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:604 +msgid "Two types of lighting emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:606 +msgid "Linen Canvas" +msgstr "" + +#: ../share/filters/filters.svg.h:608 ../share/filters/filters.svg.h:616 +msgid "Painting canvas emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:610 +msgid "Plasticine" +msgstr "" + +#: ../share/filters/filters.svg.h:612 +msgid "Matte modeling paste emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:614 +msgid "Rough Canvas Painting" +msgstr "" + +#: ../share/filters/filters.svg.h:618 +msgid "Paper Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:620 +msgid "Paper like emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:622 +msgid "Jelly Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:624 +msgid "Convert pictures to thick jelly" +msgstr "" + +#: ../share/filters/filters.svg.h:626 +msgid "Blend Opposites" +msgstr "" + +#: ../share/filters/filters.svg.h:628 +msgid "Blend an image with its hue opposite" +msgstr "" + +#: ../share/filters/filters.svg.h:630 +msgid "Hue to White" +msgstr "" + +#: ../share/filters/filters.svg.h:632 +msgid "Fades hue progressively to white" +msgstr "" + +#: ../share/filters/filters.svg.h:634 +#: ../src/extension/internal/bitmap/swirl.cpp:37 +msgid "Swirl" +msgstr "" + +#: ../share/filters/filters.svg.h:636 +msgid "" +"Paint objects with a transparent turbulence which wraps around color edges" +msgstr "" + +#: ../share/filters/filters.svg.h:638 +msgid "Pointillism" +msgstr "" + +#: ../share/filters/filters.svg.h:640 +msgid "Gives a turbulent pointillist HSL sensitive transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:642 +msgid "Silhouette Marbled" +msgstr "" + +#: ../share/filters/filters.svg.h:644 +msgid "Basic noise transparency texture" +msgstr "" + +#: ../share/filters/filters.svg.h:646 +msgid "Fill Background" +msgstr "" + +#: ../share/filters/filters.svg.h:648 +msgid "Adds a colorizable opaque background" +msgstr "" + +#: ../share/filters/filters.svg.h:650 +msgid "Flatten Transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:652 +msgid "Adds a white opaque background" +msgstr "" + +#: ../share/filters/filters.svg.h:654 +msgid "Blur Double" +msgstr "" + +#: ../share/filters/filters.svg.h:656 +msgid "" +"Overlays two copies with different blur amounts and modifiable blend and " +"composite" +msgstr "" + +#: ../share/filters/filters.svg.h:658 +msgid "Image Drawing Basic" +msgstr "" + +#: ../share/filters/filters.svg.h:660 +msgid "Enhance and redraw color edges in 1 bit black and white" +msgstr "" + +#: ../share/filters/filters.svg.h:662 +msgid "Poster Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:664 +msgid "Enhance and redraw edges around posterized areas" +msgstr "" + +#: ../share/filters/filters.svg.h:666 +msgid "Cross Noise Poster" +msgstr "" + +#: ../share/filters/filters.svg.h:668 +msgid "Overlay with a small scale screen like noise" +msgstr "" + +#: ../share/filters/filters.svg.h:670 +msgid "Cross Noise Poster B" +msgstr "" + +#: ../share/filters/filters.svg.h:672 +msgid "Adds a small scale screen like noise locally" +msgstr "" + +#: ../share/filters/filters.svg.h:674 +msgid "Poster Color Fun" +msgstr "" + +#: ../share/filters/filters.svg.h:678 +msgid "Poster Rough" +msgstr "" + +#: ../share/filters/filters.svg.h:680 +msgid "Adds roughness to one of the two channels of the Poster paint filter" +msgstr "" + +#: ../share/filters/filters.svg.h:682 +msgid "Alpha Monochrome Cracked" +msgstr "" + +#: ../share/filters/filters.svg.h:684 ../share/filters/filters.svg.h:688 +#: ../share/filters/filters.svg.h:692 ../share/filters/filters.svg.h:704 +#: ../share/filters/filters.svg.h:708 ../share/filters/filters.svg.h:712 +msgid "Basic noise fill texture; adjust color in Flood" +msgstr "" + +#: ../share/filters/filters.svg.h:686 +msgid "Alpha Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:690 +msgid "Colorize Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:694 +msgid "Cross Noise B" +msgstr "" + +#: ../share/filters/filters.svg.h:696 +msgid "Adds a small scale crossy graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:698 +msgid "Cross Noise" +msgstr "" + +#: ../share/filters/filters.svg.h:700 +msgid "Adds a small scale screen like graininess" +msgstr "" + +#: ../share/filters/filters.svg.h:702 +msgid "Duotone Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:706 +msgid "Light Eraser Cracked" +msgstr "" + +#: ../share/filters/filters.svg.h:710 +msgid "Poster Turbulent" +msgstr "" + +#: ../share/filters/filters.svg.h:714 +msgid "Tartan Smart" +msgstr "" + +#: ../share/filters/filters.svg.h:716 +msgid "Highly configurable checkered tartan pattern" +msgstr "" + +#: ../share/filters/filters.svg.h:718 +msgid "Light Contour" +msgstr "" + +#: ../share/filters/filters.svg.h:720 +msgid "Uses vertical specular light to draw lines" +msgstr "" + +#: ../share/filters/filters.svg.h:722 +msgid "Liquid" +msgstr "" + +#: ../share/filters/filters.svg.h:724 +msgid "Colorizable filling with liquid transparency" +msgstr "" + +#: ../share/filters/filters.svg.h:726 +msgid "Aluminium" +msgstr "" + +#: ../share/filters/filters.svg.h:728 +msgid "Aluminium effect with sharp brushed reflections" +msgstr "" + +#: ../share/filters/filters.svg.h:730 +msgid "Comics" +msgstr "" + +#: ../share/filters/filters.svg.h:732 +msgid "Comics cartoon drawing effect" +msgstr "" + +#: ../share/filters/filters.svg.h:734 +msgid "Comics Draft" +msgstr "" + +#: ../share/filters/filters.svg.h:736 ../share/filters/filters.svg.h:768 +msgid "Draft painted cartoon shading with a glassy look" +msgstr "" + +#: ../share/filters/filters.svg.h:738 +msgid "Comics Fading" +msgstr "" + +#: ../share/filters/filters.svg.h:740 +msgid "Cartoon paint style with some fading at the edges" +msgstr "" + +#: ../share/filters/filters.svg.h:742 +msgid "Brushed Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:744 +msgid "Satiny metal surface effect" +msgstr "" + +#: ../share/filters/filters.svg.h:746 +msgid "Opaline" +msgstr "" + +#: ../share/filters/filters.svg.h:748 +msgid "Contouring version of smooth shader" +msgstr "" + +#: ../share/filters/filters.svg.h:750 +msgid "Chrome" +msgstr "" + +#: ../share/filters/filters.svg.h:752 +msgid "Bright chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:754 +msgid "Deep Chrome" +msgstr "" + +#: ../share/filters/filters.svg.h:756 +msgid "Dark chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:758 +msgid "Emboss Shader" +msgstr "" + +#: ../share/filters/filters.svg.h:760 +msgid "Combination of satiny and emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:762 +msgid "Sharp Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:764 +msgid "Chrome effect with darkened edges" +msgstr "" + +#: ../share/filters/filters.svg.h:766 +msgid "Brush Draw" +msgstr "" + +#: ../share/filters/filters.svg.h:770 +msgid "Chrome Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:772 +msgid "Embossed chrome effect" +msgstr "" + +#: ../share/filters/filters.svg.h:774 +msgid "Contour Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:776 +msgid "Satiny and embossed contour effect" +msgstr "" + +#: ../share/filters/filters.svg.h:778 +msgid "Sharp Deco" +msgstr "" + +#: ../share/filters/filters.svg.h:780 +msgid "Unrealistic reflections with sharp edges" +msgstr "" + +#: ../share/filters/filters.svg.h:782 +msgid "Deep Metal" +msgstr "" + +#: ../share/filters/filters.svg.h:784 +msgid "Deep and dark metal shading" +msgstr "" + +#: ../share/filters/filters.svg.h:786 +msgid "Aluminium Emboss" +msgstr "" + +#: ../share/filters/filters.svg.h:788 +msgid "Satiny aluminium effect with embossing" +msgstr "" + +#: ../share/filters/filters.svg.h:790 +msgid "Refractive Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:792 +msgid "Double reflection through glass with some refraction" +msgstr "" + +#: ../share/filters/filters.svg.h:794 +msgid "Frosted Glass" +msgstr "" + +#: ../share/filters/filters.svg.h:796 +msgid "Satiny glass effect" +msgstr "" + +#: ../share/filters/filters.svg.h:798 +msgid "Bump Engraving" +msgstr "" + +#: ../share/filters/filters.svg.h:800 +msgid "Carving emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:802 +msgid "Chromolitho Alternate" +msgstr "" + +#: ../share/filters/filters.svg.h:804 +msgid "Old chromolithographic effect" +msgstr "" + +#: ../share/filters/filters.svg.h:806 +msgid "Convoluted Bump" +msgstr "" + +#: ../share/filters/filters.svg.h:808 +msgid "Convoluted emboss effect" +msgstr "" + +#: ../share/filters/filters.svg.h:810 +msgid "Emergence" +msgstr "" + +#: ../share/filters/filters.svg.h:812 +msgid "Cut out, add inner shadow and colorize some parts of an image" +msgstr "" + +#: ../share/filters/filters.svg.h:814 +msgid "Litho" +msgstr "" + +#: ../share/filters/filters.svg.h:816 +msgid "Create a two colors lithographic effect" +msgstr "" + +#: ../share/filters/filters.svg.h:818 +msgid "Paint Channels" +msgstr "" + +#: ../share/filters/filters.svg.h:820 +msgid "Colorize separately the three color channels" +msgstr "" + +#: ../share/filters/filters.svg.h:822 +msgid "Posterized Light Eraser" +msgstr "" + +#: ../share/filters/filters.svg.h:824 +msgid "Create a semi transparent posterized image" +msgstr "" + +#: ../share/filters/filters.svg.h:826 +msgid "Trichrome" +msgstr "" + +#: ../share/filters/filters.svg.h:828 +msgid "Like Duochrome but with three colors" +msgstr "" + +#: ../share/filters/filters.svg.h:830 +msgid "Simulate CMY" +msgstr "" + +#: ../share/filters/filters.svg.h:832 +msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" +msgstr "" + +#: ../share/filters/filters.svg.h:834 +msgid "Contouring table" +msgstr "" + +#: ../share/filters/filters.svg.h:836 +msgid "Blurred multiple contours for objects" +msgstr "" + +#: ../share/filters/filters.svg.h:838 +msgid "Posterized Blur" +msgstr "" + +#: ../share/filters/filters.svg.h:840 +msgid "Converts blurred contour to posterized steps" +msgstr "" + +#: ../share/filters/filters.svg.h:842 +msgid "Contouring discrete" +msgstr "" + +#: ../share/filters/filters.svg.h:844 +msgid "Sharp multiple contour for objects" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:2 +msgctxt "Palette" +msgid "Black" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:3 +#, no-c-format +msgctxt "Palette" +msgid "90% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:4 +#, no-c-format +msgctxt "Palette" +msgid "80% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:5 +#, no-c-format +msgctxt "Palette" +msgid "70% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:6 +#, no-c-format +msgctxt "Palette" +msgid "60% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:7 +#, no-c-format +msgctxt "Palette" +msgid "50% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:8 +#, no-c-format +msgctxt "Palette" +msgid "40% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:9 +#, no-c-format +msgctxt "Palette" +msgid "30% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:10 +#, no-c-format +msgctxt "Palette" +msgid "20% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:11 +#, no-c-format +msgctxt "Palette" +msgid "10% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:12 +#, no-c-format +msgctxt "Palette" +msgid "7.5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:13 +#, no-c-format +msgctxt "Palette" +msgid "5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:14 +#, no-c-format +msgctxt "Palette" +msgid "2.5% Gray" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:15 +msgctxt "Palette" +msgid "White" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:16 +msgctxt "Palette" +msgid "Maroon (#800000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:17 +msgctxt "Palette" +msgid "Red (#FF0000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:18 +msgctxt "Palette" +msgid "Olive (#808000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:19 +msgctxt "Palette" +msgid "Yellow (#FFFF00)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:20 +msgctxt "Palette" +msgid "Green (#008000)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:21 +msgctxt "Palette" +msgid "Lime (#00FF00)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:22 +msgctxt "Palette" +msgid "Teal (#008080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:23 +msgctxt "Palette" +msgid "Aqua (#00FFFF)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:24 +msgctxt "Palette" +msgid "Navy (#000080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:25 +msgctxt "Palette" +msgid "Blue (#0000FF)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:26 +msgctxt "Palette" +msgid "Purple (#800080)" +msgstr "" + +#. Palette: ./inkscape.gpl +#: ../share/palettes/palettes.h:27 +msgctxt "Palette" +msgid "Fuchsia (#FF00FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:28 +msgctxt "Palette" +msgid "black (#000000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:29 +msgctxt "Palette" +msgid "dimgray (#696969)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:30 +msgctxt "Palette" +msgid "gray (#808080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:31 +msgctxt "Palette" +msgid "darkgray (#A9A9A9)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:32 +msgctxt "Palette" +msgid "silver (#C0C0C0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:33 +msgctxt "Palette" +msgid "lightgray (#D3D3D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:34 +msgctxt "Palette" +msgid "gainsboro (#DCDCDC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:35 +msgctxt "Palette" +msgid "whitesmoke (#F5F5F5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:36 +msgctxt "Palette" +msgid "white (#FFFFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:37 +msgctxt "Palette" +msgid "rosybrown (#BC8F8F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:38 +msgctxt "Palette" +msgid "indianred (#CD5C5C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:39 +msgctxt "Palette" +msgid "brown (#A52A2A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:40 +msgctxt "Palette" +msgid "firebrick (#B22222)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:41 +msgctxt "Palette" +msgid "lightcoral (#F08080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:42 +msgctxt "Palette" +msgid "maroon (#800000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:43 +msgctxt "Palette" +msgid "darkred (#8B0000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:44 +msgctxt "Palette" +msgid "red (#FF0000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:45 +msgctxt "Palette" +msgid "snow (#FFFAFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:46 +msgctxt "Palette" +msgid "mistyrose (#FFE4E1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:47 +msgctxt "Palette" +msgid "salmon (#FA8072)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:48 +msgctxt "Palette" +msgid "tomato (#FF6347)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:49 +msgctxt "Palette" +msgid "darksalmon (#E9967A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:50 +msgctxt "Palette" +msgid "coral (#FF7F50)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:51 +msgctxt "Palette" +msgid "orangered (#FF4500)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:52 +msgctxt "Palette" +msgid "lightsalmon (#FFA07A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:53 +msgctxt "Palette" +msgid "sienna (#A0522D)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:54 +msgctxt "Palette" +msgid "seashell (#FFF5EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:55 +msgctxt "Palette" +msgid "chocolate (#D2691E)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:56 +msgctxt "Palette" +msgid "saddlebrown (#8B4513)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:57 +msgctxt "Palette" +msgid "sandybrown (#F4A460)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:58 +msgctxt "Palette" +msgid "peachpuff (#FFDAB9)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:59 +msgctxt "Palette" +msgid "peru (#CD853F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:60 +msgctxt "Palette" +msgid "linen (#FAF0E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:61 +msgctxt "Palette" +msgid "bisque (#FFE4C4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:62 +msgctxt "Palette" +msgid "darkorange (#FF8C00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:63 +msgctxt "Palette" +msgid "burlywood (#DEB887)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:64 +msgctxt "Palette" +msgid "tan (#D2B48C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:65 +msgctxt "Palette" +msgid "antiquewhite (#FAEBD7)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:66 +msgctxt "Palette" +msgid "navajowhite (#FFDEAD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:67 +msgctxt "Palette" +msgid "blanchedalmond (#FFEBCD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:68 +msgctxt "Palette" +msgid "papayawhip (#FFEFD5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:69 +msgctxt "Palette" +msgid "moccasin (#FFE4B5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:70 +msgctxt "Palette" +msgid "orange (#FFA500)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:71 +msgctxt "Palette" +msgid "wheat (#F5DEB3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:72 +msgctxt "Palette" +msgid "oldlace (#FDF5E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:73 +msgctxt "Palette" +msgid "floralwhite (#FFFAF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:74 +msgctxt "Palette" +msgid "darkgoldenrod (#B8860B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:75 +msgctxt "Palette" +msgid "goldenrod (#DAA520)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:76 +msgctxt "Palette" +msgid "cornsilk (#FFF8DC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:77 +msgctxt "Palette" +msgid "gold (#FFD700)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:78 +msgctxt "Palette" +msgid "khaki (#F0E68C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:79 +msgctxt "Palette" +msgid "lemonchiffon (#FFFACD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:80 +msgctxt "Palette" +msgid "palegoldenrod (#EEE8AA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:81 +msgctxt "Palette" +msgid "darkkhaki (#BDB76B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:82 +msgctxt "Palette" +msgid "beige (#F5F5DC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:83 +msgctxt "Palette" +msgid "lightgoldenrodyellow (#FAFAD2)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:84 +msgctxt "Palette" +msgid "olive (#808000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:85 +msgctxt "Palette" +msgid "yellow (#FFFF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:86 +msgctxt "Palette" +msgid "lightyellow (#FFFFE0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:87 +msgctxt "Palette" +msgid "ivory (#FFFFF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:88 +msgctxt "Palette" +msgid "olivedrab (#6B8E23)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:89 +msgctxt "Palette" +msgid "yellowgreen (#9ACD32)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:90 +msgctxt "Palette" +msgid "darkolivegreen (#556B2F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:91 +msgctxt "Palette" +msgid "greenyellow (#ADFF2F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:92 +msgctxt "Palette" +msgid "chartreuse (#7FFF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:93 +msgctxt "Palette" +msgid "lawngreen (#7CFC00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:94 +msgctxt "Palette" +msgid "darkseagreen (#8FBC8F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:95 +msgctxt "Palette" +msgid "forestgreen (#228B22)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:96 +msgctxt "Palette" +msgid "limegreen (#32CD32)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:97 +msgctxt "Palette" +msgid "lightgreen (#90EE90)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:98 +msgctxt "Palette" +msgid "palegreen (#98FB98)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:99 +msgctxt "Palette" +msgid "darkgreen (#006400)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:100 +msgctxt "Palette" +msgid "green (#008000)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:101 +msgctxt "Palette" +msgid "lime (#00FF00)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:102 +msgctxt "Palette" +msgid "honeydew (#F0FFF0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:103 +msgctxt "Palette" +msgid "seagreen (#2E8B57)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:104 +msgctxt "Palette" +msgid "mediumseagreen (#3CB371)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:105 +msgctxt "Palette" +msgid "springgreen (#00FF7F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:106 +msgctxt "Palette" +msgid "mintcream (#F5FFFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:107 +msgctxt "Palette" +msgid "mediumspringgreen (#00FA9A)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:108 +msgctxt "Palette" +msgid "mediumaquamarine (#66CDAA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:109 +msgctxt "Palette" +msgid "aquamarine (#7FFFD4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:110 +msgctxt "Palette" +msgid "turquoise (#40E0D0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:111 +msgctxt "Palette" +msgid "lightseagreen (#20B2AA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:112 +msgctxt "Palette" +msgid "mediumturquoise (#48D1CC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:113 +msgctxt "Palette" +msgid "darkslategray (#2F4F4F)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:114 +msgctxt "Palette" +msgid "paleturquoise (#AFEEEE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:115 +msgctxt "Palette" +msgid "teal (#008080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:116 +msgctxt "Palette" +msgid "darkcyan (#008B8B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:117 +msgctxt "Palette" +msgid "cyan (#00FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:118 +msgctxt "Palette" +msgid "lightcyan (#E0FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:119 +msgctxt "Palette" +msgid "azure (#F0FFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:120 +msgctxt "Palette" +msgid "darkturquoise (#00CED1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:121 +msgctxt "Palette" +msgid "cadetblue (#5F9EA0)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:122 +msgctxt "Palette" +msgid "powderblue (#B0E0E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:123 +msgctxt "Palette" +msgid "lightblue (#ADD8E6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:124 +msgctxt "Palette" +msgid "deepskyblue (#00BFFF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:125 +msgctxt "Palette" +msgid "skyblue (#87CEEB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:126 +msgctxt "Palette" +msgid "lightskyblue (#87CEFA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:127 +msgctxt "Palette" +msgid "steelblue (#4682B4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:128 +msgctxt "Palette" +msgid "aliceblue (#F0F8FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:129 +msgctxt "Palette" +msgid "dodgerblue (#1E90FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:130 +msgctxt "Palette" +msgid "slategray (#708090)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:131 +msgctxt "Palette" +msgid "lightslategray (#778899)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:132 +msgctxt "Palette" +msgid "lightsteelblue (#B0C4DE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:133 +msgctxt "Palette" +msgid "cornflowerblue (#6495ED)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:134 +msgctxt "Palette" +msgid "royalblue (#4169E1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:135 +msgctxt "Palette" +msgid "midnightblue (#191970)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:136 +msgctxt "Palette" +msgid "lavender (#E6E6FA)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:137 +msgctxt "Palette" +msgid "navy (#000080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:138 +msgctxt "Palette" +msgid "darkblue (#00008B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:139 +msgctxt "Palette" +msgid "mediumblue (#0000CD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:140 +msgctxt "Palette" +msgid "blue (#0000FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:141 +msgctxt "Palette" +msgid "ghostwhite (#F8F8FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:142 +msgctxt "Palette" +msgid "slateblue (#6A5ACD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:143 +msgctxt "Palette" +msgid "darkslateblue (#483D8B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:144 +msgctxt "Palette" +msgid "mediumslateblue (#7B68EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:145 +msgctxt "Palette" +msgid "mediumpurple (#9370DB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:146 +msgctxt "Palette" +msgid "blueviolet (#8A2BE2)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:147 +msgctxt "Palette" +msgid "indigo (#4B0082)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:148 +msgctxt "Palette" +msgid "darkorchid (#9932CC)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:149 +msgctxt "Palette" +msgid "darkviolet (#9400D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:150 +msgctxt "Palette" +msgid "mediumorchid (#BA55D3)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:151 +msgctxt "Palette" +msgid "thistle (#D8BFD8)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:152 +msgctxt "Palette" +msgid "plum (#DDA0DD)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:153 +msgctxt "Palette" +msgid "violet (#EE82EE)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:154 +msgctxt "Palette" +msgid "purple (#800080)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:155 +msgctxt "Palette" +msgid "darkmagenta (#8B008B)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:156 +msgctxt "Palette" +msgid "magenta (#FF00FF)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:157 +msgctxt "Palette" +msgid "orchid (#DA70D6)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:158 +msgctxt "Palette" +msgid "mediumvioletred (#C71585)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:159 +msgctxt "Palette" +msgid "deeppink (#FF1493)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:160 +msgctxt "Palette" +msgid "hotpink (#FF69B4)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:161 +msgctxt "Palette" +msgid "lavenderblush (#FFF0F5)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:162 +msgctxt "Palette" +msgid "palevioletred (#DB7093)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:163 +msgctxt "Palette" +msgid "crimson (#DC143C)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:164 +msgctxt "Palette" +msgid "pink (#FFC0CB)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:165 +msgctxt "Palette" +msgid "lightpink (#FFB6C1)" +msgstr "" + +#. Palette: ./svg.gpl +#: ../share/palettes/palettes.h:166 +msgctxt "Palette" +msgid "rebeccapurple (#663399)" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:167 +msgctxt "Palette" +msgid "Butter 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:168 +msgctxt "Palette" +msgid "Butter 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:169 +msgctxt "Palette" +msgid "Butter 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:170 +msgctxt "Palette" +msgid "Chameleon 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:171 +msgctxt "Palette" +msgid "Chameleon 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:172 +msgctxt "Palette" +msgid "Chameleon 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:173 +msgctxt "Palette" +msgid "Orange 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:174 +msgctxt "Palette" +msgid "Orange 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:175 +msgctxt "Palette" +msgid "Orange 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:176 +msgctxt "Palette" +msgid "Sky Blue 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:177 +msgctxt "Palette" +msgid "Sky Blue 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:178 +msgctxt "Palette" +msgid "Sky Blue 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:179 +msgctxt "Palette" +msgid "Plum 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:180 +msgctxt "Palette" +msgid "Plum 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:181 +msgctxt "Palette" +msgid "Plum 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:182 +msgctxt "Palette" +msgid "Chocolate 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:183 +msgctxt "Palette" +msgid "Chocolate 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:184 +msgctxt "Palette" +msgid "Chocolate 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:185 +msgctxt "Palette" +msgid "Scarlet Red 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:186 +msgctxt "Palette" +msgid "Scarlet Red 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:187 +msgctxt "Palette" +msgid "Scarlet Red 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:188 +msgctxt "Palette" +msgid "Snowy White" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:189 +msgctxt "Palette" +msgid "Aluminium 1" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:190 +msgctxt "Palette" +msgid "Aluminium 2" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:191 +msgctxt "Palette" +msgid "Aluminium 3" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:192 +msgctxt "Palette" +msgid "Aluminium 4" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:193 +msgctxt "Palette" +msgid "Aluminium 5" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:194 +msgctxt "Palette" +msgid "Aluminium 6" +msgstr "" + +#. Palette: ./Tango-Palette.gpl +#: ../share/palettes/palettes.h:195 +msgctxt "Palette" +msgid "Jet Black" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:1.5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:2 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:3 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:4 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:5 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:8 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:10 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:16 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:32 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 1:64" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 2:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Stripes 4:1 white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Checkerboard white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Packed circles" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, small white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, medium white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Polka dots, large white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Wavy white" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Camouflage" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Ermine" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Sand (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Cloth (bitmap)" +msgstr "" + +#: ../share/patterns/patterns.svg.h:1 +msgid "Old paint (bitmap)" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:2 +msgctxt "Symbol" +msgid "AIGA Symbol Signs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:3 ../share/symbols/symbols.h:4 +#: ../share/symbols/symbols.h:281 ../share/symbols/symbols.h:282 +msgctxt "Symbol" +msgid "Telephone" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:5 ../share/symbols/symbols.h:6 +msgctxt "Symbol" +msgid "Mail" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:7 ../share/symbols/symbols.h:8 +msgctxt "Symbol" +msgid "Currency Exchange" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:9 ../share/symbols/symbols.h:10 +msgctxt "Symbol" +msgid "Currency Exchange - Euro" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:11 ../share/symbols/symbols.h:12 +msgctxt "Symbol" +msgid "Cashier" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:13 ../share/symbols/symbols.h:14 +#: ../share/symbols/symbols.h:213 ../share/symbols/symbols.h:214 +msgctxt "Symbol" +msgid "First Aid" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:15 ../share/symbols/symbols.h:16 +msgctxt "Symbol" +msgid "Lost and Found" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:17 ../share/symbols/symbols.h:18 +msgctxt "Symbol" +msgid "Coat Check" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:19 ../share/symbols/symbols.h:20 +msgctxt "Symbol" +msgid "Baggage Lockers" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:21 ../share/symbols/symbols.h:22 +msgctxt "Symbol" +msgid "Escalator" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:23 ../share/symbols/symbols.h:24 +msgctxt "Symbol" +msgid "Escalator Down" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:25 ../share/symbols/symbols.h:26 +msgctxt "Symbol" +msgid "Escalator Up" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:27 ../share/symbols/symbols.h:28 +msgctxt "Symbol" +msgid "Stairs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:29 ../share/symbols/symbols.h:30 +msgctxt "Symbol" +msgid "Stairs Down" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:31 ../share/symbols/symbols.h:32 +msgctxt "Symbol" +msgid "Stairs Up" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:33 ../share/symbols/symbols.h:34 +msgctxt "Symbol" +msgid "Elevator" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:35 ../share/symbols/symbols.h:36 +msgctxt "Symbol" +msgid "Toilets - Men" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:37 ../share/symbols/symbols.h:38 +msgctxt "Symbol" +msgid "Toilets - Women" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:39 ../share/symbols/symbols.h:40 +msgctxt "Symbol" +msgid "Toilets" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 +msgctxt "Symbol" +msgid "Nursery" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 +msgctxt "Symbol" +msgid "Drinking Fountain" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:45 ../share/symbols/symbols.h:46 +msgctxt "Symbol" +msgid "Waiting Room" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:47 ../share/symbols/symbols.h:48 +#: ../share/symbols/symbols.h:231 ../share/symbols/symbols.h:232 +msgctxt "Symbol" +msgid "Information" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:49 ../share/symbols/symbols.h:50 +msgctxt "Symbol" +msgid "Hotel Information" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:51 ../share/symbols/symbols.h:52 +msgctxt "Symbol" +msgid "Air Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:53 ../share/symbols/symbols.h:54 +msgctxt "Symbol" +msgid "Heliport" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:55 ../share/symbols/symbols.h:56 +msgctxt "Symbol" +msgid "Taxi" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:57 ../share/symbols/symbols.h:58 +msgctxt "Symbol" +msgid "Bus" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:59 ../share/symbols/symbols.h:60 +msgctxt "Symbol" +msgid "Ground Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:61 ../share/symbols/symbols.h:62 +msgctxt "Symbol" +msgid "Rail Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:63 ../share/symbols/symbols.h:64 +msgctxt "Symbol" +msgid "Water Transportation" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:65 ../share/symbols/symbols.h:66 +msgctxt "Symbol" +msgid "Car Rental" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:67 ../share/symbols/symbols.h:68 +msgctxt "Symbol" +msgid "Restaurant" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:69 ../share/symbols/symbols.h:70 +msgctxt "Symbol" +msgid "Coffeeshop" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:71 ../share/symbols/symbols.h:72 +msgctxt "Symbol" +msgid "Bar" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:73 ../share/symbols/symbols.h:74 +msgctxt "Symbol" +msgid "Shops" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:75 ../share/symbols/symbols.h:76 +msgctxt "Symbol" +msgid "Barber Shop - Beauty Salon" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:77 ../share/symbols/symbols.h:78 +msgctxt "Symbol" +msgid "Barber Shop" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:79 ../share/symbols/symbols.h:80 +msgctxt "Symbol" +msgid "Beauty Salon" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:81 ../share/symbols/symbols.h:82 +msgctxt "Symbol" +msgid "Ticket Purchase" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:83 ../share/symbols/symbols.h:84 +msgctxt "Symbol" +msgid "Baggage Check In" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:85 ../share/symbols/symbols.h:86 +msgctxt "Symbol" +msgid "Baggage Claim" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:87 ../share/symbols/symbols.h:88 +msgctxt "Symbol" +msgid "Customs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:89 ../share/symbols/symbols.h:90 +msgctxt "Symbol" +msgid "Immigration" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:91 ../share/symbols/symbols.h:92 +msgctxt "Symbol" +msgid "Departing Flights" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:93 ../share/symbols/symbols.h:94 +msgctxt "Symbol" +msgid "Arriving Flights" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:95 ../share/symbols/symbols.h:96 +msgctxt "Symbol" +msgid "Smoking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:97 ../share/symbols/symbols.h:98 +msgctxt "Symbol" +msgid "No Smoking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:99 ../share/symbols/symbols.h:100 +#: ../share/symbols/symbols.h:245 ../share/symbols/symbols.h:246 +msgctxt "Symbol" +msgid "Parking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:101 ../share/symbols/symbols.h:102 +msgctxt "Symbol" +msgid "No Parking" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 +msgctxt "Symbol" +msgid "No Dogs" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 +msgctxt "Symbol" +msgid "No Entry" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:107 ../share/symbols/symbols.h:108 +msgctxt "Symbol" +msgid "Exit" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:109 ../share/symbols/symbols.h:110 +msgctxt "Symbol" +msgid "Fire Extinguisher" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:111 ../share/symbols/symbols.h:112 +msgctxt "Symbol" +msgid "Right Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 +msgctxt "Symbol" +msgid "Forward and Right Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 +msgctxt "Symbol" +msgid "Up Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 +msgctxt "Symbol" +msgid "Forward and Left Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 +msgctxt "Symbol" +msgid "Left Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 +msgctxt "Symbol" +msgid "Left and Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 +msgctxt "Symbol" +msgid "Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 +msgctxt "Symbol" +msgid "Right and Down Arrow" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible - 1996" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 +msgctxt "Symbol" +msgid "NPS Wheelchair Accessible" +msgstr "" + +#. Symbols: ./AigaSymbols.svg +#: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 +msgctxt "Symbol" +msgid "New Wheelchair Accessible" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:133 +msgctxt "Symbol" +msgid "Word Balloons" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:134 +msgctxt "Symbol" +msgid "Thought Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:135 +msgctxt "Symbol" +msgid "Dream Speaking" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:136 +msgctxt "Symbol" +msgid "Rounded Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:137 +msgctxt "Symbol" +msgid "Squared Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:138 +msgctxt "Symbol" +msgid "Over the Phone" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:139 +msgctxt "Symbol" +msgid "Hip Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:140 +msgctxt "Symbol" +msgid "Circle Balloon" +msgstr "" + +#. Symbols: ./BalloonSymbols.svg +#: ../share/symbols/symbols.h:141 +msgctxt "Symbol" +msgid "Exclaim Balloon" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:142 +msgctxt "Symbol" +msgid "Flow Chart Shapes" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:143 +msgctxt "Symbol" +msgid "Process" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:144 +msgctxt "Symbol" +msgid "Input/Output" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:145 +msgctxt "Symbol" +msgid "Document" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:146 +msgctxt "Symbol" +msgid "Manual Operation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:147 +msgctxt "Symbol" +msgid "Preparation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:148 +msgctxt "Symbol" +msgid "Merge" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:149 +msgctxt "Symbol" +msgid "Decision" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:150 +msgctxt "Symbol" +msgid "Magnetic Tape" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:151 +msgctxt "Symbol" +msgid "Display" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:152 +msgctxt "Symbol" +msgid "Auxiliary Operation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:153 +msgctxt "Symbol" +msgid "Manual Input" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:154 +msgctxt "Symbol" +msgid "Extract" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:155 +msgctxt "Symbol" +msgid "Terminal/Interrupt" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:156 +msgctxt "Symbol" +msgid "Punched Card" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:157 +msgctxt "Symbol" +msgid "Punch Tape" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:158 +msgctxt "Symbol" +msgid "Online Storage" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:159 +msgctxt "Symbol" +msgid "Keying" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:160 +msgctxt "Symbol" +msgid "Sort" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:161 +msgctxt "Symbol" +msgid "Connector" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:162 +msgctxt "Symbol" +msgid "Off-Page Connector" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:163 +msgctxt "Symbol" +msgid "Transmittal Tape" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:164 +msgctxt "Symbol" +msgid "Communication Link" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:165 +msgctxt "Symbol" +msgid "Collate" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:166 +msgctxt "Symbol" +msgid "Comment/Annotation" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:167 +msgctxt "Symbol" +msgid "Core" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:168 +msgctxt "Symbol" +msgid "Predefined Process" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:169 +msgctxt "Symbol" +msgid "Magnetic Disk (Database)" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:170 +msgctxt "Symbol" +msgid "Magnetic Drum (Direct Access)" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:171 +msgctxt "Symbol" +msgid "Offline Storage" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:172 +msgctxt "Symbol" +msgid "Logical Or" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:173 +msgctxt "Symbol" +msgid "Logical And" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:174 +msgctxt "Symbol" +msgid "Delay" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:175 +msgctxt "Symbol" +msgid "Loop Limit Begin" +msgstr "" + +#. Symbols: ./FlowSymbols.svg +#: ../share/symbols/symbols.h:176 +msgctxt "Symbol" +msgid "Loop Limit End" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:177 +msgctxt "Symbol" +msgid "Logic Symbols" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:178 +msgctxt "Symbol" +msgid "Xnor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:179 +msgctxt "Symbol" +msgid "Xor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:180 +msgctxt "Symbol" +msgid "Nor Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:181 +msgctxt "Symbol" +msgid "Or Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:182 +msgctxt "Symbol" +msgid "Nand Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:183 +msgctxt "Symbol" +msgid "And Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:184 +msgctxt "Symbol" +msgid "Buffer" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:185 +msgctxt "Symbol" +msgid "Not Gate" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:186 +msgctxt "Symbol" +msgid "Buffer Small" +msgstr "" + +#. Symbols: ./LogicSymbols.svg +#: ../share/symbols/symbols.h:187 +msgctxt "Symbol" +msgid "Not Gate Small" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:188 +msgctxt "Symbol" +msgid "United States National Park Service Map Symbols" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:189 ../share/symbols/symbols.h:190 +msgctxt "Symbol" +msgid "Airport" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:191 ../share/symbols/symbols.h:192 +msgctxt "Symbol" +msgid "Amphitheatre" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:193 ../share/symbols/symbols.h:194 +msgctxt "Symbol" +msgid "Bicycle Trail" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:195 ../share/symbols/symbols.h:196 +msgctxt "Symbol" +msgid "Boat Launch" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:197 ../share/symbols/symbols.h:198 +msgctxt "Symbol" +msgid "Boat Tour" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:199 ../share/symbols/symbols.h:200 +msgctxt "Symbol" +msgid "Bus Stop" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:201 ../share/symbols/symbols.h:202 +msgctxt "Symbol" +msgid "Campfire" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:203 ../share/symbols/symbols.h:204 +msgctxt "Symbol" +msgid "Campground" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206 +msgctxt "Symbol" +msgid "CanoeAccess" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208 +msgctxt "Symbol" +msgid "Crosscountry Ski Trail" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:209 ../share/symbols/symbols.h:210 +msgctxt "Symbol" +msgid "Downhill Skiing" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:211 ../share/symbols/symbols.h:212 +msgctxt "Symbol" +msgid "Drinking Water" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:215 ../share/symbols/symbols.h:216 +msgctxt "Symbol" +msgid "Fishing" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:217 ../share/symbols/symbols.h:218 +msgctxt "Symbol" +msgid "Food Service" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:219 ../share/symbols/symbols.h:220 +msgctxt "Symbol" +msgid "Four Wheel Drive Road" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:221 ../share/symbols/symbols.h:222 +msgctxt "Symbol" +msgid "Gas Station" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:223 ../share/symbols/symbols.h:224 +msgctxt "Symbol" +msgid "Golfing" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:225 ../share/symbols/symbols.h:226 +msgctxt "Symbol" +msgid "Horseback Riding" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:227 ../share/symbols/symbols.h:228 +msgctxt "Symbol" +msgid "Hospital" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:229 ../share/symbols/symbols.h:230 +msgctxt "Symbol" +msgid "Ice Skating" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:233 ../share/symbols/symbols.h:234 +msgctxt "Symbol" +msgid "Litter Receptacle" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236 +msgctxt "Symbol" +msgid "Lodging" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238 +msgctxt "Symbol" +msgid "Marina" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:239 ../share/symbols/symbols.h:240 +msgctxt "Symbol" +msgid "Motorbike Trail" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:241 ../share/symbols/symbols.h:242 +msgctxt "Symbol" +msgid "Radiator Water" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244 +msgctxt "Symbol" +msgid "Recycling" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:247 ../share/symbols/symbols.h:248 +msgctxt "Symbol" +msgid "Pets On Leash" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:249 ../share/symbols/symbols.h:250 +msgctxt "Symbol" +msgid "Picnic Area" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:251 ../share/symbols/symbols.h:252 +msgctxt "Symbol" +msgid "Post Office" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:253 ../share/symbols/symbols.h:254 +msgctxt "Symbol" +msgid "Ranger Station" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256 +msgctxt "Symbol" +msgid "RV Campground" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258 +msgctxt "Symbol" +msgid "Restrooms" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:259 ../share/symbols/symbols.h:260 +msgctxt "Symbol" +msgid "Sailing" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 +msgctxt "Symbol" +msgid "Sanitary Disposal Station" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264 +msgctxt "Symbol" +msgid "Scuba Diving" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:265 ../share/symbols/symbols.h:266 +msgctxt "Symbol" +msgid "Self Guided Trail" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268 +msgctxt "Symbol" +msgid "Shelter" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:269 ../share/symbols/symbols.h:270 +msgctxt "Symbol" +msgid "Showers" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:271 ../share/symbols/symbols.h:272 +msgctxt "Symbol" +msgid "Sledding" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:273 ../share/symbols/symbols.h:274 +msgctxt "Symbol" +msgid "SnowmobileTrail" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:275 ../share/symbols/symbols.h:276 +msgctxt "Symbol" +msgid "Stable" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:277 ../share/symbols/symbols.h:278 +msgctxt "Symbol" +msgid "Store" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:279 ../share/symbols/symbols.h:280 +msgctxt "Symbol" +msgid "Swimming" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:283 ../share/symbols/symbols.h:284 +msgctxt "Symbol" +msgid "Emergency Telephone" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:285 ../share/symbols/symbols.h:286 +msgctxt "Symbol" +msgid "Trailhead" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:287 ../share/symbols/symbols.h:288 +msgctxt "Symbol" +msgid "Wheelchair Accessible" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:289 ../share/symbols/symbols.h:290 +msgctxt "Symbol" +msgid "Wind Surfing" +msgstr "" + +#. Symbols: ./MapSymbolsNPS.svg +#: ../share/symbols/symbols.h:291 +msgctxt "Symbol" +msgid "Blank" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD Label 120mmx120mm " +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Simple CD Label template with disc's pattern." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "CD label 120x120 disc disk" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "No Layers" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty sheet with no layers" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "no layers empty" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTeX Beamer" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTeX beamer template with helping grid." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "LaTex LaTeX latex grid beamer" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Typography Canvas" +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "Empty typography canvas with helping guidelines." +msgstr "" + +#: ../share/templates/templates.h:1 +msgid "guidelines typography canvas" +msgstr "" + +#. 3D box +#: ../src/box3d.cpp:260 ../src/box3d.cpp:1314 +#: ../src/ui/dialog/inkscape-preferences.cpp:407 +msgid "3D Box" +msgstr "" + +#: ../src/color-profile.cpp:853 +#, c-format +msgid "Color profiles directory (%s) is unavailable." +msgstr "" + +#: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 +msgid "(invalid UTF-8 string)" +msgstr "" + +#: ../src/color-profile.cpp:914 +msgctxt "Profile name" +msgid "None" +msgstr "" + +#: ../src/context-fns.cpp:33 ../src/context-fns.cpp:62 +msgid "Current layer is hidden. Unhide it to be able to draw on it." +msgstr "" + +#: ../src/context-fns.cpp:39 ../src/context-fns.cpp:68 +msgid "Current layer is locked. Unlock it to be able to draw on it." +msgstr "" + +#: ../src/desktop-events.cpp:242 +msgid "Create guide" +msgstr "" + +#: ../src/desktop-events.cpp:498 +msgid "Move guide" +msgstr "" + +#: ../src/desktop-events.cpp:505 ../src/desktop-events.cpp:563 +#: ../src/ui/dialog/guides.cpp:138 +msgid "Delete guide" +msgstr "" + +#: ../src/desktop-events.cpp:543 +#, c-format +msgid "Guideline: %s" +msgstr "" + +#: ../src/desktop.cpp:873 +msgid "No previous zoom." +msgstr "" + +#: ../src/desktop.cpp:894 +msgid "No next zoom." +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 +msgid "Grid _units:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +msgid "_Origin X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/ui/dialog/inkscape-preferences.cpp:746 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +msgid "X coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +msgid "O_rigin Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Y coordinate of grid origin" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 +msgid "Spacing _Y:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:369 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 +msgid "Base length of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:778 +#: ../src/widgets/box3d-toolbar.cpp:302 +msgid "Angle X:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/ui/dialog/inkscape-preferences.cpp:778 +msgid "Angle of x-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/widgets/box3d-toolbar.cpp:381 +msgid "Angle Z:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/ui/dialog/inkscape-preferences.cpp:779 +msgid "Angle of z-axis" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +msgid "Minor grid line _color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/ui/dialog/inkscape-preferences.cpp:730 +msgid "Minor grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +msgid "Color of the minor grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +msgid "Ma_jor grid line color:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/ui/dialog/inkscape-preferences.cpp:732 +msgid "Major grid line color" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 +msgid "Color of the major (highlighted) grid lines" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +msgid "_Major grid line every:" +msgstr "" + +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +msgid "lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:64 +msgid "Rectangular grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:65 +msgid "Axonometric grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:250 +msgid "Create new grid" +msgstr "" + +#: ../src/display/canvas-grid.cpp:316 +msgid "_Enabled" +msgstr "" + +#: ../src/display/canvas-grid.cpp:317 +msgid "" +"Determines whether to snap to this grid or not. Can be 'on' for invisible " +"grids." +msgstr "" + +#: ../src/display/canvas-grid.cpp:321 +msgid "Snap to visible _grid lines only" +msgstr "" + +#: ../src/display/canvas-grid.cpp:322 +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:326 +msgid "_Visible" +msgstr "" + +#: ../src/display/canvas-grid.cpp:327 +msgid "" +"Determines whether the grid is displayed or not. Objects are still snapped " +"to invisible grids." +msgstr "" + +#: ../src/display/canvas-grid.cpp:709 +msgid "Spacing _X:" +msgstr "" + +#: ../src/display/canvas-grid.cpp:709 +#: ../src/ui/dialog/inkscape-preferences.cpp:752 +msgid "Distance between vertical grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:712 +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +msgid "Distance between horizontal grid lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:744 +msgid "_Show dots instead of lines" +msgstr "" + +#: ../src/display/canvas-grid.cpp:745 +msgid "If set, displays dots at gridpoints instead of gridlines" +msgstr "" + +#. TRANSLATORS: undefined target for snapping +#: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 +#: ../src/display/snap-indicator.cpp:180 ../src/display/snap-indicator.cpp:183 +msgid "UNDEFINED" +msgstr "" + +#: ../src/display/snap-indicator.cpp:79 +msgid "grid line" +msgstr "" + +#: ../src/display/snap-indicator.cpp:82 +msgid "grid intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:85 +msgid "grid line (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:88 +msgid "guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:91 +msgid "guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:94 +msgid "guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:97 +msgid "guide (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:100 +msgid "grid-guide intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:103 +msgid "cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:106 +msgid "smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:109 +msgid "path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:112 +msgid "path (perpendicular)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:115 +msgid "path (tangential)" +msgstr "" + +#: ../src/display/snap-indicator.cpp:118 +msgid "path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:121 +msgid "guide-path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:124 +msgid "clip-path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:127 +msgid "mask-path" +msgstr "" + +#: ../src/display/snap-indicator.cpp:130 +msgid "bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:133 +msgid "bounding box side" +msgstr "" + +#: ../src/display/snap-indicator.cpp:136 +msgid "page border" +msgstr "" + +#: ../src/display/snap-indicator.cpp:139 +msgid "line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:142 +msgid "object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:145 +msgid "object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:148 +msgid "bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:151 +msgid "bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:154 +msgid "page corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:157 +msgid "quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:161 +msgid "corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:164 +msgid "text anchor" +msgstr "" + +#: ../src/display/snap-indicator.cpp:167 +msgid "text baseline" +msgstr "" + +#: ../src/display/snap-indicator.cpp:170 +msgid "constrained angle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:173 +msgid "constraint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:187 +msgid "Bounding box corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:190 +msgid "Bounding box midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:193 +msgid "Bounding box side midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 +msgid "Smooth node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 +msgid "Cusp node" +msgstr "" + +#: ../src/display/snap-indicator.cpp:202 +msgid "Line midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:205 +msgid "Object midpoint" +msgstr "" + +#: ../src/display/snap-indicator.cpp:208 +msgid "Object rotation center" +msgstr "" + +#: ../src/display/snap-indicator.cpp:212 +msgid "Handle" +msgstr "" + +#: ../src/display/snap-indicator.cpp:215 +msgid "Path intersection" +msgstr "" + +#: ../src/display/snap-indicator.cpp:218 +msgid "Guide" +msgstr "" + +#: ../src/display/snap-indicator.cpp:221 +msgid "Guide origin" +msgstr "" + +#: ../src/display/snap-indicator.cpp:224 +msgid "Convex hull corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:227 +msgid "Quadrant point" +msgstr "" + +#: ../src/display/snap-indicator.cpp:231 +msgid "Corner" +msgstr "" + +#: ../src/display/snap-indicator.cpp:234 +msgid "Text anchor" +msgstr "" + +#: ../src/display/snap-indicator.cpp:237 +msgid "Multiple of grid spacing" +msgstr "" + +#: ../src/display/snap-indicator.cpp:268 +msgid " to " +msgstr "" + +#: ../src/document.cpp:544 +#, c-format +msgid "New document %d" +msgstr "" + +#: ../src/document.cpp:549 +#, c-format +msgid "Memory document %d" +msgstr "" + +#: ../src/document.cpp:578 +msgid "Memory document %1" +msgstr "" + +#: ../src/document.cpp:855 +#, c-format +msgid "Unnamed document %d" +msgstr "" + +#: ../src/event-log.cpp:185 +msgid "[Unchanged]" +msgstr "" + +#. Edit +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2465 +msgid "_Undo" +msgstr "" + +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2467 +msgid "_Redo" +msgstr "" + +#: ../src/extension/dependency.cpp:243 +msgid "Dependency:" +msgstr "" + +#: ../src/extension/dependency.cpp:244 +msgid " type: " +msgstr "" + +#: ../src/extension/dependency.cpp:245 +msgid " location: " +msgstr "" + +#: ../src/extension/dependency.cpp:246 +msgid " string: " +msgstr "" + +#: ../src/extension/dependency.cpp:249 +msgid " description: " +msgstr "" + +#: ../src/extension/effect.cpp:41 +msgid " (No preferences)" +msgstr "" + +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2239 +msgid "Extensions" +msgstr "" + +#. \FIXME change this +#. This is some filler text, needs to change before relase +#: ../src/extension/error-file.cpp:53 +msgid "" +"One or more extensions failed to load\n" +"\n" +"The failed extensions have been skipped. Inkscape will continue to run " +"normally but those extensions will be unavailable. For details to " +"troubleshoot this problem, please refer to the error log located at: " +msgstr "" + +#: ../src/extension/error-file.cpp:67 +msgid "Show dialog on startup" +msgstr "" + +#: ../src/extension/execution-env.cpp:144 +#, c-format +msgid "'%s' working, please wait..." +msgstr "" + +#. static int i = 0; +#. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; +#: ../src/extension/extension.cpp:271 +msgid "" +" This is caused by an improper .inx file for this extension. An improper ." +"inx file could have been caused by a faulty installation of Inkscape." +msgstr "" + +#: ../src/extension/extension.cpp:281 +msgid "the extension is designed for Windows only." +msgstr "" + +#: ../src/extension/extension.cpp:286 +msgid "an ID was not defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:290 +msgid "there was no name defined for it." +msgstr "" + +#: ../src/extension/extension.cpp:294 +msgid "the XML description of it got lost." +msgstr "" + +#: ../src/extension/extension.cpp:298 +msgid "no implementation was defined for the extension." +msgstr "" + +#. std::cout << "Failed: " << *(_deps[i]) << std::endl; +#: ../src/extension/extension.cpp:305 +msgid "a dependency was not met." +msgstr "" + +#: ../src/extension/extension.cpp:325 +msgid "Extension \"" +msgstr "" + +#: ../src/extension/extension.cpp:325 +msgid "\" failed to load because " +msgstr "" + +#: ../src/extension/extension.cpp:674 +#, c-format +msgid "Could not create extension error log file '%s'" +msgstr "" + +#: ../src/extension/extension.cpp:782 +#: ../share/extensions/webslicer_create_rect.inx.h:2 +msgid "Name:" +msgstr "" + +#: ../src/extension/extension.cpp:783 +msgid "ID:" +msgstr "" + +#: ../src/extension/extension.cpp:784 +msgid "State:" +msgstr "" + +#: ../src/extension/extension.cpp:784 +msgid "Loaded" +msgstr "" + +#: ../src/extension/extension.cpp:784 +msgid "Unloaded" +msgstr "" + +#: ../src/extension/extension.cpp:784 +msgid "Deactivated" +msgstr "" + +#: ../src/extension/extension.cpp:824 +msgid "" +"Currently there is no help available for this Extension. Please look on the " +"Inkscape website or ask on the mailing lists if you have questions regarding " +"this extension." +msgstr "" + +#: ../src/extension/implementation/script.cpp:1057 +msgid "" +"Inkscape has received additional data from the script executed. The script " +"did not return an error, but this may indicate the results will not be as " +"expected." +msgstr "" + +#: ../src/extension/init.cpp:288 +msgid "Null external module directory name. Modules will not be loaded." +msgstr "" + +#: ../src/extension/init.cpp:302 +#: ../src/extension/internal/filter/filter-file.cpp:59 +#, c-format +msgid "" +"Modules directory (%s) is unavailable. External modules in that directory " +"will not be loaded." +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:39 +msgid "Adaptive Threshold" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:41 +#: ../src/extension/internal/bitmap/raise.cpp:42 +#: ../src/extension/internal/bitmap/sample.cpp:41 +#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:63 +#: ../src/ui/dialog/object-attributes.cpp:68 +#: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/foldablebox.inx.h:2 +msgid "Width:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:42 +#: ../src/extension/internal/bitmap/raise.cpp:43 +#: ../src/extension/internal/bitmap/sample.cpp:42 +#: ../src/ui/dialog/object-attributes.cpp:69 +#: ../src/ui/dialog/object-attributes.cpp:78 +#: ../share/extensions/foldablebox.inx.h:3 +msgid "Height:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:43 +#: ../share/extensions/printing_marks.inx.h:12 +msgid "Offset:" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:47 +#: ../src/extension/internal/bitmap/addNoise.cpp:58 +#: ../src/extension/internal/bitmap/blur.cpp:45 +#: ../src/extension/internal/bitmap/channel.cpp:64 +#: ../src/extension/internal/bitmap/charcoal.cpp:45 +#: ../src/extension/internal/bitmap/colorize.cpp:56 +#: ../src/extension/internal/bitmap/contrast.cpp:46 +#: ../src/extension/internal/bitmap/crop.cpp:75 +#: ../src/extension/internal/bitmap/cycleColormap.cpp:43 +#: ../src/extension/internal/bitmap/despeckle.cpp:41 +#: ../src/extension/internal/bitmap/edge.cpp:43 +#: ../src/extension/internal/bitmap/emboss.cpp:45 +#: ../src/extension/internal/bitmap/enhance.cpp:40 +#: ../src/extension/internal/bitmap/equalize.cpp:40 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:45 +#: ../src/extension/internal/bitmap/implode.cpp:43 +#: ../src/extension/internal/bitmap/level.cpp:49 +#: ../src/extension/internal/bitmap/levelChannel.cpp:71 +#: ../src/extension/internal/bitmap/medianFilter.cpp:43 +#: ../src/extension/internal/bitmap/modulate.cpp:48 +#: ../src/extension/internal/bitmap/negate.cpp:41 +#: ../src/extension/internal/bitmap/normalize.cpp:41 +#: ../src/extension/internal/bitmap/oilPaint.cpp:43 +#: ../src/extension/internal/bitmap/opacity.cpp:44 +#: ../src/extension/internal/bitmap/raise.cpp:48 +#: ../src/extension/internal/bitmap/reduceNoise.cpp:46 +#: ../src/extension/internal/bitmap/sample.cpp:46 +#: ../src/extension/internal/bitmap/shade.cpp:48 +#: ../src/extension/internal/bitmap/sharpen.cpp:45 +#: ../src/extension/internal/bitmap/solarize.cpp:45 +#: ../src/extension/internal/bitmap/spread.cpp:43 +#: ../src/extension/internal/bitmap/swirl.cpp:43 +#: ../src/extension/internal/bitmap/threshold.cpp:44 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:50 +#: ../src/extension/internal/bitmap/wave.cpp:45 +msgid "Raster" +msgstr "" + +#: ../src/extension/internal/bitmap/adaptiveThreshold.cpp:49 +msgid "Apply adaptive thresholding to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:45 +msgid "Add Noise" +msgstr "" + +#. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); +#: ../src/extension/internal/bitmap/addNoise.cpp:47 +#: ../src/extension/internal/filter/color.h:426 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/distort.h:69 +#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/object-attributes.cpp:49 +#: ../share/extensions/jessyInk_effects.inx.h:5 +#: ../share/extensions/jessyInk_export.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:5 +#: ../share/extensions/webslicer_create_rect.inx.h:14 +msgid "Type:" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:48 +msgid "Uniform Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:49 +msgid "Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:50 +msgid "Multiplicative Gaussian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:51 +msgid "Impulse Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:52 +msgid "Laplacian Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:53 +msgid "Poisson Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/addNoise.cpp:60 +msgid "Add random noise to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:38 +#: ../src/extension/internal/filter/blurs.h:54 +#: ../src/extension/internal/filter/paint.h:710 +#: ../src/extension/internal/filter/transparency.h:343 +msgid "Blur" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:40 +#: ../src/extension/internal/bitmap/charcoal.cpp:40 +#: ../src/extension/internal/bitmap/edge.cpp:39 +#: ../src/extension/internal/bitmap/emboss.cpp:40 +#: ../src/extension/internal/bitmap/medianFilter.cpp:39 +#: ../src/extension/internal/bitmap/oilPaint.cpp:39 +#: ../src/extension/internal/bitmap/sharpen.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:43 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +msgid "Radius:" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:41 +#: ../src/extension/internal/bitmap/charcoal.cpp:41 +#: ../src/extension/internal/bitmap/emboss.cpp:41 +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:41 +#: ../src/extension/internal/bitmap/sharpen.cpp:41 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:44 +msgid "Sigma:" +msgstr "" + +#: ../src/extension/internal/bitmap/blur.cpp:47 +msgid "Blur selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:48 +msgid "Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:50 +msgid "Layer:" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:51 +#: ../src/extension/internal/bitmap/levelChannel.cpp:55 +msgid "Red Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:52 +#: ../src/extension/internal/bitmap/levelChannel.cpp:56 +msgid "Green Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:53 +#: ../src/extension/internal/bitmap/levelChannel.cpp:57 +msgid "Blue Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:54 +#: ../src/extension/internal/bitmap/levelChannel.cpp:58 +msgid "Cyan Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:55 +#: ../src/extension/internal/bitmap/levelChannel.cpp:59 +msgid "Magenta Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:56 +#: ../src/extension/internal/bitmap/levelChannel.cpp:60 +msgid "Yellow Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:57 +#: ../src/extension/internal/bitmap/levelChannel.cpp:61 +msgid "Black Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:58 +#: ../src/extension/internal/bitmap/levelChannel.cpp:62 +msgid "Opacity Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:59 +#: ../src/extension/internal/bitmap/levelChannel.cpp:63 +msgid "Matte Channel" +msgstr "" + +#: ../src/extension/internal/bitmap/channel.cpp:66 +msgid "Extract specific channel from image" +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:38 +msgid "Charcoal" +msgstr "" + +#: ../src/extension/internal/bitmap/charcoal.cpp:47 +msgid "Apply charcoal stylization to selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/colorize.cpp:50 +#: ../src/extension/internal/filter/color.h:317 +msgid "Colorize" +msgstr "" + +#: ../src/extension/internal/bitmap/colorize.cpp:58 +msgid "Colorize selected bitmap(s) with specified color, using given opacity" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:40 +#: ../src/extension/internal/filter/color.h:1114 +msgid "Contrast" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:42 +msgid "Adjust:" +msgstr "" + +#: ../src/extension/internal/bitmap/contrast.cpp:48 +msgid "Increase or decrease contrast in bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:66 +#: ../src/extension/internal/filter/bumps.h:86 +#: ../src/extension/internal/filter/bumps.h:315 +msgid "Crop" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:68 +msgid "Top (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:69 +msgid "Bottom (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:70 +msgid "Left (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:71 +msgid "Right (px):" +msgstr "" + +#: ../src/extension/internal/bitmap/crop.cpp:77 +msgid "Crop selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:37 +msgid "Cycle Colormap" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:39 +#: ../src/extension/internal/bitmap/spread.cpp:39 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:45 +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount:" +msgstr "" + +#: ../src/extension/internal/bitmap/cycleColormap.cpp:45 +msgid "Cycle colormap(s) of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:36 +msgid "Despeckle" +msgstr "" + +#: ../src/extension/internal/bitmap/despeckle.cpp:43 +msgid "Reduce speckle noise of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:37 +msgid "Edge" +msgstr "" + +#: ../src/extension/internal/bitmap/edge.cpp:45 +msgid "Highlight edges of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/emboss.cpp:38 +msgid "Emboss" +msgstr "" + +#: ../src/extension/internal/bitmap/emboss.cpp:47 +msgid "Emboss selected bitmap(s); highlight edges with 3D effect" +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:35 +msgid "Enhance" +msgstr "" + +#: ../src/extension/internal/bitmap/enhance.cpp:42 +msgid "Enhance selected bitmap(s); minimize noise" +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:35 +msgid "Equalize" +msgstr "" + +#: ../src/extension/internal/bitmap/equalize.cpp:42 +msgid "Equalize selected bitmap(s); histogram equalization" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:38 +#: ../src/filter-enums.cpp:29 +msgid "Gaussian Blur" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:40 +#: ../src/extension/internal/bitmap/implode.cpp:39 +#: ../src/extension/internal/bitmap/solarize.cpp:41 +msgid "Factor:" +msgstr "" + +#: ../src/extension/internal/bitmap/gaussianBlur.cpp:47 +msgid "Gaussian blur selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:37 +msgid "Implode" +msgstr "" + +#: ../src/extension/internal/bitmap/implode.cpp:45 +msgid "Implode selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:41 +#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/image.h:56 +#: ../src/extension/internal/filter/morphology.h:66 +#: ../src/extension/internal/filter/paint.h:345 +msgid "Level" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:43 +#: ../src/extension/internal/bitmap/levelChannel.cpp:65 +msgid "Black Point:" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:44 +#: ../src/extension/internal/bitmap/levelChannel.cpp:66 +msgid "White Point:" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:45 +#: ../src/extension/internal/bitmap/levelChannel.cpp:67 +msgid "Gamma Correction:" +msgstr "" + +#: ../src/extension/internal/bitmap/level.cpp:51 +msgid "" +"Level selected bitmap(s) by scaling values falling between the given ranges " +"to the full color range" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:52 +msgid "Level (with Channel)" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:54 +#: ../src/extension/internal/filter/color.h:636 +msgid "Channel:" +msgstr "" + +#: ../src/extension/internal/bitmap/levelChannel.cpp:73 +msgid "" +"Level the specified channel of selected bitmap(s) by scaling values falling " +"between the given ranges to the full color range" +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:37 +msgid "Median" +msgstr "" + +#: ../src/extension/internal/bitmap/medianFilter.cpp:45 +msgid "" +"Replace each pixel component with the median color in a circular neighborhood" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:40 +msgid "HSB Adjust" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:42 +msgid "Hue:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:43 +msgid "Saturation:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:44 +msgid "Brightness:" +msgstr "" + +#: ../src/extension/internal/bitmap/modulate.cpp:50 +msgid "" +"Adjust the amount of hue, saturation, and brightness in selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:36 +msgid "Negate" +msgstr "" + +#: ../src/extension/internal/bitmap/negate.cpp:43 +msgid "Negate (take inverse) selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:36 +msgid "Normalize" +msgstr "" + +#: ../src/extension/internal/bitmap/normalize.cpp:43 +msgid "" +"Normalize selected bitmap(s), expanding color range to the full possible " +"range of color" +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:37 +msgid "Oil Paint" +msgstr "" + +#: ../src/extension/internal/bitmap/oilPaint.cpp:45 +msgid "Stylize selected bitmap(s) so that they appear to be painted with oils" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:38 +#: ../src/extension/internal/filter/blurs.h:333 +#: ../src/extension/internal/filter/transparency.h:279 +#: ../src/ui/dialog/clonetiler.cpp:838 ../src/ui/dialog/clonetiler.cpp:991 +#: ../src/widgets/tweak-toolbar.cpp:334 +#: ../share/extensions/interp_att_g.inx.h:16 +msgid "Opacity" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:40 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 +#: ../src/ui/dialog/objects.cpp:1621 ../src/widgets/dropper-toolbar.cpp:83 +msgid "Opacity:" +msgstr "" + +#: ../src/extension/internal/bitmap/opacity.cpp:46 +msgid "Modify opacity channel(s) of selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:40 +msgid "Raise" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:44 +msgid "Raised" +msgstr "" + +#: ../src/extension/internal/bitmap/raise.cpp:50 +msgid "" +"Alter lightness the edges of selected bitmap(s) to create a raised appearance" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:40 +msgid "Reduce Noise" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:42 +#: ../share/extensions/jessyInk_effects.inx.h:3 +#: ../share/extensions/jessyInk_view.inx.h:3 +#: ../share/extensions/lindenmayer.inx.h:5 +msgid "Order:" +msgstr "" + +#: ../src/extension/internal/bitmap/reduceNoise.cpp:48 +msgid "" +"Reduce noise in selected bitmap(s) using a noise peak elimination filter" +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:39 +msgid "Resample" +msgstr "" + +#: ../src/extension/internal/bitmap/sample.cpp:48 +msgid "" +"Alter the resolution of selected image by resizing it to the given pixel size" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:40 +msgid "Shade" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:42 +msgid "Azimuth:" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:43 +msgid "Elevation:" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:44 +msgid "Colored Shading" +msgstr "" + +#: ../src/extension/internal/bitmap/shade.cpp:50 +msgid "Shade selected bitmap(s) simulating distant light source" +msgstr "" + +#: ../src/extension/internal/bitmap/sharpen.cpp:47 +msgid "Sharpen selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/solarize.cpp:39 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1498 +msgid "Solarize" +msgstr "" + +#: ../src/extension/internal/bitmap/solarize.cpp:47 +msgid "Solarize selected bitmap(s), like overexposing photographic film" +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:37 +msgid "Dither" +msgstr "" + +#: ../src/extension/internal/bitmap/spread.cpp:45 +msgid "" +"Randomly scatter pixels in selected bitmap(s), within the given radius of " +"the original position" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:39 +msgid "Degrees:" +msgstr "" + +#: ../src/extension/internal/bitmap/swirl.cpp:45 +msgid "Swirl selected bitmap(s) around center point" +msgstr "" + +#. TRANSLATORS: see http://docs.gimp.org/en/gimp-tool-threshold.html +#: ../src/extension/internal/bitmap/threshold.cpp:38 +msgid "Threshold" +msgstr "" + +#: ../src/extension/internal/bitmap/threshold.cpp:40 +#: ../src/extension/internal/bitmap/unsharpmask.cpp:46 +#: ../src/widgets/paintbucket-toolbar.cpp:148 +msgid "Threshold:" +msgstr "" + +#: ../src/extension/internal/bitmap/threshold.cpp:46 +msgid "Threshold selected bitmap(s)" +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:41 +msgid "Unsharp Mask" +msgstr "" + +#: ../src/extension/internal/bitmap/unsharpmask.cpp:52 +msgid "Sharpen selected bitmap(s) using unsharp mask algorithms" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:38 +msgid "Wave" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:40 +msgid "Amplitude:" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:41 +msgid "Wavelength:" +msgstr "" + +#: ../src/extension/internal/bitmap/wave.cpp:47 +msgid "Alter selected bitmap(s) along sine wave" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:136 +msgid "Inset/Outset Halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:138 +msgid "Width in px of the halo" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of steps:" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:139 +msgid "Number of inset/outset copies of the object to make" +msgstr "" + +#: ../src/extension/internal/bluredge.cpp:143 +#: ../share/extensions/extrude.inx.h:5 +#: ../share/extensions/generate_voronoi.inx.h:9 +#: ../share/extensions/interp.inx.h:7 ../share/extensions/motion.inx.h:4 +#: ../share/extensions/pathalongpath.inx.h:18 +#: ../share/extensions/pathscatter.inx.h:20 +#: ../share/extensions/voronoi2svg.inx.h:13 +msgid "Generate from Path" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:327 +#: ../share/extensions/ps_input.inx.h:3 +msgid "PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:329 +#: ../src/extension/internal/cairo-ps-out.cpp:371 +msgid "Restrict to PS level:" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:330 +#: ../src/extension/internal/cairo-ps-out.cpp:372 +msgid "PostScript level 3" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:331 +#: ../src/extension/internal/cairo-ps-out.cpp:373 +msgid "PostScript level 2" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:333 +#: ../src/extension/internal/cairo-ps-out.cpp:375 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 +msgid "Text output options:" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:334 +#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +msgid "Embed fonts" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:335 +#: ../src/extension/internal/cairo-ps-out.cpp:377 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 +msgid "Convert text to paths" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:336 +#: ../src/extension/internal/cairo-ps-out.cpp:378 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +msgid "Omit text in PDF and create LaTeX file" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:380 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Rasterize filter effects" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +msgid "Resolution for rasterization (dpi):" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:340 +#: ../src/extension/internal/cairo-ps-out.cpp:382 +msgid "Output page size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-ps-out.cpp:383 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +msgid "Use document's page size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:342 +#: ../src/extension/internal/cairo-ps-out.cpp:384 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +msgid "Use exported object's size" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:344 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 +msgid "Bleed/margin (mm):" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:345 +#: ../src/extension/internal/cairo-ps-out.cpp:387 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 +msgid "Limit export to the object with ID:" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:349 +#: ../share/extensions/ps_input.inx.h:2 +msgid "PostScript (*.ps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:350 +msgid "PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:369 +#: ../share/extensions/eps_input.inx.h:3 +msgid "Encapsulated PostScript" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:386 +msgid "Bleed/margin (mm)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:391 +#: ../share/extensions/eps_input.inx.h:2 +msgid "Encapsulated PostScript (*.eps)" +msgstr "" + +#: ../src/extension/internal/cairo-ps-out.cpp:392 +msgid "Encapsulated PostScript File" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 +msgid "Restrict to PDF version:" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 +msgid "PDF 1.5" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:248 +msgid "PDF 1.4" +msgstr "" + +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:257 +msgid "Output page size:" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:116 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:87 +#: ../src/extension/internal/vsd-input.cpp:116 +msgid "Select page:" +msgstr "" + +#. Display total number of pages +#: ../src/extension/internal/cdr-input.cpp:128 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:106 +#: ../src/extension/internal/vsd-input.cpp:128 +#, c-format +msgid "out of %i" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:165 +#: ../src/extension/internal/vsd-input.cpp:165 +msgid "Page Selector" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:300 +msgid "Corel DRAW Input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:305 +msgid "Corel DRAW 7-X4 files (*.cdr)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:306 +msgid "Open files saved in Corel DRAW 7-X4" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:313 +msgid "Corel DRAW templates input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:318 +msgid "Corel DRAW 7-13 template files (*.cdt)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:319 +msgid "Open files saved in Corel DRAW 7-13" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:326 +msgid "Corel DRAW Compressed Exchange files input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:331 +msgid "Corel DRAW Compressed Exchange files (*.ccx)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:332 +msgid "Open compressed exchange files saved in Corel DRAW" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:339 +msgid "Corel DRAW Presentation Exchange files input" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:344 +msgid "Corel DRAW Presentation Exchange files (*.cmx)" +msgstr "" + +#: ../src/extension/internal/cdr-input.cpp:345 +msgid "Open presentation exchange files saved in Corel DRAW" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3562 +msgid "EMF Input" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3567 +msgid "Enhanced Metafiles (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3568 +msgid "Enhanced Metafiles" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3576 +msgid "EMF Output" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/wmf-inout.cpp:3152 +msgid "Convert texts to paths" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/wmf-inout.cpp:3153 +msgid "Map Unicode to Symbol font" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3580 +#: ../src/extension/internal/wmf-inout.cpp:3154 +msgid "Map Unicode to Wingdings" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3581 +#: ../src/extension/internal/wmf-inout.cpp:3155 +msgid "Map Unicode to Zapf Dingbats" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3582 +#: ../src/extension/internal/wmf-inout.cpp:3156 +msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/wmf-inout.cpp:3157 +msgid "Compensate for PPT font bug" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/wmf-inout.cpp:3158 +msgid "Convert dashed/dotted lines to single lines" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3585 +#: ../src/extension/internal/wmf-inout.cpp:3159 +msgid "Convert gradients to colored polygon series" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3586 +msgid "Use native rectangular linear gradients" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3587 +msgid "Map all fill patterns to standard EMF hatches" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3588 +msgid "Ignore image rotations" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3592 +msgid "Enhanced Metafile (*.emf)" +msgstr "" + +#: ../src/extension/internal/emf-inout.cpp:3593 +msgid "Enhanced Metafile" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:53 +msgid "Diffuse Light" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:55 +#: ../src/extension/internal/filter/bevels.h:135 +#: ../src/extension/internal/filter/bevels.h:219 +#: ../src/extension/internal/filter/paint.h:89 +#: ../src/extension/internal/filter/paint.h:340 +msgid "Smoothness" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:56 +#: ../src/extension/internal/filter/bevels.h:137 +#: ../src/extension/internal/filter/bevels.h:221 +msgid "Elevation (°)" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:57 +#: ../src/extension/internal/filter/bevels.h:138 +#: ../src/extension/internal/filter/bevels.h:222 +msgid "Azimuth (°)" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:58 +#: ../src/extension/internal/filter/bevels.h:139 +#: ../src/extension/internal/filter/bevels.h:223 +msgid "Lighting color" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:62 +#: ../src/extension/internal/filter/bevels.h:143 +#: ../src/extension/internal/filter/bevels.h:227 +#: ../src/extension/internal/filter/blurs.h:62 +#: ../src/extension/internal/filter/blurs.h:131 +#: ../src/extension/internal/filter/blurs.h:200 +#: ../src/extension/internal/filter/blurs.h:266 +#: ../src/extension/internal/filter/blurs.h:350 +#: ../src/extension/internal/filter/bumps.h:141 +#: ../src/extension/internal/filter/bumps.h:361 +#: ../src/extension/internal/filter/color.h:81 +#: ../src/extension/internal/filter/color.h:170 +#: ../src/extension/internal/filter/color.h:261 +#: ../src/extension/internal/filter/color.h:346 +#: ../src/extension/internal/filter/color.h:436 +#: ../src/extension/internal/filter/color.h:531 +#: ../src/extension/internal/filter/color.h:653 +#: ../src/extension/internal/filter/color.h:750 +#: ../src/extension/internal/filter/color.h:829 +#: ../src/extension/internal/filter/color.h:920 +#: ../src/extension/internal/filter/color.h:1048 +#: ../src/extension/internal/filter/color.h:1118 +#: ../src/extension/internal/filter/color.h:1211 +#: ../src/extension/internal/filter/color.h:1323 +#: ../src/extension/internal/filter/color.h:1428 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/distort.h:95 +#: ../src/extension/internal/filter/distort.h:204 +#: ../src/extension/internal/filter/filter-file.cpp:151 +#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/image.h:61 +#: ../src/extension/internal/filter/morphology.h:75 +#: ../src/extension/internal/filter/morphology.h:202 +#: ../src/extension/internal/filter/overlays.h:79 +#: ../src/extension/internal/filter/paint.h:112 +#: ../src/extension/internal/filter/paint.h:243 +#: ../src/extension/internal/filter/paint.h:362 +#: ../src/extension/internal/filter/paint.h:506 +#: ../src/extension/internal/filter/paint.h:601 +#: ../src/extension/internal/filter/paint.h:724 +#: ../src/extension/internal/filter/paint.h:876 +#: ../src/extension/internal/filter/paint.h:980 +#: ../src/extension/internal/filter/protrusions.h:54 +#: ../src/extension/internal/filter/shadows.h:80 +#: ../src/extension/internal/filter/textures.h:90 +#: ../src/extension/internal/filter/transparency.h:69 +#: ../src/extension/internal/filter/transparency.h:140 +#: ../src/extension/internal/filter/transparency.h:214 +#: ../src/extension/internal/filter/transparency.h:287 +#: ../src/extension/internal/filter/transparency.h:349 +#: ../src/ui/dialog/inkscape-preferences.cpp:1751 +#, c-format +msgid "Filters" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:66 +msgid "Basic diffuse bevel to use for building textures" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:133 +msgid "Matte Jelly" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:136 +#: ../src/extension/internal/filter/bevels.h:220 +#: ../src/extension/internal/filter/blurs.h:187 +#: ../src/extension/internal/filter/color.h:74 +msgid "Brightness" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:147 +msgid "Bulging, matte jelly covering" +msgstr "" + +#: ../src/extension/internal/filter/bevels.h:217 +msgid "Specular Light" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:56 +#: ../src/extension/internal/filter/blurs.h:189 +#: ../src/extension/internal/filter/blurs.h:329 +#: ../src/extension/internal/filter/distort.h:73 +msgid "Horizontal blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:57 +#: ../src/extension/internal/filter/blurs.h:190 +#: ../src/extension/internal/filter/blurs.h:330 +#: ../src/extension/internal/filter/distort.h:74 +msgid "Vertical blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:58 +msgid "Blur content only" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:66 +msgid "Simple vertical and horizontal blur effect" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:125 +msgid "Clean Edges" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:127 +#: ../src/extension/internal/filter/blurs.h:262 +#: ../src/extension/internal/filter/paint.h:237 +#: ../src/extension/internal/filter/paint.h:336 +#: ../src/extension/internal/filter/paint.h:341 +msgid "Strength" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:135 +msgid "" +"Removes or decreases glows and jaggeries around objects edges after applying " +"some filters" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:185 +msgid "Cross Blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:188 +msgid "Fading" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:191 +#: ../src/extension/internal/filter/textures.h:74 +msgid "Blend:" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:192 +#: ../src/extension/internal/filter/blurs.h:339 +#: ../src/extension/internal/filter/bumps.h:131 +#: ../src/extension/internal/filter/bumps.h:337 +#: ../src/extension/internal/filter/bumps.h:344 +#: ../src/extension/internal/filter/color.h:329 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:1423 +#: ../src/extension/internal/filter/color.h:1596 +#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/paint.h:705 +#: ../src/extension/internal/filter/transparency.h:63 +#: ../src/filter-enums.cpp:55 +msgid "Darken" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:193 +#: ../src/extension/internal/filter/blurs.h:340 +#: ../src/extension/internal/filter/bumps.h:132 +#: ../src/extension/internal/filter/bumps.h:335 +#: ../src/extension/internal/filter/bumps.h:342 +#: ../src/extension/internal/filter/color.h:327 +#: ../src/extension/internal/filter/color.h:332 +#: ../src/extension/internal/filter/color.h:647 +#: ../src/extension/internal/filter/color.h:1415 +#: ../src/extension/internal/filter/color.h:1420 +#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/paint.h:703 +#: ../src/extension/internal/filter/transparency.h:62 +#: ../src/filter-enums.cpp:54 ../src/ui/dialog/input.cpp:382 +msgid "Screen" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:194 +#: ../src/extension/internal/filter/blurs.h:341 +#: ../src/extension/internal/filter/bumps.h:133 +#: ../src/extension/internal/filter/bumps.h:338 +#: ../src/extension/internal/filter/bumps.h:345 +#: ../src/extension/internal/filter/color.h:325 +#: ../src/extension/internal/filter/color.h:333 +#: ../src/extension/internal/filter/color.h:645 +#: ../src/extension/internal/filter/color.h:1414 +#: ../src/extension/internal/filter/color.h:1421 +#: ../src/extension/internal/filter/color.h:1595 +#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/paint.h:701 +#: ../src/extension/internal/filter/transparency.h:60 +#: ../src/filter-enums.cpp:53 +msgid "Multiply" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:195 +#: ../src/extension/internal/filter/blurs.h:342 +#: ../src/extension/internal/filter/bumps.h:134 +#: ../src/extension/internal/filter/bumps.h:339 +#: ../src/extension/internal/filter/bumps.h:346 +#: ../src/extension/internal/filter/color.h:328 +#: ../src/extension/internal/filter/color.h:335 +#: ../src/extension/internal/filter/color.h:1422 +#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/paint.h:704 +#: ../src/extension/internal/filter/transparency.h:64 +#: ../src/filter-enums.cpp:56 +msgid "Lighten" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:204 +msgid "Combine vertical and horizontal blur" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:260 +msgid "Feather" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:270 +msgid "Blurred mask on the edge without altering the contents" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:325 +msgid "Out of Focus" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:331 +#: ../src/extension/internal/filter/distort.h:75 +#: ../src/extension/internal/filter/morphology.h:67 +#: ../src/extension/internal/filter/paint.h:235 +#: ../src/extension/internal/filter/paint.h:342 +#: ../src/extension/internal/filter/paint.h:346 +msgid "Dilatation" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:332 +#: ../src/extension/internal/filter/distort.h:76 +#: ../src/extension/internal/filter/morphology.h:68 +#: ../src/extension/internal/filter/paint.h:98 +#: ../src/extension/internal/filter/paint.h:236 +#: ../src/extension/internal/filter/paint.h:343 +#: ../src/extension/internal/filter/paint.h:347 +#: ../src/extension/internal/filter/transparency.h:208 +#: ../src/extension/internal/filter/transparency.h:282 +msgid "Erosion" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:336 +#: ../src/extension/internal/filter/color.h:1205 +#: ../src/extension/internal/filter/color.h:1317 +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "Background color" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:337 +#: ../src/extension/internal/filter/bumps.h:129 +msgid "Blend type:" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:338 +#: ../src/extension/internal/filter/bumps.h:130 +#: ../src/extension/internal/filter/bumps.h:336 +#: ../src/extension/internal/filter/bumps.h:343 +#: ../src/extension/internal/filter/color.h:326 +#: ../src/extension/internal/filter/color.h:334 +#: ../src/extension/internal/filter/color.h:646 +#: ../src/extension/internal/filter/color.h:1413 +#: ../src/extension/internal/filter/color.h:1419 +#: ../src/extension/internal/filter/color.h:1586 +#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/distort.h:78 +#: ../src/extension/internal/filter/paint.h:702 +#: ../src/extension/internal/filter/textures.h:77 +#: ../src/extension/internal/filter/transparency.h:61 +#: ../src/filter-enums.cpp:52 ../src/ui/dialog/inkscape-preferences.cpp:653 +msgid "Normal" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:344 +msgid "Blend to background" +msgstr "" + +#: ../src/extension/internal/filter/blurs.h:354 +msgid "Blur eroded by white or transparency" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:80 +msgid "Bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:84 +#: ../src/extension/internal/filter/bumps.h:313 +msgid "Image simplification" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:85 +#: ../src/extension/internal/filter/bumps.h:314 +msgid "Bump simplification" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:87 +#: ../src/extension/internal/filter/bumps.h:316 +msgid "Bump source" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:88 +#: ../src/extension/internal/filter/bumps.h:317 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:637 +#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/transparency.h:132 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/widgets/sp-color-icc-selector.cpp:330 +#: ../src/widgets/sp-color-scales.cpp:415 +#: ../src/widgets/sp-color-scales.cpp:416 +msgid "Red" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:89 +#: ../src/extension/internal/filter/bumps.h:318 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:638 +#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/transparency.h:133 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/widgets/sp-color-icc-selector.cpp:331 +#: ../src/widgets/sp-color-scales.cpp:418 +#: ../src/widgets/sp-color-scales.cpp:419 +msgid "Green" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:90 +#: ../src/extension/internal/filter/bumps.h:319 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:639 +#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/transparency.h:134 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/widgets/sp-color-icc-selector.cpp:332 +#: ../src/widgets/sp-color-scales.cpp:421 +#: ../src/widgets/sp-color-scales.cpp:422 +msgid "Blue" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:91 +msgid "Bump from background" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:94 +msgid "Lighting type:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:95 +msgid "Specular" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:96 +msgid "Diffuse" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:98 +#: ../src/extension/internal/filter/bumps.h:329 +#: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 +#: ../src/widgets/rect-toolbar.cpp:335 +#: ../share/extensions/interp_att_g.inx.h:11 +msgid "Height" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:99 +#: ../src/extension/internal/filter/bumps.h:330 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:824 +#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/paint.h:86 +#: ../src/extension/internal/filter/paint.h:592 +#: ../src/extension/internal/filter/paint.h:707 +#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/widgets/sp-color-icc-selector.cpp:341 +#: ../src/widgets/sp-color-scales.cpp:447 +#: ../src/widgets/sp-color-scales.cpp:448 ../src/widgets/tweak-toolbar.cpp:318 +#: ../share/extensions/color_randomize.inx.h:5 +msgid "Lightness" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:100 +#: ../src/extension/internal/filter/bumps.h:331 +msgid "Precision" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:103 +msgid "Light source" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:104 +msgid "Light source:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:105 +msgid "Distant" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:106 +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Point" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:107 +msgid "Spot" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:109 +msgid "Distant light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:110 +#: ../src/extension/internal/filter/bumps.h:332 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Azimuth" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:111 +#: ../src/extension/internal/filter/bumps.h:333 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Elevation" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:112 +msgid "Point light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:113 +#: ../src/extension/internal/filter/bumps.h:117 +msgid "X location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:114 +#: ../src/extension/internal/filter/bumps.h:118 +msgid "Y location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:115 +#: ../src/extension/internal/filter/bumps.h:119 +msgid "Z location" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:116 +msgid "Spot light options" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:120 +msgid "X target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:121 +msgid "Y target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:122 +msgid "Z target" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:123 +msgid "Specular exponent" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:124 +msgid "Cone angle" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:127 +msgid "Image color" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:128 +msgid "Color bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:145 +msgid "All purposes bump filter" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:309 +msgid "Wax Bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:320 +msgid "Background:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:322 +#: ../src/extension/internal/filter/transparency.h:57 +#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:518 +msgid "Image" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:323 +msgid "Blurred image" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:325 +msgid "Background opacity" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:327 +#: ../src/extension/internal/filter/color.h:1040 +msgid "Lighting" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:334 +msgid "Lighting blend:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:341 +msgid "Highlight blend:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:350 +msgid "Bump color" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:351 +msgid "Revert bump" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:352 +msgid "Transparency type:" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:353 +#: ../src/extension/internal/filter/morphology.h:176 +#: ../src/filter-enums.cpp:91 +msgid "Atop" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:354 +#: ../src/extension/internal/filter/distort.h:70 +#: ../src/extension/internal/filter/morphology.h:174 +#: ../src/filter-enums.cpp:89 +msgid "In" +msgstr "" + +#: ../src/extension/internal/filter/bumps.h:365 +msgid "Turns an image to jelly" +msgstr "" + +#: ../src/extension/internal/filter/color.h:72 +msgid "Brilliance" +msgstr "" + +#: ../src/extension/internal/filter/color.h:75 +#: ../src/extension/internal/filter/color.h:1417 +msgid "Over-saturation" +msgstr "" + +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/overlays.h:70 +#: ../src/extension/internal/filter/paint.h:85 +#: ../src/extension/internal/filter/paint.h:502 +#: ../src/extension/internal/filter/transparency.h:136 +#: ../src/extension/internal/filter/transparency.h:210 +msgid "Inverted" +msgstr "" + +#: ../src/extension/internal/filter/color.h:85 +msgid "Brightness filter" +msgstr "" + +#: ../src/extension/internal/filter/color.h:152 +msgid "Channel Painting" +msgstr "" + +#: ../src/extension/internal/filter/color.h:156 +#: ../src/extension/internal/filter/color.h:257 +#: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 +#: ../src/ui/dialog/inkscape-preferences.cpp:952 +#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/widgets/sp-color-icc-selector.cpp:337 +#: ../src/widgets/sp-color-icc-selector.cpp:342 +#: ../src/widgets/sp-color-scales.cpp:444 +#: ../src/widgets/sp-color-scales.cpp:445 ../src/widgets/tweak-toolbar.cpp:302 +#: ../share/extensions/color_randomize.inx.h:4 +msgid "Saturation" +msgstr "" + +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/transparency.h:135 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:199 +msgid "Alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:174 +msgid "Replace RGB by any color" +msgstr "" + +#: ../src/extension/internal/filter/color.h:254 +msgid "Color Shift" +msgstr "" + +#: ../src/extension/internal/filter/color.h:256 +msgid "Shift (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Rotate and desaturate hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:321 +msgid "Harsh light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:322 +msgid "Normal light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:323 +msgid "Duotone" +msgstr "" + +#: ../src/extension/internal/filter/color.h:324 +#: ../src/extension/internal/filter/color.h:1412 +msgid "Blend 1:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:331 +#: ../src/extension/internal/filter/color.h:1418 +msgid "Blend 2:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:350 +msgid "Blend image or object with a flood color" +msgstr "" + +#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:23 +msgid "Component Transfer" +msgstr "" + +#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:110 +msgid "Identity" +msgstr "" + +#: ../src/extension/internal/filter/color.h:428 +#: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1050 +msgid "Table" +msgstr "" + +#: ../src/extension/internal/filter/color.h:429 +#: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1053 +msgid "Discrete" +msgstr "" + +#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:113 +#: ../src/live_effects/lpe-interpolate_points.cpp:25 +#: ../src/live_effects/lpe-powerstroke.cpp:194 +msgid "Linear" +msgstr "" + +#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:114 +msgid "Gamma" +msgstr "" + +#: ../src/extension/internal/filter/color.h:440 +msgid "Basic component transfer structure" +msgstr "" + +#: ../src/extension/internal/filter/color.h:509 +msgid "Duochrome" +msgstr "" + +#: ../src/extension/internal/filter/color.h:513 +msgid "Fluorescence level" +msgstr "" + +#: ../src/extension/internal/filter/color.h:514 +msgid "Swap:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:515 +msgid "No swap" +msgstr "" + +#: ../src/extension/internal/filter/color.h:516 +msgid "Color and alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:517 +msgid "Color only" +msgstr "" + +#: ../src/extension/internal/filter/color.h:518 +msgid "Alpha only" +msgstr "" + +#: ../src/extension/internal/filter/color.h:522 +msgid "Color 1" +msgstr "" + +#: ../src/extension/internal/filter/color.h:525 +msgid "Color 2" +msgstr "" + +#: ../src/extension/internal/filter/color.h:535 +msgid "Convert luminance values to a duochrome palette" +msgstr "" + +#: ../src/extension/internal/filter/color.h:634 +msgid "Extract Channel" +msgstr "" + +#: ../src/extension/internal/filter/color.h:640 +#: ../src/widgets/sp-color-icc-selector.cpp:344 +#: ../src/widgets/sp-color-icc-selector.cpp:349 +#: ../src/widgets/sp-color-scales.cpp:469 +#: ../src/widgets/sp-color-scales.cpp:470 +msgid "Cyan" +msgstr "" + +#: ../src/extension/internal/filter/color.h:641 +#: ../src/widgets/sp-color-icc-selector.cpp:345 +#: ../src/widgets/sp-color-icc-selector.cpp:350 +#: ../src/widgets/sp-color-scales.cpp:472 +#: ../src/widgets/sp-color-scales.cpp:473 +msgid "Magenta" +msgstr "" + +#: ../src/extension/internal/filter/color.h:642 +#: ../src/widgets/sp-color-icc-selector.cpp:346 +#: ../src/widgets/sp-color-icc-selector.cpp:351 +#: ../src/widgets/sp-color-scales.cpp:475 +#: ../src/widgets/sp-color-scales.cpp:476 +msgid "Yellow" +msgstr "" + +#: ../src/extension/internal/filter/color.h:644 +msgid "Background blend mode:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:649 +msgid "Channel to alpha" +msgstr "" + +#: ../src/extension/internal/filter/color.h:657 +msgid "Extract color channel as a transparent image" +msgstr "" + +#: ../src/extension/internal/filter/color.h:740 +msgid "Fade to Black or White" +msgstr "" + +#: ../src/extension/internal/filter/color.h:743 +msgid "Fade to:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:744 +#: ../src/ui/widget/selected-style.cpp:274 +#: ../src/widgets/sp-color-icc-selector.cpp:347 +#: ../src/widgets/sp-color-scales.cpp:478 +#: ../src/widgets/sp-color-scales.cpp:479 +msgid "Black" +msgstr "" + +#: ../src/extension/internal/filter/color.h:745 +#: ../src/ui/widget/selected-style.cpp:270 +msgid "White" +msgstr "" + +#: ../src/extension/internal/filter/color.h:754 +msgid "Fade to black or white" +msgstr "" + +#: ../src/extension/internal/filter/color.h:819 +msgid "Greyscale" +msgstr "" + +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/paint.h:83 +#: ../src/extension/internal/filter/paint.h:239 +msgid "Transparent" +msgstr "" + +#: ../src/extension/internal/filter/color.h:833 +msgid "Customize greyscale components" +msgstr "" + +#: ../src/extension/internal/filter/color.h:905 +#: ../src/ui/widget/selected-style.cpp:266 +msgid "Invert" +msgstr "" + +#: ../src/extension/internal/filter/color.h:907 +msgid "Invert channels:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:908 +msgid "No inversion" +msgstr "" + +#: ../src/extension/internal/filter/color.h:909 +msgid "Red and blue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:910 +msgid "Red and green" +msgstr "" + +#: ../src/extension/internal/filter/color.h:911 +msgid "Green and blue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:913 +msgid "Light transparency" +msgstr "" + +#: ../src/extension/internal/filter/color.h:914 +msgid "Invert hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:915 +msgid "Invert lightness" +msgstr "" + +#: ../src/extension/internal/filter/color.h:916 +msgid "Invert transparency" +msgstr "" + +#: ../src/extension/internal/filter/color.h:924 +msgid "Manage hue, lightness and transparency inversions" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1042 +msgid "Lights" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1043 +msgid "Shadows" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1044 +#: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 +#: ../src/live_effects/effect.cpp:110 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 +#: ../src/widgets/gradient-toolbar.cpp:1159 +msgid "Offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1052 +msgid "Modify lights and shadows separately" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1111 +msgid "Lightness-Contrast" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1122 +msgid "Modify lightness and contrast separately" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1190 +msgid "Nudge RGB" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1194 +msgid "Red offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1195 +#: ../src/extension/internal/filter/color.h:1198 +#: ../src/extension/internal/filter/color.h:1201 +#: ../src/extension/internal/filter/color.h:1307 +#: ../src/extension/internal/filter/color.h:1310 +#: ../src/extension/internal/filter/color.h:1313 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 +msgid "X" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1196 +#: ../src/extension/internal/filter/color.h:1199 +#: ../src/extension/internal/filter/color.h:1202 +#: ../src/extension/internal/filter/color.h:1308 +#: ../src/extension/internal/filter/color.h:1311 +#: ../src/extension/internal/filter/color.h:1314 +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1197 +msgid "Green offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1200 +msgid "Blue offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1215 +msgid "" +"Nudge RGB channels separately and blend them to different types of " +"backgrounds" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1302 +msgid "Nudge CMY" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1306 +msgid "Cyan offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1309 +msgid "Magenta offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1312 +msgid "Yellow offset" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1327 +msgid "" +"Nudge CMY channels separately and blend them to different types of " +"backgrounds" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1408 +msgid "Quadritone fantasy" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1410 +msgid "Hue distribution (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1411 +#: ../share/extensions/svgcalendar.inx.h:19 +msgid "Colors" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1432 +msgid "Replace hue by two colors" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1496 +msgid "Hue rotation (°)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1499 +msgid "Moonarize" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1508 +msgid "Classic photographic solarization effect" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1581 +msgid "Tritone" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1587 +msgid "Enhance hue" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1588 +msgid "Phosphorescence" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1589 +msgid "Colored nights" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1590 +msgid "Hue to background" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1592 +msgid "Global blend:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1598 +msgid "Glow" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1599 +msgid "Glow blend:" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1604 +msgid "Local light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1605 +msgid "Global light" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1608 +msgid "Hue distribution (°):" +msgstr "" + +#: ../src/extension/internal/filter/color.h:1619 +msgid "" +"Create a custom tritone palette with additional glow, blend modes and hue " +"moving" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:67 +msgid "Felt Feather" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:71 +#: ../src/extension/internal/filter/morphology.h:175 +#: ../src/filter-enums.cpp:90 +msgid "Out" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:77 +#: ../src/extension/internal/filter/textures.h:75 +#: ../src/ui/widget/selected-style.cpp:132 +#: ../src/ui/widget/style-swatch.cpp:128 +msgid "Stroke:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:79 +#: ../src/extension/internal/filter/textures.h:76 +msgid "Wide" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:80 +#: ../src/extension/internal/filter/textures.h:78 +msgid "Narrow" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:81 +msgid "No fill" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:83 +msgid "Turbulence:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:84 +#: ../src/extension/internal/filter/distort.h:193 +#: ../src/extension/internal/filter/overlays.h:61 +#: ../src/extension/internal/filter/paint.h:692 +msgid "Fractal noise" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:85 +#: ../src/extension/internal/filter/distort.h:194 +#: ../src/extension/internal/filter/overlays.h:62 +#: ../src/extension/internal/filter/paint.h:693 ../src/filter-enums.cpp:36 +#: ../src/filter-enums.cpp:145 +msgid "Turbulence" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:87 +#: ../src/extension/internal/filter/distort.h:196 +#: ../src/extension/internal/filter/paint.h:93 +#: ../src/extension/internal/filter/paint.h:695 +msgid "Horizontal frequency" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:88 +#: ../src/extension/internal/filter/distort.h:197 +#: ../src/extension/internal/filter/paint.h:94 +#: ../src/extension/internal/filter/paint.h:696 +msgid "Vertical frequency" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:89 +#: ../src/extension/internal/filter/distort.h:198 +#: ../src/extension/internal/filter/paint.h:95 +#: ../src/extension/internal/filter/paint.h:697 +msgid "Complexity" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:90 +#: ../src/extension/internal/filter/distort.h:199 +#: ../src/extension/internal/filter/paint.h:96 +#: ../src/extension/internal/filter/paint.h:698 +msgid "Variation" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:91 +#: ../src/extension/internal/filter/distort.h:200 +msgid "Intensity" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:99 +msgid "Blur and displace edges of shapes and pictures" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:190 +#: ../src/live_effects/effect.cpp:140 +msgid "Roughen" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:192 +#: ../src/extension/internal/filter/overlays.h:60 +#: ../src/extension/internal/filter/paint.h:691 +#: ../src/extension/internal/filter/textures.h:64 +msgid "Turbulence type:" +msgstr "" + +#: ../src/extension/internal/filter/distort.h:208 +msgid "Small-scale roughening to edges and content" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:34 +msgid "Bundled" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:35 +msgid "Personal" +msgstr "" + +#: ../src/extension/internal/filter/filter-file.cpp:47 +msgid "Null external module directory name. Filters will not be loaded." +msgstr "" + +#: ../src/extension/internal/filter/image.h:49 +msgid "Edge Detect" +msgstr "" + +#: ../src/extension/internal/filter/image.h:51 +msgid "Detect:" +msgstr "" + +#: ../src/extension/internal/filter/image.h:52 +#: ../src/ui/dialog/template-load-tab.cpp:105 +#: ../src/ui/dialog/template-load-tab.cpp:142 +msgid "All" +msgstr "" + +#: ../src/extension/internal/filter/image.h:53 +msgid "Vertical lines" +msgstr "" + +#: ../src/extension/internal/filter/image.h:54 +msgid "Horizontal lines" +msgstr "" + +#: ../src/extension/internal/filter/image.h:57 +msgid "Invert colors" +msgstr "" + +#: ../src/extension/internal/filter/image.h:65 +msgid "Detect color edges in object" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:58 +msgid "Cross-smooth" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:61 +#: ../src/extension/internal/filter/shadows.h:66 +msgid "Inner" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:62 +#: ../src/extension/internal/filter/shadows.h:65 +msgid "Outer" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:63 +msgid "Open" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:65 +#: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 +#: ../src/widgets/rect-toolbar.cpp:318 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../share/extensions/interp_att_g.inx.h:10 +msgid "Width" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:69 +#: ../src/extension/internal/filter/morphology.h:190 +msgid "Antialiasing" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:70 +msgid "Blur content" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:79 +msgid "Smooth edges and angles of shapes" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:166 +msgid "Outline" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:170 +msgid "Fill image" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:171 +msgid "Hide image" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:172 +msgid "Composite type:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:173 +#: ../src/filter-enums.cpp:88 +msgid "Over" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:177 +#: ../src/filter-enums.cpp:92 +msgid "XOR" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:179 +#: ../src/ui/dialog/layer-properties.cpp:185 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 +msgid "Position:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:180 +msgid "Inside" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:181 +msgid "Outside" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:182 +msgid "Overlayed" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:184 +msgid "Width 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:185 +msgid "Dilatation 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:186 +msgid "Erosion 1" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:187 +msgid "Width 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:188 +msgid "Dilatation 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:189 +msgid "Erosion 2" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:191 +msgid "Smooth" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:195 +msgid "Fill opacity:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:196 +msgid "Stroke opacity:" +msgstr "" + +#: ../src/extension/internal/filter/morphology.h:206 +msgid "Adds a colorizable outline" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:56 +msgid "Noise Fill" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:59 +#: ../src/extension/internal/filter/paint.h:690 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:88 +#: ../src/ui/dialog/tracedialog.cpp:747 +#: ../share/extensions/color_HSL_adjust.inx.h:2 +#: ../share/extensions/color_custom.inx.h:2 +#: ../share/extensions/color_randomize.inx.h:2 +#: ../share/extensions/dots.inx.h:2 ../share/extensions/dxf_input.inx.h:2 +#: ../share/extensions/dxf_outlines.inx.h:2 +#: ../share/extensions/gcodetools_area.inx.h:29 +#: ../share/extensions/gcodetools_engraving.inx.h:7 +#: ../share/extensions/gcodetools_graffiti.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:22 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:11 +#: ../share/extensions/generate_voronoi.inx.h:2 +#: ../share/extensions/gimp_xcf.inx.h:2 +#: ../share/extensions/interp_att_g.inx.h:2 +#: ../share/extensions/jessyInk_uninstall.inx.h:2 +#: ../share/extensions/lorem_ipsum.inx.h:2 +#: ../share/extensions/pathalongpath.inx.h:2 +#: ../share/extensions/pathscatter.inx.h:2 +#: ../share/extensions/radiusrand.inx.h:2 ../share/extensions/scour.inx.h:2 +#: ../share/extensions/split.inx.h:2 ../share/extensions/voronoi2svg.inx.h:2 +#: ../share/extensions/web-set-att.inx.h:2 +#: ../share/extensions/web-transmit-att.inx.h:2 +#: ../share/extensions/webslicer_create_group.inx.h:2 +#: ../share/extensions/webslicer_export.inx.h:2 +msgid "Options" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:64 +msgid "Horizontal frequency:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:65 +msgid "Vertical frequency:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:66 +#: ../src/extension/internal/filter/textures.h:69 +msgid "Complexity:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:67 +#: ../src/extension/internal/filter/textures.h:70 +msgid "Variation:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:68 +msgid "Dilatation:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:69 +msgid "Erosion:" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:72 +msgid "Noise color" +msgstr "" + +#: ../src/extension/internal/filter/overlays.h:83 +msgid "Basic noise fill and transparency texture" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:71 +msgid "Chromolitho" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:75 +#: ../share/extensions/jessyInk_keyBindings.inx.h:16 +msgid "Drawing mode" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:76 +msgid "Drawing blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:84 +msgid "Dented" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:88 +#: ../src/extension/internal/filter/paint.h:699 +msgid "Noise reduction" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:91 +msgid "Grain" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:92 +msgid "Grain mode" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:97 +#: ../src/extension/internal/filter/transparency.h:207 +#: ../src/extension/internal/filter/transparency.h:281 +msgid "Expansion" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:100 +msgid "Grain blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:116 +msgid "Chromo effect with customizable edge drawing and graininess" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:232 +msgid "Cross Engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:234 +#: ../src/extension/internal/filter/paint.h:337 +msgid "Clean-up" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:238 +#: ../share/extensions/measure.inx.h:11 +msgid "Length" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:247 +msgid "Convert image to an engraving made of vertical and horizontal lines" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:331 +#: ../src/ui/dialog/align-and-distribute.cpp:1003 +#: ../src/widgets/desktop-widget.cpp:1996 +msgid "Drawing" +msgstr "" + +#. 0.91 +#: ../src/extension/internal/filter/paint.h:335 +#: ../src/extension/internal/filter/paint.h:496 +#: ../src/extension/internal/filter/paint.h:590 +#: ../src/extension/internal/filter/paint.h:976 +#: ../src/live_effects/effect.cpp:151 ../src/splivarot.cpp:2212 +msgid "Simplify" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:338 +#: ../src/extension/internal/filter/paint.h:709 +msgid "Erase" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:344 +msgid "Melt" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:350 +#: ../src/extension/internal/filter/paint.h:712 +msgid "Fill color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:351 +#: ../src/extension/internal/filter/paint.h:714 +msgid "Image on fill" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:354 +msgid "Stroke color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:355 +msgid "Image on stroke" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:366 +msgid "Convert images to duochrome drawings" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:494 +msgid "Electrize" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:497 +#: ../src/extension/internal/filter/paint.h:852 +msgid "Effect type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:501 +#: ../src/extension/internal/filter/paint.h:860 +#: ../src/extension/internal/filter/paint.h:975 +msgid "Levels" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:510 +msgid "Electro solarization effects" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:584 +msgid "Neon Draw" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:586 +msgid "Line type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:587 +msgid "Smoothed" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:588 +msgid "Contrasted" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:591 +#: ../src/live_effects/lpe-jointype.cpp:51 +msgid "Line width" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:593 +#: ../src/extension/internal/filter/paint.h:861 +#: ../src/ui/widget/filter-effect-chooser.cpp:25 +msgid "Blend mode:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:605 +msgid "Posterize and draw smooth lines around color shapes" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:687 +msgid "Point Engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:700 +msgid "Noise blend:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:708 +msgid "Grain lightness" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:716 +msgid "Points color" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:718 +msgid "Image on points" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:728 +msgid "Convert image to a transparent point engraving" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:850 +msgid "Poster Paint" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:856 +msgid "Transfer type:" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:857 +msgid "Poster" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:858 +msgid "Painting" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:868 +msgid "Simplify (primary)" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:869 +msgid "Simplify (secondary)" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:870 +msgid "Pre-saturation" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:871 +msgid "Post-saturation" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:872 +msgid "Simulate antialiasing" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:880 +msgid "Poster and painting effects" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:973 +msgid "Posterize Basic" +msgstr "" + +#: ../src/extension/internal/filter/paint.h:984 +msgid "Simple posterizing effect" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:48 +msgid "Snow crest" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:50 +msgid "Drift Size" +msgstr "" + +#: ../src/extension/internal/filter/protrusions.h:58 +msgid "Snow has fallen on object" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:57 +msgid "Drop Shadow" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:61 +msgid "Blur radius (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:62 +msgid "Horizontal offset (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:63 +msgid "Vertical offset (px)" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:64 +msgid "Shadow type:" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:67 +msgid "Outer cutout" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:68 +msgid "Inner cutout" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:69 +msgid "Shadow only" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:72 +msgid "Blur color" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:74 +msgid "Use object's color" +msgstr "" + +#: ../src/extension/internal/filter/shadows.h:84 +msgid "Colorizable Drop shadow" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:62 +msgid "Ink Blot" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:68 +msgid "Frequency:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:71 +msgid "Horizontal inlay:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:72 +msgid "Vertical inlay:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:73 +msgid "Displacement:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:79 +msgid "Overlapping" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:80 +msgid "External" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:81 +#: ../share/extensions/markers_strokepaint.inx.h:8 +msgid "Custom" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:83 +msgid "Custom stroke options" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:84 +msgid "k1:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:85 +msgid "k2:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:86 +msgid "k3:" +msgstr "" + +#: ../src/extension/internal/filter/textures.h:94 +msgid "Inkblot on tissue or rough paper" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:53 +#: ../src/filter-enums.cpp:21 +msgid "Blend" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:55 ../src/rdf.cpp:261 +msgid "Source:" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:56 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1591 +msgid "Background" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:59 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 +#: ../src/ui/dialog/input.cpp:1088 ../src/widgets/eraser-toolbar.cpp:106 +#: ../src/widgets/pencil-toolbar.cpp:132 ../src/widgets/spray-toolbar.cpp:186 +#: ../src/widgets/tweak-toolbar.cpp:254 ../share/extensions/extrude.inx.h:2 +#: ../share/extensions/triangle.inx.h:8 +msgid "Mode:" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:73 +msgid "Blend objects with background images or with themselves" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:130 +msgid "Channel Transparency" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:144 +msgid "Replace RGB with transparency" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:205 +msgid "Light Eraser" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:209 +#: ../src/extension/internal/filter/transparency.h:283 +msgid "Global opacity" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:218 +msgid "Make the lightest parts of the object progressively transparent" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:291 +msgid "Set opacity and strength of opacity boundaries" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:341 +msgid "Silhouette" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:344 +msgid "Cutout" +msgstr "" + +#: ../src/extension/internal/filter/transparency.h:353 +msgid "Repaint anything visible monochrome" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:183 +#, c-format +msgid "%s bitmap image import" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:190 +#, c-format +msgid "Image Import Type:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:190 +#, c-format +msgid "" +"Embed results in stand-alone, larger SVG files. Link references a file " +"outside this SVG document and all files must be moved together." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:191 +#: ../src/ui/dialog/inkscape-preferences.cpp:1456 +#, c-format +msgid "Embed" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:192 ../src/sp-anchor.cpp:119 +#: ../src/ui/dialog/inkscape-preferences.cpp:1456 +#, c-format +msgid "Link" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:195 +#, c-format +msgid "Image DPI:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:195 +#, c-format +msgid "" +"Take information from file or use default bitmap import resolution as " +"defined in the preferences." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:196 +#, c-format +msgid "From file" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:197 +#, c-format +msgid "Default import resolution" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:200 +#, c-format +msgid "Image Rendering Mode:" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:200 +#, c-format +msgid "" +"When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " +"not work in all browsers.)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:201 +#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#, c-format +msgid "None (auto)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:202 +#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#, c-format +msgid "Smooth (optimizeQuality)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:203 +#: ../src/ui/dialog/inkscape-preferences.cpp:1463 +#, c-format +msgid "Blocky (optimizeSpeed)" +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:206 +#, c-format +msgid "Hide the dialog next time and always apply the same actions." +msgstr "" + +#: ../src/extension/internal/gdkpixbuf-input.cpp:206 +#, c-format +msgid "Don't ask again" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:272 +msgid "GIMP Gradients" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:277 +msgid "GIMP Gradient (*.ggr)" +msgstr "" + +#: ../src/extension/internal/gimpgrad.cpp:278 +msgid "Gradients used in GIMP" +msgstr "" + +#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:118 +msgid "Grid" +msgstr "" + +#: ../src/extension/internal/grid.cpp:214 +msgid "Line Width:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:215 +msgid "Horizontal Spacing:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:216 +msgid "Vertical Spacing:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:217 +msgid "Horizontal Offset:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:218 +msgid "Vertical Offset:" +msgstr "" + +#: ../src/extension/internal/grid.cpp:222 +#: ../src/ui/dialog/inkscape-preferences.cpp:1477 +#: ../share/extensions/draw_from_triangle.inx.h:58 +#: ../share/extensions/eqtexsvg.inx.h:4 +#: ../share/extensions/foldablebox.inx.h:9 +#: ../share/extensions/funcplot.inx.h:38 +#: ../share/extensions/grid_cartesian.inx.h:23 +#: ../share/extensions/grid_isometric.inx.h:11 +#: ../share/extensions/grid_polar.inx.h:22 +#: ../share/extensions/guides_creator.inx.h:25 +#: ../share/extensions/hershey.inx.h:52 +#: ../share/extensions/layout_nup.inx.h:35 +#: ../share/extensions/lindenmayer.inx.h:34 +#: ../share/extensions/param_curves.inx.h:30 +#: ../share/extensions/perfectboundcover.inx.h:19 +#: ../share/extensions/polyhedron_3d.inx.h:56 +#: ../share/extensions/printing_marks.inx.h:20 +#: ../share/extensions/render_alphabetsoup.inx.h:5 +#: ../share/extensions/render_barcode.inx.h:5 +#: ../share/extensions/render_barcode_datamatrix.inx.h:5 +#: ../share/extensions/render_barcode_qrcode.inx.h:18 +#: ../share/extensions/render_gear_rack.inx.h:5 +#: ../share/extensions/render_gears.inx.h:11 ../share/extensions/rtree.inx.h:4 +#: ../share/extensions/seamless_pattern.inx.h:5 +#: ../share/extensions/spirograph.inx.h:10 +#: ../share/extensions/svgcalendar.inx.h:38 +#: ../share/extensions/triangle.inx.h:14 +#: ../share/extensions/wireframe_sphere.inx.h:8 +msgid "Render" +msgstr "" + +#: ../src/extension/internal/grid.cpp:223 +#: ../src/ui/dialog/document-properties.cpp:155 +#: ../src/ui/dialog/inkscape-preferences.cpp:787 +#: ../src/widgets/toolbox.cpp:1827 +msgid "Grids" +msgstr "" + +#: ../src/extension/internal/grid.cpp:226 +msgid "Draw a path which is a grid" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:966 +msgid "JavaFX Output" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:971 +msgid "JavaFX (*.fx)" +msgstr "" + +#: ../src/extension/internal/javafx-out.cpp:972 +msgid "JavaFX Raytracer File" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:95 +msgid "LaTeX Output" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:100 +msgid "LaTeX With PSTricks macros (*.tex)" +msgstr "" + +#: ../src/extension/internal/latex-pstricks-out.cpp:101 +msgid "LaTeX PSTricks File" +msgstr "" + +#: ../src/extension/internal/latex-pstricks.cpp:331 +msgid "LaTeX Print" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2142 +msgid "OpenDocument Drawing Output" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2147 +msgid "OpenDocument drawing (*.odg)" +msgstr "" + +#: ../src/extension/internal/odf.cpp:2148 +msgid "OpenDocument drawing file" +msgstr "" + +#. TRANSLATORS: The following are document crop settings for PDF import +#. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ +#: ../src/extension/internal/pdfinput/pdf-input.cpp:71 +msgid "media box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:72 +msgid "crop box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:73 +msgid "trim box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:74 +msgid "bleed box" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:75 +msgid "art box" +msgstr "" + +#. Crop settings +#: ../src/extension/internal/pdfinput/pdf-input.cpp:112 +msgid "Clip to:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:123 +msgid "Page settings" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:124 +msgid "Precision of approximating gradient meshes:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:125 +msgid "" +"Note: setting the precision too high may result in a large SVG file " +"and slow performance." +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:128 +msgid "import via Poppler" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:138 +msgid "rough" +msgstr "" + +#. Text options +#: ../src/extension/internal/pdfinput/pdf-input.cpp:142 +msgid "Text handling:" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:144 +#: ../src/extension/internal/pdfinput/pdf-input.cpp:145 +msgid "Import text as text" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:146 +msgid "Replace PDF fonts by closest-named installed fonts" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:149 +msgid "Embed images" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:151 +msgid "Import settings" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:268 +msgid "PDF Import Settings" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:431 +msgctxt "PDF input precision" +msgid "rough" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:432 +msgctxt "PDF input precision" +msgid "medium" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:433 +msgctxt "PDF input precision" +msgid "fine" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:434 +msgctxt "PDF input precision" +msgid "very fine" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:901 +msgid "PDF Input" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:906 +msgid "Adobe PDF (*.pdf)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:907 +msgid "Adobe Portable Document Format" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:914 +msgid "AI Input" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:919 +msgid "Adobe Illustrator 9.0 and above (*.ai)" +msgstr "" + +#: ../src/extension/internal/pdfinput/pdf-input.cpp:920 +msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:715 +msgid "PovRay Output" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:720 +msgid "PovRay (*.pov) (paths and shapes only)" +msgstr "" + +#: ../src/extension/internal/pov-out.cpp:721 +msgid "PovRay Raytracer File" +msgstr "" + +#: ../src/extension/internal/svg.cpp:100 +msgid "SVG Input" +msgstr "" + +#: ../src/extension/internal/svg.cpp:105 +msgid "Scalable Vector Graphic (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:106 +msgid "Inkscape native file format and W3C standard" +msgstr "" + +#: ../src/extension/internal/svg.cpp:114 +msgid "SVG Output Inkscape" +msgstr "" + +#: ../src/extension/internal/svg.cpp:119 +msgid "Inkscape SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:120 +msgid "SVG format with Inkscape extensions" +msgstr "" + +#: ../src/extension/internal/svg.cpp:128 +msgid "SVG Output" +msgstr "" + +#: ../src/extension/internal/svg.cpp:133 +msgid "Plain SVG (*.svg)" +msgstr "" + +#: ../src/extension/internal/svg.cpp:134 +msgid "Scalable Vector Graphics format as defined by the W3C" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:46 +msgid "SVGZ Input" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:52 ../src/extension/internal/svgz.cpp:66 +msgid "Compressed Inkscape SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:53 +msgid "SVG file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 +msgid "SVGZ Output" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:67 +msgid "Inkscape's native file format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:80 +msgid "Compressed plain SVG (*.svgz)" +msgstr "" + +#: ../src/extension/internal/svgz.cpp:81 +msgid "Scalable Vector Graphics format compressed with GZip" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:301 +msgid "VSD Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:306 +msgid "Microsoft Visio Diagram (*.vsd)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:307 +msgid "File format used by Microsoft Visio 6 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:314 +msgid "VDX Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:319 +msgid "Microsoft Visio XML Diagram (*.vdx)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:320 +msgid "File format used by Microsoft Visio 2010 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:327 +msgid "VSDM Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:332 +msgid "Microsoft Visio 2013 drawing (*.vsdm)" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:333 +#: ../src/extension/internal/vsd-input.cpp:346 +msgid "File format used by Microsoft Visio 2013 and later" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:340 +msgid "VSDX Input" +msgstr "" + +#: ../src/extension/internal/vsd-input.cpp:345 +msgid "Microsoft Visio 2013 drawing (*.vsdx)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3136 +msgid "WMF Input" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3141 +msgid "Windows Metafiles (*.wmf)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3142 +msgid "Windows Metafiles" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3150 +msgid "WMF Output" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3160 +msgid "Map all fill patterns to standard WMF hatches" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3164 +#: ../share/extensions/wmf_input.inx.h:2 +#: ../share/extensions/wmf_output.inx.h:2 +msgid "Windows Metafile (*.wmf)" +msgstr "" + +#: ../src/extension/internal/wmf-inout.cpp:3165 +msgid "Windows Metafile" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:144 +msgid "WPG Input" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:149 +msgid "WordPerfect Graphics (*.wpg)" +msgstr "" + +#: ../src/extension/internal/wpg-input.cpp:150 +msgid "Vector graphics format used by Corel WordPerfect" +msgstr "" + +#: ../src/extension/prefdialog.cpp:276 +msgid "Live preview" +msgstr "" + +#: ../src/extension/prefdialog.cpp:276 +msgid "Is the effect previewed live on canvas?" +msgstr "" + +#: ../src/extension/system.cpp:125 ../src/extension/system.cpp:127 +msgid "Format autodetect failed. The file is being opened as SVG." +msgstr "" + +#: ../src/file.cpp:183 +msgid "default.svg" +msgstr "" + +#: ../src/file.cpp:322 +msgid "Broken links have been changed to point to existing files." +msgstr "" + +#: ../src/file.cpp:333 ../src/file.cpp:1249 +#, c-format +msgid "Failed to load the requested file %s" +msgstr "" + +#: ../src/file.cpp:359 +msgid "Document not saved yet. Cannot revert." +msgstr "" + +#: ../src/file.cpp:365 +msgid "Changes will be lost! Are you sure you want to reload document %1?" +msgstr "" + +#: ../src/file.cpp:391 +msgid "Document reverted." +msgstr "" + +#: ../src/file.cpp:393 +msgid "Document not reverted." +msgstr "" + +#: ../src/file.cpp:543 +msgid "Select file to open" +msgstr "" + +#: ../src/file.cpp:625 +msgid "Clean up document" +msgstr "" + +#: ../src/file.cpp:632 +#, c-format +msgid "Removed %i unused definition in <defs>." +msgid_plural "Removed %i unused definitions in <defs>." +msgstr[0] "" +msgstr[1] "" + +#: ../src/file.cpp:637 +msgid "No unused definitions in <defs>." +msgstr "" + +#: ../src/file.cpp:669 +#, 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:670 ../src/file.cpp:678 ../src/file.cpp:686 +#: ../src/file.cpp:692 ../src/file.cpp:697 +msgid "Document not saved." +msgstr "" + +#: ../src/file.cpp:677 +#, c-format +msgid "" +"File %s is write protected. Please remove write protection and try again." +msgstr "" + +#: ../src/file.cpp:685 +#, c-format +msgid "File %s could not be saved." +msgstr "" + +#: ../src/file.cpp:715 ../src/file.cpp:717 +msgid "Document saved." +msgstr "" + +#. We are saving for the first time; create a unique default filename +#: ../src/file.cpp:860 ../src/file.cpp:1408 +msgid "drawing" +msgstr "" + +#: ../src/file.cpp:865 +msgid "drawing-%1" +msgstr "" + +#: ../src/file.cpp:882 +msgid "Select file to save a copy to" +msgstr "" + +#: ../src/file.cpp:884 +msgid "Select file to save to" +msgstr "" + +#: ../src/file.cpp:989 ../src/file.cpp:991 +msgid "No changes need to be saved." +msgstr "" + +#: ../src/file.cpp:1010 +msgid "Saving document..." +msgstr "" + +#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/ui/dialog/ocaldialogs.cpp:1244 +msgid "Import" +msgstr "" + +#: ../src/file.cpp:1296 +msgid "Select file to import" +msgstr "" + +#: ../src/file.cpp:1429 +msgid "Select file to export to" +msgstr "" + +#: ../src/file.cpp:1682 +msgid "Import Clip Art" +msgstr "" + +#: ../src/filter-enums.cpp:22 +msgid "Color Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:24 +msgid "Composite" +msgstr "" + +#: ../src/filter-enums.cpp:25 +msgid "Convolve Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:26 +msgid "Diffuse Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:27 +msgid "Displacement Map" +msgstr "" + +#: ../src/filter-enums.cpp:28 +msgid "Flood" +msgstr "" + +#: ../src/filter-enums.cpp:31 ../share/extensions/text_merge.inx.h:1 +msgid "Merge" +msgstr "" + +#: ../src/filter-enums.cpp:34 +msgid "Specular Lighting" +msgstr "" + +#: ../src/filter-enums.cpp:35 +msgid "Tile" +msgstr "" + +#: ../src/filter-enums.cpp:41 +msgid "Source Graphic" +msgstr "" + +#: ../src/filter-enums.cpp:42 +msgid "Source Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:43 +msgid "Background Image" +msgstr "" + +#: ../src/filter-enums.cpp:44 +msgid "Background Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:45 +msgid "Fill Paint" +msgstr "" + +#: ../src/filter-enums.cpp:46 +msgid "Stroke Paint" +msgstr "" + +#. New in Compositing and Blending Level 1 +#: ../src/filter-enums.cpp:58 +msgid "Overlay" +msgstr "" + +#: ../src/filter-enums.cpp:59 +msgid "Color Dodge" +msgstr "" + +#: ../src/filter-enums.cpp:60 +msgid "Color Burn" +msgstr "" + +#: ../src/filter-enums.cpp:61 +msgid "Hard Light" +msgstr "" + +#: ../src/filter-enums.cpp:62 +msgid "Soft Light" +msgstr "" + +#: ../src/filter-enums.cpp:63 ../src/splivarot.cpp:88 ../src/splivarot.cpp:94 +msgid "Difference" +msgstr "" + +#: ../src/filter-enums.cpp:64 ../src/splivarot.cpp:100 +msgid "Exclusion" +msgstr "" + +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 +#: ../src/widgets/sp-color-icc-selector.cpp:336 +#: ../src/widgets/sp-color-icc-selector.cpp:340 +#: ../src/widgets/sp-color-scales.cpp:441 +#: ../src/widgets/sp-color-scales.cpp:442 ../src/widgets/tweak-toolbar.cpp:286 +#: ../share/extensions/color_randomize.inx.h:3 +msgid "Hue" +msgstr "" + +#: ../src/filter-enums.cpp:68 +msgid "Luminosity" +msgstr "" + +#: ../src/filter-enums.cpp:78 +msgid "Matrix" +msgstr "" + +#: ../src/filter-enums.cpp:79 +msgid "Saturate" +msgstr "" + +#: ../src/filter-enums.cpp:80 +msgid "Hue Rotate" +msgstr "" + +#: ../src/filter-enums.cpp:81 +msgid "Luminance to Alpha" +msgstr "" + +#: ../src/filter-enums.cpp:87 ../src/widgets/mesh-toolbar.cpp:476 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:7 +msgid "Default" +msgstr "" + +#. New CSS +#: ../src/filter-enums.cpp:95 +msgid "Clear" +msgstr "" + +#: ../src/filter-enums.cpp:96 +msgid "Copy" +msgstr "" + +#: ../src/filter-enums.cpp:97 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1611 +msgid "Destination" +msgstr "" + +#: ../src/filter-enums.cpp:98 +msgid "Destination Over" +msgstr "" + +#: ../src/filter-enums.cpp:99 +msgid "Destination In" +msgstr "" + +#: ../src/filter-enums.cpp:100 +msgid "Destination Out" +msgstr "" + +#: ../src/filter-enums.cpp:101 +msgid "Destination Atop" +msgstr "" + +#: ../src/filter-enums.cpp:102 +msgid "Lighter" +msgstr "" + +#: ../src/filter-enums.cpp:104 +msgid "Arithmetic" +msgstr "" + +#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:546 +msgid "Duplicate" +msgstr "" + +#: ../src/filter-enums.cpp:121 +msgid "Wrap" +msgstr "" + +#: ../src/filter-enums.cpp:122 +msgctxt "Convolve matrix, edge mode" +msgid "None" +msgstr "" + +#: ../src/filter-enums.cpp:137 +msgid "Erode" +msgstr "" + +#: ../src/filter-enums.cpp:138 +msgid "Dilate" +msgstr "" + +#: ../src/filter-enums.cpp:144 +msgid "Fractal Noise" +msgstr "" + +#: ../src/filter-enums.cpp:151 +msgid "Distant Light" +msgstr "" + +#: ../src/filter-enums.cpp:152 +msgid "Point Light" +msgstr "" + +#: ../src/filter-enums.cpp:153 +msgid "Spot Light" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1579 +msgid "Invert gradient colors" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1605 +msgid "Reverse gradient" +msgstr "" + +#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:227 +msgid "Delete swatch" +msgstr "" + +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 +msgid "Linear gradient start" +msgstr "" + +#. POINT_LG_BEGIN +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 +msgid "Linear gradient end" +msgstr "" + +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 +msgid "Linear gradient mid stop" +msgstr "" + +#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 +msgid "Radial gradient center" +msgstr "" + +#: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 +#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +msgid "Radial gradient radius" +msgstr "" + +#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 +msgid "Radial gradient focus" +msgstr "" + +#. POINT_RG_FOCUS +#: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 +#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +msgid "Radial gradient mid stop" +msgstr "" + +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 +msgid "Mesh gradient corner" +msgstr "" + +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +msgid "Mesh gradient handle" +msgstr "" + +#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +msgid "Mesh gradient tensor" +msgstr "" + +#: ../src/gradient-drag.cpp:567 +msgid "Added patch row or column" +msgstr "" + +#: ../src/gradient-drag.cpp:799 +msgid "Merge gradient handles" +msgstr "" + +#. we did an undoable action +#: ../src/gradient-drag.cpp:1105 +msgid "Move gradient handle" +msgstr "" + +#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 +msgid "Delete gradient stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1427 +#, c-format +msgid "" +"%s %d for: %s%s; drag with Ctrl to snap offset; click with Ctrl" +"+Alt to delete stop" +msgstr "" + +#: ../src/gradient-drag.cpp:1431 ../src/gradient-drag.cpp:1438 +msgid " (stroke)" +msgstr "" + +#: ../src/gradient-drag.cpp:1435 +#, c-format +msgid "" +"%s for: %s%s; drag with Ctrl to snap angle, with Ctrl+Alt to " +"preserve angle, with Ctrl+Shift to scale around center" +msgstr "" + +#: ../src/gradient-drag.cpp:1443 +msgid "" +"Radial gradient center and focus; drag with Shift to " +"separate focus" +msgstr "" + +#: ../src/gradient-drag.cpp:1446 +#, c-format +msgid "" +"Gradient point shared by %d gradient; drag with Shift to " +"separate" +msgid_plural "" +"Gradient point shared by %d gradients; drag with Shift to " +"separate" +msgstr[0] "" +msgstr[1] "" + +#: ../src/gradient-drag.cpp:2378 +msgid "Move gradient handle(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:2414 +msgid "Move gradient mid stop(s)" +msgstr "" + +#: ../src/gradient-drag.cpp:2703 +msgid "Delete gradient stop(s)" +msgstr "" + +#: ../src/inkscape.cpp:246 +msgid "Autosave failed! Cannot create directory %1." +msgstr "" + +#: ../src/inkscape.cpp:255 +msgid "Autosave failed! Cannot open directory %1." +msgstr "" + +#: ../src/inkscape.cpp:271 +msgid "Autosaving documents..." +msgstr "" + +#: ../src/inkscape.cpp:339 +msgid "Autosave failed! Could not find inkscape extension to save document." +msgstr "" + +#: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 +#, c-format +msgid "Autosave failed! File %s could not be saved." +msgstr "" + +#: ../src/inkscape.cpp:364 +msgid "Autosave complete." +msgstr "" + +#: ../src/inkscape.cpp:622 +msgid "Untitled document" +msgstr "" + +#. Show nice dialog box +#: ../src/inkscape.cpp:654 +msgid "Inkscape encountered an internal error and will close now.\n" +msgstr "" + +#: ../src/inkscape.cpp:655 +msgid "" +"Automatic backups of unsaved documents were done to the following " +"locations:\n" +msgstr "" + +#: ../src/inkscape.cpp:656 +msgid "Automatic backup of the following documents failed:\n" +msgstr "" + +#: ../src/knot.cpp:346 +msgid "Node or handle drag canceled." +msgstr "" + +#: ../src/knotholder.cpp:170 +msgid "Change handle" +msgstr "" + +#: ../src/knotholder.cpp:257 +msgid "Move handle" +msgstr "" + +#. TRANSLATORS: This refers to the pattern that's inside the object +#: ../src/knotholder.cpp:276 ../src/knotholder.cpp:298 +msgid "Move the pattern fill inside the object" +msgstr "" + +#: ../src/knotholder.cpp:280 ../src/knotholder.cpp:302 +msgid "Scale the pattern fill; uniformly if with Ctrl" +msgstr "" + +#: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 +msgid "Rotate the pattern fill; with Ctrl to snap angle" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:105 +msgid "Master" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:106 +msgid "GdlDockMaster object which the dockbar widget is attached to" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:113 +msgid "Dockbar style" +msgstr "" + +#: ../src/libgdl/gdl-dock-bar.c:114 +msgid "Dockbar style to show items on it" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:399 +msgid "Iconify this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:401 +msgid "Close this dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:720 +#: ../src/libgdl/gdl-dock-tablabel.c:125 +msgid "Controlling dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item-grip.c:721 +msgid "Dockitem which 'owns' this grip" +msgstr "" + +#. Name +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 +#: ../src/widgets/text-toolbar.cpp:1405 +#: ../share/extensions/gcodetools_graffiti.inx.h:9 +#: ../share/extensions/gcodetools_orientation_points.inx.h:2 +msgid "Orientation" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:299 +msgid "Orientation of the docking item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:314 +msgid "Resizable" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:315 +msgid "If set, the dock item can be resized when docked in a GtkPanel widget" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:322 +msgid "Item behavior" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:323 +msgid "" +"General behavior for the dock item (i.e. whether it can float, if it's " +"locked, etc.)" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:331 ../src/libgdl/gdl-dock-master.c:148 +msgid "Locked" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:332 +msgid "" +"If set, the dock item cannot be dragged around and it doesn't show a grip" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:340 +msgid "Preferred width" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:341 +msgid "Preferred width for the dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:347 +msgid "Preferred height" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:348 +msgid "Preferred height for the dock item" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:716 +#, c-format +msgid "" +"You can't add a dock object (%p of type %s) inside a %s. Use a GdlDock or " +"some other compound dock object." +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:723 +#, c-format +msgid "" +"Attempting to add a widget with type %s to a %s, but it can only contain one " +"widget at a time; it already contains a widget of type %s" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:1471 ../src/libgdl/gdl-dock-item.c:1521 +#, c-format +msgid "Unsupported docking strategy %s in dock object of type %s" +msgstr "" + +#. UnLock menuitem +#: ../src/libgdl/gdl-dock-item.c:1629 +msgid "UnLock" +msgstr "" + +#. Hide menuitem. +#: ../src/libgdl/gdl-dock-item.c:1636 +msgid "Hide" +msgstr "" + +#. Lock menuitem +#: ../src/libgdl/gdl-dock-item.c:1641 +msgid "Lock" +msgstr "" + +#: ../src/libgdl/gdl-dock-item.c:1904 +#, c-format +msgid "Attempt to bind an unbound item %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:141 ../src/libgdl/gdl-dock.c:184 +msgid "Default title" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:142 +msgid "Default title for newly created floating docks" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:149 +msgid "" +"If is set to 1, all the dock items bound to the master are locked; if it's " +"0, all are unlocked; -1 indicates inconsistency among the items" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:157 ../src/libgdl/gdl-switcher.c:737 +msgid "Switcher Style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:158 ../src/libgdl/gdl-switcher.c:738 +msgid "Switcher buttons style" +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:783 +#, c-format +msgid "" +"master %p: unable to add object %p[%s] to the hash. There already is an " +"item with that name (%p)." +msgstr "" + +#: ../src/libgdl/gdl-dock-master.c:955 +#, c-format +msgid "" +"The new dock controller %p is automatic. Only manual dock objects should be " +"named controller." +msgstr "" + +#: ../src/libgdl/gdl-dock-notebook.c:132 +#: ../src/ui/dialog/align-and-distribute.cpp:1002 +#: ../src/ui/dialog/document-properties.cpp:153 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 +#: ../src/widgets/desktop-widget.cpp:1992 +#: ../share/extensions/empty_page.inx.h:1 +#: ../share/extensions/voronoi2svg.inx.h:9 +msgid "Page" +msgstr "" + +#: ../src/libgdl/gdl-dock-notebook.c:133 +msgid "The index of the current page" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:125 +#: ../src/live_effects/parameter/originalpatharray.cpp:86 +#: ../src/ui/dialog/inkscape-preferences.cpp:1511 +#: ../src/ui/widget/page-sizer.cpp:258 +#: ../src/widgets/gradient-selector.cpp:140 +#: ../src/widgets/sp-xmlview-attr-list.cpp:49 +msgid "Name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:126 +msgid "Unique name for identifying the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:133 +msgid "Long name" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:134 +msgid "Human readable name for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:140 +msgid "Stock Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:141 +msgid "Stock icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:147 +msgid "Pixbuf Icon" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:148 +msgid "Pixbuf icon for the dock object" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:153 +msgid "Dock master" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:154 +msgid "Dock master this dock object is bound to" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:463 +#, c-format +msgid "" +"Call to gdl_dock_object_dock in a dock object %p (object type is %s) which " +"hasn't implemented this method" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:602 +#, c-format +msgid "" +"Dock operation requested in a non-bound object %p. The application might " +"crash" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:609 +#, c-format +msgid "Cannot dock %p to %p because they belong to different masters" +msgstr "" + +#: ../src/libgdl/gdl-dock-object.c:651 +#, c-format +msgid "" +"Attempt to bind to %p an already bound dock object %p (current master: %p)" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +msgid "Position" +msgstr "" + +#: ../src/libgdl/gdl-dock-paned.c:131 +msgid "Position of the divider in pixels" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:141 +msgid "Sticky" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:142 +msgid "" +"Whether the placeholder will stick to its host or move up the hierarchy when " +"the host is redocked" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:149 +msgid "Host" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:150 +msgid "The dock object this placeholder is attached to" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:157 +msgid "Next placement" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:158 +msgid "" +"The position an item will be docked to our host if a request is made to dock " +"to us" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:168 +msgid "Width for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:176 +msgid "Height for the widget when it's attached to the placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:182 +msgid "Floating Toplevel" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:183 +msgid "Whether the placeholder is standing in for a floating toplevel dock" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:189 +msgid "X Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:190 +msgid "X coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:196 +msgid "Y Coordinate" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:197 +msgid "Y coordinate for dock when floating" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:499 +msgid "Attempt to dock a dock object to an unbound placeholder" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:611 +#, c-format +msgid "Got a detach signal from an object (%p) who is not our host %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-placeholder.c:636 +#, c-format +msgid "" +"Something weird happened while getting the child placement for %p from " +"parent %p" +msgstr "" + +#: ../src/libgdl/gdl-dock-tablabel.c:126 +msgid "Dockitem which 'owns' this tablabel" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:642 +#: ../src/ui/dialog/inkscape-preferences.cpp:685 +msgid "Floating" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:177 +msgid "Whether the dock is floating in its own window" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:185 +msgid "Default title for the newly created floating docks" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:192 +msgid "Width for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:200 +msgid "Height for the dock when it's of floating type" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:207 +msgid "Float X" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:208 +msgid "X coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:215 +msgid "Float Y" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:216 +msgid "Y coordinate for a floating dock" +msgstr "" + +#: ../src/libgdl/gdl-dock.c:476 +#, c-format +msgid "Dock #%d" +msgstr "" + +#: ../src/libnrtype/FontFactory.cpp:618 +msgid "Ignoring font without family that will crash Pango" +msgstr "" + +#: ../src/live_effects/effect.cpp:99 +msgid "doEffect stack test" +msgstr "" + +#: ../src/live_effects/effect.cpp:100 +msgid "Angle bisector" +msgstr "" + +#. TRANSLATORS: boolean operations +#: ../src/live_effects/effect.cpp:102 +msgid "Boolops" +msgstr "" + +#: ../src/live_effects/effect.cpp:103 +msgid "Circle (by center and radius)" +msgstr "" + +#: ../src/live_effects/effect.cpp:104 +msgid "Circle by 3 points" +msgstr "" + +#: ../src/live_effects/effect.cpp:105 +msgid "Dynamic stroke" +msgstr "" + +#: ../src/live_effects/effect.cpp:106 ../share/extensions/extrude.inx.h:1 +msgid "Extrude" +msgstr "" + +#: ../src/live_effects/effect.cpp:107 +msgid "Lattice Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:108 +msgid "Line Segment" +msgstr "" + +#: ../src/live_effects/effect.cpp:109 +msgid "Mirror symmetry" +msgstr "" + +#: ../src/live_effects/effect.cpp:111 +msgid "Parallel" +msgstr "" + +#: ../src/live_effects/effect.cpp:112 +msgid "Path length" +msgstr "" + +#: ../src/live_effects/effect.cpp:113 +msgid "Perpendicular bisector" +msgstr "" + +#: ../src/live_effects/effect.cpp:114 +msgid "Perspective path" +msgstr "" + +#: ../src/live_effects/effect.cpp:115 +msgid "Rotate copies" +msgstr "" + +#: ../src/live_effects/effect.cpp:116 +msgid "Recursive skeleton" +msgstr "" + +#: ../src/live_effects/effect.cpp:117 +msgid "Tangent to curve" +msgstr "" + +#: ../src/live_effects/effect.cpp:118 +msgid "Text label" +msgstr "" + +#. 0.46 +#: ../src/live_effects/effect.cpp:121 +msgid "Bend" +msgstr "" + +#: ../src/live_effects/effect.cpp:122 +msgid "Gears" +msgstr "" + +#: ../src/live_effects/effect.cpp:123 +msgid "Pattern Along Path" +msgstr "" + +#. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG +#: ../src/live_effects/effect.cpp:124 +msgid "Stitch Sub-Paths" +msgstr "" + +#. 0.47 +#: ../src/live_effects/effect.cpp:126 +msgid "VonKoch" +msgstr "" + +#: ../src/live_effects/effect.cpp:127 +msgid "Knot" +msgstr "" + +#: ../src/live_effects/effect.cpp:128 +msgid "Construct grid" +msgstr "" + +#: ../src/live_effects/effect.cpp:129 +msgid "Spiro spline" +msgstr "" + +#: ../src/live_effects/effect.cpp:130 +msgid "Envelope Deformation" +msgstr "" + +#: ../src/live_effects/effect.cpp:131 +msgid "Interpolate Sub-Paths" +msgstr "" + +#: ../src/live_effects/effect.cpp:132 +msgid "Hatches (rough)" +msgstr "" + +#: ../src/live_effects/effect.cpp:133 +msgid "Sketch" +msgstr "" + +#: ../src/live_effects/effect.cpp:134 +msgid "Ruler" +msgstr "" + +#. 0.91 +#: ../src/live_effects/effect.cpp:136 +msgid "Power stroke" +msgstr "" + +#: ../src/live_effects/effect.cpp:137 +msgid "Clone original path" +msgstr "" + +#. EXPERIMENTAL +#: ../src/live_effects/effect.cpp:139 +#: ../src/live_effects/lpe-show_handles.cpp:26 +msgid "Show handles" +msgstr "" + +#: ../src/live_effects/effect.cpp:141 ../src/widgets/pencil-toolbar.cpp:109 +msgid "BSpline" +msgstr "" + +#: ../src/live_effects/effect.cpp:142 +msgid "Join type" +msgstr "" + +#: ../src/live_effects/effect.cpp:143 +msgid "Taper stroke" +msgstr "" + +#. Ponyscape +#: ../src/live_effects/effect.cpp:145 +msgid "Attach path" +msgstr "" + +#: ../src/live_effects/effect.cpp:146 +msgid "Fill between strokes" +msgstr "" + +#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2916 +msgid "Fill between many" +msgstr "" + +#: ../src/live_effects/effect.cpp:148 +msgid "Ellipse by 5 points" +msgstr "" + +#: ../src/live_effects/effect.cpp:149 +msgid "Bounding Box" +msgstr "" + +#: ../src/live_effects/effect.cpp:152 +msgid "Lattice Deformation 2" +msgstr "" + +#: ../src/live_effects/effect.cpp:153 +msgid "Perspective/Envelope" +msgstr "" + +#: ../src/live_effects/effect.cpp:154 +msgid "Fillet/Chamfer" +msgstr "" + +#: ../src/live_effects/effect.cpp:155 +msgid "Interpolate points" +msgstr "" + +#: ../src/live_effects/effect.cpp:362 +msgid "Is visible?" +msgstr "" + +#: ../src/live_effects/effect.cpp:362 +msgid "" +"If unchecked, the effect remains applied to the object but is temporarily " +"disabled on canvas" +msgstr "" + +#: ../src/live_effects/effect.cpp:384 +msgid "No effect" +msgstr "" + +#: ../src/live_effects/effect.cpp:492 +#, c-format +msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" +msgstr "" + +#: ../src/live_effects/effect.cpp:759 +#, c-format +msgid "Editing parameter %s." +msgstr "" + +#: ../src/live_effects/effect.cpp:764 +msgid "None of the applied path effect's parameters can be edited on-canvas." +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:29 +msgid "Start path:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:29 +msgid "Path to attach to the start of this path" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:30 +msgid "Start path position:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:30 +msgid "Position to attach path start to" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:31 +msgid "Start path curve start:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:31 +#: ../src/live_effects/lpe-attach-path.cpp:35 +msgid "Starting curve" +msgstr "" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:32 +msgid "Start path curve end:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:32 +#: ../src/live_effects/lpe-attach-path.cpp:36 +msgid "Ending curve" +msgstr "" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:33 +msgid "End path:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:33 +msgid "Path to attach to the end of this path" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:34 +msgid "End path position:" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:34 +msgid "Position to attach path end to" +msgstr "" + +#: ../src/live_effects/lpe-attach-path.cpp:35 +msgid "End path curve start:" +msgstr "" + +#. , true +#: ../src/live_effects/lpe-attach-path.cpp:36 +msgid "End path curve end:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:53 +msgid "Bend path:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:53 +msgid "Path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:54 +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "_Width:" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:54 +msgid "Width of the path" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "W_idth in units of length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:55 +msgid "Scale the width of the path in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "_Original path is vertical" +msgstr "" + +#: ../src/live_effects/lpe-bendpath.cpp:56 +msgid "Rotates the original 90 degrees, before bending it along the bend path" +msgstr "" + +#: ../src/live_effects/lpe-bounding-box.cpp:24 +#: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/live_effects/lpe-fill-between-many.cpp:25 +#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 +msgid "Linked path:" +msgstr "" + +#: ../src/live_effects/lpe-bounding-box.cpp:24 +#: ../src/live_effects/lpe-clone-original.cpp:18 +#: ../src/live_effects/lpe-fill-between-strokes.cpp:23 +msgid "Path from which to take the original path data" +msgstr "" + +#: ../src/live_effects/lpe-bounding-box.cpp:25 +msgid "Visual Bounds" +msgstr "" + +#: ../src/live_effects/lpe-bounding-box.cpp:25 +msgid "Uses the visual bounding box" +msgstr "" + +#. initialise your parameters here: +#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, +#. Geom::Point(100,100)), +#: ../src/live_effects/lpe-bspline.cpp:60 +msgid "Steps with CTRL:" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:60 +msgid "Change number of steps with CTRL pressed" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:61 +msgid "Ignore cusp nodes" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:61 +msgid "Change ignoring cusp nodes" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 +msgid "Change only selected nodes" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:63 +msgid "Show helper paths" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:64 +msgid "Change weight:" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:64 +msgid "Change weight of the effect" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:291 +msgid "Default weight" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:296 +msgid "Make cusp" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:27 +msgid "Size _X:" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:27 +msgid "The size of the grid in X direction." +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "Size _Y:" +msgstr "" + +#: ../src/live_effects/lpe-constructgrid.cpp:28 +msgid "The size of the grid in Y direction." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:41 +msgid "Stitch path:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:41 +msgid "The path that will be used as stitch." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "N_umber of paths:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:42 +msgid "The number of paths that will be generated." +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "Sta_rt edge variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:43 +msgid "" +"The amount of random jitter to move the start points of the stitches inside " +"& outside the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "Sta_rt spacing variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:44 +msgid "" +"The amount of random shifting to move the start points of the stitches back " +"& forth along the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "End ed_ge variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:45 +msgid "" +"The amount of randomness that moves the end points of the stitches inside & " +"outside the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "End spa_cing variance:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:46 +msgid "" +"The amount of random shifting to move the end points of the stitches back & " +"forth along the guide path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "Scale _width:" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:47 +msgid "Scale the width of the stitch path" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale _width relative to length" +msgstr "" + +#: ../src/live_effects/lpe-curvestitch.cpp:48 +msgid "Scale the width of the stitch path relative to its length" +msgstr "" + +#: ../src/live_effects/lpe-ellipse_5pts.cpp:77 +msgid "Five points required for constructing an ellipse" +msgstr "" + +#: ../src/live_effects/lpe-ellipse_5pts.cpp:162 +msgid "No ellipse found for specified points" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:31 +msgid "Top bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:31 +msgid "Top path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:32 +msgid "Right bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:32 +msgid "Right path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Bottom bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:33 +msgid "Bottom path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Left bend path:" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:34 +msgid "Left path along which to bend the original path" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "_Enable left & right paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:35 +msgid "Enable the left and right deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "_Enable top & bottom paths" +msgstr "" + +#: ../src/live_effects/lpe-envelope.cpp:36 +msgid "Enable the top and bottom deformation paths" +msgstr "" + +#: ../src/live_effects/lpe-extrude.cpp:30 +msgid "Direction" +msgstr "" + +#: ../src/live_effects/lpe-extrude.cpp:30 +msgid "Defines the direction and magnitude of the extrusion" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-many.cpp:25 +msgid "Paths from which to take the original path data" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 +msgid "Second path:" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:24 +msgid "Second path from which to take the original path data" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 +msgid "Reverse Second" +msgstr "" + +#: ../src/live_effects/lpe-fill-between-strokes.cpp:25 +msgid "Reverses the second path order" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 +#: ../share/extensions/render_barcode_qrcode.inx.h:5 +msgid "Auto" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 +msgid "Force arc" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:44 +msgid "Force bezier" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 +msgid "Fillet point" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 +msgid "Hide knots" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 +msgid "Ignore 0 radius knots" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 +msgid "Flexible radius size (%)" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +msgid "Use knots distance instead radius" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 +#: ../src/live_effects/lpe-ruler.cpp:42 +#: ../share/extensions/foldablebox.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:9 +#: ../share/extensions/layout_nup.inx.h:3 +#: ../share/extensions/printing_marks.inx.h:11 +msgid "Unit:" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 +#: ../src/live_effects/lpe-roughen.cpp:39 ../src/live_effects/lpe-ruler.cpp:42 +#: ../src/widgets/ruler.cpp:201 +msgid "Unit" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +msgid "Method:" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +msgid "Fillets methods" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +msgid "Radius (unit or %):" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +msgid "Radius, in unit or %" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +msgid "Chamfer steps:" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +msgid "Chamfer steps" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +msgid "Helper size with direction:" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +msgid "Helper size with direction" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 +msgid "Fillet" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 +msgid "Inverse fillet" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:80 +msgid "Chamfer" +msgstr "" + +#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:82 +msgid "Inverse chamfer" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:214 +msgid "_Teeth:" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:214 +msgid "The number of teeth" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:215 +msgid "_Phi:" +msgstr "" + +#: ../src/live_effects/lpe-gears.cpp:215 +msgid "" +"Tooth pressure angle (typically 20-25 deg). The ratio of teeth not in " +"contact." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Trajectory:" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:31 +msgid "Path along which intermediate steps are created." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Steps_:" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:32 +msgid "Determines the number of steps from start to end path." +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:33 +msgid "E_quidistant spacing" +msgstr "" + +#: ../src/live_effects/lpe-interpolate.cpp:33 +msgid "" +"If true, the spacing between intermediates is constant along the length of " +"the path. If false, the distance depends on the location of the nodes of the " +"trajectory path." +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:26 +#: ../src/live_effects/lpe-powerstroke.cpp:195 +msgid "CubicBezierFit" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:27 +#: ../src/live_effects/lpe-powerstroke.cpp:196 +msgid "CubicBezierJohan" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:28 +#: ../src/live_effects/lpe-powerstroke.cpp:197 +msgid "SpiroInterpolator" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:29 +#: ../src/live_effects/lpe-powerstroke.cpp:198 +msgid "Centripetal Catmull-Rom" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:37 +#: ../src/live_effects/lpe-powerstroke.cpp:240 +msgid "Interpolator type:" +msgstr "" + +#: ../src/live_effects/lpe-interpolate_points.cpp:38 +#: ../src/live_effects/lpe-powerstroke.cpp:240 +msgid "" +"Determines which kind of interpolator will be used to interpolate between " +"stroke width along the path" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:31 +#: ../src/live_effects/lpe-powerstroke.cpp:227 +#: ../src/live_effects/lpe-taperstroke.cpp:63 +msgid "Beveled" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:32 +#: ../src/live_effects/lpe-jointype.cpp:40 +#: ../src/live_effects/lpe-powerstroke.cpp:228 +#: ../src/live_effects/lpe-taperstroke.cpp:64 +#: ../src/widgets/star-toolbar.cpp:536 +msgid "Rounded" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:33 +#: ../src/live_effects/lpe-powerstroke.cpp:231 +#: ../src/live_effects/lpe-taperstroke.cpp:66 +msgid "Miter" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:34 +#: ../src/live_effects/lpe-taperstroke.cpp:65 +#: ../src/widgets/gradient-toolbar.cpp:1118 +msgid "Reflected" +msgstr "" + +#. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well +#: ../src/live_effects/lpe-jointype.cpp:35 +#: ../src/live_effects/lpe-powerstroke.cpp:230 +msgid "Extrapolated arc" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:39 +#: ../src/live_effects/lpe-powerstroke.cpp:210 +msgid "Butt" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:41 +#: ../src/live_effects/lpe-powerstroke.cpp:211 +msgid "Square" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:42 +#: ../src/live_effects/lpe-powerstroke.cpp:213 +msgid "Peak" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:43 +msgid "Leaned" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:51 +msgid "Thickness of the stroke" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:52 +msgid "Line cap" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:52 +msgid "The end shape of the stroke" +msgstr "" + +#. Join type +#. TRANSLATORS: The line join style specifies the shape to be used at the +#. corners of paths. It can be "miter", "round" or "bevel". +#: ../src/live_effects/lpe-jointype.cpp:53 +#: ../src/live_effects/lpe-powerstroke.cpp:243 +#: ../src/widgets/stroke-style.cpp:227 +msgid "Join:" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:53 +#: ../src/live_effects/lpe-powerstroke.cpp:243 +msgid "Determines the shape of the path's corners" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:54 +msgid "Start path lean" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:55 +msgid "End path lean" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:56 +#: ../src/live_effects/lpe-powerstroke.cpp:244 +#: ../src/live_effects/lpe-taperstroke.cpp:79 +msgid "Miter limit:" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:56 +msgid "Maximum length of the miter join (in units of stroke width)" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:57 +msgid "Force miter" +msgstr "" + +#: ../src/live_effects/lpe-jointype.cpp:57 +msgid "Overrides the miter limit and forces a join." +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-knot.cpp:351 +msgid "Fi_xed width:" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:351 +msgid "Size of hidden region of lower string" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:352 +msgid "_In units of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:352 +msgid "Consider 'Interruption width' as a ratio of stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:353 +msgid "St_roke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:353 +msgid "Add the stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:354 +msgid "_Crossing path stroke width" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:354 +msgid "Add crossed stroke width to the interruption size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "S_witcher size:" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:355 +msgid "Orientation indicator/switcher size" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:356 +msgid "Crossing Signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:356 +msgid "Crossings signs" +msgstr "" + +#: ../src/live_effects/lpe-knot.cpp:627 +msgid "Drag to select a crossing, click to flip it" +msgstr "" + +#. / @todo Is this the right verb? +#: ../src/live_effects/lpe-knot.cpp:665 +msgid "Change knot crossing" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-lattice2.cpp:47 +msgid "Control handle 0:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:47 +msgid "Control handle 0 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:48 +msgid "Control handle 1:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:48 +msgid "Control handle 1 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:49 +msgid "Control handle 2:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:49 +msgid "Control handle 2 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:50 +msgid "Control handle 3:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:50 +msgid "Control handle 3 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:51 +msgid "Control handle 4:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:51 +msgid "Control handle 4 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:52 +msgid "Control handle 5:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:52 +msgid "Control handle 5 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:53 +msgid "Control handle 6:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:53 +msgid "Control handle 6 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:54 +msgid "Control handle 7:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:54 +msgid "Control handle 7 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:55 +msgid "Control handle 8x9:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:55 +msgid "Control handle 8x9 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:56 +msgid "Control handle 10x11:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:56 +msgid "Control handle 10x11 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:57 +msgid "Control handle 12:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:57 +msgid "Control handle 12 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:58 +msgid "Control handle 13:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:58 +msgid "Control handle 13 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:59 +msgid "Control handle 14:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:59 +msgid "Control handle 14 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:60 +msgid "Control handle 15:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:60 +msgid "Control handle 15 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:61 +msgid "Control handle 16:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:61 +msgid "Control handle 16 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:62 +msgid "Control handle 17:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:62 +msgid "Control handle 17 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:63 +msgid "Control handle 18:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:63 +msgid "Control handle 18 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:64 +msgid "Control handle 19:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:64 +msgid "Control handle 19 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:65 +msgid "Control handle 20x21:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:65 +msgid "Control handle 20x21 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:66 +msgid "Control handle 22x23:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:66 +msgid "Control handle 22x23 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:67 +msgid "Control handle 24x26:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:67 +msgid "Control handle 24x26 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:68 +msgid "Control handle 25x27:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:68 +msgid "Control handle 25x27 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:69 +msgid "Control handle 28x30:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:69 +msgid "Control handle 28x30 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:70 +msgid "Control handle 29x31:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:70 +msgid "Control handle 29x31 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:71 +msgid "Control handle 32x33x34x35:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:71 +msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:221 +msgid "Reset grid" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:50 +#: ../share/extensions/pathalongpath.inx.h:10 +msgid "Single" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:51 +#: ../share/extensions/pathalongpath.inx.h:11 +msgid "Single, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:52 +#: ../share/extensions/pathalongpath.inx.h:12 +msgid "Repeated" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:53 +#: ../share/extensions/pathalongpath.inx.h:13 +msgid "Repeated, stretched" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +msgid "Pattern source:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:59 +msgid "Path to put along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +msgid "Pattern copies:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:60 +msgid "How many pattern copies to place along the skeleton path" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:62 +msgid "Width of the pattern" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:63 +msgid "Wid_th in units of length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:64 +msgid "Scale the width of the pattern in units of its length" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:66 +msgid "Spa_cing:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:68 +#, 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:70 +msgid "No_rmal offset:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:71 +msgid "Tan_gential offset:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:72 +msgid "Offsets in _unit of pattern size" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:73 +msgid "" +"Spacing, tangential and normal offset are expressed as a ratio of width/" +"height" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "Pattern is _vertical" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:75 +msgid "Rotate pattern 90 deg before applying" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "_Fuse nearby ends:" +msgstr "" + +#: ../src/live_effects/lpe-patternalongpath.cpp:77 +msgid "Fuse ends closer than this number. 0 means don't fuse." +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:37 +#: ../share/extensions/perspective.inx.h:1 +msgid "Perspective" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:38 +msgid "Envelope deformation" +msgstr "" + +#. initialise your parameters here: +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +msgid "Type" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +msgid "Select the type of deformation" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +msgid "Top Left" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +msgid "Top Left - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +msgid "Top Right" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +msgid "Top Right - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +msgid "Down Left" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +msgid "Down Left - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +msgid "Down Right" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +msgid "Down Right - Ctrl+Alt+Click to reset" +msgstr "" + +#: ../src/live_effects/lpe-perspective-envelope.cpp:257 +msgid "Handles:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:193 +msgid "CubicBezierSmooth" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:212 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:13 +msgid "Round" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:214 +msgid "Zero width" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:232 +#: ../src/widgets/pencil-toolbar.cpp:103 +msgid "Spiro" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:238 +msgid "Offset points" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:239 +msgid "Sort points" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:239 +msgid "Sort offset points according to their time value along the curve" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:241 +#: ../share/extensions/fractalize.inx.h:3 +msgid "Smoothness:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:241 +msgid "" +"Sets the smoothness for the CubicBezierJohan interpolator; 0 = linear " +"interpolation, 1 = smooth" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:242 +msgid "Start cap:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:242 +msgid "Determines the shape of the path's start" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:244 +#: ../src/widgets/stroke-style.cpp:278 +msgid "Maximum length of the miter (in units of stroke width)" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:245 +msgid "End cap:" +msgstr "" + +#: ../src/live_effects/lpe-powerstroke.cpp:245 +msgid "Determines the shape of the path's end" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Frequency randomness:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:225 +msgid "Variation of distance between hatches, in %." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:226 +msgid "Growth of distance between hatches." +msgstr "" + +#. FIXME: top/bottom names are inverted in the UI/svg and in the code!! +#: ../src/live_effects/lpe-rough-hatches.cpp:228 +msgid "Half-turns smoothness: 1st side, in:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:228 +msgid "" +"Set smoothness/sharpness of path when reaching a 'bottom' half-turn. " +"0=sharp, 1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "1st side, out:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:229 +msgid "" +"Set smoothness/sharpness of path when leaving a 'bottom' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "2nd side, in:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:230 +msgid "" +"Set smoothness/sharpness of path when reaching a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "2nd side, out:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:231 +msgid "" +"Set smoothness/sharpness of path when leaving a 'top' half-turn. 0=sharp, " +"1=default" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "Magnitude jitter: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:232 +msgid "Randomly moves 'bottom' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:233 +msgid "Randomly moves 'top' half-turns to produce magnitude variations." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "Parallelism jitter: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:234 +msgid "" +"Add direction randomness by moving 'bottom' half-turns tangentially to the " +"boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:235 +msgid "" +"Add direction randomness by randomly moving 'top' half-turns tangentially to " +"the boundary." +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "Variance: 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:236 +msgid "Randomness of 'bottom' half-turns smoothness" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:237 +msgid "Randomness of 'top' half-turns smoothness" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Generate thick/thin path" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:239 +msgid "Simulate a stroke of varying width" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Bend hatches" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:240 +msgid "Add a global bend to the hatches (slower)" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Thickness: at 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:241 +msgid "Width at 'bottom' half-turns" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "At 2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:242 +msgid "Width at 'top' half-turns" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +msgid "From 2nd to 1st side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:244 +msgid "Width from 'top' to 'bottom'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "From 1st to 2nd side:" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:245 +msgid "Width from 'bottom' to 'top'" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Hatches width and dir" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:247 +msgid "Defines hatches frequency and direction" +msgstr "" + +#. +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "Global bending" +msgstr "" + +#: ../src/live_effects/lpe-rough-hatches.cpp:249 +msgid "" +"Relative position to a reference point defines global bending direction and " +"amount" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:30 ../share/extensions/addnodes.inx.h:4 +msgid "By number of segments" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:31 +msgid "By max. segment size" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:40 +msgid "Method" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:40 +msgid "Division method" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:42 +msgid "Max. segment size" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:44 +msgid "Number of segments" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:46 +msgid "Max. displacement in X" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:48 +msgid "Max. displacement in Y" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:50 +msgid "Global randomize" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:52 +#: ../share/extensions/radiusrand.inx.h:5 +msgid "Shift nodes" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:54 +#: ../share/extensions/radiusrand.inx.h:6 +msgid "Shift node handles" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:103 +msgid "Roughen unit" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:111 +msgid "Add nodes Subdivide each segment" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:120 +msgid "Jitter nodes Move nodes/handles" +msgstr "" + +#: ../src/live_effects/lpe-roughen.cpp:129 +msgid "Extra roughen Add a extra layer of rough" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:25 ../share/extensions/restack.inx.h:12 +#: ../share/extensions/text_extract.inx.h:8 +#: ../share/extensions/text_merge.inx.h:8 +msgid "Left" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:26 ../share/extensions/restack.inx.h:14 +#: ../share/extensions/text_extract.inx.h:10 +#: ../share/extensions/text_merge.inx.h:10 +msgid "Right" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:27 ../src/live_effects/lpe-ruler.cpp:35 +msgid "Both" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:32 +msgctxt "Border mark" +msgid "None" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:328 +msgid "Start" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:341 +msgid "End" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "_Mark distance:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:41 +msgid "Distance between successive ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Ma_jor length:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:43 +msgid "Length of major ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Mino_r length:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:44 +msgid "Length of minor ruler marks" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Major steps_:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:45 +msgid "Draw a major mark every ... steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks _by:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:46 +msgid "Shift marks by this many steps" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Mark direction:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:47 +msgid "Direction of marks (when viewing along the path from start to end)" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "_Offset:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:48 +msgid "Offset of first mark" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Border marks:" +msgstr "" + +#: ../src/live_effects/lpe-ruler.cpp:49 +msgid "Choose whether to draw marks at the beginning and end of the path" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:25 +msgid "Show nodes" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:27 +msgid "Show path" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:28 +msgid "Scale nodes and handles" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:29 +#: ../src/ui/tool/multi-path-manipulator.cpp:779 +#: ../src/ui/tool/multi-path-manipulator.cpp:782 +msgid "Rotate nodes" +msgstr "" + +#: ../src/live_effects/lpe-show_handles.cpp:55 +msgid "" +"The \"show handles\" path effect will remove any custom style on the object " +"you are applying it to. If this is not what you want, click Cancel." +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:29 +msgid "Steps:" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:29 +msgid "Change number of simplify steps " +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:30 +msgid "Roughly threshold:" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:31 +msgid "Helper size:" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:31 +msgid "Helper size" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Helper nodes" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Show helper nodes" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:34 +msgid "Helper handles" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:34 +msgid "Show helper handles" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:36 +msgid "Paths separately" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:36 +msgid "Simplifying paths (separately)" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:38 +msgid "Just coalesce" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:38 +msgid "Simplify just coalesce" +msgstr "" + +#. initialise your parameters here: +#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, Geom::Point(100,100)), +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Strokes:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:38 +msgid "Draw that many approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:39 +msgid "Max stroke length:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:40 +msgid "Maximum length of approximating strokes" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:41 +msgid "Stroke length variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:42 +msgid "Random variation of stroke length (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:43 +msgid "Max. overlap:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:44 +msgid "How much successive strokes should overlap (relative to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:45 +msgid "Overlap variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:46 +msgid "Random variation of overlap (relative to maximum overlap)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:47 +msgid "Max. end tolerance:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:48 +msgid "" +"Maximum distance between ends of original and approximating paths (relative " +"to maximum length)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:49 +msgid "Average offset:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:50 +msgid "Average distance each stroke is away from the original path" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:51 +msgid "Max. tremble:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:52 +msgid "Maximum tremble magnitude" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:53 +msgid "Tremble frequency:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:54 +msgid "Average number of tremble periods in a stroke" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:56 +msgid "Construction lines:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:57 +msgid "How many construction lines (tangents) to draw" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:58 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../share/extensions/render_alphabetsoup.inx.h:3 +msgid "Scale:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:59 +msgid "" +"Scale factor relating curvature and length of construction lines (try " +"5*offset)" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:60 +msgid "Max. length:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:60 +msgid "Maximum length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "Length variation:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:61 +msgid "Random variation of the length of construction lines" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "Placement randomness:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:62 +msgid "0: evenly distributed construction lines, 1: purely random placement" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "k_min:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:64 +msgid "min curvature" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "k_max:" +msgstr "" + +#: ../src/live_effects/lpe-sketch.cpp:65 +msgid "max curvature" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:67 +msgid "Extrapolated" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:74 +#: ../share/extensions/edge3d.inx.h:5 +msgid "Stroke width:" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:74 +msgid "The (non-tapered) width of the path" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:75 +msgid "Start offset:" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:75 +msgid "Taper distance from path start" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:76 +msgid "End offset:" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:76 +msgid "The ending position of the taper" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:77 +msgid "Taper smoothing:" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:77 +msgid "Amount of smoothing to apply to the tapers" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:78 +msgid "Join type:" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:78 +msgid "Join type for non-smooth nodes" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:79 +msgid "Limit for miter joins" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:536 +msgid "Start point of the taper" +msgstr "" + +#: ../src/live_effects/lpe-taperstroke.cpp:540 +msgid "End point of the taper" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:46 +msgid "N_r of generations:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:46 +msgid "Depth of the recursion --- keep low!!" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Generating path:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:47 +msgid "Path whose segments define the iterated transforms" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "_Use uniform transforms only" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:48 +msgid "" +"2 consecutive segments are used to reverse/preserve orientation only " +"(otherwise, they define a general transform)." +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "Dra_w all generations" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:49 +msgid "If unchecked, draw only the last generation" +msgstr "" + +#. ,draw_boxes(_("Display boxes"), _("Display boxes instead of paths only"), "draw_boxes", &wr, this, true) +#: ../src/live_effects/lpe-vonkoch.cpp:51 +msgid "Reference segment:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:51 +msgid "The reference segment. Defaults to the horizontal midline of the bbox." +msgstr "" + +#. refA(_("Ref Start"), _("Left side middle of the reference box"), "refA", &wr, this), +#. refB(_("Ref End"), _("Right side middle of the reference box"), "refB", &wr, this), +#. FIXME: a path is used here instead of 2 points to work around path/point param incompatibility bug. +#: ../src/live_effects/lpe-vonkoch.cpp:55 +msgid "_Max complexity:" +msgstr "" + +#: ../src/live_effects/lpe-vonkoch.cpp:55 +msgid "Disable effect if the output is too complex" +msgstr "" + +#: ../src/live_effects/parameter/bool.cpp:67 +msgid "Change bool parameter" +msgstr "" + +#: ../src/live_effects/parameter/enum.h:47 +msgid "Change enumeration parameter" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 +msgid "" +"Chamfer: Ctrl+Click toggle type, Shift+Click open " +"dialog, Ctrl+Alt+Click reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:847 +msgid "" +"Inverse Chamfer: Ctrl+Click toggle type, Shift+Click " +"open dialog, Ctrl+Alt+Click reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:851 +msgid "" +"Inverse Fillet: Ctrl+Click toggle type, Shift+Click " +"open dialog, Ctrl+Alt+Click reset" +msgstr "" + +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:794 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:855 +msgid "" +"Fillet: Ctrl+Click toggle type, Shift+Click open " +"dialog, Ctrl+Alt+Click reset" +msgstr "" + +#: ../src/live_effects/parameter/originalpath.cpp:71 +#: ../src/live_effects/parameter/originalpatharray.cpp:159 +msgid "Link to path" +msgstr "" + +#: ../src/live_effects/parameter/originalpath.cpp:83 +msgid "Select original" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:94 +#: ../src/widgets/gradient-toolbar.cpp:1205 +msgid "Reverse" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:134 +#: ../src/live_effects/parameter/originalpatharray.cpp:319 +#: ../src/live_effects/parameter/path.cpp:475 +msgid "Link path parameter to path" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:171 +msgid "Remove Path" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:183 +#: ../src/ui/dialog/objects.cpp:1847 +msgid "Move Down" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:195 +#: ../src/ui/dialog/objects.cpp:1862 +msgid "Move Up" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:235 +msgid "Move path up" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:265 +msgid "Move path down" +msgstr "" + +#: ../src/live_effects/parameter/originalpatharray.cpp:283 +msgid "Remove path" +msgstr "" + +#: ../src/live_effects/parameter/parameter.cpp:168 +msgid "Change scalar parameter" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:170 +msgid "Edit on-canvas" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:180 +msgid "Copy path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:190 +msgid "Paste path" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:200 +msgid "Link to path on clipboard" +msgstr "" + +#: ../src/live_effects/parameter/path.cpp:443 +msgid "Paste path parameter" +msgstr "" + +#: ../src/live_effects/parameter/point.cpp:89 +#: ../src/live_effects/parameter/pointreseteable.cpp:103 +msgid "Change point parameter" +msgstr "" + +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:239 +#: ../src/live_effects/parameter/powerstrokepointarray.cpp:256 +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:134 +msgid "Change random parameter" +msgstr "" + +#: ../src/live_effects/parameter/text.cpp:101 +msgid "Change text parameter" +msgstr "" + +#: ../src/live_effects/parameter/togglebutton.cpp:112 +msgid "Change togglebutton parameter" +msgstr "" + +#: ../src/live_effects/parameter/transformedpoint.cpp:98 +#: ../src/live_effects/parameter/vector.cpp:99 +msgid "Change vector parameter" +msgstr "" + +#: ../src/live_effects/parameter/unit.cpp:80 +msgid "Change unit parameter" +msgstr "" + +#: ../src/main-cmdlineact.cpp:49 +#, c-format +msgid "Unable to find verb ID '%s' specified on the command line.\n" +msgstr "" + +#: ../src/main-cmdlineact.cpp:60 +#, c-format +msgid "Unable to find node ID: '%s'\n" +msgstr "" + +#: ../src/main.cpp:295 +msgid "Print the Inkscape version number" +msgstr "" + +#: ../src/main.cpp:300 +msgid "Do not use X server (only process files from console)" +msgstr "" + +#: ../src/main.cpp:305 +msgid "Try to use X server (even if $DISPLAY is not set)" +msgstr "" + +#: ../src/main.cpp:310 +msgid "Open specified document(s) (option string may be excluded)" +msgstr "" + +#: ../src/main.cpp:311 ../src/main.cpp:316 ../src/main.cpp:321 +#: ../src/main.cpp:393 ../src/main.cpp:398 ../src/main.cpp:403 +#: ../src/main.cpp:414 ../src/main.cpp:430 ../src/main.cpp:435 +msgid "FILENAME" +msgstr "" + +#: ../src/main.cpp:315 +msgid "Print document(s) to specified output file (use '| program' for pipe)" +msgstr "" + +#: ../src/main.cpp:320 +msgid "Export document to a PNG file" +msgstr "" + +#: ../src/main.cpp:325 +msgid "" +"Resolution for exporting to bitmap and for rasterization of filters in PS/" +"EPS/PDF (default 96)" +msgstr "" + +#: ../src/main.cpp:326 ../src/ui/widget/rendering-options.cpp:37 +msgid "DPI" +msgstr "" + +#: ../src/main.cpp:330 +msgid "" +"Exported area in SVG user units (default is the page; 0,0 is lower-left " +"corner)" +msgstr "" + +#: ../src/main.cpp:331 +msgid "x0:y0:x1:y1" +msgstr "" + +#: ../src/main.cpp:335 +msgid "Exported area is the entire drawing (not page)" +msgstr "" + +#: ../src/main.cpp:340 +msgid "Exported area is the entire page" +msgstr "" + +#: ../src/main.cpp:345 +msgid "Only for PS/EPS/PDF, sets margin in mm around exported area (default 0)" +msgstr "" + +#: ../src/main.cpp:346 ../src/main.cpp:388 +msgid "VALUE" +msgstr "" + +#: ../src/main.cpp:350 +msgid "" +"Snap the bitmap export area outwards to the nearest integer values (in SVG " +"user units)" +msgstr "" + +#: ../src/main.cpp:355 +msgid "The width of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:356 +msgid "WIDTH" +msgstr "" + +#: ../src/main.cpp:360 +msgid "The height of exported bitmap in pixels (overrides export-dpi)" +msgstr "" + +#: ../src/main.cpp:361 +msgid "HEIGHT" +msgstr "" + +#: ../src/main.cpp:365 +msgid "The ID of the object to export" +msgstr "" + +#: ../src/main.cpp:366 ../src/main.cpp:479 +#: ../src/ui/dialog/inkscape-preferences.cpp:1514 +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:372 +msgid "" +"Export just the object with export-id, hide all others (only with export-id)" +msgstr "" + +#: ../src/main.cpp:377 +msgid "Use stored filename and DPI hints when exporting (only with export-id)" +msgstr "" + +#: ../src/main.cpp:382 +msgid "Background color of exported bitmap (any SVG-supported color string)" +msgstr "" + +#: ../src/main.cpp:383 +msgid "COLOR" +msgstr "" + +#: ../src/main.cpp:387 +msgid "Background opacity of exported bitmap (either 0.0 to 1.0, or 1 to 255)" +msgstr "" + +#: ../src/main.cpp:392 +msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" +msgstr "" + +#: ../src/main.cpp:397 +msgid "Export document to a PS file" +msgstr "" + +#: ../src/main.cpp:402 +msgid "Export document to an EPS file" +msgstr "" + +#: ../src/main.cpp:407 +msgid "" +"Choose the PostScript Level used to export. Possible choices are 2 (the " +"default) and 3" +msgstr "" + +#: ../src/main.cpp:409 +msgid "PS Level" +msgstr "" + +#: ../src/main.cpp:413 +msgid "Export document to a PDF file" +msgstr "" + +#. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" +#: ../src/main.cpp:419 +msgid "" +"Export PDF to given version. (hint: make sure to input the exact string " +"found in the PDF export dialog, e.g. \"PDF 1.4\" which is PDF-a conformant)" +msgstr "" + +#: ../src/main.cpp:420 +msgid "PDF_VERSION" +msgstr "" + +#: ../src/main.cpp:424 +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:429 +msgid "Export document to an Enhanced Metafile (EMF) File" +msgstr "" + +#: ../src/main.cpp:434 +msgid "Export document to a Windows Metafile (WMF) File" +msgstr "" + +#: ../src/main.cpp:439 +msgid "Convert text object to paths on export (PS, EPS, PDF, SVG)" +msgstr "" + +#: ../src/main.cpp:444 +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:450 +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:456 +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:462 +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:468 +msgid "" +"Query the height of the drawing or, if specified, of the object with --query-" +"id" +msgstr "" + +#: ../src/main.cpp:473 +msgid "List id,x,y,w,h for all objects" +msgstr "" + +#: ../src/main.cpp:478 +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:484 +msgid "Print out the extension directory and exit" +msgstr "" + +#: ../src/main.cpp:489 +msgid "Remove unused definitions from the defs section(s) of the document" +msgstr "" + +#: ../src/main.cpp:495 +msgid "Enter a listening loop for D-Bus messages in console mode" +msgstr "" + +#: ../src/main.cpp:500 +msgid "" +"Specify the D-Bus bus name to listen for messages on (default is org." +"inkscape)" +msgstr "" + +#: ../src/main.cpp:501 +msgid "BUS-NAME" +msgstr "" + +#: ../src/main.cpp:506 +msgid "List the IDs of all the verbs in Inkscape" +msgstr "" + +#: ../src/main.cpp:511 +msgid "Verb to call when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:512 +msgid "VERB-ID" +msgstr "" + +#: ../src/main.cpp:516 +msgid "Object ID to select when Inkscape opens." +msgstr "" + +#: ../src/main.cpp:517 +msgid "OBJECT-ID" +msgstr "" + +#: ../src/main.cpp:521 +msgid "Start Inkscape in interactive shell mode." +msgstr "" + +#: ../src/main.cpp:871 ../src/main.cpp:1283 +msgid "" +"[OPTIONS...] [FILE...]\n" +"\n" +"Available options:" +msgstr "" + +#. ## Add a menu for clear() +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +msgid "_File" +msgstr "" + +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 +msgid "_Edit" +msgstr "" + +#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 +msgid "Paste Si_ze" +msgstr "" + +#: ../src/menus-skeleton.h:63 +msgid "Clo_ne" +msgstr "" + +#: ../src/menus-skeleton.h:77 +msgid "Select Sa_me" +msgstr "" + +#: ../src/menus-skeleton.h:95 +msgid "_View" +msgstr "" + +#: ../src/menus-skeleton.h:96 +msgid "_Zoom" +msgstr "" + +#: ../src/menus-skeleton.h:112 +msgid "_Display mode" +msgstr "" + +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:121 +msgid "_Color display mode" +msgstr "" + +#. Better location in menu needs to be found +#. " \n" +#. " \n" +#: ../src/menus-skeleton.h:134 +msgid "Sh_ow/Hide" +msgstr "" + +#. Not quite ready to be in the menus. +#. " \n" +#: ../src/menus-skeleton.h:154 +msgid "_Layer" +msgstr "" + +#: ../src/menus-skeleton.h:178 +msgid "_Object" +msgstr "" + +#: ../src/menus-skeleton.h:189 +msgid "Cli_p" +msgstr "" + +#: ../src/menus-skeleton.h:193 +msgid "Mas_k" +msgstr "" + +#: ../src/menus-skeleton.h:197 +msgid "Patter_n" +msgstr "" + +#: ../src/menus-skeleton.h:221 +msgid "_Path" +msgstr "" + +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/text-edit.cpp:71 +msgid "_Text" +msgstr "" + +#: ../src/menus-skeleton.h:267 +msgid "Filter_s" +msgstr "" + +#: ../src/menus-skeleton.h:273 +msgid "Exte_nsions" +msgstr "" + +#: ../src/menus-skeleton.h:279 +msgid "_Help" +msgstr "" + +#: ../src/menus-skeleton.h:283 +msgid "Tutorials" +msgstr "" + +#: ../src/path-chemistry.cpp:54 +msgid "Select object(s) to combine." +msgstr "" + +#: ../src/path-chemistry.cpp:58 +msgid "Combining paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:174 +msgid "Combine" +msgstr "" + +#: ../src/path-chemistry.cpp:181 +msgid "No path(s) to combine in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:193 +msgid "Select path(s) to break apart." +msgstr "" + +#: ../src/path-chemistry.cpp:197 +msgid "Breaking apart paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:287 +msgid "Break apart" +msgstr "" + +#: ../src/path-chemistry.cpp:289 +msgid "No path(s) to break apart in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:299 +msgid "Select object(s) to convert to path." +msgstr "" + +#: ../src/path-chemistry.cpp:305 +msgid "Converting objects to paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:327 +msgid "Object to path" +msgstr "" + +#: ../src/path-chemistry.cpp:329 +msgid "No objects to convert to path in the selection." +msgstr "" + +#: ../src/path-chemistry.cpp:618 +msgid "Select path(s) to reverse." +msgstr "" + +#: ../src/path-chemistry.cpp:627 +msgid "Reversing paths..." +msgstr "" + +#: ../src/path-chemistry.cpp:662 +msgid "Reverse path" +msgstr "" + +#: ../src/path-chemistry.cpp:664 +msgid "No paths to reverse in the selection." +msgstr "" + +#: ../src/persp3d.cpp:333 +msgid "Toggle vanishing point" +msgstr "" + +#: ../src/persp3d.cpp:344 +msgid "Toggle multiple vanishing points" +msgstr "" + +#: ../src/preferences-skeleton.h:102 +msgid "Dip pen" +msgstr "" + +#: ../src/preferences-skeleton.h:103 +msgid "Marker" +msgstr "" + +#: ../src/preferences-skeleton.h:104 +msgid "Brush" +msgstr "" + +#: ../src/preferences-skeleton.h:105 +msgid "Wiggly" +msgstr "" + +#: ../src/preferences-skeleton.h:106 +msgid "Splotchy" +msgstr "" + +#: ../src/preferences-skeleton.h:107 +msgid "Tracing" +msgstr "" + +#: ../src/preferences.cpp:136 +msgid "" +"Inkscape will run with default settings, and new settings will not be saved. " +msgstr "" + +#. the creation failed +#. _reportError(Glib::ustring::compose(_("Cannot create profile directory %1."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:151 +#, c-format +msgid "Cannot create profile directory %s." +msgstr "" + +#. The profile dir is not actually a directory +#. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), +#. Glib::filename_to_utf8(_prefs_dir)), not_saved); +#: ../src/preferences.cpp:169 +#, c-format +msgid "%s is not a valid directory." +msgstr "" + +#. The write failed. +#. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), +#. Glib::filename_to_utf8(_prefs_filename)), not_saved); +#: ../src/preferences.cpp:180 +#, c-format +msgid "Failed to create the preferences file %s." +msgstr "" + +#: ../src/preferences.cpp:216 +#, c-format +msgid "The preferences file %s is not a regular file." +msgstr "" + +#: ../src/preferences.cpp:226 +#, c-format +msgid "The preferences file %s could not be read." +msgstr "" + +#: ../src/preferences.cpp:237 +#, c-format +msgid "The preferences file %s is not a valid XML document." +msgstr "" + +#: ../src/preferences.cpp:246 +#, c-format +msgid "The file %s is not a valid Inkscape preferences file." +msgstr "" + +#: ../src/rdf.cpp:175 +msgid "CC Attribution" +msgstr "" + +#: ../src/rdf.cpp:180 +msgid "CC Attribution-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:185 +msgid "CC Attribution-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:190 +msgid "CC Attribution-NonCommercial" +msgstr "" + +#: ../src/rdf.cpp:195 +msgid "CC Attribution-NonCommercial-ShareAlike" +msgstr "" + +#: ../src/rdf.cpp:200 +msgid "CC Attribution-NonCommercial-NoDerivs" +msgstr "" + +#: ../src/rdf.cpp:205 +msgid "CC0 Public Domain Dedication" +msgstr "" + +#: ../src/rdf.cpp:210 +msgid "FreeArt" +msgstr "" + +#: ../src/rdf.cpp:215 +msgid "Open Font License" +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:1952 +#: ../src/ui/dialog/object-attributes.cpp:57 +msgid "Title:" +msgstr "" + +#: ../src/rdf.cpp:236 +msgid "A name given to the resource" +msgstr "" + +#: ../src/rdf.cpp:238 +msgid "Date:" +msgstr "" + +#: ../src/rdf.cpp:239 +msgid "" +"A point or period of time associated with an event in the lifecycle of the " +"resource" +msgstr "" + +#: ../src/rdf.cpp:241 ../share/extensions/webslicer_create_rect.inx.h:3 +msgid "Format:" +msgstr "" + +#: ../src/rdf.cpp:242 +msgid "The file format, physical medium, or dimensions of the resource" +msgstr "" + +#: ../src/rdf.cpp:245 +msgid "The nature or genre of the resource" +msgstr "" + +#: ../src/rdf.cpp:248 +msgid "Creator:" +msgstr "" + +#: ../src/rdf.cpp:249 +msgid "An entity primarily responsible for making the resource" +msgstr "" + +#: ../src/rdf.cpp:251 +msgid "Rights:" +msgstr "" + +#: ../src/rdf.cpp:252 +msgid "Information about rights held in and over the resource" +msgstr "" + +#: ../src/rdf.cpp:254 +msgid "Publisher:" +msgstr "" + +#: ../src/rdf.cpp:255 +msgid "An entity responsible for making the resource available" +msgstr "" + +#: ../src/rdf.cpp:258 +msgid "Identifier:" +msgstr "" + +#: ../src/rdf.cpp:259 +msgid "An unambiguous reference to the resource within a given context" +msgstr "" + +#: ../src/rdf.cpp:262 +msgid "A related resource from which the described resource is derived" +msgstr "" + +#: ../src/rdf.cpp:264 +msgid "Relation:" +msgstr "" + +#: ../src/rdf.cpp:265 +msgid "A related resource" +msgstr "" + +#: ../src/rdf.cpp:267 ../src/ui/dialog/inkscape-preferences.cpp:1870 +msgid "Language:" +msgstr "" + +#: ../src/rdf.cpp:268 +msgid "A language of the resource" +msgstr "" + +#: ../src/rdf.cpp:270 +msgid "Keywords:" +msgstr "" + +#: ../src/rdf.cpp:271 +msgid "The topic of the resource" +msgstr "" + +#. TRANSLATORS: "Coverage": the spatial or temporal characteristics of the content. +#. For info, see Appendix D of http://www.w3.org/TR/1998/WD-rdf-schema-19980409/ +#: ../src/rdf.cpp:275 +msgid "Coverage:" +msgstr "" + +#: ../src/rdf.cpp:276 +msgid "" +"The spatial or temporal topic of the resource, the spatial applicability of " +"the resource, or the jurisdiction under which the resource is relevant" +msgstr "" + +#: ../src/rdf.cpp:279 +msgid "Description:" +msgstr "" + +#: ../src/rdf.cpp:280 +msgid "An account of the resource" +msgstr "" + +#. FIXME: need to handle 1 agent per line of input +#: ../src/rdf.cpp:284 +msgid "Contributors:" +msgstr "" + +#: ../src/rdf.cpp:285 +msgid "An entity responsible for making contributions to the resource" +msgstr "" + +#. TRANSLATORS: URL to a page that defines the license for the document +#: ../src/rdf.cpp:289 +msgid "URI:" +msgstr "" + +#. TRANSLATORS: this is where you put a URL to a page that defines the license +#: ../src/rdf.cpp:291 +msgid "URI to this document's license's namespace definition" +msgstr "" + +#. TRANSLATORS: fragment of XML representing the license of the document +#: ../src/rdf.cpp:295 +msgid "Fragment:" +msgstr "" + +#: ../src/rdf.cpp:296 +msgid "XML fragment for the RDF 'License' section" +msgstr "" + +#: ../src/resource-manager.cpp:332 +msgid "Fixup broken links" +msgstr "" + +#: ../src/selection-chemistry.cpp:406 +msgid "Delete text" +msgstr "" + +#: ../src/selection-chemistry.cpp:414 +msgid "Nothing was deleted." +msgstr "" + +#: ../src/selection-chemistry.cpp:433 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 +#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:974 +#: ../src/widgets/eraser-toolbar.cpp:93 +#: ../src/widgets/gradient-toolbar.cpp:1181 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-toolbar.cpp:1209 +#: ../src/widgets/node-toolbar.cpp:401 +msgid "Delete" +msgstr "" + +#: ../src/selection-chemistry.cpp:461 +msgid "Select object(s) to duplicate." +msgstr "" + +#: ../src/selection-chemistry.cpp:572 +msgid "Delete all" +msgstr "" + +#: ../src/selection-chemistry.cpp:763 +msgid "Select some objects to group." +msgstr "" + +#: ../src/selection-chemistry.cpp:778 +msgctxt "Verb" +msgid "Group" +msgstr "" + +#: ../src/selection-chemistry.cpp:801 +msgid "Select a group to ungroup." +msgstr "" + +#: ../src/selection-chemistry.cpp:816 +msgid "No groups to ungroup in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:585 +msgid "Ungroup" +msgstr "" + +#: ../src/selection-chemistry.cpp:956 +msgid "Select object(s) to raise." +msgstr "" + +#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1019 +#: ../src/selection-chemistry.cpp:1047 ../src/selection-chemistry.cpp:1109 +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:1003 +msgctxt "Undo action" +msgid "Raise" +msgstr "" + +#: ../src/selection-chemistry.cpp:1011 +msgid "Select object(s) to raise to top." +msgstr "" + +#: ../src/selection-chemistry.cpp:1034 +msgid "Raise to top" +msgstr "" + +#: ../src/selection-chemistry.cpp:1041 +msgid "Select object(s) to lower." +msgstr "" + +#. TRANSLATORS: "Lower" means "to lower an object" in the undo history +#: ../src/selection-chemistry.cpp:1093 +msgctxt "Undo action" +msgid "Lower" +msgstr "" + +#: ../src/selection-chemistry.cpp:1101 +msgid "Select object(s) to lower to bottom." +msgstr "" + +#: ../src/selection-chemistry.cpp:1136 +msgid "Lower to bottom" +msgstr "" + +#: ../src/selection-chemistry.cpp:1146 +msgid "Nothing to undo." +msgstr "" + +#: ../src/selection-chemistry.cpp:1157 +msgid "Nothing to redo." +msgstr "" + +#: ../src/selection-chemistry.cpp:1229 +msgid "Paste" +msgstr "" + +#: ../src/selection-chemistry.cpp:1237 +msgid "Paste style" +msgstr "" + +#: ../src/selection-chemistry.cpp:1247 +msgid "Paste live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:1269 +msgid "Select object(s) to remove live path effects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1281 +msgid "Remove live path effect" +msgstr "" + +#: ../src/selection-chemistry.cpp:1292 +msgid "Select object(s) to remove filters from." +msgstr "" + +#: ../src/selection-chemistry.cpp:1302 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +msgid "Remove filter" +msgstr "" + +#: ../src/selection-chemistry.cpp:1311 +msgid "Paste size" +msgstr "" + +#: ../src/selection-chemistry.cpp:1320 +msgid "Paste size separately" +msgstr "" + +#: ../src/selection-chemistry.cpp:1349 +msgid "Select object(s) to move to the layer above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1376 +msgid "Raise to next layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1383 +msgid "No more layers above." +msgstr "" + +#: ../src/selection-chemistry.cpp:1395 +msgid "Select object(s) to move to the layer below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1422 +msgid "Lower to previous layer" +msgstr "" + +#: ../src/selection-chemistry.cpp:1429 +msgid "No more layers below." +msgstr "" + +#: ../src/selection-chemistry.cpp:1441 +msgid "Select object(s) to move." +msgstr "" + +#: ../src/selection-chemistry.cpp:1459 ../src/verbs.cpp:2656 +msgid "Move selection to layer" +msgstr "" + +#. An SVG element cannot have a transform. We could change 'x' and 'y' in response +#. to a translation... but leave that for another day. +#: ../src/selection-chemistry.cpp:1549 ../src/seltrans.cpp:388 +msgid "Cannot transform an embedded SVG." +msgstr "" + +#: ../src/selection-chemistry.cpp:1720 +msgid "Remove transform" +msgstr "" + +#: ../src/selection-chemistry.cpp:1827 +msgid "Rotate 90° CCW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1827 +msgid "Rotate 90° CW" +msgstr "" + +#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 +#: ../src/ui/dialog/transformation.cpp:893 +msgid "Rotate" +msgstr "" + +#: ../src/selection-chemistry.cpp:2204 +msgid "Rotate by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 +#: ../src/ui/dialog/transformation.cpp:868 +#: ../share/extensions/interp_att_g.inx.h:12 +msgid "Scale" +msgstr "" + +#: ../src/selection-chemistry.cpp:2259 +msgid "Scale by whole factor" +msgstr "" + +#: ../src/selection-chemistry.cpp:2274 +msgid "Move vertically" +msgstr "" + +#: ../src/selection-chemistry.cpp:2277 +msgid "Move horizontally" +msgstr "" + +#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 +#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 +msgid "Move" +msgstr "" + +#: ../src/selection-chemistry.cpp:2300 +msgid "Move vertically by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2303 +msgid "Move horizontally by pixels" +msgstr "" + +#: ../src/selection-chemistry.cpp:2435 +msgid "The selection has no applied path effect." +msgstr "" + +#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 +msgid "Select an object to clone." +msgstr "" + +#: ../src/selection-chemistry.cpp:2643 +msgctxt "Action" +msgid "Clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2659 +msgid "Select clones to relink." +msgstr "" + +#: ../src/selection-chemistry.cpp:2666 +msgid "Copy an object to clipboard to relink clones to." +msgstr "" + +#: ../src/selection-chemistry.cpp:2689 +msgid "No clones to relink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2692 +msgid "Relink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2706 +msgid "Select clones to unlink." +msgstr "" + +#: ../src/selection-chemistry.cpp:2762 +msgid "No clones to unlink in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:2766 +msgid "Unlink clone" +msgstr "" + +#: ../src/selection-chemistry.cpp:2779 +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:2827 +msgid "" +"Cannot find the object to select (orphaned clone, offset, textpath, " +"flowed text?)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2833 +msgid "" +"The object you're trying to select is not visible (it is in <" +"defs>)" +msgstr "" + +#: ../src/selection-chemistry.cpp:2922 +msgid "Select path(s) to fill." +msgstr "" + +#: ../src/selection-chemistry.cpp:2940 +msgid "Select object(s) to convert to marker." +msgstr "" + +#: ../src/selection-chemistry.cpp:3015 +msgid "Objects to marker" +msgstr "" + +#: ../src/selection-chemistry.cpp:3040 +msgid "Select object(s) to convert to guides." +msgstr "" + +#: ../src/selection-chemistry.cpp:3063 +msgid "Objects to guides" +msgstr "" + +#: ../src/selection-chemistry.cpp:3099 +msgid "Select objects to convert to symbol." +msgstr "" + +#: ../src/selection-chemistry.cpp:3202 +msgid "Group to symbol" +msgstr "" + +#: ../src/selection-chemistry.cpp:3221 +msgid "Select a symbol to extract objects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3230 +msgid "Select only one symbol in Symbol dialog to convert to group." +msgstr "" + +#: ../src/selection-chemistry.cpp:3288 +msgid "Group from symbol" +msgstr "" + +#: ../src/selection-chemistry.cpp:3306 +msgid "Select object(s) to convert to pattern." +msgstr "" + +#: ../src/selection-chemistry.cpp:3405 +msgid "Objects to pattern" +msgstr "" + +#: ../src/selection-chemistry.cpp:3421 +msgid "Select an object with pattern fill to extract objects from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3482 +msgid "No pattern fills in the selection." +msgstr "" + +#: ../src/selection-chemistry.cpp:3485 +msgid "Pattern to objects" +msgstr "" + +#: ../src/selection-chemistry.cpp:3576 +msgid "Select object(s) to make a bitmap copy." +msgstr "" + +#: ../src/selection-chemistry.cpp:3580 +msgid "Rendering bitmap..." +msgstr "" + +#: ../src/selection-chemistry.cpp:3767 +msgid "Create bitmap" +msgstr "" + +#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 +msgid "Select object(s) to create clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:3885 +msgid "Create Clip Group" +msgstr "" + +#: ../src/selection-chemistry.cpp:3914 +msgid "Select mask object and object(s) to apply clippath or mask to." +msgstr "" + +#: ../src/selection-chemistry.cpp:4095 +msgid "Set clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:4097 +msgid "Set mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:4112 +msgid "Select object(s) to remove clippath or mask from." +msgstr "" + +#: ../src/selection-chemistry.cpp:4232 +msgid "Release clipping path" +msgstr "" + +#: ../src/selection-chemistry.cpp:4234 +msgid "Release mask" +msgstr "" + +#: ../src/selection-chemistry.cpp:4253 +msgid "Select object(s) to fit canvas to." +msgstr "" + +#. Fit Page +#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 +msgid "Fit Page to Selection" +msgstr "" + +#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 +msgid "Fit Page to Drawing" +msgstr "" + +#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 +msgid "Fit Page to Selection or Drawing" +msgstr "" + +#: ../src/selection-describer.cpp:138 +msgid "root" +msgstr "" + +#: ../src/selection-describer.cpp:140 ../src/widgets/ege-paint-def.cpp:66 +#: ../src/widgets/ege-paint-def.cpp:90 +msgid "none" +msgstr "" + +#: ../src/selection-describer.cpp:152 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:154 +#, c-format +msgid "layer %s" +msgstr "" + +#: ../src/selection-describer.cpp:165 +#, c-format +msgid "%s" +msgstr "" + +#: ../src/selection-describer.cpp:175 +#, c-format +msgid " in %s" +msgstr "" + +#: ../src/selection-describer.cpp:177 +msgid " hidden in definitions" +msgstr "" + +#: ../src/selection-describer.cpp:179 +#, c-format +msgid " in group %s (%s)" +msgstr "" + +#: ../src/selection-describer.cpp:181 +#, c-format +msgid " in unnamed group (%s)" +msgstr "" + +#: ../src/selection-describer.cpp:183 +#, c-format +msgid " in %i parent (%s)" +msgid_plural " in %i parents (%s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:186 +#, c-format +msgid " in %i layer" +msgid_plural " in %i layers" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:198 +msgid "Convert symbol to group to edit" +msgstr "" + +#: ../src/selection-describer.cpp:202 +msgid "Remove from symbols tray to edit symbol" +msgstr "" + +#: ../src/selection-describer.cpp:208 +msgid "Use Shift+D to look up original" +msgstr "" + +#: ../src/selection-describer.cpp:214 +msgid "Use Shift+D to look up path" +msgstr "" + +#: ../src/selection-describer.cpp:220 +msgid "Use Shift+D to look up frame" +msgstr "" + +#: ../src/selection-describer.cpp:236 +#, c-format +msgid "%i objects selected of type %s" +msgid_plural "%i objects selected of types %s" +msgstr[0] "" +msgstr[1] "" + +#: ../src/selection-describer.cpp:246 +#, c-format +msgid "; %d filtered object " +msgid_plural "; %d filtered objects " +msgstr[0] "" +msgstr[1] "" + +#: ../src/seltrans-handles.cpp:9 +msgid "" +"Squeeze or stretch selection; with Ctrl to scale uniformly; " +"with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans-handles.cpp:10 +msgid "" +"Scale selection; with Ctrl to scale uniformly; with Shift to scale around rotation center" +msgstr "" + +#: ../src/seltrans-handles.cpp:11 +msgid "" +"Skew selection; with Ctrl to snap angle; with Shift to " +"skew around the opposite side" +msgstr "" + +#: ../src/seltrans-handles.cpp:12 +msgid "" +"Rotate selection; with Ctrl to snap angle; with Shift " +"to rotate around the opposite corner" +msgstr "" + +#: ../src/seltrans-handles.cpp:13 +msgid "" +"Center of rotation and skewing: drag to reposition; scaling with " +"Shift also uses this center" +msgstr "" + +#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:981 +msgid "Skew" +msgstr "" + +#: ../src/seltrans.cpp:499 +msgid "Set center" +msgstr "" + +#: ../src/seltrans.cpp:574 +msgid "Stamp" +msgstr "" + +#: ../src/seltrans.cpp:723 +msgid "Reset center" +msgstr "" + +#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#, 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 +#, 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:1274 +#, c-format +msgid "Rotate: %0.2f°; with Ctrl to snap angle" +msgstr "" + +#: ../src/seltrans.cpp:1311 +#, c-format +msgid "Move center to %s, %s" +msgstr "" + +#: ../src/seltrans.cpp:1465 +#, c-format +msgid "" +"Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " +"with Shift to disable snapping" +msgstr "" + +#: ../src/shortcuts.cpp:226 +#, c-format +msgid "Keyboard directory (%s) is unavailable." +msgstr "" + +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1298 +#: ../src/ui/dialog/export.cpp:1332 +msgid "Select a filename for exporting" +msgstr "" + +#: ../src/shortcuts.cpp:370 +msgid "Select a file to import" +msgstr "" + +#: ../src/sp-anchor.cpp:125 +#, c-format +msgid "to %s" +msgstr "" + +#: ../src/sp-anchor.cpp:129 +msgid "without URI" +msgstr "" + +#: ../src/sp-ellipse.cpp:373 +msgid "Segment" +msgstr "" + +#: ../src/sp-ellipse.cpp:375 +msgid "Arc" +msgstr "" + +#. Ellipse +#: ../src/sp-ellipse.cpp:378 ../src/sp-ellipse.cpp:385 +#: ../src/ui/dialog/inkscape-preferences.cpp:412 +#: ../src/widgets/pencil-toolbar.cpp:163 +msgid "Ellipse" +msgstr "" + +#: ../src/sp-ellipse.cpp:382 +msgid "Circle" +msgstr "" + +#. TRANSLATORS: "Flow region" is an area where text is allowed to flow +#: ../src/sp-flowregion.cpp:195 +msgid "Flow Region" +msgstr "" + +#. TRANSLATORS: A region "cut out of" a flow region; text is not allowed to flow inside the +#. * 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:348 +msgid "Flow Excluded Region" +msgstr "" + +#: ../src/sp-flowtext.cpp:290 +msgid "Flowed Text" +msgstr "" + +#: ../src/sp-flowtext.cpp:292 +msgid "Linked Flowed Text" +msgstr "" + +#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:381 +#: ../src/ui/tools/text-tool.cpp:1566 +msgid " [truncated]" +msgstr "" + +#: ../src/sp-flowtext.cpp:300 +#, c-format +msgid "(%d character%s)" +msgid_plural "(%d characters%s)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/sp-guide.cpp:256 +msgid "Create Guides Around the Page" +msgstr "" + +#: ../src/sp-guide.cpp:268 ../src/verbs.cpp:2549 +msgid "Delete All Guides" +msgstr "" + +#. Guide has probably been deleted and no longer has an attached namedview. +#: ../src/sp-guide.cpp:455 +msgid "Deleted" +msgstr "" + +#: ../src/sp-guide.cpp:464 +msgid "" +"Shift+drag to rotate, Ctrl+drag to move origin, Del to " +"delete" +msgstr "" + +#: ../src/sp-guide.cpp:468 +#, c-format +msgid "vertical, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:471 +#, c-format +msgid "horizontal, at %s" +msgstr "" + +#: ../src/sp-guide.cpp:476 +#, c-format +msgid "at %d degrees, through (%s,%s)" +msgstr "" + +#: ../src/sp-image.cpp:526 +msgid "embedded" +msgstr "" + +#: ../src/sp-image.cpp:534 +#, c-format +msgid "[bad reference]: %s" +msgstr "" + +#: ../src/sp-image.cpp:535 +#, c-format +msgid "%d × %d: %s" +msgstr "" + +#: ../src/sp-item-group.cpp:332 +msgid "Group" +msgstr "" + +#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#, c-format +msgid "of %d object" +msgstr "" + +#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#, c-format +msgid "of %d objects" +msgstr "" + +#: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 +msgid "Object" +msgstr "" + +#: ../src/sp-item.cpp:1063 +#, c-format +msgid "%s; clipped" +msgstr "" + +#: ../src/sp-item.cpp:1069 +#, c-format +msgid "%s; masked" +msgstr "" + +#: ../src/sp-item.cpp:1079 +#, c-format +msgid "%s; filtered (%s)" +msgstr "" + +#: ../src/sp-item.cpp:1081 +#, c-format +msgid "%s; filtered" +msgstr "" + +#: ../src/sp-line.cpp:126 +msgid "Line" +msgstr "" + +#: ../src/sp-lpe-item.cpp:260 +msgid "An exception occurred during execution of the Path Effect." +msgstr "" + +#: ../src/sp-offset.cpp:339 +msgid "Linked Offset" +msgstr "" + +#: ../src/sp-offset.cpp:341 +msgid "Dynamic Offset" +msgstr "" + +#. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign +#: ../src/sp-offset.cpp:347 +#, c-format +msgid "%s by %f pt" +msgstr "" + +#: ../src/sp-offset.cpp:348 +msgid "outset" +msgstr "" + +#: ../src/sp-offset.cpp:348 +msgid "inset" +msgstr "" + +#: ../src/sp-path.cpp:70 +msgid "Path" +msgstr "" + +#: ../src/sp-path.cpp:95 +#, c-format +msgid ", path effect: %s" +msgstr "" + +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i node%s" +msgstr "" + +#: ../src/sp-path.cpp:98 +#, c-format +msgid "%i nodes%s" +msgstr "" + +#: ../src/sp-polygon.cpp:185 +msgid "Polygon" +msgstr "" + +#: ../src/sp-polyline.cpp:131 +msgid "Polyline" +msgstr "" + +#. Rectangle +#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:402 +msgid "Rectangle" +msgstr "" + +#. Spiral +#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:420 +#: ../share/extensions/gcodetools_area.inx.h:11 +msgid "Spiral" +msgstr "" + +#. TRANSLATORS: since turn count isn't an integer, please adjust the +#. string as needed to deal with an localized plural forms. +#: ../src/sp-spiral.cpp:236 +#, c-format +msgid "with %3f turns" +msgstr "" + +#. Star +#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/widgets/star-toolbar.cpp:471 +msgid "Star" +msgstr "" + +#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:464 +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:264 +#, c-format +msgid "with %d vertex" +msgstr "" + +#: ../src/sp-star.cpp:264 +#, c-format +msgid "with %d vertices" +msgstr "" + +#: ../src/sp-switch.cpp:76 +msgid "Conditional Group" +msgstr "" + +#: ../src/sp-text.cpp:365 ../src/verbs.cpp:348 +#: ../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 +#: ../share/extensions/text_extract.inx.h:14 +#: ../share/extensions/text_flipcase.inx.h:2 +#: ../share/extensions/text_lowercase.inx.h:2 +#: ../share/extensions/text_merge.inx.h:16 +#: ../share/extensions/text_randomcase.inx.h:2 +#: ../share/extensions/text_sentencecase.inx.h:2 +#: ../share/extensions/text_titlecase.inx.h:2 +#: ../share/extensions/text_uppercase.inx.h:2 +msgid "Text" +msgstr "" + +#: ../src/sp-text.cpp:385 +#, c-format +msgid "on path%s (%s, %s)" +msgstr "" + +#: ../src/sp-text.cpp:386 +#, c-format +msgid "%s (%s, %s)" +msgstr "" + +#: ../src/sp-tref.cpp:230 +msgid "Cloned Character Data" +msgstr "" + +#: ../src/sp-tref.cpp:246 +msgid " from " +msgstr "" + +#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:281 +msgid "[orphaned]" +msgstr "" + +#: ../src/sp-tspan.cpp:218 +msgid "Text Span" +msgstr "" + +#: ../src/sp-use.cpp:244 +msgid "Symbol" +msgstr "" + +#: ../src/sp-use.cpp:246 +msgid "Clone" +msgstr "" + +#: ../src/sp-use.cpp:254 ../src/sp-use.cpp:256 ../src/sp-use.cpp:258 +#, c-format +msgid "called %s" +msgstr "" + +#: ../src/sp-use.cpp:258 +msgid "Unnamed Symbol" +msgstr "" + +#. TRANSLATORS: Used for statusbar description for long chains: +#. * "Clone of: Clone of: ... in Layer 1". +#: ../src/sp-use.cpp:267 +msgid "..." +msgstr "" + +#: ../src/sp-use.cpp:276 +#, c-format +msgid "of: %s" +msgstr "" + +#: ../src/splivarot.cpp:70 ../src/splivarot.cpp:76 +msgid "Union" +msgstr "" + +#: ../src/splivarot.cpp:82 +msgid "Intersection" +msgstr "" + +#: ../src/splivarot.cpp:105 +msgid "Division" +msgstr "" + +#: ../src/splivarot.cpp:110 +msgid "Cut path" +msgstr "" + +#: ../src/splivarot.cpp:333 +msgid "Select at least 2 paths to perform a boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:337 +msgid "Select at least 1 path to perform a boolean union." +msgstr "" + +#: ../src/splivarot.cpp:345 +msgid "" +"Select exactly 2 paths to perform difference, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:361 ../src/splivarot.cpp:376 +msgid "" +"Unable to determine the z-order of the objects selected for " +"difference, XOR, division, or path cut." +msgstr "" + +#: ../src/splivarot.cpp:407 +msgid "" +"One of the objects is not a path, cannot perform boolean operation." +msgstr "" + +#: ../src/splivarot.cpp:1157 +msgid "Select stroked path(s) to convert stroke to path." +msgstr "" + +#: ../src/splivarot.cpp:1516 +msgid "Convert stroke to path" +msgstr "" + +#. TRANSLATORS: "to outline" means "to convert stroke to path" +#: ../src/splivarot.cpp:1519 +msgid "No stroked paths in the selection." +msgstr "" + +#: ../src/splivarot.cpp:1590 +msgid "Selected object is not a path, cannot inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +msgid "Create linked offset" +msgstr "" + +#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +msgid "Create dynamic offset" +msgstr "" + +#: ../src/splivarot.cpp:1772 +msgid "Select path(s) to inset/outset." +msgstr "" + +#: ../src/splivarot.cpp:1968 +msgid "Outset path" +msgstr "" + +#: ../src/splivarot.cpp:1968 +msgid "Inset path" +msgstr "" + +#: ../src/splivarot.cpp:1970 +msgid "No paths to inset/outset in the selection." +msgstr "" + +#: ../src/splivarot.cpp:2132 +msgid "Simplifying paths (separately):" +msgstr "" + +#: ../src/splivarot.cpp:2134 +msgid "Simplifying paths:" +msgstr "" + +#: ../src/splivarot.cpp:2171 +#, c-format +msgid "%s %d of %d paths simplified..." +msgstr "" + +#: ../src/splivarot.cpp:2184 +#, c-format +msgid "%d paths simplified." +msgstr "" + +#: ../src/splivarot.cpp:2198 +msgid "Select path(s) to simplify." +msgstr "" + +#: ../src/splivarot.cpp:2214 +msgid "No paths to simplify in the selection." +msgstr "" + +#: ../src/text-chemistry.cpp:94 +msgid "Select a text and a path to put text on path." +msgstr "" + +#: ../src/text-chemistry.cpp:99 +msgid "" +"This text object is already put on a path. Remove it from the path " +"first. Use Shift+D to look up its path." +msgstr "" + +#. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it +#: ../src/text-chemistry.cpp:105 +msgid "" +"You cannot put text on a rectangle in this version. Convert rectangle to " +"path first." +msgstr "" + +#: ../src/text-chemistry.cpp:115 +msgid "The flowed text(s) must be visible in order to be put on a path." +msgstr "" + +#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2571 +msgid "Put text on path" +msgstr "" + +#: ../src/text-chemistry.cpp:197 +msgid "Select a text on path to remove it from path." +msgstr "" + +#: ../src/text-chemistry.cpp:218 +msgid "No texts-on-paths in the selection." +msgstr "" + +#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 +msgid "Remove text from path" +msgstr "" + +#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +msgid "Select text(s) to remove kerns from." +msgstr "" + +#: ../src/text-chemistry.cpp:286 +msgid "Remove manual kerns" +msgstr "" + +#: ../src/text-chemistry.cpp:306 +msgid "" +"Select a text and one or more paths or shapes to flow text " +"into frame." +msgstr "" + +#: ../src/text-chemistry.cpp:376 +msgid "Flow text into shape" +msgstr "" + +#: ../src/text-chemistry.cpp:398 +msgid "Select a flowed text to unflow it." +msgstr "" + +#: ../src/text-chemistry.cpp:472 +msgid "Unflow flowed text" +msgstr "" + +#: ../src/text-chemistry.cpp:484 +msgid "Select flowed text(s) to convert." +msgstr "" + +#: ../src/text-chemistry.cpp:502 +msgid "The flowed text(s) must be visible in order to be converted." +msgstr "" + +#: ../src/text-chemistry.cpp:530 +msgid "Convert flowed text to text" +msgstr "" + +#: ../src/text-chemistry.cpp:535 +msgid "No flowed text(s) to convert in the selection." +msgstr "" + +#: ../src/text-editing.cpp:44 +msgid "You cannot edit cloned character data." +msgstr "" + +#: ../src/trace/potrace/inkscape-potrace.cpp:512 +#: ../src/trace/potrace/inkscape-potrace.cpp:575 +msgid "Trace: %1. %2 nodes" +msgstr "" + +#: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 +#: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 +#: ../src/ui/dialog/pixelartdialog.cpp:370 +#: ../src/ui/dialog/pixelartdialog.cpp:402 +msgid "Select an image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:94 +msgid "Select only one image to trace" +msgstr "" + +#: ../src/trace/trace.cpp:112 +msgid "Select one image and one or more shapes above it" +msgstr "" + +#: ../src/trace/trace.cpp:216 +msgid "Trace: No active desktop" +msgstr "" + +#: ../src/trace/trace.cpp:313 +msgid "Invalid SIOX result" +msgstr "" + +#: ../src/trace/trace.cpp:406 +msgid "Trace: No active document" +msgstr "" + +#: ../src/trace/trace.cpp:438 +msgid "Trace: Image has no bitmap data" +msgstr "" + +#: ../src/trace/trace.cpp:445 +msgid "Trace: Starting trace..." +msgstr "" + +#. ## inform the document, so we can undo +#: ../src/trace/trace.cpp:548 +msgid "Trace bitmap" +msgstr "" + +#: ../src/trace/trace.cpp:552 +#, c-format +msgid "Trace: Done. %ld nodes created" +msgstr "" + +#. check whether something is selected +#: ../src/ui/clipboard.cpp:262 +msgid "Nothing was copied." +msgstr "" + +#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 +#: ../src/ui/clipboard.cpp:634 +msgid "Nothing on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:451 +msgid "Select object(s) to paste style to." +msgstr "" + +#: ../src/ui/clipboard.cpp:462 ../src/ui/clipboard.cpp:479 +msgid "No style on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:504 +msgid "Select object(s) to paste size to." +msgstr "" + +#: ../src/ui/clipboard.cpp:511 +msgid "No size on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:567 +msgid "Select object(s) to paste live path effect to." +msgstr "" + +#. no_effect: +#: ../src/ui/clipboard.cpp:592 +msgid "No effect on the clipboard." +msgstr "" + +#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 +msgid "Clipboard does not contain a path." +msgstr "" + +#. * +#. * Constructor +#. +#: ../src/ui/dialog/aboutbox.cpp:80 +msgid "About Inkscape" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:91 +msgid "_Splash" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:95 +msgid "_Authors" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:97 +msgid "_Translators" +msgstr "" + +#: ../src/ui/dialog/aboutbox.cpp:99 +msgid "_License" +msgstr "" + +#. 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. +#. +#. N.B. about.svg changes once per release. (We should probably rename +#. the original to about-0.40.svg etc. as soon as we have a translation. +#. If we do so, then add an item to release-checklist saying that the +#. string here should be changed.) +#. FIXME? INKSCAPE_SCREENSDIR and "about.svg" are in UTF-8, not the +#. native filename encoding... and the filename passed to sp_document_new +#. should be in UTF-*8.. +#: ../src/ui/dialog/aboutbox.cpp:166 +msgid "about.svg" +msgstr "" + +#. TRANSLATORS: Put here your name (and other national contributors') +#. one per line in the form of: name surname (email). Use \n for newline. +#: ../src/ui/dialog/aboutbox.cpp:426 +msgid "translator-credits" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:171 +#: ../src/ui/dialog/align-and-distribute.cpp:851 +msgid "Align" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:341 +#: ../src/ui/dialog/align-and-distribute.cpp:852 +msgid "Distribute" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:420 +msgid "Minimum horizontal gap (in px units) between bounding boxes" +msgstr "" + +#. TRANSLATORS: "H:" stands for horizontal gap +#: ../src/ui/dialog/align-and-distribute.cpp:422 +msgctxt "Gap" +msgid "_H:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:430 +msgid "Minimum vertical gap (in px units) between bounding boxes" +msgstr "" + +#. TRANSLATORS: Vertical gap +#: ../src/ui/dialog/align-and-distribute.cpp:432 +msgctxt "Gap" +msgid "_V:" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:467 +#: ../src/ui/dialog/align-and-distribute.cpp:854 +#: ../src/widgets/connector-toolbar.cpp:411 +msgid "Remove overlaps" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:498 +#: ../src/widgets/connector-toolbar.cpp:240 +msgid "Arrange connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:591 +msgid "Exchange Positions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:625 +msgid "Unclump" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:697 +msgid "Randomize positions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:800 +msgid "Distribute text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:823 +msgid "Align text baselines" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:853 +msgid "Rearrange" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:855 +#: ../src/widgets/toolbox.cpp:1729 +msgid "Nodes" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:869 +msgid "Relative to: " +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:870 +msgid "_Treat selection as group: " +msgstr "" + +#. Align +#: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 +#: ../src/verbs.cpp:3025 +msgid "Align right edges of objects to the left edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:879 ../src/verbs.cpp:3026 +#: ../src/verbs.cpp:3027 +msgid "Align left edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 +#: ../src/verbs.cpp:3029 +msgid "Center on vertical axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 +#: ../src/verbs.cpp:3031 +msgid "Align right sides" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 +#: ../src/verbs.cpp:3033 +msgid "Align left edges of objects to the right edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:891 ../src/verbs.cpp:3034 +#: ../src/verbs.cpp:3035 +msgid "Align bottom edges of objects to the top edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:894 ../src/verbs.cpp:3036 +#: ../src/verbs.cpp:3037 +msgid "Align top edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 +#: ../src/verbs.cpp:3039 +msgid "Center on horizontal axis" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 +#: ../src/verbs.cpp:3041 +msgid "Align bottom edges" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 +#: ../src/verbs.cpp:3043 +msgid "Align top edges of objects to the bottom edge of the anchor" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:908 +msgid "Align baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:911 +msgid "Align baselines of texts" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:916 +msgid "Make horizontal gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:920 +msgid "Distribute left edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:923 +msgid "Distribute centers equidistantly horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:926 +msgid "Distribute right edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:930 +msgid "Make vertical gaps between objects equal" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:934 +msgid "Distribute top edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:937 +msgid "Distribute centers equidistantly vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:940 +msgid "Distribute bottom edges equidistantly" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:945 +msgid "Distribute baseline anchors of texts horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:948 +msgid "Distribute baselines of texts vertically" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:954 +#: ../src/widgets/connector-toolbar.cpp:373 +msgid "Nicely arrange selected connector network" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:957 +msgid "Exchange positions of selected objects - selection order" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:960 +msgid "Exchange positions of selected objects - stacking order" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:963 +msgid "Exchange positions of selected objects - clockwise rotate" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:968 +msgid "Randomize centers in both dimensions" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:971 +msgid "Unclump objects: try to equalize edge-to-edge distances" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:976 +msgid "" +"Move objects as little as possible so that their bounding boxes do not " +"overlap" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:984 +msgid "Align selected nodes to a common horizontal line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:987 +msgid "Align selected nodes to a common vertical line" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:990 +msgid "Distribute selected nodes horizontally" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:993 +msgid "Distribute selected nodes vertically" +msgstr "" + +#. Rest of the widgetry +#: ../src/ui/dialog/align-and-distribute.cpp:998 +msgid "Last selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:999 +msgid "First selected" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1000 +msgid "Biggest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1001 +msgid "Smallest object" +msgstr "" + +#: ../src/ui/dialog/align-and-distribute.cpp:1004 +msgid "Selection Area" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:40 +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:138 +msgid "Edit profile" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:53 +msgid "Profile name:" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:80 +msgid "Save" +msgstr "" + +#: ../src/ui/dialog/calligraphic-profile-rename.cpp:134 +msgid "Add profile" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:110 +msgid "_Symmetry" +msgstr "" + +#. TRANSLATORS: "translation" means "shift" / "displacement" here. +#: ../src/ui/dialog/clonetiler.cpp:122 +msgid "P1: simple translation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:123 +msgid "P2: 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:124 +msgid "PM: reflection" +msgstr "" + +#. TRANSLATORS: "glide reflection" is a reflection and a translation combined. +#. For more info, see http://mathforum.org/sum95/suzanne/symsusan.html +#: ../src/ui/dialog/clonetiler.cpp:127 +msgid "PG: glide reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:128 +msgid "CM: reflection + glide reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:129 +msgid "PMM: reflection + reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:130 +msgid "PMG: reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:131 +msgid "PGG: glide reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:132 +msgid "CMM: reflection + reflection + 180° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:133 +msgid "P4: 90° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:134 +msgid "P4M: 90° rotation + 45° reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:135 +msgid "P4G: 90° rotation + 90° reflection" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:136 +msgid "P3: 120° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:137 +msgid "P31M: reflection + 120° rotation, dense" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:138 +msgid "P3M1: reflection + 120° rotation, sparse" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:139 +msgid "P6: 60° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:140 +msgid "P6M: reflection + 60° rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:160 +msgid "Select one of the 17 symmetry groups for the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:178 +msgid "S_hift" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) horizontally by this amount +#: ../src/ui/dialog/clonetiler.cpp:188 +#, no-c-format +msgid "Shift X:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:196 +#, no-c-format +msgid "Horizontal shift per row (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:204 +#, no-c-format +msgid "Horizontal shift per column (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:210 +msgid "Randomize the horizontal shift by this percentage" +msgstr "" + +#. TRANSLATORS: "shift" means: the tiles will be shifted (offset) vertically by this amount +#: ../src/ui/dialog/clonetiler.cpp:220 +#, no-c-format +msgid "Shift Y:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:228 +#, no-c-format +msgid "Vertical shift per row (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:236 +#, no-c-format +msgid "Vertical shift per column (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:243 +msgid "Randomize the vertical shift by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:251 ../src/ui/dialog/clonetiler.cpp:397 +msgid "Exponent:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:258 +msgid "Whether rows are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:265 +msgid "Whether columns are spaced evenly (1), converge (<1) or diverge (>1)" +msgstr "" + +#. TRANSLATORS: "Alternate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:273 ../src/ui/dialog/clonetiler.cpp:437 +#: ../src/ui/dialog/clonetiler.cpp:513 ../src/ui/dialog/clonetiler.cpp:586 +#: ../src/ui/dialog/clonetiler.cpp:632 ../src/ui/dialog/clonetiler.cpp:759 +msgid "Alternate:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:279 +msgid "Alternate the sign of shifts for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:284 +msgid "Alternate the sign of shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:291 ../src/ui/dialog/clonetiler.cpp:455 +#: ../src/ui/dialog/clonetiler.cpp:531 +msgid "Cumulate:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:297 +msgid "Cumulate the shifts for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:302 +msgid "Cumulate the shifts for each column" +msgstr "" + +#. TRANSLATORS: "Cumulate" is a verb here +#: ../src/ui/dialog/clonetiler.cpp:309 +msgid "Exclude tile:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:315 +msgid "Exclude tile height in shift" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:320 +msgid "Exclude tile width in shift" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:329 +msgid "Sc_ale" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:337 +msgid "Scale X:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:345 +#, no-c-format +msgid "Horizontal scale per row (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:353 +#, no-c-format +msgid "Horizontal scale per column (in % of tile width)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:359 +msgid "Randomize the horizontal scale by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:367 +msgid "Scale Y:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:375 +#, no-c-format +msgid "Vertical scale per row (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:383 +#, no-c-format +msgid "Vertical scale per column (in % of tile height)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:389 +msgid "Randomize the vertical scale by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:403 +msgid "Whether row scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:409 +msgid "Whether column scaling is uniform (1), converge (<1) or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:417 +msgid "Base:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:423 ../src/ui/dialog/clonetiler.cpp:429 +msgid "" +"Base for a logarithmic spiral: not used (0), converge (<1), or diverge (>1)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:443 +msgid "Alternate the sign of scales for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:448 +msgid "Alternate the sign of scales for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:461 +msgid "Cumulate the scales for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:466 +msgid "Cumulate the scales for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:475 +msgid "_Rotation" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:483 +msgid "Angle:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:491 +#, no-c-format +msgid "Rotate tiles by this angle for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:499 +#, no-c-format +msgid "Rotate tiles by this angle for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:505 +msgid "Randomize the rotation angle by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:519 +msgid "Alternate the rotation direction for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:524 +msgid "Alternate the rotation direction for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:537 +msgid "Cumulate the rotation for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:542 +msgid "Cumulate the rotation for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:551 +msgid "_Blur & opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:560 +msgid "Blur:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:566 +msgid "Blur tiles by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:572 +msgid "Blur tiles by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:578 +msgid "Randomize the tile blur by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:592 +msgid "Alternate the sign of blur change for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:597 +msgid "Alternate the sign of blur change for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:606 +msgid "Opacity:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:612 +msgid "Decrease tile opacity by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:618 +msgid "Decrease tile opacity by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:624 +msgid "Randomize the tile opacity by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:638 +msgid "Alternate the sign of opacity change for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:643 +msgid "Alternate the sign of opacity change for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:651 +msgid "Co_lor" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:661 +msgid "Initial color: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:665 +msgid "Initial color of tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:665 +msgid "" +"Initial color for clones (works only if the original has unset fill or " +"stroke)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:680 +msgid "H:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:686 +msgid "Change the tile hue by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:692 +msgid "Change the tile hue by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:698 +msgid "Randomize the tile hue by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:707 +msgid "S:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:713 +msgid "Change the color saturation by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:719 +msgid "Change the color saturation by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:725 +msgid "Randomize the color saturation by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:733 +msgid "L:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:739 +msgid "Change the color lightness by this percentage for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:745 +msgid "Change the color lightness by this percentage for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:751 +msgid "Randomize the color lightness by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:765 +msgid "Alternate the sign of color changes for each row" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:770 +msgid "Alternate the sign of color changes for each column" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:778 +msgid "_Trace" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:790 +msgid "Trace the drawing under the tiles" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:794 +msgid "" +"For each clone, pick a value from the drawing in that clone's location and " +"apply it to the clone" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:813 +msgid "1. Pick from the drawing:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:831 +msgid "Pick the visible color and opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:839 +msgid "Pick the total accumulated opacity" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:846 +msgid "R" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:847 +msgid "Pick the Red component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:854 +msgid "G" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:855 +msgid "Pick the Green component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:862 +msgid "B" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:863 +msgid "Pick the Blue component of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:870 +msgctxt "Clonetiler color hue" +msgid "H" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:871 +msgid "Pick the hue of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:878 +msgctxt "Clonetiler color saturation" +msgid "S" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:879 +msgid "Pick the saturation of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:886 +msgctxt "Clonetiler color lightness" +msgid "L" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:887 +msgid "Pick the lightness of the color" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:897 +msgid "2. Tweak the picked value:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:914 +msgid "Gamma-correct:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:918 +msgid "Shift the mid-range of the picked value upwards (>0) or downwards (<0)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:925 +msgid "Randomize:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:929 +msgid "Randomize the picked value by this percentage" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:936 +msgid "Invert:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:940 +msgid "Invert the picked value" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:946 +msgid "3. Apply the value to the clones':" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:961 +msgid "Presence" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:964 +msgid "" +"Each clone is created with the probability determined by the picked value in " +"that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:971 +msgid "Size" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:974 +msgid "Each clone's size is determined by the picked value in that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:984 +msgid "" +"Each clone is painted by the picked color (the original must have unset fill " +"or stroke)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:994 +msgid "Each clone's opacity is determined by the picked value in that point" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1042 +msgid "How many rows in the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1072 +msgid "How many columns in the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1117 +msgid "Width of the rectangle to be filled" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1150 +msgid "Height of the rectangle to be filled" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1167 +msgid "Rows, columns: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1168 +msgid "Create the specified number of rows and columns" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1177 +msgid "Width, height: " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1178 +msgid "Fill the specified width and height with the tiling" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1199 +msgid "Use saved size and position of the tile" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1202 +msgid "" +"Pretend that the size and position of the tile are the same as the last time " +"you tiled it (if any), instead of using the current size" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1236 +msgid " _Create " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1238 +msgid "Create and tile the clones of the selection" +msgstr "" + +#. TRANSLATORS: if a group of objects are "clumped" together, then they +#. are unevenly spread in the given amount of space - as shown in the +#. diagrams on the left in the following screenshot: +#. http://www.inkscape.org/screenshots/gallery/inkscape-0.42-CVS-tiles-unclump.png +#. So unclumping is the process of spreading a number of objects out more evenly. +#: ../src/ui/dialog/clonetiler.cpp:1258 +msgid " _Unclump " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1259 +msgid "Spread out clones to reduce clumping; can be applied repeatedly" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1265 +msgid " Re_move " +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1266 +msgid "Remove existing tiled clones of the selected object (siblings only)" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1283 +msgid " R_eset " +msgstr "" + +#. TRANSLATORS: "change" is a noun here +#: ../src/ui/dialog/clonetiler.cpp:1285 +msgid "" +"Reset all shifts, scales, rotates, opacity and color changes in the dialog " +"to zero" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1358 +msgid "Nothing selected." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1364 +msgid "More than one object selected." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1371 +#, c-format +msgid "Object has %d tiled clones." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:1376 +msgid "Object has no tiled clones." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2100 +msgid "Select one object whose tiled clones to unclump." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2122 +msgid "Unclump tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2151 +msgid "Select one object whose tiled clones to remove." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2176 +msgid "Delete tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2229 +msgid "" +"If you want to clone several objects, group them and clone the " +"group." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2238 +msgid "Creating tiled clones..." +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2654 +msgid "Create tiled clones" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2887 +msgid "Per row:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2905 +msgid "Per column:" +msgstr "" + +#: ../src/ui/dialog/clonetiler.cpp:2913 +msgid "Randomize:" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:131 +#, c-format +msgid "" +"Color: %s; Click to set fill, Shift+click to set stroke" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:509 +msgid "Change color definition" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove stroke color" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:679 +msgid "Remove fill color" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set stroke color to none" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:684 +msgid "Set fill color to none" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:702 +msgid "Set stroke color from swatch" +msgstr "" + +#: ../src/ui/dialog/color-item.cpp:702 +msgid "Set fill color from swatch" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:73 +msgid "Messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +msgid "_Clear" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +msgid "Capture log messages" +msgstr "" + +#: ../src/ui/dialog/debug.cpp:95 +msgid "Release log messages" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:88 +#: ../src/ui/dialog/document-properties.cpp:159 +msgid "Metadata" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:89 +#: ../src/ui/dialog/document-properties.cpp:160 +msgid "License" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:1007 +msgid "Dublin Core Entities" +msgstr "" + +#: ../src/ui/dialog/document-metadata.cpp:168 +#: ../src/ui/dialog/document-properties.cpp:1069 +msgid "License" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "Use antialiasing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:111 +msgid "If unset, no antialiasing will be done on the drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "Show page _border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:112 +msgid "If set, rectangular page border is shown" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "Border on _top of drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:113 +msgid "If set, border is always on top of the drawing" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:114 +msgid "_Show border shadow" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:114 +msgid "If set, page border shows a shadow on its right and lower side" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "Back_ground color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:115 +msgid "" +"Color of the page background. Note: transparency setting ignored while " +"editing but used when exporting to bitmap." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Border _color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Page border color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:116 +msgid "Color of the page border" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:117 +msgid "Display _units:" +msgstr "" + +#. --------------------------------------------------------------- +#. General snap options +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Show _guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:121 +msgid "Show or hide guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Guide co_lor:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:122 +msgid "Color of guidelines" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "_Highlight color:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Highlighted guideline color" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:123 +msgid "Color of a guideline when it is under mouse" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:125 +msgid "Snap _distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:125 +msgid "Snap only when _closer than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Always snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Snapping distance, in screen pixels, for snapping to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:126 +msgid "Always snap to objects, regardless of their distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:127 +msgid "" +"If set, objects only snap to another object when it's within the range " +"specified below" +msgstr "" + +#. Options for snapping to grids +#: ../src/ui/dialog/document-properties.cpp:130 +msgid "Snap d_istance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:130 +msgid "Snap only when c_loser than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Snapping distance, in screen pixels, for snapping to grid" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:131 +msgid "Always snap to grids, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:132 +msgid "" +"If set, objects only snap to a grid line when it's within the range " +"specified below" +msgstr "" + +#. Options for snapping to guides +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Snap dist_ance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:135 +msgid "Snap only when close_r than:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "Snapping distance, in screen pixels, for snapping to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:136 +msgid "Always snap to guides, regardless of the distance" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:137 +msgid "" +"If set, objects only snap to a guide when it's within the range specified " +"below" +msgstr "" + +#. --------------------------------------------------------------- +#: ../src/ui/dialog/document-properties.cpp:140 +msgid "Snap to clip paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:140 +msgid "When snapping to paths, then also try snapping to clip paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:141 +msgid "Snap to mask paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:141 +msgid "When snapping to paths, then also try snapping to mask paths" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:142 +msgid "Snap perpendicularly" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:142 +msgid "" +"When snapping to paths or guides, then also try snapping perpendicularly" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:143 +msgid "Snap tangentially" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:143 +msgid "When snapping to paths or guides, then also try snapping tangentially" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:146 +msgctxt "Grid" +msgid "_New" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:146 +msgid "Create new grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:147 +msgctxt "Grid" +msgid "_Remove" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:147 +msgid "Remove selected grid." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:154 +#: ../src/widgets/toolbox.cpp:1836 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2827 +msgid "Snap" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:158 +msgid "Scripting" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:322 +msgid "General" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:324 +msgid "Page Size" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:326 +msgid "Display" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:361 +msgid "Guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:379 +msgid "Snap to objects" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:381 +msgid "Snap to grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:383 +msgid "Snap to guides" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:385 +msgid "Miscellaneous" +msgstr "" + +#. TODO check if this next line was sometimes needed. It being there caused an assertion. +#. Inkscape::GC::release(defsRepr); +#. inform the document, so we can undo +#. Color Management +#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:3008 +msgid "Link Color Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:599 +msgid "Remove linked color profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:613 +msgid "Linked Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:615 +msgid "Available Color Profiles:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:617 +msgid "Link Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:626 +msgid "Unlink Profile" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:710 +msgid "Profile Name" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:746 +msgid "External scripts" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:747 +msgid "Embedded scripts" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:752 +msgid "External script files:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:754 +msgid "Add the current file name or browse for a file" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:763 +#: ../src/ui/dialog/document-properties.cpp:852 +#: ../src/ui/widget/selected-style.cpp:356 +msgid "Remove" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:833 +msgid "Filename" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:841 +msgid "Embedded script files:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:843 +msgid "New" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:922 +msgid "Script id" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:928 +msgid "Content:" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1045 +msgid "_Save as default" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1046 +msgid "Save this metadata as the default metadata" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1047 +msgid "Use _default" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1048 +msgid "Use the previously saved default metadata here" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1121 +msgid "Add external script..." +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1160 +msgid "Select a script to load" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1188 +msgid "Add embedded script..." +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1219 +msgid "Remove external script" +msgstr "" + +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1249 +msgid "Remove embedded script" +msgstr "" + +#. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); +#. inform the document, so we can undo +#: ../src/ui/dialog/document-properties.cpp:1346 +msgid "Edit embedded script" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1434 +msgid "Creation" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1435 +msgid "Defined grids" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1682 +msgid "Remove grid" +msgstr "" + +#: ../src/ui/dialog/document-properties.cpp:1770 +msgid "Changed default display unit" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2879 +msgid "_Page" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2883 +msgid "_Drawing" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2885 +msgid "_Selection" +msgstr "" + +#: ../src/ui/dialog/export.cpp:151 +msgid "_Custom" +msgstr "" + +#: ../src/ui/dialog/export.cpp:169 ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +#: ../share/extensions/render_gears.inx.h:6 +msgid "Units:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:171 +msgid "_Export As..." +msgstr "" + +#: ../src/ui/dialog/export.cpp:174 +msgid "B_atch export all selected objects" +msgstr "" + +#: ../src/ui/dialog/export.cpp:174 +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:176 +msgid "Hide a_ll except selected" +msgstr "" + +#: ../src/ui/dialog/export.cpp:176 +msgid "In the exported image, hide all objects except those that are selected" +msgstr "" + +#: ../src/ui/dialog/export.cpp:177 +msgid "Close when complete" +msgstr "" + +#: ../src/ui/dialog/export.cpp:177 +msgid "Once the export completes, close this dialog" +msgstr "" + +#: ../src/ui/dialog/export.cpp:179 +msgid "_Export" +msgstr "" + +#: ../src/ui/dialog/export.cpp:197 +msgid "Export area" +msgstr "" + +#: ../src/ui/dialog/export.cpp:236 +msgid "_x0:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:240 +msgid "x_1:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:244 +msgid "Wid_th:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:248 +msgid "_y0:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:252 +msgid "y_1:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:256 +msgid "Hei_ght:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:271 +msgid "Image size" +msgstr "" + +#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/export.cpp:300 +msgid "pixels at" +msgstr "" + +#: ../src/ui/dialog/export.cpp:295 +msgid "dp_i" +msgstr "" + +#: ../src/ui/dialog/export.cpp:300 ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "_Height:" +msgstr "" + +#: ../src/ui/dialog/export.cpp:308 +#: ../src/ui/dialog/inkscape-preferences.cpp:1443 +#: ../src/ui/dialog/inkscape-preferences.cpp:1447 +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 +msgid "dpi" +msgstr "" + +#: ../src/ui/dialog/export.cpp:316 +msgid "_Filename" +msgstr "" + +#: ../src/ui/dialog/export.cpp:358 +msgid "Export the bitmap file with these settings" +msgstr "" + +#: ../src/ui/dialog/export.cpp:611 +#, 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:927 +msgid "Export in progress" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1017 +msgid "No items selected." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1021 ../src/ui/dialog/export.cpp:1023 +msgid "Exporting %1 files" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1063 ../src/ui/dialog/export.cpp:1065 +#, c-format +msgid "Exporting file %s..." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1074 ../src/ui/dialog/export.cpp:1165 +#, c-format +msgid "Could not export to filename %s.\n" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1077 +#, c-format +msgid "Could not export to filename %s." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1092 +#, c-format +msgid "Successfully exported %d files from %d selected items." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1103 +msgid "You have to enter a filename." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1104 +msgid "You have to enter a filename" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1118 +msgid "The chosen area to be exported is invalid." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1119 +msgid "The chosen area to be exported is invalid" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1134 +#, 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:1148 ../src/ui/dialog/export.cpp:1150 +msgid "Exporting %1 (%2 x %3)" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1176 +#, c-format +msgid "Drawing exported to %s." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1180 +msgid "Export aborted." +msgstr "" + +#: ../src/ui/dialog/export.cpp:1301 ../src/ui/interface.cpp:1392 +#: ../src/widgets/desktop-widget.cpp:1122 +#: ../src/widgets/desktop-widget.cpp:1184 +msgid "_Cancel" +msgstr "" + +#: ../src/ui/dialog/export.cpp:1302 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2437 ../src/widgets/desktop-widget.cpp:1123 +msgid "_Save" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:81 +msgid "Information" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:310 +#: ../src/verbs.cpp:329 ../share/extensions/color_HSL_adjust.inx.h:11 +#: ../share/extensions/color_custom.inx.h:7 +#: ../share/extensions/color_randomize.inx.h:6 +#: ../share/extensions/dots.inx.h:7 +#: ../share/extensions/draw_from_triangle.inx.h:35 +#: ../share/extensions/dxf_input.inx.h:10 +#: ../share/extensions/dxf_outlines.inx.h:24 +#: ../share/extensions/gcodetools_about.inx.h:3 +#: ../share/extensions/gcodetools_area.inx.h:53 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:3 +#: ../share/extensions/gcodetools_dxf_points.inx.h:25 +#: ../share/extensions/gcodetools_engraving.inx.h:31 +#: ../share/extensions/gcodetools_graffiti.inx.h:42 +#: ../share/extensions/gcodetools_lathe.inx.h:46 +#: ../share/extensions/gcodetools_orientation_points.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:35 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:17 +#: ../share/extensions/gcodetools_tools_library.inx.h:12 +#: ../share/extensions/generate_voronoi.inx.h:5 +#: ../share/extensions/gimp_xcf.inx.h:7 +#: ../share/extensions/interp_att_g.inx.h:27 +#: ../share/extensions/jessyInk_autoTexts.inx.h:8 +#: ../share/extensions/jessyInk_effects.inx.h:13 +#: ../share/extensions/jessyInk_export.inx.h:7 +#: ../share/extensions/jessyInk_install.inx.h:2 +#: ../share/extensions/jessyInk_keyBindings.inx.h:44 +#: ../share/extensions/jessyInk_masterSlide.inx.h:5 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:6 +#: ../share/extensions/jessyInk_summary.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:12 +#: ../share/extensions/jessyInk_uninstall.inx.h:10 +#: ../share/extensions/jessyInk_video.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:7 +#: ../share/extensions/layout_nup.inx.h:24 +#: ../share/extensions/lindenmayer.inx.h:13 +#: ../share/extensions/lorem_ipsum.inx.h:6 +#: ../share/extensions/measure.inx.h:16 +#: ../share/extensions/pathalongpath.inx.h:16 +#: ../share/extensions/pathscatter.inx.h:18 +#: ../share/extensions/radiusrand.inx.h:8 ../share/extensions/split.inx.h:8 +#: ../share/extensions/voronoi2svg.inx.h:11 +#: ../share/extensions/web-set-att.inx.h:25 +#: ../share/extensions/web-transmit-att.inx.h:23 +#: ../share/extensions/webslicer_create_group.inx.h:11 +#: ../share/extensions/webslicer_export.inx.h:6 +msgid "Help" +msgstr "" + +#: ../src/ui/dialog/extension-editor.cpp:83 +msgid "Parameters" +msgstr "" + +#. Fill in the template +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:415 +msgid "No preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:519 +msgid "too large for preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:605 +msgid "Enable preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:755 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:768 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:772 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:775 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:783 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:814 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:282 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:413 +msgid "All Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:780 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:796 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:811 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:283 +msgid "All Inkscape Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:787 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:803 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:817 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:284 +msgid "All Images" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:790 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:806 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:820 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:285 +msgid "All Vectors" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:793 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:809 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:823 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 +msgid "All Bitmaps" +msgstr "" + +#. ###### File options +#. ###### Do we want the .xxx extension automatically added? +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1042 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 +msgid "Append filename extension automatically" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1215 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1468 +msgid "Guess from extension" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1487 +msgid "Left edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1488 +msgid "Top edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1489 +msgid "Right edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1490 +msgid "Bottom edge of source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1491 +msgid "Source width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1492 +msgid "Source height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1493 +msgid "Destination width" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1494 +msgid "Destination height" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1495 +msgid "Resolution (dots per inch)" +msgstr "" + +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1533 +msgid "Document" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:176 +#: ../src/widgets/desktop-widget.cpp:2000 +#: ../share/extensions/printing_marks.inx.h:18 +msgid "Selection" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1545 +msgctxt "Export dialog" +msgid "Custom" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1565 +msgid "Source" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1585 +msgid "Cairo" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1588 +msgid "Antialias" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 +msgid "All Executable Files" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 +msgid "Show Preview" +msgstr "" + +#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 +msgid "No file selected" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:62 +msgid "_Fill" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:63 +msgid "Stroke _paint" +msgstr "" + +#: ../src/ui/dialog/fill-and-stroke.cpp:64 +msgid "Stroke st_yle" +msgstr "" + +#. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor +#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +msgid "" +"This matrix determines a linear transform on color space. Each line affects " +"one of the color components. Each column determines how much of each color " +"component from the input is passed to the output. The last column does not " +"depend on input colors, so can be used to adjust a constant component value." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../share/extensions/grid_polar.inx.h:4 +msgctxt "Label" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +msgid "Image File" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +msgid "Selected SVG Element" +msgstr "" + +#. TODO: any image, not just svg +#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +msgid "Select an image to be used as feImage input" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +msgid "This SVG filter effect does not require any parameters." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +msgid "This SVG filter effect is not yet implemented in Inkscape." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +msgid "Slope" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +msgid "Intercept" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +msgid "Amplitude" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +msgid "Exponent" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +msgid "New transfer function type" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +msgid "Light Source:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +msgid "Direction angle for the light source on the XY plane, in degrees" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +msgid "Direction angle for the light source on the YZ plane, in degrees" +msgstr "" + +#. default x: +#. default y: +#. default z: +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +msgid "Location:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "X coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Y coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Z coordinate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +msgid "Points At" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Specular Exponent" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +msgid "Exponent value controlling the focus for the light source" +msgstr "" + +#. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +msgid "Cone Angle" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +msgid "" +"This is the angle between the spot light axis (i.e. the axis between the " +"light source and the point to which it is pointing at) and the spot light " +"cone. No light is projected outside this cone." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +msgid "New light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +msgid "_Duplicate" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +msgid "_Filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +msgid "R_ename" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +msgid "Rename filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +msgid "Apply filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +msgid "filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +msgid "Add filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +msgid "Duplicate filter" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +msgid "_Effect" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +msgid "Connections" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +msgid "Remove filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +msgid "Remove merge node" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +msgid "Reorder filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +msgid "Add Effect:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +msgid "No effect selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +msgid "No filter selected" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +msgid "Effect parameters" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +msgid "Filter General Settings" +msgstr "" + +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Coordinates:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "X coordinate of the left corners of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +msgid "Y coordinate of the upper corners of filter effects region" +msgstr "" + +#. default width: +#. default height: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Dimensions:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Width of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +msgid "Height of filter effects region" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +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 " +"convenience shortcuts to allow commonly used color operations to be " +"performed without specifying a complete matrix." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +msgid "Value(s):" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +msgid "R:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 +#: ../src/widgets/sp-color-icc-selector.cpp:334 +msgid "G:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +msgid "B:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +msgid "A:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +msgid "Operator:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +msgid "K1:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +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:2855 +msgid "K2:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +msgid "K3:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +msgid "K4:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "Size:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "width of the convolve matrix" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +msgid "height of the convolve matrix" +msgstr "" + +#. default x: +#. default y: +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/object-attributes.cpp:48 +msgid "Target:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +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:2861 +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:2863 +msgid "Kernel:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +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 " +"arrangements of values in this matrix result in various possible visual " +"effects. An identity matrix would lead to a motion blur effect (parallel to " +"the matrix diagonal) while a matrix filled with a constant non-zero value " +"would lead to a common blur effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +msgid "Divisor:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +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 " +"divisor that is the sum of all the matrix values tends to have an evening " +"effect on the overall color intensity of the result." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +msgid "Bias:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +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:2867 +msgid "Edge Mode:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +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:2868 +msgid "Preserve Alpha" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +msgid "If set, the alpha channel won't be altered by this filter primitive." +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +msgid "Diffuse Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Defines the color of the light source" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +msgid "Surface Scale:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +msgid "" +"This value amplifies the heights of the bump map defined by the input alpha " +"channel" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "Constant:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +msgid "This constant affects the Phong lighting model." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2908 +msgid "Kernel Unit Length:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +msgid "This defines the intensity of the displacement effect." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "X displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +msgid "Color component that controls the displacement in the X direction" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Y displacement:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +msgid "Color component that controls the displacement in the Y direction" +msgstr "" + +#. default: black +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "Flood Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +msgid "The whole filter region will be filled with this color." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "Standard Deviation:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +msgid "The standard deviation for the blur operation." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +msgid "" +"Erode: performs \"thinning\" of input image.\n" +"Dilate: performs \"fattenning\" of input image." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +msgid "Source of Image:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "Delta X:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +msgid "This is how far the input image gets shifted to the right" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "Delta Y:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +msgid "This is how far the input image gets shifted downwards" +msgstr "" + +#. default: white +#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +msgid "Specular Color:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../share/extensions/interp.inx.h:2 +msgid "Exponent:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +msgid "Exponent for specular term, larger is more \"shiny\"." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +msgid "" +"Indicates whether the filter primitive should perform a noise or turbulence " +"function." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +msgid "Base Frequency:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +msgid "Octaves:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "Seed:" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +msgid "The starting number for the pseudo random number generator." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +msgid "Add filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +msgid "" +"The feBlend filter primitive provides 4 image blending modes: screen, " +"multiply, darken and lighten." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +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:2956 +msgid "" +"The feComponentTransfer filter primitive manipulates the input's " +"color components (red, green, blue, and alpha) according to particular " +"transfer functions, allowing operations like brightness and contrast " +"adjustment, color balance, and thresholding." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +msgid "" +"The feComposite filter primitive composites two images using one of " +"the Porter-Duff blending modes or the arithmetic mode described in SVG " +"standard. Porter-Duff blending modes are essentially logical operations " +"between the corresponding pixel values of the images." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +msgid "" +"The feConvolveMatrix lets you specify a Convolution to be applied on " +"the image. Common effects created using convolution matrices are blur, " +"sharpening, embossing and edge detection. Note that while gaussian blur can " +"be created using this filter primitive, the special gaussian blur primitive " +"is faster and resolution-independent." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives create " +"\"embossed\" shadings. The input's alpha channel is used to provide depth " +"information: higher opacity areas are raised toward the viewer and lower " +"opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +msgid "" +"The feDisplacementMap filter primitive displaces the pixels in the " +"first input using the second input as a displacement map, that shows from " +"how far the pixel should come from. Classical examples are whirl and pinch " +"effects." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +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:2980 +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:2984 +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:2988 +msgid "" +"The feMerge filter primitive composites several temporary images " +"inside the filter primitive to a single image. It uses normal alpha " +"compositing for this. This is equivalent to using several feBlend primitives " +"in 'normal' mode or several feComposite primitives in 'over' mode." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +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:2996 +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:3000 +msgid "" +"The feDiffuseLighting and feSpecularLighting filter primitives " +"create \"embossed\" shadings. The input's alpha channel is used to provide " +"depth information: higher opacity areas are raised toward the viewer and " +"lower opacity areas recede away from the viewer." +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +msgid "" +"The feTile filter primitive tiles a region with its input graphic" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +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:3027 +msgid "Duplicate filter primitive" +msgstr "" + +#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +msgid "Set filter primitive attribute" +msgstr "" + +#: ../src/ui/dialog/find.cpp:72 +msgid "F_ind:" +msgstr "" + +#: ../src/ui/dialog/find.cpp:72 +msgid "Find objects by their content or properties (exact or partial match)" +msgstr "" + +#: ../src/ui/dialog/find.cpp:73 +msgid "R_eplace:" +msgstr "" + +#: ../src/ui/dialog/find.cpp:73 +msgid "Replace match with this value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:75 +msgid "_All" +msgstr "" + +#: ../src/ui/dialog/find.cpp:75 +msgid "Search in all layers" +msgstr "" + +#: ../src/ui/dialog/find.cpp:76 +msgid "Current _layer" +msgstr "" + +#: ../src/ui/dialog/find.cpp:76 +msgid "Limit search to the current layer" +msgstr "" + +#: ../src/ui/dialog/find.cpp:77 +msgid "Sele_ction" +msgstr "" + +#: ../src/ui/dialog/find.cpp:77 +msgid "Limit search to the current selection" +msgstr "" + +#: ../src/ui/dialog/find.cpp:78 +msgid "Search in text objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:79 +msgid "_Properties" +msgstr "" + +#: ../src/ui/dialog/find.cpp:79 +msgid "Search in object properties, styles, attributes and IDs" +msgstr "" + +#: ../src/ui/dialog/find.cpp:81 +msgid "Search in" +msgstr "" + +#: ../src/ui/dialog/find.cpp:82 +msgid "Scope" +msgstr "" + +#: ../src/ui/dialog/find.cpp:84 +msgid "Case sensiti_ve" +msgstr "" + +#: ../src/ui/dialog/find.cpp:84 +msgid "Match upper/lower case" +msgstr "" + +#: ../src/ui/dialog/find.cpp:85 +msgid "E_xact match" +msgstr "" + +#: ../src/ui/dialog/find.cpp:85 +msgid "Match whole objects only" +msgstr "" + +#: ../src/ui/dialog/find.cpp:86 +msgid "Include _hidden" +msgstr "" + +#: ../src/ui/dialog/find.cpp:86 +msgid "Include hidden objects in search" +msgstr "" + +#: ../src/ui/dialog/find.cpp:87 +msgid "Include loc_ked" +msgstr "" + +#: ../src/ui/dialog/find.cpp:87 +msgid "Include locked objects in search" +msgstr "" + +#: ../src/ui/dialog/find.cpp:89 +msgid "General" +msgstr "" + +#: ../src/ui/dialog/find.cpp:91 +msgid "_ID" +msgstr "" + +#: ../src/ui/dialog/find.cpp:91 +msgid "Search id name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:92 +msgid "Attribute _name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:92 +msgid "Search attribute name" +msgstr "" + +#: ../src/ui/dialog/find.cpp:93 +msgid "Attri_bute value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:93 +msgid "Search attribute value" +msgstr "" + +#: ../src/ui/dialog/find.cpp:94 +msgid "_Style" +msgstr "" + +#: ../src/ui/dialog/find.cpp:94 +msgid "Search style" +msgstr "" + +#: ../src/ui/dialog/find.cpp:95 +msgid "F_ont" +msgstr "" + +#: ../src/ui/dialog/find.cpp:95 +msgid "Search fonts" +msgstr "" + +#: ../src/ui/dialog/find.cpp:96 +msgid "Properties" +msgstr "" + +#: ../src/ui/dialog/find.cpp:98 +msgid "All types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:98 +msgid "Search all object types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:99 +msgid "Rectangles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:99 +msgid "Search rectangles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:100 +msgid "Ellipses" +msgstr "" + +#: ../src/ui/dialog/find.cpp:100 +msgid "Search ellipses, arcs, circles" +msgstr "" + +#: ../src/ui/dialog/find.cpp:101 +msgid "Stars" +msgstr "" + +#: ../src/ui/dialog/find.cpp:101 +msgid "Search stars and polygons" +msgstr "" + +#: ../src/ui/dialog/find.cpp:102 +msgid "Spirals" +msgstr "" + +#: ../src/ui/dialog/find.cpp:102 +msgid "Search spirals" +msgstr "" + +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 +msgid "Paths" +msgstr "" + +#: ../src/ui/dialog/find.cpp:103 +msgid "Search paths, lines, polylines" +msgstr "" + +#: ../src/ui/dialog/find.cpp:104 +msgid "Texts" +msgstr "" + +#: ../src/ui/dialog/find.cpp:104 +msgid "Search text objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:105 +msgid "Groups" +msgstr "" + +#: ../src/ui/dialog/find.cpp:105 +msgid "Search groups" +msgstr "" + +#. TRANSLATORS: "Clones" is a noun indicating type of object to find +#: ../src/ui/dialog/find.cpp:108 +msgctxt "Find dialog" +msgid "Clones" +msgstr "" + +#: ../src/ui/dialog/find.cpp:108 +msgid "Search clones" +msgstr "" + +#: ../src/ui/dialog/find.cpp:110 ../share/extensions/embedimage.inx.h:3 +#: ../share/extensions/extractimage.inx.h:5 +msgid "Images" +msgstr "" + +#: ../src/ui/dialog/find.cpp:110 +msgid "Search images" +msgstr "" + +#: ../src/ui/dialog/find.cpp:111 +msgid "Offsets" +msgstr "" + +#: ../src/ui/dialog/find.cpp:111 +msgid "Search offset objects" +msgstr "" + +#: ../src/ui/dialog/find.cpp:112 +msgid "Object types" +msgstr "" + +#: ../src/ui/dialog/find.cpp:115 +msgid "_Find" +msgstr "" + +#: ../src/ui/dialog/find.cpp:115 +msgid "Select all objects matching the selection criteria" +msgstr "" + +#: ../src/ui/dialog/find.cpp:116 +msgid "_Replace All" +msgstr "" + +#: ../src/ui/dialog/find.cpp:116 +msgid "Replace all matches" +msgstr "" + +#: ../src/ui/dialog/find.cpp:801 +msgid "Nothing to replace" +msgstr "" + +#. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed +#: ../src/ui/dialog/find.cpp:842 +#, c-format +msgid "%d object found (out of %d), %s match." +msgid_plural "%d objects found (out of %d), %s match." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/dialog/find.cpp:845 +msgid "exact" +msgstr "" + +#: ../src/ui/dialog/find.cpp:845 +msgid "partial" +msgstr "" + +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:848 +msgid "%1 match replaced" +msgid_plural "%1 matches replaced" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: "%1" is replaced with the number of matches +#: ../src/ui/dialog/find.cpp:852 +msgid "%1 object found" +msgid_plural "%1 objects found" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/dialog/find.cpp:866 +msgid "Replace text or property" +msgstr "" + +#: ../src/ui/dialog/find.cpp:870 +msgid "Nothing found" +msgstr "" + +#: ../src/ui/dialog/find.cpp:875 +msgid "No objects found" +msgstr "" + +#: ../src/ui/dialog/find.cpp:896 +msgid "Select an object type" +msgstr "" + +#: ../src/ui/dialog/find.cpp:914 +msgid "Select a property" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:87 +msgid "" +"\n" +"Some fonts are not available and have been substituted." +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:90 +msgid "Font substitution" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:109 +msgid "Select all the affected items" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:114 +msgid "Don't show this warning again" +msgstr "" + +#: ../src/ui/dialog/font-substitution.cpp:255 +msgid "Font '%1' substituted with '%2'" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 +msgid "all" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:61 +msgid "common" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:62 +msgid "inherited" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:63 ../src/ui/dialog/glyphs.cpp:165 +msgid "Arabic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:64 ../src/ui/dialog/glyphs.cpp:163 +msgid "Armenian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:65 ../src/ui/dialog/glyphs.cpp:172 +msgid "Bengali" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:66 ../src/ui/dialog/glyphs.cpp:254 +msgid "Bopomofo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:67 ../src/ui/dialog/glyphs.cpp:189 +msgid "Cherokee" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:68 ../src/ui/dialog/glyphs.cpp:242 +msgid "Coptic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:69 ../src/ui/dialog/glyphs.cpp:161 +#: ../share/extensions/hershey.inx.h:22 +msgid "Cyrillic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:70 +msgid "Deseret" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:71 ../src/ui/dialog/glyphs.cpp:171 +msgid "Devanagari" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:72 ../src/ui/dialog/glyphs.cpp:187 +msgid "Ethiopic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:73 ../src/ui/dialog/glyphs.cpp:185 +msgid "Georgian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:74 +msgid "Gothic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:75 +msgid "Greek" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:76 ../src/ui/dialog/glyphs.cpp:174 +msgid "Gujarati" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:77 ../src/ui/dialog/glyphs.cpp:173 +msgid "Gurmukhi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:78 +msgid "Han" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:79 +msgid "Hangul" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:80 ../src/ui/dialog/glyphs.cpp:164 +msgid "Hebrew" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:81 ../src/ui/dialog/glyphs.cpp:252 +msgid "Hiragana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:82 ../src/ui/dialog/glyphs.cpp:178 +msgid "Kannada" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:83 ../src/ui/dialog/glyphs.cpp:253 +msgid "Katakana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:84 ../src/ui/dialog/glyphs.cpp:197 +msgid "Khmer" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:85 ../src/ui/dialog/glyphs.cpp:182 +msgid "Lao" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:86 +msgid "Latin" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:87 ../src/ui/dialog/glyphs.cpp:179 +msgid "Malayalam" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:88 ../src/ui/dialog/glyphs.cpp:198 +msgid "Mongolian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:89 ../src/ui/dialog/glyphs.cpp:184 +msgid "Myanmar" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:90 ../src/ui/dialog/glyphs.cpp:191 +msgid "Ogham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:91 +msgid "Old Italic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:92 ../src/ui/dialog/glyphs.cpp:175 +msgid "Oriya" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:93 ../src/ui/dialog/glyphs.cpp:192 +msgid "Runic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:94 ../src/ui/dialog/glyphs.cpp:180 +msgid "Sinhala" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:95 ../src/ui/dialog/glyphs.cpp:166 +msgid "Syriac" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:96 ../src/ui/dialog/glyphs.cpp:176 +msgid "Tamil" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:97 ../src/ui/dialog/glyphs.cpp:177 +msgid "Telugu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:98 ../src/ui/dialog/glyphs.cpp:168 +msgid "Thaana" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:99 ../src/ui/dialog/glyphs.cpp:181 +msgid "Thai" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:100 ../src/ui/dialog/glyphs.cpp:183 +msgid "Tibetan" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:101 +msgid "Canadian Aboriginal" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:102 +msgid "Yi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:103 ../src/ui/dialog/glyphs.cpp:193 +msgid "Tagalog" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:104 ../src/ui/dialog/glyphs.cpp:194 +msgid "Hanunoo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:105 ../src/ui/dialog/glyphs.cpp:195 +msgid "Buhid" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:106 ../src/ui/dialog/glyphs.cpp:196 +msgid "Tagbanwa" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:107 +msgid "Braille" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:108 +msgid "Cypriot" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:109 ../src/ui/dialog/glyphs.cpp:200 +msgid "Limbu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:110 +msgid "Osmanya" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:111 +msgid "Shavian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:112 +msgid "Linear B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:113 ../src/ui/dialog/glyphs.cpp:201 +msgid "Tai Le" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:114 +msgid "Ugaritic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:115 ../src/ui/dialog/glyphs.cpp:202 +msgid "New Tai Lue" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:116 ../src/ui/dialog/glyphs.cpp:204 +msgid "Buginese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:117 ../src/ui/dialog/glyphs.cpp:240 +msgid "Glagolitic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:118 ../src/ui/dialog/glyphs.cpp:244 +msgid "Tifinagh" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:119 ../src/ui/dialog/glyphs.cpp:273 +msgid "Syloti Nagri" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:120 +msgid "Old Persian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:121 +msgid "Kharoshthi" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:122 +msgid "unassigned" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:123 ../src/ui/dialog/glyphs.cpp:206 +msgid "Balinese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:124 +msgid "Cuneiform" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:125 +msgid "Phoenician" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:126 ../src/ui/dialog/glyphs.cpp:275 +msgid "Phags-pa" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:127 +msgid "N'Ko" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:128 ../src/ui/dialog/glyphs.cpp:278 +msgid "Kayah Li" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:129 ../src/ui/dialog/glyphs.cpp:208 +msgid "Lepcha" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:130 ../src/ui/dialog/glyphs.cpp:279 +msgid "Rejang" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:131 ../src/ui/dialog/glyphs.cpp:207 +msgid "Sundanese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:132 ../src/ui/dialog/glyphs.cpp:276 +msgid "Saurashtra" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:133 ../src/ui/dialog/glyphs.cpp:282 +msgid "Cham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:134 ../src/ui/dialog/glyphs.cpp:209 +msgid "Ol Chiki" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:135 ../src/ui/dialog/glyphs.cpp:268 +msgid "Vai" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:136 +msgid "Carian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:137 +msgid "Lycian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:138 +msgid "Lydian" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:153 +msgid "Basic Latin" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:154 +msgid "Latin-1 Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:155 +msgid "Latin Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:156 +msgid "Latin Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:157 +msgid "IPA Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:158 +msgid "Spacing Modifier Letters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:159 +msgid "Combining Diacritical Marks" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:160 +msgid "Greek and Coptic" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:162 +msgid "Cyrillic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:167 +msgid "Arabic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:169 +msgid "NKo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:170 +msgid "Samaritan" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:186 +msgid "Hangul Jamo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:188 +msgid "Ethiopic Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:190 +msgid "Unified Canadian Aboriginal Syllabics" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:199 +msgid "Unified Canadian Aboriginal Syllabics Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:203 +msgid "Khmer Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:205 +msgid "Tai Tham" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:210 +msgid "Vedic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:211 +msgid "Phonetic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:212 +msgid "Phonetic Extensions Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:213 +msgid "Combining Diacritical Marks Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:214 +msgid "Latin Extended Additional" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:215 +msgid "Greek Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:216 +msgid "General Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:217 +msgid "Superscripts and Subscripts" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:218 +msgid "Currency Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:219 +msgid "Combining Diacritical Marks for Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:220 +msgid "Letterlike Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:221 +msgid "Number Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:222 +msgid "Arrows" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:223 +msgid "Mathematical Operators" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:224 +msgid "Miscellaneous Technical" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:225 +msgid "Control Pictures" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:226 +msgid "Optical Character Recognition" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:227 +msgid "Enclosed Alphanumerics" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:228 +msgid "Box Drawing" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:229 +msgid "Block Elements" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:230 +msgid "Geometric Shapes" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:231 +msgid "Miscellaneous Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:232 +msgid "Dingbats" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:233 +msgid "Miscellaneous Mathematical Symbols-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:234 +msgid "Supplemental Arrows-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:235 +msgid "Braille Patterns" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:236 +msgid "Supplemental Arrows-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:237 +msgid "Miscellaneous Mathematical Symbols-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:238 +msgid "Supplemental Mathematical Operators" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:239 +msgid "Miscellaneous Symbols and Arrows" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:241 +msgid "Latin Extended-C" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:243 +msgid "Georgian Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:245 +msgid "Ethiopic Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:246 +msgid "Cyrillic Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:247 +msgid "Supplemental Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:248 +msgid "CJK Radicals Supplement" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:249 +msgid "Kangxi Radicals" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:250 +msgid "Ideographic Description Characters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:251 +msgid "CJK Symbols and Punctuation" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:255 +msgid "Hangul Compatibility Jamo" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:256 +msgid "Kanbun" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:257 +msgid "Bopomofo Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:258 +msgid "CJK Strokes" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:259 +msgid "Katakana Phonetic Extensions" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:260 +msgid "Enclosed CJK Letters and Months" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:261 +msgid "CJK Compatibility" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:262 +msgid "CJK Unified Ideographs Extension A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:263 +msgid "Yijing Hexagram Symbols" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:264 +msgid "CJK Unified Ideographs" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:265 +msgid "Yi Syllables" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:266 +msgid "Yi Radicals" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:267 +msgid "Lisu" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:269 +msgid "Cyrillic Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:270 +msgid "Bamum" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:271 +msgid "Modifier Tone Letters" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:272 +msgid "Latin Extended-D" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:274 +msgid "Common Indic Number Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:277 +msgid "Devanagari Extended" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:280 +msgid "Hangul Jamo Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:281 +msgid "Javanese" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:283 +msgid "Myanmar Extended-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:284 +msgid "Tai Viet" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:285 +msgid "Meetei Mayek" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:286 +msgid "Hangul Syllables" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:287 +msgid "Hangul Jamo Extended-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:288 +msgid "High Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:289 +msgid "High Private Use Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:290 +msgid "Low Surrogates" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:291 +msgid "Private Use Area" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:292 +msgid "CJK Compatibility Ideographs" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:293 +msgid "Alphabetic Presentation Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:294 +msgid "Arabic Presentation Forms-A" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:295 +msgid "Variation Selectors" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:296 +msgid "Vertical Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:297 +msgid "Combining Half Marks" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:298 +msgid "CJK Compatibility Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:299 +msgid "Small Form Variants" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:300 +msgid "Arabic Presentation Forms-B" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:301 +msgid "Halfwidth and Fullwidth Forms" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:302 +msgid "Specials" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:377 +msgid "Script: " +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:414 +msgid "Range: " +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:497 +msgid "Append" +msgstr "" + +#: ../src/ui/dialog/glyphs.cpp:618 +msgid "Append text" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:351 +msgid "Arrange in a grid" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/object-attributes.cpp:66 +#: ../src/ui/dialog/object-attributes.cpp:75 +#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +msgid "X:" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +msgid "Horizontal spacing between columns." +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/object-attributes.cpp:67 +#: ../src/ui/dialog/object-attributes.cpp:76 +#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +msgid "Y:" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +msgid "Vertical spacing between rows." +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:626 +msgid "_Rows:" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:635 +msgid "Number of rows" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:639 +msgid "Equal _height" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +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:666 +msgid "_Columns:" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:675 +msgid "Number of columns" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:679 +msgid "Equal _width" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:689 +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:700 +msgid "Alignment:" +msgstr "" + +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/grid-arrange-tab.cpp:709 +msgid "_Fit into selection box" +msgstr "" + +#: ../src/ui/dialog/grid-arrange-tab.cpp:716 +msgid "_Set spacing:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Rela_tive change" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:47 +msgid "Move and/or rotate the guide relative to current settings" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:48 +msgctxt "Guides" +msgid "_X:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:49 +msgctxt "Guides" +msgid "_Y:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 +msgid "_Label:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:50 +msgid "Optionally give this guideline a name" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:51 +msgid "_Angle:" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:130 +msgid "Set guide properties" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:160 +msgid "Guideline" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:311 +#, c-format +msgid "Guideline ID: %s" +msgstr "" + +#: ../src/ui/dialog/guides.cpp:317 +#, c-format +msgid "Current: %s" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:159 +#, c-format +msgid "%d x %d" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:171 +msgid "Magnified:" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:240 +msgid "Actual Size:" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:245 +msgctxt "Icon preview window" +msgid "Sele_ction" +msgstr "" + +#: ../src/ui/dialog/icon-preview.cpp:247 +msgid "Selection only or whole document" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:183 +msgid "Show selection cue" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:184 +msgid "" +"Whether selected objects display a selection cue (the same as in selector)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:190 +msgid "Enable gradient editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:191 +msgid "Whether selected objects display gradient editing controls" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:196 +msgid "Conversion to guides uses edges instead of bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:197 +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:204 +msgid "Ctrl+click _dot size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:204 +msgid "times current stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:205 +msgid "Size of dots created with Ctrl+click (relative to current stroke width)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:220 +msgid "No objects selected to take the style from." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:229 +msgid "" +"More than one object selected. Cannot take style from multiple " +"objects." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:265 +msgid "Style of new objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:267 +msgid "Last used style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:269 +msgid "Apply the style you last set on an object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:274 +msgid "This tool's own style:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:278 +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:282 +msgid "Take from selection" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:291 +msgid "This tool's style of new objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:298 +msgid "Remember the style of the (first) selected object as this tool's style" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:303 +msgid "Tools" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:306 +msgid "Bounding box to use" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:307 +msgid "Visual bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:309 +msgid "This bounding box includes stroke width, markers, filter margins, etc." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:310 +msgid "Geometric bounding box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:312 +msgid "This bounding box includes only the bare path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:314 +msgid "Conversion to guides" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:315 +msgid "Keep objects after conversion to guides" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:317 +msgid "" +"When converting an object to guides, don't delete the object after the " +"conversion" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:318 +msgid "Treat groups as a single object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:320 +msgid "" +"Treat groups as a single object during conversion to guides rather than " +"converting each child separately" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:322 +msgid "Average all sketches" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:323 +msgid "Width is in absolute units" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:324 +msgid "Select new path" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:325 +msgid "Don't attach connectors to text objects" +msgstr "" + +#. Selector +#: ../src/ui/dialog/inkscape-preferences.cpp:328 +msgid "Selector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:333 +msgid "When transforming, show" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:334 +msgid "Objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:336 +msgid "Show the actual objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:337 +msgid "Box outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:339 +msgid "Show only a box outline of the objects when moving or transforming" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:340 +msgid "Per-object selection cue" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:341 +msgctxt "Selection cue" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:343 +msgid "No per-object selection indication" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:344 +msgid "Mark" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:346 +msgid "Each selected object has a diamond mark in the top left corner" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:347 +msgid "Box" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:349 +msgid "Each selected object displays its bounding box" +msgstr "" + +#. Node +#: ../src/ui/dialog/inkscape-preferences.cpp:352 +msgid "Node" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:355 +msgid "Path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:356 +msgid "Path outline color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:357 +msgid "Selects the color used for showing the path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:358 +msgid "Always show outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:359 +msgid "Show outlines for all paths, not only invisible paths" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:360 +msgid "Update outline when dragging nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:361 +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:362 +msgid "Update paths when dragging nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:363 +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:364 +msgid "Show path direction on outlines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:365 +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:366 +msgid "Show temporary path outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:367 +msgid "When hovering over a path, briefly flash its outline" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:368 +msgid "Show temporary outline for selected paths" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:369 +msgid "Show temporary outline even when a path is selected for editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:371 +msgid "_Flash time:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:371 +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:372 +msgid "Editing preferences" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:373 +msgid "Show transform handles for single nodes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:374 +msgid "Show transform handles even when only a single node is selected" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:375 +msgid "Deleting nodes preserves shape" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:376 +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:379 +msgid "Tweak" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:380 +msgid "Object paint style" +msgstr "" + +#. Zoom +#: ../src/ui/dialog/inkscape-preferences.cpp:385 +#: ../src/widgets/desktop-widget.cpp:631 +msgid "Zoom" +msgstr "" + +#. Measure +#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2761 +msgctxt "ContextVerb" +msgid "Measure" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:392 +msgid "Ignore first and last points" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:393 +msgid "" +"The start and end of the measurement tool's control line will not be " +"considered for calculating lengths. Only lengths between actual curve " +"intersections will be displayed." +msgstr "" + +#. Shapes +#: ../src/ui/dialog/inkscape-preferences.cpp:396 +msgid "Shapes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:428 +msgid "Sketch mode" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:430 +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:433 +#: ../src/ui/dialog/input.cpp:1485 +msgid "Pen" +msgstr "" + +#. Calligraphy +#: ../src/ui/dialog/inkscape-preferences.cpp:439 +msgid "Calligraphy" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:443 +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:445 +msgid "" +"If on, each newly created object will be selected (deselecting previous " +"selection)" +msgstr "" + +#. Text +#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2753 +msgctxt "ContextVerb" +msgid "Text" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:453 +msgid "Show font samples in the drop-down list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:454 +msgid "" +"Show font samples alongside font names in the drop-down list in Text bar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:456 +msgid "Show font substitution warning dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:457 +msgid "" +"Show font substitution warning dialog when requested fonts are not available " +"on the system" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Pixel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Pica" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Millimeter" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Centimeter" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Inch" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:460 +msgid "Em square" +msgstr "" + +#. , _("Ex square"), _("Percent") +#. , SP_CSS_UNIT_EX, SP_CSS_UNIT_PERCENT +#: ../src/ui/dialog/inkscape-preferences.cpp:463 +msgid "Text units" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:465 +msgid "Text size unit type:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:466 +msgid "Set the type of unit used in the text toolbar and text dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:467 +msgid "Always output text size in pixels (px)" +msgstr "" + +#. Spray +#: ../src/ui/dialog/inkscape-preferences.cpp:473 +msgid "Spray" +msgstr "" + +#. Eraser +#: ../src/ui/dialog/inkscape-preferences.cpp:478 +msgid "Eraser" +msgstr "" + +#. Paint Bucket +#: ../src/ui/dialog/inkscape-preferences.cpp:482 +msgid "Paint Bucket" +msgstr "" + +#. Gradient +#: ../src/ui/dialog/inkscape-preferences.cpp:487 +#: ../src/widgets/gradient-selector.cpp:134 +#: ../src/widgets/gradient-selector.cpp:302 +msgid "Gradient" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:489 +msgid "Prevent sharing of gradient definitions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:491 +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:492 +msgid "Use legacy Gradient Editor" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:494 +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:497 +msgid "Linear gradient _angle:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:498 +msgid "" +"Default angle of new linear gradients in degrees (clockwise from horizontal)" +msgstr "" + +#. Dropper +#: ../src/ui/dialog/inkscape-preferences.cpp:502 +msgid "Dropper" +msgstr "" + +#. Connector +#: ../src/ui/dialog/inkscape-preferences.cpp:507 +msgid "Connector" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:510 +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:515 +msgid "LPE Tool" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:522 +msgid "Interface" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "System default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Albanian (sq)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Amharic (am)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Arabic (ar)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Armenian (hy)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Azerbaijani (az)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Basque (eu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:525 +msgid "Belarusian (be)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Bulgarian (bg)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Bengali (bn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Bengali/Bangladesh (bn_BD)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Breton (br)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Catalan (ca)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Valencian Catalan (ca@valencia)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:526 +msgid "Chinese/China (zh_CN)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Chinese/Taiwan (zh_TW)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Croatian (hr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:527 +msgid "Czech (cs)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Danish (da)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Dutch (nl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Dzongkha (dz)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "German (de)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "Greek (el)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "English (en)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:528 +msgid "English/Australia (en_AU)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:529 +msgid "English/Canada (en_CA)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:529 +msgid "English/Great Britain (en_GB)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:529 +msgid "Pig Latin (en_US@piglatin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:530 +msgid "Esperanto (eo)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:530 +msgid "Estonian (et)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:530 +msgid "Farsi (fa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:530 +msgid "Finnish (fi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:531 +msgid "French (fr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:531 +msgid "Irish (ga)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:531 +msgid "Galician (gl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:531 +msgid "Hebrew (he)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:531 +msgid "Hungarian (hu)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Indonesian (id)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Italian (it)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Japanese (ja)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Khmer (km)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Kinyarwanda (rw)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Korean (ko)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Lithuanian (lt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Latvian (lv)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Macedonian (mk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:533 +msgid "Mongolian (mn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:533 +msgid "Nepali (ne)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:533 +msgid "Norwegian Bokmål (nb)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:533 +msgid "Norwegian Nynorsk (nn)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:533 +msgid "Panjabi (pa)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:534 +msgid "Polish (pl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:534 +msgid "Portuguese (pt)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:534 +msgid "Portuguese/Brazil (pt_BR)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:534 +msgid "Romanian (ro)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:534 +msgid "Russian (ru)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Serbian (sr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Serbian in Latin script (sr@latin)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Slovak (sk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Slovenian (sl)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Spanish (es)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:535 +msgid "Spanish/Mexico (es_MX)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Swedish (sv)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Telugu (te)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Thai (th)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Turkish (tr)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Ukrainian (uk)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:536 +msgid "Vietnamese (vi)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:568 +msgid "Language (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:569 +msgid "Set the language for menus and number formats" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:572 +#: ../src/ui/dialog/inkscape-preferences.cpp:657 +msgid "Large" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:572 +#: ../src/ui/dialog/inkscape-preferences.cpp:657 +msgid "Small" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:572 +msgid "Smaller" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:576 +msgid "Toolbox icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:577 +msgid "Set the size for the tool icons (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:580 +msgid "Control bar icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:581 +msgid "" +"Set the size for the icons in tools' control bars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:584 +msgid "Secondary toolbar icon size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:585 +msgid "" +"Set the size for the icons in secondary toolbars to use (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:588 +msgid "Work-around color sliders not drawing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:590 +msgid "" +"When on, will attempt to work around bugs in certain GTK themes drawing " +"color sliders" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:595 +msgid "Clear list" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:598 +msgid "Maximum documents in Open _Recent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:599 +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:602 +msgid "_Zoom correction factor (in %):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:603 +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:606 +msgid "Enable dynamic relayout for incomplete sections" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:608 +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:611 +msgid "Show filter primitives infobox (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:613 +msgid "" +"Show icons and descriptions for the filter primitives available at the " +"filter effects dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +msgid "Icons only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +msgid "Text only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:616 +#: ../src/ui/dialog/inkscape-preferences.cpp:624 +msgid "Icons and text" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:621 +msgid "Dockbar style (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:622 +msgid "" +"Selects whether the vertical bars on the dockbar will show text labels, " +"icons, or both" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:629 +msgid "Switcher style (requires restart):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:630 +msgid "" +"Selects whether the dockbar switcher will show text labels, icons, or both" +msgstr "" + +#. Windows +#: ../src/ui/dialog/inkscape-preferences.cpp:634 +msgid "Save and restore window geometry for each document" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:635 +msgid "Remember and use last window's geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:636 +msgid "Don't save window geometry" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:638 +msgid "Save and restore dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:639 +#: ../src/ui/dialog/inkscape-preferences.cpp:675 +msgid "Don't save dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:641 +#: ../src/ui/dialog/inkscape-preferences.cpp:683 +msgid "Dockable" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:645 +msgid "Native open/save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:646 +msgid "GTK open/save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:648 +msgid "Dialogs are hidden in taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:649 +msgid "Save and restore documents viewport" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:650 +msgid "Zoom when window is resized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:651 +msgid "Show close button on dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:652 +msgctxt "Dialog on top" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:654 +msgid "Aggressive" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:657 +msgid "Maximized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:661 +msgid "Default window size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:662 +msgid "Set the default window size" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:665 +msgid "Saving window geometry (size and position)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:667 +msgid "Let the window manager determine placement of all windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:669 +msgid "" +"Remember and use the last window's geometry (saves geometry to user " +"preferences)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:671 +msgid "" +"Save and restore window geometry for each document (saves geometry in the " +"document)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:673 +msgid "Saving dialogs status" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:677 +msgid "" +"Save and restore dialogs status (the last open windows dialogs are saved " +"when it closes)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:681 +msgid "Dialog behavior (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:687 +msgid "Desktop integration" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:689 +msgid "Use Windows like open and save dialogs" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:691 +msgid "Use GTK open and save dialogs " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:695 +msgid "Dialogs on top:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:698 +msgid "Dialogs are treated as regular windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:700 +msgid "Dialogs stay on top of document windows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:702 +msgid "Same as Normal but may work better with some window managers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:705 +msgid "Dialog Transparency" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:707 +msgid "_Opacity when focused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:709 +msgid "Opacity when _unfocused:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:711 +msgid "_Time of opacity change animation:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:714 +msgid "Miscellaneous" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:717 +msgid "Whether dialog windows are to be hidden in the window manager taskbar" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:720 +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:722 +msgid "" +"Save documents viewport (zoom and panning position). Useful to turn off when " +"sharing version controlled files." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:724 +msgid "Whether dialog windows have a close button (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:725 +msgid "Windows" +msgstr "" + +#. Grids +#: ../src/ui/dialog/inkscape-preferences.cpp:728 +msgid "Line color when zooming out" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:731 +msgid "The gridlines will be shown in minor grid line color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:733 +msgid "The gridlines will be shown in major grid line color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:735 +msgid "Default grid settings" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:741 +#: ../src/ui/dialog/inkscape-preferences.cpp:766 +msgid "Grid units:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:746 +#: ../src/ui/dialog/inkscape-preferences.cpp:771 +msgid "Origin X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:747 +#: ../src/ui/dialog/inkscape-preferences.cpp:772 +msgid "Origin Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:752 +msgid "Spacing X:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/ui/dialog/inkscape-preferences.cpp:775 +msgid "Spacing Y:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:755 +#: ../src/ui/dialog/inkscape-preferences.cpp:756 +#: ../src/ui/dialog/inkscape-preferences.cpp:780 +#: ../src/ui/dialog/inkscape-preferences.cpp:781 +msgid "Minor grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:756 +#: ../src/ui/dialog/inkscape-preferences.cpp:781 +msgid "Color used for normal grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:757 +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:782 +#: ../src/ui/dialog/inkscape-preferences.cpp:783 +msgid "Major grid line color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:758 +#: ../src/ui/dialog/inkscape-preferences.cpp:783 +msgid "Color used for major (highlighted) grid lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:760 +#: ../src/ui/dialog/inkscape-preferences.cpp:785 +msgid "Major grid line every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:761 +msgid "Show dots instead of lines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:762 +msgid "If set, display dots at gridpoints instead of gridlines" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:843 +msgid "Input/Output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:846 +msgid "Use current directory for \"Save As ...\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:848 +msgid "" +"When this option is on, the \"Save as...\" and \"Save a Copy...\" dialogs " +"will always open in the directory where the currently open document is; when " +"it's off, each will open in the directory where you last saved a file using " +"it" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:850 +msgid "Add label comments to printing output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:852 +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:854 +msgid "Add default metadata to new documents" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:856 +msgid "" +"Add default metadata to new documents. Default metadata can be set from " +"Document Properties->Metadata." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:860 +msgid "_Grab sensitivity:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:860 +msgid "pixels (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:861 +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:863 +msgid "_Click/drag threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:863 +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +msgid "pixels" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:864 +msgid "" +"Maximum mouse drag (in screen pixels) which is considered a click, not a drag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:867 +msgid "_Handle size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:868 +msgid "Set the relative size of node handles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:870 +msgid "Use pressure-sensitive tablet (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:872 +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:874 +msgid "Switch tool based on tablet device (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:876 +msgid "" +"Change tool as different devices are used on the tablet (pen, eraser, mouse)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:877 +msgid "Input devices" +msgstr "" + +#. SVG output options +#: ../src/ui/dialog/inkscape-preferences.cpp:880 +msgid "Use named colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:881 +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:883 +msgid "XML formatting" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:885 +msgid "Inline attributes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:886 +msgid "Put attributes on the same line as the element tag" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:889 +msgid "_Indent, spaces:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:889 +msgid "" +"The number of spaces to use for indenting nested elements; set to 0 for no " +"indentation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:891 +msgid "Path data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:894 +msgid "Absolute" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:894 +msgid "Relative" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:894 +#: ../src/ui/dialog/inkscape-preferences.cpp:1184 +msgid "Optimized" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +msgid "Path string format:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:898 +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:900 +msgid "Force repeat commands" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:901 +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:903 +msgid "Numbers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:906 +msgid "_Numeric precision:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:906 +msgid "Significant figures of the values written to the SVG file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:909 +msgid "Minimum _exponent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:909 +msgid "" +"The smallest number written to SVG is 10 to the power of this exponent; " +"anything smaller is written as zero" +msgstr "" + +#. Code to add controls for attribute checking options +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:914 +msgid "Improper Attributes Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:916 +#: ../src/ui/dialog/inkscape-preferences.cpp:924 +#: ../src/ui/dialog/inkscape-preferences.cpp:932 +msgid "Print warnings" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:917 +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:918 +msgid "Remove attributes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:919 +msgid "Delete invalid or non-useful attributes from element tag" +msgstr "" + +#. Add incorrect style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:922 +msgid "Inappropriate Style Properties Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:925 +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:926 +#: ../src/ui/dialog/inkscape-preferences.cpp:934 +msgid "Remove style properties" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:927 +msgid "Delete inappropriate style properties" +msgstr "" + +#. Add default or inherited style properties options +#: ../src/ui/dialog/inkscape-preferences.cpp:930 +msgid "Non-useful Style Properties Actions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:933 +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 " +"same as would be inherited). Database files located in inkscape_data_dir/" +"attributes." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:935 +msgid "Delete redundant style properties" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:937 +msgid "Check Attributes and Style Properties on" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:939 +msgid "Reading" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:940 +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:941 +msgid "Editing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:942 +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:943 +msgid "Writing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:944 +msgid "Check attributes and style properties on writing out SVG files" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:946 +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:952 +msgid "Perceptual" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:952 +msgid "Relative Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:952 +msgid "Absolute Colorimetric" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:956 +msgid "(Note: Color management has been disabled in this build)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:960 +msgid "Display adjustment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:970 +#, c-format +msgid "" +"The ICC profile to use to calibrate display output.\n" +"Searched directories:%s" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:971 +msgid "Display profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:976 +msgid "Retrieve profile from display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:979 +msgid "Retrieve profiles from those attached to displays via XICC" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:981 +msgid "Retrieve profiles from those attached to displays" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:986 +msgid "Display rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:987 +msgid "The rendering intent to use to calibrate display output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:989 +msgid "Proofing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:991 +msgid "Simulate output on screen" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:993 +msgid "Simulates output of target device" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:995 +msgid "Mark out of gamut colors" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:997 +msgid "Highlights colors that are out of gamut for the target device" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1009 +msgid "Out of gamut warning color:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1010 +msgid "Selects the color used for out of gamut warning" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1012 +msgid "Device profile:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1013 +msgid "The ICC profile to use to simulate device output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1016 +msgid "Device rendering intent:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1017 +msgid "The rendering intent to use to calibrate device output" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1019 +msgid "Black point compensation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1021 +msgid "Enables black point compensation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1023 +msgid "Preserve black" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1030 +msgid "(LittleCMS 1.15 or later required)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1032 +msgid "Preserve K channel in CMYK -> CMYK transforms" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1046 +#: ../src/widgets/sp-color-icc-selector.cpp:449 +#: ../src/widgets/sp-color-icc-selector.cpp:741 +msgid "" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1091 +msgid "Color management" +msgstr "" + +#. Autosave options +#: ../src/ui/dialog/inkscape-preferences.cpp:1094 +msgid "Enable autosave (requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1095 +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:1101 +msgctxt "Filesystem" +msgid "Autosave _directory:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1101 +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:1103 +msgid "_Interval (in minutes):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1103 +msgid "Interval (in minutes) at which document will be autosaved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 +msgid "_Maximum number of autosaves:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1105 +msgid "" +"Maximum number of autosaved files; use this to limit the storage space used" +msgstr "" + +#. When changing the interval or enabling/disabling the autosave function, +#. * update our running configuration +#. * +#. * FIXME! +#. * the inkscape_autosave_init should be called AFTER the values have been changed +#. * (which cannot be guaranteed from here) - use a PrefObserver somewhere +#. +#. +#. _autosave_autosave_enable.signal_toggled().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. _autosave_autosave_interval.signal_changed().connect( sigc::ptr_fun(inkscape_autosave_init), TRUE ); +#. +#. ----------- +#: ../src/ui/dialog/inkscape-preferences.cpp:1120 +msgid "Autosave" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1124 +msgid "Open Clip Art Library _Server Name:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1125 +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:1127 +msgid "Open Clip Art Library _Username:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1128 +msgid "The username used to log into Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1130 +msgid "Open Clip Art Library _Password:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1131 +msgid "The password used to log into Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1132 +msgid "Open Clip Art" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1137 +msgid "Behavior" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1141 +msgid "_Simplification threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1142 +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:1144 +msgid "Color stock markers the same color as object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1145 +msgid "Color custom markers the same color as object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1146 +#: ../src/ui/dialog/inkscape-preferences.cpp:1356 +msgid "Update marker color when object color changes" +msgstr "" + +#. Selecting options +#: ../src/ui/dialog/inkscape-preferences.cpp:1149 +msgid "Select in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1150 +msgid "Select only within current layer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1151 +msgid "Select in current layer and sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1152 +msgid "Ignore hidden objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1153 +msgid "Ignore locked objects and layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1154 +msgid "Deselect upon layer change" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1157 +msgid "" +"Uncheck this to be able to keep the current objects selected when the " +"current layer changes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1159 +msgid "Ctrl+A, Tab, Shift+Tab" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1161 +msgid "Make keyboard selection commands work on objects in all layers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1163 +msgid "Make keyboard selection commands work on objects in current layer only" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1165 +msgid "" +"Make keyboard selection commands work on objects in current layer and all " +"its sublayers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1167 +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:1169 +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:1171 +msgid "Wrap when cycling objects in z-order" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1173 +msgid "Alt+Scroll Wheel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1175 +msgid "Wrap around at start and end when cycling objects in z-order" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1177 +msgid "Selecting" +msgstr "" + +#. Transforms options +#: ../src/ui/dialog/inkscape-preferences.cpp:1180 +#: ../src/widgets/select-toolbar.cpp:572 +msgid "Scale stroke width" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1181 +msgid "Scale rounded corners in rectangles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1182 +msgid "Transform gradients" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1183 +msgid "Transform patterns" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1185 +msgid "Preserved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1188 +#: ../src/widgets/select-toolbar.cpp:573 +msgid "When scaling objects, scale the stroke width by the same proportion" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1190 +#: ../src/widgets/select-toolbar.cpp:584 +msgid "When scaling rectangles, scale the radii of rounded corners" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1192 +#: ../src/widgets/select-toolbar.cpp:595 +msgid "Move gradients (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1194 +#: ../src/widgets/select-toolbar.cpp:606 +msgid "Move patterns (in fill or stroke) along with the objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1195 +msgid "Store transformation" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1197 +msgid "" +"If possible, apply transformation to objects without adding a transform= " +"attribute" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1199 +msgid "Always store transformation as a transform= attribute on objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1201 +msgid "Transforms" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1205 +msgid "Mouse _wheel scrolls by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1206 +msgid "" +"One mouse wheel notch scrolls by this distance in screen pixels " +"(horizontally with Shift)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1207 +msgid "Ctrl+arrows" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1209 +msgid "Sc_roll by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1210 +msgid "Pressing Ctrl+arrow key scrolls by this distance (in screen pixels)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1212 +msgid "_Acceleration:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1213 +msgid "" +"Pressing and holding Ctrl+arrow will gradually speed up scrolling (0 for no " +"acceleration)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1214 +msgid "Autoscrolling" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1216 +msgid "_Speed:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1217 +msgid "" +"How fast the canvas autoscrolls when you drag beyond canvas edge (0 to turn " +"autoscroll off)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1219 +#: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 +msgid "_Threshold:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1220 +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 "" + +#. +#. _scroll_space.init ( _("Left mouse button pans when Space is pressed"), "/options/spacepans/value", false); +#. _page_scrolling.add_line( false, "", _scroll_space, "", +#. _("When on, pressing and holding Space and dragging with left mouse button pans canvas (as in Adobe Illustrator); when off, Space temporarily switches to Selector tool (default)")); +#. +#: ../src/ui/dialog/inkscape-preferences.cpp:1226 +msgid "Mouse wheel zooms by default" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1228 +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:1229 +msgid "Scrolling" +msgstr "" + +#. Snapping options +#: ../src/ui/dialog/inkscape-preferences.cpp:1232 +msgid "Enable snap indicator" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1234 +msgid "After snapping, a symbol is drawn at the point that has snapped" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1237 +msgid "_Delay (in ms):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1238 +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:1240 +msgid "Only snap the node closest to the pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1242 +msgid "" +"Only try to snap the node that is initially closest to the mouse pointer" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1245 +msgid "_Weight factor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1246 +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:1248 +msgid "Snap the mouse pointer when dragging a constrained knot" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1250 +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:1252 +msgid "Snapping" +msgstr "" + +#. nudgedistance is limited to 1000 in select-context.cpp: use the same limit here +#: ../src/ui/dialog/inkscape-preferences.cpp:1257 +msgid "_Arrow keys move by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1258 +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:1261 +msgid "> and < _scale by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1262 +msgid "Pressing > or < scales selection up or down by this increment" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1264 +msgid "_Inset/Outset by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1265 +msgid "Inset and Outset commands displace the path by this distance" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1266 +msgid "Compass-like display of angles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1268 +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:1270 +msgctxt "Rotation angle" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +msgid "_Rotation snaps every:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1274 +msgid "degrees" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1275 +msgid "" +"Rotating with Ctrl pressed snaps every that much degrees; also, pressing " +"[ or ] rotates by this amount" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1276 +msgid "Relative snapping of guideline angles" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1278 +msgid "" +"When on, the snap angles when rotating a guideline will be relative to the " +"original angle" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1280 +msgid "_Zoom in/out by:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1280 +#: ../src/ui/dialog/objects.cpp:1622 +#: ../src/ui/widget/filter-effect-chooser.cpp:27 +msgid "%" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1281 +msgid "" +"Zoom tool click, +/- keys, and middle click zoom in and out by this " +"multiplier" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1282 +msgid "Steps" +msgstr "" + +#. Clones options +#: ../src/ui/dialog/inkscape-preferences.cpp:1285 +msgid "Move in parallel" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1287 +msgid "Stay unmoved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1289 +msgid "Move according to transform" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1291 +msgid "Are unlinked" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1293 +msgid "Are deleted" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1296 +msgid "Moving original: clones and linked offsets" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1298 +msgid "Clones are translated by the same vector as their original" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1300 +msgid "Clones preserve their positions when their original is moved" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1302 +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:1303 +msgid "Deleting original: clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1305 +msgid "Orphaned clones are converted to regular objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1307 +msgid "Orphaned clones are deleted along with their original" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1309 +msgid "Duplicating original+clones/linked offset" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1311 +msgid "Relink duplicated clones" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1313 +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 "" + +#. TRANSLATORS: Heading for the Inkscape Preferences "Clones" Page +#: ../src/ui/dialog/inkscape-preferences.cpp:1316 +msgid "Clones" +msgstr "" + +#. Clip paths and masks options +#: ../src/ui/dialog/inkscape-preferences.cpp:1319 +msgid "When applying, use the topmost selected object as clippath/mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1321 +msgid "" +"Uncheck this to use the bottom selected object as the clipping path or mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1322 +msgid "Remove clippath/mask object after applying" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1324 +msgid "" +"After applying, remove the object used as the clipping path or mask from the " +"drawing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1326 +msgid "Before applying" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1328 +msgid "Do not group clipped/masked objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1329 +msgid "Put every clipped/masked object in its own group" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1330 +msgid "Put all clipped/masked objects into one group" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1333 +msgid "Apply clippath/mask to every object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1336 +msgid "Apply clippath/mask to groups containing single object" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1339 +msgid "Apply clippath/mask to group containing all objects" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1341 +msgid "After releasing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1343 +msgid "Ungroup automatically created groups" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1345 +msgid "Ungroup groups created when setting clip/mask" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1347 +msgid "Clippaths and masks" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1350 +msgid "Stroke Style Markers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1352 +#: ../src/ui/dialog/inkscape-preferences.cpp:1354 +msgid "" +"Stroke color same as object, fill color either object fill color or marker " +"fill color" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1358 +#: ../share/extensions/hershey.inx.h:27 +msgid "Markers" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1361 +msgid "Document cleanup" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1362 +#: ../src/ui/dialog/inkscape-preferences.cpp:1364 +msgid "Remove unused swatches when doing a document cleanup" +msgstr "" + +#. tooltip +#: ../src/ui/dialog/inkscape-preferences.cpp:1365 +msgid "Cleanup" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 +msgid "Number of _Threads:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1373 +#: ../src/ui/dialog/inkscape-preferences.cpp:1909 +msgid "(requires restart)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1374 +msgid "Configure number of processors/threads to use when rendering filters" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +msgid "Rendering _cache size:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +msgctxt "mebibyte (2^20 bytes) abbreviation" +msgid "MiB" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1378 +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 "" + +#. blur quality +#. filter quality +#: ../src/ui/dialog/inkscape-preferences.cpp:1381 +#: ../src/ui/dialog/inkscape-preferences.cpp:1405 +msgid "Best quality (slowest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1383 +#: ../src/ui/dialog/inkscape-preferences.cpp:1407 +msgid "Better quality (slower)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1385 +#: ../src/ui/dialog/inkscape-preferences.cpp:1409 +msgid "Average quality" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1387 +#: ../src/ui/dialog/inkscape-preferences.cpp:1411 +msgid "Lower quality (faster)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1389 +#: ../src/ui/dialog/inkscape-preferences.cpp:1413 +msgid "Lowest quality (fastest)" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1392 +msgid "Gaussian blur quality for display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1394 +#: ../src/ui/dialog/inkscape-preferences.cpp:1418 +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:1396 +#: ../src/ui/dialog/inkscape-preferences.cpp:1420 +msgid "Better quality, but slower display" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1398 +#: ../src/ui/dialog/inkscape-preferences.cpp:1422 +msgid "Average quality, acceptable display speed" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1400 +#: ../src/ui/dialog/inkscape-preferences.cpp:1424 +msgid "Lower quality (some artifacts), but display is faster" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1402 +#: ../src/ui/dialog/inkscape-preferences.cpp:1426 +msgid "Lowest quality (considerable artifacts), but display is fastest" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1416 +msgid "Filter effects quality for display" +msgstr "" + +#. build custom preferences tab +#: ../src/ui/dialog/inkscape-preferences.cpp:1428 +#: ../src/ui/dialog/print.cpp:232 +msgid "Rendering" +msgstr "" + +#. Note: /options/bitmapoversample removed with Cairo renderer +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:157 +#: ../src/widgets/calligraphy-toolbar.cpp:626 +msgid "Edit" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1435 +msgid "Automatically reload bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1437 +msgid "Automatically reload linked images when file is changed on disk" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1439 +msgid "_Bitmap editor:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1441 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:57 +#: ../share/extensions/print_win32_vector.inx.h:2 +msgid "Export" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1443 +msgid "Default export _resolution:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1444 +msgid "Default bitmap resolution (in dots per inch) in the Export dialog" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1445 +#: ../src/ui/dialog/xml-tree.cpp:912 +msgid "Create" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1447 +msgid "Resolution for Create Bitmap _Copy:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1448 +msgid "Resolution used by the Create Bitmap Copy command" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1451 +msgid "Ask about linking and scaling when importing" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1453 +msgid "Pop-up linking and scaling dialog when importing bitmap image." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1459 +msgid "Bitmap link:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1466 +msgid "Bitmap scale (image-rendering):" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1471 +msgid "Default _import resolution:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1472 +msgid "Default bitmap resolution (in dots per inch) for bitmap import" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1473 +msgid "Override file resolution" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1475 +msgid "Use default bitmap resolution in favor of information from file" +msgstr "" + +#. rendering outlines for pixmap image tags +#: ../src/ui/dialog/inkscape-preferences.cpp:1479 +msgid "Images in Outline Mode" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1480 +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:1482 +msgid "Bitmaps" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1494 +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:1497 +msgid "Shortcut file:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1500 +#: ../src/ui/dialog/template-load-tab.cpp:48 +msgid "Search:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1512 +msgid "Shortcut" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1513 +#: ../src/ui/widget/page-sizer.cpp:260 +msgid "Description" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1568 +#: ../src/ui/dialog/pixelartdialog.cpp:296 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:699 +#: ../src/ui/dialog/tracedialog.cpp:813 +#: ../src/ui/widget/preferences-widget.cpp:749 +msgid "Reset" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1568 +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:1572 +msgid "Import ..." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1572 +msgid "Import custom keyboard shortcuts from a file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1575 +msgid "Export ..." +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1575 +msgid "Export custom keyboard shortcuts to a file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1585 +msgid "Keyboard Shortcuts" +msgstr "" + +#. Find this group in the tree +#: ../src/ui/dialog/inkscape-preferences.cpp:1748 +msgid "Misc" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1850 +msgctxt "Spellchecker language" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1871 +msgid "Set the main spell check language" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1874 +msgid "Second language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1875 +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:1878 +msgid "Third language:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1879 +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:1881 +msgid "Ignore words with digits" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1883 +msgid "Ignore words containing digits, such as \"R2D2\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1885 +msgid "Ignore words in ALL CAPITALS" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1887 +msgid "Ignore words in all capitals, such as \"IUPAC\"" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1889 +msgid "Spellcheck" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1909 +msgid "Latency _skew:" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1910 +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:1912 +msgid "Pre-render named icons" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1914 +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:1922 +msgid "System info" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "User config: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1926 +msgid "Location of users configuration" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +msgid "User preferences: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1930 +msgid "Location of the users preferences file" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "User extensions: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1934 +msgid "Location of the users extensions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +msgid "User cache: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1938 +msgid "Location of users cache" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1946 +msgid "Temporary files: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1946 +msgid "Location of the temporary files used for autosave" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1950 +msgid "Inkscape data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1950 +msgid "Location of Inkscape data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1954 +msgid "Inkscape extensions: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1954 +msgid "Location of the Inkscape extensions" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1963 +msgid "System data: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1963 +msgid "Locations of system data" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1987 +msgid "Icon theme: " +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1987 +msgid "Locations of icon themes" +msgstr "" + +#: ../src/ui/dialog/inkscape-preferences.cpp:1989 +msgid "System" +msgstr "" + +#: ../src/ui/dialog/input.cpp:360 ../src/ui/dialog/input.cpp:381 +#: ../src/ui/dialog/input.cpp:1641 +msgid "Disabled" +msgstr "" + +#: ../src/ui/dialog/input.cpp:361 +msgctxt "Input device" +msgid "Screen" +msgstr "" + +#: ../src/ui/dialog/input.cpp:362 ../src/ui/dialog/input.cpp:383 +msgid "Window" +msgstr "" + +#: ../src/ui/dialog/input.cpp:618 +msgid "Test Area" +msgstr "" + +#: ../src/ui/dialog/input.cpp:619 +msgid "Axis" +msgstr "" + +#: ../src/ui/dialog/input.cpp:708 ../share/extensions/svgcalendar.inx.h:2 +msgid "Configuration" +msgstr "" + +#: ../src/ui/dialog/input.cpp:709 +msgid "Hardware" +msgstr "" + +#: ../src/ui/dialog/input.cpp:732 +msgid "Link:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 +#: ../src/ui/dialog/input.cpp:1571 ../src/widgets/mesh-toolbar.cpp:499 +msgid "None" +msgstr "" + +#: ../src/ui/dialog/input.cpp:758 +msgid "Axes count:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:788 +msgid "axis:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:812 +msgid "Button count:" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1010 +msgid "Tablet" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 +msgid "pad" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1081 +msgid "_Use pressure-sensitive tablet (requires restart)" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1086 +msgid "Axes" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1087 +msgid "Keys" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1170 +msgid "" +"A device can be 'Disabled', its co-ordinates mapped to the whole 'Screen', " +"or to a single (usually focused) 'Window'" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 ../src/widgets/calligraphy-toolbar.cpp:578 +#: ../src/widgets/spray-toolbar.cpp:224 ../src/widgets/tweak-toolbar.cpp:372 +msgid "Pressure" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +msgid "X tilt" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +msgid "Y tilt" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1616 +#: ../src/widgets/sp-color-wheel-selector.cpp:32 +msgid "Wheel" +msgstr "" + +#: ../src/ui/dialog/input.cpp:1625 +msgctxt "Input device axe" +msgid "None" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:55 +msgid "Layer name:" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:136 +msgid "Add layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:176 +msgid "Above current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:180 +msgid "Below current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:183 +msgid "As sublayer of current" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:352 +msgid "Rename Layer" +msgstr "" + +#. TODO: find an unused layer number, forming name from _("Layer ") + "%d" +#: ../src/ui/dialog/layer-properties.cpp:354 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:195 +#: ../src/verbs.cpp:2368 +msgid "Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:355 +msgid "_Rename" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +msgid "Rename layer" +msgstr "" + +#. TRANSLATORS: This means "The layer has been renamed" +#: ../src/ui/dialog/layer-properties.cpp:370 +msgid "Renamed layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:374 +msgid "Add Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:380 +msgid "_Add" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:404 +msgid "New layer created." +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:408 +msgid "Move to Layer" +msgstr "" + +#: ../src/ui/dialog/layer-properties.cpp:411 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:120 +#: ../src/ui/dialog/transformation.cpp:112 +msgid "_Move" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Unhide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:525 ../src/ui/widget/layer-selector.cpp:613 +msgid "Hide layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Lock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:536 ../src/ui/widget/layer-selector.cpp:605 +msgid "Unlock layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:845 +#: ../src/verbs.cpp:1438 +msgid "Toggle layer solo" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:848 +#: ../src/verbs.cpp:1462 +msgid "Lock other layers" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:721 +msgid "Moved layer" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:884 +msgctxt "Layers" +msgid "New" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:889 +msgctxt "Layers" +msgid "Bot" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:895 +msgctxt "Layers" +msgid "Dn" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:901 +msgctxt "Layers" +msgid "Up" +msgstr "" + +#: ../src/ui/dialog/layers.cpp:907 +msgctxt "Layers" +msgid "Top" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-add.cpp:32 +msgid "Add Path Effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +msgid "Add path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +msgid "Delete current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +msgid "Raise the current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +msgid "Lower the current path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:312 +msgid "Unknown effect is applied" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:315 +msgid "Click button to add an effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:330 +msgid "Click add button to convert clone" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:335 +#: ../src/ui/dialog/livepatheffect-editor.cpp:339 +#: ../src/ui/dialog/livepatheffect-editor.cpp:348 +msgid "Select a path or shape" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:344 +msgid "Only one item can be selected" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:376 +msgid "Unknown effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:452 +msgid "Create and apply path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:492 +msgid "Create and apply Clone original path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:514 +msgid "Remove path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:532 +msgid "Move path effect up" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:549 +msgid "Move path effect down" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +msgid "Activate path effect" +msgstr "" + +#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +msgid "Deactivate path effect" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:57 +msgid "Radius (pixels):" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 +msgid "Chamfer subdivisions:" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:144 +msgid "Modify Fillet-Chamfer" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:145 +msgid "_Modify" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:210 +msgid "Radius" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 +msgid "Radius approximated" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +msgid "Knot distance" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:222 +msgid "Position (%):" +msgstr "" + +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:225 +msgid "%1 (%2):" +msgstr "" + +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:119 +msgid "Modify Node Position" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:96 +msgid "Heap" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:97 +msgid "In Use" +msgstr "" + +#. TRANSLATORS: "Slack" refers to memory which is in the heap but currently unused. +#. More typical usage is to call this memory "free" rather than "slack". +#: ../src/ui/dialog/memory.cpp:100 +msgid "Slack" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:101 +msgid "Total" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:141 ../src/ui/dialog/memory.cpp:147 +#: ../src/ui/dialog/memory.cpp:154 ../src/ui/dialog/memory.cpp:186 +msgid "Unknown" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:167 +msgid "Combined" +msgstr "" + +#: ../src/ui/dialog/memory.cpp:209 +msgid "Recalculate" +msgstr "" + +#: ../src/ui/dialog/messages.cpp:47 +msgid "Clear log messages" +msgstr "" + +#: ../src/ui/dialog/messages.cpp:81 +msgid "Ready." +msgstr "" + +#: ../src/ui/dialog/messages.cpp:174 +msgid "Log capture started." +msgstr "" + +#: ../src/ui/dialog/messages.cpp:203 +msgid "Log capture stopped." +msgstr "" + +#: ../src/ui/dialog/new-from-template.cpp:27 +msgid "Create from template" +msgstr "" + +#: ../src/ui/dialog/new-from-template.cpp:29 +msgid "New From Template" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:47 +msgid "Href:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkRoleAttribute +#. Identifies the type of the related resource with an absolute URI +#: ../src/ui/dialog/object-attributes.cpp:52 +msgid "Role:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkArcRoleAttribute +#. For situations where the nature/role alone isn't enough, this offers an additional URI defining the purpose of the link. +#: ../src/ui/dialog/object-attributes.cpp:55 +msgid "Arcrole:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:58 +#: ../share/extensions/polyhedron_3d.inx.h:47 +msgid "Show:" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkActuateAttribute +#: ../src/ui/dialog/object-attributes.cpp:60 +msgid "Actuate:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:65 +msgid "URL:" +msgstr "" + +#: ../src/ui/dialog/object-attributes.cpp:70 +msgid "Image Rendering:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:58 +#: ../src/ui/dialog/object-properties.cpp:399 +#: ../src/ui/dialog/object-properties.cpp:470 +#: ../src/ui/dialog/object-properties.cpp:477 +msgid "_ID:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:60 +msgid "_Title:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:61 +msgid "_Image Rendering:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:62 +msgid "_Hide" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:63 +msgid "L_ock" +msgstr "" + +#. Create the entry box for the object id +#: ../src/ui/dialog/object-properties.cpp:139 +msgid "" +"The id= attribute (only letters, digits, and the characters .-_: allowed)" +msgstr "" + +#. Create the entry box for the object label +#: ../src/ui/dialog/object-properties.cpp:174 +msgid "A freeform label for the object" +msgstr "" + +#. Create the frame for the object description +#: ../src/ui/dialog/object-properties.cpp:225 +msgid "_Description:" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:260 +msgid "" +"The 'image-rendering' property can influence how a bitmap is up-scaled:\n" +"\t'auto' no preference;\n" +"\t'optimizeQuality' smooth;\n" +"\t'optimizeSpeed' blocky.\n" +"Note that this behaviour is not defined in the SVG 1.1 specification and not " +"all browsers follow this interpretation." +msgstr "" + +#. Hide +#: ../src/ui/dialog/object-properties.cpp:293 +msgid "Check to make the object invisible" +msgstr "" + +#. Lock +#. TRANSLATORS: "Lock" is a verb here +#: ../src/ui/dialog/object-properties.cpp:309 +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:325 ../src/verbs.cpp:2711 +#: ../src/verbs.cpp:2717 +msgid "_Set" +msgstr "" + +#. Create the frame for interactivity options +#: ../src/ui/dialog/object-properties.cpp:339 +msgid "_Interactivity" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:386 +#: ../src/ui/dialog/object-properties.cpp:391 +msgid "Ref" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:472 +msgid "Id invalid! " +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:474 +msgid "Id exists! " +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:480 +msgid "Set object ID" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:494 +msgid "Set object label" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:500 +msgid "Set object title" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:509 +msgid "Set object description" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:552 +msgid "Lock object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:552 +msgid "Unlock object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:568 +msgid "Hide object" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:568 +msgid "Unhide object" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:875 +msgid "Unhide objects" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:875 +msgid "Hide objects" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:895 +msgid "Lock objects" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:895 +msgid "Unlock objects" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:907 +msgid "Layer to group" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:907 +msgid "Group to layer" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1105 +msgid "Moved objects" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1354 ../src/ui/dialog/tags.cpp:875 +#: ../src/ui/dialog/tags.cpp:882 +msgid "Rename object" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1461 +msgid "Set object highlight color" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1471 +msgid "Set object opacity" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1504 +msgid "Set object blend mode" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1560 +msgid "Set object blur" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1802 +msgid "Add layer..." +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1817 +msgid "Remove object" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1832 +msgid "Move To Bottom" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1877 +msgid "Move To Top" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1892 +msgid "Collapse All" +msgstr "" + +#: ../src/ui/dialog/objects.cpp:1974 +msgid "Select Highlight Color" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:715 +msgid "Clipart found" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:764 +msgid "Downloading image..." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:912 +msgid "Could not download image" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:922 +msgid "Clipart downloaded successfully" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:936 +msgid "Could not download thumbnail file" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1011 +msgid "No description" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1079 +msgid "Searching clipart..." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 +msgid "Could not connect to the Open Clip Art Library" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1145 +msgid "Could not parse search results" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1177 +msgid "No clipart named %1 was found." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1179 +msgid "" +"Please make sure all keywords are spelled correctly, or try again with " +"different keywords." +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1231 +msgid "Search" +msgstr "" + +#: ../src/ui/dialog/ocaldialogs.cpp:1243 +msgid "Close" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:190 +msgid "_Curves (multiplier):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:193 +msgid "Favors connections that are part of a long curve" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:204 +msgid "_Islands (weight):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:207 +msgid "Avoid single disconnected pixels" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:209 +msgid "A constant vote value" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:219 +msgid "Sparse pixels (window _radius):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:228 +msgid "The radius of the window analyzed" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:229 +msgid "Sparse pixels (_multiplier):" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:240 +msgid "Favors connections that are part of foreground color" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:246 +msgid "The heuristic computed vote will be multiplied by this value" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:259 +msgid "Heuristics" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:266 +msgid "_Voronoi diagram" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:267 +msgid "Output composed of straight lines" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:273 +msgid "Convert to _B-spline curves" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:274 +msgid "Preserve staircasing artifacts" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:281 +msgid "_Smooth curves" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:282 +msgid "The Kopf-Lischinski algorithm" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:289 +msgid "Output" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:297 +#: ../src/ui/dialog/tracedialog.cpp:814 +msgid "Reset all settings to defaults" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:302 +#: ../src/ui/dialog/tracedialog.cpp:819 +msgid "Abort a trace in progress" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:306 +#: ../src/ui/dialog/tracedialog.cpp:823 +msgid "Execute the trace" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:388 +#: ../src/ui/dialog/pixelartdialog.cpp:422 +msgid "" +"Image looks too big. Process may take a while and it is wise to save your " +"document before continuing.\n" +"\n" +"Continue the procedure (without saving)?" +msgstr "" + +#: ../src/ui/dialog/pixelartdialog.cpp:499 +msgid "Trace pixel art" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:41 +msgctxt "Polar arrange tab" +msgid "Y coordinate of the center" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:42 +msgctxt "Polar arrange tab" +msgid "X coordinate of the center" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:43 +msgctxt "Polar arrange tab" +msgid "Y coordinate of the radius" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:44 +msgctxt "Polar arrange tab" +msgid "X coordinate of the radius" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:45 +msgctxt "Polar arrange tab" +msgid "Starting angle" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:46 +msgctxt "Polar arrange tab" +msgid "End angle" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:48 +msgctxt "Polar arrange tab" +msgid "Anchor point:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:52 +msgctxt "Polar arrange tab" +msgid "Object's bounding box:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:59 +msgctxt "Polar arrange tab" +msgid "Object's rotational center" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:64 +msgctxt "Polar arrange tab" +msgid "Arrange on:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:68 +msgctxt "Polar arrange tab" +msgid "First selected circle/ellipse/arc" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:73 +msgctxt "Polar arrange tab" +msgid "Last selected circle/ellipse/arc" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:78 +msgctxt "Polar arrange tab" +msgid "Parameterized:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:83 +msgctxt "Polar arrange tab" +msgid "Center X/Y:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:105 +msgctxt "Polar arrange tab" +msgid "Radius X/Y:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:127 +msgid "Angle X/Y:" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:150 +msgid "Rotate objects" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:338 +msgid "Couldn't find an ellipse in selection" +msgstr "" + +#: ../src/ui/dialog/polar-arrange-tab.cpp:403 +msgid "Arrange on ellipse" +msgstr "" + +#: ../src/ui/dialog/print.cpp:111 +msgid "Could not open temporary PNG for bitmap printing" +msgstr "" + +#: ../src/ui/dialog/print.cpp:155 +msgid "Could not set up Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:159 +msgid "Failed to set CairoRenderContext" +msgstr "" + +#. set up dialog title, based on document name +#: ../src/ui/dialog/print.cpp:197 +msgid "SVG Document" +msgstr "" + +#: ../src/ui/dialog/print.cpp:198 +msgid "Print" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:73 +msgid "_Accept" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:74 +msgid "_Ignore once" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:75 +msgid "_Ignore" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:76 +msgid "A_dd" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:78 +msgid "_Stop" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:79 +msgid "_Start" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:109 +msgid "Suggestions:" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:124 +msgid "Accept the chosen suggestion" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:125 +msgid "Ignore this word only once" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:126 +msgid "Ignore this word in this session" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:127 +msgid "Add this word to the chosen dictionary" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:141 +msgid "Stop the check" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:142 +msgid "Start the check" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:460 +#, c-format +msgid "Finished, %d words added to dictionary" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:462 +msgid "Finished, nothing suspicious found" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:578 +#, c-format +msgid "Not in dictionary (%s): %s" +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:727 +msgid "Checking..." +msgstr "" + +#: ../src/ui/dialog/spellcheck.cpp:796 +msgid "Fix spelling" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:139 +msgid "Set SVG Font attribute" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:197 +msgid "Adjust kerning value" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:387 +msgid "Family Name:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:397 +msgid "Set width:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:456 +msgid "glyph" +msgstr "" + +#. SPGlyph* glyph = +#: ../src/ui/dialog/svg-fonts-dialog.cpp:488 +msgid "Add glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:522 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:564 +msgid "Select a path to define the curves of a glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:530 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:572 +msgid "The selected object does not have a path description." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:537 +msgid "No glyph selected in the SVGFonts dialog." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:548 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:587 +msgid "Set glyph curves" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:607 +msgid "Reset missing-glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:623 +msgid "Edit glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:637 +msgid "Set glyph unicode" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:649 +msgid "Remove font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:666 +msgid "Remove glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:683 +msgid "Remove kerning pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:693 +msgid "Missing Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:697 +msgid "From selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:710 +msgid "Glyph name" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:711 +msgid "Matching string" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:714 +msgid "Add Glyph" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:721 +msgid "Get curves from selection..." +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:770 +msgid "Add kerning pair" +msgstr "" + +#. Kerning Setup: +#: ../src/ui/dialog/svg-fonts-dialog.cpp:778 +msgid "Kerning Setup" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:780 +msgid "1st Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:782 +msgid "2nd Glyph:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:785 +msgid "Add pair" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:797 +msgid "First Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:798 +msgid "Second Unicode range" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:805 +msgid "Kerning value:" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:863 +msgid "Set font family" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:872 +msgid "font" +msgstr "" + +#. select_font(font); +#: ../src/ui/dialog/svg-fonts-dialog.cpp:887 +msgid "Add font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:913 ../src/ui/dialog/text-edit.cpp:69 +msgid "_Font" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:921 +msgid "_Global Settings" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:922 +msgid "_Glyphs" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:923 +msgid "_Kerning" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:930 +#: ../src/ui/dialog/svg-fonts-dialog.cpp:931 +msgid "Sample Text" +msgstr "" + +#: ../src/ui/dialog/svg-fonts-dialog.cpp:935 +msgid "Preview Text:" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:370 +#: ../src/ui/tools/gradient-tool.cpp:468 +#: ../src/widgets/gradient-vector.cpp:794 +msgid "Add gradient stop" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:257 +msgid "Set fill" +msgstr "" + +#. TRANSLATORS: An item in context menu on a colour in the swatches +#: ../src/ui/dialog/swatches.cpp:265 +msgid "Set stroke" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:286 +msgid "Edit..." +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:298 +msgid "Convert" +msgstr "" + +#: ../src/ui/dialog/swatches.cpp:542 +#, c-format +msgid "Palettes directory (%s) is unavailable." +msgstr "" + +#. ******************* Symbol Sets ************************ +#: ../src/ui/dialog/symbols.cpp:139 +msgid "Symbol set: " +msgstr "" + +#. Fill in later +#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 +msgid "Current Document" +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:216 +msgid "Add Symbol from the current document." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:225 +msgid "Remove Symbol from the current document." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:239 +msgid "Display more icons in row." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:248 +msgid "Display fewer icons in row." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:258 +msgid "Toggle 'fit' symbols in icon space." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:270 +msgid "Make symbols smaller by zooming out." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:280 +msgid "Make symbols bigger by zooming in." +msgstr "" + +#: ../src/ui/dialog/symbols.cpp:641 +msgid "Unnamed Symbols" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:293 ../src/ui/dialog/tags.cpp:591 +#: ../src/ui/dialog/tags.cpp:705 +msgid "Remove from selection set" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:449 +msgid "Items" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:688 +msgid "Add selection to set" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:846 +msgid "Moved sets" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:1016 +msgid "Add a new selection set" +msgstr "" + +#: ../src/ui/dialog/tags.cpp:1025 +msgid "Remove Item/Set" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:37 +msgid "More info" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:39 +msgid "no template selected" +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:123 +msgid "Path: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:126 +msgid "Description: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:128 +msgid "Keywords: " +msgstr "" + +#: ../src/ui/dialog/template-widget.cpp:135 +msgid "By: " +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:72 +msgid "Set as _default" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:86 +msgid "AaBbCcIiPpQq12369$€¢?.;/()" +msgstr "" + +#. Align buttons +#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1333 +#: ../src/widgets/text-toolbar.cpp:1334 +msgid "Align left" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1341 +#: ../src/widgets/text-toolbar.cpp:1342 +msgid "Align center" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1349 +#: ../src/widgets/text-toolbar.cpp:1350 +msgid "Align right" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 +msgid "Justify (only flowed text)" +msgstr "" + +#. Direction buttons +#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 +msgid "Horizontal text" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1400 +msgid "Vertical text" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:129 ../src/ui/dialog/text-edit.cpp:130 +msgid "Spacing between lines (percent of font size)" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:146 +msgid "Text path offset" +msgstr "" + +#: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 +#: ../src/ui/tools/text-tool.cpp:1455 +msgid "Set text style" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:36 +msgctxt "Arrange dialog" +msgid "Rectangular grid" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:37 +msgctxt "Arrange dialog" +msgid "Polar Coordinates" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:40 +msgctxt "Arrange dialog" +msgid "_Arrange" +msgstr "" + +#: ../src/ui/dialog/tile.cpp:42 +msgid "Arrange selected objects" +msgstr "" + +#. #### begin left panel +#. ### begin notebook +#. ## begin mode page +#. # begin single scan +#. brightness +#: ../src/ui/dialog/tracedialog.cpp:508 +msgid "_Brightness cutoff" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:512 +msgid "Trace by a given brightness level" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:519 +msgid "Brightness cutoff for black/white" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:529 +msgid "Single scan: creates a path" +msgstr "" + +#. canny edge detection +#. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method +#: ../src/ui/dialog/tracedialog.cpp:534 +msgid "_Edge detection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:538 +msgid "Trace with optimal edge detection by J. Canny's algorithm" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:556 +msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:559 +msgid "T_hreshold:" +msgstr "" + +#. quantization +#. TRANSLATORS: Color Quantization: the process of reducing the number +#. of colors in an image by selecting an optimized set of representative +#. colors and then re-applying this reduced set to the original image. +#: ../src/ui/dialog/tracedialog.cpp:571 +msgid "Color _quantization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:575 +msgid "Trace along the boundaries of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:583 +msgid "The number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:586 +msgid "_Colors:" +msgstr "" + +#. swap black and white +#: ../src/ui/dialog/tracedialog.cpp:594 +msgid "_Invert image" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:599 +msgid "Invert black and white regions" +msgstr "" + +#. # end single scan +#. # begin multiple scan +#: ../src/ui/dialog/tracedialog.cpp:609 +msgid "B_rightness steps" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:613 +msgid "Trace the given number of brightness levels" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:621 +msgid "Sc_ans:" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:625 +msgid "The desired number of scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:630 +msgid "Co_lors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:634 +msgid "Trace the given number of reduced colors" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:639 +msgid "_Grays" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:643 +msgid "Same as Colors, but the result is converted to grayscale" +msgstr "" + +#. TRANSLATORS: "Smooth" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:649 +msgid "S_mooth" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:653 +msgid "Apply Gaussian blur to the bitmap before tracing" +msgstr "" + +#. TRANSLATORS: "Stack" is a verb here +#: ../src/ui/dialog/tracedialog.cpp:657 +msgid "Stac_k scans" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:661 +msgid "" +"Stack scans on top of one another (no gaps) instead of tiling (usually with " +"gaps)" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:665 +msgid "Remo_ve background" +msgstr "" + +#. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan +#: ../src/ui/dialog/tracedialog.cpp:670 +msgid "Remove bottom (background) layer when done" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:675 +msgid "Multiple scans: creates a group of paths" +msgstr "" + +#. # end multiple scan +#. ## end mode page +#: ../src/ui/dialog/tracedialog.cpp:684 +msgid "_Mode" +msgstr "" + +#. ## begin option page +#. # potrace parameters +#: ../src/ui/dialog/tracedialog.cpp:690 +msgid "Suppress _speckles" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:692 +msgid "Ignore small spots (speckles) in the bitmap" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:700 +msgid "Speckles of up to this many pixels will be suppressed" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:703 +msgid "S_ize:" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:708 +msgid "Smooth _corners" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:710 +msgid "Smooth out sharp corners of the trace" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:719 +msgid "Increase this to smooth corners more" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:726 +msgid "Optimize p_aths" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:729 +msgid "Try to optimize paths by joining adjacent Bezier curve segments" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:737 +msgid "" +"Increase this to reduce the number of nodes in the trace by more aggressive " +"optimization" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:739 +msgid "To_lerance:" +msgstr "" + +#. ## end option page +#: ../src/ui/dialog/tracedialog.cpp:753 +msgid "O_ptions" +msgstr "" + +#. ### credits +#: ../src/ui/dialog/tracedialog.cpp:757 +msgid "" +"Inkscape bitmap tracing\n" +"is based on Potrace,\n" +"created by Peter Selinger\n" +"\n" +"http://potrace.sourceforge.net" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:760 +msgid "Credits" +msgstr "" + +#. #### begin right panel +#. ## SIOX +#: ../src/ui/dialog/tracedialog.cpp:774 +msgid "SIOX _foreground selection" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:777 +msgid "Cover the area you want to select as the foreground" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:782 +msgid "Live Preview" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:788 +msgid "_Update" +msgstr "" + +#. I guess it's correct to call the "intermediate bitmap" a preview of the trace +#: ../src/ui/dialog/tracedialog.cpp:796 +msgid "" +"Preview the intermediate bitmap with the current settings, without actual " +"tracing" +msgstr "" + +#: ../src/ui/dialog/tracedialog.cpp:800 +msgid "Preview" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/dialog/transformation.cpp:84 +msgid "_Horizontal:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:74 +msgid "Horizontal displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:86 +msgid "_Vertical:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:76 +msgid "Vertical displacement (relative) or position (absolute)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:78 +msgid "Horizontal size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:80 +msgid "Vertical size (absolute or percentage of current)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:82 +msgid "A_ngle:" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:1103 +msgid "Rotation angle (positive = counterclockwise)" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:84 +msgid "" +"Horizontal skew angle (positive = counterclockwise), or absolute " +"displacement, or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:86 +msgid "" +"Vertical skew angle (positive = counterclockwise), or absolute displacement, " +"or percentage displacement" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:89 +msgid "Transformation matrix element A" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:90 +msgid "Transformation matrix element B" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:91 +msgid "Transformation matrix element C" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:92 +msgid "Transformation matrix element D" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:93 +msgid "Transformation matrix element E" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:94 +msgid "Transformation matrix element F" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:99 +msgid "Rela_tive move" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:99 +msgid "" +"Add the specified relative displacement to the current position; otherwise, " +"edit the current absolute position directly" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:100 +msgid "_Scale proportionally" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:100 +msgid "Preserve the width/height ratio of the scaled objects" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:101 +msgid "Apply to each _object separately" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:101 +msgid "" +"Apply the scale/rotate/skew to each selected object separately; otherwise, " +"transform the selection as a whole" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:102 +msgid "Edit c_urrent matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:102 +msgid "" +"Edit the current transform= matrix; otherwise, post-multiply transform= by " +"this matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:115 +msgid "_Scale" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:118 +msgid "_Rotate" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:121 +msgid "Ske_w" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:124 +msgid "Matri_x" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:148 +msgid "Reset the values on the current tab to defaults" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:155 +msgid "Apply transformation to selection" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:331 +msgid "Rotate in a counterclockwise direction" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:337 +msgid "Rotate in a clockwise direction" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:907 +#: ../src/ui/dialog/transformation.cpp:918 +#: ../src/ui/dialog/transformation.cpp:932 +#: ../src/ui/dialog/transformation.cpp:951 +#: ../src/ui/dialog/transformation.cpp:962 +#: ../src/ui/dialog/transformation.cpp:972 +#: ../src/ui/dialog/transformation.cpp:996 +msgid "Transform matrix is singular, not used." +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:1011 +msgid "Edit transformation matrix" +msgstr "" + +#: ../src/ui/dialog/transformation.cpp:1110 +msgid "Rotation angle (positive = clockwise)" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 +msgid "New element node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 +msgid "New text node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 +msgid "nodeAsInXMLdialogTooltip|Delete node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 +#: ../src/ui/dialog/xml-tree.cpp:977 +msgid "Duplicate node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 +#: ../src/ui/dialog/xml-tree.cpp:1013 +msgid "Delete attribute" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:87 +msgid "Set" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:121 +msgid "Drag to reorder nodes" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 +#: ../src/ui/dialog/xml-tree.cpp:1135 +msgid "Unindent node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 +#: ../src/ui/dialog/xml-tree.cpp:1113 +msgid "Indent node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 +#: ../src/ui/dialog/xml-tree.cpp:1064 +msgid "Raise node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 +#: ../src/ui/dialog/xml-tree.cpp:1082 +msgid "Lower node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:208 +msgid "Attribute name" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:223 +msgid "Attribute value" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:311 +msgid "Click to select nodes, drag to rearrange." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:322 +msgid "Click attribute to edit." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:326 +#, c-format +msgid "" +"Attribute %s selected. Press Ctrl+Enter when done editing to " +"commit changes." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:566 +msgid "Drag XML subtree" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:868 +msgid "New element node..." +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:906 +msgid "Cancel" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:943 +msgid "Create new element node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:959 +msgid "Create new text node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:994 +msgid "nodeAsInXMLinHistoryDialog|Delete node" +msgstr "" + +#: ../src/ui/dialog/xml-tree.cpp:1038 +msgid "Change attribute" +msgstr "" + +#: ../src/ui/interface.cpp:748 +msgctxt "Interface setup" +msgid "Default" +msgstr "" + +#: ../src/ui/interface.cpp:748 +msgid "Default interface setup" +msgstr "" + +#: ../src/ui/interface.cpp:749 +msgctxt "Interface setup" +msgid "Custom" +msgstr "" + +#: ../src/ui/interface.cpp:749 +msgid "Setup for custom task" +msgstr "" + +#: ../src/ui/interface.cpp:750 +msgctxt "Interface setup" +msgid "Wide" +msgstr "" + +#: ../src/ui/interface.cpp:750 +msgid "Setup for widescreen work" +msgstr "" + +#: ../src/ui/interface.cpp:862 +#, c-format +msgid "Verb \"%s\" Unknown" +msgstr "" + +#: ../src/ui/interface.cpp:901 +msgid "Open _Recent" +msgstr "" + +#: ../src/ui/interface.cpp:1009 ../src/ui/interface.cpp:1095 +#: ../src/ui/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:544 +msgid "Drop color" +msgstr "" + +#: ../src/ui/interface.cpp:1048 ../src/ui/interface.cpp:1158 +msgid "Drop color on gradient" +msgstr "" + +#: ../src/ui/interface.cpp:1211 +msgid "Could not parse SVG data" +msgstr "" + +#: ../src/ui/interface.cpp:1250 +msgid "Drop SVG" +msgstr "" + +#: ../src/ui/interface.cpp:1263 +msgid "Drop Symbol" +msgstr "" + +#: ../src/ui/interface.cpp:1294 +msgid "Drop bitmap image" +msgstr "" + +#: ../src/ui/interface.cpp:1386 +#, c-format +msgid "" +"A file named \"%s\" already exists. Do " +"you want to replace it?\n" +"\n" +"The file already exists in \"%s\". Replacing it will overwrite its contents." +msgstr "" + +#: ../src/ui/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 +#: ../share/extensions/web-transmit-att.inx.h:19 +msgid "Replace" +msgstr "" + +#: ../src/ui/interface.cpp:1464 +msgid "Go to parent" +msgstr "" + +#. TRANSLATORS: #%1 is the id of the group e.g. , not a number. +#: ../src/ui/interface.cpp:1505 +msgid "Enter group #%1" +msgstr "" + +#. Item dialog +#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2932 +msgid "_Object Properties..." +msgstr "" + +#: ../src/ui/interface.cpp:1650 +msgid "_Select This" +msgstr "" + +#: ../src/ui/interface.cpp:1661 +msgid "Select Same" +msgstr "" + +#. Select same fill and stroke +#: ../src/ui/interface.cpp:1671 +msgid "Fill and Stroke" +msgstr "" + +#. Select same fill color +#: ../src/ui/interface.cpp:1678 +msgid "Fill Color" +msgstr "" + +#. Select same stroke color +#: ../src/ui/interface.cpp:1685 +msgid "Stroke Color" +msgstr "" + +#. Select same stroke style +#: ../src/ui/interface.cpp:1692 +msgid "Stroke Style" +msgstr "" + +#. Select same stroke style +#: ../src/ui/interface.cpp:1699 +msgid "Object type" +msgstr "" + +#. Move to layer +#: ../src/ui/interface.cpp:1706 +msgid "_Move to layer ..." +msgstr "" + +#. Create link +#: ../src/ui/interface.cpp:1716 +msgid "Create _Link" +msgstr "" + +#. Set mask +#: ../src/ui/interface.cpp:1739 +msgid "Set Mask" +msgstr "" + +#. Release mask +#: ../src/ui/interface.cpp:1750 +msgid "Release Mask" +msgstr "" + +#. SSet Clip Group +#: ../src/ui/interface.cpp:1761 +msgid "Create Clip G_roup" +msgstr "" + +#. Set Clip +#: ../src/ui/interface.cpp:1768 +msgid "Set Cl_ip" +msgstr "" + +#. Release Clip +#: ../src/ui/interface.cpp:1779 +msgid "Release C_lip" +msgstr "" + +#. Group +#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2565 +msgid "_Group" +msgstr "" + +#: ../src/ui/interface.cpp:1861 +msgid "Create link" +msgstr "" + +#. Ungroup +#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2567 +msgid "_Ungroup" +msgstr "" + +#. Link dialog +#: ../src/ui/interface.cpp:1921 +msgid "Link _Properties..." +msgstr "" + +#. Select item +#: ../src/ui/interface.cpp:1927 +msgid "_Follow Link" +msgstr "" + +#. Reset transformations +#: ../src/ui/interface.cpp:1933 +msgid "_Remove Link" +msgstr "" + +#: ../src/ui/interface.cpp:1964 +msgid "Remove link" +msgstr "" + +#. Image properties +#: ../src/ui/interface.cpp:1975 +msgid "Image _Properties..." +msgstr "" + +#. Edit externally +#: ../src/ui/interface.cpp:1981 +msgid "Edit Externally..." +msgstr "" + +#. Trace Bitmap +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/ui/interface.cpp:1990 ../src/verbs.cpp:2628 +msgid "_Trace Bitmap..." +msgstr "" + +#. Trace Pixel Art +#: ../src/ui/interface.cpp:1999 +msgid "Trace Pixel Art" +msgstr "" + +#: ../src/ui/interface.cpp:2009 +msgctxt "Context menu" +msgid "Embed Image" +msgstr "" + +#: ../src/ui/interface.cpp:2020 +msgctxt "Context menu" +msgid "Extract Image..." +msgstr "" + +#. Item dialog +#. Fill and Stroke dialog +#: ../src/ui/interface.cpp:2165 ../src/ui/interface.cpp:2185 +#: ../src/verbs.cpp:2895 +msgid "_Fill and Stroke..." +msgstr "" + +#. Edit Text dialog +#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2914 +msgid "_Text and Font..." +msgstr "" + +#. Spellcheck dialog +#: ../src/ui/interface.cpp:2197 ../src/verbs.cpp:2922 +msgid "Check Spellin_g..." +msgstr "" + +#: ../src/ui/object-edit.cpp:464 +msgid "" +"Adjust the horizontal rounding radius; with Ctrl to make the " +"vertical radius the same" +msgstr "" + +#: ../src/ui/object-edit.cpp:469 +msgid "" +"Adjust the vertical rounding radius; with Ctrl to make the " +"horizontal radius the same" +msgstr "" + +#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 +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:726 ../src/ui/object-edit.cpp:730 +#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 +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:742 ../src/ui/object-edit.cpp:746 +#: ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 +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:758 +msgid "Move the box in perspective" +msgstr "" + +#: ../src/ui/object-edit.cpp:997 +msgid "Adjust ellipse width, with Ctrl to make circle" +msgstr "" + +#: ../src/ui/object-edit.cpp:1001 +msgid "Adjust ellipse height, with Ctrl to make circle" +msgstr "" + +#: ../src/ui/object-edit.cpp:1005 +msgid "" +"Position the start point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/ui/object-edit.cpp:1010 +msgid "" +"Position the end point of the arc or segment; with Ctrl to " +"snap angle; drag inside the ellipse for arc, outside for " +"segment" +msgstr "" + +#: ../src/ui/object-edit.cpp:1156 +msgid "" +"Adjust the tip radius of the star or polygon; with Shift to " +"round; with Alt to randomize" +msgstr "" + +#: ../src/ui/object-edit.cpp:1164 +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:1359 +msgid "" +"Roll/unroll the spiral from inside; with Ctrl to snap angle; " +"with Alt to converge/diverge" +msgstr "" + +#: ../src/ui/object-edit.cpp:1363 +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:1410 +msgid "Adjust the offset distance" +msgstr "" + +#: ../src/ui/object-edit.cpp:1447 +msgid "Drag to resize the flowed text frame" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:119 +msgid "Drag curve" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:176 +msgid "Add node" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:186 +msgctxt "Path segment tip" +msgid "Shift: click to toggle segment selection" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:190 +msgctxt "Path segment tip" +msgid "Ctrl+Alt: click to insert a node" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:194 +msgctxt "Path segment tip" +msgid "" +"Linear segment: drag to convert to a Bezier segment, doubleclick to " +"insert node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" + +#: ../src/ui/tool/curve-drag-point.cpp:198 +msgctxt "Path segment tip" +msgid "" +"Bezier segment: drag to shape the segment, doubleclick to insert " +"node, click to select (more: Shift, Ctrl+Alt)" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:315 +msgid "Retract handles" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 +msgid "Change node type" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:323 +msgid "Straighten segments" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:325 +msgid "Make segments curves" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:333 +msgid "Add nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:339 +msgid "Add extremum nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:346 +msgid "Duplicate nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:409 +#: ../src/widgets/node-toolbar.cpp:408 +msgid "Join nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:416 +#: ../src/widgets/node-toolbar.cpp:419 +msgid "Break nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:423 +msgid "Delete nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:768 +msgid "Move nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:771 +msgid "Move nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:775 +msgid "Move nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:786 +#: ../src/ui/tool/multi-path-manipulator.cpp:792 +msgid "Scale nodes uniformly" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:789 +msgid "Scale nodes" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:796 +msgid "Scale nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:800 +msgid "Scale nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:804 +msgid "Skew nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:808 +msgid "Skew nodes vertically" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:812 +msgid "Flip nodes horizontally" +msgstr "" + +#: ../src/ui/tool/multi-path-manipulator.cpp:815 +msgid "Flip nodes vertically" +msgstr "" + +#: ../src/ui/tool/node.cpp:271 +msgid "Cusp node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:272 +msgid "Smooth node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:273 +msgid "Symmetric node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:274 +msgid "Auto-smooth node handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:493 +msgctxt "Path handle tip" +msgid "more: Shift, Ctrl, Alt" +msgstr "" + +#: ../src/ui/tool/node.cpp:495 +msgctxt "Path handle tip" +msgid "more: Ctrl" +msgstr "" + +#: ../src/ui/tool/node.cpp:497 +msgctxt "Path handle tip" +msgid "more: Ctrl, Alt" +msgstr "" + +#: ../src/ui/tool/node.cpp:503 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " +"increments while rotating both handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:508 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Ctrl+Alt: preserve length and snap rotation angle to %g° increments" +msgstr "" + +#: ../src/ui/tool/node.cpp:514 +msgctxt "Path handle tip" +msgid "Shift+Alt: preserve handle length and rotate both handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:517 +msgctxt "Path handle tip" +msgid "Alt: preserve handle length while dragging" +msgstr "" + +#: ../src/ui/tool/node.cpp:524 +#, c-format +msgctxt "Path handle tip" +msgid "" +"Shift+Ctrl: snap rotation angle to %g° increments and rotate both " +"handles" +msgstr "" + +#: ../src/ui/tool/node.cpp:528 +msgctxt "Path handle tip" +msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" +msgstr "" + +#: ../src/ui/tool/node.cpp:531 +#, c-format +msgctxt "Path handle tip" +msgid "Ctrl: snap rotation angle to %g° increments, click to retract" +msgstr "" + +#: ../src/ui/tool/node.cpp:536 +msgctxt "Path hande tip" +msgid "Shift: rotate both handles by the same angle" +msgstr "" + +#: ../src/ui/tool/node.cpp:539 +msgctxt "Path hande tip" +msgid "Shift: move handle" +msgstr "" + +#: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 +#, c-format +msgctxt "Path handle tip" +msgid "Auto node handle: drag to convert to smooth node (%s)" +msgstr "" + +#: ../src/ui/tool/node.cpp:553 +#, c-format +msgctxt "Path handle tip" +msgid "BSpline node handle: Shift to drag, double click to reset (%s)" +msgstr "" + +#: ../src/ui/tool/node.cpp:573 +#, c-format +msgctxt "Path handle tip" +msgid "Move handle by %s, %s; angle %.2f°, length %s" +msgstr "" + +#: ../src/ui/tool/node.cpp:1447 +msgctxt "Path node tip" +msgid "Shift: drag out a handle, click to toggle selection" +msgstr "" + +#: ../src/ui/tool/node.cpp:1449 +msgctxt "Path node tip" +msgid "Shift: click to toggle selection" +msgstr "" + +#: ../src/ui/tool/node.cpp:1454 +msgctxt "Path node tip" +msgid "Ctrl+Alt: move along handle lines, click to delete node" +msgstr "" + +#: ../src/ui/tool/node.cpp:1457 +msgctxt "Path node tip" +msgid "Ctrl: move along axes, click to change node type" +msgstr "" + +#: ../src/ui/tool/node.cpp:1461 +msgctxt "Path node tip" +msgid "Alt: sculpt nodes" +msgstr "" + +#: ../src/ui/tool/node.cpp:1469 +#, c-format +msgctxt "Path node tip" +msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1472 +#, c-format +msgctxt "Path node tip" +msgid "" +"BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, " +"Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1475 +#, c-format +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to toggle scale/rotation handles " +"(more: Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1479 +#, c-format +msgctxt "Path node tip" +msgid "" +"%s: drag to shape the path, click to select only this node (more: " +"Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1482 +msgctxt "Path node tip" +msgid "" +"BSpline node: drag to shape the path, click to select only this node " +"(more: Shift, Ctrl, Alt)" +msgstr "" + +#: ../src/ui/tool/node.cpp:1495 +#, c-format +msgctxt "Path node tip" +msgid "Move node by %s, %s" +msgstr "" + +#: ../src/ui/tool/node.cpp:1506 +msgid "Symmetric node" +msgstr "" + +#: ../src/ui/tool/node.cpp:1507 +msgid "Auto-smooth node" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:836 +msgid "Scale handle" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:860 +msgid "Rotate handle" +msgstr "" + +#. We need to call MPM's method because it could have been our last node +#: ../src/ui/tool/path-manipulator.cpp:1524 +#: ../src/widgets/node-toolbar.cpp:397 +msgid "Delete node" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1532 +msgid "Cycle node type" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1547 +msgid "Drag handle" +msgstr "" + +#: ../src/ui/tool/path-manipulator.cpp:1556 +msgid "Retract handle" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:195 +msgctxt "Transform handle tip" +msgid "Shift+Ctrl: scale uniformly about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:197 +msgctxt "Transform handle tip" +msgid "Ctrl: scale uniformly" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:202 +msgctxt "Transform handle tip" +msgid "" +"Shift+Alt: scale using an integer ratio about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:204 +msgctxt "Transform handle tip" +msgid "Shift: scale from the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:207 +msgctxt "Transform handle tip" +msgid "Alt: scale using an integer ratio" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:209 +msgctxt "Transform handle tip" +msgid "Scale handle: drag to scale the selection" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:214 +#, c-format +msgctxt "Transform handle tip" +msgid "Scale by %.2f%% x %.2f%%" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:438 +#, c-format +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " +"increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:441 +msgctxt "Transform handle tip" +msgid "Shift: rotate around the opposite corner" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:445 +#, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap angle to %f° increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:447 +msgctxt "Transform handle tip" +msgid "" +"Rotation handle: drag to rotate the selection around the rotation " +"center" +msgstr "" + +#. event +#: ../src/ui/tool/transform-handle-set.cpp:452 +#, c-format +msgctxt "Transform handle tip" +msgid "Rotate by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:578 +#, c-format +msgctxt "Transform handle tip" +msgid "" +"Shift+Ctrl: skew about the rotation center with snapping to %f° " +"increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:581 +msgctxt "Transform handle tip" +msgid "Shift: skew about the rotation center" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:585 +#, c-format +msgctxt "Transform handle tip" +msgid "Ctrl: snap skew angle to %f° increments" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:588 +msgctxt "Transform handle tip" +msgid "" +"Skew handle: drag to skew (shear) selection about the opposite handle" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:594 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew horizontally by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:597 +#, c-format +msgctxt "Transform handle tip" +msgid "Skew vertically by %.2f°" +msgstr "" + +#: ../src/ui/tool/transform-handle-set.cpp:656 +msgctxt "Transform handle tip" +msgid "Rotation center: drag to change the origin of transforms" +msgstr "" + +#: ../src/ui/tools-switch.cpp:95 +msgid "" +"Click to Select and Transform objects, Drag to select many " +"objects." +msgstr "" + +#: ../src/ui/tools-switch.cpp:96 +msgid "Modify selected path points (nodes) directly." +msgstr "" + +#: ../src/ui/tools-switch.cpp:97 +msgid "To tweak a path by pushing, select it and drag over it." +msgstr "" + +#: ../src/ui/tools-switch.cpp:98 +msgid "" +"Drag, click or click and scroll to spray the selected " +"objects." +msgstr "" + +#: ../src/ui/tools-switch.cpp:99 +msgid "" +"Drag to create a rectangle. Drag controls to round corners and " +"resize. Click to select." +msgstr "" + +#: ../src/ui/tools-switch.cpp:100 +msgid "" +"Drag to create a 3D box. Drag controls to resize in " +"perspective. Click to select (with Ctrl+Alt for single faces)." +msgstr "" + +#: ../src/ui/tools-switch.cpp:101 +msgid "" +"Drag to create an ellipse. Drag controls to make an arc or " +"segment. Click to select." +msgstr "" + +#: ../src/ui/tools-switch.cpp:102 +msgid "" +"Drag to create a star. Drag controls to edit the star shape. " +"Click to select." +msgstr "" + +#: ../src/ui/tools-switch.cpp:103 +msgid "" +"Drag to create a spiral. Drag controls to edit the spiral " +"shape. Click to select." +msgstr "" + +#: ../src/ui/tools-switch.cpp:104 +msgid "" +"Drag to create a freehand line. Shift appends to selected " +"path, Alt activates sketch mode." +msgstr "" + +#: ../src/ui/tools-switch.cpp:105 +msgid "" +"Click or click and drag to start a path; with Shift to " +"append to selected path. Ctrl+click to create single dots (straight " +"line modes only)." +msgstr "" + +#: ../src/ui/tools-switch.cpp:106 +msgid "" +"Drag to draw a calligraphic stroke; with Ctrl to track a guide " +"path. Arrow keys adjust width (left/right) and angle (up/down)." +msgstr "" + +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1593 +msgid "" +"Click to select or create text, drag to create flowed text; " +"then type." +msgstr "" + +#: ../src/ui/tools-switch.cpp:108 +msgid "" +"Drag or double click to create a gradient on selected objects, " +"drag handles to adjust gradients." +msgstr "" + +#: ../src/ui/tools-switch.cpp:109 +msgid "" +"Drag or double click to create a mesh on selected objects, " +"drag handles to adjust meshes." +msgstr "" + +#: ../src/ui/tools-switch.cpp:110 +msgid "" +"Click or drag around an area to zoom in, Shift+click to " +"zoom out." +msgstr "" + +#: ../src/ui/tools-switch.cpp:111 +msgid "Drag to measure the dimensions of objects." +msgstr "" + +#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:285 +msgid "" +"Click to set fill, Shift+click to set stroke; drag to " +"average color in area; with Alt to pick inverse color; Ctrl+C " +"to copy the color under mouse to clipboard" +msgstr "" + +#: ../src/ui/tools-switch.cpp:113 +msgid "Click and drag between shapes to create a connector." +msgstr "" + +#: ../src/ui/tools-switch.cpp:114 +msgid "" +"Click to paint a bounded area, Shift+click to union the new " +"fill with the current selection, Ctrl+click to change the clicked " +"object's fill and stroke to the current setting." +msgstr "" + +#: ../src/ui/tools-switch.cpp:115 +msgid "Drag to erase." +msgstr "" + +#: ../src/ui/tools-switch.cpp:116 +msgid "Choose a subtool from the toolbar" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:252 +msgid "" +"Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +msgid "Shift: draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:422 +#, c-format +msgid "" +"Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " +"to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:424 +#, c-format +msgid "" +"Ellipse: %s × %s; with Ctrl to make square or integer-" +"ratio ellipse; with Shift to draw around the starting point" +msgstr "" + +#: ../src/ui/tools/arc-tool.cpp:447 +msgid "Create ellipse" +msgstr "" + +#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 +#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 +#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +msgid "Change perspective (angle of PLs)" +msgstr "" + +#. status text +#: ../src/ui/tools/box3d-tool.cpp:583 +msgid "3D Box; with Shift to extrude along the Z axis" +msgstr "" + +#: ../src/ui/tools/box3d-tool.cpp:609 +msgid "Create 3D box" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:536 +msgid "" +"Guide path selected; start drawing along the guide with Ctrl" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:538 +msgid "Select a guide path to track with Ctrl" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking: connection to guide path lost!" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:673 +msgid "Tracking a guide path" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:676 +msgid "Drawing a calligraphic stroke" +msgstr "" + +#: ../src/ui/tools/calligraphic-tool.cpp:977 +msgid "Draw calligraphic stroke" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:499 +msgid "Creating new connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:740 +msgid "Connector endpoint drag cancelled." +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:783 +msgid "Reroute connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:936 +msgid "Create connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:953 +msgid "Finishing connector" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1191 +msgid "Connector endpoint: drag to reroute or connect to new shapes" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1336 +msgid "Select at least one non-connector object." +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1341 +#: ../src/widgets/connector-toolbar.cpp:314 +msgid "Make connectors avoid selected objects" +msgstr "" + +#: ../src/ui/tools/connector-tool.cpp:1342 +#: ../src/widgets/connector-toolbar.cpp:324 +msgid "Make connectors ignore selected objects" +msgstr "" + +#. alpha of color under cursor, to show in the statusbar +#. locale-sensitive printf is OK, since this goes to the UI, not into SVG +#: ../src/ui/tools/dropper-tool.cpp:281 +#, c-format +msgid " alpha %.3g" +msgstr "" + +#. where the color is picked, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:283 +#, c-format +msgid ", averaged with radius %d" +msgstr "" + +#: ../src/ui/tools/dropper-tool.cpp:283 +msgid " under cursor" +msgstr "" + +#. message, to show in the statusbar +#: ../src/ui/tools/dropper-tool.cpp:285 +msgid "Release mouse to set color." +msgstr "" + +#: ../src/ui/tools/dropper-tool.cpp:333 +msgid "Set picked color" +msgstr "" + +#: ../src/ui/tools/eraser-tool.cpp:437 +msgid "Drawing an eraser stroke" +msgstr "" + +#: ../src/ui/tools/eraser-tool.cpp:770 +msgid "Draw eraser stroke" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:192 +msgid "Visible Colors" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:210 +msgctxt "Flood autogap" +msgid "None" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:211 +msgctxt "Flood autogap" +msgid "Small" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:212 +msgctxt "Flood autogap" +msgid "Medium" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:213 +msgctxt "Flood autogap" +msgid "Large" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:435 +msgid "Too much inset, the result is empty." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:476 +#, c-format +msgid "" +"Area filled, path with %d node created and unioned with selection." +msgid_plural "" +"Area filled, path with %d nodes created and unioned with selection." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/flood-tool.cpp:482 +#, c-format +msgid "Area filled, path with %d node created." +msgid_plural "Area filled, path with %d nodes created." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +msgid "Area is not bounded, cannot fill." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1065 +msgid "" +"Only the visible part of the bounded area was filled. If you want to " +"fill all of the area, undo, zoom out, and fill again." +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +msgid "Fill bounded area" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1099 +msgid "Set style on object" +msgstr "" + +#: ../src/ui/tools/flood-tool.cpp:1159 +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:557 +msgid "Path is closed." +msgstr "" + +#. We hit bot start and end of single curve, closing paths +#: ../src/ui/tools/freehand-base.cpp:572 +msgid "Closing path." +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:709 +msgid "Draw path" +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:862 +msgid "Creating single dot" +msgstr "" + +#: ../src/ui/tools/freehand-base.cpp:863 +msgid "Create single dot" +msgstr "" + +#. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#, c-format +msgid "%s selected" +msgstr "" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#, c-format +msgid " out of %d gradient handle" +msgid_plural " out of %d gradient handles" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message +#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 +#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 +#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#, c-format +msgid " on %d selected object" +msgid_plural " on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#, c-format +msgid "" +"One handle merging %d stop (drag with Shift to separate) selected" +msgid_plural "" +"One handle merging %d stops (drag with Shift to separate) selected" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) +#: ../src/ui/tools/gradient-tool.cpp:148 +#, c-format +msgid "%d gradient handle selected out of %d" +msgid_plural "%d gradient handles selected out of %d" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/gradient-tool.cpp:155 +#, c-format +msgid "No gradient handles selected out of %d on %d selected object" +msgid_plural "" +"No gradient handles selected out of %d on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/gradient-tool.cpp:443 +msgid "Simplify gradient" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:519 +msgid "Create default gradient" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:578 ../src/ui/tools/mesh-tool.cpp:570 +msgid "Draw around handles to select them" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:701 +msgid "Ctrl: snap gradient angle" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:702 +msgid "Shift: draw gradient around the starting point" +msgstr "" + +#: ../src/ui/tools/gradient-tool.cpp:956 ../src/ui/tools/mesh-tool.cpp:993 +#, 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:960 ../src/ui/tools/mesh-tool.cpp:997 +msgid "Select objects on which to create gradient." +msgstr "" + +#: ../src/ui/tools/lpe-tool.cpp:206 +msgid "Choose a construction tool from the toolbar." +msgstr "" + +#. TRANSLATORS: Mind the space in front. This is part of a compound message +#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 +#, c-format +msgid " out of %d mesh handle" +msgid_plural " out of %d mesh handles" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/mesh-tool.cpp:150 +#, c-format +msgid "%d mesh handle selected out of %d" +msgid_plural "%d mesh handles selected out of %d" +msgstr[0] "" +msgstr[1] "" + +#. TRANSLATORS: The plural refers to number of selected objects +#: ../src/ui/tools/mesh-tool.cpp:157 +#, c-format +msgid "No mesh handles selected out of %d on %d selected object" +msgid_plural "No mesh handles selected out of %d on %d selected objects" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/mesh-tool.cpp:321 +msgid "Split mesh row/column" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:407 +msgid "Toggled mesh path type." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:411 +msgid "Approximated arc for mesh side." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:415 +msgid "Toggled mesh tensors." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:419 +msgid "Smoothed mesh corner color." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:423 +msgid "Picked mesh corner color." +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:498 +msgid "Create default mesh" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:718 +msgid "FIXMECtrl: snap mesh angle" +msgstr "" + +#: ../src/ui/tools/mesh-tool.cpp:719 +msgid "FIXMEShift: draw mesh around the starting point" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:612 +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:616 +msgctxt "Node tool tip" +msgid "Shift: drag to add nodes to the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:628 +#, 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:634 +#, 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:640 +#, c-format +msgctxt "Node tool tip" +msgid "%s Drag to select nodes, click clear the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:649 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to edit only this object" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:652 +msgctxt "Node tool tip" +msgid "Drag to select nodes, click to clear the selection" +msgstr "" + +#: ../src/ui/tools/node-tool.cpp:657 +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:660 +msgctxt "Node tool tip" +msgid "Drag to select objects to edit" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:233 ../src/ui/tools/pencil-tool.cpp:466 +msgid "Drawing cancelled" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:469 ../src/ui/tools/pencil-tool.cpp:204 +msgid "Continuing selected path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:479 ../src/ui/tools/pencil-tool.cpp:212 +msgid "Creating new path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:481 ../src/ui/tools/pencil-tool.cpp:215 +msgid "Appending to selected path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:646 +msgid "Click or click and drag to close and finish the path." +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:648 +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:660 +msgid "" +"Click or click and drag to continue the path from this point." +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:662 +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:2036 +#, c-format +msgid "" +"Curve segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:2037 +#, c-format +msgid "" +"Line segment: angle %3.2f°, distance %s; with Ctrl to " +"snap angle, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:2040 +#, c-format +msgid "" +"Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:2041 +#, c-format +msgid "" +"Line segment: angle %3.2f°, distance %s; with Shift+Click " +"make a cusp node, Enter to finish the path" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:2058 +#, c-format +msgid "" +"Curve handle: angle %3.2f°, length %s; with Ctrl to snap " +"angle" +msgstr "" + +#: ../src/ui/tools/pen-tool.cpp:2082 +#, 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:2083 +#, 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:2217 +msgid "Drawing finished" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:316 +msgid "Release here to close and finish the path." +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:322 +msgid "Drawing a freehand path" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:327 +msgid "Drag to continue the path from this point." +msgstr "" + +#. Write curves to object +#: ../src/ui/tools/pencil-tool.cpp:412 +msgid "Finishing freehand" +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:515 +msgid "" +"Sketch mode: holding Alt interpolates between sketched paths. " +"Release Alt to finalize." +msgstr "" + +#: ../src/ui/tools/pencil-tool.cpp:542 +msgid "Finishing freehand sketch" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:288 +msgid "" +"Ctrl: make square or integer-ratio rect, lock a rounded corner " +"circular" +msgstr "" + +#: ../src/ui/tools/rect-tool.cpp:449 +#, 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:452 +#, 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:454 +#, 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:458 +#, 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:481 +msgid "Create rectangle" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:169 +msgid "Click selection to toggle scale/rotation handles" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:170 +msgid "" +"No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " +"or drag around objects to select." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:223 +msgid "Move canceled." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:231 +msgid "Selection canceled." +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:653 +msgid "" +"Draw over objects to select them; release Alt to switch to " +"rubberband selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:655 +msgid "" +"Drag around objects to select them; press Alt to switch to " +"touch selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:950 +msgid "Ctrl: click to select in groups; drag to move hor/vert" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:951 +msgid "Shift: click to toggle select; drag for rubberband selection" +msgstr "" + +#: ../src/ui/tools/select-tool.cpp:952 +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:1160 +msgid "Selected object is not a group. Cannot enter." +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:259 +msgid "Ctrl: snap angle" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:261 +msgid "Alt: lock spiral radius" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:400 +#, c-format +msgid "" +"Spiral: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/spiral-tool.cpp:421 +msgid "Create spiral" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 +#, c-format +msgid "%i object selected" +msgid_plural "%i objects selected" +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 +msgid "Nothing selected" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:199 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray copies of the initial " +"selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:202 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray clones of the initial " +"selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:205 +#, c-format +msgid "" +"%s. Drag, click or click and scroll to spray in a single path of the " +"initial selection." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:664 +msgid "Nothing selected! Select objects to spray." +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:739 ../src/widgets/spray-toolbar.cpp:166 +msgid "Spray with copies" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:743 ../src/widgets/spray-toolbar.cpp:173 +msgid "Spray with clones" +msgstr "" + +#: ../src/ui/tools/spray-tool.cpp:747 +msgid "Spray in single path" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:271 +msgid "Ctrl: snap angle; keep rays radial" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:417 +#, c-format +msgid "" +"Polygon: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:418 +#, c-format +msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" +msgstr "" + +#: ../src/ui/tools/star-tool.cpp:446 +msgid "Create star" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:379 +msgid "Click to edit the text, drag to select part of the text." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:381 +msgid "" +"Click to edit the flowed text, drag to select part of the text." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:435 +msgid "Create text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:460 +msgid "Non-printable character" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:475 +msgid "Insert Unicode character" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:510 +#, c-format +msgid "Unicode (Enter to finish): %s: %s" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 +msgid "Unicode (Enter to finish): " +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:595 +#, c-format +msgid "Flowed text frame: %s × %s" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:653 +msgid "Type text; Enter to start new line." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:664 +msgid "Flowed text is created." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:665 +msgid "Create flowed text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:667 +msgid "" +"The frame is too small for the current font size. Flowed text not " +"created." +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:803 +msgid "No-break space" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:804 +msgid "Insert no-break space" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:840 +msgid "Make bold" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:857 +msgid "Make italic" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:895 +msgid "New line" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:936 +msgid "Backspace" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:990 +msgid "Kern to the left" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1014 +msgid "Kern to the right" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1038 +msgid "Kern up" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1062 +msgid "Kern down" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1137 +msgid "Rotate counterclockwise" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1157 +msgid "Rotate clockwise" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1173 +msgid "Contract line spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1179 +msgid "Contract letter spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1196 +msgid "Expand line spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1202 +msgid "Expand letter spacing" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1332 +msgid "Paste text" +msgstr "" + +#: ../src/ui/tools/text-tool.cpp:1583 +#, c-format +msgid "" +"Type or edit flowed text (%d character%s); Enter to start new " +"paragraph." +msgid_plural "" +"Type or edit flowed text (%d characters%s); Enter to start new " +"paragraph." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/text-tool.cpp:1585 +#, c-format +msgid "Type or edit text (%d character%s); Enter to start new line." +msgid_plural "" +"Type or edit text (%d characters%s); Enter to start new line." +msgstr[0] "" +msgstr[1] "" + +#: ../src/ui/tools/text-tool.cpp:1695 +msgid "Type text" +msgstr "" + +#: ../src/ui/tools/tool-base.cpp:705 +msgid "Space+mouse move to pan canvas" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:174 +#, c-format +msgid "%s. Drag to move." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:178 +#, c-format +msgid "%s. Drag or click to move in; with Shift to move out." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:186 +#, c-format +msgid "%s. Drag or click to move randomly." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:190 +#, c-format +msgid "%s. Drag or click to scale down; with Shift to scale up." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:198 +#, c-format +msgid "" +"%s. Drag or click to rotate clockwise; with Shift, " +"counterclockwise." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:206 +#, c-format +msgid "%s. Drag or click to duplicate; with Shift, delete." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:214 +#, c-format +msgid "%s. Drag to push paths." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:218 +#, c-format +msgid "%s. Drag or click to inset paths; with Shift to outset." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:226 +#, c-format +msgid "%s. Drag or click to attract paths; with Shift to repel." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:234 +#, c-format +msgid "%s. Drag or click to roughen paths." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:238 +#, c-format +msgid "%s. Drag or click to paint objects with color." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:242 +#, c-format +msgid "%s. Drag or click to randomize colors." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:246 +#, c-format +msgid "" +"%s. Drag or click to increase blur; with Shift to decrease." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1205 +msgid "Nothing selected! Select objects to tweak." +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1239 +msgid "Move tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1243 +msgid "Move in/out tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1247 +msgid "Move jitter tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1251 +msgid "Scale tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1255 +msgid "Rotate tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1259 +msgid "Duplicate/delete tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1263 +msgid "Push path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1267 +msgid "Shrink/grow path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1271 +msgid "Attract/repel path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1275 +msgid "Roughen path tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1279 +msgid "Color paint tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1283 +msgid "Color jitter tweak" +msgstr "" + +#: ../src/ui/tools/tweak-tool.cpp:1287 +msgid "Blur tweak" +msgstr "" + +#: ../src/ui/widget/filter-effect-chooser.cpp:26 +msgid "_Blur:" +msgstr "" + +#: ../src/ui/widget/filter-effect-chooser.cpp:29 +msgid "Blur (%)" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:118 +msgid "Toggle current layer visibility" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:139 +msgid "Lock or unlock current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:142 +msgid "Current layer" +msgstr "" + +#: ../src/ui/widget/layer-selector.cpp:583 +msgid "(root)" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:40 +msgid "Proprietary" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:43 +msgid "MetadataLicence|Other" +msgstr "" + +#: ../src/ui/widget/licensor.cpp:72 +msgid "Document license updated" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:47 +#: ../src/ui/widget/selected-style.cpp:1119 +#: ../src/ui/widget/selected-style.cpp:1120 +msgid "Opacity (%)" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:159 +msgid "Change blur" +msgstr "" + +#: ../src/ui/widget/object-composite-settings.cpp:199 +#: ../src/ui/widget/selected-style.cpp:943 +#: ../src/ui/widget/selected-style.cpp:1245 +msgid "Change opacity" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:235 +msgid "U_nits:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:236 +msgid "Width of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:237 +msgid "Height of paper" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "T_op margin:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:238 +msgid "Top margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:239 +msgid "L_eft:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:239 +msgid "Left margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:240 +msgid "Ri_ght:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:240 +msgid "Right margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Botto_m:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:241 +msgid "Bottom margin" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:296 +msgid "Orientation:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:299 +msgid "_Landscape" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:304 +msgid "_Portrait" +msgstr "" + +#. ## Set up custom size frame +#: ../src/ui/widget/page-sizer.cpp:322 +msgid "Custom size" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:367 +msgid "Resi_ze page to content..." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:419 +msgid "_Resize page to drawing or selection" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:420 +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:489 +msgid "Set page size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:117 +msgid "List" +msgstr "" + +#: ../src/ui/widget/panel.cpp:140 +msgctxt "Swatches" +msgid "Size" +msgstr "" + +#: ../src/ui/widget/panel.cpp:144 +msgctxt "Swatches height" +msgid "Tiny" +msgstr "" + +#: ../src/ui/widget/panel.cpp:145 +msgctxt "Swatches height" +msgid "Small" +msgstr "" + +#: ../src/ui/widget/panel.cpp:146 +msgctxt "Swatches height" +msgid "Medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:147 +msgctxt "Swatches height" +msgid "Large" +msgstr "" + +#: ../src/ui/widget/panel.cpp:148 +msgctxt "Swatches height" +msgid "Huge" +msgstr "" + +#: ../src/ui/widget/panel.cpp:170 +msgctxt "Swatches" +msgid "Width" +msgstr "" + +#: ../src/ui/widget/panel.cpp:174 +msgctxt "Swatches width" +msgid "Narrower" +msgstr "" + +#: ../src/ui/widget/panel.cpp:175 +msgctxt "Swatches width" +msgid "Narrow" +msgstr "" + +#: ../src/ui/widget/panel.cpp:176 +msgctxt "Swatches width" +msgid "Medium" +msgstr "" + +#: ../src/ui/widget/panel.cpp:177 +msgctxt "Swatches width" +msgid "Wide" +msgstr "" + +#: ../src/ui/widget/panel.cpp:178 +msgctxt "Swatches width" +msgid "Wider" +msgstr "" + +#: ../src/ui/widget/panel.cpp:208 +msgctxt "Swatches" +msgid "Border" +msgstr "" + +#: ../src/ui/widget/panel.cpp:212 +msgctxt "Swatches border" +msgid "None" +msgstr "" + +#: ../src/ui/widget/panel.cpp:213 +msgctxt "Swatches border" +msgid "Solid" +msgstr "" + +#: ../src/ui/widget/panel.cpp:214 +msgctxt "Swatches border" +msgid "Wide" +msgstr "" + +#. TRANSLATORS: "Wrap" indicates how colour swatches are displayed +#: ../src/ui/widget/panel.cpp:245 +msgctxt "Swatches" +msgid "Wrap" +msgstr "" + +#: ../src/ui/widget/preferences-widget.cpp:802 +msgid "_Browse..." +msgstr "" + +#: ../src/ui/widget/preferences-widget.cpp:888 +msgid "Select a bitmap editor" +msgstr "" + +#: ../src/ui/widget/random.cpp:84 +msgid "" +"Reseed the random number generator; this creates a different sequence of " +"random numbers." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:33 +msgid "Backend" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:34 +msgid "Vector" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:35 +msgid "Bitmap" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:36 +msgid "Bitmap options" +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:38 +msgid "Preferred resolution of rendering, in dots per inch." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:47 +msgid "" +"Render using Cairo vector operations. The resulting image is usually " +"smaller in file size and can be arbitrarily scaled, but some filter effects " +"will not be correctly rendered." +msgstr "" + +#: ../src/ui/widget/rendering-options.cpp:52 +msgid "" +"Render everything as bitmap. The resulting image is usually larger in file " +"size and cannot be arbitrarily scaled without quality loss, but all objects " +"will be rendered exactly as displayed." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:131 +#: ../src/ui/widget/style-swatch.cpp:127 +msgid "Fill:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:133 +msgid "O:" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:178 +msgid "N/A" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:181 +#: ../src/ui/widget/selected-style.cpp:1112 +#: ../src/ui/widget/selected-style.cpp:1113 +#: ../src/widgets/gradient-toolbar.cpp:162 +msgid "Nothing selected" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:184 +msgctxt "Fill" +msgid "None" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:186 +msgctxt "Stroke" +msgid "None" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:321 +msgctxt "Fill and stroke" +msgid "No fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:190 +#: ../src/ui/widget/style-swatch.cpp:321 +msgctxt "Fill and stroke" +msgid "No stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:192 +#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:234 +msgid "Pattern" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:302 +msgid "Pattern fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:195 +#: ../src/ui/widget/style-swatch.cpp:302 +msgid "Pattern stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:197 +msgid "L" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/style-swatch.cpp:294 +msgid "Linear gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:200 +#: ../src/ui/widget/style-swatch.cpp:294 +msgid "Linear gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:207 +msgid "R" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:210 +#: ../src/ui/widget/style-swatch.cpp:298 +msgid "Radial gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:210 +#: ../src/ui/widget/style-swatch.cpp:298 +msgid "Radial gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:218 +msgid "M" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:221 +msgid "Mesh gradient fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:221 +msgid "Mesh gradient stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:229 +msgid "Different" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:232 +msgid "Different fills" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:232 +msgid "Different strokes" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:234 +#: ../src/ui/widget/style-swatch.cpp:324 +msgid "Unset" +msgstr "" + +#. TRANSLATORS COMMENT: unset is a verb here +#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:295 +#: ../src/ui/widget/selected-style.cpp:575 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:709 +msgid "Unset fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:237 +#: ../src/ui/widget/selected-style.cpp:295 +#: ../src/ui/widget/selected-style.cpp:591 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:709 +msgid "Unset stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:240 +msgid "Flat color fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:240 +msgid "Flat color stroke" +msgstr "" + +#. TRANSLATOR COMMENT: A means "Averaged" +#: ../src/ui/widget/selected-style.cpp:243 +msgid "a" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:246 +msgid "Fill is averaged over selected objects" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:246 +msgid "Stroke is averaged over selected objects" +msgstr "" + +#. TRANSLATOR COMMENT: M means "Multiple" +#: ../src/ui/widget/selected-style.cpp:249 +msgid "m" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:252 +msgid "Multiple selected objects have the same fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:252 +msgid "Multiple selected objects have the same stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:254 +msgid "Edit fill..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:254 +msgid "Edit stroke..." +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:258 +msgid "Last set color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:262 +msgid "Last selected color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:278 +msgid "Copy color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:282 +msgid "Paste color" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:286 +#: ../src/ui/widget/selected-style.cpp:868 +msgid "Swap fill and stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:290 +#: ../src/ui/widget/selected-style.cpp:600 +#: ../src/ui/widget/selected-style.cpp:609 +msgid "Make fill opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:290 +msgid "Make stroke opaque" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:299 +#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:508 +msgid "Remove fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:299 +#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:508 +msgid "Remove stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:621 +msgid "Apply last set color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:633 +msgid "Apply last set color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:644 +msgid "Apply last selected color to fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:655 +msgid "Apply last selected color to stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:681 +msgid "Invert fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:705 +msgid "Invert stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:717 +msgid "White fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:729 +msgid "White stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:741 +msgid "Black fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:753 +msgid "Black stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:796 +msgid "Paste fill" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:814 +msgid "Paste stroke" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:970 +msgid "Change stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1073 +msgid ", drag to adjust" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1158 +#, c-format +msgid "Stroke width: %.5g%s%s" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1162 +msgid " (averaged)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1188 +msgid "0 (transparent)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1212 +msgid "100% (opaque)" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1386 +msgid "Adjust alpha" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1388 +#, c-format +msgid "" +"Adjusting alpha: was %.3g, now %.3g (diff %.3g); with Ctrl to adjust lightness, with Shift to adjust saturation, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1392 +msgid "Adjust saturation" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1394 +#, c-format +msgid "" +"Adjusting saturation: was %.3g, now %.3g (diff %.3g); with " +"Ctrl to adjust lightness, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1398 +msgid "Adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1400 +#, c-format +msgid "" +"Adjusting lightness: was %.3g, now %.3g (diff %.3g); with " +"Shift to adjust saturation, with Alt to adjust alpha, without " +"modifiers to adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1404 +msgid "Adjust hue" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1406 +#, c-format +msgid "" +"Adjusting hue: was %.3g, now %.3g (diff %.3g); with Shift to adjust saturation, with Alt to adjust alpha, with Ctrl " +"to adjust lightness" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1524 +#: ../src/ui/widget/selected-style.cpp:1538 +msgid "Adjust stroke width" +msgstr "" + +#: ../src/ui/widget/selected-style.cpp:1525 +#, c-format +msgid "Adjusting stroke width: was %.3g, now %.3g (diff %.3g)" +msgstr "" + +#. TRANSLATORS: "Link" means to _link_ two sliders together +#: ../src/ui/widget/spin-scale.cpp:138 ../src/ui/widget/spin-slider.cpp:156 +msgctxt "Sliders" +msgid "Link" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:292 +msgid "L Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:296 +msgid "R Gradient" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:312 +#, c-format +msgid "Fill: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:314 +#, c-format +msgid "Stroke: %06x/%.3g" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:319 +msgctxt "Fill and stroke" +msgid "None" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:346 +#, c-format +msgid "Stroke width: %.5g%s" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:362 +#, c-format +msgid "O: %2.0f" +msgstr "" + +#: ../src/ui/widget/style-swatch.cpp:367 +#, c-format +msgid "Opacity: %2.1f %%" +msgstr "" + +#: ../src/vanishing-point.cpp:133 +msgid "Split vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:178 +msgid "Merge vanishing points" +msgstr "" + +#: ../src/vanishing-point.cpp:244 +msgid "3D box: Move vanishing point" +msgstr "" + +#: ../src/vanishing-point.cpp:327 +#, c-format +msgid "Finite vanishing point shared by %d box" +msgid_plural "" +"Finite vanishing point shared by %d boxes; drag with Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#. This won't make sense any more when infinite VPs are not shown on the canvas, +#. but currently we update the status message anyway +#: ../src/vanishing-point.cpp:334 +#, c-format +msgid "Infinite vanishing point shared by %d box" +msgid_plural "" +"Infinite vanishing point shared by %d boxes; drag with " +"Shift to separate selected box(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/vanishing-point.cpp:342 +#, c-format +msgid "" +"shared by %d box; drag with Shift to separate selected box(es)" +msgid_plural "" +"shared by %d boxes; drag with Shift to separate selected " +"box(es)" +msgstr[0] "" +msgstr[1] "" + +#: ../src/verbs.cpp:138 +msgid "File" +msgstr "" + +#: ../src/verbs.cpp:233 ../share/extensions/interp_att_g.inx.h:22 +msgid "Tag" +msgstr "" + +#: ../src/verbs.cpp:252 +msgid "Context" +msgstr "" + +#: ../src/verbs.cpp:271 ../src/verbs.cpp:2302 +#: ../share/extensions/jessyInk_view.inx.h:1 +#: ../share/extensions/polyhedron_3d.inx.h:26 +msgid "View" +msgstr "" + +#: ../src/verbs.cpp:291 +msgid "Dialog" +msgstr "" + +#: ../src/verbs.cpp:1260 +msgid "Switch to next layer" +msgstr "" + +#: ../src/verbs.cpp:1261 +msgid "Switched to next layer." +msgstr "" + +#: ../src/verbs.cpp:1263 +msgid "Cannot go past last layer." +msgstr "" + +#: ../src/verbs.cpp:1272 +msgid "Switch to previous layer" +msgstr "" + +#: ../src/verbs.cpp:1273 +msgid "Switched to previous layer." +msgstr "" + +#: ../src/verbs.cpp:1275 +msgid "Cannot go before first layer." +msgstr "" + +#: ../src/verbs.cpp:1296 ../src/verbs.cpp:1393 ../src/verbs.cpp:1429 +#: ../src/verbs.cpp:1435 ../src/verbs.cpp:1459 ../src/verbs.cpp:1474 +msgid "No current layer." +msgstr "" + +#: ../src/verbs.cpp:1325 ../src/verbs.cpp:1329 +#, c-format +msgid "Raised layer %s." +msgstr "" + +#: ../src/verbs.cpp:1326 +msgid "Layer to top" +msgstr "" + +#: ../src/verbs.cpp:1330 +msgid "Raise layer" +msgstr "" + +#: ../src/verbs.cpp:1333 ../src/verbs.cpp:1337 +#, c-format +msgid "Lowered layer %s." +msgstr "" + +#: ../src/verbs.cpp:1334 +msgid "Layer to bottom" +msgstr "" + +#: ../src/verbs.cpp:1338 +msgid "Lower layer" +msgstr "" + +#: ../src/verbs.cpp:1347 +msgid "Cannot move layer any further." +msgstr "" + +#: ../src/verbs.cpp:1361 ../src/verbs.cpp:1380 +#, c-format +msgid "%s copy" +msgstr "" + +#: ../src/verbs.cpp:1388 +msgid "Duplicate layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been duplicated." +#: ../src/verbs.cpp:1391 +msgid "Duplicated layer." +msgstr "" + +#: ../src/verbs.cpp:1424 +msgid "Delete layer" +msgstr "" + +#. TRANSLATORS: this means "The layer has been deleted." +#: ../src/verbs.cpp:1427 +msgid "Deleted layer." +msgstr "" + +#: ../src/verbs.cpp:1444 +msgid "Show all layers" +msgstr "" + +#: ../src/verbs.cpp:1449 +msgid "Hide all layers" +msgstr "" + +#: ../src/verbs.cpp:1454 +msgid "Lock all layers" +msgstr "" + +#: ../src/verbs.cpp:1468 +msgid "Unlock all layers" +msgstr "" + +#: ../src/verbs.cpp:1552 +msgid "Flip horizontally" +msgstr "" + +#: ../src/verbs.cpp:1557 +msgid "Flip vertically" +msgstr "" + +#: ../src/verbs.cpp:1614 ../src/verbs.cpp:2727 +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:2184 +msgid "tutorial-basic.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2188 +msgid "tutorial-shapes.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2192 +msgid "tutorial-advanced.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2196 +msgid "tutorial-tracing.svg" +msgstr "" + +#: ../src/verbs.cpp:2199 +msgid "tutorial-tracing-pixelart.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2203 +msgid "tutorial-calligraphy.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2207 +msgid "tutorial-interpolate.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2211 +msgid "tutorial-elements.svg" +msgstr "" + +#. TRANSLATORS: See "tutorial-basic.svg" comment. +#: ../src/verbs.cpp:2215 +msgid "tutorial-tips.svg" +msgstr "" + +#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3000 +msgid "Unlock all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3002 +msgid "Unlock all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3004 +msgid "Unhide all objects in the current layer" +msgstr "" + +#: ../src/verbs.cpp:2413 ../src/verbs.cpp:3006 +msgid "Unhide all objects in all layers" +msgstr "" + +#: ../src/verbs.cpp:2428 +msgctxt "Verb" +msgid "None" +msgstr "" + +#: ../src/verbs.cpp:2428 +msgid "Does nothing" +msgstr "" + +#. File +#. Tag +#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 +msgid "_New" +msgstr "" + +#: ../src/verbs.cpp:2431 +msgid "Create new document from the default template" +msgstr "" + +#: ../src/verbs.cpp:2433 +msgid "_Open..." +msgstr "" + +#: ../src/verbs.cpp:2434 +msgid "Open an existing document" +msgstr "" + +#: ../src/verbs.cpp:2435 +msgid "Re_vert" +msgstr "" + +#: ../src/verbs.cpp:2436 +msgid "Revert to the last saved version of document (changes will be lost)" +msgstr "" + +#: ../src/verbs.cpp:2437 +msgid "Save document" +msgstr "" + +#: ../src/verbs.cpp:2439 +msgid "Save _As..." +msgstr "" + +#: ../src/verbs.cpp:2440 +msgid "Save document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2441 +msgid "Save a Cop_y..." +msgstr "" + +#: ../src/verbs.cpp:2442 +msgid "Save a copy of the document under a new name" +msgstr "" + +#: ../src/verbs.cpp:2443 +msgid "_Print..." +msgstr "" + +#: ../src/verbs.cpp:2443 +msgid "Print document" +msgstr "" + +#. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) +#: ../src/verbs.cpp:2446 +msgid "Clean _up document" +msgstr "" + +#: ../src/verbs.cpp:2446 +msgid "" +"Remove unused definitions (such as gradients or clipping paths) from the <" +"defs> of the document" +msgstr "" + +#: ../src/verbs.cpp:2448 +msgid "_Import..." +msgstr "" + +#: ../src/verbs.cpp:2449 +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:2451 +msgid "Import Clip Art..." +msgstr "" + +#: ../src/verbs.cpp:2452 +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:2454 +msgid "N_ext Window" +msgstr "" + +#: ../src/verbs.cpp:2455 +msgid "Switch to the next document window" +msgstr "" + +#: ../src/verbs.cpp:2456 +msgid "P_revious Window" +msgstr "" + +#: ../src/verbs.cpp:2457 +msgid "Switch to the previous document window" +msgstr "" + +#: ../src/verbs.cpp:2458 +msgid "_Close" +msgstr "" + +#: ../src/verbs.cpp:2459 +msgid "Close this document window" +msgstr "" + +#: ../src/verbs.cpp:2460 +msgid "_Quit" +msgstr "" + +#: ../src/verbs.cpp:2460 +msgid "Quit Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2461 +msgid "New from _Template..." +msgstr "" + +#: ../src/verbs.cpp:2462 +msgid "Create new project from template" +msgstr "" + +#: ../src/verbs.cpp:2465 +msgid "Undo last action" +msgstr "" + +#: ../src/verbs.cpp:2468 +msgid "Do again the last undone action" +msgstr "" + +#: ../src/verbs.cpp:2469 +msgid "Cu_t" +msgstr "" + +#: ../src/verbs.cpp:2470 +msgid "Cut selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2471 +msgid "_Copy" +msgstr "" + +#: ../src/verbs.cpp:2472 +msgid "Copy selection to clipboard" +msgstr "" + +#: ../src/verbs.cpp:2473 +msgid "_Paste" +msgstr "" + +#: ../src/verbs.cpp:2474 +msgid "Paste objects from clipboard to mouse point, or paste text" +msgstr "" + +#: ../src/verbs.cpp:2475 +msgid "Paste _Style" +msgstr "" + +#: ../src/verbs.cpp:2476 +msgid "Apply the style of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2478 +msgid "Scale selection to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2479 +msgid "Paste _Width" +msgstr "" + +#: ../src/verbs.cpp:2480 +msgid "Scale selection horizontally to match the width of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2481 +msgid "Paste _Height" +msgstr "" + +#: ../src/verbs.cpp:2482 +msgid "Scale selection vertically to match the height of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2483 +msgid "Paste Size Separately" +msgstr "" + +#: ../src/verbs.cpp:2484 +msgid "Scale each selected object to match the size of the copied object" +msgstr "" + +#: ../src/verbs.cpp:2485 +msgid "Paste Width Separately" +msgstr "" + +#: ../src/verbs.cpp:2486 +msgid "" +"Scale each selected object horizontally to match the width of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2487 +msgid "Paste Height Separately" +msgstr "" + +#: ../src/verbs.cpp:2488 +msgid "" +"Scale each selected object vertically to match the height of the copied " +"object" +msgstr "" + +#: ../src/verbs.cpp:2489 +msgid "Paste _In Place" +msgstr "" + +#: ../src/verbs.cpp:2490 +msgid "Paste objects from clipboard to the original location" +msgstr "" + +#: ../src/verbs.cpp:2491 +msgid "Paste Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2492 +msgid "Apply the path effect of the copied object to selection" +msgstr "" + +#: ../src/verbs.cpp:2493 +msgid "Remove Path _Effect" +msgstr "" + +#: ../src/verbs.cpp:2494 +msgid "Remove any path effects from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2495 +msgid "_Remove Filters" +msgstr "" + +#: ../src/verbs.cpp:2496 +msgid "Remove any filters from selected objects" +msgstr "" + +#: ../src/verbs.cpp:2497 +msgid "_Delete" +msgstr "" + +#: ../src/verbs.cpp:2498 +msgid "Delete selection" +msgstr "" + +#: ../src/verbs.cpp:2499 +msgid "Duplic_ate" +msgstr "" + +#: ../src/verbs.cpp:2500 +msgid "Duplicate selected objects" +msgstr "" + +#: ../src/verbs.cpp:2501 +msgid "Create Clo_ne" +msgstr "" + +#: ../src/verbs.cpp:2502 +msgid "Create a clone (a copy linked to the original) of selected object" +msgstr "" + +#: ../src/verbs.cpp:2503 +msgid "Unlin_k Clone" +msgstr "" + +#: ../src/verbs.cpp:2504 +msgid "" +"Cut the selected clones' links to the originals, turning them into " +"standalone objects" +msgstr "" + +#: ../src/verbs.cpp:2505 +msgid "Relink to Copied" +msgstr "" + +#: ../src/verbs.cpp:2506 +msgid "Relink the selected clones to the object currently on the clipboard" +msgstr "" + +#: ../src/verbs.cpp:2507 +msgid "Select _Original" +msgstr "" + +#: ../src/verbs.cpp:2508 +msgid "Select the object to which the selected clone is linked" +msgstr "" + +#: ../src/verbs.cpp:2509 +msgid "Clone original path (LPE)" +msgstr "" + +#: ../src/verbs.cpp:2510 +msgid "" +"Creates a new path, applies the Clone original LPE, and refers it to the " +"selected path" +msgstr "" + +#: ../src/verbs.cpp:2511 +msgid "Objects to _Marker" +msgstr "" + +#: ../src/verbs.cpp:2512 +msgid "Convert selection to a line marker" +msgstr "" + +#: ../src/verbs.cpp:2513 +msgid "Objects to Gu_ides" +msgstr "" + +#: ../src/verbs.cpp:2514 +msgid "" +"Convert selected objects to a collection of guidelines aligned with their " +"edges" +msgstr "" + +#: ../src/verbs.cpp:2515 +msgid "Objects to Patter_n" +msgstr "" + +#: ../src/verbs.cpp:2516 +msgid "Convert selection to a rectangle with tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2517 +msgid "Pattern to _Objects" +msgstr "" + +#: ../src/verbs.cpp:2518 +msgid "Extract objects from a tiled pattern fill" +msgstr "" + +#: ../src/verbs.cpp:2519 +msgid "Group to Symbol" +msgstr "" + +#: ../src/verbs.cpp:2520 +msgid "Convert group to a symbol" +msgstr "" + +#: ../src/verbs.cpp:2521 +msgid "Symbol to Group" +msgstr "" + +#: ../src/verbs.cpp:2522 +msgid "Extract group from a symbol" +msgstr "" + +#: ../src/verbs.cpp:2523 +msgid "Clea_r All" +msgstr "" + +#: ../src/verbs.cpp:2524 +msgid "Delete all objects from document" +msgstr "" + +#: ../src/verbs.cpp:2525 +msgid "Select Al_l" +msgstr "" + +#: ../src/verbs.cpp:2526 +msgid "Select all objects or all nodes" +msgstr "" + +#: ../src/verbs.cpp:2527 +msgid "Select All in All La_yers" +msgstr "" + +#: ../src/verbs.cpp:2528 +msgid "Select all objects in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2529 +msgid "Fill _and Stroke" +msgstr "" + +#: ../src/verbs.cpp:2530 +msgid "" +"Select all objects with the same fill and stroke as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2531 +msgid "_Fill Color" +msgstr "" + +#: ../src/verbs.cpp:2532 +msgid "Select all objects with the same fill as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2533 +msgid "_Stroke Color" +msgstr "" + +#: ../src/verbs.cpp:2534 +msgid "Select all objects with the same stroke as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2535 +msgid "Stroke St_yle" +msgstr "" + +#: ../src/verbs.cpp:2536 +msgid "" +"Select all objects with the same stroke style (width, dash, markers) as the " +"selected objects" +msgstr "" + +#: ../src/verbs.cpp:2537 +msgid "_Object Type" +msgstr "" + +#: ../src/verbs.cpp:2538 +msgid "" +"Select all objects with the same object type (rect, arc, text, path, bitmap " +"etc) as the selected objects" +msgstr "" + +#: ../src/verbs.cpp:2539 +msgid "In_vert Selection" +msgstr "" + +#: ../src/verbs.cpp:2540 +msgid "Invert selection (unselect what is selected and select everything else)" +msgstr "" + +#: ../src/verbs.cpp:2541 +msgid "Invert in All Layers" +msgstr "" + +#: ../src/verbs.cpp:2542 +msgid "Invert selection in all visible and unlocked layers" +msgstr "" + +#: ../src/verbs.cpp:2543 +msgid "Select Next" +msgstr "" + +#: ../src/verbs.cpp:2544 +msgid "Select next object or node" +msgstr "" + +#: ../src/verbs.cpp:2545 +msgid "Select Previous" +msgstr "" + +#: ../src/verbs.cpp:2546 +msgid "Select previous object or node" +msgstr "" + +#: ../src/verbs.cpp:2547 +msgid "D_eselect" +msgstr "" + +#: ../src/verbs.cpp:2548 +msgid "Deselect any selected objects or nodes" +msgstr "" + +#: ../src/verbs.cpp:2550 +msgid "Delete all the guides in the document" +msgstr "" + +#: ../src/verbs.cpp:2551 +msgid "Create _Guides Around the Page" +msgstr "" + +#: ../src/verbs.cpp:2552 +msgid "Create four guides aligned with the page borders" +msgstr "" + +#: ../src/verbs.cpp:2553 +msgid "Next path effect parameter" +msgstr "" + +#: ../src/verbs.cpp:2554 +msgid "Show next editable path effect parameter" +msgstr "" + +#. Selection +#: ../src/verbs.cpp:2557 +msgid "Raise to _Top" +msgstr "" + +#: ../src/verbs.cpp:2558 +msgid "Raise selection to top" +msgstr "" + +#: ../src/verbs.cpp:2559 +msgid "Lower to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2560 +msgid "Lower selection to bottom" +msgstr "" + +#: ../src/verbs.cpp:2561 +msgid "_Raise" +msgstr "" + +#: ../src/verbs.cpp:2562 +msgid "Raise selection one step" +msgstr "" + +#: ../src/verbs.cpp:2563 +msgid "_Lower" +msgstr "" + +#: ../src/verbs.cpp:2564 +msgid "Lower selection one step" +msgstr "" + +#: ../src/verbs.cpp:2566 +msgid "Group selected objects" +msgstr "" + +#: ../src/verbs.cpp:2568 +msgid "Ungroup selected groups" +msgstr "" + +#: ../src/verbs.cpp:2570 +msgid "_Put on Path" +msgstr "" + +#: ../src/verbs.cpp:2572 +msgid "_Remove from Path" +msgstr "" + +#: ../src/verbs.cpp:2574 +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:2577 +msgid "Remove all manual kerns and glyph rotations from a text object" +msgstr "" + +#: ../src/verbs.cpp:2579 +msgid "_Union" +msgstr "" + +#: ../src/verbs.cpp:2580 +msgid "Create union of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2581 +msgid "_Intersection" +msgstr "" + +#: ../src/verbs.cpp:2582 +msgid "Create intersection of selected paths" +msgstr "" + +#: ../src/verbs.cpp:2583 +msgid "_Difference" +msgstr "" + +#: ../src/verbs.cpp:2584 +msgid "Create difference of selected paths (bottom minus top)" +msgstr "" + +#: ../src/verbs.cpp:2585 +msgid "E_xclusion" +msgstr "" + +#: ../src/verbs.cpp:2586 +msgid "" +"Create exclusive OR of selected paths (those parts that belong to only one " +"path)" +msgstr "" + +#: ../src/verbs.cpp:2587 +msgid "Di_vision" +msgstr "" + +#: ../src/verbs.cpp:2588 +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:2591 +msgid "Cut _Path" +msgstr "" + +#: ../src/verbs.cpp:2592 +msgid "Cut the bottom path's stroke into pieces, removing fill" +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:2596 +msgid "Outs_et" +msgstr "" + +#: ../src/verbs.cpp:2597 +msgid "Outset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2599 +msgid "O_utset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2600 +msgid "Outset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2602 +msgid "O_utset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2603 +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:2607 +msgid "I_nset" +msgstr "" + +#: ../src/verbs.cpp:2608 +msgid "Inset selected paths" +msgstr "" + +#: ../src/verbs.cpp:2610 +msgid "I_nset Path by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2611 +msgid "Inset selected paths by 1 px" +msgstr "" + +#: ../src/verbs.cpp:2613 +msgid "I_nset Path by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2614 +msgid "Inset selected paths by 10 px" +msgstr "" + +#: ../src/verbs.cpp:2616 +msgid "D_ynamic Offset" +msgstr "" + +#: ../src/verbs.cpp:2616 +msgid "Create a dynamic offset object" +msgstr "" + +#: ../src/verbs.cpp:2618 +msgid "_Linked Offset" +msgstr "" + +#: ../src/verbs.cpp:2619 +msgid "Create a dynamic offset object linked to the original path" +msgstr "" + +#: ../src/verbs.cpp:2621 +msgid "_Stroke to Path" +msgstr "" + +#: ../src/verbs.cpp:2622 +msgid "Convert selected object's stroke to paths" +msgstr "" + +#: ../src/verbs.cpp:2623 +msgid "Si_mplify" +msgstr "" + +#: ../src/verbs.cpp:2624 +msgid "Simplify selected paths (remove extra nodes)" +msgstr "" + +#: ../src/verbs.cpp:2625 +msgid "_Reverse" +msgstr "" + +#: ../src/verbs.cpp:2626 +msgid "Reverse the direction of selected paths (useful for flipping markers)" +msgstr "" + +#: ../src/verbs.cpp:2629 +msgid "Create one or more paths from a bitmap by tracing it" +msgstr "" + +#: ../src/verbs.cpp:2630 +msgid "Trace Pixel Art..." +msgstr "" + +#: ../src/verbs.cpp:2631 +msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" +msgstr "" + +#: ../src/verbs.cpp:2632 +msgid "Make a _Bitmap Copy" +msgstr "" + +#: ../src/verbs.cpp:2633 +msgid "Export selection to a bitmap and insert it into document" +msgstr "" + +#: ../src/verbs.cpp:2634 +msgid "_Combine" +msgstr "" + +#: ../src/verbs.cpp:2635 +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:2638 +msgid "Break _Apart" +msgstr "" + +#: ../src/verbs.cpp:2639 +msgid "Break selected paths into subpaths" +msgstr "" + +#: ../src/verbs.cpp:2640 +msgid "_Arrange..." +msgstr "" + +#: ../src/verbs.cpp:2641 +msgid "Arrange selected objects in a table or circle" +msgstr "" + +#. Layer +#: ../src/verbs.cpp:2643 +msgid "_Add Layer..." +msgstr "" + +#: ../src/verbs.cpp:2644 +msgid "Create a new layer" +msgstr "" + +#: ../src/verbs.cpp:2645 +msgid "Re_name Layer..." +msgstr "" + +#: ../src/verbs.cpp:2646 +msgid "Rename the current layer" +msgstr "" + +#: ../src/verbs.cpp:2647 +msgid "Switch to Layer Abov_e" +msgstr "" + +#: ../src/verbs.cpp:2648 +msgid "Switch to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2649 +msgid "Switch to Layer Belo_w" +msgstr "" + +#: ../src/verbs.cpp:2650 +msgid "Switch to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2651 +msgid "Move Selection to Layer Abo_ve" +msgstr "" + +#: ../src/verbs.cpp:2652 +msgid "Move selection to the layer above the current" +msgstr "" + +#: ../src/verbs.cpp:2653 +msgid "Move Selection to Layer Bel_ow" +msgstr "" + +#: ../src/verbs.cpp:2654 +msgid "Move selection to the layer below the current" +msgstr "" + +#: ../src/verbs.cpp:2655 +msgid "Move Selection to Layer..." +msgstr "" + +#: ../src/verbs.cpp:2657 +msgid "Layer to _Top" +msgstr "" + +#: ../src/verbs.cpp:2658 +msgid "Raise the current layer to the top" +msgstr "" + +#: ../src/verbs.cpp:2659 +msgid "Layer to _Bottom" +msgstr "" + +#: ../src/verbs.cpp:2660 +msgid "Lower the current layer to the bottom" +msgstr "" + +#: ../src/verbs.cpp:2661 +msgid "_Raise Layer" +msgstr "" + +#: ../src/verbs.cpp:2662 +msgid "Raise the current layer" +msgstr "" + +#: ../src/verbs.cpp:2663 +msgid "_Lower Layer" +msgstr "" + +#: ../src/verbs.cpp:2664 +msgid "Lower the current layer" +msgstr "" + +#: ../src/verbs.cpp:2665 +msgid "D_uplicate Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2666 +msgid "Duplicate an existing layer" +msgstr "" + +#: ../src/verbs.cpp:2667 +msgid "_Delete Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2668 +msgid "Delete the current layer" +msgstr "" + +#: ../src/verbs.cpp:2669 +msgid "_Show/hide other layers" +msgstr "" + +#: ../src/verbs.cpp:2670 +msgid "Solo the current layer" +msgstr "" + +#: ../src/verbs.cpp:2671 +msgid "_Show all layers" +msgstr "" + +#: ../src/verbs.cpp:2672 +msgid "Show all the layers" +msgstr "" + +#: ../src/verbs.cpp:2673 +msgid "_Hide all layers" +msgstr "" + +#: ../src/verbs.cpp:2674 +msgid "Hide all the layers" +msgstr "" + +#: ../src/verbs.cpp:2675 +msgid "_Lock all layers" +msgstr "" + +#: ../src/verbs.cpp:2676 +msgid "Lock all the layers" +msgstr "" + +#: ../src/verbs.cpp:2677 +msgid "Lock/Unlock _other layers" +msgstr "" + +#: ../src/verbs.cpp:2678 +msgid "Lock all the other layers" +msgstr "" + +#: ../src/verbs.cpp:2679 +msgid "_Unlock all layers" +msgstr "" + +#: ../src/verbs.cpp:2680 +msgid "Unlock all the layers" +msgstr "" + +#: ../src/verbs.cpp:2681 +msgid "_Lock/Unlock Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2682 +msgid "Toggle lock on current layer" +msgstr "" + +#: ../src/verbs.cpp:2683 +msgid "_Show/hide Current Layer" +msgstr "" + +#: ../src/verbs.cpp:2684 +msgid "Toggle visibility of current layer" +msgstr "" + +#. Object +#: ../src/verbs.cpp:2687 +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:2690 +msgid "Rotate selection 90° clockwise" +msgstr "" + +#: ../src/verbs.cpp:2691 +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:2694 +msgid "Rotate selection 90° counter-clockwise" +msgstr "" + +#: ../src/verbs.cpp:2695 +msgid "Remove _Transformations" +msgstr "" + +#: ../src/verbs.cpp:2696 +msgid "Remove transformations from object" +msgstr "" + +#: ../src/verbs.cpp:2697 +msgid "_Object to Path" +msgstr "" + +#: ../src/verbs.cpp:2698 +msgid "Convert selected object to path" +msgstr "" + +#: ../src/verbs.cpp:2699 +msgid "_Flow into Frame" +msgstr "" + +#: ../src/verbs.cpp:2700 +msgid "" +"Put text into a frame (path or shape), creating a flowed text linked to the " +"frame object" +msgstr "" + +#: ../src/verbs.cpp:2701 +msgid "_Unflow" +msgstr "" + +#: ../src/verbs.cpp:2702 +msgid "Remove text from frame (creates a single-line text object)" +msgstr "" + +#: ../src/verbs.cpp:2703 +msgid "_Convert to Text" +msgstr "" + +#: ../src/verbs.cpp:2704 +msgid "Convert flowed text to regular text object (preserves appearance)" +msgstr "" + +#: ../src/verbs.cpp:2706 +msgid "Flip _Horizontal" +msgstr "" + +#: ../src/verbs.cpp:2706 +msgid "Flip selected objects horizontally" +msgstr "" + +#: ../src/verbs.cpp:2709 +msgid "Flip _Vertical" +msgstr "" + +#: ../src/verbs.cpp:2709 +msgid "Flip selected objects vertically" +msgstr "" + +#: ../src/verbs.cpp:2712 +msgid "Apply mask to selection (using the topmost object as mask)" +msgstr "" + +#: ../src/verbs.cpp:2714 +msgid "Edit mask" +msgstr "" + +#: ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 +msgid "_Release" +msgstr "" + +#: ../src/verbs.cpp:2716 +msgid "Remove mask from selection" +msgstr "" + +#: ../src/verbs.cpp:2718 +msgid "" +"Apply clipping path to selection (using the topmost object as clipping path)" +msgstr "" + +#: ../src/verbs.cpp:2719 +msgid "Create Cl_ip Group" +msgstr "" + +#: ../src/verbs.cpp:2720 +msgid "Creates a clip group using the selected objects as a base" +msgstr "" + +#: ../src/verbs.cpp:2722 +msgid "Edit clipping path" +msgstr "" + +#: ../src/verbs.cpp:2724 +msgid "Remove clipping path from selection" +msgstr "" + +#. Tools +#: ../src/verbs.cpp:2729 +msgctxt "ContextVerb" +msgid "Select" +msgstr "" + +#: ../src/verbs.cpp:2730 +msgid "Select and transform objects" +msgstr "" + +#: ../src/verbs.cpp:2731 +msgctxt "ContextVerb" +msgid "Node Edit" +msgstr "" + +#: ../src/verbs.cpp:2732 +msgid "Edit paths by nodes" +msgstr "" + +#: ../src/verbs.cpp:2733 +msgctxt "ContextVerb" +msgid "Tweak" +msgstr "" + +#: ../src/verbs.cpp:2734 +msgid "Tweak objects by sculpting or painting" +msgstr "" + +#: ../src/verbs.cpp:2735 +msgctxt "ContextVerb" +msgid "Spray" +msgstr "" + +#: ../src/verbs.cpp:2736 +msgid "Spray objects by sculpting or painting" +msgstr "" + +#: ../src/verbs.cpp:2737 +msgctxt "ContextVerb" +msgid "Rectangle" +msgstr "" + +#: ../src/verbs.cpp:2738 +msgid "Create rectangles and squares" +msgstr "" + +#: ../src/verbs.cpp:2739 +msgctxt "ContextVerb" +msgid "3D Box" +msgstr "" + +#: ../src/verbs.cpp:2740 +msgid "Create 3D boxes" +msgstr "" + +#: ../src/verbs.cpp:2741 +msgctxt "ContextVerb" +msgid "Ellipse" +msgstr "" + +#: ../src/verbs.cpp:2742 +msgid "Create circles, ellipses, and arcs" +msgstr "" + +#: ../src/verbs.cpp:2743 +msgctxt "ContextVerb" +msgid "Star" +msgstr "" + +#: ../src/verbs.cpp:2744 +msgid "Create stars and polygons" +msgstr "" + +#: ../src/verbs.cpp:2745 +msgctxt "ContextVerb" +msgid "Spiral" +msgstr "" + +#: ../src/verbs.cpp:2746 +msgid "Create spirals" +msgstr "" + +#: ../src/verbs.cpp:2747 +msgctxt "ContextVerb" +msgid "Pencil" +msgstr "" + +#: ../src/verbs.cpp:2748 +msgid "Draw freehand lines" +msgstr "" + +#: ../src/verbs.cpp:2749 +msgctxt "ContextVerb" +msgid "Pen" +msgstr "" + +#: ../src/verbs.cpp:2750 +msgid "Draw Bezier curves and straight lines" +msgstr "" + +#: ../src/verbs.cpp:2751 +msgctxt "ContextVerb" +msgid "Calligraphy" +msgstr "" + +#: ../src/verbs.cpp:2752 +msgid "Draw calligraphic or brush strokes" +msgstr "" + +#: ../src/verbs.cpp:2754 +msgid "Create and edit text objects" +msgstr "" + +#: ../src/verbs.cpp:2755 +msgctxt "ContextVerb" +msgid "Gradient" +msgstr "" + +#: ../src/verbs.cpp:2756 +msgid "Create and edit gradients" +msgstr "" + +#: ../src/verbs.cpp:2757 +msgctxt "ContextVerb" +msgid "Mesh" +msgstr "" + +#: ../src/verbs.cpp:2758 +msgid "Create and edit meshes" +msgstr "" + +#: ../src/verbs.cpp:2759 +msgctxt "ContextVerb" +msgid "Zoom" +msgstr "" + +#: ../src/verbs.cpp:2760 +msgid "Zoom in or out" +msgstr "" + +#: ../src/verbs.cpp:2762 +msgid "Measurement tool" +msgstr "" + +#: ../src/verbs.cpp:2763 +msgctxt "ContextVerb" +msgid "Dropper" +msgstr "" + +#: ../src/verbs.cpp:2764 ../src/widgets/sp-color-notebook.cpp:396 +msgid "Pick colors from image" +msgstr "" + +#: ../src/verbs.cpp:2765 +msgctxt "ContextVerb" +msgid "Connector" +msgstr "" + +#: ../src/verbs.cpp:2766 +msgid "Create diagram connectors" +msgstr "" + +#: ../src/verbs.cpp:2767 +msgctxt "ContextVerb" +msgid "Paint Bucket" +msgstr "" + +#: ../src/verbs.cpp:2768 +msgid "Fill bounded areas" +msgstr "" + +#: ../src/verbs.cpp:2769 +msgctxt "ContextVerb" +msgid "LPE Edit" +msgstr "" + +#: ../src/verbs.cpp:2770 +msgid "Edit Path Effect parameters" +msgstr "" + +#: ../src/verbs.cpp:2771 +msgctxt "ContextVerb" +msgid "Eraser" +msgstr "" + +#: ../src/verbs.cpp:2772 +msgid "Erase existing paths" +msgstr "" + +#: ../src/verbs.cpp:2773 +msgctxt "ContextVerb" +msgid "LPE Tool" +msgstr "" + +#: ../src/verbs.cpp:2774 +msgid "Do geometric constructions" +msgstr "" + +#. Tool prefs +#: ../src/verbs.cpp:2776 +msgid "Selector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2777 +msgid "Open Preferences for the Selector tool" +msgstr "" + +#: ../src/verbs.cpp:2778 +msgid "Node Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2779 +msgid "Open Preferences for the Node tool" +msgstr "" + +#: ../src/verbs.cpp:2780 +msgid "Tweak Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2781 +msgid "Open Preferences for the Tweak tool" +msgstr "" + +#: ../src/verbs.cpp:2782 +msgid "Spray Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2783 +msgid "Open Preferences for the Spray tool" +msgstr "" + +#: ../src/verbs.cpp:2784 +msgid "Rectangle Preferences" +msgstr "" + +#: ../src/verbs.cpp:2785 +msgid "Open Preferences for the Rectangle tool" +msgstr "" + +#: ../src/verbs.cpp:2786 +msgid "3D Box Preferences" +msgstr "" + +#: ../src/verbs.cpp:2787 +msgid "Open Preferences for the 3D Box tool" +msgstr "" + +#: ../src/verbs.cpp:2788 +msgid "Ellipse Preferences" +msgstr "" + +#: ../src/verbs.cpp:2789 +msgid "Open Preferences for the Ellipse tool" +msgstr "" + +#: ../src/verbs.cpp:2790 +msgid "Star Preferences" +msgstr "" + +#: ../src/verbs.cpp:2791 +msgid "Open Preferences for the Star tool" +msgstr "" + +#: ../src/verbs.cpp:2792 +msgid "Spiral Preferences" +msgstr "" + +#: ../src/verbs.cpp:2793 +msgid "Open Preferences for the Spiral tool" +msgstr "" + +#: ../src/verbs.cpp:2794 +msgid "Pencil Preferences" +msgstr "" + +#: ../src/verbs.cpp:2795 +msgid "Open Preferences for the Pencil tool" +msgstr "" + +#: ../src/verbs.cpp:2796 +msgid "Pen Preferences" +msgstr "" + +#: ../src/verbs.cpp:2797 +msgid "Open Preferences for the Pen tool" +msgstr "" + +#: ../src/verbs.cpp:2798 +msgid "Calligraphic Preferences" +msgstr "" + +#: ../src/verbs.cpp:2799 +msgid "Open Preferences for the Calligraphy tool" +msgstr "" + +#: ../src/verbs.cpp:2800 +msgid "Text Preferences" +msgstr "" + +#: ../src/verbs.cpp:2801 +msgid "Open Preferences for the Text tool" +msgstr "" + +#: ../src/verbs.cpp:2802 +msgid "Gradient Preferences" +msgstr "" + +#: ../src/verbs.cpp:2803 +msgid "Open Preferences for the Gradient tool" +msgstr "" + +#: ../src/verbs.cpp:2804 +msgid "Mesh Preferences" +msgstr "" + +#: ../src/verbs.cpp:2805 +msgid "Open Preferences for the Mesh tool" +msgstr "" + +#: ../src/verbs.cpp:2806 +msgid "Zoom Preferences" +msgstr "" + +#: ../src/verbs.cpp:2807 +msgid "Open Preferences for the Zoom tool" +msgstr "" + +#: ../src/verbs.cpp:2808 +msgid "Measure Preferences" +msgstr "" + +#: ../src/verbs.cpp:2809 +msgid "Open Preferences for the Measure tool" +msgstr "" + +#: ../src/verbs.cpp:2810 +msgid "Dropper Preferences" +msgstr "" + +#: ../src/verbs.cpp:2811 +msgid "Open Preferences for the Dropper tool" +msgstr "" + +#: ../src/verbs.cpp:2812 +msgid "Connector Preferences" +msgstr "" + +#: ../src/verbs.cpp:2813 +msgid "Open Preferences for the Connector tool" +msgstr "" + +#: ../src/verbs.cpp:2814 +msgid "Paint Bucket Preferences" +msgstr "" + +#: ../src/verbs.cpp:2815 +msgid "Open Preferences for the Paint Bucket tool" +msgstr "" + +#: ../src/verbs.cpp:2816 +msgid "Eraser Preferences" +msgstr "" + +#: ../src/verbs.cpp:2817 +msgid "Open Preferences for the Eraser tool" +msgstr "" + +#: ../src/verbs.cpp:2818 +msgid "LPE Tool Preferences" +msgstr "" + +#: ../src/verbs.cpp:2819 +msgid "Open Preferences for the LPETool tool" +msgstr "" + +#. Zoom/View +#: ../src/verbs.cpp:2821 +msgid "Zoom In" +msgstr "" + +#: ../src/verbs.cpp:2821 +msgid "Zoom in" +msgstr "" + +#: ../src/verbs.cpp:2822 +msgid "Zoom Out" +msgstr "" + +#: ../src/verbs.cpp:2822 +msgid "Zoom out" +msgstr "" + +#: ../src/verbs.cpp:2823 +msgid "_Rulers" +msgstr "" + +#: ../src/verbs.cpp:2823 +msgid "Show or hide the canvas rulers" +msgstr "" + +#: ../src/verbs.cpp:2824 +msgid "Scroll_bars" +msgstr "" + +#: ../src/verbs.cpp:2824 +msgid "Show or hide the canvas scrollbars" +msgstr "" + +#: ../src/verbs.cpp:2825 +msgid "Page _Grid" +msgstr "" + +#: ../src/verbs.cpp:2825 +msgid "Show or hide the page grid" +msgstr "" + +#: ../src/verbs.cpp:2826 +msgid "G_uides" +msgstr "" + +#: ../src/verbs.cpp:2826 +msgid "Show or hide guides (drag from a ruler to create a guide)" +msgstr "" + +#: ../src/verbs.cpp:2827 +msgid "Enable snapping" +msgstr "" + +#: ../src/verbs.cpp:2828 +msgid "_Commands Bar" +msgstr "" + +#: ../src/verbs.cpp:2828 +msgid "Show or hide the Commands bar (under the menu)" +msgstr "" + +#: ../src/verbs.cpp:2829 +msgid "Sn_ap Controls Bar" +msgstr "" + +#: ../src/verbs.cpp:2829 +msgid "Show or hide the snapping controls" +msgstr "" + +#: ../src/verbs.cpp:2830 +msgid "T_ool Controls Bar" +msgstr "" + +#: ../src/verbs.cpp:2830 +msgid "Show or hide the Tool Controls bar" +msgstr "" + +#: ../src/verbs.cpp:2831 +msgid "_Toolbox" +msgstr "" + +#: ../src/verbs.cpp:2831 +msgid "Show or hide the main toolbox (on the left)" +msgstr "" + +#: ../src/verbs.cpp:2832 +msgid "_Palette" +msgstr "" + +#: ../src/verbs.cpp:2832 +msgid "Show or hide the color palette" +msgstr "" + +#: ../src/verbs.cpp:2833 +msgid "_Statusbar" +msgstr "" + +#: ../src/verbs.cpp:2833 +msgid "Show or hide the statusbar (at the bottom of the window)" +msgstr "" + +#: ../src/verbs.cpp:2834 +msgid "Nex_t Zoom" +msgstr "" + +#: ../src/verbs.cpp:2834 +msgid "Next zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2836 +msgid "Pre_vious Zoom" +msgstr "" + +#: ../src/verbs.cpp:2836 +msgid "Previous zoom (from the history of zooms)" +msgstr "" + +#: ../src/verbs.cpp:2838 +msgid "Zoom 1:_1" +msgstr "" + +#: ../src/verbs.cpp:2838 +msgid "Zoom to 1:1" +msgstr "" + +#: ../src/verbs.cpp:2840 +msgid "Zoom 1:_2" +msgstr "" + +#: ../src/verbs.cpp:2840 +msgid "Zoom to 1:2" +msgstr "" + +#: ../src/verbs.cpp:2842 +msgid "_Zoom 2:1" +msgstr "" + +#: ../src/verbs.cpp:2842 +msgid "Zoom to 2:1" +msgstr "" + +#: ../src/verbs.cpp:2845 +msgid "_Fullscreen" +msgstr "" + +#: ../src/verbs.cpp:2845 ../src/verbs.cpp:2847 +msgid "Stretch this document window to full screen" +msgstr "" + +#: ../src/verbs.cpp:2847 +msgid "Fullscreen & Focus Mode" +msgstr "" + +#: ../src/verbs.cpp:2850 +msgid "Toggle _Focus Mode" +msgstr "" + +#: ../src/verbs.cpp:2850 +msgid "Remove excess toolbars to focus on drawing" +msgstr "" + +#: ../src/verbs.cpp:2852 +msgid "Duplic_ate Window" +msgstr "" + +#: ../src/verbs.cpp:2852 +msgid "Open a new window with the same document" +msgstr "" + +#: ../src/verbs.cpp:2854 +msgid "_New View Preview" +msgstr "" + +#: ../src/verbs.cpp:2855 +msgid "New View Preview" +msgstr "" + +#. "view_new_preview" +#: ../src/verbs.cpp:2857 ../src/verbs.cpp:2865 +msgid "_Normal" +msgstr "" + +#: ../src/verbs.cpp:2858 +msgid "Switch to normal display mode" +msgstr "" + +#: ../src/verbs.cpp:2859 +msgid "No _Filters" +msgstr "" + +#: ../src/verbs.cpp:2860 +msgid "Switch to normal display without filters" +msgstr "" + +#: ../src/verbs.cpp:2861 +msgid "_Outline" +msgstr "" + +#: ../src/verbs.cpp:2862 +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:2863 ../src/verbs.cpp:2871 +msgid "_Toggle" +msgstr "" + +#: ../src/verbs.cpp:2864 +msgid "Toggle between normal and outline display modes" +msgstr "" + +#: ../src/verbs.cpp:2866 +msgid "Switch to normal color display mode" +msgstr "" + +#: ../src/verbs.cpp:2867 +msgid "_Grayscale" +msgstr "" + +#: ../src/verbs.cpp:2868 +msgid "Switch to grayscale display mode" +msgstr "" + +#: ../src/verbs.cpp:2872 +msgid "Toggle between normal and grayscale color display modes" +msgstr "" + +#: ../src/verbs.cpp:2874 +msgid "Color-managed view" +msgstr "" + +#: ../src/verbs.cpp:2875 +msgid "Toggle color-managed display for this document window" +msgstr "" + +#: ../src/verbs.cpp:2877 +msgid "Ico_n Preview..." +msgstr "" + +#: ../src/verbs.cpp:2878 +msgid "Open a window to preview objects at different icon resolutions" +msgstr "" + +#: ../src/verbs.cpp:2880 +msgid "Zoom to fit page in window" +msgstr "" + +#: ../src/verbs.cpp:2881 +msgid "Page _Width" +msgstr "" + +#: ../src/verbs.cpp:2882 +msgid "Zoom to fit page width in window" +msgstr "" + +#: ../src/verbs.cpp:2884 +msgid "Zoom to fit drawing in window" +msgstr "" + +#: ../src/verbs.cpp:2886 +msgid "Zoom to fit selection in window" +msgstr "" + +#. Dialogs +#: ../src/verbs.cpp:2889 +msgid "P_references..." +msgstr "" + +#: ../src/verbs.cpp:2890 +msgid "Edit global Inkscape preferences" +msgstr "" + +#: ../src/verbs.cpp:2891 +msgid "_Document Properties..." +msgstr "" + +#: ../src/verbs.cpp:2892 +msgid "Edit properties of this document (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2893 +msgid "Document _Metadata..." +msgstr "" + +#: ../src/verbs.cpp:2894 +msgid "Edit document metadata (to be saved with the document)" +msgstr "" + +#: ../src/verbs.cpp:2896 +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:2898 +msgid "Gl_yphs..." +msgstr "" + +#: ../src/verbs.cpp:2899 +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:2902 +msgid "S_watches..." +msgstr "" + +#: ../src/verbs.cpp:2903 +msgid "Select colors from a swatches palette" +msgstr "" + +#: ../src/verbs.cpp:2904 +msgid "S_ymbols..." +msgstr "" + +#: ../src/verbs.cpp:2905 +msgid "Select symbol from a symbols palette" +msgstr "" + +#: ../src/verbs.cpp:2906 +msgid "Transfor_m..." +msgstr "" + +#: ../src/verbs.cpp:2907 +msgid "Precisely control objects' transformations" +msgstr "" + +#: ../src/verbs.cpp:2908 +msgid "_Align and Distribute..." +msgstr "" + +#: ../src/verbs.cpp:2909 +msgid "Align and distribute objects" +msgstr "" + +#: ../src/verbs.cpp:2910 +msgid "_Spray options..." +msgstr "" + +#: ../src/verbs.cpp:2911 +msgid "Some options for the spray" +msgstr "" + +#: ../src/verbs.cpp:2912 +msgid "Undo _History..." +msgstr "" + +#: ../src/verbs.cpp:2913 +msgid "Undo History" +msgstr "" + +#: ../src/verbs.cpp:2915 +msgid "View and select font family, font size and other text properties" +msgstr "" + +#: ../src/verbs.cpp:2916 +msgid "_XML Editor..." +msgstr "" + +#: ../src/verbs.cpp:2917 +msgid "View and edit the XML tree of the document" +msgstr "" + +#: ../src/verbs.cpp:2918 +msgid "_Find/Replace..." +msgstr "" + +#: ../src/verbs.cpp:2919 +msgid "Find objects in document" +msgstr "" + +#: ../src/verbs.cpp:2920 +msgid "Find and _Replace Text..." +msgstr "" + +#: ../src/verbs.cpp:2921 +msgid "Find and replace text in document" +msgstr "" + +#: ../src/verbs.cpp:2923 +msgid "Check spelling of text in document" +msgstr "" + +#: ../src/verbs.cpp:2924 +msgid "_Messages..." +msgstr "" + +#: ../src/verbs.cpp:2925 +msgid "View debug messages" +msgstr "" + +#: ../src/verbs.cpp:2926 +msgid "Show/Hide D_ialogs" +msgstr "" + +#: ../src/verbs.cpp:2927 +msgid "Show or hide all open dialogs" +msgstr "" + +#: ../src/verbs.cpp:2928 +msgid "Create Tiled Clones..." +msgstr "" + +#: ../src/verbs.cpp:2929 +msgid "" +"Create multiple clones of selected object, arranging them into a pattern or " +"scattering" +msgstr "" + +#: ../src/verbs.cpp:2930 +msgid "_Object attributes..." +msgstr "" + +#: ../src/verbs.cpp:2931 +msgid "Edit the object attributes..." +msgstr "" + +#: ../src/verbs.cpp:2933 +msgid "Edit the ID, locked and visible status, and other object properties" +msgstr "" + +#: ../src/verbs.cpp:2934 +msgid "_Input Devices..." +msgstr "" + +#: ../src/verbs.cpp:2935 +msgid "Configure extended input devices, such as a graphics tablet" +msgstr "" + +#: ../src/verbs.cpp:2936 +msgid "_Extensions..." +msgstr "" + +#: ../src/verbs.cpp:2937 +msgid "Query information about extensions" +msgstr "" + +#: ../src/verbs.cpp:2938 +msgid "Layer_s..." +msgstr "" + +#: ../src/verbs.cpp:2939 +msgid "View Layers" +msgstr "" + +#: ../src/verbs.cpp:2940 +msgid "Object_s..." +msgstr "" + +#: ../src/verbs.cpp:2941 +msgid "View Objects" +msgstr "" + +#: ../src/verbs.cpp:2942 +msgid "Selection se_ts..." +msgstr "" + +#: ../src/verbs.cpp:2943 +msgid "View Tags" +msgstr "" + +#: ../src/verbs.cpp:2944 +msgid "Path E_ffects ..." +msgstr "" + +#: ../src/verbs.cpp:2945 +msgid "Manage, edit, and apply path effects" +msgstr "" + +#: ../src/verbs.cpp:2946 +msgid "Filter _Editor..." +msgstr "" + +#: ../src/verbs.cpp:2947 +msgid "Manage, edit, and apply SVG filters" +msgstr "" + +#: ../src/verbs.cpp:2948 +msgid "SVG Font Editor..." +msgstr "" + +#: ../src/verbs.cpp:2949 +msgid "Edit SVG fonts" +msgstr "" + +#: ../src/verbs.cpp:2950 +msgid "Print Colors..." +msgstr "" + +#: ../src/verbs.cpp:2951 +msgid "" +"Select which color separations to render in Print Colors Preview rendermode" +msgstr "" + +#: ../src/verbs.cpp:2952 +msgid "_Export PNG Image..." +msgstr "" + +#: ../src/verbs.cpp:2953 +msgid "Export this document or a selection as a PNG image" +msgstr "" + +#. Help +#: ../src/verbs.cpp:2955 +msgid "About E_xtensions" +msgstr "" + +#: ../src/verbs.cpp:2956 +msgid "Information on Inkscape extensions" +msgstr "" + +#: ../src/verbs.cpp:2957 +msgid "About _Memory" +msgstr "" + +#: ../src/verbs.cpp:2958 +msgid "Memory usage information" +msgstr "" + +#: ../src/verbs.cpp:2959 +msgid "_About Inkscape" +msgstr "" + +#: ../src/verbs.cpp:2960 +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:2965 +msgid "Inkscape: _Basic" +msgstr "" + +#: ../src/verbs.cpp:2966 +msgid "Getting started with Inkscape" +msgstr "" + +#. "tutorial_basic" +#: ../src/verbs.cpp:2967 +msgid "Inkscape: _Shapes" +msgstr "" + +#: ../src/verbs.cpp:2968 +msgid "Using shape tools to create and edit shapes" +msgstr "" + +#: ../src/verbs.cpp:2969 +msgid "Inkscape: _Advanced" +msgstr "" + +#: ../src/verbs.cpp:2970 +msgid "Advanced Inkscape topics" +msgstr "" + +#. "tutorial_advanced" +#. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) +#: ../src/verbs.cpp:2972 +msgid "Inkscape: T_racing" +msgstr "" + +#: ../src/verbs.cpp:2973 +msgid "Using bitmap tracing" +msgstr "" + +#. "tutorial_tracing" +#: ../src/verbs.cpp:2974 +msgid "Inkscape: Tracing Pixel Art" +msgstr "" + +#: ../src/verbs.cpp:2975 +msgid "Using Trace Pixel Art dialog" +msgstr "" + +#: ../src/verbs.cpp:2976 +msgid "Inkscape: _Calligraphy" +msgstr "" + +#: ../src/verbs.cpp:2977 +msgid "Using the Calligraphy pen tool" +msgstr "" + +#: ../src/verbs.cpp:2978 +msgid "Inkscape: _Interpolate" +msgstr "" + +#: ../src/verbs.cpp:2979 +msgid "Using the interpolate extension" +msgstr "" + +#. "tutorial_interpolate" +#: ../src/verbs.cpp:2980 +msgid "_Elements of Design" +msgstr "" + +#: ../src/verbs.cpp:2981 +msgid "Principles of design in the tutorial form" +msgstr "" + +#. "tutorial_design" +#: ../src/verbs.cpp:2982 +msgid "_Tips and Tricks" +msgstr "" + +#: ../src/verbs.cpp:2983 +msgid "Miscellaneous tips and tricks" +msgstr "" + +#. "tutorial_tips" +#. Effect -- renamed Extension +#: ../src/verbs.cpp:2986 +msgid "Previous Exte_nsion" +msgstr "" + +#: ../src/verbs.cpp:2987 +msgid "Repeat the last extension with the same settings" +msgstr "" + +#: ../src/verbs.cpp:2988 +msgid "_Previous Extension Settings..." +msgstr "" + +#: ../src/verbs.cpp:2989 +msgid "Repeat the last extension with new settings" +msgstr "" + +#: ../src/verbs.cpp:2993 +msgid "Fit the page to the current selection" +msgstr "" + +#: ../src/verbs.cpp:2995 +msgid "Fit the page to the drawing" +msgstr "" + +#: ../src/verbs.cpp:2997 +msgid "" +"Fit the page to the current selection or the drawing if there is no selection" +msgstr "" + +#. LockAndHide +#: ../src/verbs.cpp:2999 +msgid "Unlock All" +msgstr "" + +#: ../src/verbs.cpp:3001 +msgid "Unlock All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:3003 +msgid "Unhide All" +msgstr "" + +#: ../src/verbs.cpp:3005 +msgid "Unhide All in All Layers" +msgstr "" + +#: ../src/verbs.cpp:3009 +msgid "Link an ICC color profile" +msgstr "" + +#: ../src/verbs.cpp:3010 +msgid "Remove Color Profile" +msgstr "" + +#: ../src/verbs.cpp:3011 +msgid "Remove a linked ICC color profile" +msgstr "" + +#: ../src/verbs.cpp:3014 +msgid "Add External Script" +msgstr "" + +#: ../src/verbs.cpp:3014 +msgid "Add an external script" +msgstr "" + +#: ../src/verbs.cpp:3016 +msgid "Add Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:3016 +msgid "Add an embedded script" +msgstr "" + +#: ../src/verbs.cpp:3018 +msgid "Edit Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:3018 +msgid "Edit an embedded script" +msgstr "" + +#: ../src/verbs.cpp:3020 +msgid "Remove External Script" +msgstr "" + +#: ../src/verbs.cpp:3020 +msgid "Remove an external script" +msgstr "" + +#: ../src/verbs.cpp:3022 +msgid "Remove Embedded Script" +msgstr "" + +#: ../src/verbs.cpp:3022 +msgid "Remove an embedded script" +msgstr "" + +#: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 +msgid "Center on horizontal and vertical axis" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:132 +msgid "Arc: Change start/end" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:198 +msgid "Arc: Change open/closed" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 +#: ../src/widgets/rect-toolbar.cpp:261 ../src/widgets/rect-toolbar.cpp:300 +#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 +#: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 +msgid "New:" +msgstr "" + +#. FIXME: implement averaging of all parameters for multiple selected +#. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); +#: ../src/widgets/arc-toolbar.cpp:292 ../src/widgets/arc-toolbar.cpp:303 +#: ../src/widgets/rect-toolbar.cpp:269 ../src/widgets/rect-toolbar.cpp:287 +#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 +#: ../src/widgets/star-toolbar.cpp:386 +msgid "Change:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:328 +msgid "Start:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:329 +msgid "The angle (in degrees) from the horizontal to the arc's start point" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:341 +msgid "End:" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:342 +msgid "The angle (in degrees) from the horizontal to the arc's end point" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:358 +msgid "Closed arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:359 +msgid "Switch to segment (closed shape with two radii)" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:365 +msgid "Open Arc" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:366 +msgid "Switch to arc (unclosed shape)" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:389 +msgid "Make whole" +msgstr "" + +#: ../src/widgets/arc-toolbar.cpp:390 +msgid "Make the shape a whole ellipse, not arc or segment" +msgstr "" + +#. TODO: use the correct axis here, too +#: ../src/widgets/box3d-toolbar.cpp:233 +msgid "3D Box: Change perspective (angle of infinite axis)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:302 +msgid "Angle in X direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:304 +msgid "Angle of PLs in X direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:326 +msgid "State of VP in X direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:327 +msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:342 +msgid "Angle in Y direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:342 +msgid "Angle Y:" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:344 +msgid "Angle of PLs in Y direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:365 +msgid "State of VP in Y direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:366 +msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:381 +msgid "Angle in Z direction" +msgstr "" + +#. Translators: PL is short for 'perspective line' +#: ../src/widgets/box3d-toolbar.cpp:383 +msgid "Angle of PLs in Z direction" +msgstr "" + +#. Translators: VP is short for 'vanishing point' +#: ../src/widgets/box3d-toolbar.cpp:404 +msgid "State of VP in Z direction" +msgstr "" + +#: ../src/widgets/box3d-toolbar.cpp:405 +msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" +msgstr "" + +#. gint preset_index = ege_select_one_action_get_active( sel ); +#: ../src/widgets/calligraphy-toolbar.cpp:218 +#: ../src/widgets/calligraphy-toolbar.cpp:262 +#: ../src/widgets/calligraphy-toolbar.cpp:267 +msgid "No preset" +msgstr "" + +#. Width +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(hairline)" +msgstr "" + +#. Mean +#. Rotation +#. Scale +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/calligraphy-toolbar.cpp:460 +#: ../src/widgets/eraser-toolbar.cpp:125 ../src/widgets/pencil-toolbar.cpp:275 +#: ../src/widgets/spray-toolbar.cpp:113 ../src/widgets/spray-toolbar.cpp:129 +#: ../src/widgets/spray-toolbar.cpp:145 ../src/widgets/spray-toolbar.cpp:205 +#: ../src/widgets/spray-toolbar.cpp:235 ../src/widgets/spray-toolbar.cpp:253 +#: ../src/widgets/tweak-toolbar.cpp:125 ../src/widgets/tweak-toolbar.cpp:142 +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:427 +#: ../src/widgets/eraser-toolbar.cpp:125 +msgid "(broad stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 +msgid "Pen Width" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:431 +msgid "The width of the calligraphic pen (relative to the visible canvas area)" +msgstr "" + +#. Thinning +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed blows up stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight widening)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(constant width)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(slight thinning, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:444 +msgid "(speed deflates stroke)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Stroke Thinning" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:447 +msgid "Thinning:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:448 +msgid "" +"How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " +"makes them broader, 0 makes width independent of velocity)" +msgstr "" + +#. Angle +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(left edge up)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(horizontal)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:460 +msgid "(right edge up)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:463 +msgid "Pen Angle" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:463 +#: ../share/extensions/motion.inx.h:3 ../share/extensions/restack.inx.h:10 +msgid "Angle:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:464 +msgid "" +"The angle of the pen's nib (in degrees; 0 = horizontal; has no effect if " +"fixation = 0)" +msgstr "" + +#. Fixation +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(perpendicular to stroke, \"brush\")" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(almost fixed, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:478 +msgid "(fixed by Angle, \"pen\")" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:481 +msgid "Fixation:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:482 +msgid "" +"Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " +"fixed angle)" +msgstr "" + +#. Cap Rounding +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(blunt caps, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(slightly bulging)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(approximately round)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:494 +msgid "(long protruding caps)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Cap rounding" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:498 +msgid "Caps:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:499 +msgid "" +"Increase to make caps at the ends of strokes protrude more (0 = no caps, 1 = " +"round caps)" +msgstr "" + +#. Tremor +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(smooth line)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(slight tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(noticeable tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:511 +msgid "(maximum tremor)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Stroke Tremor" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:514 +msgid "Tremor:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:515 +msgid "Increase to make strokes rugged and trembling" +msgstr "" + +#. Wiggle +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(no wiggle)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(slight deviation)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:529 +msgid "(wild waves and curls)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Pen Wiggle" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:532 +msgid "Wiggle:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:533 +msgid "Increase to make the pen waver and wiggle" +msgstr "" + +#. Mass +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(no inertia)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(slight smoothing, default)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(noticeable lagging)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:546 +msgid "(maximum inertia)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Pen Mass" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:549 +msgid "Mass:" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:550 +msgid "Increase to make the pen drag behind, as if slowed by inertia" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:565 +msgid "Trace Background" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:566 +msgid "" +"Trace the lightness of the background by the width of the pen (white - " +"minimum width, black - maximum width)" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:579 +msgid "Use the pressure of the input device to alter the width of the pen" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:591 +msgid "Tilt" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:592 +msgid "Use the tilt of the input device to alter the angle of the pen's nib" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:607 +msgid "Choose a preset" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:622 +msgid "Add/Edit Profile" +msgstr "" + +#: ../src/widgets/calligraphy-toolbar.cpp:623 +msgid "Add or edit calligraphic profile" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:120 +msgid "Set connector type: orthogonal" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:120 +msgid "Set connector type: polyline" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:169 +msgid "Change connector curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:220 +msgid "Change connector spacing" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:313 +msgid "Avoid" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:323 +msgid "Ignore" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:334 +msgid "Orthogonal" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:335 +msgid "Make connector orthogonal or polyline" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:349 +msgid "Connector Curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:349 +msgid "Curvature:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:350 +msgid "The amount of connectors curvature" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:360 +msgid "Connector Spacing" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:360 +msgid "Spacing:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:361 +msgid "The amount of space left around objects by auto-routing connectors" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:372 +msgid "Graph" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:382 +msgid "Connector Length" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:382 +msgid "Length:" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:383 +msgid "Ideal length for connectors when layout is applied" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:395 +msgid "Downwards" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:396 +msgid "Make connectors with end-markers (arrows) point downwards" +msgstr "" + +#: ../src/widgets/connector-toolbar.cpp:412 +msgid "Do not allow overlapping shapes" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:59 +msgid "Dash pattern" +msgstr "" + +#: ../src/widgets/dash-selector.cpp:76 +msgid "Pattern offset" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:466 +msgid "Zoom drawing if window size changes" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:665 +msgid "Cursor coordinates" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:691 +msgid "Z:" +msgstr "" + +#. display the initial welcome message in the statusbar +#: ../src/widgets/desktop-widget.cpp:734 +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:828 +msgid "grayscale" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:829 +msgid ", grayscale" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:830 +msgid "print colors preview" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:831 +msgid ", print colors preview" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:832 +msgid "outline" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:833 +msgid "no filters" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:860 +#, c-format +msgid "%s%s: %d (%s%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:862 ../src/widgets/desktop-widget.cpp:866 +#, c-format +msgid "%s%s: %d (%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:868 +#, c-format +msgid "%s%s: %d - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:874 +#, c-format +msgid "%s%s (%s%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:876 ../src/widgets/desktop-widget.cpp:880 +#, c-format +msgid "%s%s (%s) - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:882 +#, c-format +msgid "%s%s - Inkscape" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1051 +msgid "Color-managed display is enabled in this window" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1053 +msgid "Color-managed display is disabled in this window" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1108 +#, c-format +msgid "" +"Save changes to document \"%s\" before " +"closing?\n" +"\n" +"If you close without saving, your changes will be discarded." +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1118 +#: ../src/widgets/desktop-widget.cpp:1177 +msgid "Close _without saving" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1167 +#, c-format +msgid "" +"The file \"%s\" was saved with a " +"format that may cause data loss!\n" +"\n" +"Do you want to save this file as Inkscape SVG?" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1179 +msgid "_Save as Inkscape SVG" +msgstr "" + +#: ../src/widgets/desktop-widget.cpp:1392 +msgid "Note:" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:90 +msgid "Pick opacity" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:91 +msgid "" +"Pick both the color and the alpha (transparency) under cursor; otherwise, " +"pick only the visible color premultiplied by alpha" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:94 +msgid "Pick" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:103 +msgid "Assign opacity" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:104 +msgid "" +"If alpha was picked, assign it to selection as fill or stroke transparency" +msgstr "" + +#: ../src/widgets/dropper-toolbar.cpp:107 +msgid "Assign" +msgstr "" + +#: ../src/widgets/ege-paint-def.cpp:87 +msgid "remove" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:94 +msgid "Delete objects touched by the eraser" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:100 +msgid "Cut" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:101 +msgid "Cut out from objects" +msgstr "" + +#: ../src/widgets/eraser-toolbar.cpp:129 +msgid "The width of the eraser pen (relative to the visible canvas area)" +msgstr "" + +#: ../src/widgets/fill-style.cpp:360 +msgid "Change fill rule" +msgstr "" + +#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +msgid "Set fill color" +msgstr "" + +#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +msgid "Set stroke color" +msgstr "" + +#: ../src/widgets/fill-style.cpp:622 +msgid "Set gradient on fill" +msgstr "" + +#: ../src/widgets/fill-style.cpp:622 +msgid "Set gradient on stroke" +msgstr "" + +#: ../src/widgets/fill-style.cpp:682 +msgid "Set pattern on fill" +msgstr "" + +#: ../src/widgets/fill-style.cpp:683 +msgid "Set pattern on stroke" +msgstr "" + +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:947 +#: ../src/widgets/text-toolbar.cpp:1259 +msgid "Font size" +msgstr "" + +#. Family frame +#: ../src/widgets/font-selector.cpp:134 +msgid "Font family" +msgstr "" + +#. Style frame +#: ../src/widgets/font-selector.cpp:179 +msgctxt "Font selector" +msgid "Style" +msgstr "" + +#: ../src/widgets/font-selector.cpp:211 +msgid "Face" +msgstr "" + +#: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 +msgid "Font size:" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:196 +msgid "Create a duplicate gradient" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:212 +msgid "Edit gradient" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:288 +#: ../src/widgets/paint-selector.cpp:236 +msgid "Swatch" +msgstr "" + +#: ../src/widgets/gradient-selector.cpp:338 +msgid "Rename gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:156 +#: ../src/widgets/gradient-toolbar.cpp:169 +#: ../src/widgets/gradient-toolbar.cpp:758 +#: ../src/widgets/gradient-toolbar.cpp:1097 +msgid "No gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:176 +msgid "Multiple gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:678 +msgid "Multiple stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:776 +#: ../src/widgets/gradient-vector.cpp:609 +msgid "No stops in gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:930 +msgid "Assign gradient to object" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:952 +msgid "Set gradient repeat" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:990 +#: ../src/widgets/gradient-vector.cpp:720 +msgid "Change gradient stop offset" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1037 +msgid "linear" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1037 +msgid "Create linear gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1041 +msgid "radial" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1041 +msgid "Create radial (elliptic or circular) gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1044 +#: ../src/widgets/mesh-toolbar.cpp:341 +msgid "New:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 +msgid "fill" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 +msgid "Create gradient in the fill" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 +msgid "stroke" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 +msgid "Create gradient in the stroke" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:371 +msgid "on:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1099 +msgid "Select" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1099 +msgid "Choose a gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1100 +msgid "Select:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1115 +msgctxt "Gradient repeat type" +msgid "None" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1121 +msgid "Direct" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1123 +msgid "Repeat" +msgstr "" + +#. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute +#: ../src/widgets/gradient-toolbar.cpp:1125 +msgid "" +"Whether to fill with flat color beyond the ends of the gradient vector " +"(spreadMethod=\"pad\"), or repeat the gradient in the same direction " +"(spreadMethod=\"repeat\"), or repeat the gradient in alternating opposite " +"directions (spreadMethod=\"reflect\")" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1130 +msgid "Repeat:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1144 +msgid "No stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1146 +msgid "Stops" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1146 +msgid "Select a stop for the current gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1147 +msgid "Stops:" +msgstr "" + +#. Label +#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-vector.cpp:906 +msgctxt "Gradient" +msgid "Offset:" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1159 +msgid "Offset of selected stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1177 +#: ../src/widgets/gradient-toolbar.cpp:1178 +msgid "Insert new stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1192 +#: ../src/widgets/gradient-vector.cpp:888 +msgid "Delete stop" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1206 +msgid "Reverse the direction of the gradient" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1220 +msgid "Link gradients" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1221 +msgid "Link gradients to change all related gradients" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:312 +#: ../src/widgets/paint-selector.cpp:947 +#: ../src/widgets/stroke-marker-selector.cpp:154 +msgid "No document selected" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:316 +msgid "No gradients in document" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:320 +msgid "No gradient selected" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:883 +msgid "Add stop" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:886 +msgid "Add another control stop to gradient" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:891 +msgid "Delete current control stop from gradient" +msgstr "" + +#. TRANSLATORS: "Stop" means: a "phase" of a gradient +#: ../src/widgets/gradient-vector.cpp:959 +msgid "Stop Color" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:987 +msgid "Gradient editor" +msgstr "" + +#: ../src/widgets/gradient-vector.cpp:1324 +msgid "Change gradient stop color" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:233 +msgid "Closed" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:235 +msgid "Open start" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:237 +msgid "Open end" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:239 +msgid "Open both" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:301 +msgid "All inactive" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:302 +msgid "No geometric tool is active" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:335 +msgid "Show limiting bounding box" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:336 +msgid "Show bounding box (used to cut infinite lines)" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:347 +msgid "Get limiting bounding box from selection" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:348 +msgid "" +"Set limiting bounding box (used to cut infinite lines) to the bounding box " +"of current selection" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:360 +msgid "Choose a line segment type" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:376 +msgid "Display measuring info" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:377 +msgid "Display measuring info for selected items" +msgstr "" + +#. Add the units menu. +#: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 +#: ../src/widgets/paintbucket-toolbar.cpp:168 +#: ../src/widgets/rect-toolbar.cpp:379 ../src/widgets/select-toolbar.cpp:538 +msgid "Units" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:397 +msgid "Open LPE dialog" +msgstr "" + +#: ../src/widgets/lpe-toolbar.cpp:398 +msgid "Open LPE dialog (to adapt parameters numerically)" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 +msgid "Font Size" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:86 +msgid "Font Size:" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:87 +msgid "The font size to be used in the measurement labels" +msgstr "" + +#: ../src/widgets/measure-toolbar.cpp:99 +#: ../src/widgets/measure-toolbar.cpp:107 +msgid "The units to be used for the measurements" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:311 +msgid "Set mesh smoothing" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:334 +msgid "normal" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:334 +msgid "Create mesh gradient" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:338 +msgid "conical" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:338 +msgid "Create conical gradient" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:393 +msgid "Rows" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../share/extensions/guides_creator.inx.h:5 +#: ../share/extensions/layout_nup.inx.h:12 +msgid "Rows:" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:393 +msgid "Number of rows in new mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:409 +msgid "Columns" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../share/extensions/guides_creator.inx.h:4 +msgid "Columns:" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:409 +msgid "Number of columns in new mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:423 +msgid "Edit Fill" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:424 +msgid "Edit fill mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:435 +msgid "Edit Stroke" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:436 +msgid "Edit stroke mesh" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 +msgid "Show Handles" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:448 +msgid "Show side and tensor handles" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:463 +msgid "WARNING: Mesh SVG Syntax Subject to Change, Smoothing Experimental" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:473 +msgctxt "Smoothing" +msgid "None" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:479 +msgid "Smooth1" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:482 +msgid "Smooth2" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:485 +msgid "Smooth3" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:488 +msgid "Smooth4" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:491 +msgid "Smooth5" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:494 +msgid "Smooth6" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:497 +msgid "Smooth7" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:500 +msgid "If the mesh should be smoothed across patch boundaries." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:502 ../src/widgets/pencil-toolbar.cpp:278 +msgid "Smoothing:" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:341 +msgid "Insert node" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:342 +msgid "Insert new nodes into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:345 +msgid "Insert" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:356 +msgid "Insert node at min X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:357 +msgid "Insert new nodes at min X into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:360 +msgid "Insert min X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:366 +msgid "Insert node at max X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:367 +msgid "Insert new nodes at max X into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:370 +msgid "Insert max X" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:376 +msgid "Insert node at min Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:377 +msgid "Insert new nodes at min Y into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:380 +msgid "Insert min Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:386 +msgid "Insert node at max Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:387 +msgid "Insert new nodes at max Y into selected segments" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:390 +msgid "Insert max Y" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:398 +msgid "Delete selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:409 +msgid "Join selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:412 +msgid "Join" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:420 +msgid "Break path at selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:430 +msgid "Join with segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:431 +msgid "Join selected endnodes with a new segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:440 +msgid "Delete segment" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:441 +msgid "Delete segment between two non-endpoint nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:450 +msgid "Node Cusp" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:451 +msgid "Make selected nodes corner" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:460 +msgid "Node Smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:461 +msgid "Make selected nodes smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:470 +msgid "Node Symmetric" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:471 +msgid "Make selected nodes symmetric" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:480 +msgid "Node Auto" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:481 +msgid "Make selected nodes auto-smooth" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:490 +msgid "Node Line" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:491 +msgid "Make selected segments lines" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:500 +msgid "Node Curve" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:501 +msgid "Make selected segments curves" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:510 +msgid "Show Transform Handles" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:511 +msgid "Show transformation handles for selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:522 +msgid "Show Bezier handles of selected nodes" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:532 +msgid "Show Outline" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:533 +msgid "Show path outline (without path effects)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:555 +msgid "Edit clipping paths" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:556 +msgid "Show clipping path(s) of selected object(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:566 +msgid "Edit masks" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:567 +msgid "Show mask(s) of selected object(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate:" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:581 +msgid "X coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate:" +msgstr "" + +#: ../src/widgets/node-toolbar.cpp:599 +msgid "Y coordinate of selected node(s)" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:222 +msgid "No paint" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:224 +msgid "Flat color" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:226 +msgid "Linear gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:228 +msgid "Radial gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:231 +msgid "Mesh gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:238 +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:255 +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:266 +msgid "" +"Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:600 +msgid "No objects" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:611 +msgid "Multiple styles" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:622 +msgid "Paint is undefined" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:633 +msgid "No paint" +msgstr "" + +#: ../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:773 +msgid "Linear gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:776 +msgid "Radial gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:781 +msgid "Mesh gradient" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:1080 +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:1093 +msgid "Pattern fill" +msgstr "" + +#: ../src/widgets/paint-selector.cpp:1187 +msgid "Swatch fill" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:135 +msgid "Fill by" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:136 +msgid "Fill by:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:148 +msgid "Fill Threshold" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:149 +msgid "" +"The maximum allowed difference between the clicked pixel and the neighboring " +"pixels to be counted in the fill" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:176 +msgid "Grow/shrink by" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:176 +msgid "Grow/shrink by:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:177 +msgid "" +"The amount to grow (positive) or shrink (negative) the created fill path" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:202 +msgid "Close gaps" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:203 +msgid "Close gaps:" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:214 +#: ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:289 +#: ../src/widgets/star-toolbar.cpp:566 +msgid "Defaults" +msgstr "" + +#: ../src/widgets/paintbucket-toolbar.cpp:215 +msgid "" +"Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " +"to change defaults)" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:96 +msgid "Bezier" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:97 +msgid "Create regular Bezier path" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:104 +msgid "Create Spiro path" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:110 +msgid "Create BSpline path" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:116 +msgid "Zigzag" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:117 +msgid "Create a sequence of straight line segments" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:123 +msgid "Paraxial" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:124 +msgid "Create a sequence of paraxial line segments" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:132 +msgid "Mode of new lines drawn by this tool" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:160 +msgctxt "Freehand shape" +msgid "None" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:161 +msgid "Triangle in" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:162 +msgid "Triangle out" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:164 +msgid "From clipboard" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:165 +msgid "Last applied" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:190 ../src/widgets/pencil-toolbar.cpp:191 +msgid "Shape:" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:190 +msgid "Shape of new paths drawn by this tool" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:275 +msgid "(many nodes, rough)" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:275 +msgid "(few nodes, smooth)" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:278 +msgid "Smoothing: " +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:279 +msgid "How much smoothing (simplifying) is applied to the line" +msgstr "" + +#: ../src/widgets/pencil-toolbar.cpp:300 +msgid "" +"Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:124 +msgid "Change rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:318 +msgid "W:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:318 +msgid "Width of rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:335 +msgid "H:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:335 +msgid "Height of rectangle" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:349 ../src/widgets/rect-toolbar.cpp:364 +msgid "not rounded" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:352 +msgid "Horizontal radius" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:352 +msgid "Rx:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:352 +msgid "Horizontal radius of rounded corners" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:367 +msgid "Vertical radius" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:367 +msgid "Ry:" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:367 +msgid "Vertical radius of rounded corners" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:386 +msgid "Not rounded" +msgstr "" + +#: ../src/widgets/rect-toolbar.cpp:387 +msgid "Make corners sharp" +msgstr "" + +#: ../src/widgets/ruler.cpp:192 +msgid "The orientation of the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:202 +msgid "Unit of the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:209 +msgid "Lower" +msgstr "" + +#: ../src/widgets/ruler.cpp:210 +msgid "Lower limit of ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:219 +msgid "Upper" +msgstr "" + +#: ../src/widgets/ruler.cpp:220 +msgid "Upper limit of ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:230 +msgid "Position of mark on the ruler" +msgstr "" + +#: ../src/widgets/ruler.cpp:239 +msgid "Max Size" +msgstr "" + +#: ../src/widgets/ruler.cpp:240 +msgid "Maximum size of the ruler" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:262 +msgid "Transform by toolbar" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:341 +msgid "Now stroke width is scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:343 +msgid "Now stroke width is not scaled when objects are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:354 +msgid "" +"Now rounded rectangle corners are scaled when rectangles are " +"scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:356 +msgid "" +"Now rounded rectangle corners are not scaled when rectangles " +"are scaled." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:367 +msgid "" +"Now gradients are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:369 +msgid "" +"Now gradients remain fixed when objects are transformed " +"(moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:380 +msgid "" +"Now patterns are transformed along with their objects when " +"those are transformed (moved, scaled, rotated, or skewed)." +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:382 +msgid "" +"Now patterns remain fixed when objects are transformed (moved, " +"scaled, rotated, or skewed)." +msgstr "" + +#. four spinbuttons +#: ../src/widgets/select-toolbar.cpp:500 +msgctxt "Select toolbar" +msgid "X position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:500 +msgctxt "Select toolbar" +msgid "X:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:502 +msgid "Horizontal coordinate of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:506 +msgctxt "Select toolbar" +msgid "Y position" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:506 +msgctxt "Select toolbar" +msgid "Y:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:508 +msgid "Vertical coordinate of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:512 +msgctxt "Select toolbar" +msgid "Width" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:512 +msgctxt "Select toolbar" +msgid "W:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:514 +msgid "Width of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:521 +msgid "Lock width and height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:522 +msgid "When locked, change both width and height by the same proportion" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:531 +msgctxt "Select toolbar" +msgid "Height" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:531 +msgctxt "Select toolbar" +msgid "H:" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:533 +msgid "Height of selection" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:583 +msgid "Scale rounded corners" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:594 +msgid "Move gradients" +msgstr "" + +#: ../src/widgets/select-toolbar.cpp:605 +msgid "Move patterns" +msgstr "" + +#: ../src/widgets/sp-attribute-widget.cpp:299 +msgid "Set attribute" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:234 +msgid "CMS" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:330 +#: ../src/widgets/sp-color-scales.cpp:414 +msgid "_R:" +msgstr "" + +#. TYPE_RGB_16 +#: ../src/widgets/sp-color-icc-selector.cpp:331 +#: ../src/widgets/sp-color-scales.cpp:417 +msgid "_G:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:332 +#: ../src/widgets/sp-color-scales.cpp:420 +msgid "_B:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:334 +msgid "Gray" +msgstr "" + +#. TYPE_GRAY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:336 +#: ../src/widgets/sp-color-icc-selector.cpp:340 +#: ../src/widgets/sp-color-scales.cpp:440 +msgid "_H:" +msgstr "" + +#. TYPE_HSV_16 +#: ../src/widgets/sp-color-icc-selector.cpp:337 +#: ../src/widgets/sp-color-icc-selector.cpp:342 +#: ../src/widgets/sp-color-scales.cpp:443 +msgid "_S:" +msgstr "" + +#. TYPE_HLS_16 +#: ../src/widgets/sp-color-icc-selector.cpp:341 +#: ../src/widgets/sp-color-scales.cpp:446 +msgid "_L:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:344 +#: ../src/widgets/sp-color-icc-selector.cpp:349 +#: ../src/widgets/sp-color-scales.cpp:468 +msgid "_C:" +msgstr "" + +#. TYPE_CMYK_16 +#. TYPE_CMY_16 +#: ../src/widgets/sp-color-icc-selector.cpp:345 +#: ../src/widgets/sp-color-icc-selector.cpp:350 +#: ../src/widgets/sp-color-scales.cpp:471 +msgid "_M:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:346 +#: ../src/widgets/sp-color-icc-selector.cpp:351 +#: ../src/widgets/sp-color-scales.cpp:474 +msgid "_Y:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:347 +#: ../src/widgets/sp-color-scales.cpp:477 +msgid "_K:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:430 +msgid "Fix" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:433 +msgid "Fix RGB fallback to match icc-color() value." +msgstr "" + +#. Label +#: ../src/widgets/sp-color-icc-selector.cpp:536 +#: ../src/widgets/sp-color-scales.cpp:423 +#: ../src/widgets/sp-color-scales.cpp:449 +#: ../src/widgets/sp-color-scales.cpp:480 +#: ../src/widgets/sp-color-wheel-selector.cpp:111 +msgid "_A:" +msgstr "" + +#: ../src/widgets/sp-color-icc-selector.cpp:547 +#: ../src/widgets/sp-color-icc-selector.cpp:560 +#: ../src/widgets/sp-color-scales.cpp:424 +#: ../src/widgets/sp-color-scales.cpp:425 +#: ../src/widgets/sp-color-scales.cpp:450 +#: ../src/widgets/sp-color-scales.cpp:451 +#: ../src/widgets/sp-color-scales.cpp:481 +#: ../src/widgets/sp-color-scales.cpp:482 +#: ../src/widgets/sp-color-wheel-selector.cpp:137 +#: ../src/widgets/sp-color-wheel-selector.cpp:166 +msgid "Alpha (opacity)" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:370 +msgid "Color Managed" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:377 +msgid "Out of gamut!" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:384 +msgid "Too much ink!" +msgstr "" + +#. Create RGBA entry and color preview +#: ../src/widgets/sp-color-notebook.cpp:401 +msgid "RGBA_:" +msgstr "" + +#: ../src/widgets/sp-color-notebook.cpp:409 +msgid "Hexadecimal RGBA value of the color" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:53 +msgid "RGB" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:53 +msgid "HSL" +msgstr "" + +#: ../src/widgets/sp-color-scales.cpp:53 +msgid "CMYK" +msgstr "" + +#: ../src/widgets/sp-color-selector.cpp:42 +msgid "Unnamed" +msgstr "" + +#: ../src/widgets/sp-xmlview-attr-list.cpp:59 +msgid "Value" +msgstr "" + +#: ../src/widgets/sp-xmlview-content.cpp:151 +msgid "Type text in a text node" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:100 +msgid "Change spiral" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "just a curve" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:246 +msgid "one full revolution" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of turns" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Turns:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:249 +msgid "Number of revolutions" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "circle" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is much denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "edge is denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "even" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:260 +msgid "center is much denser" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "Divergence:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:263 +msgid "How much denser/sparser are outer revolutions; 1 = uniform" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts from center" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts mid-way" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:274 +msgid "starts near edge" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Inner radius:" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:277 +msgid "Radius of the innermost revolution (relative to the spiral size)" +msgstr "" + +#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:567 +msgid "" +"Reset shape parameters to defaults (use Inkscape Preferences > Tools to " +"change defaults)" +msgstr "" + +#. Width +#: ../src/widgets/spray-toolbar.cpp:113 +msgid "(narrow spray)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:113 +msgid "(broad spray)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:116 +msgid "The width of the spray area (relative to the visible canvas area)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:129 +msgid "(maximum mean)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "Focus" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "Focus:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:132 +msgid "0 to spray a spot; increase to enlarge the ring radius" +msgstr "" + +#. Standard_deviation +#: ../src/widgets/spray-toolbar.cpp:145 +msgid "(minimum scatter)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:145 +msgid "(maximum scatter)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgctxt "Spray tool" +msgid "Scatter" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgctxt "Spray tool" +msgid "Scatter:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:148 +msgid "Increase to scatter sprayed objects" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:167 +msgid "Spray copies of the initial selection" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:174 +msgid "Spray clones of the initial selection" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:180 +msgid "Spray single path" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:181 +msgid "Spray objects in a single path" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:185 ../src/widgets/tweak-toolbar.cpp:253 +msgid "Mode" +msgstr "" + +#. Population +#: ../src/widgets/spray-toolbar.cpp:205 +msgid "(low population)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:205 +msgid "(high population)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:208 +msgid "Amount" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:209 +msgid "Adjusts the number of items sprayed per click" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:225 +msgid "" +"Use the pressure of the input device to alter the amount of sprayed objects" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:235 +msgid "(high rotation variation)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:238 +msgid "Rotation" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:238 +msgid "Rotation:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:240 +#, no-c-format +msgid "" +"Variation of the rotation of the sprayed objects; 0% for the same rotation " +"than the original object" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:253 +msgid "(high scale variation)" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:256 +msgctxt "Spray tool" +msgid "Scale" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:256 +msgctxt "Spray tool" +msgid "Scale:" +msgstr "" + +#: ../src/widgets/spray-toolbar.cpp:258 +#, no-c-format +msgid "" +"Variation in the scale of the sprayed objects; 0% for the same scale than " +"the original object" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:103 +msgid "Star: Change number of corners" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:156 +msgid "Star: Change spoke ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:201 +msgid "Make polygon" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:201 +msgid "Make star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:240 +msgid "Star: Change rounding" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:280 +msgid "Star: Change randomization" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:465 +msgid "Regular polygon (with one handle) instead of a star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:472 +msgid "Star instead of a regular polygon (with one handle)" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:493 +msgid "triangle/tri-star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:493 +msgid "square/quad-star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:493 +msgid "pentagon/five-pointed star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:493 +msgid "hexagon/six-pointed star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:496 +msgid "Corners" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:496 +msgid "Corners:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:496 +msgid "Number of corners of a polygon or star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "thin-ray star" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "pentagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "hexagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "heptagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "octagram" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:509 +msgid "regular polygon" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:512 +msgid "Spoke ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:512 +msgid "Spoke ratio:" +msgstr "" + +#. TRANSLATORS: Tip radius of a star is the distance from the center to the farthest handle. +#. Base radius is the same for the closest handle. +#: ../src/widgets/star-toolbar.cpp:515 +msgid "Base radius to tip radius ratio" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "stretched" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "twisted" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "slightly pinched" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "NOT rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "slightly rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "visibly rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "well rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 +msgid "amply rounded" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:533 ../src/widgets/star-toolbar.cpp:548 +msgid "blown up" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:536 +msgid "Rounded:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:536 +msgid "How much rounded are the corners (0 for sharp)" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:548 +msgid "NOT randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:548 +msgid "slightly irregular" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:548 +msgid "visibly randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:548 +msgid "strongly randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:551 +msgid "Randomized" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:551 +msgid "Randomized:" +msgstr "" + +#: ../src/widgets/star-toolbar.cpp:551 +msgid "Scatter randomly the corners and angles" +msgstr "" + +#: ../src/widgets/stroke-marker-selector.cpp:388 +msgctxt "Marker" +msgid "None" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:192 +msgid "Stroke width" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:194 +msgctxt "Stroke width" +msgid "_Width:" +msgstr "" + +#. TRANSLATORS: Miter join: joining lines with a sharp (pointed) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:239 +msgid "Miter join" +msgstr "" + +#. TRANSLATORS: Round join: joining lines with a rounded corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:247 +msgid "Round join" +msgstr "" + +#. TRANSLATORS: Bevel join: joining lines with a blunted (flattened) corner. +#. For an example, draw a triangle with a large stroke width and modify the +#. "Join" option (in the Fill and Stroke dialog). +#: ../src/widgets/stroke-style.cpp:255 +msgid "Bevel join" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:280 +msgid "Miter _limit:" +msgstr "" + +#. Cap type +#. TRANSLATORS: cap type specifies the shape for the ends of lines +#. spw_label(t, _("_Cap:"), 0, i); +#: ../src/widgets/stroke-style.cpp:296 +msgid "Cap:" +msgstr "" + +#. TRANSLATORS: Butt cap: the line shape does not extend beyond the end point +#. of the line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:307 +msgid "Butt cap" +msgstr "" + +#. TRANSLATORS: Round cap: the line shape extends beyond the end point of the +#. line; the ends of the line are rounded +#: ../src/widgets/stroke-style.cpp:314 +msgid "Round cap" +msgstr "" + +#. TRANSLATORS: Square cap: the line shape extends beyond the end point of the +#. line; the ends of the line are square +#: ../src/widgets/stroke-style.cpp:321 +msgid "Square cap" +msgstr "" + +#. Dash +#: ../src/widgets/stroke-style.cpp:326 +msgid "Dashes:" +msgstr "" + +#. Drop down marker selectors +#. TRANSLATORS: Path markers are an SVG feature that allows you to attach arbitrary shapes +#. (arrowheads, bullets, faces, whatever) to the start, end, or middle nodes of a path. +#: ../src/widgets/stroke-style.cpp:352 +msgid "Markers:" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:358 +msgid "Start Markers are drawn on the first node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:367 +msgid "" +"Mid Markers are drawn on every node of a path or shape except the first and " +"last nodes" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:376 +msgid "End Markers are drawn on the last node of a path or shape" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:494 +msgid "Set markers" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1030 ../src/widgets/stroke-style.cpp:1114 +msgid "Set stroke style" +msgstr "" + +#: ../src/widgets/stroke-style.cpp:1202 +msgid "Set marker color" +msgstr "" + +#: ../src/widgets/swatch-selector.cpp:137 +msgid "Change swatch color" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:169 +msgid "Text: Change font family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:233 +msgid "Text: Change font size" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:269 +msgid "Text: Change font style" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:347 +msgid "Text: Change superscript or subscript" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:489 +msgid "Text: Change alignment" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:532 +msgid "Text: Change line-height" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:580 +msgid "Text: Change word-spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:620 +msgid "Text: Change letter-spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:658 +msgid "Text: Change dx (kern)" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:692 +msgid "Text: Change dy" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:727 +msgid "Text: Change rotate" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:774 +msgid "Text: Change orientation" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1210 +msgid "Font Family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1211 +msgid "Select Font Family (Alt-X to access)" +msgstr "" + +#. Focus widget +#. Enable entry completion +#: ../src/widgets/text-toolbar.cpp:1221 +msgid "Select all text with this font-family" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1225 +msgid "Font not found on system" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1284 +msgid "Font Style" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1285 +msgid "Font style" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1302 +msgid "Toggle Superscript" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1303 +msgid "Toggle superscript" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1315 +msgid "Toggle Subscript" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1316 +msgid "Toggle subscript" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1357 +msgid "Justify" +msgstr "" + +#. Name +#: ../src/widgets/text-toolbar.cpp:1364 +msgid "Alignment" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1365 +msgid "Text alignment" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1392 +msgid "Horizontal" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1399 +msgid "Vertical" +msgstr "" + +#. Label +#: ../src/widgets/text-toolbar.cpp:1406 +msgid "Text orientation" +msgstr "" + +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1429 +msgid "Smaller spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1429 ../src/widgets/text-toolbar.cpp:1460 +#: ../src/widgets/text-toolbar.cpp:1491 +msgctxt "Text tool" +msgid "Normal" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1429 +msgid "Larger spacing" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1434 +msgid "Line Height" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1435 +msgid "Line:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1436 +msgid "Spacing between lines (times font size)" +msgstr "" + +#. Drop down menu +#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +msgid "Negative spacing" +msgstr "" + +#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +msgid "Positive spacing" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1465 +msgid "Word spacing" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1466 +msgid "Word:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1467 +msgid "Spacing between words (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1496 +msgid "Letter spacing" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1497 +msgid "Letter:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1498 +msgid "Spacing between letters (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1527 +msgid "Kerning" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1528 +msgid "Kern:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1529 +msgid "Horizontal kerning (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1558 +msgid "Vertical Shift" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1559 +msgid "Vert:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1560 +msgid "Vertical shift (px)" +msgstr "" + +#. name +#: ../src/widgets/text-toolbar.cpp:1589 +msgid "Letter rotation" +msgstr "" + +#. label +#: ../src/widgets/text-toolbar.cpp:1590 +msgid "Rot:" +msgstr "" + +#. short label +#: ../src/widgets/text-toolbar.cpp:1591 +msgid "Character rotation (degrees)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:181 +msgid "Color/opacity used for color tweaking" +msgstr "" + +#: ../src/widgets/toolbox.cpp:189 +msgid "Style of new stars" +msgstr "" + +#: ../src/widgets/toolbox.cpp:191 +msgid "Style of new rectangles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:193 +msgid "Style of new 3D boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:195 +msgid "Style of new ellipses" +msgstr "" + +#: ../src/widgets/toolbox.cpp:197 +msgid "Style of new spirals" +msgstr "" + +#: ../src/widgets/toolbox.cpp:199 +msgid "Style of new paths created by Pencil" +msgstr "" + +#: ../src/widgets/toolbox.cpp:201 +msgid "Style of new paths created by Pen" +msgstr "" + +#: ../src/widgets/toolbox.cpp:203 +msgid "Style of new calligraphic strokes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 +msgid "TBD" +msgstr "" + +#: ../src/widgets/toolbox.cpp:219 +msgid "Style of Paint Bucket fill objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1683 +msgid "Bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1683 +msgid "Snap bounding boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1692 +msgid "Bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1692 +msgid "Snap to edges of a bounding box" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1701 +msgid "Bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1701 +msgid "Snap bounding box corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1710 +msgid "BBox Edge Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1710 +msgid "Snap midpoints of bounding box edges" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1720 +msgid "BBox Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1720 +msgid "Snapping centers of bounding boxes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1729 +msgid "Snap nodes, paths, and handles" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1737 +msgid "Snap to paths" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1746 +msgid "Path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1746 +msgid "Snap to path intersections" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1755 +msgid "To nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1755 +msgid "Snap cusp nodes, incl. rectangle corners" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1764 +msgid "Smooth nodes" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1764 +msgid "Snap smooth nodes, incl. quadrant points of ellipses" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1773 +msgid "Line Midpoints" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1773 +msgid "Snap midpoints of line segments" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1782 +msgid "Others" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1782 +msgid "Snap other points (centers, guide origins, gradient handles, etc.)" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1790 +msgid "Object Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1790 +msgid "Snap centers of objects" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1799 +msgid "Rotation Centers" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1799 +msgid "Snap an item's rotation center" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1808 +msgid "Text baseline" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1808 +msgid "Snap text anchors and baselines" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1818 +msgid "Page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1818 +msgid "Snap to the page border" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1827 +msgid "Snap to grids" +msgstr "" + +#: ../src/widgets/toolbox.cpp:1836 +msgid "Snap guides" +msgstr "" + +#. Width +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(pinch tweak)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:125 +msgid "(broad tweak)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:128 +msgid "The width of the tweak area (relative to the visible canvas area)" +msgstr "" + +#. Force +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(minimum force)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:142 +msgid "(maximum force)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "Force:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:145 +msgid "The force of the tweak action" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:163 +msgid "Move mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:164 +msgid "Move objects in any direction" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:170 +msgid "Move in/out mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:171 +msgid "Move objects towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:177 +msgid "Move jitter mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:178 +msgid "Move objects in random directions" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:184 +msgid "Scale mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:185 +msgid "Shrink objects, with Shift enlarge" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:191 +msgid "Rotate mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:192 +msgid "Rotate objects, with Shift counterclockwise" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:198 +msgid "Duplicate/delete mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:199 +msgid "Duplicate objects, with Shift delete" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:205 +msgid "Push mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:206 +msgid "Push parts of paths in any direction" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:212 +msgid "Shrink/grow mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:213 +msgid "Shrink (inset) parts of paths; with Shift grow (outset)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:219 +msgid "Attract/repel mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:220 +msgid "Attract parts of paths towards cursor; with Shift from cursor" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:226 +msgid "Roughen mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:227 +msgid "Roughen parts of paths" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:233 +msgid "Color paint mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:234 +msgid "Paint the tool's color upon selected objects" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:240 +msgid "Color jitter mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:241 +msgid "Jitter the colors of selected objects" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:247 +msgid "Blur mode" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:248 +msgid "Blur selected objects more; with Shift, blur less" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:275 +msgid "Channels:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:287 +msgid "In color mode, act on objects' hue" +msgstr "" + +#. TRANSLATORS: "H" here stands for hue +#: ../src/widgets/tweak-toolbar.cpp:291 +msgid "H" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:303 +msgid "In color mode, act on objects' saturation" +msgstr "" + +#. TRANSLATORS: "S" here stands for Saturation +#: ../src/widgets/tweak-toolbar.cpp:307 +msgid "S" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:319 +msgid "In color mode, act on objects' lightness" +msgstr "" + +#. TRANSLATORS: "L" here stands for Lightness +#: ../src/widgets/tweak-toolbar.cpp:323 +msgid "L" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:335 +msgid "In color mode, act on objects' opacity" +msgstr "" + +#. TRANSLATORS: "O" here stands for Opacity +#: ../src/widgets/tweak-toolbar.cpp:339 +msgid "O" +msgstr "" + +#. Fidelity +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(rough, simplified)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:350 +msgid "(fine, but many nodes)" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:353 +msgid "Fidelity:" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:354 +msgid "" +"Low fidelity simplifies paths; high fidelity preserves path features but may " +"generate a lot of new nodes" +msgstr "" + +#: ../src/widgets/tweak-toolbar.cpp:373 +msgid "Use the pressure of the input device to alter the force of tweak action" +msgstr "" + +#: ../share/extensions/convert2dashes.py:93 +msgid "" +"The selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/dimension.py:109 +msgid "Please select an object." +msgstr "" + +#: ../share/extensions/dimension.py:134 +msgid "Unable to process this object. Try changing it into a path first." +msgstr "" + +#. report to the Inkscape console using errormsg +#: ../share/extensions/draw_from_triangle.py:180 +msgid "Side Length 'a' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:181 +msgid "Side Length 'b' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:182 +msgid "Side Length 'c' (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:183 +msgid "Angle 'A' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:184 +msgid "Angle 'B' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:185 +msgid "Angle 'C' (radians): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:186 +msgid "Semiperimeter (px): " +msgstr "" + +#: ../share/extensions/draw_from_triangle.py:187 +msgid "Area (px^2): " +msgstr "" + +#: ../share/extensions/dxf_input.py:512 +#, python-format +msgid "" +"%d ENTITIES of type POLYLINE encountered and ignored. Please try to convert " +"to Release 13 format using QCad." +msgstr "" + +#: ../share/extensions/dxf_outlines.py:49 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again." +msgstr "" + +#: ../share/extensions/dxf_outlines.py:300 +msgid "" +"Error: Field 'Layer match name' must be filled when using 'By name match' " +"option" +msgstr "" + +#: ../share/extensions/dxf_outlines.py:341 +#, python-format +msgid "Warning: Layer '%s' not found!" +msgstr "" + +#: ../share/extensions/embedimage.py:84 +msgid "" +"No xlink:href or sodipodi:absref attributes found, or they do not point to " +"an existing file! Unable to embed image." +msgstr "" + +#: ../share/extensions/embedimage.py:86 +#, python-format +msgid "Sorry we could not locate %s" +msgstr "" + +#: ../share/extensions/embedimage.py:111 +#, python-format +msgid "" +"%s is not of type image/png, image/jpeg, image/bmp, image/gif, image/tiff, " +"or image/x-icon" +msgstr "" + +#: ../share/extensions/export_gimp_palette.py:16 +msgid "" +"The export_gpl.py module requires PyXML. Please download the latest version " +"from http://pyxml.sourceforge.net/." +msgstr "" + +#: ../share/extensions/extractimage.py:68 +#, python-format +msgid "Image extracted to: %s" +msgstr "" + +#: ../share/extensions/extractimage.py:75 +msgid "Unable to find image data." +msgstr "" + +#: ../share/extensions/extrude.py:43 +msgid "Need at least 2 paths selected" +msgstr "" + +#: ../share/extensions/funcplot.py:48 +msgid "" +"x-interval cannot be zero. Please modify 'Start X value' or 'End X alue'" +msgstr "" + +#: ../share/extensions/funcplot.py:60 +msgid "" +"y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " +"value of rectangle's bottom'" +msgstr "" + +#: ../share/extensions/funcplot.py:315 +msgid "Please select a rectangle" +msgstr "" + +#: ../share/extensions/gcodetools.py:3321 +#: ../share/extensions/gcodetools.py:4526 +#: ../share/extensions/gcodetools.py:4699 +#: ../share/extensions/gcodetools.py:6232 +#: ../share/extensions/gcodetools.py:6427 +msgid "No paths are selected! Trying to work on all available paths." +msgstr "" + +#: ../share/extensions/gcodetools.py:3324 +msgid "Nothing is selected. Please select something." +msgstr "" + +#: ../share/extensions/gcodetools.py:3864 +msgid "" +"Directory does not exist! Please specify existing directory at Preferences " +"tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:3894 +#, python-format +msgid "" +"Can not write to specified file!\n" +"%s" +msgstr "" + +#: ../share/extensions/gcodetools.py:4040 +#, python-format +msgid "" +"Orientation points for '%s' layer have not been found! Please add " +"orientation points using Orientation tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4047 +#, python-format +msgid "There are more than one orientation point groups in '%s' layer" +msgstr "" + +#: ../share/extensions/gcodetools.py:4078 +#: ../share/extensions/gcodetools.py:4080 +msgid "" +"Orientation points are wrong! (if there are two orientation points they " +"should not be the same. If there are three orientation points they should " +"not be in a straight line.)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4250 +#, python-format +msgid "" +"Warning! Found bad orientation points in '%s' layer. Resulting Gcode could " +"be corrupt!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4263 +#, python-format +msgid "" +"Warning! Found bad graffiti reference point in '%s' layer. Resulting Gcode " +"could be corrupt!" +msgstr "" + +#. xgettext:no-pango-format +#: ../share/extensions/gcodetools.py:4284 +msgid "" +"This extension works with Paths and Dynamic Offsets and groups of them only! " +"All other objects will be ignored!\n" +"Solution 1: press Path->Object to path or Shift+Ctrl+C.\n" +"Solution 2: Path->Dynamic offset or Ctrl+J.\n" +"Solution 3: export all contours to PostScript level 2 (File->Save As->.ps) " +"and File->Import this file." +msgstr "" + +#: ../share/extensions/gcodetools.py:4290 +msgid "" +"Document has no layers! Add at least one layer using layers panel (Ctrl+Shift" +"+L)" +msgstr "" + +#: ../share/extensions/gcodetools.py:4294 +msgid "" +"Warning! There are some paths in the root of the document, but not in any " +"layer! Using bottom-most layer for them." +msgstr "" + +#: ../share/extensions/gcodetools.py:4371 +#, python-format +msgid "" +"Warning! Tool's and default tool's parameter's (%s) types are not the same " +"( type('%s') != type('%s') )." +msgstr "" + +#: ../share/extensions/gcodetools.py:4374 +#, python-format +msgid "Warning! Tool has parameter that default tool has not ( '%s': '%s' )." +msgstr "" + +#: ../share/extensions/gcodetools.py:4388 +#, python-format +msgid "Layer '%s' contains more than one tool!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4391 +#, python-format +msgid "" +"Can not find tool for '%s' layer! Please add one with Tools library tab!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4553 +#: ../share/extensions/gcodetools.py:4708 +msgid "" +"Warning: One or more paths do not have 'd' parameter, try to Ungroup (Ctrl" +"+Shift+G) and Object to Path (Ctrl+Shift+C)!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4667 +msgid "" +"Nothing is selected. Please select something to convert to drill point " +"(dxfpoint) or clear point sign." +msgstr "" + +#: ../share/extensions/gcodetools.py:4750 +#: ../share/extensions/gcodetools.py:4996 +msgid "This extension requires at least one selected path." +msgstr "" + +#: ../share/extensions/gcodetools.py:4756 +#: ../share/extensions/gcodetools.py:5002 +#, python-format +msgid "Tool diameter must be > 0 but tool's diameter on '%s' layer is not!" +msgstr "" + +#: ../share/extensions/gcodetools.py:4767 +#: ../share/extensions/gcodetools.py:4956 +#: ../share/extensions/gcodetools.py:5011 +msgid "Warning: omitting non-path" +msgstr "" + +#: ../share/extensions/gcodetools.py:5511 +msgid "Please select at least one path to engrave and run again." +msgstr "" + +#: ../share/extensions/gcodetools.py:5519 +msgid "Unknown unit selected. mm assumed" +msgstr "" + +#: ../share/extensions/gcodetools.py:5540 +#, python-format +msgid "Tool '%s' has no shape. 45 degree cone assumed!" +msgstr "" + +#: ../share/extensions/gcodetools.py:5611 +#: ../share/extensions/gcodetools.py:5616 +msgid "csp_normalised_normal error. See log." +msgstr "" + +#: ../share/extensions/gcodetools.py:5804 +msgid "No need to engrave sharp angles." +msgstr "" + +#: ../share/extensions/gcodetools.py:5848 +msgid "" +"Active layer already has orientation points! Remove them or select another " +"layer!" +msgstr "" + +#: ../share/extensions/gcodetools.py:5893 +msgid "Active layer already has a tool! Remove it or select another layer!" +msgstr "" + +#: ../share/extensions/gcodetools.py:6008 +msgid "Selection is empty! Will compute whole drawing." +msgstr "" + +#: ../share/extensions/gcodetools.py:6062 +msgid "" +"Tutorials, manuals and support can be found at\n" +"English support forum:\n" +"\thttp://www.cnc-club.ru/gcodetools\n" +"and Russian support forum:\n" +"\thttp://www.cnc-club.ru/gcodetoolsru" +msgstr "" + +#: ../share/extensions/gcodetools.py:6107 +msgid "Lathe X and Z axis remap should be 'X', 'Y' or 'Z'. Exiting..." +msgstr "" + +#: ../share/extensions/gcodetools.py:6110 +msgid "Lathe X and Z axis remap should be the same. Exiting..." +msgstr "" + +#: ../share/extensions/gcodetools.py:6662 +#, python-format +msgid "" +"Select one of the action tabs - Path to Gcode, Area, Engraving, DXF points, " +"Orientation, Offset, Lathe or Tools library.\n" +" Current active tab id is %s" +msgstr "" + +#: ../share/extensions/gcodetools.py:6668 +msgid "" +"Orientation points have not been defined! A default set of orientation " +"points has been automatically added." +msgstr "" + +#: ../share/extensions/gcodetools.py:6672 +msgid "" +"Cutting tool has not been defined! A default tool has been automatically " +"added." +msgstr "" + +#: ../share/extensions/generate_voronoi.py:35 +msgid "" +"Failed to import the subprocess module. Please report this as a bug at: " +"https://bugs.launchpad.net/inkscape." +msgstr "" + +#: ../share/extensions/generate_voronoi.py:36 +msgid "Python version is: " +msgstr "" + +#: ../share/extensions/generate_voronoi.py:94 +msgid "Please select an object" +msgstr "" + +#: ../share/extensions/gimp_xcf.py:39 +msgid "Inkscape must be installed and set in your path variable." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:43 +msgid "Gimp must be installed and set in your path variable." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:47 +msgid "An error occurred while processing the XCF file." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:185 +msgid "This extension requires at least one non empty layer." +msgstr "" + +#: ../share/extensions/guillotine.py:250 +msgid "The sliced bitmaps have been saved as:" +msgstr "" + +#: ../share/extensions/hpgl_decoder.py:43 +msgid "Movements" +msgstr "" + +#: ../share/extensions/hpgl_decoder.py:44 +msgid "Pen " +msgstr "" + +#. issue error if no hpgl data found +#: ../share/extensions/hpgl_input.py:58 +msgid "No HPGL data found." +msgstr "" + +#: ../share/extensions/hpgl_input.py:66 +msgid "" +"The HPGL data contained unknown (unsupported) commands, there is a " +"possibility that the drawing is missing some content." +msgstr "" + +#. issue error if no paths found +#: ../share/extensions/hpgl_output.py:58 +msgid "" +"No paths where found. Please convert all objects you want to save into paths." +msgstr "" + +#: ../share/extensions/inkex.py:116 +#, python-format +msgid "" +"The fantastic lxml wrapper for libxml2 is required by inkex.py and therefore " +"this extension. Please download and install the latest version from http://" +"cheeseshop.python.org/pypi/lxml/, or install it through your package manager " +"by a command like: sudo apt-get install python-lxml\n" +"\n" +"Technical details:\n" +"%s" +msgstr "" + +#: ../share/extensions/inkex.py:169 +#, python-format +msgid "Unable to open specified file: %s" +msgstr "" + +#: ../share/extensions/inkex.py:178 +#, python-format +msgid "Unable to open object member file: %s" +msgstr "" + +#: ../share/extensions/inkex.py:283 +#, python-format +msgid "No matching node for expression: %s" +msgstr "" + +#: ../share/extensions/inkex.py:313 +msgid "SVG Width not set correctly! Assuming width = 100" +msgstr "" + +#: ../share/extensions/interp_att_g.py:167 +msgid "There is no selection to interpolate" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:45 +#: ../share/extensions/jessyInk_effects.py:50 +#: ../share/extensions/jessyInk_export.py:96 +#: ../share/extensions/jessyInk_keyBindings.py:188 +#: ../share/extensions/jessyInk_masterSlide.py:46 +#: ../share/extensions/jessyInk_mouseHandler.py:48 +#: ../share/extensions/jessyInk_summary.py:64 +#: ../share/extensions/jessyInk_transitions.py:50 +#: ../share/extensions/jessyInk_video.py:49 +#: ../share/extensions/jessyInk_view.py:67 +msgid "" +"The JessyInk script is not installed in this SVG file or has a different " +"version than the JessyInk extensions. Please select \"install/update...\" " +"from the \"JessyInk\" sub-menu of the \"Extensions\" menu to install or " +"update the JessyInk script.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:48 +msgid "" +"To assign an effect, please select an object.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.py:54 +#, python-brace-format +msgid "" +"Node with id '{0}' is not a suitable text node and was therefore ignored.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_effects.py:53 +msgid "" +"No object selected. Please select the object you want to assign an effect to " +"and then press apply.\n" +msgstr "" + +#: ../share/extensions/jessyInk_export.py:82 +msgid "Could not find Inkscape command.\n" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.py:56 +msgid "Layer not found. Removed current master slide selection.\n" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.py:58 +msgid "" +"More than one layer with this name found. Removed current master slide " +"selection.\n" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:69 +#, python-brace-format +msgid "JessyInk script version {0} installed." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:71 +msgid "JessyInk script installed." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:83 +msgid "" +"\n" +"Master slide:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:89 +msgid "" +"\n" +"Slide {0!s}:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:94 +#, python-brace-format +msgid "{0}Layer name: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:102 +msgid "{0}Transition in: {1} ({2!s} s)" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:104 +#, python-brace-format +msgid "{0}Transition in: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:111 +msgid "{0}Transition out: {1} ({2!s} s)" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:113 +#, python-brace-format +msgid "{0}Transition out: {1}" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:120 +#, python-brace-format +msgid "" +"\n" +"{0}Auto-texts:" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:123 +#, python-brace-format +msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:168 +#, python-brace-format +msgid "" +"\n" +"{0}Initial effect (order number {1}):" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:170 +msgid "" +"\n" +"{0}Effect {1!s} (order number {2}):" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:174 +#, python-brace-format +msgid "{0}\tView will be set according to object \"{1}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:176 +#, python-brace-format +msgid "{0}\tObject \"{1}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:179 +msgid " will appear" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:181 +msgid " will disappear" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:184 +#, python-brace-format +msgid " using effect \"{0}\"" +msgstr "" + +#: ../share/extensions/jessyInk_summary.py:187 +msgid " in {0!s} s" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:55 +msgid "Layer not found.\n" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:57 +msgid "More than one layer with this name found.\n" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.py:70 +msgid "Please enter a layer name.\n" +msgstr "" + +#: ../share/extensions/jessyInk_video.py:54 +#: ../share/extensions/jessyInk_video.py:59 +msgid "" +"Could not obtain the selected layer for inclusion of the video element.\n" +"\n" +msgstr "" + +#: ../share/extensions/jessyInk_view.py:75 +msgid "More than one object selected. Please select only one object.\n" +msgstr "" + +#: ../share/extensions/jessyInk_view.py:79 +msgid "" +"No object selected. Please select the object you want to assign a view to " +"and then press apply.\n" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:83 +#, python-format +msgid "No style attribute found for id: %s" +msgstr "" + +#: ../share/extensions/markers_strokepaint.py:137 +#, python-format +msgid "unable to locate marker: %s" +msgstr "" + +#: ../share/extensions/measure.py:50 +msgid "" +"Failed to import the numpy modules. These modules are required by this " +"extension. Please install them and try again. On a Debian-like system this " +"can be done with the command, sudo apt-get install python-numpy." +msgstr "" + +#: ../share/extensions/measure.py:112 +msgid "Area is zero, cannot calculate Center of Mass" +msgstr "" + +#: ../share/extensions/pathalongpath.py:208 +#: ../share/extensions/pathscatter.py:228 +#: ../share/extensions/perspective.py:53 +msgid "This extension requires two selected paths." +msgstr "" + +#: ../share/extensions/pathalongpath.py:234 +msgid "" +"The total length of the pattern is too small :\n" +"Please choose a larger object or set 'Space between copies' > 0" +msgstr "" + +#: ../share/extensions/pathalongpath.py:277 +msgid "" +"The 'stretch' option requires that the pattern must have non-zero width :\n" +"Please edit the pattern width." +msgstr "" + +#: ../share/extensions/pathmodifier.py:237 +#, python-format +msgid "Please first convert objects to paths! (Got [%s].)" +msgstr "" + +#: ../share/extensions/perspective.py:45 +msgid "" +"Failed to import the numpy or numpy.linalg modules. These modules are " +"required by this extension. Please install them and try again. On a Debian-" +"like system this can be done with the command, sudo apt-get install python-" +"numpy." +msgstr "" + +#: ../share/extensions/perspective.py:61 +#: ../share/extensions/summersnight.py:52 +#, 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:68 +#: ../share/extensions/summersnight.py:60 +msgid "" +"This extension requires that the second selected path be four nodes long." +msgstr "" + +#: ../share/extensions/perspective.py:94 +#: ../share/extensions/summersnight.py:93 +msgid "" +"The second selected object is a group, not a path.\n" +"Try using the procedure Object->Ungroup." +msgstr "" + +#: ../share/extensions/perspective.py:96 +#: ../share/extensions/summersnight.py:95 +msgid "" +"The second selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#: ../share/extensions/perspective.py:99 +#: ../share/extensions/summersnight.py:98 +msgid "" +"The first selected object is not a path.\n" +"Try using the procedure Path->Object to Path." +msgstr "" + +#. issue error if no paths found +#: ../share/extensions/plotter.py:67 +msgid "" +"No paths where found. Please convert all objects you want to plot into paths." +msgstr "" + +#: ../share/extensions/plotter.py:144 +msgid "" +"pySerial is not installed.\n" +"\n" +"1. Download pySerial here (not the \".exe\"!): http://pypi.python.org/pypi/" +"pyserial\n" +"2. Extract the \"serial\" subfolder from the zip to the following folder: C:" +"\\[Program files]\\inkscape\\python\\Lib\\\n" +"3. Restart Inkscape." +msgstr "" + +#: ../share/extensions/plotter.py:164 +msgid "" +"Could not open port. Please check that your plotter is running, connected " +"and the settings are correct." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:65 +msgid "" +"Failed to import the numpy module. This module is required by this " +"extension. Please install it and try again. On a Debian-like system this " +"can be done with the command 'sudo apt-get install python-numpy'." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:336 +msgid "No face data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:337 +msgid "Try selecting \"Edge Specified\" in the Model File tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:343 +msgid "No edge data found in specified file." +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:344 +msgid "Try selecting \"Face Specified\" in the Model File tab.\n" +msgstr "" + +#. we cannot generate a list of faces from the edges without a lot of computation +#: ../share/extensions/polyhedron_3d.py:522 +msgid "" +"Face Data Not Found. Ensure file contains face data, and check the file is " +"imported as \"Face-Specified\" under the \"Model File\" tab.\n" +msgstr "" + +#: ../share/extensions/polyhedron_3d.py:524 +msgid "Internal Error. No view type selected\n" +msgstr "" + +#: ../share/extensions/print_win32_vector.py:41 +msgid "sorry, this will run only on Windows, exiting..." +msgstr "" + +#: ../share/extensions/print_win32_vector.py:179 +msgid "Failed to open default printer" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.py:202 +msgid "Unrecognised DataMatrix size" +msgstr "" + +#. we have an invalid bit value +#: ../share/extensions/render_barcode_datamatrix.py:643 +msgid "Invalid bit value, this is a bug!" +msgstr "" + +#. abort if converting blank text +#: ../share/extensions/render_barcode_datamatrix.py:678 +msgid "Please enter an input string" +msgstr "" + +#. abort if converting blank text +#: ../share/extensions/render_barcode_qrcode.py:1054 +msgid "Please enter an input text" +msgstr "" + +#: ../share/extensions/replace_font.py:133 +msgid "" +"Couldn't find anything using that font, please ensure the spelling and " +"spacing is correct." +msgstr "" + +#: ../share/extensions/replace_font.py:140 +#: ../share/extensions/svg_and_media_zip_output.py:193 +msgid "Didn't find any fonts in this document/selection." +msgstr "" + +#: ../share/extensions/replace_font.py:143 +#: ../share/extensions/svg_and_media_zip_output.py:196 +#, python-format +msgid "Found the following font only: %s" +msgstr "" + +#: ../share/extensions/replace_font.py:145 +#: ../share/extensions/svg_and_media_zip_output.py:198 +#, python-format +msgid "" +"Found the following fonts:\n" +"%s" +msgstr "" + +#: ../share/extensions/replace_font.py:196 +msgid "There was nothing selected" +msgstr "" + +#: ../share/extensions/replace_font.py:244 +msgid "Please enter a search string in the find box." +msgstr "" + +#: ../share/extensions/replace_font.py:248 +msgid "Please enter a replacement font in the replace with box." +msgstr "" + +#: ../share/extensions/replace_font.py:253 +msgid "Please enter a replacement font in the replace all box." +msgstr "" + +#: ../share/extensions/summersnight.py:44 +msgid "" +"This extension requires two selected paths. \n" +"The second path must be exactly four nodes long." +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.py:128 +#, python-format +msgid "Could not locate file: %s" +msgstr "" + +#: ../share/extensions/svgcalendar.py:266 +#: ../share/extensions/svgcalendar.py:288 +msgid "You must select a correct system encoding." +msgstr "" + +#: ../share/extensions/uniconv-ext.py:56 +#: ../share/extensions/uniconv_output.py:122 +msgid "" +"You need to install the UniConvertor software.\n" +"For GNU/Linux: install the package python-uniconvertor.\n" +"For Windows: download it from\n" +"http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" +"and install into your Inkscape's Python location\n" +msgstr "" + +#: ../share/extensions/voronoi2svg.py:215 +msgid "Please select objects!" +msgstr "" + +#: ../share/extensions/web-set-att.py:58 +#: ../share/extensions/web-transmit-att.py:54 +msgid "You must select at least two elements." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:57 +msgid "" +"You must create and select some \"Slicer rectangles\" before trying to group." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:72 +msgid "" +"You must to select some \"Slicer rectangles\" or other \"Layout groups\"." +msgstr "" + +#: ../share/extensions/webslicer_create_group.py:76 +#, python-format +msgid "Oops... The element \"%s\" is not in the Web Slicer layer" +msgstr "" + +#: ../share/extensions/webslicer_export.py:57 +msgid "You must give a directory to export the slices." +msgstr "" + +#: ../share/extensions/webslicer_export.py:69 +#, python-format +msgid "Can't create \"%s\"." +msgstr "" + +#: ../share/extensions/webslicer_export.py:70 +#, python-format +msgid "Error: %s" +msgstr "" + +#: ../share/extensions/webslicer_export.py:73 +#, python-format +msgid "The directory \"%s\" does not exists." +msgstr "" + +#: ../share/extensions/webslicer_export.py:102 +#, python-format +msgid "You have more than one element with \"%s\" html-id." +msgstr "" + +#: ../share/extensions/webslicer_export.py:332 +msgid "You must install the ImageMagick to get JPG and GIF." +msgstr "" + +#. PARAMETER PROCESSING +#. lines of longitude are odd : abort +#: ../share/extensions/wireframe_sphere.py:116 +msgid "Please enter an even number of lines of longitude." +msgstr "" + +#. vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 +#: ../share/extensions/addnodes.inx.h:1 +msgid "Add Nodes" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:2 +msgid "Division method:" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:3 +msgid "By max. segment length" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:5 +msgid "Maximum segment length (px):" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:6 +msgid "Number of segments:" +msgstr "" + +#: ../share/extensions/addnodes.inx.h:7 +#: ../share/extensions/convert2dashes.inx.h:2 +#: ../share/extensions/edge3d.inx.h:9 ../share/extensions/flatten.inx.h:3 +#: ../share/extensions/fractalize.inx.h:4 +#: ../share/extensions/interp_att_g.inx.h:29 +#: ../share/extensions/markers_strokepaint.inx.h:13 +#: ../share/extensions/perspective.inx.h:2 +#: ../share/extensions/pixelsnap.inx.h:3 +#: ../share/extensions/radiusrand.inx.h:10 +#: ../share/extensions/rubberstretch.inx.h:6 +#: ../share/extensions/straightseg.inx.h:4 +#: ../share/extensions/summersnight.inx.h:2 ../share/extensions/whirl.inx.h:4 +msgid "Modify Path" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:1 +msgid "AI 8.0 Input" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:2 +msgid "Adobe Illustrator 8.0 and below (*.ai)" +msgstr "" + +#: ../share/extensions/ai_input.inx.h:3 +msgid "Open files saved with Adobe Illustrator 8.0 or older" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:1 +msgid "AI SVG Input" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:2 +msgid "Adobe Illustrator SVG (*.ai.svg)" +msgstr "" + +#: ../share/extensions/aisvg.inx.h:3 +msgid "Cleans the cruft out of Adobe Illustrator SVGs before opening" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:1 +msgid "Corel DRAW Compressed Exchange files input (UC)" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:2 +msgid "Corel DRAW Compressed Exchange files (UC) (*.ccx)" +msgstr "" + +#: ../share/extensions/ccx_input.inx.h:3 +msgid "Open compressed exchange files saved in Corel DRAW (UC)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:1 +msgid "Corel DRAW Input (UC)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:2 +msgid "Corel DRAW 7-X4 files (UC) (*.cdr)" +msgstr "" + +#: ../share/extensions/cdr_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-X4 (UC)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:1 +msgid "Corel DRAW templates input (UC)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:2 +msgid "Corel DRAW 7-13 template files (UC) (*.cdt)" +msgstr "" + +#: ../share/extensions/cdt_input.inx.h:3 +msgid "Open files saved in Corel DRAW 7-13 (UC)" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:1 +msgid "Computer Graphics Metafile files input" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:2 +msgid "Computer Graphics Metafile files (*.cgm)" +msgstr "" + +#: ../share/extensions/cgm_input.inx.h:3 +msgid "Open Computer Graphics Metafile files" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:1 +msgid "Corel DRAW Presentation Exchange files input (UC)" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:2 +msgid "Corel DRAW Presentation Exchange files (UC) (*.cmx)" +msgstr "" + +#: ../share/extensions/cmx_input.inx.h:3 +msgid "Open presentation exchange files saved in Corel DRAW (UC)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:1 +msgid "HSL Adjust" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:3 +msgid "Hue (°)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:4 +msgid "Random hue" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:6 +#, no-c-format +msgid "Saturation (%)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:7 +msgid "Random saturation" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:9 +#, no-c-format +msgid "Lightness (%)" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:10 +msgid "Random lightness" +msgstr "" + +#: ../share/extensions/color_HSL_adjust.inx.h:13 +#, no-c-format +msgid "" +"Adjusts hue, saturation and lightness in the HSL representation of the " +"selected objects's color.\n" +"Options:\n" +" * Hue: rotate by degrees (wraps around).\n" +" * Saturation: add/subtract % (min=-100, max=100).\n" +" * Lightness: add/subtract % (min=-100, max=100).\n" +" * Random Hue/Saturation/Lightness: randomize the parameter's value.\n" +" " +msgstr "" + +#: ../share/extensions/color_blackandwhite.inx.h:1 +msgid "Black and White" +msgstr "" + +#: ../share/extensions/color_blackandwhite.inx.h:2 +msgid "Threshold Color (1-255):" +msgstr "" + +#: ../share/extensions/color_brighter.inx.h:1 +msgid "Brighter" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:1 +msgctxt "Custom color extension" +msgid "Custom" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:3 +msgid "Red Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:4 +msgid "Green Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:5 +msgid "Blue Function:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:6 +msgid "Input (r,g,b) Color Range:" +msgstr "" + +#: ../share/extensions/color_custom.inx.h:8 +msgid "" +"Allows you to evaluate different functions for each channel.\n" +"r, g and b are the normalized values of the red, green and blue channels. " +"The resulting RGB values are automatically clamped.\n" +" \n" +"Example (half the red, swap green and blue):\n" +" Red Function: r*0.5 \n" +" Green Function: b \n" +" Blue Function: g" +msgstr "" + +#: ../share/extensions/color_darker.inx.h:1 +msgid "Darker" +msgstr "" + +#: ../share/extensions/color_desaturate.inx.h:1 +msgid "Desaturate" +msgstr "" + +#: ../share/extensions/color_grayscale.inx.h:1 +#: ../share/extensions/webslicer_create_rect.inx.h:15 +msgid "Grayscale" +msgstr "" + +#: ../share/extensions/color_lesshue.inx.h:1 +msgid "Less Hue" +msgstr "" + +#: ../share/extensions/color_lesslight.inx.h:1 +msgid "Less Light" +msgstr "" + +#: ../share/extensions/color_lesssaturation.inx.h:1 +msgid "Less Saturation" +msgstr "" + +#: ../share/extensions/color_morehue.inx.h:1 +msgid "More Hue" +msgstr "" + +#: ../share/extensions/color_morelight.inx.h:1 +msgid "More Light" +msgstr "" + +#: ../share/extensions/color_moresaturation.inx.h:1 +msgid "More Saturation" +msgstr "" + +#: ../share/extensions/color_negative.inx.h:1 +msgid "Negative" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:1 +#: ../share/extensions/render_alphabetsoup.inx.h:4 +msgid "Randomize" +msgstr "" + +#: ../share/extensions/color_randomize.inx.h:7 +msgid "" +"Converts to HSL, randomizes hue and/or saturation and/or lightness and " +"converts it back to RGB." +msgstr "" + +#: ../share/extensions/color_removeblue.inx.h:1 +msgid "Remove Blue" +msgstr "" + +#: ../share/extensions/color_removegreen.inx.h:1 +msgid "Remove Green" +msgstr "" + +#: ../share/extensions/color_removered.inx.h:1 +msgid "Remove Red" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:1 +msgid "Replace color" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:2 +msgid "Replace color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:3 +msgid "Color to replace" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:4 +msgid "By color (RRGGBB hex):" +msgstr "" + +#: ../share/extensions/color_replace.inx.h:5 +msgid "New color" +msgstr "" + +#: ../share/extensions/color_rgbbarrel.inx.h:1 +msgid "RGB Barrel" +msgstr "" + +#: ../share/extensions/convert2dashes.inx.h:1 +msgid "Convert to Dashes" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:1 +msgid "DHW file input" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:2 +msgid "ACECAD Digimemo File (*.dhw)" +msgstr "" + +#: ../share/extensions/dhw_input.inx.h:3 +msgid "Open files from ACECAD Digimemo" +msgstr "" + +#: ../share/extensions/dia.inx.h:1 +msgid "Dia Input" +msgstr "" + +#: ../share/extensions/dia.inx.h:2 +msgid "" +"The dia2svg.sh script should be installed with your Inkscape distribution. " +"If you do not have it, there is likely to be something wrong with your " +"Inkscape installation." +msgstr "" + +#: ../share/extensions/dia.inx.h:3 +msgid "" +"In order to import Dia files, Dia itself must be installed. You can get Dia " +"at http://live.gnome.org/Dia" +msgstr "" + +#: ../share/extensions/dia.inx.h:4 +msgid "Dia Diagram (*.dia)" +msgstr "" + +#: ../share/extensions/dia.inx.h:5 +msgid "A diagram created with the program Dia" +msgstr "" + +#: ../share/extensions/dimension.inx.h:1 +msgid "Dimensions" +msgstr "" + +#: ../share/extensions/dimension.inx.h:2 +msgid "X Offset:" +msgstr "" + +#: ../share/extensions/dimension.inx.h:3 +msgid "Y Offset:" +msgstr "" + +#: ../share/extensions/dimension.inx.h:4 +msgid "Bounding box type:" +msgstr "" + +#: ../share/extensions/dimension.inx.h:5 +msgid "Geometric" +msgstr "" + +#: ../share/extensions/dimension.inx.h:6 +msgid "Visual" +msgstr "" + +#: ../share/extensions/dimension.inx.h:7 ../share/extensions/dots.inx.h:13 +#: ../share/extensions/handles.inx.h:2 ../share/extensions/measure.inx.h:25 +msgid "Visualize Path" +msgstr "" + +#: ../share/extensions/dots.inx.h:1 +msgid "Number Nodes" +msgstr "" + +#: ../share/extensions/dots.inx.h:4 +msgid "Dot size:" +msgstr "" + +#: ../share/extensions/dots.inx.h:5 +msgid "Starting dot number:" +msgstr "" + +#: ../share/extensions/dots.inx.h:6 +msgid "Step:" +msgstr "" + +#: ../share/extensions/dots.inx.h:8 +msgid "" +"This extension replaces the selection's nodes with numbered dots according " +"to the following options:\n" +" * Font size: size of the node number labels (20px, 12pt...).\n" +" * Dot size: diameter of the dots placed at path nodes (10px, 2mm...).\n" +" * Starting dot number: first number in the sequence, assigned to the " +"first node of the path.\n" +" * Step: numbering step between two nodes." +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:1 +msgid "Draw From Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:2 +msgid "Common Objects" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:3 +msgid "Circumcircle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:4 +msgid "Circumcentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:5 +msgid "Incircle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:6 +msgid "Incentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:7 +msgid "Contact Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:8 +msgid "Excircles" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:9 +msgid "Excentres" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:10 +msgid "Extouch Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:11 +msgid "Excentral Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:12 +msgid "Orthocentre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:13 +msgid "Orthic Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:14 +msgid "Altitudes" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:15 +msgid "Angle Bisectors" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:16 +msgid "Centroid" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:17 +msgid "Nine-Point Centre" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:18 +msgid "Nine-Point Circle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:19 +msgid "Symmedians" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:20 +msgid "Symmedian Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:21 +msgid "Symmedial Triangle" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:22 +msgid "Gergonne Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:23 +msgid "Nagel Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:24 +msgid "Custom Points and Options" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:25 +msgid "Custom Point Specified By:" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:26 +msgid "Point At:" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:27 +msgid "Draw Marker At This Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:28 +msgid "Draw Circle Around This Point" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:29 +#: ../share/extensions/wireframe_sphere.inx.h:6 +msgid "Radius (px):" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:30 +msgid "Draw Isogonal Conjugate" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:31 +msgid "Draw Isotomic Conjugate" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:32 +msgid "Report this triangle's properties" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:33 +msgid "Trilinear Coordinates" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:34 +msgid "Triangle Function" +msgstr "" + +#: ../share/extensions/draw_from_triangle.inx.h:36 +msgid "" +"This extension draws constructions about a triangle defined by the first 3 " +"nodes of a selected path. You may select one of preset objects or create " +"your own ones.\n" +" \n" +"All units are the Inkscape's pixel unit. Angles are all in radians.\n" +"You can specify a point by trilinear coordinates or by a triangle centre " +"function.\n" +"Enter as functions of the side length or angles.\n" +"Trilinear elements should be separated by a colon: ':'.\n" +"Side lengths are represented as 's_a', 's_b' and 's_c'.\n" +"Angles corresponding to these are 'a_a', 'a_b', and 'a_c'.\n" +"You can also use the semi-perimeter and area of the triangle as constants. " +"Write 'area' or 'semiperim' for these.\n" +"\n" +"You can use any standard Python math function:\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x)\n" +"\n" +"Also available are the inverse trigonometric functions:\n" +"sec(x); csc(x); cot(x)\n" +"\n" +"You can specify the radius of a circle around a custom point using a " +"formula, which may also contain the side lengths, angles, etc. You can also " +"plot the isogonal and isotomic conjugate of the point. Be aware that this " +"may cause a divide-by-zero error for certain points.\n" +" " +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:1 +msgid "DXF Input" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:3 +msgid "Method of Scaling:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:4 +msgid "Manual scale factor:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:5 +msgid "Manual x-axis origin (mm):" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:6 +msgid "Manual y-axis origin (mm):" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:7 +msgid "Gcodetools compatible point import" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:8 +#: ../share/extensions/render_barcode_qrcode.inx.h:16 +msgid "Character encoding:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:9 +msgid "Text Font:" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:11 +msgid "" +"- AutoCAD Release 13 and newer.\n" +"- for manual scaling, assume dxf drawing is in mm.\n" +"- assume svg drawing is in pixels, at 96 dpi.\n" +"- scale factor and origin apply only to manual scaling.\n" +"- 'Automatic scaling' will fit the width of an A4 page.\n" +"- 'Read from file' uses the variable $MEASUREMENT.\n" +"- layers are preserved only on File->Open, not Import.\n" +"- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:19 +msgid "AutoCAD DXF R13 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_input.inx.h:20 +msgid "Import AutoCAD's Document Exchange Format" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:1 +msgid "Desktop Cutting Plotter" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:3 +msgid "use ROBO-Master type of spline output" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:4 +msgid "use LWPOLYLINE type of line output" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:5 +msgid "Base unit:" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:6 +msgid "Character Encoding:" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:7 +msgid "Layer export selection:" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:8 +msgid "Layer match name:" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:9 +msgid "pt" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:10 +msgid "pc" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:11 +#: ../share/extensions/render_gears.inx.h:7 +msgid "px" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:12 +#: ../share/extensions/gcodetools_area.inx.h:46 +#: ../share/extensions/gcodetools_dxf_points.inx.h:18 +#: ../share/extensions/gcodetools_engraving.inx.h:24 +#: ../share/extensions/gcodetools_graffiti.inx.h:18 +#: ../share/extensions/gcodetools_lathe.inx.h:39 +#: ../share/extensions/gcodetools_orientation_points.inx.h:11 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:28 +#: ../share/extensions/render_gears.inx.h:9 +msgid "mm" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:13 +msgid "cm" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:14 +msgid "m" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:15 +#: ../share/extensions/gcodetools_area.inx.h:47 +#: ../share/extensions/gcodetools_dxf_points.inx.h:19 +#: ../share/extensions/gcodetools_engraving.inx.h:25 +#: ../share/extensions/gcodetools_graffiti.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:40 +#: ../share/extensions/gcodetools_orientation_points.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:29 +#: ../share/extensions/render_gears.inx.h:8 +msgid "in" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:16 +msgid "ft" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:17 +msgid "Latin 1" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:18 +msgid "CP 1250" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:19 +msgid "CP 1252" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:20 +msgid "UTF 8" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:21 +msgid "All (default)" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:22 +msgid "Visible only" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:23 +msgid "By name match" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:25 +msgid "" +"- AutoCAD Release 14 DXF format.\n" +"- The base unit parameter specifies in what unit the coordinates are output " +"(96 px = 1 in).\n" +"- Supported element types\n" +" - paths (lines and splines)\n" +" - rectangles\n" +" - clones (the crossreference to the original is lost)\n" +"- ROBO-Master spline output is a specialized spline readable only by ROBO-" +"Master and AutoDesk viewers, not Inkscape.\n" +"- LWPOLYLINE output is a multiply-connected polyline, disable it to use a " +"legacy version of the LINE output.\n" +"- You can choose to export all layers, only visible ones or by name match " +"(case insensitive and use comma ',' as separator)" +msgstr "" + +#: ../share/extensions/dxf_outlines.inx.h:34 +msgid "Desktop Cutting Plotter (AutoCAD DXF R14) (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:1 +msgid "DXF Output" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:2 +msgid "pstoedit must be installed to run; see http://www.pstoedit.net/pstoedit" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:3 +msgid "AutoCAD DXF R12 (*.dxf)" +msgstr "" + +#: ../share/extensions/dxf_output.inx.h:4 +msgid "DXF file written by pstoedit" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:1 +msgid "Edge 3D" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:2 +msgid "Illumination Angle:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:3 +msgid "Shades:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:4 +msgid "Only black and white:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:6 +msgid "Blur stdDeviation:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:7 +msgid "Blur width:" +msgstr "" + +#: ../share/extensions/edge3d.inx.h:8 +msgid "Blur height:" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:1 +msgid "Embed Images" +msgstr "" + +#: ../share/extensions/embedimage.inx.h:2 +#: ../share/extensions/embedselectedimages.inx.h:2 +msgid "Embed only selected images" +msgstr "" + +#: ../share/extensions/embedselectedimages.inx.h:1 +msgid "Embed Selected Images" +msgstr "" + +#: ../share/extensions/empty_business_card.inx.h:1 +msgid "Business Card" +msgstr "" + +#: ../share/extensions/empty_business_card.inx.h:2 +msgid "Business card size:" +msgstr "" + +#: ../share/extensions/empty_desktop.inx.h:1 +msgid "Desktop" +msgstr "" + +#: ../share/extensions/empty_desktop.inx.h:2 +msgid "Desktop size:" +msgstr "" + +#. Maximum size is '16k' +#: ../share/extensions/empty_desktop.inx.h:4 +#: ../share/extensions/empty_generic.inx.h:2 +#: ../share/extensions/empty_video.inx.h:4 +msgid "Custom Width:" +msgstr "" + +#: ../share/extensions/empty_desktop.inx.h:5 +#: ../share/extensions/empty_generic.inx.h:3 +#: ../share/extensions/empty_video.inx.h:5 +msgid "Custom Height:" +msgstr "" + +#: ../share/extensions/empty_dvd_cover.inx.h:1 +msgid "DVD Cover" +msgstr "" + +#: ../share/extensions/empty_dvd_cover.inx.h:2 +msgid "DVD spine width:" +msgstr "" + +#: ../share/extensions/empty_dvd_cover.inx.h:3 +msgid "DVD cover bleed (mm):" +msgstr "" + +#: ../share/extensions/empty_generic.inx.h:1 +msgid "Generic Canvas" +msgstr "" + +#: ../share/extensions/empty_generic.inx.h:4 +msgid "SVG Unit:" +msgstr "" + +#: ../share/extensions/empty_generic.inx.h:5 +msgid "Canvas background:" +msgstr "" + +#: ../share/extensions/empty_generic.inx.h:6 +#: ../share/extensions/empty_page.inx.h:5 +msgid "Hide border" +msgstr "" + +#: ../share/extensions/empty_icon.inx.h:1 +msgid "Icon" +msgstr "" + +#: ../share/extensions/empty_icon.inx.h:2 +msgid "Icon size:" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:2 +msgid "Page size:" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:3 +msgid "Page orientation:" +msgstr "" + +#: ../share/extensions/empty_page.inx.h:4 +msgid "Page background:" +msgstr "" + +#: ../share/extensions/empty_video.inx.h:1 +msgid "Video Screen" +msgstr "" + +#: ../share/extensions/empty_video.inx.h:2 +msgid "Video size:" +msgstr "" + +#: ../share/extensions/eps_input.inx.h:1 +msgid "EPS Input" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:1 +msgid "LaTeX" +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:2 +msgid "LaTeX input: " +msgstr "" + +#: ../share/extensions/eqtexsvg.inx.h:3 +msgid "Additional packages (comma-separated): " +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:1 +msgid "Export as GIMP Palette" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:2 +msgid "GIMP Palette (*.gpl)" +msgstr "" + +#: ../share/extensions/export_gimp_palette.inx.h:3 +msgid "Exports the colors of this document as GIMP Palette" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:1 +msgid "Extract Image" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:2 +msgid "Path to save image:" +msgstr "" + +#: ../share/extensions/extractimage.inx.h:3 +msgid "" +"* Don't type the file extension, it is appended automatically.\n" +"* A relative path (or a filename without path) is relative to the user's " +"home directory." +msgstr "" + +#: ../share/extensions/extrude.inx.h:3 +msgid "Lines" +msgstr "" + +#: ../share/extensions/extrude.inx.h:4 +msgid "Polygons" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:1 +msgid "XFIG Input" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:2 +msgid "XFIG Graphics File (*.fig)" +msgstr "" + +#: ../share/extensions/fig_input.inx.h:3 +msgid "Open files saved with XFIG" +msgstr "" + +#: ../share/extensions/flatten.inx.h:1 +msgid "Flatten Beziers" +msgstr "" + +#: ../share/extensions/flatten.inx.h:2 +msgid "Flatness:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:1 +msgid "Foldable Box" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:4 +msgid "Depth:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:5 +msgid "Paper Thickness:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:6 +msgid "Tab Proportion:" +msgstr "" + +#: ../share/extensions/foldablebox.inx.h:8 +msgid "Add Guide Lines" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:1 +msgid "Fractalize" +msgstr "" + +#: ../share/extensions/fractalize.inx.h:2 +msgid "Subdivisions:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:1 +msgid "Function Plotter" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:2 +msgid "Range and sampling" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:3 +msgid "Start X value:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:4 +msgid "End X value:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:5 +msgid "Multiply X range by 2*pi" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:6 +msgid "Y value of rectangle's bottom:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:7 +msgid "Y value of rectangle's top:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:8 +msgid "Number of samples:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:9 +#: ../share/extensions/param_curves.inx.h:11 +msgid "Isotropic scaling" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:10 +msgid "Use polar coordinates" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:11 +#: ../share/extensions/param_curves.inx.h:12 +msgid "" +"When set, Isotropic scaling uses smallest of width/xrange or height/yrange" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:12 +#: ../share/extensions/param_curves.inx.h:13 +msgid "Use" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:13 +msgid "" +"Select a rectangle before calling the extension,\n" +"it will determine X and Y scales. If you wish to fill the area, then add x-" +"axis endpoints.\n" +"\n" +"With polar coordinates:\n" +" Start and end X values define the angle range in radians.\n" +" X scale is set so that left and right edges of rectangle are at +/-1.\n" +" Isotropic scaling is disabled.\n" +" First derivative is always determined numerically." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:21 +#: ../share/extensions/param_curves.inx.h:16 +msgid "Functions" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:22 +#: ../share/extensions/param_curves.inx.h:17 +msgid "" +"Standard Python math functions are available:\n" +"\n" +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); \n" +"modf(x); exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); \n" +"acos(x); asin(x); atan(x); atan2(y,x); hypot(x,y); \n" +"cos(x); sin(x); tan(x); degrees(x); radians(x); \n" +"cosh(x); sinh(x); tanh(x).\n" +"\n" +"The constants pi and e are also available." +msgstr "" + +#: ../share/extensions/funcplot.inx.h:31 +msgid "Function:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:32 +msgid "Calculate first derivative numerically" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:33 +msgid "First derivative:" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:34 +msgid "Clip with rectangle" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:35 +#: ../share/extensions/param_curves.inx.h:28 +msgid "Remove rectangle" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:36 +#: ../share/extensions/param_curves.inx.h:29 +msgid "Draw Axes" +msgstr "" + +#: ../share/extensions/funcplot.inx.h:37 +msgid "Add x-axis endpoints" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:1 +msgid "About" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:2 +msgid "" +"Gcodetools was developed to make simple Gcode from Inkscape's paths. Gcode " +"is a special format which is used in most of CNC machines. So Gcodetools " +"allows you to use Inkscape as CAM program. It can be use with a lot of " +"machine types: Mills Lathes Laser and Plasma cutters and engravers Mill " +"engravers Plotters etc. To get more info visit developers page at http://www." +"cnc-club.ru/gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:4 +#: ../share/extensions/gcodetools_area.inx.h:54 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:4 +#: ../share/extensions/gcodetools_dxf_points.inx.h:26 +#: ../share/extensions/gcodetools_engraving.inx.h:32 +#: ../share/extensions/gcodetools_graffiti.inx.h:43 +#: ../share/extensions/gcodetools_lathe.inx.h:47 +#: ../share/extensions/gcodetools_orientation_points.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:36 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:18 +#: ../share/extensions/gcodetools_tools_library.inx.h:13 +msgid "" +"Gcodetools plug-in: converts paths to Gcode (using circular interpolation), " +"makes offset paths and engraves sharp corners using cone cutters. This plug-" +"in calculates Gcode for paths using circular interpolation or linear motion " +"when needed. Tutorials, manuals and support can be found at English support " +"forum: http://www.cnc-club.ru/gcodetools and Russian support forum: http://" +"www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir Kalyaev, " +"John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" +msgstr "" + +#: ../share/extensions/gcodetools_about.inx.h:5 +#: ../share/extensions/gcodetools_area.inx.h:55 +#: ../share/extensions/gcodetools_check_for_updates.inx.h:5 +#: ../share/extensions/gcodetools_dxf_points.inx.h:27 +#: ../share/extensions/gcodetools_engraving.inx.h:33 +#: ../share/extensions/gcodetools_graffiti.inx.h:44 +#: ../share/extensions/gcodetools_lathe.inx.h:48 +#: ../share/extensions/gcodetools_orientation_points.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:37 +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:19 +#: ../share/extensions/gcodetools_tools_library.inx.h:14 +msgid "Gcodetools" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:1 +msgid "Area" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:2 +msgid "Maximum area cutting curves:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:3 +msgid "Area width:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:4 +msgid "Area tool overlap (0..0.9):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:5 +msgid "" +"\"Create area offset\": creates several Inkscape path offsets to fill " +"original path's area up to \"Area radius\" value. Outlines start from \"1/2 D" +"\" up to \"Area width\" total width with \"D\" steps where D is taken from " +"the nearest tool definition (\"Tool diameter\" value). Only one offset will " +"be created if the \"Area width\" is equal to \"1/2 D\"." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:6 +msgid "Fill area" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:7 +msgid "Area fill angle" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:8 +msgid "Area fill shift" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:9 +msgid "Filling method" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:10 +msgid "Zig zag" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:12 +msgid "Area artifacts" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:13 +msgid "Artifact diameter:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:14 +msgid "Action:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:15 +msgid "mark with an arrow" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:16 +msgid "mark with style" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:17 +msgid "delete" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:18 +msgid "" +"Usage: 1. Select all Area Offsets (gray outlines) 2. Object/Ungroup (Shift" +"+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " +"colored arrows." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:19 +#: ../share/extensions/gcodetools_lathe.inx.h:12 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:1 +msgid "Path to Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:20 +#: ../share/extensions/gcodetools_lathe.inx.h:13 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:2 +msgid "Biarc interpolation tolerance:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:21 +#: ../share/extensions/gcodetools_lathe.inx.h:14 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:3 +msgid "Maximum splitting depth:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:15 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:4 +msgid "Cutting order:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:16 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:5 +msgid "Depth function:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:17 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:6 +msgid "Sort paths to reduse rapid distance" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:18 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:7 +msgid "Subpath by subpath" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:19 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:8 +msgid "Path by path" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:20 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:9 +msgid "Pass by Pass" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:21 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:10 +msgid "" +"Biarc interpolation tolerance is the maximum distance between path and its " +"approximation. The segment will be split into two segments if the distance " +"between path's segment and its approximation exceeds biarc interpolation " +"tolerance. For depth function c=color intensity from 0.0 (white) to 1.0 " +"(black), d is the depth defined by orientation points, s - surface defined " +"by orientation points." +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:30 +#: ../share/extensions/gcodetools_engraving.inx.h:8 +#: ../share/extensions/gcodetools_graffiti.inx.h:22 +#: ../share/extensions/gcodetools_lathe.inx.h:23 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:12 +msgid "Scale along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:31 +#: ../share/extensions/gcodetools_engraving.inx.h:9 +#: ../share/extensions/gcodetools_graffiti.inx.h:23 +#: ../share/extensions/gcodetools_lathe.inx.h:24 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:13 +msgid "Offset along Z axis:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:32 +#: ../share/extensions/gcodetools_engraving.inx.h:10 +#: ../share/extensions/gcodetools_graffiti.inx.h:24 +#: ../share/extensions/gcodetools_lathe.inx.h:25 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:14 +msgid "Select all paths if nothing is selected" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:33 +#: ../share/extensions/gcodetools_engraving.inx.h:11 +#: ../share/extensions/gcodetools_graffiti.inx.h:25 +#: ../share/extensions/gcodetools_lathe.inx.h:26 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:15 +msgid "Minimum arc radius:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:34 +#: ../share/extensions/gcodetools_engraving.inx.h:12 +#: ../share/extensions/gcodetools_graffiti.inx.h:26 +#: ../share/extensions/gcodetools_lathe.inx.h:27 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:16 +msgid "Comment Gcode:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:35 +#: ../share/extensions/gcodetools_engraving.inx.h:13 +#: ../share/extensions/gcodetools_graffiti.inx.h:27 +#: ../share/extensions/gcodetools_lathe.inx.h:28 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:17 +msgid "Get additional comments from object's properties" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:36 +#: ../share/extensions/gcodetools_dxf_points.inx.h:8 +#: ../share/extensions/gcodetools_engraving.inx.h:14 +#: ../share/extensions/gcodetools_graffiti.inx.h:28 +#: ../share/extensions/gcodetools_lathe.inx.h:29 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:18 +msgid "Preferences" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:37 +#: ../share/extensions/gcodetools_dxf_points.inx.h:9 +#: ../share/extensions/gcodetools_engraving.inx.h:15 +#: ../share/extensions/gcodetools_graffiti.inx.h:29 +#: ../share/extensions/gcodetools_lathe.inx.h:30 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:19 +msgid "File:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:38 +#: ../share/extensions/gcodetools_dxf_points.inx.h:10 +#: ../share/extensions/gcodetools_engraving.inx.h:16 +#: ../share/extensions/gcodetools_graffiti.inx.h:30 +#: ../share/extensions/gcodetools_lathe.inx.h:31 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:20 +msgid "Add numeric suffix to filename" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:39 +#: ../share/extensions/gcodetools_dxf_points.inx.h:11 +#: ../share/extensions/gcodetools_engraving.inx.h:17 +#: ../share/extensions/gcodetools_graffiti.inx.h:31 +#: ../share/extensions/gcodetools_lathe.inx.h:32 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:21 +msgid "Directory:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:40 +#: ../share/extensions/gcodetools_dxf_points.inx.h:12 +#: ../share/extensions/gcodetools_engraving.inx.h:18 +#: ../share/extensions/gcodetools_graffiti.inx.h:32 +#: ../share/extensions/gcodetools_lathe.inx.h:33 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:22 +msgid "Z safe height for G00 move over blank:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:41 +#: ../share/extensions/gcodetools_dxf_points.inx.h:13 +#: ../share/extensions/gcodetools_engraving.inx.h:19 +#: ../share/extensions/gcodetools_graffiti.inx.h:13 +#: ../share/extensions/gcodetools_lathe.inx.h:34 +#: ../share/extensions/gcodetools_orientation_points.inx.h:6 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:23 +msgid "Units (mm or in):" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:42 +#: ../share/extensions/gcodetools_dxf_points.inx.h:14 +#: ../share/extensions/gcodetools_engraving.inx.h:20 +#: ../share/extensions/gcodetools_graffiti.inx.h:33 +#: ../share/extensions/gcodetools_lathe.inx.h:35 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:24 +msgid "Post-processor:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:43 +#: ../share/extensions/gcodetools_dxf_points.inx.h:15 +#: ../share/extensions/gcodetools_engraving.inx.h:21 +#: ../share/extensions/gcodetools_graffiti.inx.h:34 +#: ../share/extensions/gcodetools_lathe.inx.h:36 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:25 +msgid "Additional post-processor:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:44 +#: ../share/extensions/gcodetools_dxf_points.inx.h:16 +#: ../share/extensions/gcodetools_engraving.inx.h:22 +#: ../share/extensions/gcodetools_graffiti.inx.h:35 +#: ../share/extensions/gcodetools_lathe.inx.h:37 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:26 +msgid "Generate log file" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:45 +#: ../share/extensions/gcodetools_dxf_points.inx.h:17 +#: ../share/extensions/gcodetools_engraving.inx.h:23 +#: ../share/extensions/gcodetools_graffiti.inx.h:36 +#: ../share/extensions/gcodetools_lathe.inx.h:38 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:27 +msgid "Full path to log file:" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:48 +#: ../share/extensions/gcodetools_dxf_points.inx.h:20 +#: ../share/extensions/gcodetools_engraving.inx.h:26 +#: ../share/extensions/gcodetools_graffiti.inx.h:37 +#: ../share/extensions/gcodetools_lathe.inx.h:41 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:30 +msgctxt "GCode postprocessor" +msgid "None" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:49 +#: ../share/extensions/gcodetools_dxf_points.inx.h:21 +#: ../share/extensions/gcodetools_engraving.inx.h:27 +#: ../share/extensions/gcodetools_graffiti.inx.h:38 +#: ../share/extensions/gcodetools_lathe.inx.h:42 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:31 +msgid "Parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:50 +#: ../share/extensions/gcodetools_dxf_points.inx.h:22 +#: ../share/extensions/gcodetools_engraving.inx.h:28 +#: ../share/extensions/gcodetools_graffiti.inx.h:39 +#: ../share/extensions/gcodetools_lathe.inx.h:43 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:32 +msgid "Flip y axis and parameterize Gcode" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:51 +#: ../share/extensions/gcodetools_dxf_points.inx.h:23 +#: ../share/extensions/gcodetools_engraving.inx.h:29 +#: ../share/extensions/gcodetools_graffiti.inx.h:40 +#: ../share/extensions/gcodetools_lathe.inx.h:44 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 +msgid "Round all values to 4 digits" +msgstr "" + +#: ../share/extensions/gcodetools_area.inx.h:52 +#: ../share/extensions/gcodetools_dxf_points.inx.h:24 +#: ../share/extensions/gcodetools_engraving.inx.h:30 +#: ../share/extensions/gcodetools_graffiti.inx.h:41 +#: ../share/extensions/gcodetools_lathe.inx.h:45 +#: ../share/extensions/gcodetools_path_to_gcode.inx.h:34 +msgid "Fast pre-penetrate" +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:1 +msgid "Check for updates" +msgstr "" + +#: ../share/extensions/gcodetools_check_for_updates.inx.h:2 +msgid "Check for Gcodetools latest stable version and try to get the updates." +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:1 +msgid "DXF Points" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:2 +msgid "DXF points" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:3 +msgid "Convert selection:" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:4 +msgid "" +"Convert selected objects to drill points (as dxf_import plugin does). Also " +"you can save original shape. Only the start point of each curve will be " +"used. Also you can manually select object, open XML editor (Shift+Ctrl+X) " +"and add or remove XML tag 'dxfpoint' with any value." +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:5 +msgid "set as dxfpoint and save shape" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:6 +msgid "set as dxfpoint and draw arrow" +msgstr "" + +#: ../share/extensions/gcodetools_dxf_points.inx.h:7 +msgid "clear dxfpoint sign" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:1 +msgid "Engraving" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:2 +msgid "Smooth convex corners between this value and 180 degrees:" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:3 +msgid "Maximum distance for engraving (mm/inch):" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:4 +msgid "Accuracy factor (2 low to 10 high):" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:5 +msgid "Draw additional graphics to see engraving path" +msgstr "" + +#: ../share/extensions/gcodetools_engraving.inx.h:6 +msgid "" +"This function creates path to engrave letters or any shape with sharp " +"angles. Cutter's depth as a function of radius is defined by the tool. Depth " +"may be any Python expression. For instance: cone....(45 " +"degrees)......................: w cone....(height/diameter=10/3)..: 10*w/3 " +"sphere..(radius r)...........................: math.sqrt(max(0,r**2-w**2)) " +"ellipse.(minor axis r, major 4r).....: math.sqrt(max(0,r**2-w**2))*4" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:1 +msgid "Graffiti" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:2 +msgid "Maximum segment length:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:3 +msgid "Minimal connector radius:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:4 +msgid "Start position (x;y):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:5 +msgid "Create preview" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:6 +msgid "Create linearization preview" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:7 +msgid "Preview's size (px):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:8 +msgid "Preview's paint emmit (pts/s):" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:10 +#: ../share/extensions/gcodetools_orientation_points.inx.h:3 +msgid "Orientation type:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:11 +#: ../share/extensions/gcodetools_orientation_points.inx.h:4 +msgid "Z surface:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:12 +#: ../share/extensions/gcodetools_orientation_points.inx.h:5 +msgid "Z depth:" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:14 +#: ../share/extensions/gcodetools_orientation_points.inx.h:7 +msgid "2-points mode (move and rotate, maintained aspect ratio X/Y)" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:15 +#: ../share/extensions/gcodetools_orientation_points.inx.h:8 +msgid "3-points mode (move, rotate and mirror, different X/Y scale)" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:16 +#: ../share/extensions/gcodetools_orientation_points.inx.h:9 +msgid "graffiti points" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:17 +#: ../share/extensions/gcodetools_orientation_points.inx.h:10 +msgid "in-out reference point" +msgstr "" + +#: ../share/extensions/gcodetools_graffiti.inx.h:20 +#: ../share/extensions/gcodetools_orientation_points.inx.h:13 +msgid "" +"Orientation points are used to calculate transformation (offset,scale,mirror," +"rotation in XY plane) of the path. 3-points mode only: do not put all three " +"into one line (use 2-points mode instead). You can modify Z surface, Z depth " +"values later using text tool (3rd coordinates). If there are no orientation " +"points inside current layer they are taken from the upper layer. Do not " +"ungroup orientation points! You can select them using double click to enter " +"the group or by Ctrl+Click. Now press apply to create control points " +"(independent set for each layer)." +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:1 +msgid "Lathe" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:2 +msgid "Lathe width:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:3 +msgid "Fine cut width:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:4 +msgid "Fine cut count:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:5 +msgid "Create fine cut using:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:6 +msgid "Lathe X axis remap:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:7 +msgid "Lathe Z axis remap:" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:8 +msgid "Move path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:9 +msgid "Offset path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:10 +msgid "Lathe modify path" +msgstr "" + +#: ../share/extensions/gcodetools_lathe.inx.h:11 +msgid "" +"This function modifies path so it will be able to be cut with the " +"rectangular cutter." +msgstr "" + +#: ../share/extensions/gcodetools_orientation_points.inx.h:1 +msgid "Orientation points" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:1 +msgid "Prepare path for plasma" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 +msgid "Prepare path for plasma or laser cuters" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 +msgid "Create in-out paths" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:4 +msgid "In-out path length:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:5 +msgid "In-out path max distance to reference point:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:6 +msgid "In-out path type:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:7 +msgid "In-out path radius for round path:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:8 +msgid "Replace original path" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:9 +msgid "Do not add in-out reference points" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:10 +msgid "Prepare corners" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:11 +msgid "Stepout distance for corners:" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:12 +msgid "Maximum angle for corner (0-180 deg):" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:14 +msgid "Perpendicular" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:15 +msgid "Tangent" +msgstr "" + +#: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:16 +msgid "-------------------------------------------------" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:1 +msgid "Tools library" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:2 +msgid "Tools type:" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:3 +msgid "default" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:4 +msgid "cylinder" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:5 +msgid "cone" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:6 +msgid "plasma" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:7 +msgid "tangent knife" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:8 +msgid "lathe cutter" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:9 +msgid "graffiti" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:10 +msgid "Just check tools" +msgstr "" + +#: ../share/extensions/gcodetools_tools_library.inx.h:11 +msgid "" +"Selected tool type fills appropriate default values. You can change these " +"values using the Text tool later on. The topmost (z order) tool in the " +"active layer is used. If there is no tool inside the current layer it is " +"taken from the upper layer. Press Apply to create new tool." +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:1 +msgid "Voronoi Pattern" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:3 +msgid "Average size of cell (px):" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:4 +msgid "Size of Border (px):" +msgstr "" + +#: ../share/extensions/generate_voronoi.inx.h:6 +msgid "" +"Generate a random pattern of Voronoi cells. The pattern will be accessible " +"in the Fill and Stroke dialog. You must select an object or a group.\n" +"\n" +"If border is zero, the pattern will be discontinuous at the edges. Use a " +"positive border, preferably greater than the cell size, to produce a smooth " +"join of the pattern at the edges. Use a negative border to reduce the size " +"of the pattern and get an empty border." +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:1 +msgid "GIMP XCF" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:3 +msgid "Save Guides" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:4 +msgid "Save Grid" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:5 +msgid "Save Background" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:6 +msgid "File Resolution:" +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:8 +msgid "" +"This extension exports the document to Gimp XCF format according to the " +"following options:\n" +" * Save Guides: convert all guides to Gimp guides.\n" +" * Save Grid: convert the first rectangular grid to a Gimp grid (note " +"that the default Inkscape grid is very narrow when shown in Gimp).\n" +" * Save Background: add the document background to each converted layer.\n" +" * File Resolution: XCF file resolution, in DPI.\n" +"\n" +"Each first level layer is converted to a Gimp layer. Sublayers are " +"concatenated and converted with their first level parent layer into a single " +"Gimp layer." +msgstr "" + +#: ../share/extensions/gimp_xcf.inx.h:15 +msgid "GIMP XCF maintaining layers (*.xcf)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:1 +msgid "Cartesian Grid" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:2 +#: ../share/extensions/grid_isometric.inx.h:10 +msgid "Border Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:3 +msgid "X Axis" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:4 +msgid "Major X Divisions:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:5 +msgid "Major X Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:6 +msgid "Subdivisions per Major X Division:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:7 +msgid "Logarithmic X Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:8 +msgid "Subsubdivs. per X Subdivision:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:9 +msgid "Halve X Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:10 +msgid "Major X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:11 +msgid "Minor X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:12 +msgid "Subminor X Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:13 +msgid "Y Axis" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:14 +msgid "Major Y Divisions:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:15 +msgid "Major Y Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:16 +msgid "Subdivisions per Major Y Division:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:17 +msgid "Logarithmic Y Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:18 +msgid "Subsubdivs. per Y Subdivision:" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:19 +msgid "Halve Y Subsubdiv. Frequency after 'n' Subdivs. (log only):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:20 +msgid "Major Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:21 +msgid "Minor Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_cartesian.inx.h:22 +msgid "Subminor Y Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:1 +msgid "Isometric Grid" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:2 +msgid "X Divisions [x2]:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:3 +msgid "Y Divisions [x2] [> 1/2 X Div]:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:4 +msgid "Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:5 +msgid "Subdivisions per Major Division:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:6 +msgid "Subsubdivs per Subdivision:" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:7 +msgid "Major Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:8 +msgid "Minor Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_isometric.inx.h:9 +msgid "Subminor Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:1 +msgid "Polar Grid" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:2 +msgid "Centre Dot Diameter (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:3 +msgid "Circumferential Labels:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:5 +msgid "Degrees" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:6 +msgid "Circumferential Label Size (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:7 +msgid "Circumferential Label Outset (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:8 +msgid "Circular Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:9 +msgid "Major Circular Divisions:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:10 +msgid "Major Circular Division Spacing (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:11 +msgid "Subdivisions per Major Circular Division:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:12 +msgid "Logarithmic Subdiv. (Base given by entry above)" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:13 +msgid "Major Circular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:14 +msgid "Minor Circular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:15 +msgid "Angular Divisions" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:16 +msgid "Angle Divisions:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:17 +msgid "Angle Divisions at Centre:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:18 +msgid "Subdivisions per Major Angular Division:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:19 +msgid "Minor Angle Division End 'n' Divs. Before Centre:" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:20 +msgid "Major Angular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/grid_polar.inx.h:21 +msgid "Minor Angular Division Thickness (px):" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:1 +msgid "Guides creator" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:2 +msgid "Regular guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:3 +msgid "Guides preset:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:6 +msgid "Start from edges" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:7 +msgid "Delete existing guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:8 +msgid "Custom..." +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:9 +msgid "Golden ratio" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:10 +msgid "Rule-of-third" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:11 +msgid "Diagonal guides" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:12 +msgid "Upper left corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:13 +msgid "Upper right corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:14 +msgid "Lower left corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:15 +msgid "Lower right corner" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:16 +msgid "Margins" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:17 +msgid "Margins preset:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:18 +msgid "Header margin:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:19 +msgid "Footer margin:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:20 +msgid "Left margin:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:21 +msgid "Right margin:" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:22 +msgid "Left book page" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:23 +msgid "Right book page" +msgstr "" + +#: ../share/extensions/guides_creator.inx.h:24 +msgctxt "Margin" +msgid "None" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:1 +msgid "Guillotine" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:2 +msgid "Directory to save images to:" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:3 +msgid "Image name (without extension):" +msgstr "" + +#: ../share/extensions/guillotine.inx.h:4 +msgid "Ignore these settings and use export hints" +msgstr "" + +#: ../share/extensions/handles.inx.h:1 +msgid "Draw Handles" +msgstr "" + +#: ../share/extensions/hershey.inx.h:1 +msgid "Hershey Text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:2 +msgid "Render Text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:3 +#: ../share/extensions/render_alphabetsoup.inx.h:2 +#: ../share/extensions/render_barcode_datamatrix.inx.h:2 +#: ../share/extensions/render_barcode_qrcode.inx.h:3 +msgid "Text:" +msgstr "" + +#: ../share/extensions/hershey.inx.h:4 +msgid "Action: " +msgstr "" + +#: ../share/extensions/hershey.inx.h:5 +msgid "Font face: " +msgstr "" + +#: ../share/extensions/hershey.inx.h:6 +msgid "Typeset that text" +msgstr "" + +#: ../share/extensions/hershey.inx.h:7 +msgid "Write glyph table" +msgstr "" + +#: ../share/extensions/hershey.inx.h:8 +msgid "Sans 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:9 +msgid "Sans bold" +msgstr "" + +#: ../share/extensions/hershey.inx.h:10 +msgid "Serif medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:11 +msgid "Serif medium italic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:12 +msgid "Serif bold italic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:13 +msgid "Serif bold" +msgstr "" + +#: ../share/extensions/hershey.inx.h:14 +msgid "Script 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:15 +msgid "Script 1-stroke (alt)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:16 +msgid "Script medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:17 +msgid "Gothic English" +msgstr "" + +#: ../share/extensions/hershey.inx.h:18 +msgid "Gothic German" +msgstr "" + +#: ../share/extensions/hershey.inx.h:19 +msgid "Gothic Italian" +msgstr "" + +#: ../share/extensions/hershey.inx.h:20 +msgid "Greek 1-stroke" +msgstr "" + +#: ../share/extensions/hershey.inx.h:21 +msgid "Greek medium" +msgstr "" + +#: ../share/extensions/hershey.inx.h:23 +msgid "Japanese" +msgstr "" + +#: ../share/extensions/hershey.inx.h:24 +msgid "Astrology" +msgstr "" + +#: ../share/extensions/hershey.inx.h:25 +msgid "Math (lower)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:26 +msgid "Math (upper)" +msgstr "" + +#: ../share/extensions/hershey.inx.h:28 +msgid "Meteorology" +msgstr "" + +#: ../share/extensions/hershey.inx.h:29 +msgid "Music" +msgstr "" + +#: ../share/extensions/hershey.inx.h:30 +msgid "Symbolic" +msgstr "" + +#: ../share/extensions/hershey.inx.h:31 +msgid "" +" \n" +"\n" +"\n" +"\n" +msgstr "" + +#: ../share/extensions/hershey.inx.h:36 +msgid "About..." +msgstr "" + +#: ../share/extensions/hershey.inx.h:37 +msgid "" +"\n" +"This extension renders a line of text using\n" +"\"Hershey\" fonts for plotters, derived from \n" +"NBS SP-424 1976-04, \"A contribution to \n" +"computer typesetting techniques: Tables of\n" +"Coordinates for Hershey's Repertory of\n" +"Occidental Type Fonts and Graphic Symbols.\"\n" +"\n" +"These are not traditional \"outline\" fonts, \n" +"but are instead \"single-stroke\" fonts, or\n" +"\"engraving\" fonts where the character is\n" +"formed by the stroke (and not the fill).\n" +"\n" +"For additional information, please visit:\n" +" www.evilmadscientist.com/go/hershey" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:1 +msgid "HPGL Input" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:2 +msgid "" +"Please note that you can only open HPGL files written by Inkscape, to open " +"other HPGL files please change their file extension to .plt, make sure you " +"have UniConverter installed and open them again." +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:3 +#: ../share/extensions/hpgl_output.inx.h:4 +#: ../share/extensions/plotter.inx.h:25 +msgid "Resolution X (dpi):" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:4 +#: ../share/extensions/hpgl_output.inx.h:5 +#: ../share/extensions/plotter.inx.h:26 +msgid "" +"The amount of steps the plotter moves if it moves for 1 inch on the X axis " +"(Default: 1016.0)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:5 +#: ../share/extensions/hpgl_output.inx.h:6 +#: ../share/extensions/plotter.inx.h:27 +msgid "Resolution Y (dpi):" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:6 +#: ../share/extensions/hpgl_output.inx.h:7 +#: ../share/extensions/plotter.inx.h:28 +msgid "" +"The amount of steps the plotter moves if it moves for 1 inch on the Y axis " +"(Default: 1016.0)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:7 +msgid "Show movements between paths" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:8 +msgid "Check this to show movements between paths (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:9 +#: ../share/extensions/hpgl_output.inx.h:34 +msgid "HP Graphics Language file (*.hpgl)" +msgstr "" + +#: ../share/extensions/hpgl_input.inx.h:10 +msgid "Import an HP Graphics Language file" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:1 +msgid "HPGL Output" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:2 +msgid "" +"Please make sure that all objects you want to save are converted to paths. " +"Please use the plotter extension (Extensions menu) to plot directly over a " +"serial connection." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:3 +#: ../share/extensions/plotter.inx.h:24 +msgid "Plotter Settings " +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:8 +#: ../share/extensions/plotter.inx.h:29 +msgid "Pen number:" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:9 +#: ../share/extensions/plotter.inx.h:30 +msgid "The number of the pen (tool) to use (Standard: '1')" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:10 +#: ../share/extensions/plotter.inx.h:31 +msgid "Pen force (g):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:11 +#: ../share/extensions/plotter.inx.h:32 +msgid "" +"The amount of force pushing down the pen in grams, set to 0 to omit command; " +"most plotters ignore this command (Default: 0)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:12 +#: ../share/extensions/plotter.inx.h:33 +msgid "Pen speed (cm/s or mm/s):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:13 +msgid "" +"The speed the pen will move with in centimeters or millimeters per second " +"(depending on your plotter model), set to 0 to omit command; most plotters " +"ignore this command (Default: 0)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:14 +msgid "Rotation (°, Clockwise):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:15 +#: ../share/extensions/plotter.inx.h:36 +msgid "Rotation of the drawing (Default: 0°)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:16 +#: ../share/extensions/plotter.inx.h:37 +msgid "Mirror X axis" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:17 +#: ../share/extensions/plotter.inx.h:38 +msgid "Check this to mirror the X axis (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:18 +#: ../share/extensions/plotter.inx.h:39 +msgid "Mirror Y axis" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:19 +#: ../share/extensions/plotter.inx.h:40 +msgid "Check this to mirror the Y axis (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:20 +#: ../share/extensions/plotter.inx.h:41 +msgid "Center zero point" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:21 +#: ../share/extensions/plotter.inx.h:42 +msgid "" +"Check this if your plotter uses a centered zero point (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:22 +#: ../share/extensions/plotter.inx.h:43 +msgid "Plot Features " +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:23 +#: ../share/extensions/plotter.inx.h:44 +msgid "Overcut (mm):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:24 +#: ../share/extensions/plotter.inx.h:45 +msgid "" +"The distance in mm that will be cut over the starting point of the path to " +"prevent open paths, set to 0.0 to omit command (Default: 1.00)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:46 +msgid "Tool offset (mm):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:47 +msgid "" +"The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " +"command (Default: 0.25)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:48 +msgid "Use precut" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:49 +msgid "" +"Check this to cut a small line before the real drawing starts to correctly " +"align the tool orientation. (Default: Checked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:50 +msgid "Curve flatness:" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:51 +msgid "" +"Curves are divided into lines, this number controls how fine the curves will " +"be reproduced, the smaller the finer (Default: '1.2')" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:52 +msgid "Auto align" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:53 +msgid "" +"Check this to auto align the drawing to the zero point (Plus the tool offset " +"if used). If unchecked you have to make sure that all parts of your drawing " +"are within the document border! (Default: Checked)" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:56 +msgid "" +"All these settings depend on the plotter you use, for more information " +"please consult the manual or homepage for your plotter." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:35 +msgid "Export an HP Graphics Language file" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:1 +msgid "Convert to html5 canvas" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:2 +msgid "HTML 5 canvas (*.html)" +msgstr "" + +#: ../share/extensions/ink2canvas.inx.h:3 +msgid "HTML 5 canvas code" +msgstr "" + +#: ../share/extensions/inkscape_follow_link.inx.h:1 +msgid "Follow Link" +msgstr "" + +#: ../share/extensions/inkscape_help_askaquestion.inx.h:1 +msgid "Ask Us a Question" +msgstr "" + +#: ../share/extensions/inkscape_help_commandline.inx.h:1 +msgid "Command Line Options" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_commandline.inx.h:3 +msgid "http://inkscape.org/doc/inkscape-man.html" +msgstr "" + +#: ../share/extensions/inkscape_help_faq.inx.h:1 +msgid "FAQ" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_faq.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/FAQ" +msgstr "" + +#: ../share/extensions/inkscape_help_keys.inx.h:1 +msgid "Keys and Mouse Reference" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_keys.inx.h:3 +msgid "http://inkscape.org/doc/keys091.html" +msgstr "" + +#: ../share/extensions/inkscape_help_manual.inx.h:1 +msgid "Inkscape Manual" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_manual.inx.h:3 +msgid "http://tavmjong.free.fr/INKSCAPE/MANUAL/html/index.php" +msgstr "" + +#: ../share/extensions/inkscape_help_relnotes.inx.h:1 +msgid "New in This Version" +msgstr "" + +#. i18n. Please don't translate it unless a page exists in your language +#: ../share/extensions/inkscape_help_relnotes.inx.h:3 +msgid "http://wiki.inkscape.org/wiki/index.php/Release_notes/0.91" +msgstr "" + +#: ../share/extensions/inkscape_help_reportabug.inx.h:1 +msgid "Report a Bug" +msgstr "" + +#: ../share/extensions/inkscape_help_svgspec.inx.h:1 +msgid "SVG 1.1 Specification" +msgstr "" + +#: ../share/extensions/interp.inx.h:1 +msgid "Interpolate" +msgstr "" + +#: ../share/extensions/interp.inx.h:3 +msgid "Interpolation steps:" +msgstr "" + +#: ../share/extensions/interp.inx.h:4 +msgid "Interpolation method:" +msgstr "" + +#: ../share/extensions/interp.inx.h:5 +msgid "Duplicate endpaths" +msgstr "" + +#: ../share/extensions/interp.inx.h:6 +msgid "Interpolate style" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:1 +msgid "Interpolate Attribute in a group" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:3 +msgid "Attribute to Interpolate:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:4 +msgid "Other Attribute:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:5 +msgid "Other Attribute type:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:6 +msgid "Apply to:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:7 +msgid "Start Value:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:8 +msgid "End Value:" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:13 +msgid "Translate X" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:14 +msgid "Translate Y" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:15 +#: ../share/extensions/markers_strokepaint.inx.h:9 +msgid "Fill" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:17 +msgid "Other" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:18 +msgid "" +"If you select \"Other\", you must know the SVG attributes to identify here " +"this \"other\"." +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:20 +msgid "Integer Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:21 +msgid "Float Number" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:23 +#: ../share/extensions/polyhedron_3d.inx.h:33 +msgid "Style" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:24 +msgid "Transformation" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:25 +msgid "••••••••••••••••••••••••••••••••••••••••••••••••" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:26 +msgid "No Unit" +msgstr "" + +#: ../share/extensions/interp_att_g.inx.h:28 +msgid "" +"This effect applies a value for any interpolatable attribute for all " +"elements inside the selected group or for all elements in a multiple " +"selection." +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:1 +msgid "Auto-texts" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:2 +#: ../share/extensions/jessyInk_effects.inx.h:2 +#: ../share/extensions/jessyInk_export.inx.h:2 +#: ../share/extensions/jessyInk_masterSlide.inx.h:2 +#: ../share/extensions/jessyInk_transitions.inx.h:2 +#: ../share/extensions/jessyInk_view.inx.h:2 +msgid "Settings" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:3 +msgid "Auto-Text:" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:4 +msgid "None (remove)" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:5 +msgid "Slide title" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:6 +msgid "Slide number" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:7 +msgid "Number of slides" +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:9 +msgid "" +"This extension allows you to install, update and remove auto-texts for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." +msgstr "" + +#: ../share/extensions/jessyInk_autoTexts.inx.h:10 +#: ../share/extensions/jessyInk_effects.inx.h:15 +#: ../share/extensions/jessyInk_install.inx.h:4 +#: ../share/extensions/jessyInk_keyBindings.inx.h:46 +#: ../share/extensions/jessyInk_masterSlide.inx.h:7 +#: ../share/extensions/jessyInk_mouseHandler.inx.h:8 +#: ../share/extensions/jessyInk_summary.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:14 +#: ../share/extensions/jessyInk_uninstall.inx.h:12 +#: ../share/extensions/jessyInk_video.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:9 +msgid "JessyInk" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:1 +msgid "Effects" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:4 +#: ../share/extensions/jessyInk_transitions.inx.h:4 +#: ../share/extensions/jessyInk_view.inx.h:4 +msgid "Duration in seconds:" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:6 +msgid "Build-in effect" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:7 +msgid "None (default)" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:8 +#: ../share/extensions/jessyInk_transitions.inx.h:8 +msgid "Appear" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:9 +msgid "Fade in" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:10 +#: ../share/extensions/jessyInk_transitions.inx.h:10 +msgid "Pop" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:11 +msgid "Build-out effect" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:12 +msgid "Fade out" +msgstr "" + +#: ../share/extensions/jessyInk_effects.inx.h:14 +msgid "" +"This extension allows you to install, update and remove object effects for a " +"JessyInk presentation. Please see code.google.com/p/jessyink for more " +"details." +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:1 +msgid "JessyInk zipped pdf or png output" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:4 +msgid "Resolution:" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:5 +msgid "PDF" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:6 +msgid "PNG" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:8 +msgid "" +"This extension allows you to export a JessyInk presentation once you created " +"an export layer in your browser. Please see code.google.com/p/jessyink for " +"more details." +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:9 +msgid "JessyInk zipped pdf or png output (*.zip)" +msgstr "" + +#: ../share/extensions/jessyInk_export.inx.h:10 +msgid "" +"Creates a zip file containing pdfs or pngs of all slides of a JessyInk " +"presentation." +msgstr "" + +#: ../share/extensions/jessyInk_install.inx.h:1 +msgid "Install/update" +msgstr "" + +#: ../share/extensions/jessyInk_install.inx.h:3 +msgid "" +"This extension allows you to install or update the JessyInk script in order " +"to turn your SVG file into a presentation. Please see code.google.com/p/" +"jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:1 +msgid "Key bindings" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:2 +msgid "Slide mode" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:3 +msgid "Back (with effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:4 +msgid "Next (with effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:5 +msgid "Back (without effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:6 +msgid "Next (without effects):" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:7 +msgid "First slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:8 +msgid "Last slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:9 +msgid "Switch to index mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:10 +msgid "Switch to drawing mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:11 +msgid "Set duration:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:12 +msgid "Add slide:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:13 +msgid "Toggle progress bar:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:14 +msgid "Reset timer:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:15 +msgid "Export presentation:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:17 +msgid "Switch to slide mode:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:18 +msgid "Set path width to default:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:19 +msgid "Set path width to 1:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:20 +msgid "Set path width to 3:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:21 +msgid "Set path width to 5:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:22 +msgid "Set path width to 7:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:23 +msgid "Set path width to 9:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:24 +msgid "Set path color to blue:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:25 +msgid "Set path color to cyan:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:26 +msgid "Set path color to green:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:27 +msgid "Set path color to black:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:28 +msgid "Set path color to magenta:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:29 +msgid "Set path color to orange:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:30 +msgid "Set path color to red:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:31 +msgid "Set path color to white:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:32 +msgid "Set path color to yellow:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:33 +msgid "Undo last path segment:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:34 +msgid "Index mode" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:35 +msgid "Select the slide to the left:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:36 +msgid "Select the slide to the right:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:37 +msgid "Select the slide above:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:38 +msgid "Select the slide below:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:39 +msgid "Previous page:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:40 +msgid "Next page:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:41 +msgid "Decrease number of columns:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:42 +msgid "Increase number of columns:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:43 +msgid "Set number of columns to default:" +msgstr "" + +#: ../share/extensions/jessyInk_keyBindings.inx.h:45 +msgid "" +"This extension allows you customise the key bindings JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:1 +msgid "Master slide" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:3 +#: ../share/extensions/jessyInk_transitions.inx.h:3 +msgid "Name of layer:" +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:4 +msgid "If no layer name is supplied, the master slide is unset." +msgstr "" + +#: ../share/extensions/jessyInk_masterSlide.inx.h:6 +msgid "" +"This extension allows you to change the master slide JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:1 +msgid "Mouse handler" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:2 +msgid "Mouse settings:" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:4 +msgid "No-click" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:5 +msgid "Dragging/zoom" +msgstr "" + +#: ../share/extensions/jessyInk_mouseHandler.inx.h:7 +msgid "" +"This extension allows you customise the mouse handler JessyInk uses. Please " +"see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_summary.inx.h:1 +msgid "Summary" +msgstr "" + +#: ../share/extensions/jessyInk_summary.inx.h:3 +msgid "" +"This extension allows you to obtain information about the JessyInk script, " +"effects and transitions contained in this SVG file. Please see code.google." +"com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:1 +msgid "Transitions" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:6 +msgid "Transition in effect" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:9 +msgid "Fade" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:11 +msgid "Transition out effect" +msgstr "" + +#: ../share/extensions/jessyInk_transitions.inx.h:13 +msgid "" +"This extension allows you to change the transition JessyInk uses for the " +"selected layer. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:1 +msgid "Uninstall/remove" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:3 +msgid "Remove script" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:4 +msgid "Remove effects" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:5 +msgid "Remove master slide assignment" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:6 +msgid "Remove transitions" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:7 +msgid "Remove auto-texts" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:8 +msgid "Remove views" +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:9 +msgid "Please select the parts of JessyInk you want to uninstall/remove." +msgstr "" + +#: ../share/extensions/jessyInk_uninstall.inx.h:11 +msgid "" +"This extension allows you to uninstall the JessyInk script. Please see code." +"google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_video.inx.h:1 +msgid "Video" +msgstr "" + +#: ../share/extensions/jessyInk_video.inx.h:3 +msgid "" +"This extension puts a JessyInk video element on the current slide (layer). " +"This element allows you to integrate a video into your JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:5 +msgid "Remove view" +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:6 +msgid "Choose order number 0 to set the initial view of a slide." +msgstr "" + +#: ../share/extensions/jessyInk_view.inx.h:8 +msgid "" +"This extension allows you to set, update and remove views for a JessyInk " +"presentation. Please see code.google.com/p/jessyink for more details." +msgstr "" + +#: ../share/extensions/layers2svgfont.inx.h:1 +msgid "3 - Convert Glyph Layers to SVG Font" +msgstr "" + +#: ../share/extensions/layers2svgfont.inx.h:2 +#: ../share/extensions/new_glyph_layer.inx.h:3 +#: ../share/extensions/next_glyph_layer.inx.h:2 +#: ../share/extensions/previous_glyph_layer.inx.h:2 +#: ../share/extensions/setup_typography_canvas.inx.h:7 +#: ../share/extensions/svgfont2layers.inx.h:3 +msgid "Typography" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:1 +msgid "N-up layout" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:2 +msgid "Page dimensions" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:4 +msgid "Size X:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:5 +msgid "Size Y:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:6 +#: ../share/extensions/printing_marks.inx.h:13 +msgid "Top:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:7 +#: ../share/extensions/printing_marks.inx.h:14 +msgid "Bottom:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:8 +#: ../share/extensions/printing_marks.inx.h:15 +msgid "Left:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:9 +#: ../share/extensions/printing_marks.inx.h:16 +msgid "Right:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:10 +msgid "Page margins" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:11 +msgid "Layout dimensions" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:13 +msgid "Cols:" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:14 +msgid "Auto calculate layout size" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:15 +msgid "Layout padding" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:16 +msgid "Layout margins" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:17 +#: ../share/extensions/printing_marks.inx.h:2 +msgid "Marks" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:18 +msgid "Place holder" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:19 +msgid "Cutting marks" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:20 +msgid "Padding guide" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:21 +msgid "Margin guide" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:22 +msgid "Padding box" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:23 +msgid "Margin box" +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:25 +msgid "" +"\n" +"Parameters:\n" +" * Page size: width and height.\n" +" * Page margins: extra space around each page.\n" +" * Layout rows and cols.\n" +" * Layout size: width and height, auto calculated if one is 0.\n" +" * Auto calculate layout size: don't use the layout size values.\n" +" * Layout margins: white space around each part of the layout.\n" +" * Layout padding: inner padding for each part of the layout.\n" +" " +msgstr "" + +#: ../share/extensions/layout_nup.inx.h:36 +#: ../share/extensions/perfectboundcover.inx.h:20 +#: ../share/extensions/printing_marks.inx.h:21 +#: ../share/extensions/svgcalendar.inx.h:13 +msgid "Layout" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:1 +msgid "L-system" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:2 +msgid "Axiom and rules" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:3 +msgid "Axiom:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:4 +msgid "Rules:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:6 +msgid "Step length (px):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:8 +#, no-c-format +msgid "Randomize step (%):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:9 +msgid "Left angle:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:10 +msgid "Right angle:" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:12 +#, no-c-format +msgid "Randomize angle (%):" +msgstr "" + +#: ../share/extensions/lindenmayer.inx.h:14 +msgid "" +"\n" +"The path is generated by applying the \n" +"substitutions of Rules to the Axiom, \n" +"Order times. The following commands are \n" +"recognized in Axiom and Rules:\n" +"\n" +"Any of A,B,C,D,E,F: draw forward \n" +"\n" +"Any of G,H,I,J,K,L: move forward \n" +"\n" +"+: turn left\n" +"\n" +"-: turn right\n" +"\n" +"|: turn 180 degrees\n" +"\n" +"[: remember point\n" +"\n" +"]: return to remembered point\n" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:1 +msgid "Lorem ipsum" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:3 +msgid "Number of paragraphs:" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:4 +msgid "Sentences per paragraph:" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:5 +msgid "Paragraph length fluctuation (sentences):" +msgstr "" + +#: ../share/extensions/lorem_ipsum.inx.h:7 +msgid "" +"This effect creates the standard \"Lorem Ipsum\" pseudolatin placeholder " +"text. If a flowed text is selected, Lorem Ipsum is added to it; otherwise a " +"new flowed text object, the size of the page, is created in a new layer." +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:1 +msgid "Color Markers" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:2 +msgid "From object" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:3 +msgid "Marker type:" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:4 +msgid "Invert fill and stroke colors" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:5 +msgid "Assign alpha" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:6 +msgid "solid" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:7 +msgid "filled" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:10 +msgid "Assign fill color" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:11 +msgid "Stroke" +msgstr "" + +#: ../share/extensions/markers_strokepaint.inx.h:12 +msgid "Assign stroke color" +msgstr "" + +#: ../share/extensions/measure.inx.h:1 +msgid "Measure Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:2 +msgid "Measure" +msgstr "" + +#: ../share/extensions/measure.inx.h:3 +msgid "Measurement Type: " +msgstr "" + +#: ../share/extensions/measure.inx.h:4 +msgid "Text Orientation: " +msgstr "" + +#: ../share/extensions/measure.inx.h:5 +msgid "Angle [with Fixed Angle option only] (°):" +msgstr "" + +#: ../share/extensions/measure.inx.h:6 +msgid "Font size (px):" +msgstr "" + +#: ../share/extensions/measure.inx.h:7 +msgid "Offset (px):" +msgstr "" + +#: ../share/extensions/measure.inx.h:8 +msgid "Precision:" +msgstr "" + +#: ../share/extensions/measure.inx.h:9 +msgid "Scale Factor (Drawing:Real Length) = 1:" +msgstr "" + +#: ../share/extensions/measure.inx.h:10 +msgid "Length Unit:" +msgstr "" + +#: ../share/extensions/measure.inx.h:12 +msgctxt "measure extension" +msgid "Area" +msgstr "" + +#: ../share/extensions/measure.inx.h:13 +msgctxt "measure extension" +msgid "Center of Mass" +msgstr "" + +#: ../share/extensions/measure.inx.h:14 +msgctxt "measure extension" +msgid "Text On Path" +msgstr "" + +#: ../share/extensions/measure.inx.h:15 +msgctxt "measure extension" +msgid "Fixed Angle" +msgstr "" + +#: ../share/extensions/measure.inx.h:18 +#, no-c-format +msgid "" +"This effect measures the length, area, or center-of-mass of the selected " +"paths. Length and area are added as a text object with the selected units. " +"Center-of-mass is shown as a cross symbol.\n" +"\n" +" * Text display format can be either Text-On-Path, or stand-alone text at a " +"specified angle.\n" +" * The number of significant digits can be controlled by the Precision " +"field.\n" +" * The Offset field controls the distance from the text to the path.\n" +" * The Scale factor can be used to make measurements in scaled drawings. " +"For example, if 1 cm in the drawing equals 2.5 m in the real world, Scale " +"must be set to 250.\n" +" * When calculating area, the result should be precise for polygons and " +"Bezier curves. If a circle is used, the area may be too high by as much as " +"0.03%." +msgstr "" + +#: ../share/extensions/merge_styles.inx.h:1 +msgid "Merge Styles into CSS" +msgstr "" + +#: ../share/extensions/merge_styles.inx.h:2 +msgid "" +"All selected nodes will be grouped together and their common style " +"attributes will create a new class, this class will replace the existing " +"inline style attributes. Please use a name which best describes the kinds of " +"objects and their common context for best effect." +msgstr "" + +#: ../share/extensions/merge_styles.inx.h:3 +msgid "New Class Name:" +msgstr "" + +#: ../share/extensions/merge_styles.inx.h:4 +msgid "Stylesheet" +msgstr "" + +#: ../share/extensions/motion.inx.h:1 +msgid "Motion" +msgstr "" + +#: ../share/extensions/motion.inx.h:2 +msgid "Magnitude:" +msgstr "" + +#: ../share/extensions/new_glyph_layer.inx.h:1 +msgid "2 - Add Glyph Layer" +msgstr "" + +#: ../share/extensions/new_glyph_layer.inx.h:2 +msgid "Unicode character:" +msgstr "" + +#: ../share/extensions/next_glyph_layer.inx.h:1 +msgid "View Next Glyph" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:1 +msgid "Parametric Curves" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:2 +msgid "Range and Sampling" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:3 +msgid "Start t-value:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:4 +msgid "End t-value:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:5 +msgid "Multiply t-range by 2*pi" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:6 +msgid "X-value of rectangle's left:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:7 +msgid "X-value of rectangle's right:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:8 +msgid "Y-value of rectangle's bottom:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:9 +msgid "Y-value of rectangle's top:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:10 +msgid "Samples:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:14 +msgid "" +"Select a rectangle before calling the extension, it will determine X and Y " +"scales.\n" +"First derivatives are always determined numerically." +msgstr "" + +#: ../share/extensions/param_curves.inx.h:26 +msgid "X-Function:" +msgstr "" + +#: ../share/extensions/param_curves.inx.h:27 +msgid "Y-Function:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:1 +msgid "Pattern along Path" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:3 +msgid "Copies of the pattern:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:4 +msgid "Deformation type:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:5 +#: ../share/extensions/pathscatter.inx.h:5 +msgid "Space between copies:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:6 +#: ../share/extensions/pathscatter.inx.h:6 +msgid "Normal offset:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:7 +#: ../share/extensions/pathscatter.inx.h:7 +msgid "Tangential offset:" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:8 +#: ../share/extensions/pathscatter.inx.h:8 +msgid "Pattern is vertical" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:9 +#: ../share/extensions/pathscatter.inx.h:10 +msgid "Duplicate the pattern before deformation" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:14 +msgid "Snake" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:15 +msgid "Ribbon" +msgstr "" + +#: ../share/extensions/pathalongpath.inx.h:17 +msgid "" +"This effect scatters or bends a pattern along arbitrary \"skeleton\" paths. " +"The pattern is the topmost object in the selection. Groups of paths, shapes " +"or clones are allowed." +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:3 +msgid "Follow path orientation" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:4 +msgid "Stretch spaces to fit skeleton length" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:9 +msgid "Original pattern will be:" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:11 +msgid "If pattern is a group, pick group members" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:12 +msgid "Pick group members:" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:13 +msgid "Moved" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:14 +msgid "Copied" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:15 +msgid "Cloned" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:16 +msgid "Randomly" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:17 +msgid "Sequentially" +msgstr "" + +#: ../share/extensions/pathscatter.inx.h:19 +msgid "" +"This effect scatters a pattern along arbitrary \"skeleton\" paths. The " +"pattern must be the topmost object in the selection. Groups of paths, " +"shapes, clones are allowed." +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:1 +msgid "Perfect-Bound Cover Template" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:2 +msgid "Book Properties" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:3 +msgid "Book Width (inches):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:4 +msgid "Book Height (inches):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:5 +msgid "Number of Pages:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:6 +msgid "Remove existing guides" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:7 +msgid "Interior Pages" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:8 +msgid "Paper Thickness Measurement:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:9 +msgid "Pages Per Inch (PPI)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:10 +msgid "Caliper (inches)" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:11 +msgid "Points" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:12 +msgid "Bond Weight #" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:13 +msgid "Specify Width" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:14 +msgid "Value:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:15 +msgid "Cover" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:16 +msgid "Cover Thickness Measurement:" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:17 +msgid "Bleed (in):" +msgstr "" + +#: ../share/extensions/perfectboundcover.inx.h:18 +msgid "Note: Bond Weight # calculations are a best-guess estimate." +msgstr "" + +#: ../share/extensions/pixelsnap.inx.h:1 +msgid "PixelSnap" +msgstr "" + +#: ../share/extensions/pixelsnap.inx.h:2 +msgid "" +"Snap all paths in selection to pixels. Snaps borders to half-points and " +"fills to full points." +msgstr "" + +#: ../share/extensions/plotter.inx.h:1 +msgid "Plot" +msgstr "" + +#: ../share/extensions/plotter.inx.h:2 +msgid "" +"Please make sure that all objects you want to plot are converted to paths." +msgstr "" + +#: ../share/extensions/plotter.inx.h:3 +msgid "Connection Settings " +msgstr "" + +#: ../share/extensions/plotter.inx.h:4 +msgid "Serial port:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:5 +msgid "" +"The port of your serial connection, on Windows something like 'COM1', on " +"Linux something like: '/dev/ttyUSB0' (Default: COM1)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:6 +msgid "Serial baud rate:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:7 +msgid "The Baud rate of your serial connection (Default: 9600)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:8 +msgid "Flow control:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:9 +msgid "" +"The Software / Hardware flow control of your serial connection (Default: " +"Software)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:10 +msgid "Command language:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:11 +msgid "The command language to use (Default: HPGL)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:12 +msgid "Initialization commands:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:13 +msgid "" +"Commands that will be sent to the plotter before the main data stream, only " +"use this if you know what you are doing! (Default: Empty)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 +msgid "Software (XON/XOFF)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:15 +msgid "Hardware (RTS/CTS)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:16 +msgid "Hardware (DSR/DTR + RTS/CTS)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:17 +msgctxt "Flow control" +msgid "None" +msgstr "" + +#: ../share/extensions/plotter.inx.h:18 +msgid "HPGL" +msgstr "" + +#: ../share/extensions/plotter.inx.h:19 +msgid "DMPL" +msgstr "" + +#: ../share/extensions/plotter.inx.h:20 +msgid "KNK Plotter (HPGL variant)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:21 +msgid "" +"Using wrong settings can under certain circumstances cause Inkscape to " +"freeze. Always save your work before plotting!" +msgstr "" + +#: ../share/extensions/plotter.inx.h:22 +msgid "" +"This can be a physical serial connection or a USB-to-Serial bridge. Ask your " +"plotter manufacturer for drivers if needed." +msgstr "" + +#: ../share/extensions/plotter.inx.h:23 +msgid "Parallel (LPT) connections are not supported." +msgstr "" + +#: ../share/extensions/plotter.inx.h:34 +msgid "" +"The speed the pen will move with in centimeters or millimeters per second " +"(depending on your plotter model), set to 0 to omit command. Most plotters " +"ignore this command. (Default: 0)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:35 +msgid "Rotation (°, clockwise):" +msgstr "" + +#: ../share/extensions/plotter.inx.h:54 +msgid "Show debug information" +msgstr "" + +#: ../share/extensions/plotter.inx.h:55 +msgid "" +"Check this to get verbose information about the plot without actually " +"sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:1 +msgid "AutoCAD Plot Input" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:2 +#: ../share/extensions/plt_output.inx.h:2 +msgid "HP Graphics Language Plot file [AutoCAD] (*.plt)" +msgstr "" + +#: ../share/extensions/plt_input.inx.h:3 +msgid "Open HPGL plotter files" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:1 +msgid "AutoCAD Plot Output" +msgstr "" + +#: ../share/extensions/plt_output.inx.h:3 +msgid "Save a file for plotters" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:1 +msgid "3D Polyhedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:2 +msgid "Model file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:3 +msgid "Object:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:4 +msgid "Filename:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:5 +msgid "Object Type:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:6 +msgid "Clockwise wound object" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:7 +msgid "Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:8 +msgid "Truncated Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:9 +msgid "Snub Cube" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:10 +msgid "Cuboctahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:11 +msgid "Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:12 +msgid "Truncated Tetrahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:13 +msgid "Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:14 +msgid "Truncated Octahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:15 +msgid "Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:16 +msgid "Truncated Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:17 +msgid "Small Triambic Icosahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:18 +msgid "Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:19 +msgid "Truncated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:20 +msgid "Snub Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:21 +msgid "Great Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:22 +msgid "Great Stellated Dodecahedron" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:23 +msgid "Load from file" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:24 +msgid "Face-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:25 +msgid "Edge-Specified" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:27 +msgid "Rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:28 +#: ../share/extensions/spirograph.inx.h:8 +#: ../share/extensions/wireframe_sphere.inx.h:5 +msgid "Rotation (deg):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:29 +msgid "Then rotate around:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:30 +msgid "X-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:31 +msgid "Y-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:32 +msgid "Z-Axis" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:34 +msgid "Scaling factor:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:35 +msgid "Fill color, Red:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:36 +msgid "Fill color, Green:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:37 +msgid "Fill color, Blue:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:39 +#, no-c-format +msgid "Fill opacity (%):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:41 +#, no-c-format +msgid "Stroke opacity (%):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:42 +msgid "Stroke width (px):" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:43 +msgid "Shading" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:44 +msgid "Light X:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:45 +msgid "Light Y:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:46 +msgid "Light Z:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:48 +msgid "Draw back-facing polygons" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:49 +msgid "Z-sort faces by:" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:50 +msgid "Faces" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:51 +msgid "Edges" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:52 +msgid "Vertices" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:53 +msgid "Maximum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:54 +msgid "Minimum" +msgstr "" + +#: ../share/extensions/polyhedron_3d.inx.h:55 +msgid "Mean" +msgstr "" + +#: ../share/extensions/previous_glyph_layer.inx.h:1 +msgid "View Previous Glyph" +msgstr "" + +#: ../share/extensions/print_win32_vector.inx.h:1 +msgid "Win32 Vector Print" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:1 +msgid "Printing Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:3 +msgid "Crop Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:4 +msgid "Bleed Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:5 +msgid "Registration Marks" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:6 +msgid "Star Target" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:7 +msgid "Color Bars" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:8 +msgid "Page Information" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:9 +msgid "Positioning" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:10 +msgid "Set crop marks to:" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:17 +msgid "Canvas" +msgstr "" + +#: ../share/extensions/printing_marks.inx.h:19 +msgid "Bleed Margin" +msgstr "" + +#: ../share/extensions/ps_input.inx.h:1 +msgid "PostScript Input" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:1 +msgid "Jitter nodes" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:3 +msgid "Maximum displacement in X (px):" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:4 +msgid "Maximum displacement in Y (px):" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:7 +msgid "Use normal distribution" +msgstr "" + +#: ../share/extensions/radiusrand.inx.h:9 +msgid "" +"This effect randomly shifts the nodes (and optionally node handles) of the " +"selected path." +msgstr "" + +#: ../share/extensions/render_alphabetsoup.inx.h:1 +msgid "Alphabet Soup" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:1 +msgid "Classic" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:2 +msgid "Barcode Type:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:3 +msgid "Barcode Data:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:4 +msgid "Bar Height:" +msgstr "" + +#: ../share/extensions/render_barcode.inx.h:6 +#: ../share/extensions/render_barcode_datamatrix.inx.h:6 +#: ../share/extensions/render_barcode_qrcode.inx.h:19 +msgid "Barcode" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:1 +msgid "Datamatrix" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:3 +#: ../share/extensions/render_barcode_qrcode.inx.h:4 +msgid "Size, in unit squares:" +msgstr "" + +#: ../share/extensions/render_barcode_datamatrix.inx.h:4 +msgid "Square Size (px):" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:1 +msgid "QR Code" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:2 +msgid "See http://www.denso-wave.com/qrcode/index-e.html for details" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:6 +msgid "" +"With \"Auto\", the size of the barcode depends on the length of the text and " +"the error correction level" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:7 +msgid "Error correction level:" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:9 +#, no-c-format +msgid "L (Approx. 7%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:11 +#, no-c-format +msgid "M (Approx. 15%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:13 +#, no-c-format +msgid "Q (Approx. 25%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:15 +#, no-c-format +msgid "H (Approx. 30%)" +msgstr "" + +#: ../share/extensions/render_barcode_qrcode.inx.h:17 +msgid "Square size (px):" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:1 +msgid "Rack Gear" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:2 +msgid "Rack Length:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:3 +msgid "Tooth Spacing:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:4 +msgid "Contact Angle:" +msgstr "" + +#: ../share/extensions/render_gear_rack.inx.h:6 +#: ../share/extensions/render_gears.inx.h:1 +msgid "Gear" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:2 +msgid "Number of teeth:" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:3 +msgid "Circular pitch (tooth size):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:4 +msgid "Pressure angle (degrees):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:5 +msgid "Diameter of center hole (0 for none):" +msgstr "" + +#: ../share/extensions/render_gears.inx.h:10 +msgid "Unit of measurement for both circular pitch and center diameter." +msgstr "" + +#: ../share/extensions/replace_font.inx.h:1 +msgid "Replace font" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:2 +msgid "Find and Replace font" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:3 +msgid "Find font: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:4 +msgid "Replace with: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:5 +msgid "Replace all fonts with: " +msgstr "" + +#: ../share/extensions/replace_font.inx.h:6 +msgid "List all fonts" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:7 +msgid "" +"Choose this tab if you would like to see a list of the fonts used/found." +msgstr "" + +#: ../share/extensions/replace_font.inx.h:8 +msgid "Work on:" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:9 +msgid "Entire drawing" +msgstr "" + +#: ../share/extensions/replace_font.inx.h:10 +msgid "Selected objects only" +msgstr "" + +#: ../share/extensions/restack.inx.h:1 +msgid "Restack" +msgstr "" + +#: ../share/extensions/restack.inx.h:2 +msgid "Restack Direction:" +msgstr "" + +#: ../share/extensions/restack.inx.h:3 +msgid "Left to Right (0)" +msgstr "" + +#: ../share/extensions/restack.inx.h:4 +msgid "Bottom to Top (90)" +msgstr "" + +#: ../share/extensions/restack.inx.h:5 +msgid "Right to Left (180)" +msgstr "" + +#: ../share/extensions/restack.inx.h:6 +msgid "Top to Bottom (270)" +msgstr "" + +#: ../share/extensions/restack.inx.h:7 +msgid "Radial Outward" +msgstr "" + +#: ../share/extensions/restack.inx.h:8 +msgid "Radial Inward" +msgstr "" + +#: ../share/extensions/restack.inx.h:9 +msgid "Arbitrary Angle" +msgstr "" + +#: ../share/extensions/restack.inx.h:11 +msgid "Horizontal Point:" +msgstr "" + +#: ../share/extensions/restack.inx.h:13 +#: ../share/extensions/text_extract.inx.h:9 +#: ../share/extensions/text_merge.inx.h:9 +msgid "Middle" +msgstr "" + +#: ../share/extensions/restack.inx.h:15 +msgid "Vertical Point:" +msgstr "" + +#: ../share/extensions/restack.inx.h:16 +#: ../share/extensions/text_extract.inx.h:12 +#: ../share/extensions/text_merge.inx.h:12 +msgid "Top" +msgstr "" + +#: ../share/extensions/restack.inx.h:17 +#: ../share/extensions/text_extract.inx.h:13 +#: ../share/extensions/text_merge.inx.h:13 +msgid "Bottom" +msgstr "" + +#: ../share/extensions/restack.inx.h:18 +msgid "Arrange" +msgstr "" + +#: ../share/extensions/rtree.inx.h:1 +msgid "Random Tree" +msgstr "" + +#: ../share/extensions/rtree.inx.h:2 +msgid "Initial size:" +msgstr "" + +#: ../share/extensions/rtree.inx.h:3 +msgid "Minimum size:" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:1 +msgid "Rubber Stretch" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:3 +#, no-c-format +msgid "Strength (%):" +msgstr "" + +#: ../share/extensions/rubberstretch.inx.h:5 +#, no-c-format +msgid "Curve (%):" +msgstr "" + +#: ../share/extensions/scour.inx.h:1 +msgid "Optimized SVG Output" +msgstr "" + +#: ../share/extensions/scour.inx.h:3 +msgid "Shorten color values" +msgstr "" + +#: ../share/extensions/scour.inx.h:4 +msgid "Convert CSS attributes to XML attributes" +msgstr "" + +#: ../share/extensions/scour.inx.h:5 +msgid "Group collapsing" +msgstr "" + +#: ../share/extensions/scour.inx.h:6 +msgid "Create groups for similar attributes" +msgstr "" + +#: ../share/extensions/scour.inx.h:7 +msgid "Embed rasters" +msgstr "" + +#: ../share/extensions/scour.inx.h:8 +msgid "Keep editor data" +msgstr "" + +#: ../share/extensions/scour.inx.h:9 +msgid "Remove metadata" +msgstr "" + +#: ../share/extensions/scour.inx.h:10 +msgid "Remove comments" +msgstr "" + +#: ../share/extensions/scour.inx.h:11 +msgid "Work around renderer bugs" +msgstr "" + +#: ../share/extensions/scour.inx.h:12 +msgid "Enable viewboxing" +msgstr "" + +#: ../share/extensions/scour.inx.h:13 +msgid "Remove the xml declaration" +msgstr "" + +#: ../share/extensions/scour.inx.h:14 +msgid "Number of significant digits for coords:" +msgstr "" + +#: ../share/extensions/scour.inx.h:15 +msgid "XML indentation (pretty-printing):" +msgstr "" + +#: ../share/extensions/scour.inx.h:16 +msgid "Space" +msgstr "" + +#: ../share/extensions/scour.inx.h:17 +msgid "Tab" +msgstr "" + +#: ../share/extensions/scour.inx.h:18 +msgctxt "Indent" +msgid "None" +msgstr "" + +#: ../share/extensions/scour.inx.h:19 +msgid "Ids" +msgstr "" + +#: ../share/extensions/scour.inx.h:20 +msgid "Remove unused ID names for elements" +msgstr "" + +#: ../share/extensions/scour.inx.h:21 +msgid "Shorten IDs" +msgstr "" + +#: ../share/extensions/scour.inx.h:22 +msgid "Preserve manually created ID names not ending with digits" +msgstr "" + +#: ../share/extensions/scour.inx.h:23 +msgid "Preserve these ID names, comma-separated:" +msgstr "" + +#: ../share/extensions/scour.inx.h:24 +msgid "Preserve ID names starting with:" +msgstr "" + +#: ../share/extensions/scour.inx.h:25 +msgid "Help (Options)" +msgstr "" + +#: ../share/extensions/scour.inx.h:27 +#, no-c-format +msgid "" +"This extension optimizes the SVG file according to the following options:\n" +" * Shorten color names: convert all colors to #RRGGBB or #RGB format.\n" +" * Convert CSS attributes to XML attributes: convert styles from style " +"tags and inline style=\"\" declarations into XML attributes.\n" +" * Group collapsing: removes useless g elements, promoting their contents " +"up one level. Requires \"Remove unused ID names for elements\" to be set.\n" +" * Create groups for similar attributes: create g elements for runs of " +"elements having at least one attribute in common (e.g. fill color, stroke " +"opacity, ...).\n" +" * Embed rasters: embed raster images as base64-encoded data URLs.\n" +" * Keep editor data: don't remove Inkscape, Sodipodi or Adobe Illustrator " +"elements and attributes.\n" +" * Remove metadata: remove metadata tags along with all the information " +"in them, which may include license metadata, alternate versions for non-SVG-" +"enabled browsers, etc.\n" +" * Remove comments: remove comment tags.\n" +" * Work around renderer bugs: emits slightly larger SVG data, but works " +"around a bug in librsvg's renderer, which is used in Eye of GNOME and other " +"various applications.\n" +" * Enable viewboxing: size image to 100%/100% and introduce a viewBox.\n" +" * Number of significant digits for coords: all coordinates are output " +"with that number of significant digits. For example, if 3 is specified, the " +"coordinate 3.5153 is output as 3.51 and the coordinate 471.55 is output as " +"472.\n" +" * XML indentation (pretty-printing): either None for no indentation, " +"Space to use one space per nesting level, or Tab to use one tab per nesting " +"level." +msgstr "" + +#: ../share/extensions/scour.inx.h:40 +msgid "Help (Ids)" +msgstr "" + +#: ../share/extensions/scour.inx.h:41 +msgid "" +"Ids specific options:\n" +" * Remove unused ID names for elements: remove all unreferenced ID " +"attributes.\n" +" * Shorten IDs: reduce the length of all ID attributes, assigning the " +"shortest to the most-referenced elements. For instance, #linearGradient5621, " +"referenced 100 times, can become #a.\n" +" * Preserve manually created ID names not ending with digits: usually, " +"optimised SVG output removes these, but if they're needed for referencing (e." +"g. #middledot), you may use this option.\n" +" * Preserve these ID names, comma-separated: you can use this in " +"conjunction with the other preserve options if you wish to preserve some " +"more specific ID names.\n" +" * Preserve ID names starting with: usually, optimised SVG output removes " +"all unused ID names, but if all of your preserved ID names start with the " +"same prefix (e.g. #flag-mx, #flag-pt), you may use this option." +msgstr "" + +#: ../share/extensions/scour.inx.h:47 +msgid "Optimized SVG (*.svg)" +msgstr "" + +#: ../share/extensions/scour.inx.h:48 +msgid "Scalable Vector Graphics" +msgstr "" + +#: ../share/extensions/seamless_pattern.inx.h:1 +msgid "Seamless Pattern" +msgstr "" + +#: ../share/extensions/seamless_pattern.inx.h:2 +msgid "Custom Width (px):" +msgstr "" + +#: ../share/extensions/seamless_pattern.inx.h:3 +msgid "Custom Height (px):" +msgstr "" + +#: ../share/extensions/seamless_pattern.inx.h:4 +msgid "This extension overwrite current document" +msgstr "" + +#: ../share/extensions/seamless_pattern_procedural.inx.h:1 +msgid "Seamless Pattern Procedural" +msgstr "" + +#: ../share/extensions/seamless_pattern_procedural.inx.h:2 +msgid "Custom Width (px.):" +msgstr "" + +#: ../share/extensions/seamless_pattern_procedural.inx.h:3 +msgid "Custom Height (px.):" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:1 +msgid "1 - Setup Typography Canvas" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:2 +msgid "Em-size:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:3 +msgid "Ascender:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:4 +msgid "Caps Height:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:5 +msgid "X-Height:" +msgstr "" + +#: ../share/extensions/setup_typography_canvas.inx.h:6 +msgid "Descender:" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:1 +msgid "sK1 vector graphics files input" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:2 +#: ../share/extensions/sk1_output.inx.h:2 +msgid "sK1 vector graphics files (*.sk1)" +msgstr "" + +#: ../share/extensions/sk1_input.inx.h:3 +msgid "Open files saved in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:1 +msgid "sK1 vector graphics files output" +msgstr "" + +#: ../share/extensions/sk1_output.inx.h:3 +msgid "File format for use in sK1 vector graphics editor" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:1 +msgid "Sketch Input" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:2 +msgid "Sketch Diagram (*.sk)" +msgstr "" + +#: ../share/extensions/sk_input.inx.h:3 +msgid "A diagram created with the program Sketch" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:1 +msgid "Spirograph" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:2 +msgid "R - Ring Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:3 +msgid "r - Gear Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:4 +msgid "d - Pen Radius (px):" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:5 +msgid "Gear Placement:" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:6 +msgid "Inside (Hypotrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:7 +msgid "Outside (Epitrochoid)" +msgstr "" + +#: ../share/extensions/spirograph.inx.h:9 +msgid "Quality (Default = 16):" +msgstr "" + +#: ../share/extensions/split.inx.h:1 +msgid "Split text" +msgstr "" + +#: ../share/extensions/split.inx.h:3 +msgid "Split:" +msgstr "" + +#: ../share/extensions/split.inx.h:4 +msgid "Preserve original text" +msgstr "" + +#: ../share/extensions/split.inx.h:5 +msgctxt "split" +msgid "Lines" +msgstr "" + +#: ../share/extensions/split.inx.h:6 +msgctxt "split" +msgid "Words" +msgstr "" + +#: ../share/extensions/split.inx.h:7 +msgctxt "split" +msgid "Letters" +msgstr "" + +#: ../share/extensions/split.inx.h:9 +msgid "This effect splits texts into different lines, words or letters." +msgstr "" + +#: ../share/extensions/straightseg.inx.h:1 +msgid "Straighten Segments" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:2 +msgid "Percent:" +msgstr "" + +#: ../share/extensions/straightseg.inx.h:3 +msgid "Behavior:" +msgstr "" + +#: ../share/extensions/summersnight.inx.h:1 +msgid "Envelope" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:1 +msgid "FXG Output" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:2 +msgid "Flash XML Graphics (*.fxg)" +msgstr "" + +#: ../share/extensions/svg2fxg.inx.h:3 +msgid "Adobe's XML Graphics file format" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:1 +msgid "XAML Output" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:2 +msgid "Silverlight compatible XAML" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:3 ../share/extensions/xaml2svg.inx.h:2 +msgid "Microsoft XAML (*.xaml)" +msgstr "" + +#: ../share/extensions/svg2xaml.inx.h:4 ../share/extensions/xaml2svg.inx.h:3 +msgid "Microsoft's GUI definition format" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:1 +msgid "Compressed Inkscape SVG with media export" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:2 +msgid "Image zip directory:" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:3 +msgid "Add font list" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:4 +msgid "Compressed Inkscape SVG with media (*.zip)" +msgstr "" + +#: ../share/extensions/svg_and_media_zip_output.inx.h:5 +msgid "" +"Inkscape's native file format compressed with Zip and including all media " +"files" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:1 +msgid "Calendar" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:3 +msgid "Year (4 digits):" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:4 +msgid "Month (0 for all):" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:5 +msgid "Fill empty day boxes with next month's days" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:6 +msgid "Show week number" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:7 +msgid "Week start day:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:8 +msgid "Weekend:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:9 +msgid "Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:10 +msgid "Monday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:11 +msgid "Saturday and Sunday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:12 +msgid "Saturday" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:14 +msgid "Automatically set size and position" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:15 +msgid "Months per line:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:16 +msgid "Month Width:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:17 +msgid "Month Margin:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:18 +msgid "The options below have no influence when the above is checked." +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:20 +msgid "Year color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:21 +msgid "Month color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:22 +msgid "Weekday name color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:23 +msgid "Day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:24 +msgid "Weekend day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:25 +msgid "Next month day color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:26 +msgid "Week number color:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:27 +msgid "Localization" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:28 +msgid "Month names:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:29 +msgid "Day names:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:30 +msgid "Week number column name:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:31 +msgid "Char Encoding:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:32 +msgid "You may change the names for other languages:" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:33 +msgid "" +"January February March April May June July August September October November " +"December" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:34 +msgid "Sun Mon Tue Wed Thu Fri Sat" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:35 +msgid "The day names list must start from Sunday." +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:36 +msgid "Wk" +msgstr "" + +#: ../share/extensions/svgcalendar.inx.h:37 +msgid "" +"Select your system encoding. More information at http://docs.python.org/" +"library/codecs.html#standard-encodings." +msgstr "" + +#: ../share/extensions/svgfont2layers.inx.h:1 +msgid "Convert SVG Font to Glyph Layers" +msgstr "" + +#: ../share/extensions/svgfont2layers.inx.h:2 +msgid "Load only the first 30 glyphs (Recommended)" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:1 +msgid "Synfig Output" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:2 +msgid "Synfig Animation (*.sif)" +msgstr "" + +#: ../share/extensions/synfig_output.inx.h:3 +msgid "Synfig Animation written using the sif-file exporter extension" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:1 +msgid "Collection of SVG files One per root layer" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:2 +msgid "Layers as Separate SVG (*.tar)" +msgstr "" + +#: ../share/extensions/tar_layers.inx.h:3 +msgid "" +"Each layer split into it's own svg file and collected as a tape archive (tar " +"file)" +msgstr "" + +#: ../share/extensions/text_braille.inx.h:1 +msgid "Convert to Braille" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:1 +msgid "Extract" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:2 +#: ../share/extensions/text_merge.inx.h:2 +msgid "Text direction:" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:3 +#: ../share/extensions/text_merge.inx.h:3 +msgid "Left to right" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:4 +#: ../share/extensions/text_merge.inx.h:4 +msgid "Bottom to top" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:5 +#: ../share/extensions/text_merge.inx.h:5 +msgid "Right to left" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:6 +#: ../share/extensions/text_merge.inx.h:6 +msgid "Top to bottom" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:7 +#: ../share/extensions/text_merge.inx.h:7 +msgid "Horizontal point:" +msgstr "" + +#: ../share/extensions/text_extract.inx.h:11 +#: ../share/extensions/text_merge.inx.h:11 +msgid "Vertical point:" +msgstr "" + +#: ../share/extensions/text_flipcase.inx.h:1 +msgid "fLIP cASE" +msgstr "" + +#: ../share/extensions/text_flipcase.inx.h:3 +#: ../share/extensions/text_lowercase.inx.h:3 +#: ../share/extensions/text_randomcase.inx.h:3 +#: ../share/extensions/text_sentencecase.inx.h:3 +#: ../share/extensions/text_titlecase.inx.h:3 +#: ../share/extensions/text_uppercase.inx.h:3 +msgid "Change Case" +msgstr "" + +#: ../share/extensions/text_lowercase.inx.h:1 +msgid "lowercase" +msgstr "" + +#. false +#: ../share/extensions/text_merge.inx.h:15 +msgid "Keep style" +msgstr "" + +#: ../share/extensions/text_randomcase.inx.h:1 +msgid "rANdOm CasE" +msgstr "" + +#: ../share/extensions/text_sentencecase.inx.h:1 +msgid "Sentence case" +msgstr "" + +#: ../share/extensions/text_titlecase.inx.h:1 +msgid "Title Case" +msgstr "" + +#: ../share/extensions/text_uppercase.inx.h:1 +msgid "UPPERCASE" +msgstr "" + +#: ../share/extensions/triangle.inx.h:1 +msgid "Triangle" +msgstr "" + +#: ../share/extensions/triangle.inx.h:2 +msgid "Side Length a (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:3 +msgid "Side Length b (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:4 +msgid "Side Length c (px):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:5 +msgid "Angle a (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:6 +msgid "Angle b (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:7 +msgid "Angle c (deg):" +msgstr "" + +#: ../share/extensions/triangle.inx.h:9 +msgid "From Three Sides" +msgstr "" + +#: ../share/extensions/triangle.inx.h:10 +msgid "From Sides a, b and Angle c" +msgstr "" + +#: ../share/extensions/triangle.inx.h:11 +msgid "From Sides a, b and Angle a" +msgstr "" + +#: ../share/extensions/triangle.inx.h:12 +msgid "From Side a and Angles a, b" +msgstr "" + +#: ../share/extensions/triangle.inx.h:13 +msgid "From Side c and Angles a, b" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:1 +msgid "Voronoi Diagram" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:3 +msgid "Type of diagram:" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:4 +msgid "Bounding box of the diagram:" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:5 +msgid "Show the bounding box" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:6 +msgid "Delaunay Triangulation" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:7 +msgid "Voronoi and Delaunay" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:8 +msgid "Options for Voronoi diagram" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:10 +msgid "Automatic from selected objects" +msgstr "" + +#: ../share/extensions/voronoi2svg.inx.h:12 +msgid "" +"Select a set of objects. Their centroids will be used as the sites of the " +"Voronoi diagram. Text objects are not handled." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:1 +msgid "Set Attributes" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:3 +msgid "Attribute to set:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:4 +msgid "When should the set be done:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:5 +msgid "Value to set:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:6 +#: ../share/extensions/web-transmit-att.inx.h:5 +msgid "Compatibility with previews code to this event:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:7 +msgid "Source and destination of setting:" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:8 +#: ../share/extensions/web-transmit-att.inx.h:7 +msgid "on click" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:9 +#: ../share/extensions/web-transmit-att.inx.h:8 +msgid "on focus" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:10 +#: ../share/extensions/web-transmit-att.inx.h:9 +msgid "on blur" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:11 +#: ../share/extensions/web-transmit-att.inx.h:10 +msgid "on activate" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:12 +#: ../share/extensions/web-transmit-att.inx.h:11 +msgid "on mouse down" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:13 +#: ../share/extensions/web-transmit-att.inx.h:12 +msgid "on mouse up" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:14 +#: ../share/extensions/web-transmit-att.inx.h:13 +msgid "on mouse over" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:15 +#: ../share/extensions/web-transmit-att.inx.h:14 +msgid "on mouse move" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:16 +#: ../share/extensions/web-transmit-att.inx.h:15 +msgid "on mouse out" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:17 +#: ../share/extensions/web-transmit-att.inx.h:16 +msgid "on element loaded" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:18 +msgid "The list of values must have the same size as the attributes list." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:19 +#: ../share/extensions/web-transmit-att.inx.h:17 +msgid "Run it after" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:20 +#: ../share/extensions/web-transmit-att.inx.h:18 +msgid "Run it before" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:22 +#: ../share/extensions/web-transmit-att.inx.h:20 +msgid "The next parameter is useful when you select more than two elements" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:23 +msgid "All selected ones set an attribute in the last one" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:24 +msgid "The first selected sets an attribute in all others" +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:26 +#: ../share/extensions/web-transmit-att.inx.h:24 +msgid "" +"This effect adds a feature visible (or usable) only on a SVG enabled web " +"browser (like Firefox)." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:27 +msgid "" +"This effect sets one or more attributes in the second selected element, when " +"a defined event occurs on the first selected element." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:28 +msgid "" +"If you want to set more than one attribute, you must separate this with a " +"space, and only with a space." +msgstr "" + +#: ../share/extensions/web-set-att.inx.h:29 +#: ../share/extensions/web-transmit-att.inx.h:27 +#: ../share/extensions/webslicer_create_group.inx.h:13 +#: ../share/extensions/webslicer_create_rect.inx.h:41 +#: ../share/extensions/webslicer_export.inx.h:8 +msgid "Web" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:1 +msgid "Transmit Attributes" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:3 +msgid "Attribute to transmit:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:4 +msgid "When to transmit:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:6 +msgid "Source and destination of transmitting:" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:21 +msgid "All selected ones transmit to the last one" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:22 +msgid "The first selected transmits to all others" +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:25 +msgid "" +"This effect transmits one or more attributes from the first selected element " +"to the second when an event occurs." +msgstr "" + +#: ../share/extensions/web-transmit-att.inx.h:26 +msgid "" +"If you want to transmit more than one attribute, you should separate this " +"with a space, and only with a space." +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:1 +msgid "Set a layout group" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:3 +#: ../share/extensions/webslicer_create_rect.inx.h:18 +msgid "HTML id attribute:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:4 +#: ../share/extensions/webslicer_create_rect.inx.h:19 +msgid "HTML class attribute:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:5 +msgid "Width unit:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:6 +msgid "Height unit:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:7 +#: ../share/extensions/webslicer_create_rect.inx.h:9 +msgid "Background color:" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:8 +msgid "Pixel (fixed)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:9 +msgid "Percent (relative to parent size)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:10 +msgid "Undefined (relative to non-floating content size)" +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:12 +msgid "" +"Layout Group is only about to help a better code generation (if you need " +"it). To use this, you must to select some \"Slicer rectangles\" first." +msgstr "" + +#: ../share/extensions/webslicer_create_group.inx.h:14 +msgid "Slicer" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:1 +msgid "Create a slicer rectangle" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:4 +msgid "DPI:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:5 +msgid "Force Dimension:" +msgstr "" + +#. i18n. Description duplicated in a fake value attribute in order to make it translatable +#: ../share/extensions/webslicer_create_rect.inx.h:7 +msgid "Force Dimension must be set as x" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:8 +msgid "If set, this will replace DPI." +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:10 +msgid "JPG specific options" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:11 +msgid "Quality:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:12 +msgid "" +"0 is the lowest image quality and highest compression, and 100 is the best " +"quality but least effective compression" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:13 +msgid "GIF specific options" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:16 +msgid "Palette" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:17 +msgid "Palette size:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:20 +msgid "Options for HTML export" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:21 +msgid "Layout disposition:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:22 +msgid "Positioned html block element with the image as Background" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:23 +msgid "Tiled Background (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:24 +msgid "Background — repeat horizontally (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:25 +msgid "Background — repeat vertically (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:26 +msgid "Background — no repeat (on parent group)" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:27 +msgid "Positioned Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:28 +msgid "Non Positioned Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:29 +msgid "Left Floated Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:30 +msgid "Right Floated Image" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:31 +msgid "Position anchor:" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:32 +msgid "Top and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:33 +msgid "Top and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:34 +msgid "Top and right" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:35 +msgid "Middle and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:36 +msgid "Middle and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:37 +msgid "Middle and Right" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:38 +msgid "Bottom and Left" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:39 +msgid "Bottom and Center" +msgstr "" + +#: ../share/extensions/webslicer_create_rect.inx.h:40 +msgid "Bottom and Right" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:1 +msgid "Export layout pieces and HTML+CSS code" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:3 +msgid "Directory path to export:" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:4 +msgid "Create directory, if it does not exists" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:5 +msgid "With HTML and CSS" +msgstr "" + +#: ../share/extensions/webslicer_export.inx.h:7 +msgid "" +"All sliced images, and optionally - code, will be generated as you had " +"configured and saved to one directory." +msgstr "" + +#: ../share/extensions/whirl.inx.h:1 +msgid "Whirl" +msgstr "" + +#: ../share/extensions/whirl.inx.h:2 +msgid "Amount of whirl:" +msgstr "" + +#: ../share/extensions/whirl.inx.h:3 +msgid "Rotation is clockwise" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:1 +msgid "Wireframe Sphere" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:2 +msgid "Lines of latitude:" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:3 +msgid "Lines of longitude:" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:4 +msgid "Tilt (deg):" +msgstr "" + +#: ../share/extensions/wireframe_sphere.inx.h:7 +msgid "Hide lines behind the sphere" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:1 +#: ../share/extensions/wmf_output.inx.h:1 +msgid "Windows Metafile Input" +msgstr "" + +#: ../share/extensions/wmf_input.inx.h:3 +#: ../share/extensions/wmf_output.inx.h:3 +msgid "A popular graphics file format for clipart" +msgstr "" + +#: ../share/extensions/xaml2svg.inx.h:1 +msgid "XAML Input" +msgstr "" diff --git a/src/helper/png-write.h b/src/helper/png-write.h index 04ca85cd6..2657fb635 100644 --- a/src/helper/png-write.h +++ b/src/helper/png-write.h @@ -14,12 +14,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include <2geom/forward.h> -//should be in selection.h -typedef std::list SelContainer; - class SPDocument; diff --git a/src/selection.h b/src/selection.h index e40810ded..71be6dd6b 100644 --- a/src/selection.h +++ b/src/selection.h @@ -33,8 +33,6 @@ class SPItem; class SPBox3D; class Persp3D; -typedef std::list SelContainer; - namespace Inkscape { class LayerModel; namespace XML { diff --git a/src/sp-object.h b/src/sp-object.h index 1f3032a52..7c189b01b 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -64,9 +64,6 @@ class SPCSSAttr; class SPStyle; typedef struct _GSList GSList; -//should be in selection.h -typedef std::list SelContainer; - namespace Inkscape { -- cgit v1.2.3 From bd56e405a51d1ce31272120db6fc211fd7f88b1d Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Mon, 23 Feb 2015 23:39:23 +0100 Subject: should replace buggy pot file (bzr r13922.1.9) --- po/inkscape.pot | 899 +++++++++++++++++++++++++------------------------------- 1 file changed, 396 insertions(+), 503 deletions(-) diff --git a/po/inkscape.pot b/po/inkscape.pot index ae7f68e6d..9c74dc340 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: 2015-02-21 16:58+0100\n" +"POT-Creation-Date: 2015-01-28 11:25+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4411,20 +4411,20 @@ msgstr "" msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "" -#: ../src/desktop-events.cpp:242 +#: ../src/desktop-events.cpp:236 msgid "Create guide" msgstr "" -#: ../src/desktop-events.cpp:498 +#: ../src/desktop-events.cpp:492 msgid "Move guide" msgstr "" -#: ../src/desktop-events.cpp:505 ../src/desktop-events.cpp:563 +#: ../src/desktop-events.cpp:499 ../src/desktop-events.cpp:557 #: ../src/ui/dialog/guides.cpp:138 msgid "Delete guide" msgstr "" -#: ../src/desktop-events.cpp:543 +#: ../src/desktop-events.cpp:537 #, c-format msgid "Guideline: %s" msgstr "" @@ -4437,92 +4437,92 @@ msgstr "" msgid "No next zoom." msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-axonomgrid.cpp:353 ../src/display/canvas-grid.cpp:693 msgid "Grid _units:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 msgid "_Origin X:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 #: ../src/ui/dialog/inkscape-preferences.cpp:746 #: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "X coordinate of grid origin" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 msgid "O_rigin Y:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 #: ../src/ui/dialog/inkscape-preferences.cpp:747 #: ../src/ui/dialog/inkscape-preferences.cpp:772 msgid "Y coordinate of grid origin" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 +#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:704 msgid "Spacing _Y:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:369 +#: ../src/display/canvas-axonomgrid.cpp:361 #: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Base length of z-axis" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/display/canvas-axonomgrid.cpp:364 #: ../src/ui/dialog/inkscape-preferences.cpp:778 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/display/canvas-axonomgrid.cpp:364 #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/display/canvas-axonomgrid.cpp:366 #: ../src/ui/dialog/inkscape-preferences.cpp:779 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/display/canvas-axonomgrid.cpp:366 #: ../src/ui/dialog/inkscape-preferences.cpp:779 msgid "Angle of z-axis" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 msgid "Minor grid line _color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 #: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Minor grid line color" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 msgid "Color of the minor grid lines" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 msgid "Ma_jor grid line color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 #: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Major grid line color" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 +#: ../src/display/canvas-axonomgrid.cpp:376 ../src/display/canvas-grid.cpp:715 msgid "Color of the major (highlighted) grid lines" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 msgid "_Major grid line every:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 msgid "lines" msgstr "" @@ -4568,25 +4568,25 @@ msgid "" "to invisible grids." msgstr "" -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:701 msgid "Spacing _X:" msgstr "" -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:701 #: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "Distance between vertical grid lines" msgstr "" -#: ../src/display/canvas-grid.cpp:712 +#: ../src/display/canvas-grid.cpp:704 #: ../src/ui/dialog/inkscape-preferences.cpp:753 msgid "Distance between horizontal grid lines" msgstr "" -#: ../src/display/canvas-grid.cpp:744 +#: ../src/display/canvas-grid.cpp:736 msgid "_Show dots instead of lines" msgstr "" -#: ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-grid.cpp:737 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "" @@ -4810,7 +4810,7 @@ msgstr "" msgid "Memory document %1" msgstr "" -#: ../src/document.cpp:855 +#: ../src/document.cpp:839 #, c-format msgid "Unnamed document %d" msgstr "" @@ -5788,79 +5788,79 @@ msgstr "" msgid "Open presentation exchange files saved in Corel DRAW" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3562 +#: ../src/extension/internal/emf-inout.cpp:3553 msgid "EMF Input" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3558 msgid "Enhanced Metafiles (*.emf)" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3568 +#: ../src/extension/internal/emf-inout.cpp:3559 msgid "Enhanced Metafiles" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3576 +#: ../src/extension/internal/emf-inout.cpp:3567 msgid "EMF Output" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3578 -#: ../src/extension/internal/wmf-inout.cpp:3152 +#: ../src/extension/internal/emf-inout.cpp:3569 +#: ../src/extension/internal/wmf-inout.cpp:3144 msgid "Convert texts to paths" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3579 -#: ../src/extension/internal/wmf-inout.cpp:3153 +#: ../src/extension/internal/emf-inout.cpp:3570 +#: ../src/extension/internal/wmf-inout.cpp:3145 msgid "Map Unicode to Symbol font" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3580 -#: ../src/extension/internal/wmf-inout.cpp:3154 +#: ../src/extension/internal/emf-inout.cpp:3571 +#: ../src/extension/internal/wmf-inout.cpp:3146 msgid "Map Unicode to Wingdings" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3581 -#: ../src/extension/internal/wmf-inout.cpp:3155 +#: ../src/extension/internal/emf-inout.cpp:3572 +#: ../src/extension/internal/wmf-inout.cpp:3147 msgid "Map Unicode to Zapf Dingbats" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3582 -#: ../src/extension/internal/wmf-inout.cpp:3156 +#: ../src/extension/internal/emf-inout.cpp:3573 +#: ../src/extension/internal/wmf-inout.cpp:3148 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3583 -#: ../src/extension/internal/wmf-inout.cpp:3157 +#: ../src/extension/internal/emf-inout.cpp:3574 +#: ../src/extension/internal/wmf-inout.cpp:3149 msgid "Compensate for PPT font bug" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3584 -#: ../src/extension/internal/wmf-inout.cpp:3158 +#: ../src/extension/internal/emf-inout.cpp:3575 +#: ../src/extension/internal/wmf-inout.cpp:3150 msgid "Convert dashed/dotted lines to single lines" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3585 -#: ../src/extension/internal/wmf-inout.cpp:3159 +#: ../src/extension/internal/emf-inout.cpp:3576 +#: ../src/extension/internal/wmf-inout.cpp:3151 msgid "Convert gradients to colored polygon series" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3586 +#: ../src/extension/internal/emf-inout.cpp:3577 msgid "Use native rectangular linear gradients" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3587 +#: ../src/extension/internal/emf-inout.cpp:3578 msgid "Map all fill patterns to standard EMF hatches" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3588 +#: ../src/extension/internal/emf-inout.cpp:3579 msgid "Ignore image rotations" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3592 +#: ../src/extension/internal/emf-inout.cpp:3583 msgid "Enhanced Metafile (*.emf)" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3593 +#: ../src/extension/internal/emf-inout.cpp:3584 msgid "Enhanced Metafile" msgstr "" @@ -5946,7 +5946,6 @@ msgstr "" #: ../src/extension/internal/filter/transparency.h:287 #: ../src/extension/internal/filter/transparency.h:349 #: ../src/ui/dialog/inkscape-preferences.cpp:1751 -#, c-format msgid "Filters" msgstr "" @@ -6725,7 +6724,7 @@ msgstr "" #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 #: ../src/live_effects/effect.cpp:110 #: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1156 msgid "Offset" msgstr "" @@ -7158,7 +7157,7 @@ msgstr "" #: ../src/extension/internal/filter/overlays.h:59 #: ../src/extension/internal/filter/paint.h:690 -#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:88 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 #: ../src/ui/dialog/tracedialog.cpp:747 #: ../share/extensions/color_HSL_adjust.inx.h:2 #: ../share/extensions/color_custom.inx.h:2 @@ -7629,12 +7628,10 @@ msgid "%s bitmap image import" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:190 -#, c-format msgid "Image Import Type:" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:190 -#, c-format msgid "" "Embed results in stand-alone, larger SVG files. Link references a file " "outside this SVG document and all files must be moved together." @@ -7642,45 +7639,37 @@ msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:191 #: ../src/ui/dialog/inkscape-preferences.cpp:1456 -#, c-format msgid "Embed" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:192 ../src/sp-anchor.cpp:119 #: ../src/ui/dialog/inkscape-preferences.cpp:1456 -#, c-format msgid "Link" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:195 -#, c-format msgid "Image DPI:" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:195 -#, c-format msgid "" "Take information from file or use default bitmap import resolution as " "defined in the preferences." msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:196 -#, c-format msgid "From file" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:197 -#, c-format msgid "Default import resolution" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:200 -#, c-format msgid "Image Rendering Mode:" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:200 -#, c-format msgid "" "When an image is upscaled, apply smoothing or keep blocky (pixelated). (Will " "not work in all browsers.)" @@ -7688,29 +7677,24 @@ msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:201 #: ../src/ui/dialog/inkscape-preferences.cpp:1463 -#, c-format msgid "None (auto)" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:202 #: ../src/ui/dialog/inkscape-preferences.cpp:1463 -#, c-format msgid "Smooth (optimizeQuality)" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:203 #: ../src/ui/dialog/inkscape-preferences.cpp:1463 -#, c-format msgid "Blocky (optimizeSpeed)" msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:206 -#, c-format msgid "Hide the dialog next time and always apply the same actions." msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:206 -#, c-format msgid "Don't ask again" msgstr "" @@ -7784,7 +7768,7 @@ msgstr "" #: ../src/extension/internal/grid.cpp:223 #: ../src/ui/dialog/document-properties.cpp:155 #: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1825 msgid "Grids" msgstr "" @@ -8072,33 +8056,33 @@ msgstr "" msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3136 +#: ../src/extension/internal/wmf-inout.cpp:3128 msgid "WMF Input" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3141 +#: ../src/extension/internal/wmf-inout.cpp:3133 msgid "Windows Metafiles (*.wmf)" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3142 +#: ../src/extension/internal/wmf-inout.cpp:3134 msgid "Windows Metafiles" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/wmf-inout.cpp:3142 msgid "WMF Output" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3160 +#: ../src/extension/internal/wmf-inout.cpp:3152 msgid "Map all fill patterns to standard WMF hatches" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3164 +#: ../src/extension/internal/wmf-inout.cpp:3156 #: ../share/extensions/wmf_input.inx.h:2 #: ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3165 +#: ../src/extension/internal/wmf-inout.cpp:3157 msgid "Windows Metafile" msgstr "" @@ -8361,7 +8345,7 @@ msgstr "" msgid "Luminance to Alpha" msgstr "" -#: ../src/filter-enums.cpp:87 ../src/widgets/mesh-toolbar.cpp:476 +#: ../src/filter-enums.cpp:87 #: ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 msgid "Default" @@ -9175,7 +9159,7 @@ msgstr "" msgid "Fill between strokes" msgstr "" -#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2916 +#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2926 msgid "Fill between many" msgstr "" @@ -9764,7 +9748,7 @@ msgstr "" #: ../src/live_effects/lpe-jointype.cpp:34 #: ../src/live_effects/lpe-taperstroke.cpp:65 -#: ../src/widgets/gradient-toolbar.cpp:1118 +#: ../src/widgets/gradient-toolbar.cpp:1115 msgid "Reflected" msgstr "" @@ -11013,7 +10997,7 @@ msgid "Select original" msgstr "" #: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/widgets/gradient-toolbar.cpp:1202 msgid "Reverse" msgstr "" @@ -11464,7 +11448,7 @@ msgstr "" msgid "_Path" msgstr "" -#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:78 +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:77 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "" @@ -11666,10 +11650,8 @@ msgstr "" msgid "Open Font License" 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:1952 -#: ../src/ui/dialog/object-attributes.cpp:57 +#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "" @@ -11823,9 +11805,9 @@ msgstr "" #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 #: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:974 #: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1181 -#: ../src/widgets/gradient-toolbar.cpp:1195 -#: ../src/widgets/gradient-toolbar.cpp:1209 +#: ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1192 +#: ../src/widgets/gradient-toolbar.cpp:1206 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "" @@ -11855,7 +11837,7 @@ msgstr "" msgid "No groups to ungroup in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:585 +#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:571 msgid "Ungroup" msgstr "" @@ -11946,274 +11928,274 @@ msgstr "" msgid "Paste size separately" msgstr "" -#: ../src/selection-chemistry.cpp:1349 +#: ../src/selection-chemistry.cpp:1330 msgid "Select object(s) to move to the layer above." msgstr "" -#: ../src/selection-chemistry.cpp:1376 +#: ../src/selection-chemistry.cpp:1356 msgid "Raise to next layer" msgstr "" -#: ../src/selection-chemistry.cpp:1383 +#: ../src/selection-chemistry.cpp:1363 msgid "No more layers above." msgstr "" -#: ../src/selection-chemistry.cpp:1395 +#: ../src/selection-chemistry.cpp:1375 msgid "Select object(s) to move to the layer below." msgstr "" -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1401 msgid "Lower to previous layer" msgstr "" -#: ../src/selection-chemistry.cpp:1429 +#: ../src/selection-chemistry.cpp:1408 msgid "No more layers below." msgstr "" -#: ../src/selection-chemistry.cpp:1441 +#: ../src/selection-chemistry.cpp:1420 msgid "Select object(s) to move." msgstr "" -#: ../src/selection-chemistry.cpp:1459 ../src/verbs.cpp:2656 +#: ../src/selection-chemistry.cpp:1437 ../src/verbs.cpp:2656 msgid "Move selection to layer" msgstr "" #. An SVG element cannot have a transform. We could change 'x' and 'y' in response #. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1549 ../src/seltrans.cpp:388 +#: ../src/selection-chemistry.cpp:1527 ../src/seltrans.cpp:388 msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1720 +#: ../src/selection-chemistry.cpp:1698 msgid "Remove transform" msgstr "" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1805 msgid "Rotate 90° CCW" msgstr "" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1805 msgid "Rotate 90° CW" msgstr "" -#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 +#: ../src/selection-chemistry.cpp:1826 ../src/seltrans.cpp:483 #: ../src/ui/dialog/transformation.cpp:893 msgid "Rotate" msgstr "" -#: ../src/selection-chemistry.cpp:2204 +#: ../src/selection-chemistry.cpp:2214 msgid "Rotate by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 +#: ../src/selection-chemistry.cpp:2244 ../src/seltrans.cpp:480 #: ../src/ui/dialog/transformation.cpp:868 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "" -#: ../src/selection-chemistry.cpp:2259 +#: ../src/selection-chemistry.cpp:2269 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2274 +#: ../src/selection-chemistry.cpp:2284 msgid "Move vertically" msgstr "" -#: ../src/selection-chemistry.cpp:2277 +#: ../src/selection-chemistry.cpp:2287 msgid "Move horizontally" msgstr "" -#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 +#: ../src/selection-chemistry.cpp:2290 ../src/selection-chemistry.cpp:2316 #: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 msgid "Move" msgstr "" -#: ../src/selection-chemistry.cpp:2300 +#: ../src/selection-chemistry.cpp:2310 msgid "Move vertically by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2303 +#: ../src/selection-chemistry.cpp:2313 msgid "Move horizontally by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2435 +#: ../src/selection-chemistry.cpp:2445 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2617 ../src/ui/dialog/clonetiler.cpp:2223 msgid "Select an object to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2643 +#: ../src/selection-chemistry.cpp:2653 msgctxt "Action" msgid "Clone" msgstr "" -#: ../src/selection-chemistry.cpp:2659 +#: ../src/selection-chemistry.cpp:2669 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2666 +#: ../src/selection-chemistry.cpp:2676 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2689 +#: ../src/selection-chemistry.cpp:2699 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2692 +#: ../src/selection-chemistry.cpp:2702 msgid "Relink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2706 +#: ../src/selection-chemistry.cpp:2716 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2762 +#: ../src/selection-chemistry.cpp:2772 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2766 +#: ../src/selection-chemistry.cpp:2776 msgid "Unlink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2779 +#: ../src/selection-chemistry.cpp:2789 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:2827 +#: ../src/selection-chemistry.cpp:2837 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2833 +#: ../src/selection-chemistry.cpp:2843 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -#: ../src/selection-chemistry.cpp:2922 +#: ../src/selection-chemistry.cpp:2932 msgid "Select path(s) to fill." msgstr "" -#: ../src/selection-chemistry.cpp:2940 +#: ../src/selection-chemistry.cpp:2950 msgid "Select object(s) to convert to marker." msgstr "" -#: ../src/selection-chemistry.cpp:3015 +#: ../src/selection-chemistry.cpp:3025 msgid "Objects to marker" msgstr "" -#: ../src/selection-chemistry.cpp:3040 +#: ../src/selection-chemistry.cpp:3050 msgid "Select object(s) to convert to guides." msgstr "" -#: ../src/selection-chemistry.cpp:3063 +#: ../src/selection-chemistry.cpp:3073 msgid "Objects to guides" msgstr "" -#: ../src/selection-chemistry.cpp:3099 +#: ../src/selection-chemistry.cpp:3109 msgid "Select objects to convert to symbol." msgstr "" -#: ../src/selection-chemistry.cpp:3202 +#: ../src/selection-chemistry.cpp:3212 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3221 +#: ../src/selection-chemistry.cpp:3231 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3230 +#: ../src/selection-chemistry.cpp:3240 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3288 +#: ../src/selection-chemistry.cpp:3298 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3306 +#: ../src/selection-chemistry.cpp:3316 msgid "Select object(s) to convert to pattern." msgstr "" -#: ../src/selection-chemistry.cpp:3405 +#: ../src/selection-chemistry.cpp:3415 msgid "Objects to pattern" msgstr "" -#: ../src/selection-chemistry.cpp:3421 +#: ../src/selection-chemistry.cpp:3431 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3482 +#: ../src/selection-chemistry.cpp:3492 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3485 +#: ../src/selection-chemistry.cpp:3495 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3576 +#: ../src/selection-chemistry.cpp:3586 msgid "Select object(s) to make a bitmap copy." msgstr "" -#: ../src/selection-chemistry.cpp:3580 +#: ../src/selection-chemistry.cpp:3590 msgid "Rendering bitmap..." msgstr "" -#: ../src/selection-chemistry.cpp:3767 +#: ../src/selection-chemistry.cpp:3777 msgid "Create bitmap" msgstr "" -#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 +#: ../src/selection-chemistry.cpp:3802 ../src/selection-chemistry.cpp:3921 msgid "Select object(s) to create clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:3885 +#: ../src/selection-chemistry.cpp:3895 msgid "Create Clip Group" msgstr "" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:3924 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:4095 +#: ../src/selection-chemistry.cpp:4105 msgid "Set clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4097 +#: ../src/selection-chemistry.cpp:4107 msgid "Set mask" msgstr "" -#: ../src/selection-chemistry.cpp:4112 +#: ../src/selection-chemistry.cpp:4122 msgid "Select object(s) to remove clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:4232 +#: ../src/selection-chemistry.cpp:4242 msgid "Release clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4234 +#: ../src/selection-chemistry.cpp:4244 msgid "Release mask" msgstr "" -#: ../src/selection-chemistry.cpp:4253 +#: ../src/selection-chemistry.cpp:4263 msgid "Select object(s) to fit canvas to." msgstr "" #. Fit Page -#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4283 ../src/verbs.cpp:2992 msgid "Fit Page to Selection" msgstr "" -#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4312 ../src/verbs.cpp:2994 msgid "Fit Page to Drawing" msgstr "" -#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4333 ../src/verbs.cpp:2996 msgid "Fit Page to Selection or Drawing" msgstr "" @@ -12460,36 +12442,36 @@ msgid_plural "(%d characters%s)" msgstr[0] "" msgstr[1] "" -#: ../src/sp-guide.cpp:256 +#: ../src/sp-guide.cpp:249 msgid "Create Guides Around the Page" msgstr "" -#: ../src/sp-guide.cpp:268 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:261 ../src/verbs.cpp:2549 msgid "Delete All Guides" msgstr "" #. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:455 +#: ../src/sp-guide.cpp:448 msgid "Deleted" msgstr "" -#: ../src/sp-guide.cpp:464 +#: ../src/sp-guide.cpp:457 msgid "" "Shift+drag to rotate, Ctrl+drag to move origin, Del to " "delete" msgstr "" -#: ../src/sp-guide.cpp:468 +#: ../src/sp-guide.cpp:461 #, c-format msgid "vertical, at %s" msgstr "" -#: ../src/sp-guide.cpp:471 +#: ../src/sp-guide.cpp:464 #, c-format msgid "horizontal, at %s" msgstr "" -#: ../src/sp-guide.cpp:476 +#: ../src/sp-guide.cpp:469 #, c-format msgid "at %d degrees, through (%s,%s)" msgstr "" @@ -13106,7 +13088,7 @@ msgid "Rearrange" msgstr "" #: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/widgets/toolbox.cpp:1727 msgid "Nodes" msgstr "" @@ -13978,19 +13960,19 @@ msgstr "" msgid "Creating tiled clones..." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2654 +#: ../src/ui/dialog/clonetiler.cpp:2651 msgid "Create tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2887 +#: ../src/ui/dialog/clonetiler.cpp:2884 msgid "Per row:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2905 +#: ../src/ui/dialog/clonetiler.cpp:2902 msgid "Per column:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2913 +#: ../src/ui/dialog/clonetiler.cpp:2910 msgid "Randomize:" msgstr "" @@ -14285,7 +14267,7 @@ msgid "Remove selected grid." msgstr "" #: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1834 msgid "Guides" msgstr "" @@ -15511,308 +15493,308 @@ msgstr "" msgid "Set filter primitive attribute" msgstr "" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:71 msgid "F_ind:" msgstr "" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:71 msgid "Find objects by their content or properties (exact or partial match)" msgstr "" -#: ../src/ui/dialog/find.cpp:73 +#: ../src/ui/dialog/find.cpp:72 msgid "R_eplace:" msgstr "" -#: ../src/ui/dialog/find.cpp:73 +#: ../src/ui/dialog/find.cpp:72 msgid "Replace match with this value" msgstr "" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:74 msgid "_All" msgstr "" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:74 msgid "Search in all layers" msgstr "" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:75 msgid "Current _layer" msgstr "" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:75 msgid "Limit search to the current layer" msgstr "" -#: ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/find.cpp:76 msgid "Sele_ction" msgstr "" -#: ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/find.cpp:76 msgid "Limit search to the current selection" msgstr "" -#: ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/find.cpp:77 msgid "Search in text objects" msgstr "" -#: ../src/ui/dialog/find.cpp:79 +#: ../src/ui/dialog/find.cpp:78 msgid "_Properties" msgstr "" -#: ../src/ui/dialog/find.cpp:79 +#: ../src/ui/dialog/find.cpp:78 msgid "Search in object properties, styles, attributes and IDs" msgstr "" -#: ../src/ui/dialog/find.cpp:81 +#: ../src/ui/dialog/find.cpp:80 msgid "Search in" msgstr "" -#: ../src/ui/dialog/find.cpp:82 +#: ../src/ui/dialog/find.cpp:81 msgid "Scope" msgstr "" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:83 msgid "Case sensiti_ve" msgstr "" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:83 msgid "Match upper/lower case" msgstr "" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:84 msgid "E_xact match" msgstr "" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:84 msgid "Match whole objects only" msgstr "" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:85 msgid "Include _hidden" msgstr "" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:85 msgid "Include hidden objects in search" msgstr "" -#: ../src/ui/dialog/find.cpp:87 +#: ../src/ui/dialog/find.cpp:86 msgid "Include loc_ked" msgstr "" -#: ../src/ui/dialog/find.cpp:87 +#: ../src/ui/dialog/find.cpp:86 msgid "Include locked objects in search" msgstr "" -#: ../src/ui/dialog/find.cpp:89 +#: ../src/ui/dialog/find.cpp:88 msgid "General" msgstr "" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:90 msgid "_ID" msgstr "" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:90 msgid "Search id name" msgstr "" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:91 msgid "Attribute _name" msgstr "" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:91 msgid "Search attribute name" msgstr "" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:92 msgid "Attri_bute value" msgstr "" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:92 msgid "Search attribute value" msgstr "" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:93 msgid "_Style" msgstr "" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:93 msgid "Search style" msgstr "" -#: ../src/ui/dialog/find.cpp:95 +#: ../src/ui/dialog/find.cpp:94 msgid "F_ont" msgstr "" -#: ../src/ui/dialog/find.cpp:95 +#: ../src/ui/dialog/find.cpp:94 msgid "Search fonts" msgstr "" -#: ../src/ui/dialog/find.cpp:96 +#: ../src/ui/dialog/find.cpp:95 msgid "Properties" msgstr "" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:97 msgid "All types" msgstr "" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:97 msgid "Search all object types" msgstr "" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:98 msgid "Rectangles" msgstr "" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:98 msgid "Search rectangles" msgstr "" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:99 msgid "Ellipses" msgstr "" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:99 msgid "Search ellipses, arcs, circles" msgstr "" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:100 msgid "Stars" msgstr "" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:100 msgid "Search stars and polygons" msgstr "" -#: ../src/ui/dialog/find.cpp:102 +#: ../src/ui/dialog/find.cpp:101 msgid "Spirals" msgstr "" -#: ../src/ui/dialog/find.cpp:102 +#: ../src/ui/dialog/find.cpp:101 msgid "Search spirals" msgstr "" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 +#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1735 msgid "Paths" msgstr "" -#: ../src/ui/dialog/find.cpp:103 +#: ../src/ui/dialog/find.cpp:102 msgid "Search paths, lines, polylines" msgstr "" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:103 msgid "Texts" msgstr "" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:103 msgid "Search text objects" msgstr "" -#: ../src/ui/dialog/find.cpp:105 +#: ../src/ui/dialog/find.cpp:104 msgid "Groups" msgstr "" -#: ../src/ui/dialog/find.cpp:105 +#: ../src/ui/dialog/find.cpp:104 msgid "Search groups" msgstr "" #. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:108 +#: ../src/ui/dialog/find.cpp:107 msgctxt "Find dialog" msgid "Clones" msgstr "" -#: ../src/ui/dialog/find.cpp:108 +#: ../src/ui/dialog/find.cpp:107 msgid "Search clones" msgstr "" -#: ../src/ui/dialog/find.cpp:110 ../share/extensions/embedimage.inx.h:3 +#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 #: ../share/extensions/extractimage.inx.h:5 msgid "Images" msgstr "" -#: ../src/ui/dialog/find.cpp:110 +#: ../src/ui/dialog/find.cpp:109 msgid "Search images" msgstr "" -#: ../src/ui/dialog/find.cpp:111 +#: ../src/ui/dialog/find.cpp:110 msgid "Offsets" msgstr "" -#: ../src/ui/dialog/find.cpp:111 +#: ../src/ui/dialog/find.cpp:110 msgid "Search offset objects" msgstr "" -#: ../src/ui/dialog/find.cpp:112 +#: ../src/ui/dialog/find.cpp:111 msgid "Object types" msgstr "" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:114 msgid "_Find" msgstr "" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:114 msgid "Select all objects matching the selection criteria" msgstr "" -#: ../src/ui/dialog/find.cpp:116 +#: ../src/ui/dialog/find.cpp:115 msgid "_Replace All" msgstr "" -#: ../src/ui/dialog/find.cpp:116 +#: ../src/ui/dialog/find.cpp:115 msgid "Replace all matches" msgstr "" -#: ../src/ui/dialog/find.cpp:801 +#: ../src/ui/dialog/find.cpp:797 msgid "Nothing to replace" msgstr "" #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:842 +#: ../src/ui/dialog/find.cpp:838 #, c-format msgid "%d object found (out of %d), %s match." msgid_plural "%d objects found (out of %d), %s match." msgstr[0] "" msgstr[1] "" -#: ../src/ui/dialog/find.cpp:845 +#: ../src/ui/dialog/find.cpp:841 msgid "exact" msgstr "" -#: ../src/ui/dialog/find.cpp:845 +#: ../src/ui/dialog/find.cpp:841 msgid "partial" msgstr "" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:848 +#: ../src/ui/dialog/find.cpp:844 msgid "%1 match replaced" msgid_plural "%1 matches replaced" msgstr[0] "" msgstr[1] "" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:852 +#: ../src/ui/dialog/find.cpp:848 msgid "%1 object found" msgid_plural "%1 objects found" msgstr[0] "" msgstr[1] "" -#: ../src/ui/dialog/find.cpp:866 +#: ../src/ui/dialog/find.cpp:862 msgid "Replace text or property" msgstr "" -#: ../src/ui/dialog/find.cpp:870 +#: ../src/ui/dialog/find.cpp:866 msgid "Nothing found" msgstr "" -#: ../src/ui/dialog/find.cpp:875 +#: ../src/ui/dialog/find.cpp:871 msgid "No objects found" msgstr "" -#: ../src/ui/dialog/find.cpp:896 +#: ../src/ui/dialog/find.cpp:892 msgid "Select an object type" msgstr "" -#: ../src/ui/dialog/find.cpp:914 +#: ../src/ui/dialog/find.cpp:910 msgid "Select a property" msgstr "" @@ -19056,7 +19038,7 @@ msgid "_Bitmap editor:" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:57 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "" @@ -19132,7 +19114,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1494 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added separately to " +"create will be added seperately to " msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1497 @@ -19376,7 +19358,7 @@ msgid "Link:" msgstr "" #: ../src/ui/dialog/input.cpp:742 ../src/ui/dialog/input.cpp:743 -#: ../src/ui/dialog/input.cpp:1571 ../src/widgets/mesh-toolbar.cpp:499 +#: ../src/ui/dialog/input.cpp:1571 msgid "None" msgstr "" @@ -21381,94 +21363,94 @@ msgstr "" msgid "Check Spellin_g..." msgstr "" -#: ../src/ui/object-edit.cpp:464 +#: ../src/ui/object-edit.cpp:456 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" msgstr "" -#: ../src/ui/object-edit.cpp:469 +#: ../src/ui/object-edit.cpp:461 msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" msgstr "" -#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 +#: ../src/ui/object-edit.cpp:466 ../src/ui/object-edit.cpp:471 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:718 ../src/ui/object-edit.cpp:722 #: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 -#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 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:734 ../src/ui/object-edit.cpp:738 #: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 -#: ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 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:758 +#: ../src/ui/object-edit.cpp:750 msgid "Move the box in perspective" msgstr "" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:989 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1001 +#: ../src/ui/object-edit.cpp:993 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1005 +#: ../src/ui/object-edit.cpp:997 msgid "" "Position the start point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" -#: ../src/ui/object-edit.cpp:1010 +#: ../src/ui/object-edit.cpp:1002 msgid "" "Position the end point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" -#: ../src/ui/object-edit.cpp:1156 +#: ../src/ui/object-edit.cpp:1148 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" msgstr "" -#: ../src/ui/object-edit.cpp:1164 +#: ../src/ui/object-edit.cpp:1156 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:1359 +#: ../src/ui/object-edit.cpp:1351 msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" msgstr "" -#: ../src/ui/object-edit.cpp:1363 +#: ../src/ui/object-edit.cpp:1355 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:1410 +#: ../src/ui/object-edit.cpp:1402 msgid "Adjust the offset distance" msgstr "" -#: ../src/ui/object-edit.cpp:1447 +#: ../src/ui/object-edit.cpp:1439 msgid "Drag to resize the flowed text frame" msgstr "" @@ -23046,10 +23028,6 @@ msgstr "" msgid "MetadataLicence|Other" msgstr "" -#: ../src/ui/widget/licensor.cpp:72 -msgid "Document license updated" -msgstr "" - #: ../src/ui/widget/object-composite-settings.cpp:47 #: ../src/ui/widget/selected-style.cpp:1119 #: ../src/ui/widget/selected-style.cpp:1120 @@ -23707,8 +23685,8 @@ msgstr[1] "" msgid "" "shared by %d box; drag with Shift to separate selected box(es)" msgid_plural "" -"shared by %d boxes; drag with Shift to separate selected " -"box(es)" +"shared by %d boxes; drag with Shift to separate selected box" +"(es)" msgstr[0] "" msgstr[1] "" @@ -26747,110 +26725,110 @@ msgstr "" #: ../src/widgets/gradient-toolbar.cpp:156 #: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:758 -#: ../src/widgets/gradient-toolbar.cpp:1097 +#: ../src/widgets/gradient-toolbar.cpp:756 +#: ../src/widgets/gradient-toolbar.cpp:1094 msgid "No gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:176 +#: ../src/widgets/gradient-toolbar.cpp:175 msgid "Multiple gradients" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:678 +#: ../src/widgets/gradient-toolbar.cpp:676 msgid "Multiple stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:776 +#: ../src/widgets/gradient-toolbar.cpp:774 #: ../src/widgets/gradient-vector.cpp:609 msgid "No stops in gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:930 +#: ../src/widgets/gradient-toolbar.cpp:927 msgid "Assign gradient to object" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:952 +#: ../src/widgets/gradient-toolbar.cpp:949 msgid "Set gradient repeat" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:990 +#: ../src/widgets/gradient-toolbar.cpp:987 #: ../src/widgets/gradient-vector.cpp:720 msgid "Change gradient stop offset" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1034 msgid "linear" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1034 msgid "Create linear gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1038 msgid "radial" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1038 msgid "Create radial (elliptic or circular) gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1044 -#: ../src/widgets/mesh-toolbar.cpp:341 +#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/mesh-toolbar.cpp:207 msgid "New:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1064 +#: ../src/widgets/mesh-toolbar.cpp:230 msgid "fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1064 +#: ../src/widgets/mesh-toolbar.cpp:230 msgid "Create gradient in the fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1068 +#: ../src/widgets/mesh-toolbar.cpp:234 msgid "stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1068 +#: ../src/widgets/mesh-toolbar.cpp:234 msgid "Create gradient in the stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1074 -#: ../src/widgets/mesh-toolbar.cpp:371 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:237 msgid "on:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1096 msgid "Select" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1096 msgid "Choose a gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1100 +#: ../src/widgets/gradient-toolbar.cpp:1097 msgid "Select:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1112 msgctxt "Gradient repeat type" msgid "None" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1121 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgid "Direct" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1123 +#: ../src/widgets/gradient-toolbar.cpp:1120 msgid "Repeat" msgstr "" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1125 +#: ../src/widgets/gradient-toolbar.cpp:1122 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -26858,57 +26836,57 @@ msgid "" "directions (spreadMethod=\"reflect\")" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1130 +#: ../src/widgets/gradient-toolbar.cpp:1127 msgid "Repeat:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1141 msgid "No stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1143 msgid "Stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1143 msgid "Select a stop for the current gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1147 +#: ../src/widgets/gradient-toolbar.cpp:1144 msgid "Stops:" msgstr "" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1156 #: ../src/widgets/gradient-vector.cpp:906 msgctxt "Gradient" msgid "Offset:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1156 msgid "Offset of selected stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1177 -#: ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1174 +#: ../src/widgets/gradient-toolbar.cpp:1175 msgid "Insert new stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1191 -#: ../src/widgets/gradient-toolbar.cpp:1192 +#: ../src/widgets/gradient-toolbar.cpp:1188 +#: ../src/widgets/gradient-toolbar.cpp:1189 #: ../src/widgets/gradient-vector.cpp:888 msgid "Delete stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1203 msgid "Reverse the direction of the gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1220 +#: ../src/widgets/gradient-toolbar.cpp:1217 msgid "Link gradients" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1221 +#: ../src/widgets/gradient-toolbar.cpp:1218 msgid "Link gradients to change all related gradients" msgstr "" @@ -27038,122 +27016,73 @@ msgstr "" msgid "The units to be used for the measurements" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:311 -msgid "Set mesh smoothing" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:200 msgid "normal" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:200 msgid "Create mesh gradient" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:204 msgid "conical" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:204 msgid "Create conical gradient" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:259 msgid "Rows" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:259 #: ../share/extensions/guides_creator.inx.h:5 #: ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:259 msgid "Number of rows in new mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:275 msgid "Columns" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:275 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:275 msgid "Number of columns in new mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:423 +#: ../src/widgets/mesh-toolbar.cpp:289 msgid "Edit Fill" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:424 +#: ../src/widgets/mesh-toolbar.cpp:290 msgid "Edit fill mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:435 +#: ../src/widgets/mesh-toolbar.cpp:301 msgid "Edit Stroke" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:436 +#: ../src/widgets/mesh-toolbar.cpp:302 msgid "Edit stroke mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:313 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:448 +#: ../src/widgets/mesh-toolbar.cpp:314 msgid "Show side and tensor handles" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:463 -msgid "WARNING: Mesh SVG Syntax Subject to Change, Smoothing Experimental" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:473 -msgctxt "Smoothing" -msgid "None" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:479 -msgid "Smooth1" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:482 -msgid "Smooth2" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:485 -msgid "Smooth3" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:488 -msgid "Smooth4" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:491 -msgid "Smooth5" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:494 -msgid "Smooth6" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:497 -msgid "Smooth7" -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:500 -msgid "If the mesh should be smoothed across patch boundaries." -msgstr "" - -#: ../src/widgets/mesh-toolbar.cpp:502 ../src/widgets/pencil-toolbar.cpp:278 -msgid "Smoothing:" -msgstr "" - #: ../src/widgets/node-toolbar.cpp:341 msgid "Insert node" msgstr "" @@ -27555,6 +27484,10 @@ msgstr "" msgid "(few nodes, smooth)" msgstr "" +#: ../src/widgets/pencil-toolbar.cpp:278 +msgid "Smoothing:" +msgstr "" + #: ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing: " msgstr "" @@ -28713,131 +28646,131 @@ msgstr "" msgid "Style of Paint Bucket fill objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1681 msgid "Bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1681 msgid "Snap bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1690 msgid "Bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1690 msgid "Snap to edges of a bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1699 msgid "Bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1699 msgid "Snap bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1708 msgid "BBox Edge Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1708 msgid "Snap midpoints of bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1718 msgid "BBox Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1718 msgid "Snapping centers of bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/widgets/toolbox.cpp:1727 msgid "Snap nodes, paths, and handles" msgstr "" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1735 msgid "Snap to paths" msgstr "" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1744 msgid "Path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1744 msgid "Snap to path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1753 msgid "To nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1753 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1762 msgid "Smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1762 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1771 msgid "Line Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1771 msgid "Snap midpoints of line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1780 msgid "Others" msgstr "" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1780 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1788 msgid "Object Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1788 msgid "Snap centers of objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1797 msgid "Rotation Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1797 msgid "Snap an item's rotation center" msgstr "" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1806 msgid "Text baseline" msgstr "" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1806 msgid "Snap text anchors and baselines" msgstr "" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1816 msgid "Page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1816 msgid "Snap to the page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1825 msgid "Snap to grids" msgstr "" -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1834 msgid "Snap guides" msgstr "" @@ -29155,14 +29088,11 @@ msgid "Need at least 2 paths selected" msgstr "" #: ../share/extensions/funcplot.py:48 -msgid "" -"x-interval cannot be zero. Please modify 'Start X value' or 'End X alue'" +msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" msgstr "" #: ../share/extensions/funcplot.py:60 -msgid "" -"y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " -"value of rectangle's bottom'" +msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" msgstr "" #: ../share/extensions/funcplot.py:315 @@ -29392,18 +29322,14 @@ msgid "Please select an object" msgstr "" #: ../share/extensions/gimp_xcf.py:39 -msgid "Inkscape must be installed and set in your path variable." -msgstr "" - -#: ../share/extensions/gimp_xcf.py:43 msgid "Gimp must be installed and set in your path variable." msgstr "" -#: ../share/extensions/gimp_xcf.py:47 +#: ../share/extensions/gimp_xcf.py:43 msgid "An error occurred while processing the XCF file." msgstr "" -#: ../share/extensions/gimp_xcf.py:185 +#: ../share/extensions/gimp_xcf.py:177 msgid "This extension requires at least one non empty layer." msgstr "" @@ -29416,7 +29342,7 @@ msgid "Movements" msgstr "" #: ../share/extensions/hpgl_decoder.py:44 -msgid "Pen " +msgid "Pen #" msgstr "" #. issue error if no hpgl data found @@ -29496,7 +29422,6 @@ msgid "" msgstr "" #: ../share/extensions/jessyInk_autoTexts.py:54 -#, python-brace-format msgid "" "Node with id '{0}' is not a suitable text node and was therefore ignored.\n" "\n" @@ -29523,7 +29448,6 @@ msgid "" msgstr "" #: ../share/extensions/jessyInk_summary.py:69 -#, python-brace-format msgid "JessyInk script version {0} installed." msgstr "" @@ -29544,7 +29468,6 @@ msgid "" msgstr "" #: ../share/extensions/jessyInk_summary.py:94 -#, python-brace-format msgid "{0}Layer name: {1}" msgstr "" @@ -29553,7 +29476,6 @@ msgid "{0}Transition in: {1} ({2!s} s)" msgstr "" #: ../share/extensions/jessyInk_summary.py:104 -#, python-brace-format msgid "{0}Transition in: {1}" msgstr "" @@ -29562,24 +29484,20 @@ msgid "{0}Transition out: {1} ({2!s} s)" msgstr "" #: ../share/extensions/jessyInk_summary.py:113 -#, python-brace-format msgid "{0}Transition out: {1}" msgstr "" #: ../share/extensions/jessyInk_summary.py:120 -#, python-brace-format msgid "" "\n" "{0}Auto-texts:" msgstr "" #: ../share/extensions/jessyInk_summary.py:123 -#, python-brace-format msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." msgstr "" #: ../share/extensions/jessyInk_summary.py:168 -#, python-brace-format msgid "" "\n" "{0}Initial effect (order number {1}):" @@ -29592,12 +29510,10 @@ msgid "" msgstr "" #: ../share/extensions/jessyInk_summary.py:174 -#, python-brace-format msgid "{0}\tView will be set according to object \"{1}\"" msgstr "" #: ../share/extensions/jessyInk_summary.py:176 -#, python-brace-format msgid "{0}\tObject \"{1}\"" msgstr "" @@ -29610,7 +29526,6 @@ msgid " will disappear" msgstr "" #: ../share/extensions/jessyInk_summary.py:184 -#, python-brace-format msgid " using effect \"{0}\"" msgstr "" @@ -29735,23 +29650,16 @@ msgid "" msgstr "" #. issue error if no paths found -#: ../share/extensions/plotter.py:67 +#: ../share/extensions/plotter.py:66 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/plotter.py:144 -msgid "" -"pySerial is not installed.\n" -"\n" -"1. Download pySerial here (not the \".exe\"!): http://pypi.python.org/pypi/" -"pyserial\n" -"2. Extract the \"serial\" subfolder from the zip to the following folder: C:" -"\\[Program files]\\inkscape\\python\\Lib\\\n" -"3. Restart Inkscape." +#: ../share/extensions/plotter.py:143 +msgid "pySerial is not installed." msgstr "" -#: ../share/extensions/plotter.py:164 +#: ../share/extensions/plotter.py:163 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." @@ -29877,12 +29785,7 @@ msgstr "" #: ../share/extensions/uniconv-ext.py:56 #: ../share/extensions/uniconv_output.py:122 -msgid "" -"You need to install the UniConvertor software.\n" -"For GNU/Linux: install the package python-uniconvertor.\n" -"For Windows: download it from\n" -"http://sk1project.org/modules.php?name=Products&product=uniconvertor\n" -"and install into your Inkscape's Python location\n" +msgid "You need to install the UniConvertor software.\n" msgstr "" #: ../share/extensions/voronoi2svg.py:215 @@ -32260,13 +32163,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 #: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:25 +#: ../share/extensions/plotter.inx.h:23 msgid "Resolution X (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:4 #: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:26 +#: ../share/extensions/plotter.inx.h:24 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -32274,13 +32177,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:5 #: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:27 +#: ../share/extensions/plotter.inx.h:25 msgid "Resolution Y (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:6 #: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:28 +#: ../share/extensions/plotter.inx.h:26 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -32315,34 +32218,34 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:22 msgid "Plotter Settings " msgstr "" #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:27 msgid "Pen number:" msgstr "" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:28 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/plotter.inx.h:29 msgid "Pen force (g):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:30 msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/plotter.inx.h:31 msgid "Pen speed (cm/s or mm/s):" msgstr "" @@ -32358,101 +32261,101 @@ msgid "Rotation (°, Clockwise):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:34 msgid "Rotation of the drawing (Default: 0°)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/plotter.inx.h:35 msgid "Mirror X axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:36 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/plotter.inx.h:37 msgid "Mirror Y axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:38 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/plotter.inx.h:39 msgid "Center zero point" msgstr "" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/plotter.inx.h:40 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/plotter.inx.h:41 msgid "Plot Features " msgstr "" #: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/plotter.inx.h:42 msgid "Overcut (mm):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/plotter.inx.h:43 msgid "" "The distance in mm that will be cut over the starting point of the path to " "prevent open paths, set to 0.0 to omit command (Default: 1.00)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/plotter.inx.h:44 msgid "Tool offset (mm):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/plotter.inx.h:45 msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/plotter.inx.h:46 msgid "Use precut" msgstr "" #: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/plotter.inx.h:47 msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/plotter.inx.h:48 msgid "Curve flatness:" msgstr "" #: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/plotter.inx.h:49 msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" msgstr "" #: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/plotter.inx.h:50 msgid "Auto align" msgstr "" #: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/plotter.inx.h:51 msgid "" "Check this to auto align the drawing to the zero point (Plus the tool offset " "if used). If unchecked you have to make sure that all parts of your drawing " @@ -32460,7 +32363,7 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:56 +#: ../share/extensions/plotter.inx.h:54 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." @@ -33755,76 +33658,66 @@ msgid "The command language to use (Default: HPGL)" msgstr "" #: ../share/extensions/plotter.inx.h:12 -msgid "Initialization commands:" -msgstr "" - -#: ../share/extensions/plotter.inx.h:13 -msgid "" -"Commands that will be sent to the plotter before the main data stream, only " -"use this if you know what you are doing! (Default: Empty)" -msgstr "" - -#: ../share/extensions/plotter.inx.h:14 msgid "Software (XON/XOFF)" msgstr "" -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:13 msgid "Hardware (RTS/CTS)" msgstr "" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:14 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:15 msgctxt "Flow control" msgid "None" msgstr "" -#: ../share/extensions/plotter.inx.h:18 +#: ../share/extensions/plotter.inx.h:16 msgid "HPGL" msgstr "" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:17 msgid "DMPL" msgstr "" -#: ../share/extensions/plotter.inx.h:20 -msgid "KNK Plotter (HPGL variant)" +#: ../share/extensions/plotter.inx.h:18 +msgid "KNK Zing (HPGL variant)" msgstr "" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:19 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" msgstr "" -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:20 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." msgstr "" -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:21 msgid "Parallel (LPT) connections are not supported." msgstr "" -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:32 msgid "" "The speed the pen will move with in centimeters or millimeters per second " "(depending on your plotter model), set to 0 to omit command. Most plotters " "ignore this command. (Default: 0)" msgstr "" -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:33 msgid "Rotation (°, clockwise):" msgstr "" -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:52 msgid "Show debug information" msgstr "" -#: ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/plotter.inx.h:53 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" -- cgit v1.2.3 From 9a7fa4d1899d30ec745107823f307b2a0bf3172f Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 27 Feb 2015 03:10:36 +0100 Subject: corrected the casts (hopefully) (bzr r13922.1.10) --- src/conn-avoid-ref.cpp | 4 +- src/desktop-style.cpp | 38 +++--- src/desktop-style.h | 2 +- src/document.cpp | 2 +- src/document.h | 1 - src/extension/execution-env.cpp | 2 +- src/extension/implementation/implementation.cpp | 2 +- src/extension/implementation/script.cpp | 2 +- src/extension/internal/bitmap/imagemagick.cpp | 4 +- src/extension/internal/bluredge.cpp | 2 +- src/extension/internal/cairo-renderer.cpp | 2 +- src/extension/internal/filter/filter.cpp | 2 +- src/extension/internal/grid.cpp | 2 +- src/extension/internal/latex-text-renderer.cpp | 4 +- src/file.cpp | 2 +- src/filter-chemistry.cpp | 2 +- src/gradient-chemistry.cpp | 10 +- src/gradient-drag.cpp | 12 +- src/graphlayout.cpp | 4 +- src/live_effects/lpe-knot.cpp | 2 +- src/main.cpp | 3 - src/object-snapper.cpp | 4 +- src/path-chemistry.cpp | 49 +++----- src/removeoverlap.cpp | 2 +- src/selcue.cpp | 10 +- src/selection-chemistry.cpp | 148 ++++++++++-------------- src/selection-chemistry.h | 1 - src/selection-describer.cpp | 8 +- src/selection.cpp | 16 +-- src/selection.h | 8 -- src/seltrans.cpp | 9 +- src/snap.cpp | 2 +- src/sp-conn-end.cpp | 2 +- src/sp-defs.cpp | 2 +- src/sp-filter.cpp | 2 +- src/sp-item-group.cpp | 14 +-- src/sp-item-group.h | 1 - src/sp-marker.cpp | 2 +- src/sp-object.h | 4 - src/sp-pattern.cpp | 2 +- src/sp-switch.cpp | 4 +- src/splivarot.cpp | 21 ++-- src/splivarot.h | 3 +- src/text-chemistry.cpp | 10 +- src/text-editing.cpp | 2 +- src/trace/trace.cpp | 2 +- src/ui/clipboard.cpp | 10 +- src/ui/dialog/align-and-distribute.cpp | 26 ++--- src/ui/dialog/export.cpp | 4 +- src/ui/dialog/filter-effects-dialog.cpp | 6 +- src/ui/dialog/find.cpp | 2 +- src/ui/dialog/find.h | 1 - src/ui/dialog/font-substitution.cpp | 2 +- src/ui/dialog/font-substitution.h | 3 +- src/ui/dialog/glyphs.cpp | 2 +- src/ui/dialog/grid-arrange-tab.cpp | 2 +- src/ui/dialog/icon-preview.cpp | 2 +- src/ui/dialog/objects.cpp | 2 +- src/ui/dialog/polar-arrange-tab.cpp | 4 +- src/ui/dialog/tags.cpp | 2 +- src/ui/dialog/text-edit.cpp | 2 +- src/ui/dialog/transformation.cpp | 20 ++-- src/ui/interface.cpp | 2 +- src/ui/tools/connector-tool.cpp | 2 +- src/ui/tools/eraser-tool.cpp | 10 +- src/ui/tools/gradient-tool.cpp | 20 ++-- src/ui/tools/gradient-tool.h | 3 +- src/ui/tools/measure-tool.cpp | 2 +- src/ui/tools/mesh-tool.cpp | 11 +- src/ui/tools/select-tool.cpp | 2 +- src/ui/tools/spray-tool.cpp | 6 +- src/ui/tools/tweak-tool.cpp | 2 +- src/unclump.cpp | 10 +- src/unclump.h | 1 - src/vanishing-point.cpp | 8 +- src/widgets/arc-toolbar.cpp | 8 +- src/widgets/connector-toolbar.cpp | 4 +- src/widgets/fill-style.cpp | 6 +- src/widgets/gradient-toolbar.cpp | 6 +- src/widgets/mesh-toolbar.cpp | 4 +- src/widgets/rect-toolbar.cpp | 4 +- src/widgets/spiral-toolbar.cpp | 4 +- src/widgets/star-toolbar.cpp | 12 +- src/widgets/stroke-style.cpp | 7 +- src/widgets/text-toolbar.cpp | 8 +- 85 files changed, 294 insertions(+), 370 deletions(-) diff --git a/src/conn-avoid-ref.cpp b/src/conn-avoid-ref.cpp index fb9fbd935..eb6694233 100644 --- a/src/conn-avoid-ref.cpp +++ b/src/conn-avoid-ref.cpp @@ -253,8 +253,8 @@ static std::vector approxItemWithPoints(SPItem const *item, const G SPGroup* group = SP_GROUP(item); // consider all first-order children std::vector itemlist = sp_item_group_item_list(group); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem* child_item = SP_ITEM(*i); + for (std::vector::const_iterator i = itemlist.begin(); i != itemlist.end(); i++) { + SPItem* child_item = *i; std::vector child_points = approxItemWithPoints(child_item, item_transform * child_item->transform); poly_points.insert(poly_points.end(), child_points.begin(), child_points.end()); } diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index e1a81f00a..82f66dcdf 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -195,9 +195,9 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write sp_css_attr_unset_uris(css_write); prefs->mergeStyle("/desktop/style", css_write); std::vector const itemlist = desktop->selection->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { + for (std::vector::const_iterator i = itemlist.begin(); i!= itemlist.end(); i++) { /* last used styles for 3D box faces are stored separately */ - SPObject *obj = reinterpret_cast(*i); // TODO unsafe until Selection is refactored. + SPObject *obj = reinterpret_cast(*i); Box3DSide *side = dynamic_cast(obj); if (side) { const char * descr = box3d_side_axes_string(side); @@ -235,8 +235,8 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write css_no_text = sp_css_attr_unset_text(css_no_text); std::vector const itemlist = desktop->selection->itemList(); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem *item = reinterpret_cast(*i); + for (std::vector::const_iterator i = itemlist.begin(); i!= itemlist.end(); i++) { + SPItem *item = *i; // If not text, don't apply text attributes (can a group have text attributes? Yes! FIXME) if (isTextualItem(item)) { @@ -447,9 +447,9 @@ stroke_average_width (const std::vector &objects) gdouble avgwidth = 0.0; bool notstroked = true; int n_notstroked = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); - SPItem *item = dynamic_cast(obj); + SPItem *item = *i; if (!item) { continue; } @@ -514,7 +514,7 @@ objects_query_fillstroke (const std::vector &objects, SPStyle *style_re prev[0] = prev[1] = prev[2] = 0.0; bool same_color = true; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i!= objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -698,7 +698,7 @@ objects_query_opacity (const std::vector &objects, SPStyle *style_res) guint opacity_items = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -754,7 +754,7 @@ objects_query_strokewidth (const std::vector &objects, SPStyle *style_r int n_stroked = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -828,7 +828,7 @@ objects_query_miterlimit (const std::vector &objects, SPStyle *style_re gdouble prev_ml = -1; bool same_ml = true; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -887,7 +887,7 @@ objects_query_strokecap (const std::vector &objects, SPStyle *style_res bool same_cap = true; int n_stroked = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -941,7 +941,7 @@ objects_query_strokejoin (const std::vector &objects, SPStyle *style_re bool same_join = true; int n_stroked = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!dynamic_cast(obj)) { continue; @@ -1004,7 +1004,7 @@ objects_query_fontnumbers (const std::vector &objects, SPStyle *style_r int texts = 0; int no_size = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1123,7 +1123,7 @@ objects_query_fontstyle (const std::vector &objects, SPStyle *style_res int texts = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1192,7 +1192,7 @@ objects_query_baselines (const std::vector &objects, SPStyle *style_res int texts = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!isTextualItem(obj)) { @@ -1280,7 +1280,7 @@ objects_query_fontfamily (const std::vector &objects, SPStyle *style_re } style_res->font_family.set = FALSE; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; @@ -1336,7 +1336,7 @@ objects_query_fontspecification (const std::vector &objects, SPStyle *s } style_res->font_specification.set = FALSE; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; @@ -1394,7 +1394,7 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) bool same_blend = true; guint items = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; @@ -1484,7 +1484,7 @@ objects_query_blur (const std::vector &objects, SPStyle *style_res) guint blur_items = 0; guint items = 0; - for (std::vector::const_iterator i=objects.begin();i!=objects.end();i++) { + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = reinterpret_cast(*i); if (!obj) { continue; diff --git a/src/desktop-style.h b/src/desktop-style.h index 7ca25b9ae..a72f49776 100644 --- a/src/desktop-style.h +++ b/src/desktop-style.h @@ -13,11 +13,11 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#include "selection.h" // SelContainer class ColorRGBA; class SPCSSAttr; class SPDesktop; class SPObject; +class SPItem; class SPStyle; typedef struct _GSList GSList; namespace Inkscape { diff --git a/src/document.cpp b/src/document.cpp index 07ad10505..0582f1a70 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1289,7 +1289,7 @@ SPItem *SPDocument::getItemFromListAtPointBottom(unsigned int dkey, SPGroup *gro Inkscape::DrawingItem *arenaitem = item->get_arenaitem(dkey); if (arenaitem && arenaitem->pick(p, delta, 1) != NULL && (take_insensitive || item->isVisibleAndUnlocked(dkey))) { - if (find(list.begin(),list.end(),item)==list.end() ) { + if (find(list.begin(),list.end(),item)!=list.end() ) { bottomMost = item; } } diff --git a/src/document.h b/src/document.h index 57ff7643c..bc5b2745a 100644 --- a/src/document.h +++ b/src/document.h @@ -27,7 +27,6 @@ #include #include #include -#include "selection.h" namespace Avoid { class Router; diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index 90a7810e6..971f0b64a 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -65,7 +65,7 @@ ExecutionEnv::ExecutionEnv (Effect * effect, Inkscape::UI::View::View * doc, Imp if (desktop != NULL) { std::vector selected = desktop->getSelection()->itemList(); - for(std::vector::const_iterator x=selected.begin();x!=selected.end();x++){ + for(std::vector::const_iterator x = selected.begin(); x != selected.end(); x++){ Glib::ustring selected_id; selected_id = (*x)->getId(); _selected.insert(_selected.end(), selected_id); diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index cea6d139f..11c494b18 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -51,7 +51,7 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node const* first_select = NULL; if (!selected.empty()) { - const SPItem * item = SP_ITEM(selected.front()); + const SPItem * item = selected.front(); first_select = item->getRepr(); } diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 95d5c7edc..5c708cf9a 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -691,7 +691,7 @@ void Script::effect(Inkscape::Extension::Effect *module, std::vector selected = desktop->getSelection()->itemList(); //desktop should not be NULL since doc was checked and desktop is a casted pointer - for(std::vector::const_iterator x=selected.begin();x!=selected.end();x++){ + for(std::vector::const_iterator x = selected.begin(); x != selected.end(); x++){ Glib::ustring selected_id; selected_id += "--id="; selected_id += (*x)->getId(); diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index 64abd6c4d..3a29b3dc0 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -83,8 +83,8 @@ ImageMagickDocCache::ImageMagickDocCache(Inkscape::UI::View::View * view) : _imageItems = new SPItem*[selectCount]; // Loop through selected items - for (std::vector::const_iterator i=selectedItemList.begin();i!=selectedItemList.end();i++) { - SPItem *item = static_cast(*i); + for (std::vector::const_iterator i = selectedItemList.begin(); i != selectedItemList.end(); i++) { + SPItem *item = *i; Inkscape::XML::Node *node = reinterpret_cast(item->getRepr()); if (!strcmp(node->name(), "image") || !strcmp(node->name(), "svg:image")) { diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index 257cac161..b80e5ddbb 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -70,7 +70,7 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View for(std::vector::iterator item = items.begin(); item != items.end(); ++item) { - SPItem * spitem = static_cast(*item); + SPItem * spitem = *item; std::vector new_items(steps); Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc(); diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index f614ec745..b30c8892e 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -295,7 +295,7 @@ static void sp_group_render(SPGroup *group, CairoRenderContext *ctx) TRACE(("sp_group_render opacity: %f\n", SP_SCALE24_TO_FLOAT(item->style->opacity.value))); std::vector l(group->childList(false)); - for(std::vector::const_iterator x=l.begin();x!=l.end();x++){ + for(std::vector::const_iterator x = l.begin(); x!= l.end(); x++){ SPObject *o = reinterpret_cast(*x); SPItem *item = dynamic_cast(o); if (item) { diff --git a/src/extension/internal/filter/filter.cpp b/src/extension/internal/filter/filter.cpp index a5eb7de60..65162af22 100644 --- a/src/extension/internal/filter/filter.cpp +++ b/src/extension/internal/filter/filter.cpp @@ -133,7 +133,7 @@ void Filter::effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::Vie for(std::vector::iterator item = items.begin(); item != items.end(); ++item) { - SPItem * spitem = static_cast(*item); + SPItem * spitem = *item; Inkscape::XML::Node * node = spitem->getRepr(); SPCSSAttr * css = sp_repr_css_attr(node, "style"); diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 440c6b822..60d606a02 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -195,7 +195,7 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { - first_select = (selected.front())->getRepr(); + first_select = selected[0]->getRepr(); } return module->autogui(current_document, first_select, changeSignal); diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index a2de264ab..831a8d030 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -229,8 +229,8 @@ LaTeXTextRenderer::writePostamble() void LaTeXTextRenderer::sp_group_render(SPGroup *group) { std::vector l = (group->childList(false)); - for(std::vector::const_iterator x=l.begin();x!=l.end();x++){ - SPObject *o = reinterpret_cast(*x); + for(std::vector::const_iterator x = l.begin(); x != l.end(); x++){ + SPObject *o = *x; SPItem *item = dynamic_cast(o); if (item) { renderItem(item); diff --git a/src/file.cpp b/src/file.cpp index f33e284b2..07e41c550 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -1088,7 +1088,7 @@ void sp_import_document(SPDesktop *desktop, SPDocument *clipdoc, bool in_place) target_parent->appendChild(obj_copy); Inkscape::GC::release(obj_copy); - pasted_objects.push_back((obj_copy)); + pasted_objects.push_back(obj_copy); } // Change the selection to the freshly pasted objects diff --git a/src/filter-chemistry.cpp b/src/filter-chemistry.cpp index c89cf6220..9298a1ffc 100644 --- a/src/filter-chemistry.cpp +++ b/src/filter-chemistry.cpp @@ -23,9 +23,9 @@ #include "filter-chemistry.h" #include "filter-enums.h" + #include "filters/blend.h" #include "filters/gaussian-blur.h" -#include "selection.h" #include "sp-filter.h" #include "sp-filter-reference.h" #include "svg/css-ostringstream.h" diff --git a/src/gradient-chemistry.cpp b/src/gradient-chemistry.cpp index a72423bbb..b59b38475 100644 --- a/src/gradient-chemistry.cpp +++ b/src/gradient-chemistry.cpp @@ -1571,8 +1571,8 @@ void sp_gradient_invert_selected_gradients(SPDesktop *desktop, Inkscape::PaintTa Inkscape::Selection *selection = desktop->getSelection(); const std::vector list=selection->itemList(); - for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { - sp_item_gradient_invert_vector_color(SP_ITEM(*i), fill_or_stroke); + for (std::vector::const_iterator i = list.begin(); i != list.end(); i++) { + sp_item_gradient_invert_vector_color(*i, fill_or_stroke); } // we did an undoable action @@ -1596,9 +1596,9 @@ void sp_gradient_reverse_selected_gradients(SPDesktop *desktop) drag->selected_reverse_vector(); } else { // If no drag or no dragger selected, act on selection (both fill and stroke gradients) const std::vector list=selection->itemList(); - for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { - sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_FILL); - sp_item_gradient_reverse_vector(SP_ITEM(*i), Inkscape::FOR_STROKE); + for (std::vector::const_iterator i = list.begin(); i != list.end(); i++) { + sp_item_gradient_reverse_vector(*i, Inkscape::FOR_FILL); + sp_item_gradient_reverse_vector(*i, Inkscape::FOR_STROKE); } } diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 525fc074f..5a49435d4 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -2083,8 +2083,8 @@ void GrDrag::updateDraggers() g_return_if_fail(this->selection != NULL); std::vector list = this->selection->itemList(); - for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { - SPItem *item = SP_ITEM(*i); + for (std::vector::const_iterator i = list.begin(); i != list.end(); i++) { + SPItem *item = *i; SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { @@ -2152,8 +2152,8 @@ void GrDrag::updateLines() g_return_if_fail(this->selection != NULL); std::vector list = this->selection->itemList(); - for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { - SPItem *item = SP_ITEM(*i); + for (std::vector::const_iterator i = list.begin(); i != list.end(); i++) { + SPItem *item = *i; SPStyle *style = item->style; @@ -2296,8 +2296,8 @@ void GrDrag::updateLevels() g_return_if_fail (this->selection != NULL); std::vector list = this->selection->itemList(); - for (std::vector::const_iterator i=list.begin();i!=list.end();i++) { - SPItem *item = SP_ITEM(*i); + for (std::vector::const_iterator i = list.begin(); i != list.end(); i++) { + SPItem *item = *i; Geom::OptRect rect = item->desktopVisualBounds(); if (rect) { // Remember the edges of the bbox and the center axis diff --git a/src/graphlayout.cpp b/src/graphlayout.cpp index 4d590173a..40994347c 100644 --- a/src/graphlayout.cpp +++ b/src/graphlayout.cpp @@ -89,8 +89,8 @@ struct CheckProgress : TestConvergence { * not connectors in filtered */ void filterConnectors(std::vector const &items, list &filtered) { - for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = SP_ITEM(*i); + for(std::vector::const_iterator i = items.begin();i !=items.end(); i++){ + SPItem *item = *i; if(!isConnector(item)) { filtered.push_back(item); } diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index 6cdf09180..7a1d391a3 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -506,7 +506,7 @@ static void collectPathsAndWidths (SPLPEItem const *lpeitem, std::vector &paths, std::vector &stroke_widths){ if (SP_IS_GROUP(lpeitem)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); - for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { + for ( std::vector::const_iterator iter = item_list.begin(); iter != item_list.end(); iter++) { SPObject *subitem = static_cast(*iter); if (SP_IS_LPE_ITEM(subitem)) { collectPathsAndWidths(SP_LPE_ITEM(subitem), paths, stroke_widths); diff --git a/src/main.cpp b/src/main.cpp index c62b9cd25..062edcb98 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1174,9 +1174,6 @@ static int sp_process_file_list(GSList *fl) sp_item_list_to_curves(items, selected, to_select); - items.clear(); - selected.clear(); - to_select.clear(); } if(sp_export_id) { doc->ensureUpToDate(); diff --git a/src/object-snapper.cpp b/src/object-snapper.cpp index 830c3c1db..f9c189c58 100644 --- a/src/object-snapper.cpp +++ b/src/object-snapper.cpp @@ -238,8 +238,8 @@ void Inkscape::ObjectSnapper::_collectNodes(SnapSourceType const &t, bool old_pref2 = _snapmanager->snapprefs.isTargetSnappable(SNAPTARGET_ROTATION_CENTER); if (old_pref2) { std::vector rotationSource=_snapmanager->getRotationCenterSource(); - for ( std::vector::const_iterator itemlist=rotationSource.begin();itemlist!=rotationSource.end();itemlist++) { - if ((*i).item == reinterpret_cast(*itemlist)) { + for ( std::vector::const_iterator itemlist = rotationSource.begin(); itemlist != rotationSource.end(); itemlist++) { + if ((*i).item == *itemlist) { // don't snap to this item's rotation center _snapmanager->snapprefs.setTargetSnappable(SNAPTARGET_ROTATION_CENTER, false); break; diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index ae1e0064f..53ad96596 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -45,16 +45,10 @@ using Inkscape::DocumentUndo; -inline bool less_than_objects(SPObject const *first, SPObject const *second) -{ - return sp_repr_compare_position(first->getRepr(), - second->getRepr())<0; -} - inline bool less_than_items(SPItem const *first, SPItem const *second) { return sp_repr_compare_position(first->getRepr(), - second->getRepr())<0; + second->getRepr())>0; } void @@ -77,21 +71,19 @@ sp_selected_path_combine(SPDesktop *desktop) items = sp_degroup_list (items); // descend into any groups in selection std::vector to_paths; - for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++) { - SPItem *item = (SPItem *) (*i); - if (!dynamic_cast(item) && !dynamic_cast(item)) { - to_paths.push_back(item); + for (std::vector::const_reverse_iterator i = items.rbegin(); i != items.rend(); i++) { + if (!dynamic_cast(*i) && !dynamic_cast(*i)) { + to_paths.push_back(*i); } } std::vector converted; bool did = sp_item_list_to_curves(to_paths, items, converted); - to_paths.clear(); - for (std::vector::const_iterator i=converted.begin();i!=converted.end();i++) - items.push_back((SPItem*)doc->getObjectByRepr((Inkscape::XML::Node*)(*i))); + for (std::vector::const_iterator i = converted.begin(); i != converted.end(); i++) + items.push_back((SPItem*)doc->getObjectByRepr(*i)); items = sp_degroup_list (items); // converting to path may have added more groups, descend again - sort(items.begin(),items.end(),less_than_objects); + sort(items.begin(),items.end(),less_than_items); assert(!items.empty()); // cannot be NULL because of list length check at top of function // remember the position, id, transform and style of the topmost path, they will be assigned to the combined one @@ -109,9 +101,9 @@ sp_selected_path_combine(SPDesktop *desktop) selection->clear(); } - for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ + for (std::vector::const_reverse_iterator i = items.rbegin(); i != items.rend(); i++){ - SPItem *item = (SPItem *) (*i); + SPItem *item = *i; SPPath *path = dynamic_cast(item); if (!path) { continue; @@ -212,9 +204,9 @@ sp_selected_path_break_apart(SPDesktop *desktop) bool did = false; std::vector itemlist(selection->itemList()); - for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ + for (std::vector::const_iterator i = itemlist.begin(); i != itemlist.end(); i++){ - SPItem *item = (SPItem *) (*i); + SPItem *item = *i; SPPath *path = dynamic_cast(item); if (!path) { @@ -277,11 +269,10 @@ sp_selected_path_break_apart(SPDesktop *desktop) if (l == list) repr->setAttribute("id", id); - reprs.push_back(repr); + reprs.insert(reprs.begin(),repr); Inkscape::GC::release(repr); } - //reverse selection->setReprList(reprs); g_slist_free(list); @@ -323,11 +314,8 @@ sp_selected_path_to_curves(Inkscape::Selection *selection, SPDesktop *desktop, b did = sp_item_list_to_curves(items, selected, to_select); - items.clear(); selection->setReprList(to_select); selection->addList(selected); - to_select.clear(); - selected.clear(); if (interactive && desktop) { desktop->clearWaitingCursor(); @@ -367,9 +355,9 @@ sp_item_list_to_curves(const std::vector &items, std::vector& { bool did = false; - for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i = items.begin(); i != items.end(); i++){ - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; g_assert(item != NULL); SPDocument *document = item->document; @@ -400,7 +388,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& Inkscape::XML::Node *repr = box3d_convert_to_group(box)->getRepr(); if (repr) { - to_select.push_back(repr); + to_select.insert(to_select.begin(),repr); did = true; selected.erase(find(selected.begin(),selected.end(),item)); } @@ -418,9 +406,6 @@ sp_item_list_to_curves(const std::vector &items, std::vector& if (sp_item_list_to_curves(item_list, item_selected, item_to_select)) did = true; - item_list.clear(); - item_to_select.clear(); - item_selected.clear(); continue; } @@ -472,7 +457,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& /* Buglet: We don't re-add the (new version of the) object to the selection of any other * desktops where it was previously selected. */ - to_select.push_back(repr); + to_select.insert(to_select.begin(),repr); Inkscape::GC::release(repr); } @@ -628,7 +613,7 @@ sp_selected_path_reverse(SPDesktop *desktop) bool did = false; desktop->messageStack()->flash(Inkscape::IMMEDIATE_MESSAGE, _("Reversing paths...")); - for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ + for (std::vector::const_iterator i = items.begin(); i != items.end(); i++){ SPPath *path = dynamic_cast(static_cast(*i)); if (!path) { diff --git a/src/removeoverlap.cpp b/src/removeoverlap.cpp index 7cb1694e3..01ce2c47e 100644 --- a/src/removeoverlap.cpp +++ b/src/removeoverlap.cpp @@ -49,7 +49,7 @@ void removeoverlap(std::vector const &items, double const xGap, double it != selected.end(); ++it) { - SPItem* item=static_cast(*it); + SPItem* item = *it; using Geom::X; using Geom::Y; Geom::OptRect item_box((item)->desktopVisualBounds()); if (item_box) { diff --git a/src/selcue.cpp b/src/selcue.cpp index f48378cdc..76eae3fa8 100644 --- a/src/selcue.cpp +++ b/src/selcue.cpp @@ -104,8 +104,8 @@ void Inkscape::SelCue::_updateItemBboxes(gint mode, int prefs_bbox) int bcount = 0; std::vector ll=_selection->itemList(); - for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { - SPItem *item = static_cast(*l); + for (std::vector::const_iterator l = ll.begin(); l != ll.end(); l++) { + SPItem *item = *l; SPCanvasItem* box = _item_bboxes[bcount ++]; if (box) { @@ -147,8 +147,8 @@ void Inkscape::SelCue::_newItemBboxes() int prefs_bbox = prefs->getBool("/tools/bounding_box"); std::vector ll=_selection->itemList(); - for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { - SPItem *item = static_cast(*l); + for (std::vector::const_iterator l = ll.begin(); l != ll.end(); l++) { + SPItem *item = *l; Geom::OptRect const b = (prefs_bbox == 0) ? item->desktopVisualBounds() : item->desktopGeometricBounds(); @@ -201,7 +201,7 @@ void Inkscape::SelCue::_newTextBaselines() } _text_baselines.clear(); - std::vector ll=_selection->itemList(); + std::vector ll = _selection->itemList(); for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { SPItem *item = static_cast(*l); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 3c91392cf..d6f8b8a37 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -283,8 +283,8 @@ void SelectionHelper::fixSelection(SPDesktop *dt) std::vector const selList = selection->itemList(); - for( std::vector::const_reverse_iterator i=selList.rbegin();i!=selList.rend();i++ ) { - SPItem *item = dynamic_cast(static_cast(*i)); + for( std::vector::const_reverse_iterator i = selList.rbegin(); i != selList.rend(); i++ ) { + SPItem *item = *i; if( item && !dt->isLayer(item) && (!item->isLocked())) @@ -303,7 +303,7 @@ void SelectionHelper::fixSelection(SPDesktop *dt) * Copies repr and its inherited css style elements, along with the accumulated transform 'full_t', * then prepends the copy to 'clip'. */ -static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, std::vector &clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t, std::vector &clip, Inkscape::XML::Document* xml_doc) { Inkscape::XML::Node *copy = repr->duplicate(xml_doc); @@ -319,31 +319,32 @@ static void sp_selection_copy_one(Inkscape::XML::Node *repr, Geom::Affine full_t copy->setAttribute("transform", affinestr); g_free(affinestr); - clip.insert(clip.begin(),dynamic_cast(copy)); + clip.insert(clip.begin(),copy); } -static void sp_selection_copy_impl(std::vector const &items, std::vector &clip, Inkscape::XML::Document* xml_doc) +static void sp_selection_copy_impl(std::vector const &items, std::vector &clip, Inkscape::XML::Document* xml_doc) { // Sort items: std::vector sorted_items(items); sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); // Copy item reprs: - for (std::vector::const_iterator i = sorted_items.begin();i!=sorted_items.end();i++) { - SPItem *item = dynamic_cast(SP_OBJECT(*i)); + for (std::vector::const_iterator i = sorted_items.begin(); i != sorted_items.end(); i++) { + SPItem *item = *i; if (item) { sp_selection_copy_one(item->getRepr(), item->i2doc_affine(), clip, xml_doc); } else { g_assert_not_reached(); } } - std::vector tmp(clip); - for(int i=0;i tmp(clip); + for(int i=0;i sp_selection_paste_impl(SPDocument *doc, SPObject *parent, std::vector &clip) +static std::vector sp_selection_paste_impl(SPDocument *doc, SPObject *parent, std::vector &clip) { Inkscape::XML::Document *xml_doc = doc->getReprDoc(); @@ -352,8 +353,8 @@ static std::vector sp_selection_paste_impl(SPDocument *doc std::vector copied; // add objects to document - for (std::vector::const_iterator l=clip.begin();l!=clip.end();l++) { - Inkscape::XML::Node *repr = dynamic_cast(*l); + for (std::vector::const_iterator l = clip.begin(); l != clip.end(); l++) { + Inkscape::XML::Node *repr = *l; Inkscape::XML::Node *copy = repr->duplicate(xml_doc); // premultiply the item transform by the accumulated parent transform in the paste layer @@ -379,11 +380,11 @@ static std::vector sp_selection_paste_impl(SPDocument *doc static void sp_selection_delete_impl(std::vector const &items, bool propagate = true, bool propagate_descendants = true) { - for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - sp_object_ref(static_cast(*i), NULL); + for (std::vector::const_iterator i = items.begin(); i != items.end(); i++) { + sp_object_ref(*i, NULL); } - for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - SPItem *item = static_cast(*i); + for (std::vector::const_iterator i = items.begin(); i != items.end(); i++) { + SPItem *item = *i; item->deleteObject(propagate, propagate_descendants); sp_object_unref(item, NULL); } @@ -413,7 +414,6 @@ void sp_selection_delete(SPDesktop *desktop) std::vector selected(selection->itemList()); selection->clear(); sp_selection_delete_impl(selected); - selected.clear(); desktop->currentLayer()->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG); /* a tool may have set up private information in it's selection context @@ -440,10 +440,6 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) } } } -/* -bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b){ - return sp_repr_compare_position(dynamic_cast(a),dynamic_cast(b)); -}*/ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) { @@ -476,8 +472,8 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) bool relink_clones = prefs->getBool("/options/relinkclonesonduplicate/value"); const bool fork_livepatheffects = prefs->getBool("/options/forklpeonduplicate/value", true); - for(std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ - Inkscape::XML::Node *old_repr = (*i); + for(std::vector::const_reverse_iterator i=reprs.rbegin();i!=reprs.rend();i++){ + Inkscape::XML::Node *old_repr = *i; Inkscape::XML::Node *parent = old_repr->parent(); Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); @@ -558,7 +554,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) g_return_if_fail(group != NULL); std::vector items = sp_item_group_item_list(group); - for(unsigned int i=0;i(items[i])->deleteObject(); } @@ -644,7 +640,6 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i } } - all_items.clear(); break; } case PREFS_SELECTION_LAYER_RECURSIVE: { @@ -653,17 +648,14 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i break; } default: { - std::vector x; - items = get_all_items(x, dt->currentRoot(), dt, onlyvisible, onlysensitive, FALSE, exclude); + std::vector x; + items = get_all_items(x, dt->currentRoot(), dt, onlyvisible, onlysensitive, FALSE, exclude); break; } } selection->setList(items); - if (!items.empty()) { - items.clear(); - } } void sp_edit_select_all(SPDesktop *desktop) @@ -694,8 +686,8 @@ static void sp_selection_group_impl(std::vector p, Inkscap gint topmost = (dynamic_cast(p.back()))->position(); Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); - for(std::vector::const_iterator i=p.begin();i!=p.end();i++){ - Inkscape::XML::Node *current = (*i); + for(std::vector::const_iterator i = p.begin(); i != p.end(); i++){ + Inkscape::XML::Node *current = *i; if (current->parent() == topmost_parent) { Inkscape::XML::Node *spnew = current->duplicate(xml_doc); @@ -704,7 +696,7 @@ static void sp_selection_group_impl(std::vector p, Inkscap Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - std::vector temp_clip; + std::vector temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -817,7 +809,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) // If any of the clones refer to the groups, unlink them and replace them with successors // in the items list. GSList *clones_to_unlink = NULL; - for (std::vector::const_iterator item = items.begin(); item!=items.end(); item++) { + for (std::vector::const_iterator item = items.begin(); item != items.end(); item++) { SPUse *use = dynamic_cast(static_cast(*item)); SPItem *original = use; @@ -838,13 +830,13 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) for (GSList *item = clones_to_unlink; item; item = item->next) { SPUse *use = static_cast(item->data); std::vector::iterator items_node = std::find(items.begin(),items.end(), item->data); - (*items_node) = use->unlink(); + *items_node = use->unlink(); } g_slist_free(clones_to_unlink); // do the actual work - for (std::vector::iterator item = items.begin(); item!=items.end(); item++) { - SPItem *obj = static_cast(*item); + for (std::vector::iterator item = items.begin(); item != items.end(); item++) { + SPItem *obj = *item; // ungroup only the groups marked earlier if (g_slist_find(groups, *item) != NULL) { @@ -852,7 +844,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) sp_item_group_ungroup(dynamic_cast(obj), children, false); // add the items resulting from ungrouping to the selection new_select.insert(new_select.end(),children.begin(),children.end()); - (*item) = NULL; // zero out the original pointer, which is no longer valid + *item = NULL; // zero out the original pointer, which is no longer valid } else { // if not a group, keep in the selection new_select.push_back(*item); @@ -860,8 +852,6 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) } selection->addList(new_select); - new_select.clear(); - items.clear(); DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_UNGROUP, _("Ungroup")); @@ -886,7 +876,6 @@ sp_degroup_list(std::vector &items) members.clear(); } } - items.clear(); if (has_groups) { // recurse if we unwrapped a group - it may have contained others out = sp_degroup_list(out); @@ -903,13 +892,13 @@ sp_item_list_common_parent_group(std::vector const items) if (items.empty()) { return NULL; } - SPObject *parent = SP_OBJECT(items.front())->parent; + SPObject *parent = SP_OBJECT(items[0])->parent; // Strictly speaking this CAN happen, if user selects from Inkscape::XML editor if (!dynamic_cast(parent)) { return NULL; } for (std::vector::const_iterator item=items.begin();item!=items.end();item++) { - if((*item)==items.front())continue; + if((*item)==items[0])continue; if (SP_OBJECT(*item)->parent != parent) { return NULL; } @@ -992,10 +981,7 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) } } } - } else { - rev.clear(); } - DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_RAISE, //TRANSLATORS: "Raise" means "to raise an object" in the undo history C_("Undo action", "Raise")); @@ -1078,8 +1064,6 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) } } } - } else { - rev.clear(); } DocumentUndo::done(selection->layers()->getDocument(), SP_VERB_SELECTION_LOWER, @@ -1261,7 +1245,7 @@ void sp_selection_remove_livepatheffect(SPDesktop *desktop) } std::vector list=selection->itemList(); for ( std::vector::const_iterator itemlist=list.begin();itemlist!=list.end();itemlist++) { - SPItem *item = reinterpret_cast(*itemlist); + SPItem *item = *itemlist; sp_selection_remove_livepatheffect_impl(item); @@ -1318,7 +1302,7 @@ void sp_selection_paste_size_separately(SPDesktop *desktop, bool apply_x, bool a void sp_selection_change_layer_maintain_clones(std::vector const &items,SPObject *where) { for (std::vector::const_iterator i = items.begin(); i != items.end(); i++) { - SPItem *item = dynamic_cast(SP_OBJECT(*i)); + SPItem *item = *i; if (item) { SPItem *oldparent = dynamic_cast(item->parent); SPItem *newparent = dynamic_cast(where); @@ -1346,7 +1330,7 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { sp_selection_change_layer_maintain_clones(items,next); - std::vector temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); sp_selection_delete_impl(items, false, false); next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers @@ -1358,8 +1342,6 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) no_more = true; } selection->setReprList(copied); - copied.clear(); - if (!temp_clip.empty()) temp_clip.clear(); if (next) dt->setCurrentLayer(next); if ( !suppressDone ) { DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_MOVE_TO_NEXT, @@ -1373,7 +1355,6 @@ void sp_selection_to_next_layer(SPDesktop *dt, bool suppressDone) dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("No more layers above.")); } - items.clear(); } void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) @@ -1392,7 +1373,7 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) SPObject *next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (next) { sp_selection_change_layer_maintain_clones(items,next); - std::vector temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); next=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); // Fixes bug 1482973: crash while moving layers @@ -1404,8 +1385,6 @@ void sp_selection_to_prev_layer(SPDesktop *dt, bool suppressDone) no_more = true; } selection->setReprList( copied); - copied.clear(); - if (!temp_clip.empty()) temp_clip.clear(); if (next) dt->setCurrentLayer(next); if ( !suppressDone ) { DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_MOVE_TO_PREV, @@ -1434,7 +1413,7 @@ void sp_selection_to_layer(SPDesktop *dt, SPObject *moveto, bool suppressDone) if (moveto) { sp_selection_change_layer_maintain_clones(items,moveto); - std::vector temp_clip; + std::vector temp_clip; sp_selection_copy_impl(items, temp_clip, dt->doc()->getReprDoc()); // we're in the same doc, so no need to copy defs sp_selection_delete_impl(items, false, false); std::vector copied = sp_selection_paste_impl(dt->getDocument(), moveto, temp_clip); @@ -1483,7 +1462,7 @@ selection_contains_both_clone_and_original(Inkscape::Selection *selection) bool clone_with_original = false; std::vector items = selection->itemList(); for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { - SPItem *item = dynamic_cast(static_cast(*l)); + SPItem *item = *l; if (item) { clone_with_original |= selection_contains_original(item, selection); if (clone_with_original) @@ -1528,7 +1507,7 @@ void sp_selection_apply_affine(Inkscape::Selection *selection, Geom::Affine cons } std::vector items = selection->itemList(); for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { - SPItem *item = dynamic_cast(static_cast(*l)); + SPItem *item = *l; if( dynamic_cast(item) ) { // An SVG element cannot have a transform. We could change 'x' and 'y' in response @@ -1800,7 +1779,7 @@ void sp_selection_rotate_90(SPDesktop *desktop, bool ccw) std::vector items = selection->itemList(); Geom::Rotate const rot_90(Geom::Point(0, ccw ? 1 : -1)); // pos. or neg. rotation, depending on the value of ccw for (std::vector::const_iterator l=items.begin();l!=items.end() ;l++) { - SPItem *item = dynamic_cast(static_cast(*l)); + SPItem *item = *l; if (item) { sp_item_rotate_rel(item, rot_90); } else { @@ -1863,7 +1842,7 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea Inkscape::Selection *selection = desktop->getSelection(); std::vector items = selection->itemList(); for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { - SPItem *sel = dynamic_cast(static_cast(*sel_iter)); + SPItem *sel = *sel_iter; std::vector matches = all_list; if (fill && stroke && style) { matches = sp_get_same_style(sel, matches); @@ -1911,7 +1890,7 @@ void sp_select_same_object_type(SPDesktop *desktop) std::vector items=selection->itemList(); for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { - SPItem *sel = dynamic_cast(static_cast(*sel_iter)); + SPItem *sel = *sel_iter; if (sel) { matches = sp_get_same_object_type(sel, matches); } else { @@ -1938,7 +1917,7 @@ std::vector sp_get_same_fill_or_stroke_color(SPItem *sel, std::vectorstyle->fill) : &(sel->style->stroke); for (std::vector::const_reverse_iterator i=src.rbegin();i!=src.rend();i++) { - SPItem *iter = dynamic_cast(static_cast(*i)); + SPItem *iter = *i; if (iter) { SPIPaint *iter_paint = (type == SP_FILL_COLOR) ? &(iter->style->fill) : &(iter->style->stroke); match = false; @@ -2033,7 +2012,7 @@ std::vector sp_get_same_object_type(SPItem *sel, std::vector & std::vector matches; for (std::vector::const_reverse_iterator i=src.rbegin();i!=src.rend();i++) { - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; if (item && item_type_match(sel, item) && !item->cloned) { matches.push_back(item); } @@ -2091,7 +2070,6 @@ std::vector sp_get_same_style(SPItem *sel, std::vector &src, S if (sel_style_for_width) { match = (sel_style_for_width->stroke_width.computed == tmp_style.stroke_width.computed); } - objects.clear(); } } match_g = match_g && match; @@ -2579,7 +2557,7 @@ void sp_selection_clone(SPDesktop *desktop) std::vector newsel; - for(std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ + for(std::vector::const_reverse_iterator i=reprs.rbegin();i!=reprs.rend();i++){ Inkscape::XML::Node *sel_repr = *i; Inkscape::XML::Node *parent = sel_repr->parent(); @@ -2631,7 +2609,7 @@ sp_selection_relink(SPDesktop *desktop) bool relinked = false; std::vector items=selection->itemList(); for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = static_cast(*i); + SPItem *item = *i; if (dynamic_cast(item)) { item->getRepr()->setAttribute("xlink:href", newref); @@ -2669,7 +2647,7 @@ sp_selection_unlink(SPDesktop *desktop) bool unlinked = false; std::vector items=selection->itemList(); for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ - SPItem *item = static_cast(*i); + SPItem *item = *i; if (dynamic_cast(item)) { SPObject *tspan = sp_tref_convert_to_tspan(item); @@ -2922,7 +2900,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) //items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); // Why needed? // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items.front())->parent; + SPObject *parent = SP_OBJECT(items[0])->parent; Geom::Affine parent_transform; { @@ -2976,7 +2954,7 @@ static void sp_selection_to_guides_recursive(SPItem *item, bool wholegroups) { if (group && !dynamic_cast(item) && !wholegroups) { std::vector items=sp_item_group_item_list(group); for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - sp_selection_to_guides_recursive(static_cast(*i), wholegroups); + sp_selection_to_guides_recursive(*i, wholegroups); } } else { item->convert_to_guides(); @@ -3007,7 +2985,7 @@ void sp_selection_to_guides(SPDesktop *desktop) // Therefore: first convert all, then delete all. for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - sp_selection_to_guides_recursive(static_cast(*i), wholegroups); + sp_selection_to_guides_recursive(*i, wholegroups); } if (deleteitems) { @@ -3060,7 +3038,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) std::vector items(selection->list()); // Keep track of parent, this is where will be inserted. - Inkscape::XML::Node *the_first_repr = reinterpret_cast( items.front() )->getRepr(); + Inkscape::XML::Node *the_first_repr = items[0]->getRepr(); Inkscape::XML::Node *the_parent_repr = the_first_repr->parent(); // Find out if we have a single group @@ -3068,7 +3046,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) SPGroup *the_group = NULL; Geom::Affine transform; if( items.size() == 1 ) { - SPObject *object = reinterpret_cast( items.front() ); + SPObject *object = items[0]; the_group = dynamic_cast(object); if ( the_group ) { single_group = true; @@ -3125,7 +3103,7 @@ void sp_selection_symbol(SPDesktop *desktop, bool /*apply*/ ) // Move selected items to new for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); + Inkscape::XML::Node *repr = (*i)->getRepr(); repr->parent()->removeChild(repr); symbol_repr->addChild(repr,NULL); } @@ -3197,7 +3175,7 @@ void sp_selection_unsymbol(SPDesktop *desktop) // In converting a symbol back to a group we strip out the inserted group (or any other // group that only adds a transform to the symbol content). if( children.size() == 1 ) { - SPObject *object = reinterpret_cast( children.front() ); + SPObject *object = children[0]; if ( dynamic_cast( object ) ) { if( object->getAttribute("style") == NULL || object->getAttribute("class") == NULL ) { @@ -3209,7 +3187,7 @@ void sp_selection_unsymbol(SPDesktop *desktop) } for (std::vector::const_iterator i=children.begin();i!=children.end();i++){ - Inkscape::XML::Node *repr = SP_OBJECT(*i)->getRepr(); + Inkscape::XML::Node *repr = (*i)->getRepr(); repr->parent()->removeChild(repr); group->addChild(repr,NULL); } @@ -3274,7 +3252,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) sort(items.begin(),items.end(),sp_object_compare_position); // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items.front())->parent; + SPObject *parent = SP_OBJECT(items[0])->parent; Geom::Affine parent_transform; @@ -3288,7 +3266,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) } // remember the position of the first item - gint pos = SP_OBJECT(items.front())->getRepr()->position(); + gint pos = SP_OBJECT(items[0])->getRepr()->position(); // create a list of duplicates std::vector repr_copies; @@ -3446,7 +3424,7 @@ void sp_selection_get_export_hints(Inkscape::Selection *selection, Glib::ustring for (std::vector::const_iterator i=reprlst.begin();filename_search&&xdpi_search&&ydpi_search&&i!=reprlst.end();i++){ gchar const *dpi_string; - Inkscape::XML::Node * repr = (*i); + Inkscape::XML::Node *repr = *i; if (filename_search) { const gchar* tmp = repr->attribute("inkscape:export-filename"); @@ -3546,7 +3524,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) // Create the filename. gchar *const basename = g_strdup_printf("%s-%s-%u.png", document->getName(), - SP_OBJECT(items.front())->getRepr()->attribute("id"), + SP_OBJECT(items[0])->getRepr()->attribute("id"), current); // Imagemagick is known not to handle spaces in filenames, so we replace anything but letters, // digits, and a few other chars, with "_" @@ -3755,7 +3733,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) Inkscape::GC::release(spnew); topmost --; // only reduce count for those items deleted from topmost_parent } else { // move it to topmost_parent first - std::vector temp_clip; + std::vector temp_clip; // At this point, current may already have no item, due to its being a clone whose original is already moved away // So we copy it artificially calculating the transform from its repr->attr("transform") and the parent transform @@ -3896,7 +3874,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ } } else if (!topmost) { // topmost item is used as a mask, which is applied to other items in a selection - Inkscape::XML::Node *dup = SP_OBJECT(items.front())->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = SP_OBJECT(items[0])->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { @@ -4060,7 +4038,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (remove_original) { // remember referenced mask/clippath, so orphaned masks can be moved back to document - SPItem *item = reinterpret_cast(*i); + SPItem *item = *i; Inkscape::URIReference *uri_ref = NULL; if (apply_clip_path) { diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index ce0b5d3da..8bcab664b 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -19,7 +19,6 @@ #include <2geom/forward.h> #include "sp-item.h" -#include "selection.h" class SPCSSAttr; class SPDesktop; diff --git a/src/selection-describer.cpp b/src/selection-describer.cpp index d86cfa700..441ce6ea6 100644 --- a/src/selection-describer.cpp +++ b/src/selection-describer.cpp @@ -47,7 +47,7 @@ char* collect_terms (const std::vector &items) bool first = true; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *item = dynamic_cast(reinterpret_cast(*iter)); + SPItem *item = *iter; if (item) { const char *term = item->displayName(); if (term != NULL && g_slist_find (check, term) == NULL) { @@ -66,7 +66,7 @@ static int count_terms (const std::vector &items) GSList *check = NULL; int count=0; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *item = dynamic_cast(reinterpret_cast(*iter)); + SPItem *item = *iter; if (item) { const char *term = item->displayName(); if (term != NULL && g_slist_find (check, term) == NULL) { @@ -83,7 +83,7 @@ static int count_filtered (const std::vector &items) { int count=0; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *item = dynamic_cast(reinterpret_cast((*iter))); + SPItem *item = *iter; if (item) { count += item->isFiltered(); } @@ -127,7 +127,7 @@ void SelectionDescriber::_updateMessageFromSelection(Inkscape::Selection *select if (items.empty()) { // no items _context.set(Inkscape::NORMAL_MESSAGE, _when_nothing); } else { - SPItem *item = dynamic_cast(reinterpret_cast(items.front())); + SPItem *item = items[0]; g_assert(item != NULL); SPObject *layer = selection->layers()->layerForObject(item); SPObject *root = selection->layers()->currentRoot(); diff --git a/src/selection.cpp b/src/selection.cpp index fd3b6abae..19e78512b 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -130,7 +130,7 @@ void Selection::_invalidateCachedLists() { void Selection::_clear() { _invalidateCachedLists(); while (!_objs.empty()) { - SPObject *obj=reinterpret_cast(_objs.front()); + SPObject *obj=_objs.front(); _remove(obj); } } @@ -254,7 +254,7 @@ void Selection::addList(std::vector const &list) { _invalidateCachedLists(); for ( std::vector::const_iterator iter=list.begin();iter!=list.end();iter++ ) { - SPObject *obj = reinterpret_cast(*iter); + SPObject *obj = *iter; if (includes(obj)) continue; _add (obj); } @@ -297,7 +297,7 @@ std::vector const &Selection::itemList() { } for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { - SPObject *obj=reinterpret_cast(*iter); + SPObject *obj=*iter; if (SP_IS_ITEM(obj)) { _items.push_back(SP_ITEM(obj)); } @@ -342,7 +342,7 @@ std::list const Selection::box3DList(Persp3D *persp) { SPObject *Selection::single() { if ( _objs.size() == 1 ) { - return reinterpret_cast(_objs.front()); + return _objs.front(); } else { return NULL; } @@ -351,7 +351,7 @@ SPObject *Selection::single() { SPItem *Selection::singleItem() { std::vector const items=itemList(); if ( items.size()==1) { - return reinterpret_cast(items.front()); + return items[0]; } else { return NULL; } @@ -447,7 +447,7 @@ Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const boost::optional Selection::center() const { std::vector const items = const_cast(this)->itemList(); if (!items.empty()) { - SPItem *first = reinterpret_cast(items.back()); // from the first item in selection + SPItem *first = items.back(); // from the first item in selection if (first->isCenterSet()) { // only if set explicitly return first->getCenter(); } @@ -467,7 +467,7 @@ std::vector Selection::getSnapPoints(SnapPreferenc snapprefs_dummy.setTargetSnappable(Inkscape::SNAPTARGET_ROTATION_CENTER, false); // locally disable snapping to the item center std::vector p; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *this_item = SP_ITEM(*iter); + SPItem *this_item = *iter; this_item->getSnappoints(p, &snapprefs_dummy); //Include the transformation origin for snapping @@ -482,7 +482,7 @@ std::vector Selection::getSnapPoints(SnapPreferenc void Selection::_removeObjectDescendants(SPObject *obj) { for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { - SPObject *sel_obj=reinterpret_cast(*iter); + SPObject *sel_obj= *iter; SPObject *parent = sel_obj->parent; while (parent) { if ( parent == obj ) { diff --git a/src/selection.h b/src/selection.h index 71be6dd6b..9eada3eed 100644 --- a/src/selection.h +++ b/src/selection.h @@ -40,14 +40,6 @@ class Node; } } -/*template -const GSList* std_list_to_GS_list(const std::list list) const -{ - gpointer l=NULL; - for(auto x:list){ - - } -}*/ namespace Inkscape { diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 0a428edf2..61d8a1ab1 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -434,8 +434,7 @@ void Inkscape::SelTrans::ungrab() for (int i = 0; i < 4; i++) sp_canvas_item_hide(_l[i]); } - - if (!_stamp_cache.empty()) { + if(!_stamp_cache.empty()){ _stamp_cache.clear(); } @@ -494,7 +493,7 @@ void Inkscape::SelTrans::ungrab() // we were dragging center; update reprs and commit undoable action std::vector items=_desktop->selection->itemList(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *it = SP_ITEM(*iter); + SPItem *it = *iter; it->updateRepr(); } DocumentUndo::done(_desktop->getDocument(), SP_VERB_CONTEXT_SELECT, @@ -535,7 +534,7 @@ void Inkscape::SelTrans::stamp() } for(std::vector::const_iterator x=l.begin();x!=l.end();x++) { - SPItem *original_item = SP_ITEM(*x); + SPItem *original_item = *x; Inkscape::XML::Node *original_repr = original_item->getRepr(); // remember the position of the item @@ -713,7 +712,7 @@ void Inkscape::SelTrans::handleClick(SPKnot */*knot*/, guint state, SPSelTransHa // Unset the center position for all selected items std::vector items=_desktop->selection->itemList(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *it = SP_ITEM(*iter); + SPItem *it = *iter; it->unsetCenter(); it->updateRepr(); _center_is_set = false; // center has changed diff --git a/src/snap.cpp b/src/snap.cpp index c711874d7..31cafafcd 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -1055,7 +1055,7 @@ void SnapManager::setupIgnoreSelection(SPDesktop const *desktop, Inkscape::Selection *sel = _desktop->selection; std::vector const items = sel->itemList(); for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - _items_to_ignore.push_back(static_cast(*i)); + _items_to_ignore.push_back(*i); } } diff --git a/src/sp-conn-end.cpp b/src/sp-conn-end.cpp index d09699f41..1e478d1c9 100644 --- a/src/sp-conn-end.cpp +++ b/src/sp-conn-end.cpp @@ -52,7 +52,7 @@ static bool try_get_intersect_point_with_item_recursive(Geom::PathVector& conn_p double child_pos = 0.0; std::vector g = sp_item_group_item_list(group); for (std::vector::const_iterator i = g.begin();i!=g.end();i++) { - SPItem* child_item = SP_ITEM(*i); + SPItem* child_item = *i; try_get_intersect_point_with_item_recursive(conn_pv, child_item, item_transform * child_item->transform, child_pos); if (intersect_pos < child_pos) diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 76843fd28..74d29a05c 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -48,7 +48,7 @@ void SPDefs::update(SPCtx *ctx, guint flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l(this->childList(true)); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *child = SP_OBJECT(*i); + SPObject *child = *i; if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); } diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index 93a979287..5386a4373 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -246,7 +246,7 @@ void SPFilter::update(SPCtx *ctx, guint flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l(this->childList(true, SPObject::ActionUpdate)); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *child = SP_OBJECT (*i); + SPObject *child = *i; if( SP_IS_FILTER_PRIMITIVE( child ) ) { child->updateDisplay(ctx, childflags); } diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index d58676235..620c0b70f 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -173,7 +173,7 @@ void SPGroup::update(SPCtx *ctx, unsigned int flags) { childflags &= SP_OBJECT_MODIFIED_CASCADE; std::vector l=this->childList(true, SPObject::ActionUpdate); for(std::vector ::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *child = SP_OBJECT (*i); + SPObject *child = *i; if (childflags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { SPItem *item = dynamic_cast(child); @@ -217,7 +217,7 @@ void SPGroup::modified(guint flags) { std::vector l=this->childList(true); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *child = SP_OBJECT (*i); + SPObject *child = *i; if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->emitModified(flags); @@ -289,9 +289,9 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox Geom::OptRect bbox; // TODO CPPIFY: replace this const_cast later - std::vector l=const_cast(this)->childList(false, SPObject::ActionBBox); + std::vector l = const_cast(this)->childList(false, SPObject::ActionBBox); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *o = SP_OBJECT (*i); + SPObject *o = *i; SPItem *item = dynamic_cast(o); if (item && !item->isHidden()) { Geom::Affine const ct(item->transform * transform); @@ -305,7 +305,7 @@ Geom::OptRect SPGroup::bbox(Geom::Affine const &transform, SPItem::BBoxType bbox void SPGroup::print(SPPrintContext *ctx) { std::vector l=this->childList(false); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *o = SP_OBJECT (*i); + SPObject *o = *i; SPItem *item = dynamic_cast(o); if (item) { item->invoke_print(ctx); @@ -359,7 +359,7 @@ Inkscape::DrawingItem *SPGroup::show (Inkscape::Drawing &drawing, unsigned int k void SPGroup::hide (unsigned int key) { std::vector l=this->childList(false, SPObject::ActionShow); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *o = SP_OBJECT (*i); + SPObject *o = *i; SPItem *item = dynamic_cast(o); if (item) { @@ -799,7 +799,7 @@ void SPGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem * Inkscape::DrawingItem *ac = NULL; std::vector l=this->childList(false, SPObject::ActionShow); for(std::vector::const_iterator i=l.begin();i!=l.end();i++){ - SPObject *o = SP_OBJECT (*i); + SPObject *o = *i; SPItem * child = dynamic_cast(o); if (child) { ac = child->invoke_show (drawing, key, flags); diff --git a/src/sp-item-group.h b/src/sp-item-group.h index 2258c2133..fc0b6382f 100644 --- a/src/sp-item-group.h +++ b/src/sp-item-group.h @@ -15,7 +15,6 @@ #include #include "sp-lpe-item.h" -#include "selection.h"//SelContainer #define SP_GROUP(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_GROUP(obj) (dynamic_cast((SPObject*)obj) != NULL) diff --git a/src/sp-marker.cpp b/src/sp-marker.cpp index 5bb80bd39..9618c5484 100644 --- a/src/sp-marker.cpp +++ b/src/sp-marker.cpp @@ -453,7 +453,7 @@ const gchar *generate_marker(std::vector &reprs, Geom::Rec SPObject *mark_object = document->getObjectById(mark_id); for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ - Inkscape::XML::Node *node = (*i); + Inkscape::XML::Node *node = *i; SPItem *copy = SP_ITEM(mark_object->appendChildRepr(node)); Geom::Affine dup_transform; diff --git a/src/sp-object.h b/src/sp-object.h index 8651258bd..df773fea7 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -47,8 +47,6 @@ class SPObject; #define SP_OBJECT_WRITE_ALL (1 << 2) #define SP_OBJECT_WRITE_NO_CHILDREN (1 << 3) - - #include #include #include @@ -64,8 +62,6 @@ class SPCSSAttr; class SPStyle; typedef struct _GSList GSList; - - namespace Inkscape { namespace XML { class Node; diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 33d66c5dc..b3aeec7bd 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -427,7 +427,7 @@ const gchar *pattern_tile(const std::vector &reprs, Geom:: SPObject *pat_object = document->getObjectById(pat_id); for (std::vector::const_iterator i=reprs.begin();i!=reprs.end();i++){ - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(*i); + Inkscape::XML::Node *node = *i; SPItem *copy = SP_ITEM(pat_object->appendChildRepr(node)); Geom::Affine dup_transform; diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index 2c9427df8..f252438a4 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -112,7 +112,7 @@ void SPSwitch::_reevaluate(bool /*add_to_drawing*/) { std::vector item_list = _childList(false, SPObject::ActionShow); for ( std::vector::const_reverse_iterator iter=item_list.rbegin();iter!=item_list.rend();iter++) { - SPObject *o = SP_OBJECT (*iter); + SPObject *o = *iter; if ( !SP_IS_ITEM (o) ) { continue; } @@ -147,7 +147,7 @@ void SPSwitch::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem std::vector l = this->_childList(false, SPObject::ActionShow); for ( std::vector::const_reverse_iterator iter=l.rbegin();iter!=l.rend();iter++) { - SPObject *o = SP_OBJECT (*iter); + SPObject *o = *iter; if (SP_IS_ITEM (o)) { SPItem * child = SP_ITEM(o); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index 6e47dfff3..bc09802f0 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -60,11 +60,6 @@ using Inkscape::DocumentUndo; bool Ancetre(Inkscape::XML::Node *a, Inkscape::XML::Node *who); -//SHOULD DISAPPEAR -bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b){ - return sp_repr_compare_position(dynamic_cast(a),dynamic_cast(b)); -} - void sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool_op bop, const unsigned int verb=SP_VERB_NONE, const Glib::ustring description=""); void sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset); void sp_selected_path_create_offset_object(SPDesktop *desktop, int expand, bool updating); @@ -405,7 +400,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // otherwise bail out for (std::vector::const_iterator l = il.begin(); l != il.end(); l++) { - SPItem *item = SP_ITEM(*l); + SPItem *item = *l; if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item) && !SP_IS_FLOWTEXT(item)) { boolop_display_error_message(desktop, _("One of the objects is not a path, cannot perform boolean operation.")); @@ -428,7 +423,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool SP_LPE_ITEM(*l)->removeAllPathEffects(true); } - SPCSSAttr *css = sp_repr_css_attr(reinterpret_cast(il.front())->getRepr(), "style"); + SPCSSAttr *css = sp_repr_css_attr(reinterpret_cast(il[0])->getRepr(), "style"); gchar const *val = sp_repr_css_property(css, "fill-rule", NULL); if (val && strcmp(val, "nonzero") == 0) { origWind[curOrig]= fill_nonZero; @@ -438,7 +433,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool origWind[curOrig]= fill_nonZero; } - originaux[curOrig] = Path_for_item((SPItem *) (*l), true, true); + originaux[curOrig] = Path_for_item(*l, true, true); if (originaux[curOrig] == NULL || originaux[curOrig]->descr_cmd.size() <= 1) { for (int i = curOrig; i >= 0; i--) delete originaux[i]; @@ -475,7 +470,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool curOrig = 1; for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ - if(*l==il.front())continue; + if(*l==il[0])continue; originaux[curOrig]->ConvertWithBackData(0.1); originaux[curOrig]->Fill(theShape, curOrig); @@ -685,7 +680,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool SPObject *source; if ( bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice ) { if (reverseOrderForOp) { - source = SP_OBJECT(il.front()); + source = SP_OBJECT(il[0]); } else { source = SP_OBJECT(il.back()); } @@ -1159,7 +1154,7 @@ sp_selected_path_outline(SPDesktop *desktop) bool did = false; std::vector il(selection->itemList()); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ - SPItem *item = SP_ITEM(*l); + SPItem *item = *l; if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) continue; @@ -1771,7 +1766,7 @@ sp_selected_path_do_offset(SPDesktop *desktop, bool expand, double prefOffset) bool did = false; std::vector il(selection->itemList()); for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ - SPItem *item = SP_ITEM(*l); + SPItem *item = *l; SPCurve *curve = NULL; if (!SP_IS_SHAPE(item) && !SP_IS_TEXT(item)) @@ -2143,7 +2138,7 @@ sp_selected_path_simplify_items(SPDesktop *desktop, desktop->setWaitingCursor(); for (std::vector::const_iterator l = items.begin(); l != items.end(); l++){ - SPItem *item = SP_ITEM(*l); + SPItem *item = *l; if (!(SP_IS_GROUP(item) || SP_IS_SHAPE(item) || SP_IS_TEXT(item))) continue; diff --git a/src/splivarot.h b/src/splivarot.h index 79b9b98a6..ba314399f 100644 --- a/src/splivarot.h +++ b/src/splivarot.h @@ -10,7 +10,6 @@ #include <2geom/forward.h> #include <2geom/path.h> #include "livarot/Path.h" -#include "sp-object.h"//kill it class SPCurve; class SPDesktop; @@ -19,7 +18,7 @@ class SPItem; namespace Inkscape { class Selection; } -bool sp_repr_compare_position_obj(SPObject* &a,SPObject* &b);//kill it with fire + // boolean operations // work on the current selection // selection has 2 contain exactly 2 items diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 33192a330..eadab90dd 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -46,7 +46,7 @@ flowtext_in_selection(Inkscape::Selection *selection) std::vector items = selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_FLOWTEXT(*i)) - return ((SPItem *) *i); + return *i; } return NULL; } @@ -57,7 +57,7 @@ text_or_flowtext_in_selection(Inkscape::Selection *selection) std::vector items = selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) - return ((SPItem *) *i); + return *i; } return NULL; } @@ -68,7 +68,7 @@ shape_in_selection(Inkscape::Selection *selection) std::vector items = selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (SP_IS_SHAPE(*i)) - return ((SPItem *) *i); + return *i; } return NULL; } @@ -402,7 +402,7 @@ text_unflow () continue; } - SPItem *flowtext = SP_ITEM(*i); + SPItem *flowtext = *i; // we discard transform when unflowing, but we must preserve expansion which is visible as // font size multiplier @@ -482,7 +482,7 @@ flowtext_to_text() std::vector items(selection->itemList()); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = (SPItem *) *i; + SPItem *item = *i; if (!SP_IS_FLOWTEXT(item)) continue; diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 88210dc0b..050e223eb 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -69,7 +69,7 @@ void te_update_layout_now_recursive(SPItem *item) if (SP_IS_GROUP(item)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); for(std::vector::const_iterator i=item_list.begin();i!=item_list.end();i++){ - SPItem* list_item = static_cast(*i); + SPItem* list_item = *i; te_update_layout_now_recursive(list_item); } } else if (SP_IS_TEXT(item)) diff --git a/src/trace/trace.cpp b/src/trace/trace.cpp index 4853f127c..91c230920 100644 --- a/src/trace/trace.cpp +++ b/src/trace/trace.cpp @@ -80,7 +80,7 @@ SPImage *Tracer::getSelectedSPImage() { continue; } - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; items.insert(items.begin(), item); } std::vector::iterator iter; diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index 52bc24f5f..a38a52371 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -525,7 +525,7 @@ bool ClipboardManagerImpl::pasteSize(SPDesktop *desktop, bool separately, bool a if (separately) { std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (item) { Geom::OptRect obj_size = item->desktopVisualBounds(); if ( obj_size ) { @@ -581,7 +581,7 @@ bool ClipboardManagerImpl::pastePathEffect(SPDesktop *desktop) sp_selected_to_lpeitems(desktop); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; _applyPathEffect(item, effectstack); } @@ -664,7 +664,7 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) // copy the defs used by all items std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (item) { _copyUsedDefs(item); } else { @@ -677,7 +677,7 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); for(std::vector::const_iterator i=sorted_items.begin();i!=sorted_items.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (item) { Inkscape::XML::Node *obj = item->getRepr(); Inkscape::XML::Node *obj_copy = _copyNode(obj, _doc, _root); @@ -706,7 +706,7 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) // copy style for Paste Style action if (!sorted_items.empty()) { - SPObject *object = static_cast(sorted_items.front()); + SPObject *object = static_cast(sorted_items[0]); SPItem *item = dynamic_cast(object); if (item) { SPCSSAttr *style = take_style_from_item(item); diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 34dbd150b..1ee72dcbc 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -151,7 +151,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) for (std::vector::iterator it(selected.begin()); it != selected.end(); ++it) { - SPItem* item=static_cast (*it); + SPItem* item= *it; desktop->getDocument()->ensureUpToDate(); if (!sel_as_group) b = (item)->desktopPreferredBounds(); @@ -264,8 +264,8 @@ private : std::vector< BBoxSort > sorted; for (std::vector::iterator it(selected.begin()); it != selected.end(); - ++it) - {SPItem *item=static_cast(*it); + ++it){ + SPItem *item = *it; Geom::OptRect bbox = !prefs_bbox ? (item)->desktopVisualBounds() : (item)->desktopGeometricBounds(); if (bbox) { sorted.push_back(BBoxSort(item, *bbox, _orientation, _kBegin, _kEnd)); @@ -570,19 +570,19 @@ private : sort(selected.begin(),selected.end(),sort_compare); } std::vector::iterator it(selected.begin()); - SPItem* item=static_cast(*it); - Geom::Point p1 = (item)->getCenter(); + SPItem* item = *it; + Geom::Point p1 = item->getCenter(); for (++it ;it != selected.end(); ++it) { - item=static_cast(*it); - Geom::Point p2 = (item)->getCenter(); + item = *it; + Geom::Point p2 = item->getCenter(); Geom::Point delta = p1 - p2; - sp_item_move_rel((item),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); + sp_item_move_rel(item,Geom::Translate(delta[Geom::X],delta[Geom::Y] )); p1 = p2; } - Geom::Point p2 = static_cast(selected.front())->getCenter(); + Geom::Point p2 = selected.front()->getCenter(); Geom::Point delta = p1 - p2; - sp_item_move_rel(static_cast(selected.front()),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); + sp_item_move_rel(selected.front(),Geom::Translate(delta[Geom::X],delta[Geom::Y] )); // restore compensation setting prefs->setInt("/options/clonecompensation/value", saved_compensation); @@ -675,7 +675,7 @@ private : it != selected.end(); ++it) { - SPItem* item=static_cast(*it); + SPItem* item = *it; desktop->getDocument()->ensureUpToDate(); Geom::OptRect item_box = !prefs_bbox ? (item)->desktopVisualBounds() : (item)->desktopGeometricBounds(); if (item_box) { @@ -761,7 +761,7 @@ private : it != selected.end(); ++it) { - SPItem* item=static_cast(*it); + SPItem* item = *it; if (SP_IS_TEXT (item) || SP_IS_FLOWTEXT (item)) { Inkscape::Text::Layout const *layout = te_get_layout(item); boost::optional pt = layout->baselineAnchorPoint(); @@ -805,7 +805,7 @@ private : it != selected.end(); ++it) { - SPItem* item=static_cast(*it); + SPItem* item = *it; if (SP_IS_TEXT (item) || SP_IS_FLOWTEXT (item)) { Inkscape::Text::Layout const *layout = te_get_layout(item); boost::optional pt = layout->baselineAnchorPoint(); diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 32eed088c..ca3971019 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -819,7 +819,7 @@ void Export::onAreaToggled () const gchar * id = "object"; const std::vector reprlst = SP_ACTIVE_DESKTOP->getSelection()->reprList(); for(std::vector::const_iterator i=reprlst.begin(); reprlst.end() != i; i++) { - Inkscape::XML::Node * repr = (*i); + Inkscape::XML::Node * repr = *i; if (repr->attribute("id")) { id = repr->attribute("id"); break; @@ -1026,7 +1026,7 @@ void Export::onExport () std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i = itemlist.begin();i!=itemlist.end() && !interrupted ;i++){ - SPItem *item = reinterpret_cast(*i); + SPItem *item = *i; prog_dlg->set_data("current", GINT_TO_POINTER(n)); prog_dlg->set_data("total", GINT_TO_POINTER(num)); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index a6312140d..45c8ce68a 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -690,7 +690,7 @@ private: void select_svg_element(){ Inkscape::Selection* sel = _desktop->getSelection(); if (sel->isEmpty()) return; - Inkscape::XML::Node* node = sel->reprList().front(); + Inkscape::XML::Node* node = sel->reprList()[0]; if (!node || !node->matchAttributeName("id")) return; std::ostringstream xlikhref; @@ -1547,7 +1547,7 @@ void FilterEffectsDialog::FilterModifier::on_selection_toggled(const Glib::ustri std::vector itemlist=sel->itemList(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { - SPItem * item = SP_ITEM(*i); + SPItem * item = *i; SPStyle *style = item->style; g_assert(style != NULL); @@ -1655,7 +1655,7 @@ void FilterEffectsDialog::FilterModifier::remove_filter() if (!SP_IS_ITEM(*i)) { continue; } - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (!item->style) { continue; } diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 283d79c0d..dde040036 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -857,7 +857,7 @@ void Find::onAction() Inkscape::Selection *selection = desktop->getSelection(); selection->clear(); selection->setList(n); - SPObject *obj = reinterpret_cast(n.front()); + SPObject *obj = reinterpret_cast(n[0]); SPItem *item = dynamic_cast(obj); g_assert(item != NULL); scroll_to_show_item(desktop, item); diff --git a/src/ui/dialog/find.h b/src/ui/dialog/find.h index 61f4463ae..4bcb900b6 100644 --- a/src/ui/dialog/find.h +++ b/src/ui/dialog/find.h @@ -16,7 +16,6 @@ # include #endif -#include "selection.h" #include "ui/widget/panel.h" #include "ui/widget/button.h" #include "ui/widget/entry.h" diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index e9a0fc017..1be87d180 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -159,7 +159,7 @@ std::vector FontSubstitution::getFontReplacedItems(SPDocument* doc, Gli allList = get_all_items(x, doc->getRoot(), desktop, false, false, true, y); for(std::vector::const_iterator i = allList.begin();i!=allList.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPStyle *style = item->style; Glib::ustring family = ""; diff --git a/src/ui/dialog/font-substitution.h b/src/ui/dialog/font-substitution.h index cdb4e22b4..0818d778c 100644 --- a/src/ui/dialog/font-substitution.h +++ b/src/ui/dialog/font-substitution.h @@ -13,7 +13,8 @@ #define INKSCAPE_UI_FONT_SUBSTITUTION_H #include -#include "selection.h" + +class SPItem; class SPDocument; namespace Inkscape { diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index fa469dc4b..7ca277ea2 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -581,7 +581,7 @@ void GlyphsPanel::insertText() std::vector itemlist=targetDesktop->selection->itemList(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) { - textItem = SP_ITEM(*i); + textItem = *i; break; } } diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 10498b0f9..8bd130c2e 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -172,7 +172,7 @@ void GridArrangeTab::arrange() const std::vector items = selection ? selection->itemList() : std::vector(); cnt=0; for(std::vector::const_iterator i = items.begin();i!=items.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; Geom::OptRect b = item->documentVisualBounds(); if (!b) { continue; diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index 6ad3d61ac..e9ee7802d 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -368,7 +368,7 @@ void IconPreviewPanel::refreshPreview() std::vector const items = sel->itemList(); for(std::vector::const_iterator i=items.begin();!target && i!=items.end();i++){ - SPItem* item = SP_ITEM( *i); + SPItem* item = *i; gchar const *id = item->getId(); if ( id ) { targetId = id; diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp index 6e09be2ba..781c6ef93 100644 --- a/src/ui/dialog/objects.cpp +++ b/src/ui/dialog/objects.cpp @@ -479,7 +479,7 @@ void ObjectsPanel::_objectsSelected( Selection *sel ) { SPItem *item = NULL; std::vector const items = sel->itemList(); for(std::vector::const_iterator i=items.begin(); i!=items.end();i++){ - item = reinterpret_cast(*i); + item = *i; if (setOpacity) { _setCompositingValues(item); diff --git a/src/ui/dialog/polar-arrange-tab.cpp b/src/ui/dialog/polar-arrange-tab.cpp index a68e73caf..af1386e27 100644 --- a/src/ui/dialog/polar-arrange-tab.cpp +++ b/src/ui/dialog/polar-arrange-tab.cpp @@ -308,7 +308,7 @@ void PolarArrangeTab::arrange() { if(arrangeOnEllipse) { - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if(arrangeOnFirstEllipse) { @@ -375,7 +375,7 @@ void PolarArrangeTab::arrange() int i = 0; for(std::vector::const_iterator it=tmp.begin();it!=tmp.end();it++) { - SPItem *item = SP_ITEM(*it); + SPItem *item = *it; // Ignore the reference ellipse if any if(item != referenceEllipse) diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index b677711ff..5fab9fcfc 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -355,7 +355,7 @@ void TagsPanel::_objectsSelected( Selection *sel ) { std::vector tmp=sel->list(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; _store->foreach(sigc::bind( sigc::mem_fun(*this, &TagsPanel::_checkForSelected), obj)); } _selectedConnection.unblock(); diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 1c1cf5937..9c4790379 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -422,7 +422,7 @@ SPItem *TextEdit::getSelectedTextItem (void) for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++) { if (SP_IS_TEXT(*i) || SP_IS_FLOWTEXT(*i)) - return SP_ITEM (*i); + return *i; } return NULL; diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 0f81a7e58..459e6e937 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -655,7 +655,7 @@ void Transformation::updatePageTransform(Inkscape::Selection *selection) { if (selection && !selection->isEmpty()) { if (_check_replace_matrix.get_active()) { - Geom::Affine current (SP_ITEM(selection->itemList().front())->transform); // take from the first item in selection + Geom::Affine current (selection->itemList()[0]->transform); // take from the first item in selection Geom::Affine new_displayed = current; @@ -750,8 +750,8 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) it != selected.end(); ++it) { - SPItem* item=static_cast(*it); - Geom::OptRect bbox = (item)->desktopPreferredBounds(); + SPItem* item = *it; + Geom::OptRect bbox = item->desktopPreferredBounds(); if (bbox) { sorted.push_back(BBoxSort(item, *bbox, Geom::X, x > 0? 1. : 0., x > 0? 0. : 1.)); } @@ -775,8 +775,8 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) it != selected.end(); ++it) { - SPItem* item=static_cast(*it); - Geom::OptRect bbox = (item)->desktopPreferredBounds(); + SPItem* item = *it; + Geom::OptRect bbox = item->desktopPreferredBounds(); if (bbox) { sorted.push_back(BBoxSort(item, *bbox, Geom::Y, y > 0? 1. : 0., y > 0? 0. : 1.)); } @@ -818,7 +818,7 @@ void Transformation::applyPageScale(Inkscape::Selection *selection) if (prefs->getBool("/dialogs/transformation/applyseparately")) { std::vector tmp=selection->itemList(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; Geom::OptRect bbox_pref = item->desktopPreferredBounds(); Geom::OptRect bbox_geom = item->desktopGeometricBounds(); if (bbox_pref && bbox_geom) { @@ -882,7 +882,7 @@ void Transformation::applyPageRotate(Inkscape::Selection *selection) if (prefs->getBool("/dialogs/transformation/applyseparately")) { std::vector tmp=selection->itemList(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; sp_item_rotate_rel(item, Geom::Rotate (angle*M_PI/180.0)); } } else { @@ -902,7 +902,7 @@ void Transformation::applyPageSkew(Inkscape::Selection *selection) if (prefs->getBool("/dialogs/transformation/applyseparately")) { std::vector items=selection->itemList(); for(std::vector::const_iterator i = items.begin();i!=items.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (!_units_skew.isAbsolute()) { // percentage double skewX = _scalar_skew_horizontal.getValue("%"); @@ -1004,7 +1004,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) if (_check_replace_matrix.get_active()) { std::vector tmp=selection->itemList(); for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; item->set_item_transform(displayed); SP_OBJECT(item)->updateRepr(); } @@ -1155,7 +1155,7 @@ void Transformation::onReplaceMatrixToggled() double f = _scalar_transform_f.getValue(); Geom::Affine displayed (a, b, c, d, e, f); - Geom::Affine current = SP_ITEM(selection->itemList().front())->transform; // take from the first item in selection + Geom::Affine current = selection->itemList()[0]->transform; // take from the first item in selection Geom::Affine new_displayed; if (_check_replace_matrix.get_active()) { diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 193dff33c..760d19e89 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -2077,7 +2077,7 @@ void ContextMenu::ImageEdit(void) std::vector itemlist=_desktop->selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - Inkscape::XML::Node *ir = SP_ITEM(*i)->getRepr(); + Inkscape::XML::Node *ir = (*i)->getRepr(); const gchar *href = ir->attribute("xlink:href"); if (strncmp (href,"file:",5) == 0) { diff --git a/src/ui/tools/connector-tool.cpp b/src/ui/tools/connector-tool.cpp index 9c6eead16..f48e572df 100644 --- a/src/ui/tools/connector-tool.cpp +++ b/src/ui/tools/connector-tool.cpp @@ -1318,7 +1318,7 @@ void cc_selection_set_avoid(bool const set_avoid) std::vector l = selection->itemList(); for(std::vector::const_iterator i=l.begin();i!=l.end();i++) { - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; char const *value = (set_avoid) ? "true" : NULL; diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index b61a108f0..adbbb2bd3 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -692,8 +692,8 @@ void EraserTool::set_to_accumulated() { if ( !toWorkOn.empty() ) { if ( eraserMode ) { - for (std::vector::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { - SPItem *item = SP_ITEM(*i); + for (std::vector::const_iterator i = toWorkOn.begin(); i != toWorkOn.end(); i++){ + SPItem *item = *i; if ( eraserMode ) { Geom::OptRect bbox = item->visualBounds(); @@ -712,7 +712,7 @@ void EraserTool::set_to_accumulated() { // If the item was not completely erased, track the new remainder. std::vector nowSel(selection->itemList()); for (std::vector::const_iterator i2 = nowSel.begin();i2!=nowSel.end();i2++) { - remainingItems.push_back(SP_ITEM(*i2)); + remainingItems.push_back(*i2); } } } else { @@ -722,11 +722,11 @@ void EraserTool::set_to_accumulated() { } } else { for (std::vector ::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { - sp_object_ref( SP_ITEM(*i), 0 ); + sp_object_ref( *i, 0 ); } for (std::vector::const_iterator i = toWorkOn.begin();i!=toWorkOn.end();i++) { - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; item->deleteObject(true); sp_object_unref(item); workDone = true; diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index 6f7b220ed..21ad18c26 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -506,7 +506,7 @@ bool GradientTool::root_handler(GdkEvent* event) { } else { std::vector items=selection->itemList(); for (std::vector::const_iterator i = items.begin();i!=items.end();i++) { - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPGradientType new_type = (SPGradientType) prefs->getInt("/tools/gradient/newgradient", SP_GRADIENT_TYPE_LINEAR); Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -890,12 +890,6 @@ bool GradientTool::root_handler(GdkEvent* event) { return ret; } -int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) -{ - return sp_repr_compare_position(((SPItem*)first)->getRepr(), - ((SPItem*)second)->getRepr())<0; -} - static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*state*/, guint32 etime) { SPDesktop *desktop = SP_EVENT_CONTEXT(&rc)->desktop; @@ -931,14 +925,14 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta //FIXME: see above sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); - sp_item_set_gradient(SP_ITEM(*i), vector, (SPGradientType) type, fill_or_stroke); + sp_item_set_gradient(*i, vector, (SPGradientType) type, fill_or_stroke); if (type == SP_GRADIENT_TYPE_LINEAR) { - sp_item_gradient_set_coords (SP_ITEM(*i), POINT_LG_BEGIN, 0, rc.origin, fill_or_stroke, true, false); - sp_item_gradient_set_coords (SP_ITEM(*i), POINT_LG_END, 0, pt, fill_or_stroke, true, false); + sp_item_gradient_set_coords (*i, POINT_LG_BEGIN, 0, rc.origin, fill_or_stroke, true, false); + sp_item_gradient_set_coords (*i, POINT_LG_END, 0, pt, fill_or_stroke, true, false); } else if (type == SP_GRADIENT_TYPE_RADIAL) { - sp_item_gradient_set_coords (SP_ITEM(*i), POINT_RG_CENTER, 0, rc.origin, fill_or_stroke, true, false); - sp_item_gradient_set_coords (SP_ITEM(*i), POINT_RG_R1, 0, pt, fill_or_stroke, true, false); + sp_item_gradient_set_coords (*i, POINT_RG_CENTER, 0, rc.origin, fill_or_stroke, true, false); + sp_item_gradient_set_coords (*i, POINT_RG_R1, 0, pt, fill_or_stroke, true, false); } SP_OBJECT(*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); } @@ -949,7 +943,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta ec->_grdrag->local_change = true; // give the grab out-of-bounds values of xp/yp because we're already dragging // and therefore are already out of tolerance - ec->_grdrag->grabKnot (SP_ITEM(selection->itemList().front()), + ec->_grdrag->grabKnot (selection->itemList()[0], type == SP_GRADIENT_TYPE_LINEAR? POINT_LG_END : POINT_RG_R1, -1, // ignore number (though it is always 1) fill_or_stroke, 99999, 99999, etime); diff --git a/src/ui/tools/gradient-tool.h b/src/ui/tools/gradient-tool.h index 786aed372..6fe3bca9f 100644 --- a/src/ui/tools/gradient-tool.h +++ b/src/ui/tools/gradient-tool.h @@ -18,7 +18,6 @@ #include #include #include "ui/tools/tool-base.h" -class SPObject;//kill it #define SP_GRADIENT_CONTEXT(obj) (dynamic_cast((Inkscape::UI::Tools::ToolBase*)obj)) #define SP_IS_GRADIENT_CONTEXT(obj) (dynamic_cast((const Inkscape::UI::Tools::ToolBase*)obj) != NULL) @@ -26,12 +25,12 @@ class SPObject;//kill it namespace Inkscape { namespace UI { namespace Tools { -int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second);//kill it class GradientTool : public ToolBase { public: GradientTool(); virtual ~GradientTool(); + Geom::Point origin; bool cursor_addnode; diff --git a/src/ui/tools/measure-tool.cpp b/src/ui/tools/measure-tool.cpp index 2b44639c8..5295a16c0 100644 --- a/src/ui/tools/measure-tool.cpp +++ b/src/ui/tools/measure-tool.cpp @@ -444,7 +444,7 @@ bool MeasureTool::root_handler(GdkEvent* event) { std::vector items = desktop->getDocument()->getItemsAtPoints(desktop->dkey, points); std::vector intersection_times; for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - SPItem *item = static_cast(*i); + SPItem *item = *i; if (SP_IS_SHAPE(item)) { calculate_intersections(desktop, item, lineseg, SP_SHAPE(item)->getCurve(), intersection_times); diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index 0a34e4855..c8e032089 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -48,7 +48,6 @@ // Mesh specific #include "ui/tools/mesh-tool.h" -#include "ui/tools/gradient-tool.h"//not needed #include "sp-mesh-gradient.h" #include "display/sp-ctrlcurve.h" @@ -478,12 +477,12 @@ bool MeshTool::root_handler(GdkEvent* event) { if (over_line) { // We take the first item in selection, because with doubleclick, the first click // always resets selection to the single object under cursor - sp_mesh_context_split_near_point(this, SP_ITEM(selection->itemList().front()), this->mousepoint_doc, event->button.time); + sp_mesh_context_split_near_point(this, selection->itemList()[0], this->mousepoint_doc, event->button.time); } else { // Create a new gradient with default coordinates. std::vector items=selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPGradientType new_type = SP_GRADIENT_TYPE_MESH; Inkscape::PaintTarget fsmode = (prefs->getInt("/tools/gradient/newfillorstroke", 1) != 0) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE; @@ -932,12 +931,6 @@ bool MeshTool::root_handler(GdkEvent* event) { return ret; } -/* -int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) -{ - return sp_repr_compare_position(((SPItem*)first)->getRepr(), - ((SPItem*)second)->getRepr())<0; -}*/ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/, guint32 /*etime*/) { SPDesktop *desktop = SP_EVENT_CONTEXT(&rc)->desktop; diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index 25cbf76a4..fbc1a9e6c 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -481,7 +481,7 @@ bool SelectTool::root_handler(GdkEvent* event) { case GDK_2BUTTON_PRESS: if (event->button.button == 1) { if (!selection->isEmpty()) { - SPItem *clicked_item = static_cast(selection->itemList().front()); + SPItem *clicked_item = selection->itemList()[0]; if (dynamic_cast(clicked_item) && !dynamic_cast(clicked_item)) { // enter group if it's not a 3D box desktop->setCurrentLayer(clicked_item); diff --git a/src/ui/tools/spray-tool.cpp b/src/ui/tools/spray-tool.cpp index ac41f3a34..d92d326e0 100644 --- a/src/ui/tools/spray-tool.cpp +++ b/src/ui/tools/spray-tool.cpp @@ -553,13 +553,13 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point std::vector const items(selection->itemList()); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; g_assert(item != NULL); sp_object_ref(item); } for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; g_assert(item != NULL); if (is_transform_modes(tc->mode)) { @@ -574,7 +574,7 @@ static bool sp_spray_dilate(SprayTool *tc, Geom::Point /*event_p*/, Geom::Point } for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; g_assert(item != NULL); sp_object_unref(item); } diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 6f7764506..8c5e4215e 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -1089,7 +1089,7 @@ sp_tweak_dilate (TweakTool *tc, Geom::Point event_p, Geom::Point p, Geom::Point std::vector items=selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; if (is_color_mode (tc->mode)) { if (do_fill || do_stroke || do_opacity) { diff --git a/src/unclump.cpp b/src/unclump.cpp index 29608befa..81c958937 100644 --- a/src/unclump.cpp +++ b/src/unclump.cpp @@ -173,7 +173,7 @@ static double unclump_average (SPItem *item, std::list &others) int n = 0; double sum = 0; for (std::list::const_iterator i = others.begin(); i != others.end();i++) { - SPItem *other = SP_ITEM (*i); + SPItem *other = *i; if (other == item) continue; @@ -197,7 +197,7 @@ static SPItem *unclump_closest (SPItem *item, std::list &others) SPItem *closest = NULL; for (std::list::const_iterator i = others.begin(); i != others.end();i++) { - SPItem *other = SP_ITEM (*i); + SPItem *other = *i; if (other == item) continue; @@ -220,7 +220,7 @@ static SPItem *unclump_farest (SPItem *item, std::list &others) double max = -HUGE_VAL; SPItem *farest = NULL; for (std::list::const_iterator i = others.begin(); i != others.end();i++) { - SPItem *other = SP_ITEM (*i); + SPItem *other = *i; if (other == item) continue; @@ -260,7 +260,7 @@ unclump_remove_behind (SPItem *item, SPItem *closest, std::list &rest) std::vector out; for (std::list::const_reverse_iterator i = rest.rbegin(); i != rest.rend();i++) { - SPItem *other = SP_ITEM (*i); + SPItem *other = *i; if (other == item) continue; @@ -337,7 +337,7 @@ unclump (std::vector &items) wh_cache.clear(); for (std::vector::const_iterator i = items.begin(); i != items.end();i++) { // for each original/clone x: - SPItem *item = SP_ITEM (*i); + SPItem *item = *i; std::list nei; diff --git a/src/unclump.h b/src/unclump.h index 407628f3a..461e99d0b 100644 --- a/src/unclump.h +++ b/src/unclump.h @@ -12,7 +12,6 @@ #define SEEN_DIALOGS_UNCLUMP_H typedef struct _GSList GSList; -#include "selection.h" void unclump(std::vector &items); diff --git a/src/vanishing-point.cpp b/src/vanishing-point.cpp index 770845f38..46f895c06 100644 --- a/src/vanishing-point.cpp +++ b/src/vanishing-point.cpp @@ -258,7 +258,7 @@ VanishingPoint::selectedBoxes(Inkscape::Selection *sel) { std::list sel_boxes; std::vector itemlist=sel->itemList(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem *item = static_cast(*i); + SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box && this->hasBox(box)) { sel_boxes.push_back(box); @@ -398,7 +398,7 @@ VPDragger::VPsOfSelectedBoxes() { Inkscape::Selection *sel = SP_ACTIVE_DESKTOP->getSelection(); std::vector itemlist=sel->itemList(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem *item = static_cast(*i); + SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { vp = this->findVPWithBox(box); @@ -581,7 +581,7 @@ VPDrag::updateDraggers () std::vector itemlist=this->selection->itemList(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem *item = static_cast(*i); + SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { VanishingPoint vp; @@ -614,7 +614,7 @@ VPDrag::updateLines () std::vector itemlist=this->selection->itemList(); for (std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++) { - SPItem *item = static_cast(*i); + SPItem *item = *i; SPBox3D *box = dynamic_cast(item); if (box) { this->drawLinesForFace (box, Proj::X); diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp index cb24bb8aa..71418e238 100644 --- a/src/widgets/arc-toolbar.cpp +++ b/src/widgets/arc-toolbar.cpp @@ -99,7 +99,7 @@ sp_arctb_startend_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const *v bool modmade = false; std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { SPGenericEllipse *ge = SP_GENERICELLIPSE(item); @@ -165,7 +165,7 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) if ( ege_select_one_action_get_active(act) != 0 ) { std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("sodipodi:open", "true"); @@ -176,7 +176,7 @@ static void sp_arctb_open_state_changed( EgeSelectOneAction *act, GObject *tbl ) } else { std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("sodipodi:open", NULL); @@ -266,7 +266,7 @@ static void sp_arc_toolbox_selection_changed(Inkscape::Selection *selection, GOb std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_GENERICELLIPSE(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp index 49cf8e6fd..1c99f283d 100644 --- a/src/widgets/connector-toolbar.cpp +++ b/src/widgets/connector-toolbar.cpp @@ -99,7 +99,7 @@ static void sp_connector_orthogonal_toggled( GtkToggleAction* act, GObject *tbl bool modmade = false; std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (Inkscape::UI::Tools::cc_item_is_connector(item)) { item->setAttribute( "inkscape:connector-type", @@ -146,7 +146,7 @@ static void connector_curvature_changed(GtkAdjustment *adj, GObject* tbl) bool modmade = false; std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (Inkscape::UI::Tools::cc_item_is_connector(item)) { item->setAttribute( "inkscape:connector-curvature", diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index dbb84efba..7d5a89cf5 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -591,11 +591,11 @@ void FillNStroke::updateFromPaint() if ( gr && createSwatch ) { gr->setSwatch(); } - sp_item_set_gradient(SP_ITEM(*i), + sp_item_set_gradient(*i, gr, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); } else { - sp_item_set_gradient(SP_ITEM(*i), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); + sp_item_set_gradient(*i, vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); } } } else { @@ -608,7 +608,7 @@ void FillNStroke::updateFromPaint() sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); } - SPGradient *gr = sp_item_set_gradient(SP_ITEM(*i), vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); + SPGradient *gr = sp_item_set_gradient(*i, vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); psel->pushAttrsToGradient( gr ); } } diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp index 5aa654a80..6743dd23a 100644 --- a/src/widgets/gradient-toolbar.cpp +++ b/src/widgets/gradient-toolbar.cpp @@ -118,7 +118,7 @@ void gr_apply_gradient(Inkscape::Selection *selection, GrDrag *drag, SPGradient // If no drag or no dragger selected, act on selection std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - gr_apply_gradient_to_item(SP_ITEM(*i), gr, initialType, initialMode, initialMode); + gr_apply_gradient_to_item(*i, gr, initialType, initialMode, initialMode); } } @@ -220,7 +220,7 @@ void gr_get_dt_selected_gradient(Inkscape::Selection *selection, SPGradient *&gr std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version + SPItem *item = *i;// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; @@ -288,7 +288,7 @@ void gr_read_selection( Inkscape::Selection *selection, // If no selected dragger, read desktop selection std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { diff --git a/src/widgets/mesh-toolbar.cpp b/src/widgets/mesh-toolbar.cpp index 682c61e77..49fc7b67c 100644 --- a/src/widgets/mesh-toolbar.cpp +++ b/src/widgets/mesh-toolbar.cpp @@ -89,7 +89,7 @@ void ms_read_selection( Inkscape::Selection *selection, std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPStyle *style = item->style; if (style && (style->fill.isPaintserver())) { @@ -216,7 +216,7 @@ void ms_get_dt_selected_gradient(Inkscape::Selection *selection, SPMeshGradient std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i);// get the items gradient, not the getVector() version + SPItem *item = *i;// get the items gradient, not the getVector() version SPStyle *style = item->style; SPPaintServer *server = 0; diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index 65078af01..2b07dd3b9 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -246,9 +246,9 @@ static void sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GO std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - if (SP_IS_RECT(reinterpret_cast(*i))) { + if (SP_IS_RECT(*i)) { n_selected++; - item = reinterpret_cast(*i); + item = *i; repr = item->getRepr(); } } diff --git a/src/widgets/spiral-toolbar.cpp b/src/widgets/spiral-toolbar.cpp index 6f967e8ae..751a60f06 100644 --- a/src/widgets/spiral-toolbar.cpp +++ b/src/widgets/spiral-toolbar.cpp @@ -81,7 +81,7 @@ static void sp_spl_tb_value_changed(GtkAdjustment *adj, GObject *tbl, Glib::ustr bool modmade = false; std::vector itemlist=desktop->getSelection()->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_SPIRAL(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double( repr, namespaced_name, @@ -197,7 +197,7 @@ static void sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_SPIRAL(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp index 1946dee6e..96005d7df 100644 --- a/src/widgets/star-toolbar.cpp +++ b/src/widgets/star-toolbar.cpp @@ -85,7 +85,7 @@ static void sp_stb_magnitude_value_changed( GtkAdjustment *adj, GObject *dataKlu Inkscape::Selection *selection = desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_int(repr,"sodipodi:sides", @@ -130,7 +130,7 @@ static void sp_stb_proportion_value_changed( GtkAdjustment *adj, GObject *dataKl Inkscape::Selection *selection = desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); @@ -187,7 +187,7 @@ static void sp_stb_sides_flat_state_changed( EgeSelectOneAction *act, GObject *d std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); repr->setAttribute("inkscape:flatsided", flat ? "true" : "false" ); @@ -226,7 +226,7 @@ static void sp_stb_rounded_value_changed( GtkAdjustment *adj, GObject *dataKludg Inkscape::Selection *selection = desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double(repr, "inkscape:rounded", @@ -266,7 +266,7 @@ static void sp_stb_randomized_value_changed( GtkAdjustment *adj, GObject *dataKl Inkscape::Selection *selection = desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { Inkscape::XML::Node *repr = item->getRepr(); sp_repr_set_svg_double(repr, "inkscape:randomized", @@ -369,7 +369,7 @@ sp_star_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl) std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_STAR(item)) { n_selected++; repr = item->getRepr(); diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 65390819b..c05ef93e7 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -477,7 +477,7 @@ void StrokeStyle::markerSelectCB(MarkerComboBox *marker_combo, StrokeStyle *spw, Inkscape::Selection *selection = spw->desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (!SP_IS_SHAPE(item) || SP_IS_RECT(item)) { // can't set marker to rect, until it's converted to using continue; } @@ -902,7 +902,7 @@ StrokeStyle::updateLine() return; std::vector const objects = sel->itemList(); - SPObject * const object = SP_OBJECT(objects.front()); + SPObject * const object = SP_OBJECT(objects[0]); SPStyle * const style = object->style; /* Markers */ @@ -1155,6 +1155,7 @@ StrokeStyle::updateAllMarkers(std::vector const &objects) for(std::vector::const_iterator i=objects.begin();i!=objects.end();i++){ if (!SP_IS_TEXT (*i)) { all_texts = false; + break; } } @@ -1166,7 +1167,7 @@ StrokeStyle::updateAllMarkers(std::vector const &objects) // We show markers of the first object in the list only // FIXME: use the first in the list that has the marker of each type, if any - SPObject *object = SP_OBJECT(objects.front()); + SPObject *object = SP_OBJECT(objects[0]); for (unsigned i = 0; i < G_N_ELEMENTS(keyloc); ++i) { // For all three marker types, diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 71915377e..6b0fb34e6 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -368,8 +368,8 @@ static void sp_text_align_mode_changed( EgeSelectOneAction *act, GObject *tbl ) Inkscape::Selection *selection = desktop->getSelection(); std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ - if (SP_IS_TEXT(SP_ITEM(*i))) { - SPItem *item = SP_ITEM(*i); + if (SP_IS_TEXT(*i)) { + SPItem *item = *i; unsigned writing_mode = item->style->writing_mode.value; // below, variable names suggest horizontal move, but we check the writing direction @@ -868,7 +868,7 @@ static void sp_text_toolbox_selection_changed(Inkscape::Selection */*selection*/ for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ // const gchar* id = reinterpret_cast(items->data)->getId(); // std::cout << " " << id << std::endl; - if( SP_IS_FLOWTEXT(SP_ITEM(*i))) { + if( SP_IS_FLOWTEXT(*i)) { isFlow = true; // std::cout << " Found flowed text" << std::endl; break; @@ -1160,7 +1160,7 @@ static void sp_text_toolbox_select_cb( GtkEntry* entry, GtkEntryIconPosition /*p std::vector x,y; std::vector allList = get_all_items(x, document->getRoot(), desktop, false, false, true, y); for(std::vector::const_reverse_iterator i=allList.rbegin();i!=allList.rend();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; SPStyle *style = item->style; if (style) { -- cgit v1.2.3 From 9bdc157f705ca61516e599cb416580283d21ec35 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 27 Feb 2015 04:21:48 +0100 Subject: more cast cleanup (bzr r13922.1.11) --- src/desktop-style.cpp | 29 ++++++++++---------- src/extension/implementation/implementation.cpp | 2 +- src/extension/internal/cairo-renderer.cpp | 3 +-- src/extension/internal/latex-text-renderer.cpp | 3 +-- src/live_effects/lpe-knot.cpp | 2 +- src/path-chemistry.cpp | 4 +-- src/selcue.cpp | 2 +- src/selection-chemistry.cpp | 36 ++++++++++++------------- src/selection.cpp | 2 +- src/seltrans.cpp | 2 +- src/sp-item-group.cpp | 4 +-- src/sp-lpe-item.cpp | 10 +++---- src/splivarot.cpp | 10 +++---- src/text-chemistry.cpp | 8 +++--- src/ui/clipboard.cpp | 2 +- src/ui/dialog/filter-effects-dialog.cpp | 2 +- src/ui/dialog/find.cpp | 18 ++++++------- src/ui/dialog/grid-arrange-tab.cpp | 2 +- src/ui/dialog/tags.cpp | 2 +- src/ui/dialog/text-edit.cpp | 2 +- src/ui/tools/gradient-tool.cpp | 2 +- src/ui/tools/mesh-tool.cpp | 6 ++--- src/ui/tools/node-tool.cpp | 2 +- src/ui/widget/style-subject.cpp | 4 +-- src/widgets/fill-style.cpp | 8 +++--- src/widgets/rect-toolbar.cpp | 2 +- src/widgets/stroke-style.cpp | 4 +-- src/widgets/text-toolbar.cpp | 2 +- 28 files changed, 86 insertions(+), 89 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 82f66dcdf..afdc3064a 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -197,7 +197,7 @@ sp_desktop_set_style(SPDesktop *desktop, SPCSSAttr *css, bool change, bool write std::vector const itemlist = desktop->selection->itemList(); for (std::vector::const_iterator i = itemlist.begin(); i!= itemlist.end(); i++) { /* last used styles for 3D box faces are stored separately */ - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; Box3DSide *side = dynamic_cast(obj); if (side) { const char * descr = box3d_side_axes_string(side); @@ -448,7 +448,6 @@ stroke_average_width (const std::vector &objects) bool notstroked = true; int n_notstroked = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); SPItem *item = *i; if (!item) { continue; @@ -515,7 +514,7 @@ objects_query_fillstroke (const std::vector &objects, SPStyle *style_re bool same_color = true; for (std::vector::const_iterator i = objects.begin(); i!= objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!obj) { continue; } @@ -699,7 +698,7 @@ objects_query_opacity (const std::vector &objects, SPStyle *style_res) for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!obj) { continue; } @@ -755,7 +754,7 @@ objects_query_strokewidth (const std::vector &objects, SPStyle *style_r int n_stroked = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!obj) { continue; } @@ -829,7 +828,7 @@ objects_query_miterlimit (const std::vector &objects, SPStyle *style_re bool same_ml = true; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!dynamic_cast(obj)) { continue; } @@ -888,7 +887,7 @@ objects_query_strokecap (const std::vector &objects, SPStyle *style_res int n_stroked = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!dynamic_cast(obj)) { continue; } @@ -942,7 +941,7 @@ objects_query_strokejoin (const std::vector &objects, SPStyle *style_re int n_stroked = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!dynamic_cast(obj)) { continue; } @@ -1005,7 +1004,7 @@ objects_query_fontnumbers (const std::vector &objects, SPStyle *style_r int no_size = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!isTextualItem(obj)) { continue; @@ -1124,7 +1123,7 @@ objects_query_fontstyle (const std::vector &objects, SPStyle *style_res int texts = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!isTextualItem(obj)) { continue; @@ -1193,7 +1192,7 @@ objects_query_baselines (const std::vector &objects, SPStyle *style_res int texts = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!isTextualItem(obj)) { continue; @@ -1281,7 +1280,7 @@ objects_query_fontfamily (const std::vector &objects, SPStyle *style_re style_res->font_family.set = FALSE; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; if (!isTextualItem(obj)) { @@ -1337,7 +1336,7 @@ objects_query_fontspecification (const std::vector &objects, SPStyle *s style_res->font_specification.set = FALSE; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; // std::cout << " " << reinterpret_cast(i->data)->getId() << std::endl; if (!isTextualItem(obj)) { @@ -1395,7 +1394,7 @@ objects_query_blend (const std::vector &objects, SPStyle *style_res) guint items = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!obj) { continue; } @@ -1485,7 +1484,7 @@ objects_query_blur (const std::vector &objects, SPStyle *style_res) guint items = 0; for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { - SPObject *obj = reinterpret_cast(*i); + SPObject *obj = *i; if (!obj) { continue; } diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index 11c494b18..717ca3310 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -51,7 +51,7 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node const* first_select = NULL; if (!selected.empty()) { - const SPItem * item = selected.front(); + const SPItem * item = selected[0]; first_select = item->getRepr(); } diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index b30c8892e..a2cea014b 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -296,8 +296,7 @@ static void sp_group_render(SPGroup *group, CairoRenderContext *ctx) std::vector l(group->childList(false)); for(std::vector::const_iterator x = l.begin(); x!= l.end(); x++){ - SPObject *o = reinterpret_cast(*x); - SPItem *item = dynamic_cast(o); + SPItem *item = static_cast(*x); if (item) { renderer->renderItem(ctx, item); } diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index 831a8d030..ab863f8b1 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -230,8 +230,7 @@ void LaTeXTextRenderer::sp_group_render(SPGroup *group) { std::vector l = (group->childList(false)); for(std::vector::const_iterator x = l.begin(); x != l.end(); x++){ - SPObject *o = *x; - SPItem *item = dynamic_cast(o); + SPItem *item = static_cast(*x); if (item) { renderItem(item); } diff --git a/src/live_effects/lpe-knot.cpp b/src/live_effects/lpe-knot.cpp index 7a1d391a3..6ec4b969b 100644 --- a/src/live_effects/lpe-knot.cpp +++ b/src/live_effects/lpe-knot.cpp @@ -507,7 +507,7 @@ collectPathsAndWidths (SPLPEItem const *lpeitem, std::vector &paths, if (SP_IS_GROUP(lpeitem)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); for ( std::vector::const_iterator iter = item_list.begin(); iter != item_list.end(); iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { collectPathsAndWidths(SP_LPE_ITEM(subitem), paths, stroke_widths); } diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 53ad96596..b128535bc 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -48,7 +48,7 @@ using Inkscape::DocumentUndo; inline bool less_than_items(SPItem const *first, SPItem const *second) { return sp_repr_compare_position(first->getRepr(), - second->getRepr())>0; + second->getRepr())<0; } void @@ -615,7 +615,7 @@ sp_selected_path_reverse(SPDesktop *desktop) for (std::vector::const_iterator i = items.begin(); i != items.end(); i++){ - SPPath *path = dynamic_cast(static_cast(*i)); + SPPath *path = dynamic_cast(*i); if (!path) { continue; } diff --git a/src/selcue.cpp b/src/selcue.cpp index 76eae3fa8..c73219b7d 100644 --- a/src/selcue.cpp +++ b/src/selcue.cpp @@ -203,7 +203,7 @@ void Inkscape::SelCue::_newTextBaselines() std::vector ll = _selection->itemList(); for (std::vector::const_iterator l=ll.begin();l!=ll.end();l++) { - SPItem *item = static_cast(*l); + SPItem *item = *l; SPCanvasItem* baseline_point = NULL; if (SP_IS_TEXT(item) || SP_IS_FLOWTEXT(item)) { // visualize baseline diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index d6f8b8a37..0100e1040 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -555,7 +555,7 @@ void sp_edit_clear_all(Inkscape::Selection *selection) std::vector items = sp_item_group_item_list(group); for(unsigned int i = 0; i < items.size(); i++){ - reinterpret_cast(items[i])->deleteObject(); + items[i]->deleteObject(); } DocumentUndo::done(doc, SP_VERB_EDIT_CLEAR_ALL, @@ -627,7 +627,7 @@ static void sp_edit_select_all_full(SPDesktop *dt, bool force_all_layers, bool i std::vector all_items = sp_item_group_item_list(dynamic_cast(dt->currentLayer())); for (std::vector::const_reverse_iterator i=all_items.rbegin();i!=all_items.rend();i++) { - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; if (item && (!onlysensitive || !item->isLocked())) { if (!onlyvisible || !dt->itemIsHidden(item)) { @@ -683,8 +683,8 @@ static void sp_selection_group_impl(std::vector p, Inkscap sort(p.begin(),p.end(),sp_repr_compare_position); // Remember the position and parent of the topmost object. - gint topmost = (dynamic_cast(p.back()))->position(); - Inkscape::XML::Node *topmost_parent = (dynamic_cast(p.back()))->parent(); + gint topmost = p.back()->position(); + Inkscape::XML::Node *topmost_parent = p.back()->parent(); for(std::vector::const_iterator i = p.begin(); i != p.end(); i++){ Inkscape::XML::Node *current = *i; @@ -791,7 +791,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) std::vector new_select; GSList *groups = NULL; for (std::vector::const_iterator item = old_select.begin(); item!=old_select.end(); item++) { - SPItem *obj = static_cast(*item); + SPItem *obj = *item; if (dynamic_cast(obj)) { groups = g_slist_prepend(groups, obj); } @@ -810,7 +810,7 @@ void sp_selection_ungroup(Inkscape::Selection *selection, SPDesktop *desktop) // in the items list. GSList *clones_to_unlink = NULL; for (std::vector::const_iterator item = items.begin(); item != items.end(); item++) { - SPUse *use = dynamic_cast(static_cast(*item)); + SPUse *use = dynamic_cast(*item); SPItem *original = use; while (dynamic_cast(original)) { @@ -864,7 +864,7 @@ sp_degroup_list(std::vector &items) std::vector out; bool has_groups = false; for (std::vector::const_iterator item=items.begin();item!=items.end();item++) { - SPGroup *group = dynamic_cast(static_cast(*item)); + SPGroup *group = dynamic_cast(*item); if (!group) { out.push_back(*item); } else { @@ -915,7 +915,7 @@ enclose_items(std::vector const &items) Geom::OptRect r; for (std::vector::const_iterator i = items.begin();i!=items.end();i++) { - r.unionWith(static_cast(*i)->desktopVisualBounds()); + r.unionWith((*i)->desktopVisualBounds()); } return r; } @@ -963,7 +963,7 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) // Iterate over all objects in the selection (starting from top). if (selected) { for (std::vector::const_iterator item=rev.begin();item!=rev.end();item++) { - SPObject *child = reinterpret_cast(*item); + SPObject *child = *item; // for each selected object, find the next sibling for (SPObject *newref = child->next; newref; newref = newref->next) { // if the sibling is an item AND overlaps our selection, @@ -1042,7 +1042,7 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) // Iterate over all objects in the selection (starting from top). if (selected) { for (std::vector::const_reverse_iterator item=rev.rbegin();item!=rev.rend();item++) { - SPObject *child = reinterpret_cast(*item); + SPObject *child = *item; // for each selected object, find the prev sibling for (SPObject *newref = prev_sibling(child); newref; newref = prev_sibling(newref)) { // if the sibling is an item AND overlaps our selection, @@ -2053,7 +2053,7 @@ std::vector sp_get_same_style(SPItem *sel, std::vector &src, S } bool match_g; for (std::vector::const_iterator i=src.begin();i!=src.end();i++) { - SPItem *iter = dynamic_cast(static_cast(*i)); + SPItem *iter = *i; if (iter) { match_g=true; SPStyle *iter_style = iter->style; @@ -2356,7 +2356,7 @@ SPItem *next_item_from_list(SPDesktop *desktop, std::vector const items { SPObject *current=root; for(std::vector::const_iterator i = items.begin();i!=items.end();i++) { - SPItem *item = dynamic_cast(static_cast(*i)); + SPItem *item = *i; if ( root->isAncestorOf(item) && ( !only_in_viewport || desktop->isWithinViewport(item) ) ) { @@ -2925,7 +2925,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) // Delete objects so that their clones don't get alerted; // the objects will be restored inside the marker element. for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *item = reinterpret_cast(*i); + SPObject *item = *i; item->deleteObject(false); } } @@ -3280,7 +3280,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) if (apply) { // delete objects so that their clones don't get alerted; this object will be restored shortly for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *item = reinterpret_cast(*i); + SPObject *item = *i; item->deleteObject(false); } } @@ -3354,7 +3354,7 @@ void sp_selection_untile(SPDesktop *desktop) std::vector items(selection->itemList()); for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ - SPItem *item = static_cast(*i); + SPItem *item = *i; SPStyle *style = item->style; @@ -3864,7 +3864,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); - SPObject *item = reinterpret_cast(*i); + SPObject *item = *i; if (remove_original) { items_to_delete = g_slist_prepend(items_to_delete, item); } @@ -3878,7 +3878,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { - SPObject *item = reinterpret_cast(items.front()); + SPObject *item = items.front(); items_to_delete = g_slist_prepend(items_to_delete, item); } @@ -4055,7 +4055,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { SP_OBJECT(*i)->getRepr()->setAttribute(attributeName, "none"); - SPGroup *group = dynamic_cast(static_cast(*i)); + SPGroup *group = dynamic_cast(*i); if (ungroup_masked && group) { // if we had previously enclosed masked object in group, // add it to list so we can ungroup it later diff --git a/src/selection.cpp b/src/selection.cpp index 19e78512b..7e8190237 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -309,7 +309,7 @@ std::vector const &Selection::reprList() { if (!_reprs.empty()) { return _reprs; } std::vector list = itemList(); for ( std::vector::const_iterator iter=list.begin();iter!=list.end();iter++ ) { - SPObject *obj=reinterpret_cast(*iter); + SPObject *obj = *iter; _reprs.push_back(obj->getRepr()); } return _reprs; diff --git a/src/seltrans.cpp b/src/seltrans.cpp index 61d8a1ab1..bfb8d53f1 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -271,7 +271,7 @@ void Inkscape::SelTrans::grab(Geom::Point const &p, gdouble x, gdouble y, bool s std::vector items=_desktop->selection->itemList(); for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPItem *it = reinterpret_cast(sp_object_ref(SP_ITEM(*iter), NULL)); + SPItem *it = static_cast(sp_object_ref(*iter, NULL)); _items.push_back(it); _items_const.push_back(it); _items_affines.push_back(it->i2dt_affine()); diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 620c0b70f..64ad9ff43 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -818,7 +818,7 @@ void SPGroup::update_patheffect(bool write) { std::vector const item_list = sp_item_group_item_list(this); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; SPLPEItem *lpeItem = dynamic_cast(subitem); if (lpeItem) { @@ -846,7 +846,7 @@ sp_group_perform_patheffect(SPGroup *group, SPGroup *topgroup, bool write) std::vector const item_list = sp_item_group_item_list(group); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; SPGroup *subGroup = dynamic_cast(subitem); if (subGroup) { diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 1f4704e22..6228f3692 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -355,7 +355,7 @@ sp_lpe_item_create_original_path_recursive(SPLPEItem *lpeitem) if (SP_IS_GROUP(lpeitem)) { std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_create_original_path_recursive(SP_LPE_ITEM(subitem)); } @@ -389,7 +389,7 @@ sp_lpe_item_cleanup_original_path_recursive(SPLPEItem *lpeitem) } std::vector item_list = sp_item_group_item_list(SP_GROUP(lpeitem)); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; if (SP_IS_LPE_ITEM(subitem)) { sp_lpe_item_cleanup_original_path_recursive(SP_LPE_ITEM(subitem)); } @@ -682,7 +682,7 @@ SPLPEItem::apply_to_clippath(SPItem *item) if(SP_IS_GROUP(item)){ std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; apply_to_clippath(SP_ITEM(subitem)); } } @@ -734,7 +734,7 @@ SPLPEItem::apply_to_mask(SPItem *item) if(SP_IS_GROUP(item)){ std::vector item_list = sp_item_group_item_list(SP_GROUP(item)); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; apply_to_mask(SP_ITEM(subitem)); } } @@ -748,7 +748,7 @@ SPLPEItem::apply_to_clip_or_mask_group(SPItem *group, SPItem *item) } std::vector item_list = sp_item_group_item_list(SP_GROUP(group)); for ( std::vector::const_iterator iter=item_list.begin();iter!=item_list.end();iter++) { - SPObject *subitem = static_cast(*iter); + SPObject *subitem = *iter; if (SP_IS_GROUP(subitem)) { apply_to_clip_or_mask_group(SP_ITEM(subitem), item); } else if (SP_IS_SHAPE(subitem)) { diff --git a/src/splivarot.cpp b/src/splivarot.cpp index bc09802f0..c668199c0 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -667,7 +667,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool { // only one command, presumably a moveto: it isn't a path for (std::vector::const_iterator l = il.begin(); l != il.end(); l++){ - SP_OBJECT(*l)->deleteObject(); + (*l)->deleteObject(); } DocumentUndo::done(doc, SP_VERB_NONE, description); selection->clear(); @@ -680,9 +680,9 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool SPObject *source; if ( bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice ) { if (reverseOrderForOp) { - source = SP_OBJECT(il[0]); + source = il[0]; } else { - source = SP_OBJECT(il.back()); + source = il.back(); } } else { // find out the bottom object @@ -719,10 +719,10 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // if this is the bottommost object, if (!strcmp(reinterpret_cast(*l)->getRepr()->attribute("id"), id)) { // delete it so that its clones don't get alerted; this object will be restored shortly, with the same id - SP_OBJECT(*l)->deleteObject(false); + (*l)->deleteObject(false); } else { // delete the object for real, so that its clones can take appropriate action - SP_OBJECT(*l)->deleteObject(); + (*l)->deleteObject(); } } diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index eadab90dd..5d57ac020 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -198,7 +198,7 @@ text_remove_from_path() bool did = false; std::vector items(selection->itemList()); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *obj = SP_OBJECT(*i); + SPObject *obj = *i; if (SP_IS_TEXT_TEXTPATH(obj)) { SPObject *tp = obj->firstChild(); @@ -262,7 +262,7 @@ text_remove_all_kerns() std::vector items = selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *obj = SP_OBJECT(*i); + SPObject *obj = *i; if (!SP_IS_TEXT(obj) && !SP_IS_TSPAN(obj) && !SP_IS_FLOWTEXT(obj)) { continue; @@ -322,7 +322,7 @@ text_flow_into_shape() /* Add clones */ std::vector items = selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; if (SP_IS_SHAPE(item)){ Inkscape::XML::Node *clone = xml_doc->createElement("svg:use"); clone->setAttribute("x", "0"); @@ -398,7 +398,7 @@ text_unflow () std::vector items = selection->itemList(); for(std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ - if (!SP_IS_FLOWTEXT(SP_OBJECT(*i))) { + if (!SP_IS_FLOWTEXT(*i)) { continue; } diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index a38a52371..3fe935e7d 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -706,7 +706,7 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) // copy style for Paste Style action if (!sorted_items.empty()) { - SPObject *object = static_cast(sorted_items[0]); + SPObject *object = sorted_items[0]; SPItem *item = dynamic_cast(object); if (item) { SPCSSAttr *style = take_style_from_item(item); diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 45c8ce68a..cb2771503 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1467,7 +1467,7 @@ void FilterEffectsDialog::FilterModifier::update_selection(Selection *sel) std::set used; std::vector itemlist=sel->itemList(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPStyle *style = obj->style; if (!style || !SP_IS_ITEM(obj)) { continue; diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index dde040036..173acca93 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -562,7 +562,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (check_searchin_text.get_active()) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_text_match(item, text, exact, casematch)) { @@ -585,7 +585,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (ids) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); if (item_id_match(item, text, exact, casematch)) { if (out.end()==find(out.begin(),out.end(), *i)) { @@ -601,7 +601,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (style) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_style_match(item, text, exact, casematch)) { @@ -618,7 +618,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (attrname) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attr_match(item, text, exact, casematch)) { @@ -635,7 +635,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (attrvalue) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_attrvalue_match(item, text, exact, casematch)) { @@ -652,7 +652,7 @@ std::vector Find::filter_fields (std::vector &l, bool exact, b if (font) { for(std::vector::const_reverse_iterator i=in.rbegin(); in.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_font_match(item, text, exact, casematch)) { @@ -719,7 +719,7 @@ std::vector Find::filter_types (std::vector &l) { std::vector n; for(std::vector::const_reverse_iterator i=l.rbegin(); l.rend() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item_type_match(item)) { @@ -763,7 +763,7 @@ std::vector &Find::all_selection_items (Inkscape::Selection *s, std::ve { std::vector itemlist=s->itemList(); for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { - SPObject *obj = SP_OBJECT (*i); + SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); if (item && !item->cloned && !desktop->isLayer(item)) { @@ -857,7 +857,7 @@ void Find::onAction() Inkscape::Selection *selection = desktop->getSelection(); selection->clear(); selection->setList(n); - SPObject *obj = reinterpret_cast(n[0]); + SPObject *obj = n[0]; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); scroll_to_show_item(desktop, item); diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 8bd130c2e..4465d73a9 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -210,7 +210,7 @@ void GridArrangeTab::arrange() cnt=0; const std::vector sizes(sorted); for (std::vector::const_iterator i = sizes.begin();i!=sizes.end();i++) { - SPItem *item = SP_ITEM(*i); + SPItem *item = *i; Geom::OptRect b = item->documentVisualBounds(); if (b) { width = b->dimensions()[Geom::X]; diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp index 5fab9fcfc..ed71c826f 100644 --- a/src/ui/dialog/tags.cpp +++ b/src/ui/dialog/tags.cpp @@ -652,7 +652,7 @@ bool TagsPanel::_handleButtonEvent(GdkEventButton* event) bool wasadded = false; std::vector items=_desktop->selection->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *newobj = reinterpret_cast(*i); + SPObject *newobj = *i; bool addchild = true; for ( SPObject *child = obj->children; child != NULL; child = child->next) { if (SP_IS_TAG_USE(child) && SP_TAG_USE(child)->ref->getObject() == newobj) { diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 9c4790379..815aa12ef 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -549,7 +549,7 @@ void TextEdit::onApply() if (SP_IS_TEXT (*i)) { // backwards compatibility: - reinterpret_cast(*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); + (*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); ++items; } diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index 21ad18c26..a9e109b5c 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -934,7 +934,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta sp_item_gradient_set_coords (*i, POINT_RG_CENTER, 0, rc.origin, fill_or_stroke, true, false); sp_item_gradient_set_coords (*i, POINT_RG_R1, 0, pt, fill_or_stroke, true, false); } - SP_OBJECT(*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); + (*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); } if (ec->_grdrag) { ec->_grdrag->updateDraggers(); diff --git a/src/ui/tools/mesh-tool.cpp b/src/ui/tools/mesh-tool.cpp index c8e032089..2c817694e 100644 --- a/src/ui/tools/mesh-tool.cpp +++ b/src/ui/tools/mesh-tool.cpp @@ -965,13 +965,13 @@ static void sp_mesh_drag(MeshTool &rc, Geom::Point const /*pt*/, guint /*state*/ for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above - sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); + sp_repr_css_change_recursive((*i)->getRepr(), css, "style"); - sp_item_set_gradient(SP_ITEM(*i), vector, (SPGradientType) type, fill_or_stroke); + sp_item_set_gradient(*i, vector, (SPGradientType) type, fill_or_stroke); // We don't need to do anything. Mesh is already sized appropriately. - SP_OBJECT(*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); + (*i)->requestModified(SP_OBJECT_MODIFIED_FLAG); } // if (ec->_grdrag) { // ec->_grdrag->updateDraggers(); diff --git a/src/ui/tools/node-tool.cpp b/src/ui/tools/node-tool.cpp index 6ddb379cc..374386686 100644 --- a/src/ui/tools/node-tool.cpp +++ b/src/ui/tools/node-tool.cpp @@ -422,7 +422,7 @@ void NodeTool::selection_changed(Inkscape::Selection *sel) { std::vector items=sel->itemList(); for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - SPObject *obj = static_cast(*i); + SPObject *obj = *i; if (SP_IS_ITEM(obj)) { gather_items(this, NULL, static_cast(obj), SHAPE_ROLE_NORMAL, shapes); diff --git a/src/ui/widget/style-subject.cpp b/src/ui/widget/style-subject.cpp index 1ded546dd..95b89bf5f 100644 --- a/src/ui/widget/style-subject.cpp +++ b/src/ui/widget/style-subject.cpp @@ -114,7 +114,7 @@ void StyleSubject::CurrentLayer::_setLayer(SPObject *layer) { _layer_release.disconnect(); _layer_modified.disconnect(); if (_element) { - sp_object_unref(static_cast(_element), NULL); + sp_object_unref(_element, NULL); } _element = layer; if (layer) { @@ -126,7 +126,7 @@ void StyleSubject::CurrentLayer::_setLayer(SPObject *layer) { } SPObject *StyleSubject::CurrentLayer::_getLayer() const { - return static_cast(_element); + return _element; } SPObject *StyleSubject::CurrentLayer::_getLayerSList() const { diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index 7d5a89cf5..1d258bbb0 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -579,7 +579,7 @@ void FillNStroke::updateFromPaint() for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { - sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); + sp_repr_css_change_recursive((*i)->getRepr(), css, "style"); } if (!vector) { @@ -605,7 +605,7 @@ void FillNStroke::updateFromPaint() for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ //FIXME: see above if (kind == FILL) { - sp_repr_css_change_recursive(reinterpret_cast(*i)->getRepr(), css, "style"); + sp_repr_css_change_recursive((*i)->getRepr(), css, "style"); } SPGradient *gr = sp_item_set_gradient(*i, vector, gradient_type, (kind == FILL) ? Inkscape::FOR_FILL : Inkscape::FOR_STROKE); @@ -649,11 +649,11 @@ void FillNStroke::updateFromPaint() // objects who already have the same root pattern but through a different href // chain. FIXME: move this to a sp_item_set_pattern for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ - Inkscape::XML::Node *selrepr = reinterpret_cast(*i)->getRepr(); + Inkscape::XML::Node *selrepr = (*i)->getRepr(); if ( (kind == STROKE) && !selrepr) { continue; } - SPObject *selobj = reinterpret_cast(*i); + SPObject *selobj = *i; SPStyle *style = selobj->style; if (style && ((kind == FILL) ? style->fill : style->stroke).isPaintserver()) { diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index 2b07dd3b9..37ffd7553 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -112,7 +112,7 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const * if (gtk_adjustment_get_value(adj) != 0) { (SP_RECT(*i)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, desktop->getNamedView()->svg_units)); } else { - SP_OBJECT(*i)->getRepr()->setAttribute(value_name, NULL); + (*i)->getRepr()->setAttribute(value_name, NULL); } modmade = true; } diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index c05ef93e7..481fa0609 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -983,7 +983,7 @@ StrokeStyle::scaleLine() if (unit->type == Inkscape::Util::UNIT_TYPE_LINEAR) { width = Inkscape::Util::Quantity::convert(width_typed, unit, "px"); } else { // percentage - gdouble old_w = SP_OBJECT(*i)->style->stroke_width.computed; + gdouble old_w = (*i)->style->stroke_width.computed; width = old_w * width_typed / 100; } @@ -1167,7 +1167,7 @@ StrokeStyle::updateAllMarkers(std::vector const &objects) // We show markers of the first object in the list only // FIXME: use the first in the list that has the marker of each type, if any - SPObject *object = SP_OBJECT(objects[0]); + SPObject *object = objects[0]; for (unsigned i = 0; i < G_N_ELEMENTS(keyloc); ++i) { // For all three marker types, diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 6b0fb34e6..2160cad2e 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -522,7 +522,7 @@ static void sp_text_lineheight_value_changed( GtkAdjustment *adj, GObject *tbl ) std::vector itemlist=selection->itemList(); for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_TEXT (*i)) { - SP_OBJECT(*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); + (*i)->getRepr()->setAttribute("sodipodi:linespacing", sp_repr_css_property (css, "line-height", NULL)); modmade = true; } } -- cgit v1.2.3 From 746649e82ce4b1ea144dabdee26d4abab510cce8 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sun, 26 Apr 2015 14:23:26 +0200 Subject: fix (bzr r13922.1.14) --- src/widgets/rect-toolbar.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp index 29a10a534..96ba699dc 100644 --- a/src/widgets/rect-toolbar.cpp +++ b/src/widgets/rect-toolbar.cpp @@ -110,7 +110,7 @@ static void sp_rtb_value_changed(GtkAdjustment *adj, GObject *tbl, gchar const * for(std::vector::const_iterator i=itemlist.begin();i!=itemlist.end();i++){ if (SP_IS_RECT(*i)) { if (gtk_adjustment_get_value(adj) != 0) { - (SP_RECT(items->data)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, "px")); + (SP_RECT(*i)->*setter)(Quantity::convert(gtk_adjustment_get_value(adj), unit, "px")); } else { (*i)->getRepr()->setAttribute(value_name, NULL); } -- cgit v1.2.3 From 60bdd590969d1c32c392a8fed15f4ceac4a678d2 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Mon, 27 Apr 2015 01:12:03 +0200 Subject: Just reread the entire diff against trunk. Given the diff size, i must have forgotten things, but hopefully, there are only very few changes of semantics: ->childList is now in the intuitive order (childList()[0] is now firstChild) -> sp_selection_paste_impl is now in the opposite order (change is local to selection-chemistry.cpp, and simplify a few things) -> selection.setReprList now takes the list in the opposite order. It was always the case (the list was always reversed before handing to it) -> a few comparison functions now work "the c++ way": the C way was to return -1 if ab, now they return (bool)(agetSelection(); selection->setReprList(pasted_objects); diff --git a/src/main.cpp b/src/main.cpp index 66452906b..d1ebdc3bb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1641,7 +1641,9 @@ static int sp_do_export_png(SPDocument *doc) g_print("Background RRGGBBAA: %08x\n", bgcolor); g_print("Area %g:%g:%g:%g exported to %lu x %lu pixels (%g dpi)\n", area[Geom::X][0], area[Geom::Y][0], area[Geom::X][1], area[Geom::Y][1], width, height, dpi); - + + reverse(items.begin(),items.end()); + if ((width >= 1) && (height >= 1) && (width <= PNG_UINT_31_MAX) && (height <= PNG_UINT_31_MAX)) { if( sp_export_png_file(doc, path.c_str(), area, width, height, dpi, dpi, bgcolor, NULL, NULL, true, sp_export_id_only ? items : std::vector()) == 1 ) { diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index b128535bc..bb313ef1a 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -269,7 +269,7 @@ sp_selected_path_break_apart(SPDesktop *desktop) if (l == list) repr->setAttribute("id", id); - reprs.insert(reprs.begin(),repr); + reprs.push_back(repr); Inkscape::GC::release(repr); } diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 0100e1040..c1d4f58e4 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -337,10 +337,7 @@ static void sp_selection_copy_impl(std::vector const &items, std::vecto g_assert_not_reached(); } } - std::vector tmp(clip); - for(int i=0;i copied = sp_selection_paste_impl(dt->getDocument(), moveto, temp_clip); selection->setReprList(copied); - copied.clear(); if (!temp_clip.empty()) temp_clip.clear(); if (moveto) dt->setCurrentLayer(moveto); if ( !suppressDone ) { @@ -2051,7 +2047,7 @@ std::vector sp_get_same_style(SPItem *sel, std::vector &src, S sel_style_for_width = new SPStyle(SP_ACTIVE_DOCUMENT); objects_query_strokewidth (objects, sel_style_for_width); } - bool match_g; + bool match_g; for (std::vector::const_iterator i=src.begin();i!=src.end();i++) { SPItem *iter = *i; if (iter) { @@ -3186,7 +3182,7 @@ void sp_selection_unsymbol(SPDesktop *desktop) } } - for (std::vector::const_iterator i=children.begin();i!=children.end();i++){ + for (std::vector::const_reverse_iterator i=children.rbegin();i!=children.rend();i++){ Inkscape::XML::Node *repr = (*i)->getRepr(); repr->parent()->removeChild(repr); group->addChild(repr,NULL); diff --git a/src/selection.cpp b/src/selection.cpp index 7e8190237..d9266b599 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -42,9 +42,9 @@ namespace Inkscape { Selection::Selection(LayerModel *layers, SPDesktop *desktop) : - _objs(std::list()), - _objs_vector(std::vector()), - _objs_set(std::set()), + _objs(std::list()), + _objs_vector(std::vector()), + _objs_set(std::set()), _reprs(std::vector()), _items(std::vector()), _layers(layers), @@ -281,10 +281,10 @@ void Selection::clear() { } std::vector const &Selection::list() { - if(!_objs_vector.empty()) + if(!_objs_vector.empty()) return _objs_vector; - for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { + for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { _objs_vector.push_back(*iter); } return _objs_vector; @@ -349,7 +349,7 @@ SPObject *Selection::single() { } SPItem *Selection::singleItem() { - std::vector const items=itemList(); + std::vector const items=itemList(); if ( items.size()==1) { return items[0]; } else { @@ -366,7 +366,7 @@ SPItem *Selection::largestItem(Selection::CompareSize compare) { } SPItem *Selection::_sizeistItem(bool sml, Selection::CompareSize compare) { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); gdouble max = sml ? 1e18 : 0; SPItem *ist = NULL; @@ -399,7 +399,7 @@ Geom::OptRect Selection::bounds(SPItem::BBoxType type) const Geom::OptRect Selection::geometricBounds() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); Geom::OptRect bbox; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { @@ -410,7 +410,7 @@ Geom::OptRect Selection::geometricBounds() const Geom::OptRect Selection::visualBounds() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); Geom::OptRect bbox; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { @@ -445,7 +445,7 @@ Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const // If we have a selection of multiple items, then the center of the first item // will be returned; this is also the case in SelTrans::centerRequest() boost::optional Selection::center() const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); if (!items.empty()) { SPItem *first = items.back(); // from the first item in selection if (first->isCenterSet()) { // only if set explicitly @@ -461,7 +461,7 @@ boost::optional Selection::center() const { } std::vector Selection::getSnapPoints(SnapPreferences const *snapprefs) const { - std::vector const items = const_cast(this)->itemList(); + std::vector const items = const_cast(this)->itemList(); SnapPreferences snapprefs_dummy = *snapprefs; // create a local copy of the snapping prefs snapprefs_dummy.setTargetSnappable(Inkscape::SNAPTARGET_ROTATION_CENTER, false); // locally disable snapping to the item center @@ -514,8 +514,8 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { } uint Selection::numberOfLayers() { - std::vector const items = const_cast(this)->itemList(); - std::set layers; + std::vector const items = const_cast(this)->itemList(); + std::set layers; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPObject *layer = _layers->layerForObject(SP_OBJECT(*iter)); layers.insert(layer); @@ -524,8 +524,8 @@ uint Selection::numberOfLayers() { } guint Selection::numberOfParents() { - std::vector const items = const_cast(this)->itemList(); - std::set parents; + std::vector const items = const_cast(this)->itemList(); + std::set parents; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { SPObject *parent = SP_OBJECT(*iter)->parent; parents.insert(parent); diff --git a/src/sp-object.h b/src/sp-object.h index df773fea7..f5d47be05 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -52,7 +52,6 @@ class SPObject; #include #include #include -#include #include #include "version.h" diff --git a/src/text-chemistry.cpp b/src/text-chemistry.cpp index 5d57ac020..9fc862ad2 100644 --- a/src/text-chemistry.cpp +++ b/src/text-chemistry.cpp @@ -396,7 +396,7 @@ text_unflow () GSList *old_objs = NULL; std::vector items = selection->itemList(); - for(std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ + for(std::vector::const_iterator i=items.begin();i!=items.end();i++){ if (!SP_IS_FLOWTEXT(*i)) { continue; @@ -452,6 +452,7 @@ text_unflow () } selection->clear(); + reverse(new_objs.begin(),new_objs.end()); selection->setList(new_objs); for (GSList *i = old_objs; i; i = i->next) { SP_OBJECT(i->data)->deleteObject (true); diff --git a/src/ui/dialog/clonetiler.cpp b/src/ui/dialog/clonetiler.cpp index b348bdcad..f84a2ffd6 100644 --- a/src/ui/dialog/clonetiler.cpp +++ b/src/ui/dialog/clonetiler.cpp @@ -2113,8 +2113,7 @@ void CloneTiler::clonetiler_unclump(GtkWidget */*widget*/, void *) } desktop->getDocument()->ensureUpToDate(); - std::vector tu2(to_unclump); - for(int i=0;igetDocument(), SP_VERB_DIALOG_CLONETILER, diff --git a/src/ui/dialog/find.cpp b/src/ui/dialog/find.cpp index 173acca93..a8ac42a1b 100644 --- a/src/ui/dialog/find.cpp +++ b/src/ui/dialog/find.cpp @@ -762,7 +762,7 @@ std::vector &Find::all_items (SPObject *r, std::vector &l, boo std::vector &Find::all_selection_items (Inkscape::Selection *s, std::vector &l, SPObject *ancestor, bool hidden, bool locked) { std::vector itemlist=s->itemList(); - for(std::vector::const_iterator i=itemlist.begin(); itemlist.end() != i; i++) { + for(std::vector::const_reverse_iterator i=itemlist.rbegin(); itemlist.rend() != i; i++) { SPObject *obj = *i; SPItem *item = dynamic_cast(obj); g_assert(item != NULL); diff --git a/src/ui/tools/tweak-tool.cpp b/src/ui/tools/tweak-tool.cpp index 76c748ae0..76b52f9be 100644 --- a/src/ui/tools/tweak-tool.cpp +++ b/src/ui/tools/tweak-tool.cpp @@ -378,7 +378,7 @@ sp_tweak_dilate_recursive (Inkscape::Selection *selection, SPItem *item, Geom::P std::vector to_select; SPDocument *doc = item->document; sp_item_list_to_curves (items, selected, to_select); - SPObject* newObj = doc->getObjectByRepr(to_select.back()); + SPObject* newObj = doc->getObjectByRepr(to_select[0]); item = dynamic_cast(newObj); g_assert(item != NULL); selection->add(item); -- cgit v1.2.3 From f20da2a7a6e65bcf3a907c3ee5cb5fd69a71c867 Mon Sep 17 00:00:00 2001 From: Mark Harmer Date: Mon, 27 Apr 2015 12:01:19 -0400 Subject: Mainloop fix for possible data loss if closing before save has completed. Fixed bugs: - https://launchpad.net/bugs/967416 (bzr r14060) --- src/extension/implementation/script.cpp | 5 ++++- src/extension/implementation/script.h | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index bbc567f75..52c360fcd 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -1027,7 +1027,10 @@ int Script::execute (const std::list &in_command, return 0; } - _main_loop = Glib::MainLoop::create(false); + // Create a new MainContext for the loop so that the original context sources are not run here, + // this enforces that only the file_listeners should be read in this new MainLoop + Glib::RefPtr _main_context = Glib::MainContext::create(); + _main_loop = Glib::MainLoop::create(_main_context, false); file_listener fileerr; fileout.init(stdout_pipe, _main_loop); diff --git a/src/extension/implementation/script.h b/src/extension/implementation/script.h index 6a7d0c3b8..4cf33c989 100644 --- a/src/extension/implementation/script.h +++ b/src/extension/implementation/script.h @@ -90,7 +90,7 @@ private: void init (int fd, Glib::RefPtr main) { _channel = Glib::IOChannel::create_from_fd(fd); _channel->set_encoding(); - _conn = Glib::signal_io().connect(sigc::mem_fun(*this, &file_listener::read), _channel, Glib::IO_IN | Glib::IO_HUP | Glib::IO_ERR); + _conn = main->get_context()->signal_io().connect(sigc::mem_fun(*this, &file_listener::read), _channel, Glib::IO_IN | Glib::IO_HUP | Glib::IO_ERR); _main_loop = main; return; -- cgit v1.2.3 From e40a878a5843b71f06b1d0fa5cb0681abc5787e6 Mon Sep 17 00:00:00 2001 From: Diederik van Lierop Date: Mon, 27 Apr 2015 20:14:55 +0200 Subject: Enable snapping of cusp nodes by default (bzr r14061) --- src/sp-namedview.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index 3154c9e7b..12c2cdf8e 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -517,7 +517,7 @@ void SPNamedView::set(unsigned int key, const gchar* value) { this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_INKSCAPE_SNAP_NODE_CUSP: - this->snap_manager.snapprefs.setTargetSnappable(Inkscape::SNAPTARGET_NODE_CUSP, value ? sp_str_to_bool(value) : FALSE); + this->snap_manager.snapprefs.setTargetSnappable(Inkscape::SNAPTARGET_NODE_CUSP, value ? sp_str_to_bool(value) : TRUE); this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_INKSCAPE_SNAP_BBOX_EDGE: -- cgit v1.2.3 From ac063302cd13238523a4f62744282944761c2a49 Mon Sep 17 00:00:00 2001 From: mathog <> Date: Mon, 27 Apr 2015 11:49:22 -0700 Subject: patch for bugs 1447850 and 1447382 (bzr r14062) --- src/extension/internal/emf-inout.cpp | 50 +- src/extension/internal/emf-inout.h | 2 + src/extension/internal/emf-print.cpp | 12 +- src/extension/internal/wmf-inout.cpp | 64 +- src/extension/internal/wmf-print.cpp | 6 +- src/libuemf/Makefile_insert | 2 + src/libuemf/README | 100 +- src/libuemf/uemf.c | 273 +++--- src/libuemf/uemf.h | 180 +++- src/libuemf/uemf_endian.c | 1673 ++++++++++++++++++++++------------ src/libuemf/uemf_endian.h | 7 +- src/libuemf/uemf_print.c | 652 ++++++++----- src/libuemf/uemf_print.h | 14 +- src/libuemf/upmf.c | 1282 ++++++++++++++++++-------- src/libuemf/upmf.h | 146 +-- src/libuemf/upmf_print.c | 818 +++++++++++------ src/libuemf/upmf_print.h | 137 +-- src/libuemf/uwmf.c | 100 +- src/libuemf/uwmf.h | 5 +- src/libuemf/uwmf_print.c | 14 +- src/libuemf/uwmf_print.h | 2 +- 21 files changed, 3706 insertions(+), 1833 deletions(-) diff --git a/src/extension/internal/emf-inout.cpp b/src/extension/internal/emf-inout.cpp index 31e69706f..e88cf3d42 100644 --- a/src/extension/internal/emf-inout.cpp +++ b/src/extension/internal/emf-inout.cpp @@ -480,7 +480,7 @@ uint32_t Emf::add_image(PEMF_CALLBACK_DATA d, void *pEmr, uint32_t cbBits, uint uint32_t width, height, colortype, numCt, invert; // if needed these values will be set in get_DIB_params if(cbBits && cbBmi && (iUsage == U_DIB_RGB_COLORS)){ // next call returns pointers and values, but allocates no memory - dibparams = get_DIB_params(pEmr, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, + dibparams = get_DIB_params((const char *)pEmr, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, &numCt, &width, &height, &colortype, &invert); if(dibparams ==U_BI_RGB){ // U_EMRCREATEMONOBRUSH uses text/bk colors instead of what is in the color map. @@ -1307,7 +1307,7 @@ Emf::select_extpen(PEMF_CALLBACK_DATA d, int index) d->dc[d->level].stroke_set = true; } else if(pEmr->elp.elpBrushStyle == U_BS_DIBPATTERN || pEmr->elp.elpBrushStyle == U_BS_DIBPATTERNPT){ - d->dc[d->level].stroke_idx = add_image(d, pEmr, pEmr->cbBits, pEmr->cbBmi, *(uint32_t *) &(pEmr->elp.elpColor), pEmr->offBits, pEmr->offBmi); + d->dc[d->level].stroke_idx = add_image(d, (void *)pEmr, pEmr->cbBits, pEmr->cbBmi, *(uint32_t *) &(pEmr->elp.elpColor), pEmr->offBits, pEmr->offBmi); d->dc[d->level].stroke_mode = DRAW_IMAGE; d->dc[d->level].stroke_set = true; } @@ -1530,7 +1530,7 @@ void Emf::common_image_extraction(PEMF_CALLBACK_DATA d, void *pEmr, uint32_t width, height, colortype, numCt, invert; // if needed these values will be set in get_DIB_params if(cbBits && cbBmi && (iUsage == U_DIB_RGB_COLORS)){ // next call returns pointers and values, but allocates no memory - dibparams = get_DIB_params(pEmr, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, + dibparams = get_DIB_params((const char *)pEmr, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, &numCt, &width, &height, &colortype, &invert); if(dibparams ==U_BI_RGB){ if(sw == 0 || sh == 0){ @@ -1611,6 +1611,10 @@ int Emf::myEnhMetaFileProc(char *contents, unsigned int length, PEMF_CALLBACK_DA uint32_t off=0; uint32_t emr_mask; int OK =1; + int file_status=1; + uint32_t nSize; + uint32_t iType; + const char *blimit = contents + length; PU_ENHMETARECORD lpEMFR; TCHUNK_SPECS tsp; uint32_t tbkMode = U_TRANSPARENT; // holds proposed change to bkMode, if text is involved saving these to the DC must wait until the text is written @@ -1641,19 +1645,32 @@ int Emf::myEnhMetaFileProc(char *contents, unsigned int length, PEMF_CALLBACK_DA while(OK){ if(off>=length)return(0); //normally should exit from while after EMREOF sets OK to false. + // check record sizes and types thoroughly + int badrec = 0; + if (!U_emf_record_sizeok(contents + off, blimit, &nSize, &iType, 1) || + !U_emf_record_safe(contents + off)){ + badrec = 1; + } + else { + emr_mask = emr_properties(iType); + if (emr_mask == U_EMR_INVALID) { badrec = 1; } + } + if (badrec) { + file_status = 0; + break; + } + lpEMFR = (PU_ENHMETARECORD)(contents + off); + // Uncomment the following to track down toxic records -// std::cout << "record type: " << lpEMFR->iType << " name " << U_emr_names(lpEMFR->iType) << " length: " << lpEMFR->nSize << " offset: " << off <nSize; +// std::cout << "record type: " << iType << " name " << U_emr_names(iType) << " length: " << nSize << " offset: " << off <iType); - if(emr_mask == U_EMR_INVALID){ throw "Inkscape fatal memory allocation error - cannot continue"; } - /* Uncomment the following to track down text problems */ //std::cout << "tri->dirty:"<< d->tri->dirty << " emr_mask: " << std::hex << emr_mask << std::dec << std::endl; @@ -1753,7 +1770,7 @@ std::cout << "BEFORE DRAW" } // std::cout << "AFTER DRAW logic d->mask: " << std::hex << d->mask << " emr_mask: " << emr_mask << std::dec << std::endl; - switch (lpEMFR->iType) + switch (iType) { case U_EMR_HEADER: { @@ -3471,7 +3488,7 @@ std::cout << "BEFORE DRAW" // std::cout << d->outsvg << std::endl; (void) emr_properties(U_EMR_INVALID); // force the release of the lookup table memory, returned value is irrelevant - return 1; + return(file_status); } void Emf::free_emf_strings(EMF_STRINGS name){ @@ -3486,12 +3503,14 @@ void Emf::free_emf_strings(EMF_STRINGS name){ SPDocument * Emf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) { - EMF_CALLBACK_DATA d; - if (uri == NULL) { return NULL; } + EMF_CALLBACK_DATA d; + + d.n_obj = 0; //these might not be set otherwise if the input file is corrupt + d.emf_obj = NULL; d.dc[0].font_name = strdup("Arial"); // Default font, set only on lowest level, it copies up from there EMF spec says device can pick whatever it wants // set up the size default for patterns in defs. This might not be referenced if there are no patterns defined in the drawing. @@ -3518,14 +3537,17 @@ Emf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP, FT_KERNING_UNSCALED); - (void) myEnhMetaFileProc(contents,length, &d); + int good = myEnhMetaFileProc(contents,length, &d); free(contents); if (d.pDesc){ free( d.pDesc ); } // std::cout << "SVG Output: " << std::endl << d.outsvg << std::endl; - SPDocument *doc = SPDocument::createNewDocFromMem(d.outsvg.c_str(), strlen(d.outsvg.c_str()), TRUE); + SPDocument *doc = NULL; + if (good) { + doc = SPDocument::createNewDocFromMem(d.outsvg.c_str(), strlen(d.outsvg.c_str()), TRUE); + } free_emf_strings(d.hatches); free_emf_strings(d.images); diff --git a/src/extension/internal/emf-inout.h b/src/extension/internal/emf-inout.h index c64299093..dd1d8f9c4 100644 --- a/src/extension/internal/emf-inout.h +++ b/src/extension/internal/emf-inout.h @@ -13,6 +13,8 @@ #define SEEN_EXTENSION_INTERNAL_EMF_H #include +#include +#include // for U_emf_record_sizeok() #include "extension/internal/metafile-inout.h" // picks up PNG #include "extension/implementation/implementation.h" #include "style.h" diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp index 67a9242bc..ed3ae158a 100644 --- a/src/extension/internal/emf-print.cpp +++ b/src/extension/internal/emf-print.cpp @@ -60,6 +60,7 @@ #include "splivarot.h" // pieces for union on shapes #include "2geom/svg-path-parser.h" // to get from SVG text to Geom::Path #include "display/canvas-bpath.h" // for SPWindRule +#include "display/cairo-utils.h" // for Inkscape::Pixbuf::PF_CAIRO #include "emf-print.h" @@ -70,7 +71,6 @@ namespace Internal { #define PXPERMETER 2835 - /* globals */ static double PX2WORLD; static bool FixPPTCharPos, FixPPTDashLine, FixPPTGrad2Polys, FixPPTLinGrad, FixPPTPatternAsHatch, FixImageRot; @@ -481,9 +481,8 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor) rgba_px = (char *) pixbuf->pixels(); // Do NOT free this!!! colortype = U_BCBM_COLOR32; (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1); - // Not sure why the next swap is needed because the preceding does it, and the code is identical - // to that in stretchdibits_set, which does not need this. - swapRBinRGBA(px, width * height); + // pixbuf can be either PF_CAIRO or PF_GDK, and these have R and B bytes swapped + if (pixbuf->pixelFormat() == Inkscape::Pixbuf::PF_CAIRO) { swapRBinRGBA(px, width * height); } Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0); Bmi = bitmapinfo_set(Bmih, ct); rec = createdibpatternbrushpt_set(&brush, eht, U_DIB_RGB_COLORS, Bmi, cbPx, px); @@ -584,9 +583,8 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform) rgba_px = (char *) pixbuf->pixels(); // Do NOT free this!!! colortype = U_BCBM_COLOR32; (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1); - // Not sure why the next swap is needed because the preceding does it, and the code is identical - // to that in stretchdibits_set, which does not need this. - swapRBinRGBA(px, width * height); + // pixbuf can be either PF_CAIRO or PF_GDK, and these have R and B bytes swapped + if (pixbuf->pixelFormat() == Inkscape::Pixbuf::PF_CAIRO) { swapRBinRGBA(px, width * height); } Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0); Bmi = bitmapinfo_set(Bmih, ct); } else { // pattern diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp index 503a93418..30a028eec 100644 --- a/src/extension/internal/wmf-inout.cpp +++ b/src/extension/internal/wmf-inout.cpp @@ -1497,6 +1497,7 @@ int Wmf::myMetaFileProc(const char *contents, unsigned int length, PWMF_CALLBACK uint32_t off=0; uint32_t wmr_mask; int OK =1; + int file_status=1; TCHUNK_SPECS tsp; uint8_t iType; int nSize; // size of the current record, in bytes, or an error value if <=0 @@ -1562,7 +1563,9 @@ int Wmf::myMetaFileProc(const char *contents, unsigned int length, PWMF_CALLBACK U_WMRHEADER Header; off = 0; nSize = wmfheader_get(contents, blimit, &Placeable, &Header); - if(!nSize)return(0); + if (!nSize) { + return(0); + } if(!Header.nObjects){ Header.nObjects = 256; }// there _may_ be WMF files with no objects, more likely it is corrupt. Try to use it anyway. d->n_obj = Header.nObjects; d->wmf_obj = new WMF_OBJECT[d->n_obj]; @@ -1602,7 +1605,10 @@ int Wmf::myMetaFileProc(const char *contents, unsigned int length, PWMF_CALLBACK else { off += nSize; } - } + } + else { + return(0); + } } off=0; nSize = hold_nSize; @@ -1665,27 +1671,32 @@ int Wmf::myMetaFileProc(const char *contents, unsigned int length, PWMF_CALLBACK while(OK){ - if(off>=length)return(0); //normally should exit from while after WMREOF sets OK to false. + if (off>=length) { + return(0); //normally should exit from while after WMREOF sets OK to false. + } contents += nSize; // pointer to the start of the next record off += nSize; // offset from beginning of buffer to the start of the next record - SVGOStringStream tmp_path; - SVGOStringStream tmp_str; - - /* Check that the current record size is OK, abort if not. - Pointer math might wrap, so check both sides of the range. - Some of the records will reset this with the same value,others will not - return a value at this time. */ + /* Currently this is a weaker check than for EMF, it only checks the size of the constant part + of the record */ nSize = U_WMRRECSAFE_get(contents, blimit); - if(!nSize)break; + if(!nSize) { + file_status = 0; + break; + } iType = *(uint8_t *)(contents + offsetof(U_METARECORD, iType ) ); + wmr_mask = U_wmr_properties(iType); + if (wmr_mask == U_WMR_INVALID) { + file_status = 0; + break; + } // Uncomment the following to track down toxic records // std::cout << "record type: " << (int) iType << " name " << U_wmr_names(iType) << " length: " << nSize << " offset: " << off <dirty:"<< d->tri->dirty << " wmr_mask: " << std::hex << wmr_mask << std::dec << std::endl; @@ -3026,14 +3037,17 @@ std::cout << "BEFORE DRAW" // When testing, uncomment the following to place a comment for each processed WMR record in the SVG // d->outsvg += dbg_str.str().c_str(); d->path += tmp_path.str().c_str(); - if(!nSize){ OK=0; std::cout << "nSize == 0, oops!!!" << std::endl; } // There was some problem with this record, it is not safe to continue + if(!nSize){ // There was some problem with the processing of this record, it is not safe to continue + file_status = 0; + break; + } - } //end of while + } //end of while on OK // When testing, uncomment the following to show the final SVG derived from the WMF // std::cout << d->outsvg << std::endl; (void) U_wmr_properties(U_WMR_INVALID); // force the release of the lookup table memory, returned value is irrelevant - return 1; + return(file_status); } void Wmf::free_wmf_strings(WMF_STRINGS name){ @@ -3049,7 +3063,14 @@ SPDocument * Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) { + if (uri == NULL) { + return NULL; + } + WMF_CALLBACK_DATA d; + + d.n_obj = 0; //these might not be set otherwise if the input file is corrupt + d.wmf_obj=NULL; // Default font, WMF spec says device can pick whatever it wants. // WMF files that do not specify a font are unlikely to look very good! @@ -3067,10 +3088,6 @@ Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) d.dc[0].style.stroke_width.value = 1.0; // will be reset to something reasonable once WMF draying size is known d.dc[0].style.stroke.value.color.set( 0, 0, 0 ); - if (uri == NULL) { - return NULL; - } - d.dc[0].font_name = strdup("Arial"); // Default font, set only on lowest level, it copies up from there WMF spec says device can pick whatever it wants // set up the size default for patterns in defs. This might not be referenced if there are no patterns defined in the drawing. @@ -3095,12 +3112,15 @@ Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING | FT_LOAD_NO_BITMAP, FT_KERNING_UNSCALED); - (void) myMetaFileProc(contents,length, &d); + int good = myMetaFileProc(contents,length, &d); free(contents); // std::cout << "SVG Output: " << std::endl << d.outsvg << std::endl; - SPDocument *doc = SPDocument::createNewDocFromMem(d.outsvg.c_str(), strlen(d.outsvg.c_str()), TRUE); + SPDocument *doc = NULL; + if (good) { + doc = SPDocument::createNewDocFromMem(d.outsvg.c_str(), strlen(d.outsvg.c_str()), TRUE); + } free_wmf_strings(d.hatches); free_wmf_strings(d.images); diff --git a/src/extension/internal/wmf-print.cpp b/src/extension/internal/wmf-print.cpp index 567f9f366..9fe1a0259 100644 --- a/src/extension/internal/wmf-print.cpp +++ b/src/extension/internal/wmf-print.cpp @@ -61,6 +61,7 @@ #include "splivarot.h" // pieces for union on shapes #include "2geom/svg-path-parser.h" // to get from SVG text to Geom::Path #include "display/canvas-bpath.h" // for SPWindRule +#include "display/cairo-utils.h" // for Inkscape::Pixbuf::PF_CAIRO #include "wmf-print.h" @@ -471,9 +472,8 @@ int PrintWmf::create_brush(SPStyle const *style, U_COLORREF *fcolor) rgba_px = (char *) pixbuf->pixels(); // Do NOT free this!!! colortype = U_BCBM_COLOR32; (void) RGBA_to_DIB(&px, &cbPx, &ct, &numCt, rgba_px, width, height, width * 4, colortype, 0, 1); - // Not sure why the next swap is needed because the preceding does it, and the code is identical - // to that in stretchdibits_set, which does not need this. - swapRBinRGBA(px, width * height); + // pixbuf can be either PF_CAIRO or PF_GDK, and these have R and B bytes swapped + if (pixbuf->pixelFormat() == Inkscape::Pixbuf::PF_CAIRO) { swapRBinRGBA(px, width * height); } Bmih = bitmapinfoheader_set(width, height, 1, colortype, U_BI_RGB, 0, PXPERMETER, PXPERMETER, numCt, 0); Bmi = bitmapinfo_set(Bmih, ct); rec = wcreatedibpatternbrush_srcdib_set(&brush, wht, U_DIB_RGB_COLORS, Bmi, cbPx, px); diff --git a/src/libuemf/Makefile_insert b/src/libuemf/Makefile_insert index 004c56dfc..427a0e80e 100644 --- a/src/libuemf/Makefile_insert +++ b/src/libuemf/Makefile_insert @@ -12,6 +12,8 @@ libuemf_libuemf_a_SOURCES = \ libuemf/uemf_endian.h \ libuemf/uemf_print.c \ libuemf/uemf_print.h \ + libuemf/uemf_safe.c \ + libuemf/uemf_safe.h \ libuemf/uemf_utf.c \ libuemf/uemf_utf.h \ libuemf/uwmf.c \ diff --git a/src/libuemf/README b/src/libuemf/README index cfa322178..a3dff9b4c 100644 --- a/src/libuemf/README +++ b/src/libuemf/README @@ -1,22 +1,25 @@ Overview: -libUEMF is a portable C99 implementation for reading/writing Enhanced Metafile (EMF) -and Windows Metafile (WMF) files. libUEMF avoids collisions with with Microsoft defined -functions and values, so portable programs which use it, and have a Windows version, do -not require any conditional logic to separate the native GDI support from the WMF/EMF support -proviced by libUEMF. To accomplish this libUEMF does not implement GDI calls. Instead, -for each WMR/EMR record type, and each object type incorporated into such a record, it provides -corresponding *_set, *_print, and *_swap functions. (For WMF there are also *_get functions, see below.) -For example, for the U_EMRBITBLT record there are corresponding functions: -U_EMRBITBLT_set, U_EMRBITBLT_print, and U_EMRBITBLT_swap. A few additional functions are provided for -assembling the EMF in memory, debugging, and converting the EMF file to/from Little Endian representation. -(EMF files' internal data representation is always Little Endian.) - -This code has been tested on 32 bit Ubuntu (LE), 32 bit Mingw, 64 bit Manriva, and 64 bit Solaris (BE). +libUEMF is a portable C99 implementation for reading/writing Enhanced Metafile (EMF), +Enhanced Metafile Format Plus (PMF), and Windows Metafile (WMF) files. libUEMF +avoids collisions with Microsoft defined functions and values, so portable programs +which use it and have a Windows version, do not require any conditional logic to +separate the native GDI support from the WMF/EMF/PMF support proviced by libUEMF. To +accomplish this libUEMF does not implement GDI calls. Instead, for each WMR/EMR/PMR +record type, and each object type incorporated into such a record, it provides +corresponding *_set, *_print, and *_swap functions. For PMF and WMF there are also +*_get functions, see below. For example, for the U_EMRBITBLT record there are +corresponding functions: U_EMRBITBLT_set, U_EMRBITBLT_print, and U_EMRBITBLT_swap. A +few additional functions are provided for assembling the EMF in memory, debugging, and +converting the EMF file to/from Little Endian representation. (EMF files' internal +data representation is always Little Endian.) + +This code has been tested on 32 bit Ubuntu (LE), 32 bit Mingw, 64 bit Mageia, and 64 +bit Solaris (BE). libUEMF is released under the GPL 2 license, read the file 'COPYING' for more information -Version 0.1.10, released January 15, 2014. +Version 0.2.1, released April 23, 2015. To report bugs or provide feedback send email to David Mathog, mathog@caltech.edu. @@ -76,7 +79,14 @@ uemf_endian.c Contains the *_swap functions needed to rearrange bytes betwee uemf_endian.h Prototype for U_emf_endian() and definitions for Endian type of the local machine. - +uemf_safe.c Contains the *_safe functions for EMF records, which verify that all + offsets and counts stay within the declared size of a record. Also checks that + core record sizes are sane. U_emf_record_safe() is the only _safe function which + user code should call directly, and then ONLY after a previous call to + U_emf_record_sizeok(), which is in the endian file. + +uemf_safe.h Prototype for U_emf_record_safe(). + . upmf.c Contains the *_set and *_get functions needed to construct or read an EMF+ file. Also contains auxilliary functions for debugging and constructing EMF+ files in memory. @@ -366,9 +376,69 @@ History (Note, version numbers in files represent the libUEMF release where it was last modified, so not all files will show the same version numbers in each release.) +0.2.1.2015_04_23 + Bug in safety check on EMREXTCREATEFONTINDIRECTW because it had alternative "standard" record sizes. + Changed warnings on unimplemented EMF record types encounterd in swap or safe from stdout to stderr. + Added memory checking for WMF polyline and polygon records, for the variable part and some others. + Note: U_WMRCREATEREGION_get does not check that the variable part stays within the record. Current + implementation seems to be broken since it does not show up in XP preview. +0.2.0 2015_03_20 + Added UEMF _safe functions to better handle corrupt records, where variable sizes fields might + have been specified to read past the end of memory. These are records with offsets, arrays + with counts, and bitmaps. Also any record which specifies a size smaller than the minimum + for that record type. + Added similar code for EMF+. + These changed the API so the minor version number was bumped by 1. + +0.1.18 2015_01_15 + Pierre-Francois Carpentier sent some EMF examples which used U_EMR_EXTSELECTCLIPRGN, which had + not previously been encountered and showed that the handling of regions was broken. + Added tests for U_EMRFILLRGN, U_EMRFRAMERGN, U_EMRFRAMERGN, U_EMREXTSELECTCLIPRGN to testbed_emf. + +0.1.18 2014_04_28 + Fixed typo in testbed_wmf.c. "include,include" in one place should have been + "exclude,exclude". + +0.1.17 2014_04_25 + Added text clipping tests to testbed_emf.c, testbed_wmf.c, and testbed_pmf.c. + Added option to omit clipping tests in testbed's. + +0.1.16 2014_04_14 + Fixed bug in U_WMRRESTOREDC_set. + Added clipping tests to testbed_wmf.c. + +0.1.15 2014_04_04 + Changed record flags for U_EMRSELECTCLIPPATH record, it consumes a path but does not ALTER (which + forced a premature draw.) + Added U_EMROFFSETCLIPRGN test to testbed_emf.c. + Changed location on dist drawing where clipping appears. + +0.1.14 2014_03_27 + Fixed bug, in U_PMF_RECTN_set() in upmf.c. Never tested. + Fixed a few potential bugs in upmf.c if a null pointer was passed for + certain function arguments. (Previously unhandled cases.) + Fixed bug, operations setting variables that are never read along those + execution paths: upmf_print.c, uemf.c, uwmf.c, uemf_endian.cm upmf.c. + Fixed potential (but very unlikely) memory leaks in upmf.c and uemf_utf.c. + Added test of U_PMF_RECTN_set to testbed_pmf.c. + Changed U_wmr_names() and U_wmr_escnames() to const char* (from char*). + Changed method for suppressing unused parameter warnings. + + +0.1.13 2014-03-21 + Fixed bug, cutemf was messing up the object count (pens, brushes, etc.). + Added cutemf can now take ranges of lines. + Added testbed_emf generates clipping records for rect and path (but not region). + +0.1.12 2014-02-14 + Documentation change, U_WMRCREATEPATTERNBRUSH is obsolete. + Changed wmf_finish() so that it accurately reflects the largest number of objects used, + previously it showed the number of appends, which was much larger. + 0.1.11 2014-01-29 Fixed bug in uwmf.c (wrong minimum record size on U_WMRTEXTOUT) Fixed bug in uwmf.c (U_WMRCREATEPATTERNBRUSH not right) + Fixed bug in uwmf_print.c (U_WMRTEXTOUT_print, x,y were reversed) Added error handling to uemf_utf.c for cases where src is a null pointer. Added a test of createpatternbrush to testlib_wmf diff --git a/src/libuemf/uemf.c b/src/libuemf/uemf.c index 1d417dece..3180c757c 100644 --- a/src/libuemf/uemf.c +++ b/src/libuemf/uemf.c @@ -16,11 +16,11 @@ /* File: uemf.c -Version: 0.0.28 -Date: 04-APR-2014 +Version: 0.0.30 +Date: 20-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2014 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifdef __cplusplus @@ -199,7 +199,7 @@ definitions are not needed in end user code, so they are here rather than in uem // this one may also be used A=Msk,B=MskBmi and F=cbMsk #define SET_CB_FROM_PXBMI(A,B,C,D,E,F) /* A=Px, B=Bmi, C=cbImage, D=cbImage4, E=cbBmi, F=cbPx */ \ if(A){\ - if(!B)return(NULL); /* size is derived from U_BIMAPINFO, but NOT from its size field, go figure*/ \ + if(!B)return(NULL); /* size is derived from U_BITMAPINFO, but NOT from its size field, go figure*/ \ C = F;\ D = UP4(C); /* pixel array might not be a multiples of 4 bytes*/ \ E = sizeof(U_BITMAPINFOHEADER) + 4 * get_real_color_count((const char *) &(B->bmiHeader)); /* bmiheader + colortable*/ \ @@ -851,7 +851,7 @@ int get_real_color_icount( \brief Get the DIB parameters from the BMI of the record for use by DBI_to_RGBA() \return BI_Compression Enumeration. For anything other than U_BI_RGB values other than px may not be valid. - \param pEmr pointer to EMR record that has a U_BITMAPINFO and bitmap + \param record pointer to EMR record that has a U_BITMAPINFO and bitmap \param offBitsSrc Offset to the bitmap \param offBmiSrc Offset to the U_BITMAPINFO \param px pointer to DIB pixel array in pEmr @@ -863,7 +863,7 @@ int get_real_color_icount( \param invert If DIB rows are in opposite order from RGBA rows */ int get_DIB_params( - void *pEmr, + const char *record, uint32_t offBitsSrc, uint32_t offBmiSrc, const char **px, @@ -875,7 +875,7 @@ int get_DIB_params( uint32_t *invert ){ uint32_t bic; - PU_BITMAPINFO Bmi = (PU_BITMAPINFO)((char *)pEmr + offBmiSrc); + PU_BITMAPINFO Bmi = (PU_BITMAPINFO)(record + offBmiSrc); PU_BITMAPINFOHEADER Bmih = &(Bmi->bmiHeader); /* if biCompression is not U_BI_RGB some or all of the following might not hold real values */ bic = Bmih->biCompression; @@ -903,7 +903,7 @@ int get_DIB_params( *numCt = Bmih->biSizeImage; *ct = NULL; } - *px = (char *)((char *)pEmr + offBitsSrc); + *px = record + offBitsSrc; return(bic); } @@ -1610,6 +1610,26 @@ U_RECTL rectl_set( return(rct); } +/** + \brief Set rect and rectl objects from Upper Left and Lower Right corner points. + \param array array of rectangles + \param index array entry to fill, numbered from 0 + \param ul upper left corner of rectangle + \param lr lower right corner of rectangle +*/ +void rectli_set( + PU_RECTL array, + int index, + U_POINTL ul, + U_POINTL lr + ){ + PU_RECTL rct = &(array[index]); + rct->left = ul.x; + rct->top = ul.y; + rct->right = lr.x; + rct->bottom = lr.y; +} + /** \brief Set sizel objects with X,Y values. \param x X coordinate @@ -2192,7 +2212,7 @@ U_RGNDATAHEADER rgndataheader_set( rdh.dwSize = U_RDH_OBJSIZE; rdh.iType = U_RDH_RECTANGLES; rdh.nCount = nCount; - rdh.nRgnSize = nCount * sizeof(U_RECTL); // Size in bytes of retangle array + rdh.nRgnSize = nCount * sizeof(U_RECTL); // Size in bytes of rectangle array rdh.rclBounds = rclBounds; return(rdh); } @@ -2857,7 +2877,7 @@ by end user code and to further that end prototypes are NOT provided and they ar // Functions with the same form starting with U_EMRPOLYBEZIER_set -char *U_EMR_CORE1(uint32_t iType, U_RECTL rclBounds, const uint32_t cptl, const U_POINTL *points){ +char *U_EMR_CORE1_set(uint32_t iType, U_RECTL rclBounds, const uint32_t cptl, const U_POINTL *points){ char *record; int cbPoints; int irecsize; @@ -2876,7 +2896,7 @@ char *U_EMR_CORE1(uint32_t iType, U_RECTL rclBounds, const uint32_t cptl, const } // Functions with the same form starting with U_EMR_POLYPOLYLINE -char *U_EMR_CORE2(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, const uint32_t *aPolyCounts,const uint32_t cptl, const U_POINTL *points){ +char *U_EMR_CORE2_set(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, const uint32_t *aPolyCounts,const uint32_t cptl, const U_POINTL *points){ char *record; int cbPolys,cbPoints,off; int irecsize; @@ -2899,7 +2919,7 @@ char *U_EMR_CORE2(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, cons } // Functions with the same form starting with U_EMR_SETMAPMODE_set -char *U_EMR_CORE3(uint32_t iType, uint32_t iMode){ +char *U_EMR_CORE3_set(uint32_t iType, uint32_t iMode){ char *record; int irecsize; @@ -2914,7 +2934,7 @@ char *U_EMR_CORE3(uint32_t iType, uint32_t iMode){ } // Functions taking a single U_RECT or U_RECTL, starting with U_EMRELLIPSE_set, also U_EMRFILLPATH, -char *U_EMR_CORE4(uint32_t iType, U_RECTL rclBox){ +char *U_EMR_CORE4_set(uint32_t iType, U_RECTL rclBox){ char *record; int irecsize; @@ -2930,7 +2950,7 @@ char *U_EMR_CORE4(uint32_t iType, U_RECTL rclBox){ } // Functions with the same form starting with U_EMRSETMETARGN_set -char *U_EMR_CORE5(uint32_t iType){ +char *U_EMR_CORE5_set(uint32_t iType){ char *record; int irecsize = 8; @@ -2943,7 +2963,7 @@ char *U_EMR_CORE5(uint32_t iType){ } // Functions with the same form starting with U_EMRPOLYBEZIER16_set -char *U_EMR_CORE6(uint32_t iType, U_RECTL rclBounds, const uint32_t cpts, const U_POINT16 *points){ +char *U_EMR_CORE6_set(uint32_t iType, U_RECTL rclBounds, const uint32_t cpts, const U_POINT16 *points){ char *record; int cbPoints,cbPoints4,off; int irecsize; @@ -2970,7 +2990,7 @@ char *U_EMR_CORE6(uint32_t iType, U_RECTL rclBounds, const uint32_t cpts, const // Functions that take a single struct argument which contains two uint32_t, starting with U_EMRSETWINDOWEXTEX_set // these all pass two 32 bit ints and are cast by the caller to U_PAIR -char *U_EMR_CORE7(uint32_t iType, U_PAIR pair){ +char *U_EMR_CORE7_set(uint32_t iType, U_PAIR pair){ char *record; int irecsize = sizeof(U_EMRGENERICPAIR); @@ -2984,7 +3004,7 @@ char *U_EMR_CORE7(uint32_t iType, U_PAIR pair){ } // For U_EMREXTTEXTOUTA and U_EMREXTTEXTOUTW -char *U_EMR_CORE8( +char *U_EMR_CORE8_set( uint32_t iType, U_RECTL rclBounds, // Bounding rectangle in device units uint32_t iGraphicsMode, // Graphics mode Enumeration @@ -3033,7 +3053,7 @@ char *U_EMR_CORE8( } // Functions that take a rect and a pair of points, starting with U_EMRARC_set -char *U_EMR_CORE9(uint32_t iType, U_RECTL rclBox, U_POINTL ptlStart, U_POINTL ptlEnd){ +char *U_EMR_CORE9_set(uint32_t iType, U_RECTL rclBox, U_POINTL ptlStart, U_POINTL ptlEnd){ char *record; int irecsize = sizeof(U_EMRARC); @@ -3049,7 +3069,7 @@ char *U_EMR_CORE9(uint32_t iType, U_RECTL rclBox, U_POINTL ptlStart, U_POINTL pt } // Functions with the same form starting with U_EMR_POLYPOLYLINE16 -char *U_EMR_CORE10(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, const uint32_t *aPolyCounts,const uint32_t cpts, const U_POINT16 *points){ +char *U_EMR_CORE10_set(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, const uint32_t *aPolyCounts,const uint32_t cpts, const U_POINT16 *points){ char *record; int cbPoints,cbPolys,off; int irecsize; @@ -3072,25 +3092,27 @@ char *U_EMR_CORE10(uint32_t iType, U_RECTL rclBounds, const uint32_t nPolys, con } // common code for U_EMRINVERTRGN and U_EMRPAINTRGN, -char *U_EMR_CORE11(uint32_t iType, PU_RGNDATA RgnData){ +char *U_EMR_CORE11_set(uint32_t iType, PU_RGNDATA RgnData){ char *record; int irecsize; - int cbRgns,cbRgns4,off; + int cbRgns,cbRgns4,rds,rds4,off; if(!RgnData)return(NULL); cbRgns = ((PU_RGNDATAHEADER) RgnData)->nRgnSize; cbRgns4 = UP4(cbRgns); - irecsize = sizeof(U_EMRINVERTRGN) + cbRgns4 - sizeof(U_RGNDATAHEADER); // core + array - overlap - record = malloc(irecsize); + rds = sizeof(U_RGNDATAHEADER) + cbRgns; + rds4 = UP4(rds); + irecsize = sizeof(U_EMRINVERTRGN) - sizeof(U_RECTL) + cbRgns4; // core + array - overlap of one rectL + record = malloc(irecsize); if(record){ ((PU_EMR) record)->iType = iType; ((PU_EMR) record)->nSize = irecsize; ((PU_EMRINVERTRGN) record)->rclBounds = ((PU_RGNDATAHEADER) RgnData)->rclBounds; - ((PU_EMRINVERTRGN) record)->cbRgnData = cbRgns; - off = irecsize - cbRgns4; - memcpy(record + off, RgnData, cbRgns); - off += cbRgns; - if(cbRgns < cbRgns4){ memset(record + off,0, cbRgns4 - cbRgns); } // clear any unused bytes + ((PU_EMRINVERTRGN) record)->cbRgnData = rds; + off = sizeof(U_EMRINVERTRGN) - sizeof(U_RGNDATA); + memcpy(record + off, RgnData, rds); + off += rds; + if(rds < rds4){ memset(record + off,0, rds4 - rds); } // clear any unused bytes } return(record); } @@ -3274,7 +3296,7 @@ char *U_EMRPOLYBEZIER_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE1(U_EMR_POLYBEZIER, rclBounds, cptl, points)); + return(U_EMR_CORE1_set(U_EMR_POLYBEZIER, rclBounds, cptl, points)); } // U_EMRPOLYGON_set 3 @@ -3290,7 +3312,7 @@ char *U_EMRPOLYGON_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE1(U_EMR_POLYGON, rclBounds, cptl, points)); + return(U_EMR_CORE1_set(U_EMR_POLYGON, rclBounds, cptl, points)); } // U_EMRPOLYLINE_set 4 @@ -3306,7 +3328,7 @@ char *U_EMRPOLYLINE_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE1(U_EMR_POLYLINE, rclBounds, cptl, points)); + return(U_EMR_CORE1_set(U_EMR_POLYLINE, rclBounds, cptl, points)); } // U_EMRPOLYBEZIERTO_set 5 @@ -3322,7 +3344,7 @@ char *U_EMRPOLYBEZIERTO_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE1(U_EMR_POLYBEZIERTO, rclBounds, cptl, points)); + return(U_EMR_CORE1_set(U_EMR_POLYBEZIERTO, rclBounds, cptl, points)); } // U_EMRPOLYLINETO_set 6 @@ -3338,7 +3360,7 @@ char *U_EMRPOLYLINETO_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE1(U_EMR_POLYLINETO, rclBounds, cptl, points)); + return(U_EMR_CORE1_set(U_EMR_POLYLINETO, rclBounds, cptl, points)); } // U_EMRPOLYPOLYLINE_set 7 @@ -3358,7 +3380,7 @@ char *U_EMRPOLYPOLYLINE_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE2(U_EMR_POLYPOLYLINE, rclBounds, nPolys, aPolyCounts,cptl, points)); + return(U_EMR_CORE2_set(U_EMR_POLYPOLYLINE, rclBounds, nPolys, aPolyCounts,cptl, points)); } // U_EMRPOLYPOLYGON_set 8 @@ -3378,7 +3400,7 @@ char *U_EMRPOLYPOLYGON_set( const uint32_t cptl, const U_POINTL *points ){ - return(U_EMR_CORE2(U_EMR_POLYPOLYGON, rclBounds, nPolys, aPolyCounts,cptl, points)); + return(U_EMR_CORE2_set(U_EMR_POLYPOLYGON, rclBounds, nPolys, aPolyCounts,cptl, points)); } // U_EMRSETWINDOWEXTEX_set 9 @@ -3393,7 +3415,7 @@ char *U_EMRSETWINDOWEXTEX_set( U_PAIR temp; temp.x = szlExtent.cx; temp.y = szlExtent.cy; - return(U_EMR_CORE7(U_EMR_SETWINDOWEXTEX, temp)); + return(U_EMR_CORE7_set(U_EMR_SETWINDOWEXTEX, temp)); } // U_EMRSETWINDOWORGEX_set 10 @@ -3405,7 +3427,7 @@ char *U_EMRSETWINDOWEXTEX_set( char *U_EMRSETWINDOWORGEX_set( const U_POINTL ptlOrigin ){ - return(U_EMR_CORE7(U_EMR_SETWINDOWORGEX, ptlOrigin)); // U_PAIR and U_POINTL are the same thing + return(U_EMR_CORE7_set(U_EMR_SETWINDOWORGEX, ptlOrigin)); // U_PAIR and U_POINTL are the same thing } // U_EMRSETVIEWPORTEXTEX_set 11 @@ -3420,7 +3442,7 @@ char *U_EMRSETVIEWPORTEXTEX_set( U_PAIR temp; temp.x = szlExtent.cx; temp.y = szlExtent.cy; - return(U_EMR_CORE7(U_EMR_SETVIEWPORTEXTEX, temp)); + return(U_EMR_CORE7_set(U_EMR_SETVIEWPORTEXTEX, temp)); } // U_EMRSETVIEWPORTORGEX_set 12 @@ -3432,7 +3454,7 @@ char *U_EMRSETVIEWPORTEXTEX_set( char *U_EMRSETVIEWPORTORGEX_set( const U_POINTL ptlOrigin ){ - return(U_EMR_CORE7(U_EMR_SETVIEWPORTORGEX, ptlOrigin)); // U_PAIR and U_POINTL are the same thing + return(U_EMR_CORE7_set(U_EMR_SETVIEWPORTORGEX, ptlOrigin)); // U_PAIR and U_POINTL are the same thing } // U_EMRSETBRUSHORGEX_set 13 @@ -3444,7 +3466,7 @@ char *U_EMRSETVIEWPORTORGEX_set( char *U_EMRSETBRUSHORGEX_set( const U_POINTL ptlOrigin ){ - return(U_EMR_CORE7(U_EMR_SETBRUSHORGEX, *((PU_PAIR) & ptlOrigin))); + return(U_EMR_CORE7_set(U_EMR_SETBRUSHORGEX, *((PU_PAIR) & ptlOrigin))); } // U_EMREOF_set 14 @@ -3544,7 +3566,7 @@ char *U_EMRSETMAPPERFLAGS_set(void){ char *U_EMRSETMAPMODE_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETMAPMODE, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETMAPMODE, iMode)); } // U_EMRSETBKMODE_set 18 @@ -3556,7 +3578,7 @@ char *U_EMRSETMAPMODE_set( char *U_EMRSETBKMODE_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETBKMODE, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETBKMODE, iMode)); } // U_EMRSETPOLYFILLMODE_set 19 @@ -3568,7 +3590,7 @@ char *U_EMRSETBKMODE_set( char *U_EMRSETPOLYFILLMODE_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETPOLYFILLMODE, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETPOLYFILLMODE, iMode)); } // U_EMRSETROP2_set 20 @@ -3580,7 +3602,7 @@ char *U_EMRSETPOLYFILLMODE_set( char *U_EMRSETROP2_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETROP2, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETROP2, iMode)); } // U_EMRSETSTRETCHBLTMODE_set 21 @@ -3592,7 +3614,7 @@ char *U_EMRSETROP2_set( char *U_EMRSETSTRETCHBLTMODE_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETSTRETCHBLTMODE, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETSTRETCHBLTMODE, iMode)); } // U_EMRSETTEXTALIGN_set 22 @@ -3604,7 +3626,7 @@ char *U_EMRSETSTRETCHBLTMODE_set( char *U_EMRSETTEXTALIGN_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETTEXTALIGN, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETTEXTALIGN, iMode)); } // U_EMRSETCOLORADJUSTMENT_set 23 @@ -3638,7 +3660,7 @@ char *U_EMRSETCOLORADJUSTMENT_set( char *U_EMRSETTEXTCOLOR_set( const U_COLORREF crColor ){ - return(U_EMR_CORE3(U_EMR_SETTEXTCOLOR, *(uint32_t *) &crColor)); + return(U_EMR_CORE3_set(U_EMR_SETTEXTCOLOR, *(uint32_t *) &crColor)); } // U_EMRSETBKCOLOR_set 25 @@ -3650,7 +3672,7 @@ char *U_EMRSETTEXTCOLOR_set( char *U_EMRSETBKCOLOR_set( const U_COLORREF crColor ){ - return(U_EMR_CORE3(U_EMR_SETBKCOLOR, *(uint32_t *) &crColor)); + return(U_EMR_CORE3_set(U_EMR_SETBKCOLOR, *(uint32_t *) &crColor)); } // U_EMROFFSETCLIPRGN_set 26 @@ -3662,7 +3684,7 @@ char *U_EMRSETBKCOLOR_set( char *U_EMROFFSETCLIPRGN_set( const U_POINTL ptl ){ - return(U_EMR_CORE7(U_EMR_OFFSETCLIPRGN, ptl)); + return(U_EMR_CORE7_set(U_EMR_OFFSETCLIPRGN, ptl)); } // U_EMRMOVETOEX_set 27 @@ -3674,7 +3696,7 @@ char *U_EMROFFSETCLIPRGN_set( char *U_EMRMOVETOEX_set( const U_POINTL ptl ){ - return(U_EMR_CORE7(U_EMR_MOVETOEX, ptl)); + return(U_EMR_CORE7_set(U_EMR_MOVETOEX, ptl)); } // U_EMRSETMETARGN_set 28 @@ -3683,7 +3705,7 @@ char *U_EMRMOVETOEX_set( \return pointer to U_EMR_SETMETARGN record, or NULL on error. */ char *U_EMRSETMETARGN_set(void){ - return(U_EMR_CORE5(U_EMR_SETMETARGN)); + return(U_EMR_CORE5_set(U_EMR_SETMETARGN)); } // U_EMREXCLUDECLIPRECT_set 29 @@ -3695,7 +3717,7 @@ char *U_EMRSETMETARGN_set(void){ char *U_EMREXCLUDECLIPRECT_set( const U_RECTL rclClip ){ - return(U_EMR_CORE4(U_EMR_EXCLUDECLIPRECT,rclClip)); + return(U_EMR_CORE4_set(U_EMR_EXCLUDECLIPRECT,rclClip)); } // U_EMRINTERSECTCLIPRECT_set 30 @@ -3707,7 +3729,7 @@ char *U_EMREXCLUDECLIPRECT_set( char *U_EMRINTERSECTCLIPRECT_set( const U_RECTL rclClip ){ - return(U_EMR_CORE4(U_EMR_INTERSECTCLIPRECT,rclClip)); + return(U_EMR_CORE4_set(U_EMR_INTERSECTCLIPRECT,rclClip)); } // U_EMRSCALEVIEWPORTEXTEX_set 31 @@ -3725,7 +3747,7 @@ char *U_EMRSCALEVIEWPORTEXTEX_set( const int32_t yNum, const int32_t yDenom ){ - return(U_EMR_CORE4(U_EMR_SCALEVIEWPORTEXTEX,(U_RECTL){xNum,xDenom,yNum,yDenom})); + return(U_EMR_CORE4_set(U_EMR_SCALEVIEWPORTEXTEX,(U_RECTL){xNum,xDenom,yNum,yDenom})); } @@ -3744,7 +3766,7 @@ char *U_EMRSCALEWINDOWEXTEX_set( const int32_t yNum, const int32_t yDenom ){ - return(U_EMR_CORE4(U_EMR_SCALEWINDOWEXTEX,(U_RECTL){xNum,xDenom,yNum,yDenom})); + return(U_EMR_CORE4_set(U_EMR_SCALEWINDOWEXTEX,(U_RECTL){xNum,xDenom,yNum,yDenom})); } // U_EMRSAVEDC_set 33 @@ -3753,7 +3775,7 @@ char *U_EMRSCALEWINDOWEXTEX_set( \return pointer to U_EMR_SAVEDC record, or NULL on error. */ char *U_EMRSAVEDC_set(void){ - return(U_EMR_CORE5(U_EMR_SAVEDC)); + return(U_EMR_CORE5_set(U_EMR_SAVEDC)); } // U_EMRRESTOREDC_set 34 @@ -3765,7 +3787,7 @@ char *U_EMRSAVEDC_set(void){ char *U_EMRRESTOREDC_set( const int32_t iRelative ){ - return(U_EMR_CORE3(U_EMR_RESTOREDC, (uint32_t) iRelative)); + return(U_EMR_CORE3_set(U_EMR_RESTOREDC, (uint32_t) iRelative)); } // U_EMRSETWORLDTRANSFORM_set 35 @@ -3952,7 +3974,7 @@ char *U_EMRANGLEARC_set( char *U_EMRELLIPSE_set( const U_RECTL rclBox ){ - return(U_EMR_CORE4(U_EMR_ELLIPSE,rclBox)); + return(U_EMR_CORE4_set(U_EMR_ELLIPSE,rclBox)); } // U_EMRRECTANGLE_set 43 @@ -3964,7 +3986,7 @@ char *U_EMRELLIPSE_set( char *U_EMRRECTANGLE_set( const U_RECTL rclBox ){ - return(U_EMR_CORE4(U_EMR_RECTANGLE,rclBox)); + return(U_EMR_CORE4_set(U_EMR_RECTANGLE,rclBox)); } // U_EMRROUNDRECT_set 44 @@ -4005,7 +4027,7 @@ char *U_EMRARC_set( const U_POINTL ptlStart, const U_POINTL ptlEnd ){ - return(U_EMR_CORE9(U_EMR_ARC,rclBox, ptlStart, ptlEnd)); + return(U_EMR_CORE9_set(U_EMR_ARC,rclBox, ptlStart, ptlEnd)); } // U_EMRCHORD_set 46 @@ -4021,7 +4043,7 @@ char *U_EMRCHORD_set( const U_POINTL ptlStart, const U_POINTL ptlEnd ){ - return(U_EMR_CORE9(U_EMR_CHORD,rclBox, ptlStart, ptlEnd)); + return(U_EMR_CORE9_set(U_EMR_CHORD,rclBox, ptlStart, ptlEnd)); } // U_EMRPIE_set 47 @@ -4037,7 +4059,7 @@ char *U_EMRPIE_set( const U_POINTL ptlStart, const U_POINTL ptlEnd ){ - return(U_EMR_CORE9(U_EMR_PIE,rclBox, ptlStart, ptlEnd)); + return(U_EMR_CORE9_set(U_EMR_PIE,rclBox, ptlStart, ptlEnd)); } // U_EMRSELECTPALETTE_set 48 @@ -4049,7 +4071,7 @@ char *U_EMRPIE_set( char *U_EMRSELECTPALETTE_set( const uint32_t ihPal ){ - return(U_EMR_CORE3(U_EMR_SELECTPALETTE, ihPal)); + return(U_EMR_CORE3_set(U_EMR_SELECTPALETTE, ihPal)); } // U_EMRCREATEPALETTE_set 49 @@ -4124,7 +4146,7 @@ char *U_EMRRESIZEPALETTE_set( const uint32_t ihPal, const uint32_t cEntries ){ - return(U_EMR_CORE7(U_EMR_RESIZEPALETTE, (U_PAIR){ihPal,cEntries})); + return(U_EMR_CORE7_set(U_EMR_RESIZEPALETTE, (U_PAIR){ihPal,cEntries})); } // U_EMRREALIZEPALETTE_set 52 @@ -4133,7 +4155,7 @@ char *U_EMRRESIZEPALETTE_set( \return pointer to U_EMR_REALIZEPALETTE record, or NULL on error. */ char *U_EMRREALIZEPALETTE_set(void){ - return(U_EMR_CORE5(U_EMR_REALIZEPALETTE)); + return(U_EMR_CORE5_set(U_EMR_REALIZEPALETTE)); } // U_EMREXTFLOODFILL_set 53 @@ -4173,7 +4195,7 @@ char *U_EMREXTFLOODFILL_set( char *U_EMRLINETO_set( const U_POINTL ptl ){ - return(U_EMR_CORE7(U_EMR_LINETO, ptl)); + return(U_EMR_CORE7_set(U_EMR_LINETO, ptl)); } // U_EMRARCTO_set 55 @@ -4192,7 +4214,7 @@ char *U_EMRARCTO_set( U_POINTL ptlStart, U_POINTL ptlEnd ){ - return(U_EMR_CORE9(U_EMR_ARCTO,rclBox, ptlStart, ptlEnd)); + return(U_EMR_CORE9_set(U_EMR_ARCTO,rclBox, ptlStart, ptlEnd)); } // U_EMRPOLYDRAW_set 56 @@ -4216,7 +4238,7 @@ char *U_EMRPOLYDRAW_set( if(!cptl || !aptl || !abTypes)return(NULL); cbPoints = cptl * sizeof(U_POINTL); // space for aptl - cbAbTypes = cptl; // number of abTypes (also size, 1 byte each) + cbAbTypes = cptl; // number of abTypes (same array size, 1 byte each) cbAbTypes4 = UP4(cbAbTypes); // space for abTypes irecsize = sizeof(U_EMRPOLYDRAW) + cbPoints + cbAbTypes4 - sizeof(U_POINTL) - 1; record = malloc(irecsize); @@ -4244,7 +4266,7 @@ char *U_EMRPOLYDRAW_set( char *U_EMRSETARCDIRECTION_set( const uint32_t iArcDirection ){ - return(U_EMR_CORE3(U_EMR_SETARCDIRECTION, iArcDirection)); + return(U_EMR_CORE3_set(U_EMR_SETARCDIRECTION, iArcDirection)); } // U_EMRSETMITERLIMIT_set 58 @@ -4256,7 +4278,7 @@ char *U_EMRSETARCDIRECTION_set( char *U_EMRSETMITERLIMIT_set( const uint32_t eMiterLimit ){ - return(U_EMR_CORE3(U_EMR_SETMITERLIMIT, eMiterLimit)); + return(U_EMR_CORE3_set(U_EMR_SETMITERLIMIT, eMiterLimit)); } @@ -4266,7 +4288,7 @@ char *U_EMRSETMITERLIMIT_set( \return pointer to U_EMR_BEGINPATH record, or NULL on error. */ char *U_EMRBEGINPATH_set(void){ - return(U_EMR_CORE5(U_EMR_BEGINPATH)); + return(U_EMR_CORE5_set(U_EMR_BEGINPATH)); } // U_EMRENDPATH_set 60 @@ -4275,7 +4297,7 @@ char *U_EMRBEGINPATH_set(void){ \return pointer to U_EMR_ENDPATH record, or NULL on error. */ char *U_EMRENDPATH_set(void){ - return(U_EMR_CORE5(U_EMR_ENDPATH)); + return(U_EMR_CORE5_set(U_EMR_ENDPATH)); } // U_EMRCLOSEFIGURE_set 61 @@ -4284,7 +4306,7 @@ char *U_EMRENDPATH_set(void){ \return pointer to U_EMR_CLOSEFIGURE record, or NULL on error. */ char *U_EMRCLOSEFIGURE_set(void){ - return(U_EMR_CORE5(U_EMR_CLOSEFIGURE)); + return(U_EMR_CORE5_set(U_EMR_CLOSEFIGURE)); } // U_EMRFILLPATH_set 62 @@ -4298,7 +4320,7 @@ char *U_EMRCLOSEFIGURE_set(void){ char *U_EMRFILLPATH_set( const U_RECTL rclBox ){ - return(U_EMR_CORE4(U_EMR_FILLPATH,rclBox)); + return(U_EMR_CORE4_set(U_EMR_FILLPATH,rclBox)); } // U_EMRSTROKEANDFILLPATH_set 63 @@ -4314,7 +4336,7 @@ char *U_EMRFILLPATH_set( char *U_EMRSTROKEANDFILLPATH_set( const U_RECTL rclBox ){ - return(U_EMR_CORE4(U_EMR_STROKEANDFILLPATH,rclBox)); + return(U_EMR_CORE4_set(U_EMR_STROKEANDFILLPATH,rclBox)); } // U_EMRSTROKEPATH_set 64 @@ -4328,7 +4350,7 @@ char *U_EMRSTROKEANDFILLPATH_set( char *U_EMRSTROKEPATH_set( const U_RECTL rclBox ){ - return(U_EMR_CORE4(U_EMR_STROKEPATH,rclBox)); + return(U_EMR_CORE4_set(U_EMR_STROKEPATH,rclBox)); } // U_EMRFLATTENPATH_set 65 @@ -4337,7 +4359,7 @@ char *U_EMRSTROKEPATH_set( \return pointer to U_EMR_FLATTENPATH record, or NULL on error. */ char *U_EMRFLATTENPATH_set(void){ - return(U_EMR_CORE5(U_EMR_FLATTENPATH)); + return(U_EMR_CORE5_set(U_EMR_FLATTENPATH)); } // U_EMRWIDENPATH_set 66 @@ -4346,7 +4368,7 @@ char *U_EMRFLATTENPATH_set(void){ \return pointer to U_EMR_WIDENPATH record, or NULL on error. */ char *U_EMRWIDENPATH_set(void){ - return(U_EMR_CORE5(U_EMR_WIDENPATH)); + return(U_EMR_CORE5_set(U_EMR_WIDENPATH)); } // U_EMRSELECTCLIPPATH_set 67 @@ -4358,7 +4380,7 @@ char *U_EMRWIDENPATH_set(void){ char *U_EMRSELECTCLIPPATH_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SELECTCLIPPATH, iMode)); + return(U_EMR_CORE3_set(U_EMR_SELECTCLIPPATH, iMode)); } // U_EMRABORTPATH_set 68 @@ -4367,7 +4389,7 @@ char *U_EMRSELECTCLIPPATH_set( \return pointer to U_EMR_ABORTPATH record, or NULL on error. */ char *U_EMRABORTPATH_set(void){ - return(U_EMR_CORE5(U_EMR_ABORTPATH)); + return(U_EMR_CORE5_set(U_EMR_ABORTPATH)); } // U_EMRUNDEF69 69 @@ -4416,23 +4438,25 @@ char *U_EMRFILLRGN_set( ){ char *record; int irecsize; - int cbRgns,cbRgns4,off; + int cbRgns,cbRgns4,rds,rds4,off; if(!RgnData)return(NULL); cbRgns = ((PU_RGNDATAHEADER) RgnData)->nRgnSize; - cbRgns4 = UP4(cbRgns); - irecsize = sizeof(U_EMRFILLRGN) + cbRgns4 - sizeof(U_RGNDATAHEADER); // core + array - overlap + cbRgns4 = UP4(cbRgns); + rds = sizeof(U_RGNDATAHEADER) + cbRgns; + rds4 = UP4(rds); + irecsize = sizeof(U_EMRFILLRGN) - sizeof(U_RECTL) + cbRgns4; // core + array - overlap of one rectL record = malloc(irecsize); if(record){ ((PU_EMR) record)->iType = U_EMR_FILLRGN; ((PU_EMR) record)->nSize = irecsize; - ((PU_EMRFILLRGN) record)->rclBounds = rclBounds; // or ??? ((PU_RGNDATAHEADER) RgnData)->rclBounds; - ((PU_EMRFILLRGN) record)->cbRgnData = cbRgns; + ((PU_EMRFILLRGN) record)->rclBounds = rclBounds; + ((PU_EMRFILLRGN) record)->cbRgnData = rds; ((PU_EMRFILLRGN) record)->ihBrush = ihBrush; - off = irecsize - cbRgns4; - memcpy(record + off, RgnData, cbRgns); - off += cbRgns; - if(cbRgns4 > cbRgns){ memset(record + off,0,cbRgns4-cbRgns); } // clear any unused bytes + off = sizeof(U_EMRFILLRGN) - sizeof(U_RGNDATA); + memcpy(record + off, RgnData, rds); + off += rds; + if(rds < rds4){ memset(record + off,0, rds4 - rds); } // clear any unused bytes } return(record); } @@ -4455,24 +4479,26 @@ char *U_EMRFRAMERGN_set( ){ char *record; int irecsize; - int cbRgns,cbRgns4,off; + int cbRgns,cbRgns4,rds,rds4,off; if(!RgnData)return(NULL); cbRgns = ((PU_RGNDATAHEADER) RgnData)->nRgnSize; - cbRgns4 = UP4(cbRgns); - irecsize = sizeof(U_EMRFRAMERGN) + cbRgns4 - sizeof(U_RGNDATAHEADER); // core + array - overlap + cbRgns4 = UP4(cbRgns); + rds = sizeof(U_RGNDATAHEADER) + cbRgns; + rds4 = UP4(rds); + irecsize = sizeof(U_EMRFRAMERGN) - sizeof(U_RECTL) + cbRgns4; // core + array - overlap of one rectL record = malloc(irecsize); if(record){ ((PU_EMR) record)->iType = U_EMR_FRAMERGN; ((PU_EMR) record)->nSize = irecsize; - ((PU_EMRFRAMERGN) record)->rclBounds = rclBounds; // or ??? ((PU_RGNDATAHEADER) RgnData)->rclBounds; - ((PU_EMRFRAMERGN) record)->cbRgnData = cbRgns; + ((PU_EMRFRAMERGN) record)->rclBounds = rclBounds; + ((PU_EMRFRAMERGN) record)->cbRgnData = rds; ((PU_EMRFRAMERGN) record)->ihBrush = ihBrush; ((PU_EMRFRAMERGN) record)->szlStroke = szlStroke; - off = irecsize - cbRgns4; - memcpy(record + off, RgnData, cbRgns); - off += cbRgns; - if(cbRgns4 > cbRgns){ memset(record + off,0,cbRgns4-cbRgns); } // clear any unused bytes + off = sizeof(U_EMRFRAMERGN) - sizeof(U_RGNDATA); + memcpy(record + off, RgnData, rds); + off += rds; + if(rds < rds4){ memset(record + off,0, rds4 - rds); } // clear any unused bytes } return(record); } @@ -4486,7 +4512,7 @@ char *U_EMRFRAMERGN_set( char *U_EMRINVERTRGN_set( const PU_RGNDATA RgnData ){ - return(U_EMR_CORE11(U_EMR_INVERTRGN, RgnData)); + return(U_EMR_CORE11_set(U_EMR_INVERTRGN, RgnData)); } // U_EMRPAINTRGN_set 74 @@ -4498,7 +4524,7 @@ char *U_EMRINVERTRGN_set( char *U_EMRPAINTRGN_set( const PU_RGNDATA RgnData ){ - return(U_EMR_CORE11(U_EMR_PAINTRGN, RgnData)); + return(U_EMR_CORE11_set(U_EMR_PAINTRGN, RgnData)); } // U_EMREXTSELECTCLIPRGN_set 75 @@ -4514,22 +4540,24 @@ char *U_EMREXTSELECTCLIPRGN_set( ){ char *record; int irecsize; - int cbRgns,cbRgns4,off; + int cbRgns,cbRgns4,rds,rds4,off; if(!RgnData)return(NULL); cbRgns = ((PU_RGNDATAHEADER) RgnData)->nRgnSize; - cbRgns4 = UP4(cbRgns); - irecsize = sizeof(U_EMREXTSELECTCLIPRGN) + cbRgns4 - sizeof(U_RGNDATAHEADER); // core + array - overlap + cbRgns4 = UP4(cbRgns); + rds = sizeof(U_RGNDATAHEADER) + cbRgns; + rds4 = UP4(rds); + irecsize = sizeof(U_EMREXTSELECTCLIPRGN) - sizeof(U_RECTL) + cbRgns4; // core + array - overlap of one rectL record = malloc(irecsize); if(record){ ((PU_EMR) record)->iType = U_EMR_EXTSELECTCLIPRGN; ((PU_EMR) record)->nSize = irecsize; - ((PU_EMREXTSELECTCLIPRGN) record)->cbRgnData = cbRgns; + ((PU_EMREXTSELECTCLIPRGN) record)->cbRgnData = rds; ((PU_EMREXTSELECTCLIPRGN) record)->iMode = iMode; - off = irecsize - cbRgns4; - memcpy(record + off, RgnData, cbRgns); - off += cbRgns; - if(cbRgns4 > cbRgns){ memset(record + off,0,cbRgns4-cbRgns); } // clear any unused bytes + off = sizeof(U_EMREXTSELECTCLIPRGN) - sizeof(U_RGNDATA); + memcpy(record + off, RgnData, rds); + off += rds; + if(rds < rds4){ memset(record + off,0, rds4 - rds); } // clear any unused bytes } return(record); } @@ -4568,7 +4596,6 @@ char *U_EMRBITBLT_set( int cbImage,cbImage4,cbBmi,off; SET_CB_FROM_PXBMI(Px,Bmi,cbImage,cbImage4,cbBmi,cbPx); - irecsize = sizeof(U_EMRBITBLT) + cbBmi + cbImage4; record = malloc(irecsize); if(record){ @@ -4933,7 +4960,7 @@ char *U_EMREXTTEXTOUTA_set( const U_FLOAT eyScale, const PU_EMRTEXT emrtext ){ - return(U_EMR_CORE8(U_EMR_EXTTEXTOUTA,rclBounds, iGraphicsMode, exScale, eyScale,emrtext)); + return(U_EMR_CORE8_set(U_EMR_EXTTEXTOUTA,rclBounds, iGraphicsMode, exScale, eyScale,emrtext)); } // U_EMREXTTEXTOUTW_set 84 @@ -4953,7 +4980,7 @@ char *U_EMREXTTEXTOUTW_set( const U_FLOAT eyScale, const PU_EMRTEXT emrtext ){ - return(U_EMR_CORE8(U_EMR_EXTTEXTOUTW,rclBounds, iGraphicsMode, exScale, eyScale,emrtext)); + return(U_EMR_CORE8_set(U_EMR_EXTTEXTOUTW,rclBounds, iGraphicsMode, exScale, eyScale,emrtext)); } // U_EMRPOLYBEZIER16_set 85 @@ -4969,7 +4996,7 @@ char *U_EMRPOLYBEZIER16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE6(U_EMR_POLYBEZIER16, rclBounds, cpts, points)); + return(U_EMR_CORE6_set(U_EMR_POLYBEZIER16, rclBounds, cpts, points)); } // U_EMRPOLYGON16_set 86 @@ -4985,7 +5012,7 @@ char *U_EMRPOLYGON16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE6(U_EMR_POLYGON16, rclBounds, cpts, points)); + return(U_EMR_CORE6_set(U_EMR_POLYGON16, rclBounds, cpts, points)); } // U_EMRPOLYLINE16_set 87 @@ -5001,7 +5028,7 @@ char *U_EMRPOLYLINE16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE6(U_EMR_POLYLINE16, rclBounds, cpts, points)); + return(U_EMR_CORE6_set(U_EMR_POLYLINE16, rclBounds, cpts, points)); } // U_EMRPOLYBEZIERTO16_set 88 @@ -5017,7 +5044,7 @@ char *U_EMRPOLYBEZIERTO16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE6(U_EMR_POLYBEZIERTO16, rclBounds, cpts, points)); + return(U_EMR_CORE6_set(U_EMR_POLYBEZIERTO16, rclBounds, cpts, points)); } // U_EMRPOLYLINETO16_set 89 @@ -5033,7 +5060,7 @@ char *U_EMRPOLYLINETO16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE6(U_EMR_POLYLINETO16, rclBounds, cpts, points)); + return(U_EMR_CORE6_set(U_EMR_POLYLINETO16, rclBounds, cpts, points)); } // U_EMRPOLYPOLYLINE16_set 90 @@ -5053,7 +5080,7 @@ char *U_EMRPOLYPOLYLINE16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE10(U_EMR_POLYPOLYLINE16, rclBounds, nPolys, aPolyCounts,cpts, points)); + return(U_EMR_CORE10_set(U_EMR_POLYPOLYLINE16, rclBounds, nPolys, aPolyCounts,cpts, points)); } // U_EMRPOLYPOLYGON16_set 91 @@ -5073,7 +5100,7 @@ char *U_EMRPOLYPOLYGON16_set( const uint32_t cpts, const U_POINT16 *points ){ - return(U_EMR_CORE10(U_EMR_POLYPOLYGON16, rclBounds, nPolys, aPolyCounts,cpts, points)); + return(U_EMR_CORE10_set(U_EMR_POLYPOLYGON16, rclBounds, nPolys, aPolyCounts,cpts, points)); } @@ -5098,7 +5125,7 @@ char *U_EMRPOLYDRAW16_set( if(!cpts || !aptl || !abTypes)return(NULL); cbPoints = cpts * sizeof(U_POINT16); // space for aptl - cbAbTypes = cpts; // number of abTypes (also size, 1 byte each) + cbAbTypes = cpts; // number of abTypes (same array size, 1 byte each) cbAbTypes4 = UP4(cbAbTypes); // space for abTypes irecsize = sizeof(U_EMRPOLYDRAW16) + cbPoints + cbAbTypes4 - sizeof(U_POINT16) - 1; record = malloc(irecsize); @@ -5242,7 +5269,7 @@ char *U_EMREXTCREATEPEN_set( char *U_EMRSETICMMODE_set( const uint32_t iMode ){ - return(U_EMR_CORE3(U_EMR_SETICMMODE, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETICMMODE, iMode)); } // U_EMRCREATECOLORSPACE_set 99 @@ -5280,7 +5307,7 @@ char *U_EMRCREATECOLORSPACE_set( char *U_EMRSETCOLORSPACE_set( const uint32_t ihCS ){ - return(U_EMR_CORE3(U_EMR_SETCOLORSPACE, ihCS)); + return(U_EMR_CORE3_set(U_EMR_SETCOLORSPACE, ihCS)); } // U_EMRDELETECOLORSPACE_set 101 @@ -5292,7 +5319,7 @@ char *U_EMRSETCOLORSPACE_set( char *U_EMRDELETECOLORSPACE_set( const uint32_t ihCS ){ - return(U_EMR_CORE3(U_EMR_DELETECOLORSPACE, ihCS)); + return(U_EMR_CORE3_set(U_EMR_DELETECOLORSPACE, ihCS)); } // U_EMRGLSRECORD_set 102 Not implemented @@ -5428,7 +5455,7 @@ char *U_EMRALPHABLEND_set( \param iMode Mirroring Enumeration */ char *U_EMRSETLAYOUT_set(uint32_t iMode){ - return(U_EMR_CORE3(U_EMR_SETLAYOUT, iMode)); + return(U_EMR_CORE3_set(U_EMR_SETLAYOUT, iMode)); } // U_EMRTRANSPARENTBLT_set 116 diff --git a/src/libuemf/uemf.h b/src/libuemf/uemf.h index a792a65de..53426cb55 100644 --- a/src/libuemf/uemf.h +++ b/src/libuemf/uemf.h @@ -95,11 +95,11 @@ these WMF enumerations is by referencing the following table: /* File: uemf.h -Version: 0.0.27 -Date: 28-MAR-2014 +Version: 0.0.31 +Date: 23-APR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2014 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifndef _UEMF_ @@ -167,6 +167,9 @@ extern "C" { /** Solaris 8 has problems with round/roundf, just use this everywhere */ #define U_ROUND(A) ( (A) > 0 ? floor((A)+0.5) : ( (A) < 0 ? -floor(-(A)+0.5) : (A) ) ) +#define MAKE_MIN_PTR(A,B) ( A < B ? A : B) +#define IS_MEM_UNSAFE(A,B,C) ( (int8_t *)(A) > (int8_t *)(C) ? 1 : ((int8_t *)(C) - (int8_t *)(A) >= (int)(B) ? 0 : 1 )) //!< Return 1 when a region of memory starting at A of B bytes extends beyond pointer C + /** @} */ @@ -1799,7 +1802,7 @@ typedef struct { //!< In MS documentation this is Log *PU_PATTERN; //!< EMF manual 2.2.12 /** - \brief For U_LOGFONT_PANOSE elfLogFont field + \brief For U_LOGFONT elfLogFont field EMF manual 2.2.13, Microsoft name: LogFont Object */ @@ -2075,6 +2078,9 @@ typedef struct { // *********************************************************************************** // The following have U_EMR_# records. They are ordered by their record index, not by EMF manual position. +// records which are documented but not implemented +#define U_SIZE_EMRNOTIMPLEMENTED 2048 + /* Index 1 */ /** \brief The first U_ENHMETARECORD record in the metafile. @@ -2117,6 +2123,8 @@ typedef struct { U_SIZEL szlMicrometers; //!< Size of the display device in micrometer } U_EMRHEADER, *PU_EMRHEADER; //!< EMF manual 2.2.9 +#define U_SIZE_EMRHEADER sizeof(U_EMRHEADER) // modern EMF files, for _really_ old ones the _MIN size applies +#define U_SIZE_EMRHEADER_MIN (U_SIZE_EMRHEADER - sizeof(U_CBPXLFMT) - sizeof(U_OFFPXLFMT) - sizeof(uint32_t) - sizeof(U_SIZEL)) /* Index 2,3,4,5,6 */ /** EMF manual 2.3.5.16 @@ -2137,6 +2145,11 @@ typedef struct { *PU_EMRPOLYBEZIERTO, //!< EMF manual 2.3.5.18 *PU_EMRPOLYLINETO; //!< EMF manual 2.3.5.26 +#define U_SIZE_EMRPOLYBEZIER (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POINTL) ) +#define U_SIZE_EMRPOLYGON U_SIZE_EMRPOLYBEZIER +#define U_SIZE_EMRPOLYLINE U_SIZE_EMRPOLYBEZIER +#define U_SIZE_EMRPOLYBEZIERTO U_SIZE_EMRPOLYBEZIER +#define U_SIZE_EMRPOLYLINETO U_SIZE_EMRPOLYBEZIER /* Index 7,8 */ /** EMF manual 2.3.5.30 @@ -2153,6 +2166,8 @@ typedef struct { U_EMRPOLYPOLYGON, //!< EMF manual 2.3.5.28 *PU_EMRPOLYPOLYLINE, //!< EMF manual 2.3.5.30 *PU_EMRPOLYPOLYGON; //!< EMF manual 2.3.5.28 +#define U_SIZE_EMRPOLYPOLYLINE (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POLYCOUNTS) + sizeof(U_POLYCOUNTS)) +#define U_SIZE_EMRPOLYPOLYGON U_SIZE_EMRPOLYPOLYLINE /* Index 9,11 (numbers interleave with next one) */ /** EMF manual 2.3.11.30 @@ -2164,6 +2179,8 @@ typedef struct { U_EMRSETVIEWPORTEXTEX, //!< EMF manual manual 2.3.11.28 *PU_EMRSETWINDOWEXTEX, //!< EMF manual manual 2.3.11.30 *PU_EMRSETVIEWPORTEXTEX; //!< EMF manual manual 2.3.11.28 +#define U_SIZE_EMRSETWINDOWEXTEX (sizeof(U_EMRSETWINDOWEXTEX )) +#define U_SIZE_EMRSETVIEWPORTEXTEX (sizeof(U_EMRSETVIEWPORTEXTEX)) /* Index 10,12,13 */ /** EMF manual 2.3.11.31 @@ -2177,7 +2194,9 @@ typedef struct { *PU_EMRSETWINDOWORGEX, //!< EMF manual 2.3.11.31 *PU_EMRSETVIEWPORTORGEX, //!< EMF manual 2.3.11.29 *PU_EMRSETBRUSHORGEX; //!< EMF manual 2.3.11.12 - +#define U_SIZE_EMRSETWINDOWORGEX (sizeof(U_EMRSETWINDOWORGEX )) +#define U_SIZE_EMRSETVIEWPORTORGEX (sizeof(U_EMRSETVIEWPORTORGEX)) +#define U_SIZE_EMRSETBRUSHORGEX (sizeof(U_EMRSETBRUSHORGEX )) /* Index 14 */ /** EMF manual 3.2.4.1 @@ -2197,6 +2216,7 @@ typedef struct { U_OFFPLENTRIES offPalEntries; //!< Offset in bytes to array of palette entries } U_EMREOF, *PU_EMREOF; //!< EMF manual 3.2.4.1 +#define U_SIZE_EMREOF (sizeof(U_EMREOF)) /* Index 15 */ /** EMF manual 2.3.5.36 @@ -2207,6 +2227,7 @@ typedef struct { U_COLORREF crColor; //!< Pixel color } U_EMRSETPIXELV, *PU_EMRSETPIXELV; //!< EMF manual 2.3.5.36 +#define U_SIZE_EMRSETPIXELV (sizeof(U_EMRSETPIXELV)) /* Index 16 */ /** EMF manual 2.3.11.20 @@ -2216,6 +2237,7 @@ typedef struct { uint32_t dwFlags; //!< must be 1 } U_EMRSETMAPPERFLAGS, *PU_EMRSETMAPPERFLAGS; //!< EMF manual 2.3.11.20 +#define U_SIZE_EMRSETMAPPERFLAGS (sizeof(U_EMRSETMAPPERFLAGS)) /* Index 17,18,19,20,21,22,67,98,115 */ @@ -2243,6 +2265,16 @@ typedef struct { *PU_EMRSETICMMODE, //!< EMF manual 2.3.11.14 ICMMode Enumeration *PU_EMRSETLAYOUT; //!< EMF manual 2.3.11.17 Mirroring Enumeration +#define U_SIZE_EMRSETMAPMODE (sizeof(U_EMRSETMAPMODE )) +#define U_SIZE_EMRSETBKMODE (sizeof(U_EMRSETBKMODE )) +#define U_SIZE_EMRSETPOLYFILLMODE (sizeof(U_EMRSETPOLYFILLMODE )) +#define U_SIZE_EMRSETROP2 (sizeof(U_EMRSETROP2 )) +#define U_SIZE_EMRSETSTRETCHBLTMODE (sizeof(U_EMRSETSTRETCHBLTMODE)) +#define U_SIZE_EMRSETTEXTALIGN (sizeof(U_EMRSETTEXTALIGN )) +#define U_SIZE_EMRSELECTCLIPPATH (sizeof(U_EMRSELECTCLIPPATH )) +#define U_SIZE_EMRSETICMMODE (sizeof(U_EMRSETICMMODE )) +#define U_SIZE_EMRSETLAYOUT (sizeof(U_EMRSETLAYOUT )) + /* Index 23 */ /** EMF manual 2.3.11.13 */ @@ -2251,6 +2283,7 @@ typedef struct { U_COLORADJUSTMENT ColorAdjustment; //!< Color Adjustment } U_EMRSETCOLORADJUSTMENT, *PU_EMRSETCOLORADJUSTMENT; //!< EMF manual 2.3.11.13 +#define U_SIZE_EMRSETCOLORADJUSTMENT (sizeof(U_EMRSETCOLORADJUSTMENT)) /* Index 24, 25 */ /** EMF manual 2.3.11.26 @@ -2262,6 +2295,8 @@ typedef struct { U_EMRSETBKCOLOR, //!< EMF manual 2.3.11.10 *PU_EMRSETTEXTCOLOR, //!< EMF manual 2.3.11.26 *PU_EMRSETBKCOLOR; //!< EMF manual 2.3.11.10 +#define U_SIZE_EMRSETTEXTCOLOR (sizeof(U_EMRSETTEXTCOLOR)) +#define U_SIZE_EMRSETBKCOLOR (sizeof(U_EMRSETBKCOLOR )) /* Index 26 */ /** EMF manual 2.3.2.4 @@ -2271,6 +2306,7 @@ typedef struct { U_POINTL ptlOffset; //!< Clipping region } U_EMROFFSETCLIPRGN, *PU_EMROFFSETCLIPRGN; //!< EMF manual 2.3.2.4 +#define U_SIZE_EMROFFSETCLIPRGN (sizeof(U_EMROFFSETCLIPRGN)) /* Index 27, 54 */ /** @@ -2284,6 +2320,8 @@ typedef struct { U_EMRLINETO, //!< EMF manual 2.3.5.13 *PU_EMRMOVETOEX, //!< EMF manual 2.3.11.4 *PU_EMRLINETO; //!< EMF manual 2.3.5.13 +#define U_SIZE_EMRMOVETOEX (sizeof(U_EMRMOVETOEX)) +#define U_SIZE_EMRLINETO (sizeof(U_EMRLINETO )) /* Index 28,33,52,59,60,61,65,66,68 */ /** EMF manual 2.3.2 @@ -2309,6 +2347,15 @@ typedef struct { *PU_EMRFLATTENPATH, //!< EMF manual 2.3.10 *PU_EMRWIDENPATH, //!< EMF manual 2.3.10 *PU_EMRABORTPATH; //!< EMF manual 2.3.10 +#define U_SIZE_EMRSETMETARGN (sizeof(U_EMRSETMETARGN )) +#define U_SIZE_EMRSAVEDC (sizeof(U_EMRSAVEDC )) +#define U_SIZE_EMRREALIZEPALETTE (sizeof(U_EMRREALIZEPALETTE)) +#define U_SIZE_EMRBEGINPATH (sizeof(U_EMRBEGINPATH )) +#define U_SIZE_EMRENDPATH (sizeof(U_EMRENDPATH )) +#define U_SIZE_EMRCLOSEFIGURE (sizeof(U_EMRCLOSEFIGURE )) +#define U_SIZE_EMRFLATTENPATH (sizeof(U_EMRFLATTENPATH )) +#define U_SIZE_EMRWIDENPATH (sizeof(U_EMRWIDENPATH )) +#define U_SIZE_EMRABORTPATH (sizeof(U_EMRABORTPATH )) /* Index 29,30 */ /** EMF manual 2.3.2.1 @@ -2320,6 +2367,8 @@ typedef struct { U_EMRINTERSECTCLIPRECT, //!< EMF manual 2.3.2.3 *PU_EMREXCLUDECLIPRECT, //!< EMF manual 2.3.2.1 *PU_EMRINTERSECTCLIPRECT; //!< EMF manual 2.3.2.3 +#define U_SIZE_EMREXCLUDECLIPRECT (sizeof(U_EMREXCLUDECLIPRECT )) +#define U_SIZE_EMRINTERSECTCLIPRECT (sizeof(U_EMRINTERSECTCLIPRECT )) /* Index 31,32 */ /** EMF manual 2.3.11.7 @@ -2334,6 +2383,8 @@ typedef struct { U_EMRSCALEWINDOWEXTEX, //!< EMF manual 2.3.11.8 *PU_EMRSCALEVIEWPORTEXTEX, //!< EMF manual 2.3.11.7 *PU_EMRSCALEWINDOWEXTEX; //!< EMF manual 2.3.11.8 +#define U_SIZE_EMRSCALEVIEWPORTEXTEX (sizeof(U_EMRSCALEVIEWPORTEXTEX)) +#define U_SIZE_EMRSCALEWINDOWEXTEX (sizeof(U_EMRSCALEWINDOWEXTEX )) /* Index 33 (see 28) */ @@ -2345,6 +2396,7 @@ typedef struct { int32_t iRelative; //!< DC to restore. -1 is preceding } U_EMRRESTOREDC, *PU_EMRRESTOREDC; //!< EMF manual 2.3.11.6 +#define U_SIZE_EMRRESTOREDC (sizeof(U_EMRRESTOREDC)) /* Index 35 */ /** EMF manual 2.3.12.2 @@ -2354,6 +2406,7 @@ typedef struct { U_XFORM xform; //!< Transform } U_EMRSETWORLDTRANSFORM, *PU_EMRSETWORLDTRANSFORM; //!< EMF manual 2.3.12.2 +#define U_SIZE_EMRSETWORLDTRANSFORM (sizeof(U_EMRSETWORLDTRANSFORM)) /* Index 36 */ /** EMF manual 2.3.12.1 @@ -2364,6 +2417,7 @@ typedef struct { uint32_t iMode; //!< ModifyWorldTransformMode Enumeration } U_EMRMODIFYWORLDTRANSFORM, *PU_EMRMODIFYWORLDTRANSFORM; //!< EMF manual 2.3.12.1 +#define U_SIZE_EMRMODIFYWORLDTRANSFORM (sizeof(U_EMRMODIFYWORLDTRANSFORM)) /* Index 37,40 */ /** EMF manual 2.3.8.3 @@ -2375,6 +2429,8 @@ typedef struct { U_EMRSELECTOBJECT, //!< EMF manual 2.3.8.5 *PU_EMRDELETEOBJECT, //!< EMF manual 2.3.8.3 *PU_EMRSELECTOBJECT; //!< EMF manual 2.3.8.5 +#define U_SIZE_EMRDELETEOBJECT (sizeof(U_EMRDELETEOBJECT)) +#define U_SIZE_EMRSELECTOBJECT (sizeof(U_EMRSELECTOBJECT)) /* Index 38 */ /** EMF manual 2.3.7.7 @@ -2385,6 +2441,7 @@ typedef struct { U_LOGPEN lopn; //!< Pen properties } U_EMRCREATEPEN, *PU_EMRCREATEPEN; //!< EMF manual 2.3.7.7 +#define U_SIZE_EMRCREATEPEN (sizeof(U_EMRCREATEPEN)) /* Index 39 */ /** EMF manual 2.3.7.1 @@ -2395,6 +2452,7 @@ typedef struct { U_LOGBRUSH lb; //!< Brush properties } U_EMRCREATEBRUSHINDIRECT, *PU_EMRCREATEBRUSHINDIRECT; //!< EMF manual 2.3.7.1 +#define U_SIZE_EMRCREATEBRUSHINDIRECT (sizeof(U_EMRCREATEBRUSHINDIRECT)) /* Index 40 see 37 */ @@ -2409,6 +2467,7 @@ typedef struct { U_FLOAT eSweepAngle; //!< Sweep angle in degrees } U_EMRANGLEARC, *PU_EMRANGLEARC; //!< EMF manual 2.3.5.1 +#define U_SIZE_EMRANGLEARC (sizeof(U_EMRANGLEARC)) /* Index 42,43 */ /** EMF manual 2.3.5.5 @@ -2420,6 +2479,8 @@ typedef struct { U_EMRRECTANGLE, //!< EMF manual 2.3.5.5 *PU_EMRELLIPSE, //!< EMF manual 2.3.5.5 *PU_EMRRECTANGLE; //!< EMF manual 2.3.5.34 +#define U_SIZE_EMRELLIPSE (sizeof(U_EMRELLIPSE )) +#define U_SIZE_EMRRECTANGLE (sizeof(U_EMRRECTANGLE)) /* Index 44 */ /** EMF manual 2.3.5.35 @@ -2430,6 +2491,7 @@ typedef struct { U_SIZEL szlCorner; //!< W & H in logical units of ellipse used to round corner } U_EMRROUNDRECT, *PU_EMRROUNDRECT; //!< EMF manual 2.3.5.35 +#define U_SIZE_EMRROUNDRECT (sizeof(U_EMRROUNDRECT)) /* Index 45, 46 ,47, 55 */ /** EMF manual 2.3.5.2 @@ -2447,6 +2509,10 @@ typedef struct { *PU_EMRCHORD, //!< EMF manual 2.3.5.4 *PU_EMRPIE, //!< EMF manual 2.3.5.15 *PU_EMRARCTO; //!< EMF manual 2.3.5.3 +#define U_SIZE_EMRARC (sizeof(U_EMRARC )) +#define U_SIZE_EMRCHORD (sizeof(U_EMRCHORD)) +#define U_SIZE_EMRPIE (sizeof(U_EMRPIE )) +#define U_SIZE_EMRARCTO (sizeof(U_EMRARCTO)) /* Index 48 */ /** EMF manual 2.3.8.6 @@ -2456,6 +2522,7 @@ typedef struct { uint32_t ihPal; //!< Index of a Palette object in the EMF object table } U_EMRSELECTPALETTE, *PU_EMRSELECTPALETTE; //!< EMF manual 2.3.8.6 +#define U_SIZE_EMRSELECTPALETTE (sizeof(U_EMRSELECTPALETTE)) /* Index 49 */ /** EMF manual 2.3.7.6 @@ -2466,6 +2533,7 @@ typedef struct { U_LOGPALETTE lgpl; //!< Palette properties } U_EMRCREATEPALETTE, *PU_EMRCREATEPALETTE; //!< EMF manual 2.3.7.6 +#define U_SIZE_EMRCREATEPALETTE (sizeof(U_EMRCREATEPALETTE)) /* Index 50 */ /** EMF manual 2.3.8.8 @@ -2478,6 +2546,7 @@ typedef struct { U_LOGPLTNTRY aPalEntries[1]; //!< Values to set with } U_EMRSETPALETTEENTRIES, *PU_EMRSETPALETTEENTRIES; //!< EMF manual 2.3.8.8 +#define U_SIZE_EMRSETPALETTEENTRIES (sizeof(U_EMR) + 2*sizeof(uint32_t) + sizeof(U_NUM_LOGPLTNTRY)) /* Index 51 */ /** EMF manual 2.3.8.4 @@ -2488,6 +2557,7 @@ typedef struct { uint32_t cEntries; //!< Number to expand or truncate the Palette entry list to. } U_EMRRESIZEPALETTE, *PU_EMRRESIZEPALETTE; //!< EMF manual 2.3.8.4 +#define U_SIZE_EMRRESIZEPALETTE (sizeof(U_EMRRESIZEPALETTE)) /* Index 52 (see 28) */ @@ -2501,22 +2571,26 @@ typedef struct { uint32_t iMode; //!< FloodFill Enumeration } U_EMREXTFLOODFILL, *PU_EMREXTFLOODFILL; //!< EMF manual 2.3.5.6 +#define U_SIZE_EMREXTFLOODFILL (sizeof(U_EMREXTFLOODFILL)) /* Index 54 (see 27) */ /* Index 55 (see 45) */ /* Index 56 */ -/** EMF manual 2.3.5.20 +/** EMF manual 2.3.5.20 + + followed by + uint8_t abTypes[1]; //!< Array of Point Enumeration */ typedef struct { U_EMR emr; //!< U_EMR U_RECTL rclBounds; //!< Bounding rectangle in device units U_NUM_POINTL cptl; //!< Number of U_POINTL objects U_POINTL aptl[1]; //!< Array of U_POINTL objects - uint8_t abTypes[1]; //!< Array of Point Enumeration } U_EMRPOLYDRAW, *PU_EMRPOLYDRAW; //!< EMF manual 2.3.5.20 +#define U_SIZE_EMRPOLYDRAW (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POINTL)) /* Index 57 */ /** EMF manual 2.3.11.9 @@ -2526,6 +2600,7 @@ typedef struct { uint32_t iArcDirection; //!< ArcDirection Enumeration } U_EMRSETARCDIRECTION, *PU_EMRSETARCDIRECTION; //!< EMF manual 2.3.11.9 +#define U_SIZE_EMRSETARCDIRECTION (sizeof(U_EMRSETARCDIRECTION)) /* Index 58 */ /** EMF manual 2.3.11.21 @@ -2538,6 +2613,7 @@ typedef struct { uint32_t eMiterLimit; //!< Miter limit (max value of mitered length / line width) } U_EMRSETMITERLIMIT, *PU_EMRSETMITERLIMIT; //!< EMF manual 2.3.11.21 +#define U_SIZE_EMRSETMITERLIMIT (sizeof(U_EMRSETMITERLIMIT)) /* Index 59,60,61 (see 28) */ @@ -2553,6 +2629,9 @@ typedef struct { *PU_EMRFILLPATH, //!< EMF manual 2.3.5.9 *PU_EMRSTROKEANDFILLPATH, //!< EMF manual 2.3.5.38 *PU_EMRSTROKEPATH; //!< EMF manual 2.3.5.39 +#define U_SIZE_EMRFILLPATH (sizeof(U_EMRFILLPATH )) +#define U_SIZE_EMRSTROKEANDFILLPATH (sizeof(U_EMRSTROKEANDFILLPATH)) +#define U_SIZE_EMRSTROKEPATH (sizeof(U_EMRSTROKEPATH )) /* Index 65,66 (see 28) */ /* Index 67 (see 17) */ @@ -2569,6 +2648,7 @@ typedef struct { uint8_t Data[1]; //!< Comment (any binary data, interpretation is program specific) } U_EMRCOMMENT, *PU_EMRCOMMENT; //!< EMF manual 2.3.3.1, AKA GDICOMMENT +#define U_SIZE_EMRCOMMENT (sizeof(U_EMR) + sizeof(U_CBDATA)) /* variant comment types */ /** EMF manual 2.3.3.2 @@ -2580,6 +2660,7 @@ typedef struct { uint8_t Data[1]; //!< EMF Plus record } U_EMRCOMMENT_EMFPLUS, *PU_EMRCOMMENT_EMFPLUS; //!< EMF manual 2.3.3.2, EMF Plus comment +#define U_SIZE_EMRCOMMENT_EMFPLUS (sizeof(U_EMR) + sizeof(U_CBDATA) + sizeof(uint32_t)) /** EMF manual 2.3.3.3 */ @@ -2591,6 +2672,7 @@ typedef struct { uint8_t Data[1]; //!< EMF Spool records } U_EMRCOMMENT_SPOOL, *PU_EMRCOMMENT_SPOOL; //!< EMF manual 2.3.3.3, EMF Spool comment +#define U_SIZE_EMRCOMMENT_SPOOL (sizeof(U_EMR) + sizeof(U_CBDATA) + 2*sizeof(uint32_t)) /** EMF manual 2.3.3.4 */ @@ -2602,9 +2684,11 @@ typedef struct { uint8_t Data[1]; //!< Public comment data } U_EMRCOMMENT_PUBLIC, *PU_EMRCOMMENT_PUBLIC; //!< EMF manual 2.3.3.4, EMF Public comment +#define U_SIZE_EMRCOMMENT_PUBLIC (sizeof(U_EMR) + sizeof(U_CBDATA) + 2*sizeof(uint32_t)) /* Index 71 */ -/** EMF manual 2.3.5.10 +/** EMF manual 2.3.5.10 + followed by a variable number of U_RECTLs */ typedef struct { U_EMR emr; //!< U_EMR @@ -2614,6 +2698,7 @@ typedef struct { U_RGNDATA RgnData[1]; //!< Variable size U_RGNDATA structure } U_EMRFILLRGN, *PU_EMRFILLRGN; //!< EMF manual 2.3.5.10 +#define U_SIZE_EMRFILLRGN (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_CBRGNDATA) + sizeof(uint32_t)) /* Index 72 */ /** EMF manual 2.3.5.11 @@ -2627,6 +2712,7 @@ typedef struct { U_RGNDATA RgnData[1]; //!< Variable size U_RGNDATA structure } U_EMRFRAMERGN, *PU_EMRFRAMERGN; //!< EMF manual 2.3.5.11 +#define U_SIZE_EMRFRAMERGN (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_CBRGNDATA) + sizeof(uint32_t) + sizeof(U_SIZEL)) /* Index 73,74 */ /** EMF manual 2.3.11.3 @@ -2640,6 +2726,8 @@ typedef struct { U_EMRPAINTRGN, //!< EMF manual 2.3.5.14 *PU_EMRINVERTRGN, //!< EMF manual 2.3.11.3 *PU_EMRPAINTRGN; //!< EMF manual 2.3.5.14 +#define U_SIZE_EMRINVERTRGN (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_CBRGNDATA)) +#define U_SIZE_EMRPAINTRGN U_SIZE_EMRINVERTRGN /* Index 75 */ /** EMF manual 2.3.2.2 @@ -2651,6 +2739,7 @@ typedef struct { U_RGNDATA RgnData[1]; //!< Variable size U_RGNDATA structure } U_EMREXTSELECTCLIPRGN, *PU_EMREXTSELECTCLIPRGN; //!< EMF manual 2.3.2.2 +#define U_SIZE_EMREXTSELECTCLIPRGN (sizeof(U_EMR) + sizeof(U_CBRGNDATA) + sizeof(uint32_t)) /* Index 76 */ /** EMF manual 2.3.1.2 @@ -2672,6 +2761,7 @@ typedef struct { //!< Record may include optional bitmapbuffer } U_EMRBITBLT, *PU_EMRBITBLT; //!< EMF manual 2.3.1.2 +#define U_SIZE_EMRBITBLT (sizeof(U_EMRBITBLT)) /* Index 77 */ /** EMF manual 2.3.1.6 @@ -2694,6 +2784,7 @@ typedef struct { //!< Record may include optional bitmapbuffer } U_EMRSTRETCHBLT, *PU_EMRSTRETCHBLT; //!< EMF manual 2.3.1.6 +#define U_SIZE_EMRSTRETCHBLT (sizeof(U_EMRSTRETCHBLT)) /* Index 78 */ /** EMF manual 2.3.1.3 @@ -2721,6 +2812,7 @@ typedef struct { //!< Record may include optional Source and mask bitmapbuffers } U_EMRMASKBLT, *PU_EMRMASKBLT; //!< EMF manual 2.3.1.3 +#define U_SIZE_EMRMASKBLT (sizeof(U_EMRMASKBLT)) /* Index 79 */ /** EMF manual 2.3.1.4 @@ -2747,6 +2839,7 @@ typedef struct { //!< Record may include optional Source and mask bitmapbuffers } U_EMRPLGBLT, *PU_EMRPLGBLT; //!< EMF manual 2.3.1.4 +#define U_SIZE_EMRPLGBLT (sizeof(U_EMRPLGBLT)) /* Index 80 */ /** EMF manual 2.3.1.5 @@ -2767,6 +2860,7 @@ typedef struct { //!< Record may includes optional bitmapbuffer } U_EMRSETDIBITSTODEVICE, *PU_EMRSETDIBITSTODEVICE; //!< EMF manual 2.3.1.5 +#define U_SIZE_EMRSETDIBITSTODEVICE (sizeof(U_EMRSETDIBITSTODEVICE)) /* Index 81 */ /** EMF manual 2.3.1.7 @@ -2787,6 +2881,7 @@ typedef struct { //!< Record may includes optional bitmapbuffer } U_EMRSTRETCHDIBITS, *PU_EMRSTRETCHDIBITS; //!< EMF manual 2.3.1.7 +#define U_SIZE_EMRSTRETCHDIBITS (sizeof(U_EMRSTRETCHDIBITS)) /* Index 82 */ /** EMF manual 2.3.7.8 @@ -2797,6 +2892,8 @@ typedef struct { U_LOGFONT_PANOSE elfw; //!< Font parameters, either U_LOGFONT or U_LOGFONT_PANOSE, the latter is bigger so use that type here } U_EMREXTCREATEFONTINDIRECTW, *PU_EMREXTCREATEFONTINDIRECTW; //!< EMF manual 2.3.7.8 +#define U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT_PANOSE (sizeof(U_EMR) + 4 + sizeof(U_LOGFONT_PANOSE)) +#define U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT (sizeof(U_EMR) + 4 + sizeof(U_LOGFONT)) /* Index 83,84 */ /** EMF manual 2.3.5.7 @@ -2820,6 +2917,8 @@ typedef struct { U_EMREXTTEXTOUTW, //!< EMF manual 2.3.5.8 *PU_EMREXTTEXTOUTA, //!< EMF manual 2.3.5.7 *PU_EMREXTTEXTOUTW; //!< EMF manual 2.3.5.8 +#define U_SIZE_EMREXTTEXTOUTA (sizeof(U_EMREXTTEXTOUTA)) +#define U_SIZE_EMREXTTEXTOUTW (sizeof(U_EMREXTTEXTOUTW)) /* Index 85,86,87,88,89 */ /** EMF manual 2.3.5.17 @@ -2839,9 +2938,16 @@ typedef struct { *PU_EMRPOLYLINE16, //!< EMF manual 2.3.5.25 *PU_EMRPOLYBEZIERTO16, //!< EMF manual 2.3.5.19 *PU_EMRPOLYLINETO16; //!< EMF manual 2.3.5.27 - +#define U_SIZE_EMRPOLYBEZIER16 (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POINT16)) +#define U_SIZE_EMRPOLYGON16 U_SIZE_EMRPOLYBEZIER16 +#define U_SIZE_EMRPOLYLINE16 U_SIZE_EMRPOLYBEZIER16 +#define U_SIZE_EMRPOLYBEZIERTO16 U_SIZE_EMRPOLYBEZIER16 +#define U_SIZE_EMRPOLYLINETO16 U_SIZE_EMRPOLYBEZIER16 /* Index 90,91 */ -/** EMF manual 2.3.5.31 +/** EMF manual 2.3.5.31 + + followed by + U_POINT16 apts[1]; //!< array of point16 */ typedef struct { U_EMR emr; //!< U_EMR @@ -2849,24 +2955,28 @@ typedef struct { U_NUM_POLYCOUNTS nPolys; //!< Number of elements in aPolyCounts U_NUM_POINT16 cpts; //!< Total number of points (over all poly) U_POLYCOUNTS aPolyCounts[1]; //!< Number of points in each poly (sequential) -// This will appear somewhere but is not really part of the core structure. -// U_POINT16 apts[1]; //!< array of point16 } U_EMRPOLYPOLYLINE16, U_EMRPOLYPOLYGON16, //!< EMF manual 2.3.5.29 *PU_EMRPOLYPOLYLINE16, //!< EMF manual 2.3.5.31 *PU_EMRPOLYPOLYGON16; //!< EMF manual 2.3.5.29 +#define U_SIZE_EMRPOLYPOLYLINE16 (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POLYCOUNTS) + sizeof(U_NUM_POINT16)) +#define U_SIZE_EMRPOLYPOLYGON16 U_SIZE_EMRPOLYPOLYLINE16 /* Index 92 */ -/** EMF manual 2.3.5.21 +/** EMF manual 2.3.5.21 + + followed by + uint8_t abTypes[1]; //!< Array of Point Enumeration + */ typedef struct { U_EMR emr; //!< U_EMR U_RECTL rclBounds; //!< Bounding rectangle in device units U_NUM_POINT16 cpts; //!< Total number of points (over all poly) U_POINT16 apts[1]; //!< array of points - uint8_t abTypes[1]; //!< Array of Point Enumeration } U_EMRPOLYDRAW16, *PU_EMRPOLYDRAW16; //!< EMF manual 2.3.5.21 +#define U_SIZE_EMRPOLYDRAW16 (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_NUM_POINT16)) /* Index 93 */ /** EMF manual 2.3.7.5 @@ -2882,6 +2992,7 @@ typedef struct { //!< Record may include optional DIB bitmapbuffer } U_EMRCREATEMONOBRUSH, *PU_EMRCREATEMONOBRUSH; //!< EMF manual 2.3.7.5 +#define U_SIZE_EMRCREATEMONOBRUSH (sizeof(U_EMRCREATEMONOBRUSH)) /* Index 94 */ /** EMF manual 2.3.7.4 @@ -2897,6 +3008,7 @@ typedef struct { //!< Record may include optional DIB bitmapbuffer } U_EMRCREATEDIBPATTERNBRUSHPT, *PU_EMRCREATEDIBPATTERNBRUSHPT; //!< EMF manual 2.3.7.4 +#define U_SIZE_EMRCREATEDIBPATTERNBRUSHPT (sizeof(U_EMRCREATEDIBPATTERNBRUSHPT)) /* Index 95 */ /** EMF manual 2.3.7.9 @@ -2912,6 +3024,7 @@ typedef struct { //!< Record may include optional DIB bitmap } U_EMREXTCREATEPEN, *PU_EMREXTCREATEPEN; //!< EMF manual 2.3.7.9 +#define U_SIZE_EMREXTCREATEPEN (sizeof(U_EMREXTCREATEPEN)) /* Index 96.97 */ /** EMF manual 2.3.5.32 @@ -2928,6 +3041,8 @@ typedef struct { U_EMRPOLYTEXTOUTW, //!< EMF manual 2.3.5.33 *PU_EMRPOLYTEXTOUTA, //!< EMF manual 2.3.5.32 *PU_EMRPOLYTEXTOUTW; //!< EMF manual 2.3.5.33 +#define U_SIZE_EMRPOLYTEXTOUTA (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(uint32_t) + 2*sizeof(U_FLOAT) + sizeof(U_NUM_EMRTEXT)) +#define U_SIZE_EMRPOLYTEXTOUTW U_SIZE_EMRPOLYTEXTOUTA /* Index 98 (see 17) */ @@ -2940,6 +3055,7 @@ typedef struct { U_LOGCOLORSPACEA lcs; //!< ColorSpace parameters } U_EMRCREATECOLORSPACE, *PU_EMRCREATECOLORSPACE; //!< EMF manual 2.3.7.2 +#define U_SIZE_EMRCREATECOLORSPACE (sizeof(U_EMRCREATECOLORSPACE)) /* Index 100,101 */ /** EMF manual 2.3.8.2 @@ -2951,6 +3067,8 @@ typedef struct { U_EMRSETCOLORSPACE, //!< EMF manual 2.3.8.7 *PU_EMRDELETECOLORSPACE, //!< EMF manual 2.3.8.2 *PU_EMRSETCOLORSPACE; //!< EMF manual 2.3.8.7 +#define U_SIZE_EMRDELETECOLORSPACE (sizeof(U_EMRDELETECOLORSPACE)) +#define U_SIZE_EMRSETCOLORSPACE (sizeof(U_EMRSETCOLORSPACE )) /* Index 102 */ /** EMF manual 2.3.9.2 @@ -2961,6 +3079,7 @@ typedef struct { U_DATA Data[1]; //!< OpenGL data } U_EMRGLSRECORD, *PU_EMRGLSRECORD; //!< EMF manual 2.3.9.2 +#define U_SIZE_EMRGLSRECORD (sizeof(U_EMRGLSRECORD)) /* Index 103 */ /** EMF manual 2.3.9.1 @@ -2972,6 +3091,7 @@ typedef struct { U_DATA Data[1]; //!< OpenGL data } U_EMRGLSBOUNDEDRECORD, *PU_EMRGLSBOUNDEDRECORD; //!< EMF manual 2.3.9.1 +#define U_SIZE_EMRGLSBOUNDEDRECORD (sizeof(U_EMR) + sizeof(U_RECTL) + sizeof(U_CBDATA)) /* Index 104 */ /** EMF manual 2.3.11.5 @@ -2981,6 +3101,7 @@ typedef struct { U_PIXELFORMATDESCRIPTOR pfd; //!< PixelFormatDescriptor } U_EMRPIXELFORMAT, *PU_EMRPIXELFORMAT; //!< EMF manual 2.3.11.5 +#define U_SIZE_EMRPIXELFORMAT (sizeof(U_EMRPIXELFORMAT)) /* Index 105 */ /** EMF manual 2.3.6.1 @@ -2991,6 +3112,7 @@ typedef struct { U_DATA Data[1]; //!< Data to send } U_EMRDRAWESCAPE, *PU_EMRDRAWESCAPE; //!< EMF manual 2.3.6.1 +#define U_SIZE_EMRDRAWESCAPE (sizeof(U_EMR) + sizeof(U_CBDATA)) /* Index 106 */ /** EMF manual 2.3.6.2 @@ -3001,6 +3123,7 @@ typedef struct { U_DATA Data[1]; //!< Data to send } U_EMREXTESCAPE, *PU_EMREXTESCAPE; //!< EMF manual 2.3.6.2 +#define U_SIZE_EMREXTESCAPE (sizeof(U_EMR) + sizeof(U_CBDATA)) /* Index 107 (not implemented ) */ @@ -3020,22 +3143,26 @@ typedef struct { //!< uint32_t TextString; text to output (fuOptions & ETO_SMALL_CHARS ? 8 bit : 16 bit) } U_EMRSMALLTEXTOUT, *PU_EMRSMALLTEXTOUT; //!< EMF manual 2.3.5.37 +#define U_SIZE_EMRSMALLTEXTOUT (sizeof(U_EMRSMALLTEXTOUT)) /* Index 109 (not implemented ) EMF manual 2.3.11.2 */ /* Index 110 */ -/** EMF manual 2.3.6.3 +/** EMF manual 2.3.6.3 + + followed by + uint8_t Data[1]; //!< Data for printer driver */ typedef struct { U_EMR emr; //!< U_EMR U_CBDATA cbDriver; //!< Number of bytes in driver name (note, BYTES, not CHARACTERS) U_CBDATA cbData; //!< Number of bytes in data uint16_t Driver[1]; //!< Driver name in uint16_t characters, null terminated - uint8_t Data[1]; //!< Data for printer driver } U_EMRNAMEDESCAPE, *PU_EMRNAMEDESCAPE; //!< EMF manual 2.3.6.3 +#define U_SIZE_EMRNAMEDESCAPE (sizeof(U_EMRNAMEDESCAPE)) /* Index 111-113 (not implemented ) EMF manual 2.3.8.1 @@ -3064,6 +3191,7 @@ typedef struct { //!< Record may include optional DIB bitmap } U_EMRALPHABLEND, *PU_EMRALPHABLEND; //!< EMF manual 2.3.1.1 +#define U_SIZE_EMRALPHABLEND (sizeof(U_EMRALPHABLEND)) /* Index 115 (see 17) */ @@ -3088,11 +3216,16 @@ typedef struct { //!< Record may includes optional bitmapbuffer } U_EMRTRANSPARENTBLT, *PU_EMRTRANSPARENTBLT; //!< EMF manual 2.3.1.8 +#define U_SIZE_EMRTRANSPARENTBLT (sizeof(U_EMRTRANSPARENTBLT)) /* Index 117 (not a defined U_EMR record type ) */ /* Index 118 */ -/** EMF manual 2.3.5.12 +/** EMF manual 2.3.5.12 + + followed by + U_TRIVERTEX TriVert[1]; Array of TriVertex objects + uint32_t GradObj[1]; Array of gradient objects (each has 2 or 3 indices into TriVert array) */ typedef struct { U_EMR emr; //!< U_EMR @@ -3100,11 +3233,9 @@ typedef struct { U_NUM_TRIVERTEX nTriVert; //!< Number of TriVertex objects U_NUM_GRADOBJ nGradObj; //!< Number of gradient triangle/rectangle objects uint32_t ulMode; //!< Gradientfill Enumeration (determines Triangle/Rectangle) -//parts that are required but which are not included in the core structure -// U_TRIVERTEX TriVert[1]; Array of TriVertex objects -// uint32_t GradObj[1]; Array of gradient objects (each has 2 or 3 indices into TriVert array) } U_EMRGRADIENTFILL, *PU_EMRGRADIENTFILL; //!< EMF manual 2.3.5.12 +#define U_SIZE_EMRGRADIENTFILL (sizeof(U_EMRGRADIENTFILL)) /* Index 119,120 (not implemented ) EMF manual 2.3.11.18 @@ -3123,6 +3254,7 @@ typedef struct { uint8_t Data[1]; //!< Data of size cbName+cbData: Name in UTF16 then color profile data } U_EMRCOLORMATCHTOTARGETW, *PU_EMRCOLORMATCHTOTARGETW; //!< EMF manual 2.3.11.1 +#define U_SIZE_EMRCOLORMATCHTOTARGETW (sizeof(U_EMR) + 2*sizeof(uint32_t) + sizeof(U_CBNAME) + sizeof(U_CBDATA)) /* Index 122 */ /** EMF manual 2.3.7.3 @@ -3136,6 +3268,10 @@ typedef struct { uint8_t Data[1]; //!< (Optional, dwFlags & 1) color profile data } U_EMRCREATECOLORSPACEW, *PU_EMRCREATECOLORSPACEW; //!< EMF manual 2.3.7.3 +#define U_SIZE_EMRCREATECOLORSPACEW (sizeof(U_EMR) + 2*sizeof(uint32_t) + sizeof(U_LOGCOLORSPACEW) + sizeof(U_CBDATA)) + +// records which are not documented, so we have no idea what to do with them +#define U_SIZE_EMRUNDEFINED 2048 // ************************************************************************************************ // Utility function structures @@ -3207,7 +3343,7 @@ int get_real_color_count(const char *Bmih); int get_real_color_icount(int Colors, int BitCount, int Width, int Height); int RGBA_to_DIB(char **px, uint32_t *cbPx, PU_RGBQUAD *ct, int *numCt, const char *rgba_px, int w, int h, int stride, uint32_t colortype, int use_ct, int invert); -int get_DIB_params( void *pEmr, uint32_t offBitsSrc, uint32_t offBmiSrc, +int get_DIB_params( const char *record, uint32_t offBitsSrc, uint32_t offBmiSrc, const char **px, const U_RGBQUAD **ct, uint32_t *numCt, uint32_t *width, uint32_t *height, uint32_t *colortype, uint32_t *invert ); int DIB_to_RGBA(const char *px, const U_RGBQUAD *ct, int numCt, @@ -3237,6 +3373,7 @@ int emf_htable_free(EMFHANDLES **eht); #define htable_free emf_htable_free U_RECTL rectl_set(U_POINTL ul, U_POINTL lr); +void rectli_set(PU_RECTL array, int index, U_POINTL ul, U_POINTL lr); U_SIZEL sizel_set(int32_t x, int32_t y); U_POINTL point32_set(int32_t x, int32_t y); #define point_set point32_set @@ -3463,6 +3600,7 @@ char *U_EMRSMALLTEXTOUT_set(const U_POINTL Dest, const U_NUM_STR cChars, const u // U_EMRSETICMPROFILEA_set 112 Not implemented // U_EMRSETICMPROFILEW_set 113 Not implemented + char *U_EMRALPHABLEND_set(const U_RECTL rclBounds, const U_POINTL Dest, const U_POINTL cDest, const U_POINTL Src, const U_POINTL cSrc, const U_XFORM xformSrc, const U_COLORREF crBkColorSrc, const uint32_t iUsageSrc, diff --git a/src/libuemf/uemf_endian.c b/src/libuemf/uemf_endian.c index 2d19361e1..f746553f1 100644 --- a/src/libuemf/uemf_endian.c +++ b/src/libuemf/uemf_endian.c @@ -19,11 +19,11 @@ /* File: uemf_endian.c -Version: 0.0.16 -Date: 27-MAR-2014 +Version: 0.0.21 +Date: 23-APR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2014 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifdef __cplusplus @@ -266,18 +266,91 @@ void bitmapinfoheader_swap( \param Bmi Pointer to a U_BITMAPINFO object */ void bitmapinfo_swap( - PU_BITMAPINFO Bmi + const char *Bmi ){ - bitmapinfoheader_swap(&(Bmi->bmiHeader)); // bmIHeader + PU_BITMAPINFO pBmi = (PU_BITMAPINFO)Bmi; + bitmapinfoheader_swap(&(pBmi->bmiHeader)); // bmIHeader // ordered bytes: bmiColors } +/** + \brief Swap the ordered bytes in a DIB and verify that the sizes are OK + + \return 1 on success, 0 on failure + \param record EMF record that contains a DIB pixel array + \param iUsage DIBcolors Enumeration + \param offBmi offset from the start of the record to the start of the bitmapinfo structure + \param cbBmi declared space for the bitmapinfo structure in the record + \param offBits offset from the start of the record to the start of the bitmap + \param cbBits declared space for the bitmap in the record (amount used may be less than this) + \param blimit one byte past the end of the record. + \param torev 1 for native to reversed, 0 for reversed to native + + This method can only test DIBs that hold Microsoft's various bitmap types. PNG or JPG is just a bag + of bytes, and there is no possible way to derive from the known width and height how big it should be. +*/ +int DIB_swap( + const char *record, + uint32_t iUsage, + uint32_t offBmi, + uint32_t cbBmi, + uint32_t offBits, + uint32_t cbBits, + const char *blimit, + int torev + ){ + int dibparams = U_BI_UNKNOWN; // type of image not yet determined + const char *px = NULL; // DIB pixels + const U_RGBQUAD *ct = NULL; // DIB color table + int bs; + int usedbytes; + + if(!cbBmi)return(1); // No DIB in a record where it is optional + if(IS_MEM_UNSAFE(record, offBmi + cbBmi, blimit))return(0); + if(cbBits && IS_MEM_UNSAFE(record, offBits + cbBits, blimit))return(0); + if(iUsage == U_DIB_RGB_COLORS){ + uint32_t width, height, colortype, numCt, invert; // these values will be set in get_DIB_params + // next call returns pointers and values, but allocates no memory + if(torev){ + dibparams = get_DIB_params(record, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, + &numCt, &width, &height, &colortype, &invert); + } + bitmapinfo_swap(record + offBmi); // byte ordered fields in bitmapinfo + if(!torev){ + dibparams = get_DIB_params(record, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, + &numCt, &width, &height, &colortype, &invert); + } + + // sanity checking + if(numCt && colortype >= U_BCBM_COLOR16)return(0); //color tables not used above 16 bit pixels + if(!numCt && colortype < U_BCBM_COLOR16)return(0); //color tables mandatory for < 16 bit + + if(dibparams ==U_BI_RGB){ + // this is the only DIB type where we can calculate how big it should be when stored in the EMF file + bs = colortype/8; + if(bs<1){ + usedbytes = (width*colortype + 7)/8; // width of line in fully and partially occupied bytes + } + else { + usedbytes = width*bs; + } + if(IS_MEM_UNSAFE(record+offBits, usedbytes, blimit))return(0); + } + } + else { + bitmapinfo_swap(record + offBmi); + } + return(1); +} + /** \brief Convert a pointer to a U_EXTLOGPEN object. - \param elp PU_EXTLOGPEN object + \param elp PU_EXTLOGPEN object + \param blimit one byte past the end of the record */ -void extlogpen_swap( +int extlogpen_swap( PU_EXTLOGPEN elp, + const char *blimit, int torev ){ int count=0; @@ -290,7 +363,9 @@ void extlogpen_swap( if(!torev){ count = elp->elpNumEntries; } + if(IS_MEM_UNSAFE(&(elp->elpStyleEntry), count*4, blimit))return(0); U_swap4(&(elp->elpStyleEntry),count); // elpStyleEntry[] + return(1); } /** @@ -330,15 +405,27 @@ void rgndataheader_swap( } /** + \return 1 on success, 0 on failure \brief Convert a pointer to a U_RGNDATA object. - \param rgd pointer to a U_RGNDATA object. + \param rd pointer to a U_RGNDATA object. + \param cbRgnData size of the U_RGNDATA object. */ -void rgndata_swap( - PU_RGNDATA rd +int rgndata_swap( + PU_RGNDATA rd, + int cbRgnData, + int torev ){ - int count = rd->rdh.nCount; + int count = 0; + if(torev){ + count = rd->rdh.nCount; + } rgndataheader_swap(&(rd->rdh)); + if(!torev){ + count = rd->rdh.nCount; + } + if(4*count + (int)sizeof(U_RGNDATAHEADER) > cbRgnData)return(0); U_swap4(rd->Buffer,4*count); + return(1); } /** @@ -368,12 +455,14 @@ void pixelformatdescriptor_swap( \brief Convert a Pointer to a U_EMRTEXT record \param pemt Pointer to a U_EMRTEXT record \param record Pointer to the start of the record which contains this U_EMRTEXT + \param blimit one byte past the end of the record. \param torev 1 for native to reversed, 0 for reversed to native */ -void emrtext_swap( - PU_EMRTEXT pemt, - char *record, - int torev +int emrtext_swap( + PU_EMRTEXT pemt, + char *record, + const char *blimit, + int torev ){ int off; uint32_t count=0; @@ -391,6 +480,7 @@ void emrtext_swap( } off = sizeof(U_EMRTEXT); if(!(fOptions & U_ETO_NO_RECT)){ + if(IS_MEM_UNSAFE(pemt, sizeof(U_RECTL), blimit))return(0); rectl_swap((PU_RECTL)((char *)pemt + off),1); // optional rectangle off+=sizeof(U_RECTL); } @@ -398,11 +488,14 @@ void emrtext_swap( offDx = *(uint32_t *)((char *)pemt +off); } // ordered bytes OR UTF16-LE: the string at offString + if(IS_MEM_UNSAFE(pemt, off + 4, blimit))return(0); U_swap4(((char *)pemt+off),1); // offDx if(!torev){ offDx = *(uint32_t *)((char *)pemt +off); } - U_swap4((record+offDx),count); // Dx[], offset with respect to the Record, NOT the object + if(IS_MEM_UNSAFE(record, count*4, blimit))return(0); + U_swap4((record + offDx),count); // Dx[], offset with respect to the Record, NOT the object + return(1); } @@ -424,182 +517,236 @@ by end user code and to further that end prototypes are NOT provided and they ar // all core*_swap call this, U_EMRSETMARGN_swap and some others all it directly // numbered as core5 to be consistent with uemf.c, but must appear before the others as there is no prototype -void core5_swap(char *record, int torev){ +int core5_swap(char *record, int torev){ UNUSED_PARAMETER(torev); - PU_ENHMETARECORD pEMR = (PU_ENHMETARECORD)(record); - U_swap4(pEMR,2); // iType nSize + if(!record)return(0); + PU_EMR pEmr = (PU_EMR)(record); + U_swap4(pEmr,2); // iType nSize + return(1); } // Functions with the same form starting with U_EMRPOLYBEZIER_swap -void core1_swap(char *record, int torev){ +int core1_swap(char *record, int torev){ int count=0; + const char *blimit = NULL; PU_EMRPOLYLINETO pEmr = (PU_EMRPOLYLINETO) (record); if(torev){ count = pEmr->cptl; + blimit = record + pEmr->emr.nSize; } - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1 ); // rclBounds U_swap4(&(pEmr->cptl),1); // cptl if(!torev){ count = pEmr->cptl; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->aptl), count*sizeof(U_POINTL), blimit))return(0); pointl_swap((pEmr->aptl),count); // aptl[] + return(1); } // Functions with the same form starting with U_EMRPOLYPOLYLINE_swap -void core2_swap(char *record, int torev){ +int core2_swap(char *record, int torev){ int count=0; int nPolys=0; + const char *blimit = NULL; PU_EMRPOLYPOLYLINE pEmr = (PU_EMRPOLYPOLYLINE) (record); if(torev){ count = pEmr->cptl; nPolys = pEmr->nPolys; + blimit = record + pEmr->emr.nSize; } - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->nPolys),2); // nPolys cptl if(!torev){ count = pEmr->cptl; nPolys = pEmr->nPolys; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->aPolyCounts), nPolys*4, blimit))return(0); U_swap4(pEmr->aPolyCounts,nPolys); // aPolyCounts[] - pointl_swap((PU_POINT)(record + sizeof(U_EMRPOLYPOLYLINE) - 4 + sizeof(uint32_t)* nPolys), count); // paptl[] + record += sizeof(U_EMRPOLYPOLYLINE) - 4 + sizeof(uint32_t)* nPolys; + if(IS_MEM_UNSAFE(record, count*sizeof(U_POINTL), blimit))return(0); + pointl_swap((PU_POINT)(record), count); // paptl[] + return(1); } // Functions with the same form starting with U_EMRSETMAPMODE_swap -void core3_swap(char *record, int torev){ +int core3_swap(char *record, int torev){ PU_EMRSETMAPMODE pEmr = (PU_EMRSETMAPMODE)(record); - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->iMode),1); // iMode + return(1); } // Functions taking a single U_RECT or U_RECTL, starting with U_EMRELLIPSE_swap, also U_EMRFILLPATH_swap, -void core4_swap(char *record, int torev){ +int core4_swap(char *record, int torev){ PU_EMRELLIPSE pEmr = (PU_EMRELLIPSE)( record); - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBox),1); // rclBox + return(1); } // Functions with the same form starting with U_EMRPOLYBEZIER16_swap -void core6_swap(char *record, int torev){ +int core6_swap(char *record, int torev){ int count=0; + const char *blimit = NULL; PU_EMRPOLYBEZIER16 pEmr = (PU_EMRPOLYBEZIER16) (record); if(torev){ count = pEmr->cpts; + blimit = record + pEmr->emr.nSize; } - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cpts),1); // cpts if(!torev){ count = pEmr->cpts; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->apts), count*sizeof(U_POINT16), blimit))return(0); point16_swap((pEmr->apts),count); // apts[] + return(1); } // Records with the same form starting with U_EMRSETWINDOWEXTEX_swap, that is, all with two uint32_t values after the emr -void core7_swap(char *record, int torev){ +int core7_swap(char *record, int torev){ PU_EMRGENERICPAIR pEmr = (PU_EMRGENERICPAIR) (record); - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->pair),2); + return(1); } // For U_EMREXTTEXTOUTA and U_EMREXTTEXTOUTW, type=0 for the first one -void core8_swap(char *record, int torev){ +int core8_swap(char *record, int torev){ + const char *blimit = NULL; PU_EMREXTTEXTOUTA pEmr = (PU_EMREXTTEXTOUTA) (record); - emrtext_swap(&(pEmr->emrtext),record,torev); - core5_swap(record, torev); + if(torev){ + blimit = record + pEmr->emr.nSize; + } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->iGraphicsMode),1); // iGraphicsMode rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->exScale),2); // exScale eyScale + if(!torev){ + blimit = record + pEmr->emr.nSize; + } + if(!emrtext_swap(&(pEmr->emrtext),record,blimit,torev))return(0); + return(1); } // Functions that take a rect and a pair of points, starting with U_EMRARC_swap -void core9_swap(char *record, int torev){ +int core9_swap(char *record, int torev){ PU_EMRARC pEmr = (PU_EMRARC) (record); - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBox),1); // rclBox U_swap4(&(pEmr->ptlStart),4); // ptlStart ptlEnd + return(1); } // Functions with the same form starting with U_EMRPOLYPOLYLINE16_swap -void core10_swap(char *record, int torev){ +int core10_swap(char *record, int torev){ int count=0; int nPolys=0; + const char *blimit = NULL; PU_EMRPOLYPOLYLINE16 pEmr = (PU_EMRPOLYPOLYLINE16) (record); if(torev){ count = pEmr->cpts; nPolys = pEmr->nPolys; + blimit = record + pEmr->emr.nSize; } - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->nPolys),2); // nPolys cpts if(!torev){ count = pEmr->cpts; nPolys = pEmr->nPolys; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->aPolyCounts), nPolys*4, blimit))return(0); U_swap4(pEmr->aPolyCounts,nPolys); // aPolyCounts[] - point16_swap((PU_POINT16)(record + sizeof(U_EMRPOLYPOLYLINE16) - 4 + sizeof(uint32_t)* nPolys), count); // apts[] + record += sizeof(U_EMRPOLYPOLYLINE16) - 4 + sizeof(uint32_t)* nPolys; + if(IS_MEM_UNSAFE(record, count*sizeof(U_POINT16), blimit))return(0); + point16_swap((PU_POINT16)(record), count); // apts[] + return(1); } // Functions with the same form starting with U_EMRINVERTRGN_swap and U_EMRPAINTRGN_swap, -void core11_swap(char *record, int torev){ - int roff=0; - int nextroff=0; - int limit=0; - PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN) (record); - roff = 0; +int core11_swap(char *record, int torev){ + int cbRgnData=0; + const char *blimit = NULL; + PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN)(record); if(torev){ - limit = pEmr->emr.nSize; - nextroff = 0; - } - core5_swap(record, torev); - if(!torev){ - limit = pEmr->emr.nSize; + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cbRgnData),1); // cbRgnData if(!torev){ - limit = pEmr->emr.nSize; - } - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - char *prd = (char *) &(pEmr->RgnData); - while(roff + 28 < limit){ // up to the end of the record - if(torev){ - nextroff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff = nextroff; - } - else { - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_swap(pEmr->RgnData, cbRgnData, torev)); } // common code for U_EMRCREATEMONOBRUSH_swap and U_EMRCREATEDIBPATTERNBRUSHPT_swap, -void core12_swap(char *record, int torev){ +int core12_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMI offBmi = 0; + U_CBBMI cbBmi = 0; + U_OFFBITS offBits = 0; + U_CBBITS cbBits = 0; + uint32_t iUsage = 0; PU_EMRCREATEMONOBRUSH pEmr = (PU_EMRCREATEMONOBRUSH) (record); - if(torev && pEmr->cbBmi){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmi)); // Bmi - } - core5_swap(record, torev); + if(torev){ + offBmi = pEmr->offBmi; + cbBmi = pEmr->cbBmi; + offBits = pEmr->offBits; + cbBits = pEmr->cbBits; + iUsage = pEmr->iUsage; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsage, offBmi, cbBmi, offBits, cbBits, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->ihBrush),6); // ihBrush iUsage offBmi cbBmi offBits cbBits - // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). - if(!torev && pEmr->cbBmi){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmi)); // Bmi + if(!torev){ + offBmi = pEmr->offBmi; + cbBmi = pEmr->cbBmi; + offBits = pEmr->offBits; + cbBits = pEmr->cbBits; + iUsage = pEmr->iUsage; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsage, offBmi, cbBmi, offBits, cbBits, blimit, torev))return(0); } + // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). + return(1); } // common code for U_EMRALPHABLEND_swap and U_EMRTRANSPARENTBLT_swap, -void core13_swap(char *record, int torev){ +int core13_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; PU_EMRALPHABLEND pEmr = (PU_EMRALPHABLEND) (record); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } - core5_swap(record, torev); + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),2); // Dest cDest pointl_swap(&(pEmr->Dest),2); // Dest cDest @@ -608,15 +755,25 @@ void core13_swap(char *record, int torev){ xform_swap( &(pEmr->xformSrc)); // xformSrc // ordered bytes: crBkColorSrc U_swap4(&(pEmr->iUsageSrc),5); // iUsageSrc offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc - // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); } + // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). + return(1); } /* ********************************************************************************************** -These are the core EMR functions, each creates a particular type of record. -All return these records via a char* pointer, which is NULL if the call failed. +These are the core EMR_swap functions, each converts a particular type of record. +All operate in place on the chunk of memory holding that record. +Some of these have offsets or counts which, if corrupt or evil would result in access outside + the record. These cases return a status value of 0 if that happens, 1 on success. Other + records which do not have these issues do not return a status value. They are listed in order by the corresponding U_EMR_* index number. *********************************************************************************************** */ @@ -626,37 +783,31 @@ They are listed in order by the corresponding U_EMR_* index number. \param record pointer to a buffer holding the EMR record \param torev 1 for native to reversed, 0 for reversed to native */ -void U_EMRNOTIMPLEMENTED_swap(char *record, int torev){ - core5_swap(record, torev); - printf("WARNING: could not convert data in record type that has not been implemented!\n"); +int U_EMRNOTIMPLEMENTED_swap(char *record, int torev){ + fprintf(stderr,"EMF WARNING: could not swap data bytes on record because that type has not been implemented!\n"); + return(core5_swap(record, torev)); } // U_EMRHEADER 1 -void U_EMRHEADER_swap(char *record, int torev){ +int U_EMRHEADER_swap(char *record, int torev){ int nDesc,offDesc,nSize,cbPix,offPix; + nDesc = offDesc = nSize = cbPix = offPix = 0; PU_EMRHEADER pEmr = (PU_EMRHEADER)(record); if(torev){ nSize = pEmr->emr.nSize; - core5_swap(record, torev); - } - else { - core5_swap(record, torev); - nSize = pEmr->emr.nSize; + nDesc = pEmr->nDescription; + offDesc = pEmr->offDescription; } - + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),2); // rclBounds rclFrame U_swap4(&(pEmr->dSignature), 4); // dSignature nVersion nBytes nRecords U_swap2(&(pEmr->nHandles), 2); // nHandlessReserved - if(torev){ - nDesc = pEmr->nDescription; - offDesc = pEmr->offDescription; - U_swap4(&(pEmr->nDescription), 3); // nDescription offDescription nPalEntries - } - else { - U_swap4(&(pEmr->nDescription), 3); // nDescription offDescription nPalEntries - nDesc = pEmr->nDescription; - offDesc = pEmr->offDescription; - } + U_swap4(&(pEmr->nDescription), 3); // nDescription offDescription nPalEntries + if(!torev){ + nSize = pEmr->emr.nSize; + nDesc = pEmr->nDescription; + offDesc = pEmr->offDescription; + } // UTF16-LE Description sizel_swap(&(pEmr->szlDevice), 2); // szlDevice szlMillimeters if((nDesc && (offDesc >= 100)) || @@ -665,16 +816,14 @@ void U_EMRHEADER_swap(char *record, int torev){ if(torev){ cbPix = pEmr->cbPixelFormat; offPix = pEmr->offPixelFormat; - if(cbPix)pixelformatdescriptor_swap( (PU_PIXELFORMATDESCRIPTOR) (record + pEmr->offPixelFormat)); - U_swap4(&(pEmr->cbPixelFormat), 2); // cbPixelFormat offPixelFormat } - else { - U_swap4(&(pEmr->cbPixelFormat), 2); // cbPixelFormat offPixelFormat + U_swap4(&(pEmr->cbPixelFormat), 2); // cbPixelFormat offPixelFormat + U_swap4(&(pEmr->bOpenGL), 1); // bOpenGL + if(!torev){ cbPix = pEmr->cbPixelFormat; offPix = pEmr->offPixelFormat; - if(cbPix)pixelformatdescriptor_swap( (PU_PIXELFORMATDESCRIPTOR) (record + pEmr->offPixelFormat)); } - U_swap4(&(pEmr->bOpenGL), 1); // bOpenGL + if(cbPix)pixelformatdescriptor_swap( (PU_PIXELFORMATDESCRIPTOR) (record + pEmr->offPixelFormat)); if((nDesc && (offDesc >= 108)) || (cbPix && (offPix >=108)) || (!offDesc && !cbPix && nSize >= 108) @@ -682,543 +831,557 @@ void U_EMRHEADER_swap(char *record, int torev){ sizel_swap(&(pEmr->szlMicrometers), 1); // szlMicrometers } } + return(1); } // U_EMRPOLYBEZIER 2 -void U_EMRPOLYBEZIER_swap(char *record, int torev){ - core1_swap(record, torev); +int U_EMRPOLYBEZIER_swap(char *record, int torev){ + return(core1_swap(record, torev)); } // U_EMRPOLYGON 3 -void U_EMRPOLYGON_swap(char *record, int torev){ - core1_swap(record, torev); +int U_EMRPOLYGON_swap(char *record, int torev){ + return(core1_swap(record, torev)); } // U_EMRPOLYLINE 4 -void U_EMRPOLYLINE_swap(char *record, int torev){ - core1_swap(record, torev); +int U_EMRPOLYLINE_swap(char *record, int torev){ + return(core1_swap(record, torev)); } // U_EMRPOLYBEZIERTO 5 -void U_EMRPOLYBEZIERTO_swap(char *record, int torev){ - core1_swap(record, torev); +int U_EMRPOLYBEZIERTO_swap(char *record, int torev){ + return(core1_swap(record, torev)); } // U_EMRPOLYLINETO 6 -void U_EMRPOLYLINETO_swap(char *record, int torev){ - core1_swap(record, torev); +int U_EMRPOLYLINETO_swap(char *record, int torev){ + return(core1_swap(record, torev)); } // U_EMRPOLYPOLYLINE 7 -void U_EMRPOLYPOLYLINE_swap(char *record, int torev){ - core2_swap(record, torev); +int U_EMRPOLYPOLYLINE_swap(char *record, int torev){ + return(core2_swap(record, torev)); } // U_EMRPOLYPOLYGON 8 -void U_EMRPOLYPOLYGON_swap(char *record, int torev){ - core2_swap(record, torev); +int U_EMRPOLYPOLYGON_swap(char *record, int torev){ + return(core2_swap(record, torev)); } // U_EMRSETWINDOWEXTEX 9 -void U_EMRSETWINDOWEXTEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRSETWINDOWEXTEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRSETWINDOWORGEX 10 -void U_EMRSETWINDOWORGEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRSETWINDOWORGEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRSETVIEWPORTEXTEX 11 -void U_EMRSETVIEWPORTEXTEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRSETVIEWPORTEXTEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRSETVIEWPORTORGEX 12 -void U_EMRSETVIEWPORTORGEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRSETVIEWPORTORGEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRSETBRUSHORGEX 13 -void U_EMRSETBRUSHORGEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRSETBRUSHORGEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMREOF 14 -void U_EMREOF_swap(char *record, int torev){ +int U_EMREOF_swap(char *record, int torev){ int off=0; int cbPalEntries=0; - core5_swap(record, torev); + const char *blimit = NULL; PU_EMREOF pEmr = (PU_EMREOF)(record); if(torev){ + blimit = record + pEmr->emr.nSize; cbPalEntries = pEmr->cbPalEntries; - if(cbPalEntries){ - logpalette_swap( (PU_LOGPALETTE)(record + pEmr->offPalEntries)); - } } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->cbPalEntries),2); // cbPalEntries offPalEntries if(!torev){ + blimit = record + pEmr->emr.nSize; cbPalEntries = pEmr->cbPalEntries; - if(cbPalEntries){ - logpalette_swap( (PU_LOGPALETTE)(record + pEmr->offPalEntries)); - } + } + if(cbPalEntries){ + if(IS_MEM_UNSAFE(record, pEmr->offPalEntries + 2*2, blimit))return(0); // 2 16 bit values in U_LOGPALLETE + logpalette_swap( (PU_LOGPALETTE)(record + pEmr->offPalEntries)); + // U_LOGPLTNTRY values in pallette are ordered data } off = sizeof(U_EMREOF) + 4 * cbPalEntries; + if(IS_MEM_UNSAFE(record, off + 4, blimit))return(0); U_swap4(record + off,1); // nSizeLast + return(1); } // U_EMRSETPIXELV 15 -void U_EMRSETPIXELV_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETPIXELV_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSETPIXELV pEmr = (PU_EMRSETPIXELV)(record); pointl_swap(&(pEmr->ptlPixel),1); // ptlPixel // ordered bytes: crColor + return(1); } // U_EMRSETMAPPERFLAGS 16 -void U_EMRSETMAPPERFLAGS_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETMAPPERFLAGS_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSETMAPPERFLAGS pEmr = (PU_EMRSETMAPPERFLAGS)(record); U_swap4(&(pEmr->dwFlags),1); // dwFlags + return(1); } // U_EMRSETMAPMODE 17 -void U_EMRSETMAPMODE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETMAPMODE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETBKMODE 18 -void U_EMRSETBKMODE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETBKMODE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETPOLYFILLMODE 19 -void U_EMRSETPOLYFILLMODE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETPOLYFILLMODE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETROP2 20 -void U_EMRSETROP2_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETROP2_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETSTRETCHBLTMODE 21 -void U_EMRSETSTRETCHBLTMODE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETSTRETCHBLTMODE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETTEXTALIGN 22 -void U_EMRSETTEXTALIGN_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETTEXTALIGN_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETCOLORADJUSTMENT 23 -void U_EMRSETCOLORADJUSTMENT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETCOLORADJUSTMENT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSETCOLORADJUSTMENT pEmr = (PU_EMRSETCOLORADJUSTMENT)(record); coloradjustment_swap(&(pEmr->ColorAdjustment)); + return(1); } // U_EMRSETTEXTCOLOR 24 -void U_EMRSETTEXTCOLOR_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETTEXTCOLOR_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); // ordered bytes: crColor + return(1); } // U_EMRSETBKCOLOR 25 -void U_EMRSETBKCOLOR_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETBKCOLOR_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); // ordered bytes: crColor + return(1); } // U_EMROFFSETCLIPRGN 26 -void U_EMROFFSETCLIPRGN_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMROFFSETCLIPRGN_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRMOVETOEX 27 -void U_EMRMOVETOEX_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRMOVETOEX_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRSETMETARGN 28 -void U_EMRSETMETARGN_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETMETARGN_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMREXCLUDECLIPRECT 29 -void U_EMREXCLUDECLIPRECT_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMREXCLUDECLIPRECT_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRINTERSECTCLIPRECT 30 -void U_EMRINTERSECTCLIPRECT_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRINTERSECTCLIPRECT_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRSCALEVIEWPORTEXTEX 31 -void U_EMRSCALEVIEWPORTEXTEX_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRSCALEVIEWPORTEXTEX_swap(char *record, int torev){ + return(core4_swap(record, torev)); } - // U_EMRSCALEWINDOWEXTEX 32 -void U_EMRSCALEWINDOWEXTEX_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRSCALEWINDOWEXTEX_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRSAVEDC 33 -void U_EMRSAVEDC_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSAVEDC_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRRESTOREDC 34 -void U_EMRRESTOREDC_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRRESTOREDC_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETWORLDTRANSFORM 35 -void U_EMRSETWORLDTRANSFORM_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETWORLDTRANSFORM_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSETWORLDTRANSFORM pEmr = (PU_EMRSETWORLDTRANSFORM)(record); xform_swap(&(pEmr->xform)); + return(1); } // U_EMRMODIFYWORLDTRANSFORM 36 -void U_EMRMODIFYWORLDTRANSFORM_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRMODIFYWORLDTRANSFORM_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRMODIFYWORLDTRANSFORM pEmr = (PU_EMRMODIFYWORLDTRANSFORM)(record); xform_swap(&(pEmr->xform)); // xform U_swap4(&(pEmr->iMode),1); // iMode + return(1); } // U_EMRSELECTOBJECT 37 -void U_EMRSELECTOBJECT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSELECTOBJECT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSELECTOBJECT pEmr = (PU_EMRSELECTOBJECT)(record); U_swap4(&(pEmr->ihObject),1); // ihObject + return(1); } // U_EMRCREATEPEN 38 -void U_EMRCREATEPEN_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCREATEPEN_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRCREATEPEN pEmr = (PU_EMRCREATEPEN)(record); U_swap4(&(pEmr->ihPen),1); // ihPen logpen_swap(&(pEmr->lopn)); // lopn + return(1); } // U_EMRCREATEBRUSHINDIRECT 39 -void U_EMRCREATEBRUSHINDIRECT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCREATEBRUSHINDIRECT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRCREATEBRUSHINDIRECT pEmr = (PU_EMRCREATEBRUSHINDIRECT)(record); U_swap4(&(pEmr->ihBrush),1); // ihBrush logbrush_swap(&(pEmr->lb)); // lb + return(1); } // U_EMRDELETEOBJECT 40 -void U_EMRDELETEOBJECT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRDELETEOBJECT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRDELETEOBJECT pEmr = (PU_EMRDELETEOBJECT)(record); U_swap4(&(pEmr->ihObject),1); // ihObject + return(1); } // U_EMRANGLEARC 41 -void U_EMRANGLEARC_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRANGLEARC_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRANGLEARC pEmr = (PU_EMRANGLEARC)(record); pointl_swap(&(pEmr->ptlCenter),1); // ptlCenter U_swap4(&(pEmr->nRadius),3); // nRadius eStartAngle eSweepAngle + return(1); } // U_EMRELLIPSE 42 -void U_EMRELLIPSE_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRELLIPSE_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRRECTANGLE 43 -void U_EMRRECTANGLE_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRRECTANGLE_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRROUNDRECT 44 -void U_EMRROUNDRECT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRROUNDRECT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRROUNDRECT pEmr = (PU_EMRROUNDRECT)(record); rectl_swap(&(pEmr->rclBox),1); // rclBox sizel_swap(&(pEmr->szlCorner), 1); // szlCorner + return(1); } // U_EMRARC 45 -void U_EMRARC_swap(char *record, int torev){ - core9_swap(record, torev); +int U_EMRARC_swap(char *record, int torev){ + return(core9_swap(record, torev)); } // U_EMRCHORD 46 -void U_EMRCHORD_swap(char *record, int torev){ - core9_swap(record, torev); +int U_EMRCHORD_swap(char *record, int torev){ + return(core9_swap(record, torev)); } // U_EMRPIE 47 -void U_EMRPIE_swap(char *record, int torev){ - core9_swap(record, torev); +int U_EMRPIE_swap(char *record, int torev){ + return(core9_swap(record, torev)); } // U_EMRSELECTPALETTE 48 -void U_EMRSELECTPALETTE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSELECTPALETTE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRCREATEPALETTE 49 -void U_EMRCREATEPALETTE_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCREATEPALETTE_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRCREATEPALETTE pEmr = (PU_EMRCREATEPALETTE)(record); U_swap4(&(pEmr->ihPal),1); // ihPal logpalette_swap( (PU_LOGPALETTE)&(pEmr->lgpl) ); // lgpl + return(1); } // U_EMRSETPALETTEENTRIES 50 -void U_EMRSETPALETTEENTRIES_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRSETPALETTEENTRIES_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRSETPALETTEENTRIES pEmr = (PU_EMRSETPALETTEENTRIES)(record); U_swap4(&(pEmr->ihPal),3); // ihPal iStart cEntries // ordered bytes: aPalEntries[] + return(1); } // U_EMRRESIZEPALETTE 51 -void U_EMRRESIZEPALETTE_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRRESIZEPALETTE_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRREALIZEPALETTE 52 -void U_EMRREALIZEPALETTE_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRREALIZEPALETTE_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMREXTFLOODFILL 53 -void U_EMREXTFLOODFILL_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMREXTFLOODFILL_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMREXTFLOODFILL pEmr = (PU_EMREXTFLOODFILL)(record); pointl_swap(&(pEmr->ptlStart),1); // ptlStart // ordered bytes: crColor U_swap4(&(pEmr->iMode),1); // iMode + return(1); } // U_EMRLINETO 54 -void U_EMRLINETO_swap(char *record, int torev){ - core7_swap(record, torev); +int U_EMRLINETO_swap(char *record, int torev){ + return(core7_swap(record, torev)); } // U_EMRARCTO 55 -void U_EMRARCTO_swap(char *record, int torev){ - core9_swap(record, torev); +int U_EMRARCTO_swap(char *record, int torev){ + return(core9_swap(record, torev)); } // U_EMRPOLYDRAW 56 -void U_EMRPOLYDRAW_swap(char *record, int torev){ +int U_EMRPOLYDRAW_swap(char *record, int torev){ int count=0; - core5_swap(record, torev); + const char *blimit = NULL; PU_EMRPOLYDRAW pEmr = (PU_EMRPOLYDRAW)(record); if(torev){ count = pEmr->cptl; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cptl),1); // cptl if(!torev){ count = pEmr->cptl; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->aptl), count*sizeof(U_POINTL), blimit))return(0); pointl_swap(pEmr->aptl,count); // aptl[] - U_swap4(pEmr->abTypes,count); // abTypes[] + // single byte data abTypes + return(1); } // U_EMRSETARCDIRECTION 57 -void U_EMRSETARCDIRECTION_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETARCDIRECTION_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRSETMITERLIMIT 58 -void U_EMRSETMITERLIMIT_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETMITERLIMIT_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRBEGINPATH 59 -void U_EMRBEGINPATH_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRBEGINPATH_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRENDPATH 60 -void U_EMRENDPATH_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRENDPATH_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRCLOSEFIGURE 61 -void U_EMRCLOSEFIGURE_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCLOSEFIGURE_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRFILLPATH 62 -void U_EMRFILLPATH_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRFILLPATH_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRSTROKEANDFILLPATH 63 -void U_EMRSTROKEANDFILLPATH_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRSTROKEANDFILLPATH_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRSTROKEPATH 64 -void U_EMRSTROKEPATH_swap(char *record, int torev){ - core4_swap(record, torev); +int U_EMRSTROKEPATH_swap(char *record, int torev){ + return(core4_swap(record, torev)); } // U_EMRFLATTENPATH 65 -void U_EMRFLATTENPATH_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRFLATTENPATH_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRWIDENPATH 66 -void U_EMRWIDENPATH_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRWIDENPATH_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRSELECTCLIPPATH 67 -void U_EMRSELECTCLIPPATH_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSELECTCLIPPATH_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRABORTPATH 68 -void U_EMRABORTPATH_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRABORTPATH_swap(char *record, int torev){ + return(core5_swap(record, torev)); } // U_EMRUNDEF69 69 #define U_EMRUNDEF69_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRCOMMENT 70 Comment (any binary data, interpretation is program specific) -void U_EMRCOMMENT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCOMMENT_swap(char *record, int torev){ + int cbData = 0; + const char *blimit = NULL; PU_EMRCOMMENT pEmr = (PU_EMRCOMMENT)(record); + if(torev){ + cbData = pEmr->cbData; + blimit = record + pEmr->emr.nSize; + } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->cbData),1); // cbData + if(!torev){ + cbData = pEmr->cbData; + blimit = record + pEmr->emr.nSize; + } + if(IS_MEM_UNSAFE(record, cbData + sizeof(U_SIZE_EMRCOMMENT), blimit))return(0); // program specific data, presumably byte ordered, otherwise, not portable + return(1); } // U_EMRFILLRGN 71 -void U_EMRFILLRGN_swap(char *record, int torev){ - int roff=0; - int nextroff=0; - int limit=0; - roff=0; +int U_EMRFILLRGN_swap(char *record, int torev){ + int cbRgnData=0; + const char *blimit = NULL; PU_EMRFILLRGN pEmr = (PU_EMRFILLRGN)(record); if(torev){ - limit = pEmr->emr.nSize; - nextroff = 0; - } - core5_swap(record, torev); - if(!torev){ - limit = pEmr->emr.nSize; + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cbRgnData),2); // cbRgnData ihBrush - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - char *prd = (char *) &(pEmr->RgnData); - while(roff + 28 < limit){ // up to the end of the record - if(torev){ - nextroff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff = nextroff; - } - else { - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + if(!torev){ + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_swap(pEmr->RgnData, cbRgnData, torev)); } // U_EMRFRAMERGN 72 -void U_EMRFRAMERGN_swap(char *record, int torev){ - int roff=0; - int nextroff=0; - int limit=0; +int U_EMRFRAMERGN_swap(char *record, int torev){ + int cbRgnData=0; + const char *blimit = NULL; PU_EMRFRAMERGN pEmr = (PU_EMRFRAMERGN)(record); - roff = 0; if(torev){ - limit = pEmr->emr.nSize; - nextroff = 0; - } - core5_swap(record, torev); - if(!torev){ - limit = pEmr->emr.nSize; + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cbRgnData),2); // cbRgnData ihBrush - sizel_swap(&(pEmr->szlStroke), 2); // szlStroke - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - char *prd = (char *) &(pEmr->RgnData); - while(roff + 28 < limit){ // up to the end of the record - if(torev){ - nextroff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff = nextroff; - } - else { - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + sizel_swap(&(pEmr->szlStroke), 1); // szlStroke + if(!torev){ + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_swap(pEmr->RgnData, cbRgnData, torev)); } // U_EMRINVERTRGN 73 -void U_EMRINVERTRGN_swap(char *record, int torev){ - core11_swap(record, torev); +int U_EMRINVERTRGN_swap(char *record, int torev){ + return(core11_swap(record, torev)); } // U_EMRPAINTRGN 74 -void U_EMRPAINTRGN_swap(char *record, int torev){ - core11_swap(record, torev); +int U_EMRPAINTRGN_swap(char *record, int torev){ + return(core11_swap(record, torev)); } // U_EMREXTSELECTCLIPRGN 75 -void U_EMREXTSELECTCLIPRGN_swap(char *record, int torev){ - int roff=0; - int nextroff=0; - int limit=0; - PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN) (record); +int U_EMREXTSELECTCLIPRGN_swap(char *record, int torev){ + int cbRgnData=0; + const char *blimit = NULL; + PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN)(record); if(torev){ - limit = pEmr->emr.nSize; - } - core5_swap(record, torev); - if(!torev){ - limit = pEmr->emr.nSize; + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->cbRgnData),2); // cbRgnData iMode - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - char *prd = (char *) &(pEmr->RgnData); - nextroff = roff = 0; - while(roff + 16 < limit){ // up to the end of the record - if(torev){ - nextroff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff = nextroff; - } - else { - rgndata_swap((PU_RGNDATA) (prd + roff)); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + if(!torev){ + cbRgnData= pEmr->cbRgnData; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_swap(pEmr->RgnData, cbRgnData, torev)); } // U_EMRBITBLT 76 -void U_EMRBITBLT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRBITBLT_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (record); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),2); // Dest cDest U_swap4(&(pEmr->dwRop),1); // dwRop @@ -1226,42 +1389,89 @@ void U_EMRBITBLT_swap(char *record, int torev){ xform_swap(&(pEmr->xformSrc)); // xformSrc // ordered bytes: crBkColorSrc U_swap4(&(pEmr->iUsageSrc),5); // iUsageSrc offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc - // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); } + // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). + return(1); } // U_EMRSTRETCHBLT 77 -void U_EMRSTRETCHBLT_swap(char *record, int torev){ +int U_EMRSTRETCHBLT_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; PU_EMRSTRETCHBLT pEmr = (PU_EMRSTRETCHBLT) (record); - core5_swap(record, torev); + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),2); // Dest cDest U_swap4(&(pEmr->dwRop),1); // dwRop pointl_swap(&(pEmr->Src),1); // Src xform_swap(&(pEmr->xformSrc)); // xformSrc // ordered bytes: crBkColorSrc - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } U_swap4(&(pEmr->iUsageSrc),5); // iUsageSrc offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc pointl_swap(&(pEmr->cSrc),1); // cSrc - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); } + // ordered bytes: bitmap (including 16 bit 5bit/channel color mode, which is done bytewise). + return(1); } // U_EMRMASKBLT 78 -void U_EMRMASKBLT_swap(char *record, int torev){ +int U_EMRMASKBLT_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; + U_OFFBMIMSK offBmiMask = 0; + U_CBBMIMSK cbBmiMask = 0; + U_OFFBITSMSK offBitsMask = 0; + U_CBBITSMSK cbBitsMask = 0; + uint32_t iUsageMask = 0; PU_EMRMASKBLT pEmr = (PU_EMRMASKBLT) (record); - core5_swap(record, torev); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } - if(torev && pEmr->cbBmiMask){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiMask)); - } + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + offBmiMask = pEmr->offBmiMask; + cbBmiMask = pEmr->cbBmiMask; + offBitsMask = pEmr->offBitsMask; + cbBitsMask = pEmr->cbBitsMask; + iUsageMask = pEmr->iUsageMask; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + if(!DIB_swap(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),2); // Dest cDest U_swap4(&(pEmr->dwRop),1); // dwRop @@ -1271,24 +1481,54 @@ void U_EMRMASKBLT_swap(char *record, int torev){ U_swap4(&(pEmr->iUsageSrc),5); // iUsageSrc offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc pointl_swap(&(pEmr->Mask),1); // Mask U_swap4(&(pEmr->iUsageMask),5); // iUsageMask offBmiMask cbBmiMask offBitsMask cbBitsMask - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } - if(!torev && pEmr->cbBmiMask){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiMask)); - } + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + offBmiMask = pEmr->offBmiMask; + cbBmiMask = pEmr->cbBmiMask; + offBitsMask = pEmr->offBitsMask; + cbBitsMask = pEmr->cbBitsMask; + iUsageMask = pEmr->iUsageMask; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + if(!DIB_swap(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit, torev))return(0); + } + return(1); } // U_EMRPLGBLT 79 -void U_EMRPLGBLT_swap(char *record, int torev){ +int U_EMRPLGBLT_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; + U_OFFBMIMSK offBmiMask = 0; + U_CBBMIMSK cbBmiMask = 0; + U_OFFBITSMSK offBitsMask = 0; + U_CBBITSMSK cbBitsMask = 0; + uint32_t iUsageMask = 0; PU_EMRPLGBLT pEmr = (PU_EMRPLGBLT) (record); - core5_swap(record, torev); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } - if(torev && pEmr->cbBmiMask){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiMask)); - } + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + offBmiMask = pEmr->offBmiMask; + cbBmiMask = pEmr->cbBmiMask; + offBitsMask = pEmr->offBitsMask; + cbBitsMask = pEmr->cbBitsMask; + iUsageMask = pEmr->iUsageMask; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + if(!DIB_swap(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(pEmr->aptlDst,3); // aptlDst[] pointl_swap(&(pEmr->Src),2); // Src cSrc @@ -1297,78 +1537,124 @@ void U_EMRPLGBLT_swap(char *record, int torev){ U_swap4(&(pEmr->iUsageSrc),5); // iUsageSrc offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc pointl_swap(&(pEmr->Mask),1); // Mask U_swap4(&(pEmr->iUsageMask),5); // iUsageMask offBmiMask cbBmiMask offBitsMask cbBitsMask - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } - if(!torev && pEmr->cbBmiMask){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiMask)); - } + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + offBmiMask = pEmr->offBmiMask; + cbBmiMask = pEmr->cbBmiMask; + offBitsMask = pEmr->offBitsMask; + cbBitsMask = pEmr->cbBitsMask; + iUsageMask = pEmr->iUsageMask; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + if(!DIB_swap(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit, torev))return(0); + } + return(1); } // U_EMRSETDIBITSTODEVICE 80 -void U_EMRSETDIBITSTODEVICE_swap(char *record, int torev){ +int U_EMRSETDIBITSTODEVICE_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; PU_EMRSETDIBITSTODEVICE pEmr = (PU_EMRSETDIBITSTODEVICE) (record); - core5_swap(record, torev); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),1); // Dest pointl_swap(&(pEmr->Src),2); // Src cSrc U_swap4(&(pEmr->offBmiSrc),7); // offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc iUsageSrc iStartScan cScans - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); } + return(1); } // U_EMRSTRETCHDIBITS 81 -void U_EMRSTRETCHDIBITS_swap(char *record, int torev){ +int U_EMRSTRETCHDIBITS_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMISRC offBmiSrc = 0; + U_CBBMISRC cbBmiSrc = 0; + U_OFFBITSSRC offBitsSrc = 0; + U_CBBITSSRC cbBitsSrc = 0; + uint32_t iUsageSrc = 0; PU_EMRSTRETCHDIBITS pEmr = (PU_EMRSTRETCHDIBITS) (record); - core5_swap(record, torev); - if(torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); - } + if(torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds pointl_swap(&(pEmr->Dest),1); // Dest pointl_swap(&(pEmr->Src),2); // Src cSrc U_swap4(&(pEmr->offBmiSrc),6); // offBmiSrc cbBmiSrc offBitsSrc cbBitsSrc iUsageSrc dwRop pointl_swap(&(pEmr->cDest),1); // cDest - if(!torev && pEmr->cbBmiSrc){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmiSrc)); + if(!torev){ + offBmiSrc = pEmr->offBmiSrc; + cbBmiSrc = pEmr->cbBmiSrc; + offBitsSrc = pEmr->offBitsSrc; + cbBitsSrc = pEmr->cbBitsSrc; + iUsageSrc = pEmr->iUsageSrc; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit, torev))return(0); } + return(1); } -// U_EMREXTCREATEFONTINDIRECTW_swap 82 -void U_EMREXTCREATEFONTINDIRECTW_swap(char *record, int torev){ +// U_EMREXTCREATEFONTINDIRECTW 82 +int U_EMREXTCREATEFONTINDIRECTW_swap(char *record, int torev){ + int nSize = 0; PU_EMREXTCREATEFONTINDIRECTW pEmr = (PU_EMREXTCREATEFONTINDIRECTW) (record); if(torev){ - if(pEmr->emr.nSize == sizeof(U_EMREXTCREATEFONTINDIRECTW)){ - logfont_panose_swap(&(pEmr->elfw)); - } - else { - logfont_swap( (PU_LOGFONT) &(pEmr->elfw)); - } + nSize = pEmr->emr.nSize; } - core5_swap(record, torev); + if(!core5_swap(record, torev))return(0); + U_swap4(&(pEmr->ihFont),1); // ihFont if(!torev){ - if(pEmr->emr.nSize == sizeof(U_EMREXTCREATEFONTINDIRECTW)){ - logfont_panose_swap(&(pEmr->elfw)); - } - else { - logfont_swap( (PU_LOGFONT) &(pEmr->elfw)); - } + nSize = pEmr->emr.nSize; } - U_swap4(&(pEmr->ihFont),1); // ihFont + if(nSize == U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT_PANOSE){ + logfont_panose_swap(&(pEmr->elfw)); + } + else { // logfont or logfontExDv (which starts with logfont, which can be swapped, and the rest is already in byte order + logfont_swap( (PU_LOGFONT) &(pEmr->elfw)); + } + return(1); } // U_EMREXTTEXTOUTA 83 -void U_EMREXTTEXTOUTA_swap(char *record, int torev){ - core8_swap(record, torev); +int U_EMREXTTEXTOUTA_swap(char *record, int torev){ + return(core8_swap(record, torev)); } // U_EMREXTTEXTOUTW 84 -void U_EMREXTTEXTOUTW_swap(char *record, int torev){ - core8_swap(record, torev); +int U_EMREXTTEXTOUTW_swap(char *record, int torev){ + return(core8_swap(record, torev)); } // U_EMRPOLYBEZIER16 85 @@ -1376,23 +1662,23 @@ void U_EMREXTTEXTOUTW_swap(char *record, int torev){ \brief Convert a pointer to a U_EMR_POLYBEZIER16 record. \param record pointer to a buffer holding the EMR record */ -void U_EMRPOLYBEZIER16_swap(char *record, int torev){ - core6_swap(record, torev); +int U_EMRPOLYBEZIER16_swap(char *record, int torev){ + return(core6_swap(record, torev)); } // U_EMRPOLYGON16 86 -void U_EMRPOLYGON16_swap(char *record, int torev){ - core6_swap(record, torev); +int U_EMRPOLYGON16_swap(char *record, int torev){ + return(core6_swap(record, torev)); } // U_EMRPOLYLINE16 87 -void U_EMRPOLYLINE16_swap(char *record, int torev){ - core6_swap(record, torev); +int U_EMRPOLYLINE16_swap(char *record, int torev){ + return(core6_swap(record, torev)); } // U_EMRPOLYBEZIERTO16 88 -void U_EMRPOLYBEZIERTO16_swap(char *record, int torev){ - core6_swap(record, torev); +int U_EMRPOLYBEZIERTO16_swap(char *record, int torev){ + return(core6_swap(record, torev)); } // U_EMRPOLYLINETO16 89 @@ -1400,61 +1686,81 @@ void U_EMRPOLYBEZIERTO16_swap(char *record, int torev){ \brief Convert a pointer to a U_EMR_POLYLINETO16 record. \param record pointer to a buffer holding the EMR record */ -void U_EMRPOLYLINETO16_swap(char *record, int torev){ - core6_swap(record, torev); +int U_EMRPOLYLINETO16_swap(char *record, int torev){ + return(core6_swap(record, torev)); } // U_EMRPOLYPOLYLINE16 90 -void U_EMRPOLYPOLYLINE16_swap(char *record, int torev){ - core10_swap(record, torev); +int U_EMRPOLYPOLYLINE16_swap(char *record, int torev){ + return(core10_swap(record, torev)); } // U_EMRPOLYPOLYGON16 91 -void U_EMRPOLYPOLYGON16_swap(char *record, int torev){ - core10_swap(record, torev); +int U_EMRPOLYPOLYGON16_swap(char *record, int torev){ + return(core10_swap(record, torev)); } // U_EMRPOLYDRAW16 92 -void U_EMRPOLYDRAW16_swap(char *record, int torev){ +int U_EMRPOLYDRAW16_swap(char *record, int torev){ int count=0; - core5_swap(record, torev); + const char *blimit = NULL; PU_EMRPOLYDRAW16 pEmr = (PU_EMRPOLYDRAW16)(record); if(torev){ count = pEmr->cpts; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->cpts),1); // cpts if(!torev){ count = pEmr->cpts; + blimit = record + pEmr->emr.nSize; } + if(IS_MEM_UNSAFE((pEmr->apts), count*sizeof(U_POINT16), blimit))return(0); point16_swap(pEmr->apts,count); // apts[] - U_swap4(pEmr->abTypes,count); // abTypes[] + // single byte data abTypes + return(1); } // U_EMRCREATEMONOBRUSH 93 -void U_EMRCREATEMONOBRUSH_swap(char *record, int torev){ - core12_swap(record, torev); +int U_EMRCREATEMONOBRUSH_swap(char *record, int torev){ + return(core12_swap(record, torev)); } // U_EMRCREATEDIBPATTERNBRUSHPT_swap 94 -void U_EMRCREATEDIBPATTERNBRUSHPT_swap(char *record, int torev){ - core12_swap(record, torev); +int U_EMRCREATEDIBPATTERNBRUSHPT_swap(char *record, int torev){ + return(core12_swap(record, torev)); } // U_EMREXTCREATEPEN 95 -void U_EMREXTCREATEPEN_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMREXTCREATEPEN_swap(char *record, int torev){ + const char *blimit = NULL; + U_OFFBMI offBmi = 0; + U_CBBMI cbBmi = 0; + U_OFFBITS offBits = 0; + U_CBBITS cbBits = 0; PU_EMREXTCREATEPEN pEmr = (PU_EMREXTCREATEPEN)(record); - if(torev && pEmr->cbBmi){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmi)); - } + if(torev){ + offBmi = pEmr->offBmi; + cbBmi = pEmr->cbBmi; + offBits = pEmr->offBits; + cbBits = pEmr->cbBits; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, U_DIB_RGB_COLORS, offBmi, cbBmi, offBits, cbBits, blimit, torev))return(0); + } + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->ihPen),5); // ihPen offBmi cbBmi offBits cbBits - if(!torev && pEmr->cbBmi){ - bitmapinfo_swap((PU_BITMAPINFO)(record + pEmr->offBmi)); + if(!torev){ + offBmi = pEmr->offBmi; + cbBmi = pEmr->cbBmi; + offBits = pEmr->offBits; + cbBits = pEmr->cbBits; + blimit = record + pEmr->emr.nSize; + if(!DIB_swap(record, U_DIB_RGB_COLORS, offBmi, cbBmi, offBits, cbBits, blimit, torev))return(0); } - extlogpen_swap((PU_EXTLOGPEN) &(pEmr->elp), torev); + return(extlogpen_swap((PU_EXTLOGPEN) &(pEmr->elp), blimit, torev)); } // U_EMRPOLYTEXTOUTA 96 NOT IMPLEMENTED, denigrated after Windows NT @@ -1463,26 +1769,27 @@ void U_EMREXTCREATEPEN_swap(char *record, int torev){ #define U_EMRPOLYTEXTOUTW_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRSETICMMODE 98 -void U_EMRSETICMMODE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETICMMODE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRCREATECOLORSPACE 99 -void U_EMRCREATECOLORSPACE_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCREATECOLORSPACE_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRCREATECOLORSPACE pEmr = (PU_EMRCREATECOLORSPACE)(record); U_swap4(&(pEmr->ihCS),1); // ihCS logcolorspacea_swap(&(pEmr->lcs)); // lcs + return(1); } // U_EMRSETCOLORSPACE 100 -void U_EMRSETCOLORSPACE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETCOLORSPACE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRDELETECOLORSPACE 101 -void U_EMRDELETECOLORSPACE_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRDELETECOLORSPACE_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRGLSRECORD 102 Not implemented @@ -1491,10 +1798,11 @@ void U_EMRDELETECOLORSPACE_swap(char *record, int torev){ #define U_EMRGLSBOUNDEDRECORD_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRPIXELFORMAT 104 -void U_EMRPIXELFORMAT_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRPIXELFORMAT_swap(char *record, int torev){ + if(!core5_swap(record, torev))return(0); PU_EMRPIXELFORMAT pEmr = (PU_EMRPIXELFORMAT)(record); pixelformatdescriptor_swap(&(pEmr->pfd)); // pfd + return(1); } // U_EMRDRAWESCAPE 105 Not implemented @@ -1505,24 +1813,32 @@ void U_EMRPIXELFORMAT_swap(char *record, int torev){ #define U_EMRUNDEF107_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRSMALLTEXTOUT 108 -void U_EMRSMALLTEXTOUT_swap(char *record, int torev){ - int roff=0; - int fuOptions=0; - core5_swap(record, torev); +int U_EMRSMALLTEXTOUT_swap(char *record, int torev){ + int roff=sizeof(U_EMRSMALLTEXTOUT); // offset to the start of the variable fields + int fuOptions = 0; + int cChars = 0; + const char *blimit = NULL; PU_EMRSMALLTEXTOUT pEmr = (PU_EMRSMALLTEXTOUT)(record); if(torev){ fuOptions = pEmr->fuOptions; + cChars = pEmr->cChars; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); pointl_swap(&(pEmr->Dest),1); // Dest U_swap4(&(pEmr->cChars),5); // cChars fuOptions iGraphicsMode exScale eyScale if(!torev){ fuOptions = pEmr->fuOptions; + cChars = pEmr->cChars; + blimit = record + pEmr->emr.nSize; } - roff = sizeof(U_EMRSMALLTEXTOUT); // offset to the start of the variable fields if(!(fuOptions & U_ETO_NO_RECT)){ + if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL), blimit))return(0); rectl_swap( (PU_RECTL) (record + roff),1); // rclBounds } + if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL) + cChars, blimit))return(0); // ordered bytes or UTF16-LE TextString + return(1); } // U_EMRFORCEUFIMAPPING 109 Not implemented @@ -1537,55 +1853,62 @@ void U_EMRSMALLTEXTOUT_swap(char *record, int torev){ #define U_EMRSETICMPROFILEW_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRALPHABLEND 114 -void U_EMRALPHABLEND_swap(char *record, int torev){ - core13_swap(record, torev); +int U_EMRALPHABLEND_swap(char *record, int torev){ + return(core13_swap(record, torev)); } // U_EMRSETLAYOUT 115 -void U_EMRSETLAYOUT_swap(char *record, int torev){ - core3_swap(record, torev); +int U_EMRSETLAYOUT_swap(char *record, int torev){ + return(core3_swap(record, torev)); } // U_EMRTRANSPARENTBLT 116 -void U_EMRTRANSPARENTBLT_swap(char *record, int torev){ - core13_swap(record, torev); +int U_EMRTRANSPARENTBLT_swap(char *record, int torev){ + return(core13_swap(record, torev)); } // U_EMRUNDEF117 117 Not implemented #define U_EMRUNDEF117_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRGRADIENTFILL 118 -void U_EMRGRADIENTFILL_swap(char *record, int torev){ +int U_EMRGRADIENTFILL_swap(char *record, int torev){ int nTriVert=0; int nGradObj=0; int ulMode=0; - core5_swap(record, torev); + const char *blimit = NULL; PU_EMRGRADIENTFILL pEmr = (PU_EMRGRADIENTFILL)(record); if(torev){ nTriVert = pEmr->nTriVert; nGradObj = pEmr->nGradObj; ulMode = pEmr->ulMode; + blimit = record + pEmr->emr.nSize; } + if(!core5_swap(record, torev))return(0); rectl_swap(&(pEmr->rclBounds),1); // rclBounds U_swap4(&(pEmr->nTriVert),3); // nTriVert nGradObj ulMode if(!torev){ nTriVert = pEmr->nTriVert; nGradObj = pEmr->nGradObj; ulMode = pEmr->ulMode; + blimit = record + pEmr->emr.nSize; } record += sizeof(U_EMRGRADIENTFILL); + if(IS_MEM_UNSAFE(record, nTriVert*sizeof(U_TRIVERTEX), blimit))return(0); if(nTriVert){ trivertex_swap((PU_TRIVERTEX)(record),nTriVert); // TriVert[] } record += nTriVert * sizeof(U_TRIVERTEX); if(nGradObj){ if( ulMode == U_GRADIENT_FILL_TRIANGLE){ + if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT3), blimit))return(0); gradient3_swap((PU_GRADIENT3)(record), nGradObj); // GradObj[] } else if(ulMode == U_GRADIENT_FILL_RECT_H || ulMode == U_GRADIENT_FILL_RECT_V){ + if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT4), blimit))return(0); gradient4_swap((PU_GRADIENT4)(record), nGradObj); // GradObj[] } } + return(1); } // U_EMRSETLINKEDUFIS 119 Not implemented @@ -1596,17 +1919,185 @@ void U_EMRGRADIENTFILL_swap(char *record, int torev){ #define U_EMRCOLORMATCHTOTARGETW_swap(A,B) U_EMRNOTIMPLEMENTED_swap(A,B) //!< Not implemented. // U_EMRCREATECOLORSPACEW 122 -void U_EMRCREATECOLORSPACEW_swap(char *record, int torev){ - core5_swap(record, torev); +int U_EMRCREATECOLORSPACEW_swap(char *record, int torev){ PU_EMRCREATECOLORSPACEW pEmr = (PU_EMRCREATECOLORSPACEW)(record); + if(!core5_swap(record, torev))return(0); U_swap4(&(pEmr->ihCS),1); // ihCS logcolorspacew_swap(&(pEmr->lcs)); // lcs U_swap4(&(pEmr->dwFlags),2); // dwFlags cbData // ordered bytes: Data + return(1); } //! \endcond +/** + \brief Checks the declared size of a record for consistency + \return 0 on failure, 1 on success + \param record pointer to the start of the EMF record in memory + \param blimit pointer to one byte after the EMF record in memory + \param nSize number of bytes in the record, read from the record + \param iType type of the record, read from the record + \param torev 1 for native to reversed, 0 for reversed to native + + Normally this would be called immediately after reading the data from a file. + Verifies that the declared size is consistent with this type of record. +*/ +int U_emf_record_sizeok(const char *record, const char *blimit, uint32_t *nSize, uint32_t *iType, int torev){ + uint32_t rsize=0; + if(!nSize || !iType)return(0); // programming error + + /* Check that COMMON data in record can be touched without an access violation. If it cannot be + this is either a corrupt EMF or one engineered to cause a buffer overflow. Pointer math + could wrap so check both sides of the range, and fail any indications of such a wrap. + */ + if(IS_MEM_UNSAFE(record, sizeof(U_EMR), blimit))return(0); + + PU_ENHMETARECORD pEmr = (PU_ENHMETARECORD)(record); + *iType = pEmr->iType; + *nSize = pEmr->nSize; + if(!torev){ + U_swap4(iType,1); + U_swap4(nSize,1); + } + + /* Check that the FULL record size is OK, abort if not. */ + if(IS_MEM_UNSAFE(record, *nSize, blimit))return(0); + + switch (*iType) + { + // next line, ancient EMF files used a smaller header, to be safe, test for that + case U_EMR_HEADER: rsize = U_SIZE_EMRHEADER_MIN; break; + case U_EMR_POLYBEZIER: rsize = U_SIZE_EMRPOLYBEZIER; break; + case U_EMR_POLYGON: rsize = U_SIZE_EMRPOLYGON; break; + case U_EMR_POLYLINE: rsize = U_SIZE_EMRPOLYLINE; break; + case U_EMR_POLYBEZIERTO: rsize = U_SIZE_EMRPOLYBEZIERTO; break; + case U_EMR_POLYLINETO: rsize = U_SIZE_EMRPOLYLINETO; break; + case U_EMR_POLYPOLYLINE: rsize = U_SIZE_EMRPOLYPOLYLINE; break; + case U_EMR_POLYPOLYGON: rsize = U_SIZE_EMRPOLYPOLYGON; break; + case U_EMR_SETWINDOWEXTEX: rsize = U_SIZE_EMRSETWINDOWEXTEX; break; + case U_EMR_SETWINDOWORGEX: rsize = U_SIZE_EMRSETWINDOWORGEX; break; + case U_EMR_SETVIEWPORTEXTEX: rsize = U_SIZE_EMRSETVIEWPORTEXTEX; break; + case U_EMR_SETVIEWPORTORGEX: rsize = U_SIZE_EMRSETVIEWPORTORGEX; break; + case U_EMR_SETBRUSHORGEX: rsize = U_SIZE_EMRSETBRUSHORGEX; break; + case U_EMR_EOF: rsize = U_SIZE_EMREOF; break; + case U_EMR_SETPIXELV: rsize = U_SIZE_EMRSETPIXELV; break; + case U_EMR_SETMAPPERFLAGS: rsize = U_SIZE_EMRSETMAPPERFLAGS; break; + case U_EMR_SETMAPMODE: rsize = U_SIZE_EMRSETMAPMODE; break; + case U_EMR_SETBKMODE: rsize = U_SIZE_EMRSETBKMODE; break; + case U_EMR_SETPOLYFILLMODE: rsize = U_SIZE_EMRSETPOLYFILLMODE; break; + case U_EMR_SETROP2: rsize = U_SIZE_EMRSETROP2; break; + case U_EMR_SETSTRETCHBLTMODE: rsize = U_SIZE_EMRSETSTRETCHBLTMODE; break; + case U_EMR_SETTEXTALIGN: rsize = U_SIZE_EMRSETTEXTALIGN; break; + case U_EMR_SETCOLORADJUSTMENT: rsize = U_SIZE_EMRSETCOLORADJUSTMENT; break; + case U_EMR_SETTEXTCOLOR: rsize = U_SIZE_EMRSETTEXTCOLOR; break; + case U_EMR_SETBKCOLOR: rsize = U_SIZE_EMRSETBKCOLOR; break; + case U_EMR_OFFSETCLIPRGN: rsize = U_SIZE_EMROFFSETCLIPRGN; break; + case U_EMR_MOVETOEX: rsize = U_SIZE_EMRMOVETOEX; break; + case U_EMR_SETMETARGN: rsize = U_SIZE_EMRSETMETARGN; break; + case U_EMR_EXCLUDECLIPRECT: rsize = U_SIZE_EMREXCLUDECLIPRECT; break; + case U_EMR_INTERSECTCLIPRECT: rsize = U_SIZE_EMRINTERSECTCLIPRECT; break; + case U_EMR_SCALEVIEWPORTEXTEX: rsize = U_SIZE_EMRSCALEVIEWPORTEXTEX; break; + case U_EMR_SCALEWINDOWEXTEX: rsize = U_SIZE_EMRSCALEWINDOWEXTEX; break; + case U_EMR_SAVEDC: rsize = U_SIZE_EMRSAVEDC; break; + case U_EMR_RESTOREDC: rsize = U_SIZE_EMRRESTOREDC; break; + case U_EMR_SETWORLDTRANSFORM: rsize = U_SIZE_EMRSETWORLDTRANSFORM; break; + case U_EMR_MODIFYWORLDTRANSFORM: rsize = U_SIZE_EMRMODIFYWORLDTRANSFORM; break; + case U_EMR_SELECTOBJECT: rsize = U_SIZE_EMRSELECTOBJECT; break; + case U_EMR_CREATEPEN: rsize = U_SIZE_EMRCREATEPEN; break; + case U_EMR_CREATEBRUSHINDIRECT: rsize = U_SIZE_EMRCREATEBRUSHINDIRECT; break; + case U_EMR_DELETEOBJECT: rsize = U_SIZE_EMRDELETEOBJECT; break; + case U_EMR_ANGLEARC: rsize = U_SIZE_EMRANGLEARC; break; + case U_EMR_ELLIPSE: rsize = U_SIZE_EMRELLIPSE; break; + case U_EMR_RECTANGLE: rsize = U_SIZE_EMRRECTANGLE; break; + case U_EMR_ROUNDRECT: rsize = U_SIZE_EMRROUNDRECT; break; + case U_EMR_ARC: rsize = U_SIZE_EMRARC; break; + case U_EMR_CHORD: rsize = U_SIZE_EMRCHORD; break; + case U_EMR_PIE: rsize = U_SIZE_EMRPIE; break; + case U_EMR_SELECTPALETTE: rsize = U_SIZE_EMRSELECTPALETTE; break; + case U_EMR_CREATEPALETTE: rsize = U_SIZE_EMRCREATEPALETTE; break; + case U_EMR_SETPALETTEENTRIES: rsize = U_SIZE_EMRSETPALETTEENTRIES; break; + case U_EMR_RESIZEPALETTE: rsize = U_SIZE_EMRRESIZEPALETTE; break; + case U_EMR_REALIZEPALETTE: rsize = U_SIZE_EMRREALIZEPALETTE; break; + case U_EMR_EXTFLOODFILL: rsize = U_SIZE_EMREXTFLOODFILL; break; + case U_EMR_LINETO: rsize = U_SIZE_EMRLINETO; break; + case U_EMR_ARCTO: rsize = U_SIZE_EMRARCTO; break; + case U_EMR_POLYDRAW: rsize = U_SIZE_EMRPOLYDRAW; break; + case U_EMR_SETARCDIRECTION: rsize = U_SIZE_EMRSETARCDIRECTION; break; + case U_EMR_SETMITERLIMIT: rsize = U_SIZE_EMRSETMITERLIMIT; break; + case U_EMR_BEGINPATH: rsize = U_SIZE_EMRBEGINPATH; break; + case U_EMR_ENDPATH: rsize = U_SIZE_EMRENDPATH; break; + case U_EMR_CLOSEFIGURE: rsize = U_SIZE_EMRCLOSEFIGURE; break; + case U_EMR_FILLPATH: rsize = U_SIZE_EMRFILLPATH; break; + case U_EMR_STROKEANDFILLPATH: rsize = U_SIZE_EMRSTROKEANDFILLPATH; break; + case U_EMR_STROKEPATH: rsize = U_SIZE_EMRSTROKEPATH; break; + case U_EMR_FLATTENPATH: rsize = U_SIZE_EMRFLATTENPATH; break; + case U_EMR_WIDENPATH: rsize = U_SIZE_EMRWIDENPATH; break; + case U_EMR_SELECTCLIPPATH: rsize = U_SIZE_EMRSELECTCLIPPATH; break; + case U_EMR_ABORTPATH: rsize = U_SIZE_EMRABORTPATH; break; + case U_EMR_UNDEF69: rsize = U_SIZE_EMRUNDEFINED; break; + case U_EMR_COMMENT: rsize = U_SIZE_EMRCOMMENT; break; + case U_EMR_FILLRGN: rsize = U_SIZE_EMRFILLRGN; break; + case U_EMR_FRAMERGN: rsize = U_SIZE_EMRFRAMERGN; break; + case U_EMR_INVERTRGN: rsize = U_SIZE_EMRINVERTRGN; break; + case U_EMR_PAINTRGN: rsize = U_SIZE_EMRPAINTRGN; break; + case U_EMR_EXTSELECTCLIPRGN: rsize = U_SIZE_EMREXTSELECTCLIPRGN; break; + case U_EMR_BITBLT: rsize = U_SIZE_EMRBITBLT; break; + case U_EMR_STRETCHBLT: rsize = U_SIZE_EMRSTRETCHBLT; break; + case U_EMR_MASKBLT: rsize = U_SIZE_EMRMASKBLT; break; + case U_EMR_PLGBLT: rsize = U_SIZE_EMRPLGBLT; break; + case U_EMR_SETDIBITSTODEVICE: rsize = U_SIZE_EMRSETDIBITSTODEVICE; break; + case U_EMR_STRETCHDIBITS: rsize = U_SIZE_EMRSTRETCHDIBITS; break; + case U_EMR_EXTCREATEFONTINDIRECTW: rsize = U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT; break; + case U_EMR_EXTTEXTOUTA: rsize = U_SIZE_EMREXTTEXTOUTA; break; + case U_EMR_EXTTEXTOUTW: rsize = U_SIZE_EMREXTTEXTOUTW; break; + case U_EMR_POLYBEZIER16: rsize = U_SIZE_EMRPOLYBEZIER16; break; + case U_EMR_POLYGON16: rsize = U_SIZE_EMRPOLYGON16; break; + case U_EMR_POLYLINE16: rsize = U_SIZE_EMRPOLYLINE16; break; + case U_EMR_POLYBEZIERTO16: rsize = U_SIZE_EMRPOLYBEZIERTO16; break; + case U_EMR_POLYLINETO16: rsize = U_SIZE_EMRPOLYLINETO16; break; + case U_EMR_POLYPOLYLINE16: rsize = U_SIZE_EMRPOLYPOLYLINE16; break; + case U_EMR_POLYPOLYGON16: rsize = U_SIZE_EMRPOLYPOLYGON16; break; + case U_EMR_POLYDRAW16: rsize = U_SIZE_EMRPOLYDRAW16; break; + case U_EMR_CREATEMONOBRUSH: rsize = U_SIZE_EMRCREATEMONOBRUSH; break; + case U_EMR_CREATEDIBPATTERNBRUSHPT: rsize = U_SIZE_EMRCREATEDIBPATTERNBRUSHPT; break; + case U_EMR_EXTCREATEPEN: rsize = U_SIZE_EMREXTCREATEPEN; break; + case U_EMR_POLYTEXTOUTA: rsize = U_SIZE_EMRPOLYTEXTOUTA; break; + case U_EMR_POLYTEXTOUTW: rsize = U_SIZE_EMRPOLYTEXTOUTW; break; + case U_EMR_SETICMMODE: rsize = U_SIZE_EMRSETICMMODE; break; + case U_EMR_CREATECOLORSPACE: rsize = U_SIZE_EMRCREATECOLORSPACE; break; + case U_EMR_SETCOLORSPACE: rsize = U_SIZE_EMRSETCOLORSPACE; break; + case U_EMR_DELETECOLORSPACE: rsize = U_SIZE_EMRDELETECOLORSPACE; break; + case U_EMR_GLSRECORD: rsize = U_SIZE_EMRGLSRECORD; break; + case U_EMR_GLSBOUNDEDRECORD: rsize = U_SIZE_EMRGLSBOUNDEDRECORD; break; + case U_EMR_PIXELFORMAT: rsize = U_SIZE_EMRPIXELFORMAT; break; + case U_EMR_DRAWESCAPE: rsize = U_SIZE_EMRDRAWESCAPE; break; + case U_EMR_EXTESCAPE: rsize = U_SIZE_EMREXTESCAPE; break; + case U_EMR_UNDEF107: rsize = U_SIZE_EMRUNDEFINED; break; + case U_EMR_SMALLTEXTOUT: rsize = U_SIZE_EMRSMALLTEXTOUT; break; +// case U_EMR_FORCEUFIMAPPING: rsize = U_SIZE_EMRFORCEUFIMAPPING; break; + case U_EMR_NAMEDESCAPE: rsize = U_SIZE_EMRNAMEDESCAPE; break; +// case U_EMR_COLORCORRECTPALETTE: rsize = U_SIZE_EMRCOLORCORRECTPALETTE; break; +// case U_EMR_SETICMPROFILEA: rsize = U_SIZE_EMRSETICMPROFILEA; break; +// case U_EMR_SETICMPROFILEW: rsize = U_SIZE_EMRSETICMPROFILEW; break; + case U_EMR_ALPHABLEND: rsize = U_SIZE_EMRALPHABLEND; break; + case U_EMR_SETLAYOUT: rsize = U_SIZE_EMRSETLAYOUT; break; + case U_EMR_TRANSPARENTBLT: rsize = U_SIZE_EMRTRANSPARENTBLT; break; + case U_EMR_UNDEF117: rsize = U_SIZE_EMRUNDEFINED; break; + case U_EMR_GRADIENTFILL: rsize = U_SIZE_EMRGRADIENTFILL; break; +// case U_EMR_SETLINKEDUFIS: rsize = U_SIZE_EMRSETLINKEDUFIS; break; +// case U_EMR_SETTEXTJUSTIFICATION: rsize = U_SIZE_EMRSETTEXTJUSTIFICATION; break; + case U_EMR_COLORMATCHTOTARGETW: rsize = U_SIZE_EMRCOLORMATCHTOTARGETW; break; + case U_EMR_CREATECOLORSPACEW: rsize = U_SIZE_EMRCREATECOLORSPACEW; break; + default: rsize = U_SIZE_EMRNOTIMPLEMENTED; break; + } //end of switch + // record's declared size must be more than the minimum size for this type of record + if(*nSize < rsize){ + return(0); + } + return(1); +} + /** \brief Convert an entire EMF in memory from Big Endian to Little Endian. @@ -1622,155 +2113,151 @@ int U_emf_endian(char *contents, size_t length, int torev){ uint32_t off; uint32_t OK, recnum, iType; char *record; - PU_ENHMETARECORD pEmr; + const char *blimit = contents + length; /* should never wrap since it describes a structure in memory */ + int rstatus=1; record = contents; OK = 1; off = 0; recnum = 0; while(OK){ - if(record > contents + length){ // this is most likely a corrupt EMF - return(0); - } - pEmr = (PU_ENHMETARECORD)(record); - - iType = pEmr->iType; - off = pEmr->nSize; - if(!torev){ - U_swap4(&iType,1); - U_swap4(&off,1); + if(!U_emf_record_sizeok(record, blimit, &off, &iType, torev)){ + return(0); } switch (iType) { - case U_EMR_HEADER: U_EMRHEADER_swap(record, torev); break; - case U_EMR_POLYBEZIER: U_EMRPOLYBEZIER_swap(record, torev); break; - case U_EMR_POLYGON: U_EMRPOLYGON_swap(record, torev); break; - case U_EMR_POLYLINE: U_EMRPOLYLINE_swap(record, torev); break; - case U_EMR_POLYBEZIERTO: U_EMRPOLYBEZIERTO_swap(record, torev); break; - case U_EMR_POLYLINETO: U_EMRPOLYLINETO_swap(record, torev); break; - case U_EMR_POLYPOLYLINE: U_EMRPOLYPOLYLINE_swap(record, torev); break; - case U_EMR_POLYPOLYGON: U_EMRPOLYPOLYGON_swap(record, torev); break; - case U_EMR_SETWINDOWEXTEX: U_EMRSETWINDOWEXTEX_swap(record, torev); break; - case U_EMR_SETWINDOWORGEX: U_EMRSETWINDOWORGEX_swap(record, torev); break; - case U_EMR_SETVIEWPORTEXTEX: U_EMRSETVIEWPORTEXTEX_swap(record, torev); break; - case U_EMR_SETVIEWPORTORGEX: U_EMRSETVIEWPORTORGEX_swap(record, torev); break; - case U_EMR_SETBRUSHORGEX: U_EMRSETBRUSHORGEX_swap(record, torev); break; + case U_EMR_HEADER: rstatus=U_EMRHEADER_swap(record, torev); break; + case U_EMR_POLYBEZIER: rstatus=U_EMRPOLYBEZIER_swap(record, torev); break; + case U_EMR_POLYGON: rstatus=U_EMRPOLYGON_swap(record, torev); break; + case U_EMR_POLYLINE: rstatus=U_EMRPOLYLINE_swap(record, torev); break; + case U_EMR_POLYBEZIERTO: rstatus=U_EMRPOLYBEZIERTO_swap(record, torev); break; + case U_EMR_POLYLINETO: rstatus=U_EMRPOLYLINETO_swap(record, torev); break; + case U_EMR_POLYPOLYLINE: rstatus=U_EMRPOLYPOLYLINE_swap(record, torev); break; + case U_EMR_POLYPOLYGON: rstatus=U_EMRPOLYPOLYGON_swap(record, torev); break; + case U_EMR_SETWINDOWEXTEX: rstatus=U_EMRSETWINDOWEXTEX_swap(record, torev); break; + case U_EMR_SETWINDOWORGEX: rstatus=U_EMRSETWINDOWORGEX_swap(record, torev); break; + case U_EMR_SETVIEWPORTEXTEX: rstatus=U_EMRSETVIEWPORTEXTEX_swap(record, torev); break; + case U_EMR_SETVIEWPORTORGEX: rstatus=U_EMRSETVIEWPORTORGEX_swap(record, torev); break; + case U_EMR_SETBRUSHORGEX: rstatus=U_EMRSETBRUSHORGEX_swap(record, torev); break; case U_EMR_EOF: - U_EMREOF_swap(record, torev); + rstatus=U_EMREOF_swap(record, torev); OK = 0; /* Exit triggered here */ break; - case U_EMR_SETPIXELV: U_EMRSETPIXELV_swap(record, torev); break; - case U_EMR_SETMAPPERFLAGS: U_EMRSETMAPPERFLAGS_swap(record, torev); break; - case U_EMR_SETMAPMODE: U_EMRSETMAPMODE_swap(record, torev); break; - case U_EMR_SETBKMODE: U_EMRSETBKMODE_swap(record, torev); break; - case U_EMR_SETPOLYFILLMODE: U_EMRSETPOLYFILLMODE_swap(record, torev); break; - case U_EMR_SETROP2: U_EMRSETROP2_swap(record, torev); break; - case U_EMR_SETSTRETCHBLTMODE: U_EMRSETSTRETCHBLTMODE_swap(record, torev); break; - case U_EMR_SETTEXTALIGN: U_EMRSETTEXTALIGN_swap(record, torev); break; - case U_EMR_SETCOLORADJUSTMENT: U_EMRSETCOLORADJUSTMENT_swap(record, torev); break; - case U_EMR_SETTEXTCOLOR: U_EMRSETTEXTCOLOR_swap(record, torev); break; - case U_EMR_SETBKCOLOR: U_EMRSETBKCOLOR_swap(record, torev); break; - case U_EMR_OFFSETCLIPRGN: U_EMROFFSETCLIPRGN_swap(record, torev); break; - case U_EMR_MOVETOEX: U_EMRMOVETOEX_swap(record, torev); break; - case U_EMR_SETMETARGN: U_EMRSETMETARGN_swap(record, torev); break; - case U_EMR_EXCLUDECLIPRECT: U_EMREXCLUDECLIPRECT_swap(record, torev); break; - case U_EMR_INTERSECTCLIPRECT: U_EMRINTERSECTCLIPRECT_swap(record, torev); break; - case U_EMR_SCALEVIEWPORTEXTEX: U_EMRSCALEVIEWPORTEXTEX_swap(record, torev); break; - case U_EMR_SCALEWINDOWEXTEX: U_EMRSCALEWINDOWEXTEX_swap(record, torev); break; - case U_EMR_SAVEDC: U_EMRSAVEDC_swap(record, torev); break; - case U_EMR_RESTOREDC: U_EMRRESTOREDC_swap(record, torev); break; - case U_EMR_SETWORLDTRANSFORM: U_EMRSETWORLDTRANSFORM_swap(record, torev); break; - case U_EMR_MODIFYWORLDTRANSFORM: U_EMRMODIFYWORLDTRANSFORM_swap(record, torev); break; - case U_EMR_SELECTOBJECT: U_EMRSELECTOBJECT_swap(record, torev); break; - case U_EMR_CREATEPEN: U_EMRCREATEPEN_swap(record, torev); break; - case U_EMR_CREATEBRUSHINDIRECT: U_EMRCREATEBRUSHINDIRECT_swap(record, torev); break; - case U_EMR_DELETEOBJECT: U_EMRDELETEOBJECT_swap(record, torev); break; - case U_EMR_ANGLEARC: U_EMRANGLEARC_swap(record, torev); break; - case U_EMR_ELLIPSE: U_EMRELLIPSE_swap(record, torev); break; - case U_EMR_RECTANGLE: U_EMRRECTANGLE_swap(record, torev); break; - case U_EMR_ROUNDRECT: U_EMRROUNDRECT_swap(record, torev); break; - case U_EMR_ARC: U_EMRARC_swap(record, torev); break; - case U_EMR_CHORD: U_EMRCHORD_swap(record, torev); break; - case U_EMR_PIE: U_EMRPIE_swap(record, torev); break; - case U_EMR_SELECTPALETTE: U_EMRSELECTPALETTE_swap(record, torev); break; - case U_EMR_CREATEPALETTE: U_EMRCREATEPALETTE_swap(record, torev); break; - case U_EMR_SETPALETTEENTRIES: U_EMRSETPALETTEENTRIES_swap(record, torev); break; - case U_EMR_RESIZEPALETTE: U_EMRRESIZEPALETTE_swap(record, torev); break; - case U_EMR_REALIZEPALETTE: U_EMRREALIZEPALETTE_swap(record, torev); break; - case U_EMR_EXTFLOODFILL: U_EMREXTFLOODFILL_swap(record, torev); break; - case U_EMR_LINETO: U_EMRLINETO_swap(record, torev); break; - case U_EMR_ARCTO: U_EMRARCTO_swap(record, torev); break; - case U_EMR_POLYDRAW: U_EMRPOLYDRAW_swap(record, torev); break; - case U_EMR_SETARCDIRECTION: U_EMRSETARCDIRECTION_swap(record, torev); break; - case U_EMR_SETMITERLIMIT: U_EMRSETMITERLIMIT_swap(record, torev); break; - case U_EMR_BEGINPATH: U_EMRBEGINPATH_swap(record, torev); break; - case U_EMR_ENDPATH: U_EMRENDPATH_swap(record, torev); break; - case U_EMR_CLOSEFIGURE: U_EMRCLOSEFIGURE_swap(record, torev); break; - case U_EMR_FILLPATH: U_EMRFILLPATH_swap(record, torev); break; - case U_EMR_STROKEANDFILLPATH: U_EMRSTROKEANDFILLPATH_swap(record, torev); break; - case U_EMR_STROKEPATH: U_EMRSTROKEPATH_swap(record, torev); break; - case U_EMR_FLATTENPATH: U_EMRFLATTENPATH_swap(record, torev); break; - case U_EMR_WIDENPATH: U_EMRWIDENPATH_swap(record, torev); break; - case U_EMR_SELECTCLIPPATH: U_EMRSELECTCLIPPATH_swap(record, torev); break; - case U_EMR_ABORTPATH: U_EMRABORTPATH_swap(record, torev); break; - case U_EMR_UNDEF69: U_EMRUNDEF69_swap(record, torev); break; - case U_EMR_COMMENT: U_EMRCOMMENT_swap(record, torev); break; - case U_EMR_FILLRGN: U_EMRFILLRGN_swap(record, torev); break; - case U_EMR_FRAMERGN: U_EMRFRAMERGN_swap(record, torev); break; - case U_EMR_INVERTRGN: U_EMRINVERTRGN_swap(record, torev); break; - case U_EMR_PAINTRGN: U_EMRPAINTRGN_swap(record, torev); break; - case U_EMR_EXTSELECTCLIPRGN: U_EMREXTSELECTCLIPRGN_swap(record, torev); break; - case U_EMR_BITBLT: U_EMRBITBLT_swap(record, torev); break; - case U_EMR_STRETCHBLT: U_EMRSTRETCHBLT_swap(record, torev); break; - case U_EMR_MASKBLT: U_EMRMASKBLT_swap(record, torev); break; - case U_EMR_PLGBLT: U_EMRPLGBLT_swap(record, torev); break; - case U_EMR_SETDIBITSTODEVICE: U_EMRSETDIBITSTODEVICE_swap(record, torev); break; - case U_EMR_STRETCHDIBITS: U_EMRSTRETCHDIBITS_swap(record, torev); break; - case U_EMR_EXTCREATEFONTINDIRECTW: U_EMREXTCREATEFONTINDIRECTW_swap(record, torev); break; - case U_EMR_EXTTEXTOUTA: U_EMREXTTEXTOUTA_swap(record, torev); break; - case U_EMR_EXTTEXTOUTW: U_EMREXTTEXTOUTW_swap(record, torev); break; - case U_EMR_POLYBEZIER16: U_EMRPOLYBEZIER16_swap(record, torev); break; - case U_EMR_POLYGON16: U_EMRPOLYGON16_swap(record, torev); break; - case U_EMR_POLYLINE16: U_EMRPOLYLINE16_swap(record, torev); break; - case U_EMR_POLYBEZIERTO16: U_EMRPOLYBEZIERTO16_swap(record, torev); break; - case U_EMR_POLYLINETO16: U_EMRPOLYLINETO16_swap(record, torev); break; - case U_EMR_POLYPOLYLINE16: U_EMRPOLYPOLYLINE16_swap(record, torev); break; - case U_EMR_POLYPOLYGON16: U_EMRPOLYPOLYGON16_swap(record, torev); break; - case U_EMR_POLYDRAW16: U_EMRPOLYDRAW16_swap(record, torev); break; - case U_EMR_CREATEMONOBRUSH: U_EMRCREATEMONOBRUSH_swap(record, torev); break; - case U_EMR_CREATEDIBPATTERNBRUSHPT: U_EMRCREATEDIBPATTERNBRUSHPT_swap(record, torev); break; - case U_EMR_EXTCREATEPEN: U_EMREXTCREATEPEN_swap(record, torev); break; - case U_EMR_POLYTEXTOUTA: U_EMRPOLYTEXTOUTA_swap(record, torev); break; - case U_EMR_POLYTEXTOUTW: U_EMRPOLYTEXTOUTW_swap(record, torev); break; - case U_EMR_SETICMMODE: U_EMRSETICMMODE_swap(record, torev); break; - case U_EMR_CREATECOLORSPACE: U_EMRCREATECOLORSPACE_swap(record, torev); break; - case U_EMR_SETCOLORSPACE: U_EMRSETCOLORSPACE_swap(record, torev); break; - case U_EMR_DELETECOLORSPACE: U_EMRDELETECOLORSPACE_swap(record, torev); break; - case U_EMR_GLSRECORD: U_EMRGLSRECORD_swap(record, torev); break; - case U_EMR_GLSBOUNDEDRECORD: U_EMRGLSBOUNDEDRECORD_swap(record, torev); break; - case U_EMR_PIXELFORMAT: U_EMRPIXELFORMAT_swap(record, torev); break; - case U_EMR_DRAWESCAPE: U_EMRDRAWESCAPE_swap(record, torev); break; - case U_EMR_EXTESCAPE: U_EMREXTESCAPE_swap(record, torev); break; - case U_EMR_UNDEF107: U_EMRUNDEF107_swap(record, torev); break; - case U_EMR_SMALLTEXTOUT: U_EMRSMALLTEXTOUT_swap(record, torev); break; - case U_EMR_FORCEUFIMAPPING: U_EMRFORCEUFIMAPPING_swap(record, torev); break; - case U_EMR_NAMEDESCAPE: U_EMRNAMEDESCAPE_swap(record, torev); break; - case U_EMR_COLORCORRECTPALETTE: U_EMRCOLORCORRECTPALETTE_swap(record, torev); break; - case U_EMR_SETICMPROFILEA: U_EMRSETICMPROFILEA_swap(record, torev); break; - case U_EMR_SETICMPROFILEW: U_EMRSETICMPROFILEW_swap(record, torev); break; - case U_EMR_ALPHABLEND: U_EMRALPHABLEND_swap(record, torev); break; - case U_EMR_SETLAYOUT: U_EMRSETLAYOUT_swap(record, torev); break; - case U_EMR_TRANSPARENTBLT: U_EMRTRANSPARENTBLT_swap(record, torev); break; - case U_EMR_UNDEF117: U_EMRUNDEF117_swap(record, torev); break; - case U_EMR_GRADIENTFILL: U_EMRGRADIENTFILL_swap(record, torev); break; - case U_EMR_SETLINKEDUFIS: U_EMRSETLINKEDUFIS_swap(record, torev); break; - case U_EMR_SETTEXTJUSTIFICATION: U_EMRSETTEXTJUSTIFICATION_swap(record, torev); break; - case U_EMR_COLORMATCHTOTARGETW: U_EMRCOLORMATCHTOTARGETW_swap(record, torev); break; - case U_EMR_CREATECOLORSPACEW: U_EMRCREATECOLORSPACEW_swap(record, torev); break; - default: U_EMRNOTIMPLEMENTED_swap(record, torev); break; + case U_EMR_SETPIXELV: rstatus=U_EMRSETPIXELV_swap(record, torev); break; + case U_EMR_SETMAPPERFLAGS: rstatus=U_EMRSETMAPPERFLAGS_swap(record, torev); break; + case U_EMR_SETMAPMODE: rstatus=U_EMRSETMAPMODE_swap(record, torev); break; + case U_EMR_SETBKMODE: rstatus=U_EMRSETBKMODE_swap(record, torev); break; + case U_EMR_SETPOLYFILLMODE: rstatus=U_EMRSETPOLYFILLMODE_swap(record, torev); break; + case U_EMR_SETROP2: rstatus=U_EMRSETROP2_swap(record, torev); break; + case U_EMR_SETSTRETCHBLTMODE: rstatus=U_EMRSETSTRETCHBLTMODE_swap(record, torev); break; + case U_EMR_SETTEXTALIGN: rstatus=U_EMRSETTEXTALIGN_swap(record, torev); break; + case U_EMR_SETCOLORADJUSTMENT: rstatus=U_EMRSETCOLORADJUSTMENT_swap(record, torev); break; + case U_EMR_SETTEXTCOLOR: rstatus=U_EMRSETTEXTCOLOR_swap(record, torev); break; + case U_EMR_SETBKCOLOR: rstatus=U_EMRSETBKCOLOR_swap(record, torev); break; + case U_EMR_OFFSETCLIPRGN: rstatus=U_EMROFFSETCLIPRGN_swap(record, torev); break; + case U_EMR_MOVETOEX: rstatus=U_EMRMOVETOEX_swap(record, torev); break; + case U_EMR_SETMETARGN: rstatus=U_EMRSETMETARGN_swap(record, torev); break; + case U_EMR_EXCLUDECLIPRECT: rstatus=U_EMREXCLUDECLIPRECT_swap(record, torev); break; + case U_EMR_INTERSECTCLIPRECT: rstatus=U_EMRINTERSECTCLIPRECT_swap(record, torev); break; + case U_EMR_SCALEVIEWPORTEXTEX: rstatus=U_EMRSCALEVIEWPORTEXTEX_swap(record, torev); break; + case U_EMR_SCALEWINDOWEXTEX: rstatus=U_EMRSCALEWINDOWEXTEX_swap(record, torev); break; + case U_EMR_SAVEDC: rstatus=U_EMRSAVEDC_swap(record, torev); break; + case U_EMR_RESTOREDC: rstatus=U_EMRRESTOREDC_swap(record, torev); break; + case U_EMR_SETWORLDTRANSFORM: rstatus=U_EMRSETWORLDTRANSFORM_swap(record, torev); break; + case U_EMR_MODIFYWORLDTRANSFORM: rstatus=U_EMRMODIFYWORLDTRANSFORM_swap(record, torev); break; + case U_EMR_SELECTOBJECT: rstatus=U_EMRSELECTOBJECT_swap(record, torev); break; + case U_EMR_CREATEPEN: rstatus=U_EMRCREATEPEN_swap(record, torev); break; + case U_EMR_CREATEBRUSHINDIRECT: rstatus=U_EMRCREATEBRUSHINDIRECT_swap(record, torev); break; + case U_EMR_DELETEOBJECT: rstatus=U_EMRDELETEOBJECT_swap(record, torev); break; + case U_EMR_ANGLEARC: rstatus=U_EMRANGLEARC_swap(record, torev); break; + case U_EMR_ELLIPSE: rstatus=U_EMRELLIPSE_swap(record, torev); break; + case U_EMR_RECTANGLE: rstatus=U_EMRRECTANGLE_swap(record, torev); break; + case U_EMR_ROUNDRECT: rstatus=U_EMRROUNDRECT_swap(record, torev); break; + case U_EMR_ARC: rstatus=U_EMRARC_swap(record, torev); break; + case U_EMR_CHORD: rstatus=U_EMRCHORD_swap(record, torev); break; + case U_EMR_PIE: rstatus=U_EMRPIE_swap(record, torev); break; + case U_EMR_SELECTPALETTE: rstatus=U_EMRSELECTPALETTE_swap(record, torev); break; + case U_EMR_CREATEPALETTE: rstatus=U_EMRCREATEPALETTE_swap(record, torev); break; + case U_EMR_SETPALETTEENTRIES: rstatus=U_EMRSETPALETTEENTRIES_swap(record, torev); break; + case U_EMR_RESIZEPALETTE: rstatus=U_EMRRESIZEPALETTE_swap(record, torev); break; + case U_EMR_REALIZEPALETTE: rstatus=U_EMRREALIZEPALETTE_swap(record, torev); break; + case U_EMR_EXTFLOODFILL: rstatus=U_EMREXTFLOODFILL_swap(record, torev); break; + case U_EMR_LINETO: rstatus=U_EMRLINETO_swap(record, torev); break; + case U_EMR_ARCTO: rstatus=U_EMRARCTO_swap(record, torev); break; + case U_EMR_POLYDRAW: rstatus=U_EMRPOLYDRAW_swap(record, torev); break; + case U_EMR_SETARCDIRECTION: rstatus=U_EMRSETARCDIRECTION_swap(record, torev); break; + case U_EMR_SETMITERLIMIT: rstatus=U_EMRSETMITERLIMIT_swap(record, torev); break; + case U_EMR_BEGINPATH: rstatus=U_EMRBEGINPATH_swap(record, torev); break; + case U_EMR_ENDPATH: rstatus=U_EMRENDPATH_swap(record, torev); break; + case U_EMR_CLOSEFIGURE: rstatus=U_EMRCLOSEFIGURE_swap(record, torev); break; + case U_EMR_FILLPATH: rstatus=U_EMRFILLPATH_swap(record, torev); break; + case U_EMR_STROKEANDFILLPATH: rstatus=U_EMRSTROKEANDFILLPATH_swap(record, torev); break; + case U_EMR_STROKEPATH: rstatus=U_EMRSTROKEPATH_swap(record, torev); break; + case U_EMR_FLATTENPATH: rstatus=U_EMRFLATTENPATH_swap(record, torev); break; + case U_EMR_WIDENPATH: rstatus=U_EMRWIDENPATH_swap(record, torev); break; + case U_EMR_SELECTCLIPPATH: rstatus=U_EMRSELECTCLIPPATH_swap(record, torev); break; + case U_EMR_ABORTPATH: rstatus=U_EMRABORTPATH_swap(record, torev); break; + case U_EMR_UNDEF69: rstatus=U_EMRUNDEF69_swap(record, torev); break; + case U_EMR_COMMENT: rstatus=U_EMRCOMMENT_swap(record, torev); break; + case U_EMR_FILLRGN: rstatus=U_EMRFILLRGN_swap(record, torev); break; + case U_EMR_FRAMERGN: rstatus=U_EMRFRAMERGN_swap(record, torev); break; + case U_EMR_INVERTRGN: rstatus=U_EMRINVERTRGN_swap(record, torev); break; + case U_EMR_PAINTRGN: rstatus=U_EMRPAINTRGN_swap(record, torev); break; + case U_EMR_EXTSELECTCLIPRGN: rstatus=U_EMREXTSELECTCLIPRGN_swap(record, torev);break; + case U_EMR_BITBLT: rstatus=U_EMRBITBLT_swap(record, torev); break; + case U_EMR_STRETCHBLT: rstatus=U_EMRSTRETCHBLT_swap(record, torev); break; + case U_EMR_MASKBLT: rstatus=U_EMRMASKBLT_swap(record, torev); break; + case U_EMR_PLGBLT: rstatus=U_EMRPLGBLT_swap(record, torev); break; + case U_EMR_SETDIBITSTODEVICE: rstatus=U_EMRSETDIBITSTODEVICE_swap(record, torev); break; + case U_EMR_STRETCHDIBITS: rstatus=U_EMRSTRETCHDIBITS_swap(record, torev); break; + case U_EMR_EXTCREATEFONTINDIRECTW: rstatus=U_EMREXTCREATEFONTINDIRECTW_swap(record, torev); break; + case U_EMR_EXTTEXTOUTA: rstatus=U_EMREXTTEXTOUTA_swap(record, torev); break; + case U_EMR_EXTTEXTOUTW: rstatus=U_EMREXTTEXTOUTW_swap(record, torev); break; + case U_EMR_POLYBEZIER16: rstatus=U_EMRPOLYBEZIER16_swap(record, torev); break; + case U_EMR_POLYGON16: rstatus=U_EMRPOLYGON16_swap(record, torev); break; + case U_EMR_POLYLINE16: rstatus=U_EMRPOLYLINE16_swap(record, torev); break; + case U_EMR_POLYBEZIERTO16: rstatus=U_EMRPOLYBEZIERTO16_swap(record, torev); break; + case U_EMR_POLYLINETO16: rstatus=U_EMRPOLYLINETO16_swap(record, torev); break; + case U_EMR_POLYPOLYLINE16: rstatus=U_EMRPOLYPOLYLINE16_swap(record, torev); break; + case U_EMR_POLYPOLYGON16: rstatus=U_EMRPOLYPOLYGON16_swap(record, torev); break; + case U_EMR_POLYDRAW16: rstatus=U_EMRPOLYDRAW16_swap(record, torev); break; + case U_EMR_CREATEMONOBRUSH: rstatus=U_EMRCREATEMONOBRUSH_swap(record, torev); break; + case U_EMR_CREATEDIBPATTERNBRUSHPT: rstatus=U_EMRCREATEDIBPATTERNBRUSHPT_swap(record, torev); break; + case U_EMR_EXTCREATEPEN: rstatus=U_EMREXTCREATEPEN_swap(record, torev); break; + case U_EMR_POLYTEXTOUTA: rstatus=U_EMRPOLYTEXTOUTA_swap(record, torev); break; + case U_EMR_POLYTEXTOUTW: rstatus=U_EMRPOLYTEXTOUTW_swap(record, torev); break; + case U_EMR_SETICMMODE: rstatus=U_EMRSETICMMODE_swap(record, torev); break; + case U_EMR_CREATECOLORSPACE: rstatus=U_EMRCREATECOLORSPACE_swap(record, torev); break; + case U_EMR_SETCOLORSPACE: rstatus=U_EMRSETCOLORSPACE_swap(record, torev); break; + case U_EMR_DELETECOLORSPACE: rstatus=U_EMRDELETECOLORSPACE_swap(record, torev); break; + case U_EMR_GLSRECORD: rstatus=U_EMRGLSRECORD_swap(record, torev); break; + case U_EMR_GLSBOUNDEDRECORD: rstatus=U_EMRGLSBOUNDEDRECORD_swap(record, torev); break; + case U_EMR_PIXELFORMAT: rstatus=U_EMRPIXELFORMAT_swap(record, torev); break; + case U_EMR_DRAWESCAPE: rstatus=U_EMRDRAWESCAPE_swap(record, torev); break; + case U_EMR_EXTESCAPE: rstatus=U_EMREXTESCAPE_swap(record, torev); break; + case U_EMR_UNDEF107: rstatus=U_EMRUNDEF107_swap(record, torev); break; + case U_EMR_SMALLTEXTOUT: rstatus=U_EMRSMALLTEXTOUT_swap(record, torev); break; + case U_EMR_FORCEUFIMAPPING: rstatus=U_EMRFORCEUFIMAPPING_swap(record, torev); break; + case U_EMR_NAMEDESCAPE: rstatus=U_EMRNAMEDESCAPE_swap(record, torev); break; + case U_EMR_COLORCORRECTPALETTE: rstatus=U_EMRCOLORCORRECTPALETTE_swap(record, torev); break; + case U_EMR_SETICMPROFILEA: rstatus=U_EMRSETICMPROFILEA_swap(record, torev); break; + case U_EMR_SETICMPROFILEW: rstatus=U_EMRSETICMPROFILEW_swap(record, torev); break; + case U_EMR_ALPHABLEND: rstatus=U_EMRALPHABLEND_swap(record, torev); break; + case U_EMR_SETLAYOUT: rstatus=U_EMRSETLAYOUT_swap(record, torev); break; + case U_EMR_TRANSPARENTBLT: rstatus=U_EMRTRANSPARENTBLT_swap(record, torev); break; + case U_EMR_UNDEF117: rstatus=U_EMRUNDEF117_swap(record, torev); break; + case U_EMR_GRADIENTFILL: rstatus=U_EMRGRADIENTFILL_swap(record, torev); break; + case U_EMR_SETLINKEDUFIS: rstatus=U_EMRSETLINKEDUFIS_swap(record, torev); break; + case U_EMR_SETTEXTJUSTIFICATION: rstatus=U_EMRSETTEXTJUSTIFICATION_swap(record, torev); break; + case U_EMR_COLORMATCHTOTARGETW: rstatus=U_EMRCOLORMATCHTOTARGETW_swap(record, torev); break; + case U_EMR_CREATECOLORSPACEW: rstatus=U_EMRCREATECOLORSPACEW_swap(record, torev); break; + default: rstatus=U_EMRNOTIMPLEMENTED_swap(record, torev); break; } //end of switch + if(!rstatus){ + return(rstatus); + } record += off; recnum++; } //end of while diff --git a/src/libuemf/uemf_endian.h b/src/libuemf/uemf_endian.h index 317968c34..9dbcec455 100644 --- a/src/libuemf/uemf_endian.h +++ b/src/libuemf/uemf_endian.h @@ -6,11 +6,11 @@ /* File: uemf_endian.h -Version: 0.0.3 -Date: 24-JUL-2012 +Version: 0.0.4 +Date: 24-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2012 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifndef _UEMF_ENDIAN_ @@ -49,6 +49,7 @@ extern "C" { //! \cond // prototypes int U_emf_endian(char *contents, size_t length, int torev); +int U_emf_record_sizeok(const char *record, const char *blimit, uint32_t *nSize, uint32_t *iType, int torev); //! \endcond #ifdef __cplusplus diff --git a/src/libuemf/uemf_print.c b/src/libuemf/uemf_print.c index aa574bd73..adcf54c0f 100644 --- a/src/libuemf/uemf_print.c +++ b/src/libuemf/uemf_print.c @@ -6,11 +6,11 @@ /* File: uemf_print.c -Version: 0.0.15 -Date: 17-OCT-2013 +Version: 0.0.18 +Date: 25-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2013 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifdef __cplusplus @@ -23,9 +23,12 @@ extern "C" { #include #include "uemf.h" #include "upmf_print.h" +#include "uemf_safe.h" //! \cond #define UNUSED(x) (void)(x) +/* This bit of code is used all over the place, so reduce it to a DEFINITION */ +#define IF_MEM_UNSAFE_PRINT_AND_RETURN(A,B,C) if(IS_MEM_UNSAFE(A,B,C)){printf(" record corruption HERE\n"); return; } /* one needed prototype */ void U_swap4(void *ul, unsigned int count); @@ -364,24 +367,28 @@ int bitmapinfoheader_print( /** \brief Print a Pointer to a U_BITMAPINFO object. \param Bmi Pointer to a U_BITMAPINFO object + \param blimit Pointer to the first byte after after this record This may be called from WMF _print routines, where problems could occur if the data was passed as the struct or a pointer to the struct, as the struct may not be aligned in memory. */ void bitmapinfo_print( - const char *Bmi + const char *Bmi, + const char *blimit ){ int i,k; int ClrUsed; U_RGBQUAD BmiColor; printf("BmiHeader: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(Bmi, offsetof(U_BITMAPINFO,bmiHeader) + sizeof(U_BITMAPINFOHEADER), blimit); ClrUsed = bitmapinfoheader_print(Bmi + offsetof(U_BITMAPINFO,bmiHeader)); if(ClrUsed){ - k= offsetof(U_BITMAPINFO,bmiColors); - for(i=0; irdh ); + IF_MEM_UNSAFE_PRINT_AND_RETURN(rd, sizeof(U_RGNDATAHEADER), blimit); + printf("rdh: "); rgndataheader_print(rd->rdh ); printf(" rects: "); if(rd->rdh.nCount){ rects = (PU_RECTL) &(rd->Buffer); + IF_MEM_UNSAFE_PRINT_AND_RETURN(rects, rd->rdh.nCount * sizeof(U_RECTL), blimit); for(i=0;irdh.nCount;i++){ printf("%d:",i); rectl_print(rects[i]); } @@ -559,11 +570,13 @@ void pixelformatdescriptor_print( \brief Print a Pointer to a U_EMRTEXT record \param emt Pointer to a U_EMRTEXT record \param record Pointer to the start of the record which contains this U_ERMTEXT + \param blimit Pointer to the first byte after after this record \param type 0 for 8 bit character, anything else for 16 */ void emrtext_print( const char *emt, const char *record, + const char *blimit, int type ){ unsigned int i,off; @@ -575,9 +588,11 @@ void emrtext_print( printf("offString:%u " ,pemt->offString ); if(pemt->offString){ if(!type){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(record, pemt->offString + pemt->nChars*sizeof(char), blimit); printf("string8:<%s> ",record + pemt->offString); } else { + IF_MEM_UNSAFE_PRINT_AND_RETURN(record, pemt->offString + pemt->nChars*2*sizeof(char), blimit); string = U_Utf16leToUtf8((uint16_t *)(record + pemt->offString), pemt->nChars, NULL); printf("string16:<%s> ",string); free(string); @@ -622,9 +637,15 @@ void core1_print(const char *name, const char *contents){ unsigned int i; UNUSED(name); PU_EMRPOLYLINETO pEmr = (PU_EMRPOLYLINETO) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYBEZIER)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" cptl: %d\n",pEmr->cptl ); printf(" Points: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(pEmr->aptl, pEmr->cptl*sizeof(U_POINTL), blimit); for(i=0;icptl; i++){ printf("[%d]:",i); pointl_print(pEmr->aptl[i]); } @@ -636,16 +657,23 @@ void core2_print(const char *name, const char *contents){ unsigned int i; UNUSED(name); PU_EMRPOLYPOLYGON pEmr = (PU_EMRPOLYPOLYGON) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYPOLYGON)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" nPolys: %d\n",pEmr->nPolys ); printf(" cptl: %d\n",pEmr->cptl ); printf(" Counts: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(pEmr->aPolyCounts, pEmr->nPolys*sizeof(U_POLYCOUNTS), blimit); for(i=0;inPolys; i++){ printf(" [%d]:%d ",i,pEmr->aPolyCounts[i] ); } printf("\n"); PU_POINTL paptl = (PU_POINTL)((char *)pEmr->aPolyCounts + sizeof(uint32_t)* pEmr->nPolys); printf(" Points: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(paptl, pEmr->cptl*sizeof(U_POINTL), blimit); for(i=0;icptl; i++){ printf(" [%d]:",i); pointl_print(paptl[i]); } @@ -656,7 +684,12 @@ void core2_print(const char *name, const char *contents){ // Functions with the same form starting with U_EMRSETMAPMODE_print void core3_print(const char *name, const char *label, const char *contents){ UNUSED(name); + /* access violation is impossible for these because there are no counts or offsets */ PU_EMRSETMAPMODE pEmr = (PU_EMRSETMAPMODE)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETMAPMODE)){ + printf(" record corruption HERE\n"); + return; + } if(!strcmp(label,"crColor:")){ printf(" %-15s ",label); colorref_print(*(U_COLORREF *)&(pEmr->iMode)); printf("\n"); } @@ -672,6 +705,10 @@ void core3_print(const char *name, const char *label, const char *contents){ void core4_print(const char *name, const char *contents){ UNUSED(name); PU_EMRELLIPSE pEmr = (PU_EMRELLIPSE)( contents); + if(pEmr->emr.nSize < sizeof(U_EMRELLIPSE)){ + printf(" record corruption HERE\n"); + return; + } printf(" rclBox: "); rectl_print(pEmr->rclBox); printf("\n"); } @@ -680,10 +717,16 @@ void core6_print(const char *name, const char *contents){ UNUSED(name); unsigned int i; PU_EMRPOLYBEZIER16 pEmr = (PU_EMRPOLYBEZIER16) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYBEZIER16)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" cpts: %d\n",pEmr->cpts ); printf(" Points: "); PU_POINT16 papts = (PU_POINT16)(&(pEmr->apts)); + IF_MEM_UNSAFE_PRINT_AND_RETURN(papts, pEmr->cpts*sizeof(U_POINT16), blimit); for(i=0; icpts; i++){ printf(" [%d]:",i); point16_print(papts[i]); } @@ -698,6 +741,10 @@ void core6_print(const char *name, const char *contents){ void core7_print(const char *name, const char *field1, const char *field2, const char *contents){ UNUSED(name); PU_EMRGENERICPAIR pEmr = (PU_EMRGENERICPAIR) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRGENERICPAIR)){ + printf(" record corruption HERE\n"); + return; + } if(*field2){ printf(" %-15s %d\n",field1,pEmr->pair.x); printf(" %-15s %d\n",field2,pEmr->pair.y); @@ -711,12 +758,13 @@ void core7_print(const char *name, const char *field1, const char *field2, const void core8_print(const char *name, const char *contents, int type){ UNUSED(name); PU_EMREXTTEXTOUTA pEmr = (PU_EMREXTTEXTOUTA) (contents); + const char *blimit = contents + pEmr->emr.nSize; printf(" iGraphicsMode: %u\n",pEmr->iGraphicsMode ); printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" exScale: %f\n",pEmr->exScale ); printf(" eyScale: %f\n",pEmr->eyScale ); printf(" emrtext: "); - emrtext_print(contents + sizeof(U_EMREXTTEXTOUTA) - sizeof(U_EMRTEXT),contents,type); + emrtext_print(contents + sizeof(U_EMREXTTEXTOUTA) - sizeof(U_EMRTEXT),contents,blimit,type); printf("\n"); } @@ -724,6 +772,10 @@ void core8_print(const char *name, const char *contents, int type){ void core9_print(const char *name, const char *contents){ UNUSED(name); PU_EMRARC pEmr = (PU_EMRARC) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRARC)){ + printf(" record corruption HERE\n"); + return; + } printf(" rclBox: "); rectl_print(pEmr->rclBox); printf("\n"); printf(" ptlStart: "); pointl_print(pEmr->ptlStart); printf("\n"); printf(" ptlEnd: "); pointl_print(pEmr->ptlEnd); printf("\n"); @@ -734,16 +786,23 @@ void core10_print(const char *name, const char *contents){ UNUSED(name); unsigned int i; PU_EMRPOLYPOLYLINE16 pEmr = (PU_EMRPOLYPOLYLINE16) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYPOLYLINE16)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" nPolys: %d\n",pEmr->nPolys ); printf(" cpts: %d\n",pEmr->cpts ); printf(" Counts: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(&(pEmr->aPolyCounts), pEmr->nPolys*sizeof(U_POLYCOUNTS), blimit); for(i=0;inPolys; i++){ printf(" [%d]:%d ",i,pEmr->aPolyCounts[i] ); } printf("\n"); printf(" Points: "); - PU_POINT16 papts = (PU_POINT16)((char *)pEmr->aPolyCounts + sizeof(uint32_t)* pEmr->nPolys); + PU_POINT16 papts = (PU_POINT16)((char *)pEmr->aPolyCounts + pEmr->nPolys*sizeof(U_POLYCOUNTS) ); + IF_MEM_UNSAFE_PRINT_AND_RETURN(papts, pEmr->cpts*sizeof(U_POINT16), blimit); for(i=0; icpts; i++){ printf(" [%d]:",i); point16_print(papts[i]); } @@ -754,20 +813,18 @@ void core10_print(const char *name, const char *contents){ // Functions with the same form starting with U_EMRINVERTRGN_print and U_EMRPAINTRGN_print, void core11_print(const char *name, const char *contents){ UNUSED(name); - unsigned int i,roff; PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRINVERTRGN)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" cbRgnData: %d\n",pEmr->cbRgnData); - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - roff=0; - i=1; - char *prd = (char *) &(pEmr->RgnData); - while(roff + sizeof(U_RGNDATAHEADER) < pEmr->cbRgnData){ // stop at end of the record 4*4 = header + 4*4=rect - printf(" RegionData:%d",i); - rgndata_print((PU_RGNDATA) (prd + roff)); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - printf("\n"); - } + printf(" RegionData:"); + const char *minptr = MAKE_MIN_PTR(((const char *) &pEmr->RgnData + pEmr->cbRgnData),blimit); + rgndata_print(pEmr->RgnData, minptr); + printf("\n"); } @@ -775,13 +832,18 @@ void core11_print(const char *name, const char *contents){ void core12_print(const char *name, const char *contents){ UNUSED(name); PU_EMRCREATEMONOBRUSH pEmr = (PU_EMRCREATEMONOBRUSH) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATEMONOBRUSH)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" ihBrush: %u\n",pEmr->ihBrush ); printf(" iUsage : %u\n",pEmr->iUsage ); printf(" offBmi : %u\n",pEmr->offBmi ); printf(" cbBmi : %u\n",pEmr->cbBmi ); if(pEmr->cbBmi){ printf(" bitmap:"); - bitmapinfo_print(contents + pEmr->offBmi); + bitmapinfo_print(contents + pEmr->offBmi, blimit); printf("\n"); } printf(" offBits: %u\n",pEmr->offBits ); @@ -792,6 +854,11 @@ void core12_print(const char *name, const char *contents){ void core13_print(const char *name, const char *contents){ UNUSED(name); PU_EMRALPHABLEND pEmr = (PU_EMRALPHABLEND) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRALPHABLEND)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" cDest: "); pointl_print(pEmr->cDest); printf("\n"); @@ -804,7 +871,7 @@ void core13_print(const char *name, const char *contents){ printf(" cbBmiSrc: %u\n",pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" bitmap:"); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n",pEmr->offBitsSrc ); @@ -839,6 +906,11 @@ void U_EMRHEADER_print(const char *contents){ int p1len; PU_EMRHEADER pEmr = (PU_EMRHEADER)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRHEADER)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" rclFrame: "); rectl_print( pEmr->rclFrame); printf("\n"); printf(" dSignature: 0x%8.8X\n", pEmr->dSignature ); @@ -850,6 +922,7 @@ void U_EMRHEADER_print(const char *contents){ printf(" nDescription: %d\n", pEmr->nDescription ); printf(" offDescription: %d\n", pEmr->offDescription); if(pEmr->offDescription){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->offDescription + pEmr->nDescription*2*sizeof(char), blimit); string = U_Utf16leToUtf8((uint16_t *)((char *) pEmr + pEmr->offDescription), pEmr->nDescription, NULL); printf(" Desc. A: %s\n",string); free(string); @@ -868,6 +941,7 @@ void U_EMRHEADER_print(const char *contents){ printf(" offPixelFormat: %d\n", pEmr->offPixelFormat); if(pEmr->cbPixelFormat){ printf(" PFD:"); + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->offPixelFormat + sizeof(U_PIXELFORMATDESCRIPTOR), blimit); pixelformatdescriptor_print( *(PU_PIXELFORMATDESCRIPTOR) (contents + pEmr->offPixelFormat)); printf("\n"); } @@ -997,6 +1071,10 @@ void U_EMRSETBRUSHORGEX_print(const char *contents){ */ void U_EMREOF_print(const char *contents){ PU_EMREOF pEmr = (PU_EMREOF)(contents); + if(pEmr->emr.nSize < sizeof(U_EMREOF)){ + printf(" record corruption HERE\n"); + return; + } printf(" cbPalEntries: %u\n", pEmr->cbPalEntries ); printf(" offPalEntries: %u\n", pEmr->offPalEntries); if(pEmr->cbPalEntries){ @@ -1014,6 +1092,10 @@ void U_EMREOF_print(const char *contents){ */ void U_EMRSETPIXELV_print(const char *contents){ PU_EMRSETPIXELV pEmr = (PU_EMRSETPIXELV)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETPIXELV)){ + printf(" record corruption HERE\n"); + return; + } printf(" ptlPixel: "); pointl_print( pEmr->ptlPixel); printf("\n"); printf(" crColor: "); colorref_print(pEmr->crColor); printf("\n"); } @@ -1026,6 +1108,10 @@ void U_EMRSETPIXELV_print(const char *contents){ */ void U_EMRSETMAPPERFLAGS_print(const char *contents){ PU_EMRSETMAPPERFLAGS pEmr = (PU_EMRSETMAPPERFLAGS)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETMAPPERFLAGS)){ + printf(" record corruption HERE\n"); + return; + } printf(" dwFlags: 0x%8.8X\n",pEmr->dwFlags); } @@ -1091,6 +1177,10 @@ void U_EMRSETTEXTALIGN_print(const char *contents){ */ void U_EMRSETCOLORADJUSTMENT_print(const char *contents){ PU_EMRSETCOLORADJUSTMENT pEmr = (PU_EMRSETCOLORADJUSTMENT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETCOLORADJUSTMENT)){ + printf(" record corruption HERE\n"); + return; + } printf(" ColorAdjustment:"); coloradjustment_print(pEmr->ColorAdjustment); printf("\n"); @@ -1203,6 +1293,10 @@ void U_EMRRESTOREDC_print(const char *contents){ */ void U_EMRSETWORLDTRANSFORM_print(const char *contents){ PU_EMRSETWORLDTRANSFORM pEmr = (PU_EMRSETWORLDTRANSFORM)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETWORLDTRANSFORM)){ + printf(" record corruption HERE\n"); + return; + } printf(" xform:"); xform_print(pEmr->xform); printf("\n"); @@ -1215,6 +1309,10 @@ void U_EMRSETWORLDTRANSFORM_print(const char *contents){ */ void U_EMRMODIFYWORLDTRANSFORM_print(const char *contents){ PU_EMRMODIFYWORLDTRANSFORM pEmr = (PU_EMRMODIFYWORLDTRANSFORM)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRMODIFYWORLDTRANSFORM)){ + printf(" record corruption HERE\n"); + return; + } printf(" xform:"); xform_print(pEmr->xform); printf("\n"); @@ -1228,6 +1326,10 @@ void U_EMRMODIFYWORLDTRANSFORM_print(const char *contents){ */ void U_EMRSELECTOBJECT_print(const char *contents){ PU_EMRSELECTOBJECT pEmr = (PU_EMRSELECTOBJECT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSELECTOBJECT)){ + printf(" record corruption HERE\n"); + return; + } if(pEmr->ihObject & U_STOCK_OBJECT){ printf(" StockObject: 0x%8.8X\n", pEmr->ihObject ); } @@ -1243,6 +1345,10 @@ void U_EMRSELECTOBJECT_print(const char *contents){ */ void U_EMRCREATEPEN_print(const char *contents){ PU_EMRCREATEPEN pEmr = (PU_EMRCREATEPEN)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATEPEN)){ + printf(" record corruption HERE\n"); + return; + } printf(" ihPen: %u\n", pEmr->ihPen ); printf(" lopn: "); logpen_print(pEmr->lopn); printf("\n"); } @@ -1254,6 +1360,10 @@ void U_EMRCREATEPEN_print(const char *contents){ */ void U_EMRCREATEBRUSHINDIRECT_print(const char *contents){ PU_EMRCREATEBRUSHINDIRECT pEmr = (PU_EMRCREATEBRUSHINDIRECT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATEBRUSHINDIRECT)){ + printf(" record corruption HERE\n"); + return; + } printf(" ihBrush: %u\n", pEmr->ihBrush ); printf(" lb: "); logbrush_print(pEmr->lb); printf("\n"); } @@ -1265,6 +1375,10 @@ void U_EMRCREATEBRUSHINDIRECT_print(const char *contents){ */ void U_EMRDELETEOBJECT_print(const char *contents){ PU_EMRDELETEOBJECT pEmr = (PU_EMRDELETEOBJECT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRDELETEOBJECT)){ + printf(" record corruption HERE\n"); + return; + } printf(" ihObject: %u\n", pEmr->ihObject ); } @@ -1275,6 +1389,10 @@ void U_EMRDELETEOBJECT_print(const char *contents){ */ void U_EMRANGLEARC_print(const char *contents){ PU_EMRANGLEARC pEmr = (PU_EMRANGLEARC)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRANGLEARC)){ + printf(" record corruption HERE\n"); + return; + } printf(" ptlCenter: "), pointl_print(pEmr->ptlCenter ); printf("\n"); printf(" nRadius: %u\n", pEmr->nRadius ); printf(" eStartAngle: %f\n", pEmr->eStartAngle ); @@ -1306,6 +1424,10 @@ void U_EMRRECTANGLE_print(const char *contents){ */ void U_EMRROUNDRECT_print(const char *contents){ PU_EMRROUNDRECT pEmr = (PU_EMRROUNDRECT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRROUNDRECT)){ + printf(" record corruption HERE\n"); + return; + } printf(" rclBox: "), rectl_print(pEmr->rclBox ); printf("\n"); printf(" szlCorner: "), sizel_print(pEmr->szlCorner ); printf("\n"); } @@ -1353,6 +1475,10 @@ void U_EMRSELECTPALETTE_print(const char *contents){ */ void U_EMRCREATEPALETTE_print(const char *contents){ PU_EMRCREATEPALETTE pEmr = (PU_EMRCREATEPALETTE)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATEPALETTE)){ + printf(" record corruption HERE\n"); + return; + } printf(" ihPal: %u\n",pEmr->ihPal); printf(" lgpl: "), logpalette_print( (PU_LOGPALETTE)&(pEmr->lgpl) ); printf("\n"); } @@ -1365,12 +1491,18 @@ void U_EMRCREATEPALETTE_print(const char *contents){ void U_EMRSETPALETTEENTRIES_print(const char *contents){ unsigned int i; PU_EMRSETPALETTEENTRIES pEmr = (PU_EMRSETPALETTEENTRIES)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETPALETTEENTRIES)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" ihPal: %u\n",pEmr->ihPal); printf(" iStart: %u\n",pEmr->iStart); printf(" cEntries: %u\n",pEmr->cEntries); if(pEmr->cEntries){ printf(" PLTEntries:"); PU_LOGPLTNTRY aPalEntries = (PU_LOGPLTNTRY) &(pEmr->aPalEntries); + IF_MEM_UNSAFE_PRINT_AND_RETURN(aPalEntries, pEmr->cEntries*sizeof(U_LOGPLTNTRY), blimit); for(i=0; icEntries; i++){ printf("%d:",i); logpltntry_print(aPalEntries[i]); } @@ -1403,6 +1535,10 @@ void U_EMRREALIZEPALETTE_print(const char *contents){ */ void U_EMREXTFLOODFILL_print(const char *contents){ PU_EMREXTFLOODFILL pEmr = (PU_EMREXTFLOODFILL)(contents); + if(pEmr->emr.nSize < sizeof(U_EMREXTFLOODFILL)){ + printf(" record corruption HERE\n"); + return; + } printf(" ptlStart: "); pointl_print(pEmr->ptlStart); printf("\n"); printf(" crColor: "); colorref_print(pEmr->crColor); printf("\n"); printf(" iMode: %u\n",pEmr->iMode); @@ -1434,17 +1570,25 @@ void U_EMRARCTO_print(const char *contents){ void U_EMRPOLYDRAW_print(const char *contents){ unsigned int i; PU_EMRPOLYDRAW pEmr = (PU_EMRPOLYDRAW)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYDRAW)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" cptl: %d\n",pEmr->cptl ); printf(" Points: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(pEmr->aptl, pEmr->cptl*sizeof(U_POINTL), blimit); for(i=0;icptl; i++){ printf(" [%d]:",i); pointl_print(pEmr->aptl[i]); } printf("\n"); printf(" Types: "); + const char *abTypes = (const char *) pEmr->aptl + pEmr->cptl*sizeof(U_POINTL); + IF_MEM_UNSAFE_PRINT_AND_RETURN(abTypes, pEmr->cptl, blimit); for(i=0;icptl; i++){ - printf(" [%d]:%u ",i,pEmr->abTypes[i]); + printf(" [%d]:%u ",i,((uint8_t *)abTypes)[i]); } printf("\n"); } @@ -1565,12 +1709,11 @@ void U_EMRABORTPATH_print(const char *contents){ /** \brief Print a pointer to a U_EMR_COMMENT record. \param contents pointer to a location in memory holding the comment record - \param blimit size in bytes of the comment record - \param off offset in bytes to the first byte in this record + \param off offset in bytes to the first byte in this record (needed for EMF+ record printing) EMF+ records, if any, are stored in EMF comment records. */ -void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off){ +void U_EMRCOMMENT_print(const char *contents, size_t off){ char *string; char *src; uint32_t cIdent,cIdent2,cbData; @@ -1579,21 +1722,30 @@ void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off){ static int recnum=0; PU_EMRCOMMENT pEmr = (PU_EMRCOMMENT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCOMMENT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; /* There are several different types of comments */ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, sizeof(U_EMRCOMMENT), blimit); cbData = pEmr->cbData; printf(" cbData: %d\n",cbData ); + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, sizeof(U_EMR) + sizeof(U_CBDATA) + cbData, blimit); src = (char *)&(pEmr->Data); // default if(cbData >= 4){ /* Since the comment is just a big bag of bytes the emf endian code cannot safely touch - any of its payload. This is the only record type with that limitation. Try to determine + any of its payload. This is the only record type with that limitation. So the record + may appear at this stage with the wrong endianness. Try to determine what the contents are even if more byte swapping is required. */ cIdent = *(uint32_t *)(src); if(U_BYTE_SWAP){ U_swap4(&(cIdent),1); } if( cIdent == U_EMR_COMMENT_PUBLIC ){ printf(" cIdent: Public\n"); PU_EMRCOMMENT_PUBLIC pEmrp = (PU_EMRCOMMENT_PUBLIC) pEmr; + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, sizeof(U_EMRCOMMENT_PUBLIC), blimit); cIdent2 = pEmrp->pcIdent; if(U_BYTE_SWAP){ U_swap4(&(cIdent2),1); } printf(" pcIdent: 0x%8.8x\n",cIdent2); @@ -1603,6 +1755,7 @@ void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off){ else if(cIdent == U_EMR_COMMENT_SPOOL ){ printf(" cIdent: Spool\n"); PU_EMRCOMMENT_SPOOL pEmrs = (PU_EMRCOMMENT_SPOOL) pEmr; + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, sizeof(U_EMRCOMMENT_SPOOL), blimit); cIdent2 = pEmrs->esrIdent; if(U_BYTE_SWAP){ U_swap4(&(cIdent2),1); } printf(" esrIdent: 0x%8.8x\n",cIdent2); @@ -1612,11 +1765,16 @@ void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off){ else if(cIdent == U_EMR_COMMENT_EMFPLUSRECORD){ printf(" cIdent: EMF+\n"); PU_EMRCOMMENT_EMFPLUS pEmrpl = (PU_EMRCOMMENT_EMFPLUS) pEmr; + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, sizeof(U_EMRCOMMENT_EMFPLUS), blimit); src = (char *)&(pEmrpl->Data); loff = 16; /* Header size of the header part of an EMF+ comment record */ while(loff < cbData + 12){ // EMF+ records may not fill the entire comment, cbData value includes cIdent, but not U_EMR or cbData recsize = U_pmf_onerec_print(src, blimit, recnum, loff + off); - if(recsize<=0)break; + if(recsize==0){ break; } + else if(recsize<0){ + printf(" record corruption HERE\n"); + return; + } loff += recsize; src += recsize; recnum++; @@ -1642,19 +1800,17 @@ void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off){ \param contents pointer to a buffer holding all EMR records */ void U_EMRFILLRGN_print(const char *contents){ - int i,roff; PU_EMRFILLRGN pEmr = (PU_EMRFILLRGN)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRFILLRGN)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" cbRgnData: %u\n",pEmr->cbRgnData); printf(" ihBrush: %u\n",pEmr->ihBrush); - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - roff=0; - i=1; - char *prd = (char *) &(pEmr->RgnData); - while(roff + sizeof(U_RGNDATAHEADER) < pEmr->emr.nSize){ // up to the end of the record - printf(" RegionData[%d]: ",i); rgndata_print((PU_RGNDATA) (prd + roff)); printf("\n"); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + const char *minptr = MAKE_MIN_PTR(((const char *) &pEmr->RgnData + pEmr->cbRgnData + sizeof(U_RGNDATAHEADER)),blimit); + printf(" RegionData: "); rgndata_print(pEmr->RgnData, minptr); printf("\n"); } // U_EMRFRAMERGN 72 @@ -1663,20 +1819,18 @@ void U_EMRFILLRGN_print(const char *contents){ \param contents pointer to a buffer holding all EMR records */ void U_EMRFRAMERGN_print(const char *contents){ - int i,roff; PU_EMRFRAMERGN pEmr = (PU_EMRFRAMERGN)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRFRAMERGN)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print(pEmr->rclBounds); printf("\n"); printf(" cbRgnData: %u\n",pEmr->cbRgnData); printf(" ihBrush: %u\n",pEmr->ihBrush); printf(" szlStroke: "), sizel_print(pEmr->szlStroke ); printf("\n"); - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - roff=0; - i=1; - char *prd = (char *) &(pEmr->RgnData); - while(roff + sizeof(U_RGNDATAHEADER) < pEmr->emr.nSize){ // up to the end of the record - printf(" RegionData[%d]: ",i); rgndata_print((PU_RGNDATA) (prd + roff)); printf("\n"); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + const char *minptr = MAKE_MIN_PTR(((const char *) &pEmr->RgnData + pEmr->cbRgnData),blimit); + printf(" RegionData: "); rgndata_print(pEmr->RgnData, minptr); printf("\n"); } // U_EMRINVERTRGN 73 @@ -1703,17 +1857,16 @@ void U_EMRPAINTRGN_print(const char *contents){ \param contents pointer to a buffer holding all EMR records */ void U_EMREXTSELECTCLIPRGN_print(const char *contents){ - int i,roff; PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN) (contents); + if(pEmr->emr.nSize < sizeof(U_EMREXTSELECTCLIPRGN)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" cbRgnData: %u\n",pEmr->cbRgnData); printf(" iMode: %u\n",pEmr->iMode); - // This one is a pain since each RGNDATA may be a different size, so it isn't possible to index through them. - char *prd = (char *) &(pEmr->RgnData); - i=roff=0; - while(roff + sizeof(U_RGNDATAHEADER) < pEmr->cbRgnData){ // stop at end of the record 4*4 = header + 4*4=rect - printf(" RegionData[%d]: ",i++); rgndata_print((PU_RGNDATA) (prd + roff)); printf("\n"); - roff += (((PU_RGNDATA)prd)->rdh.dwSize + ((PU_RGNDATA)prd)->rdh.nRgnSize - 16); - } + const char *minptr = MAKE_MIN_PTR(((const char *) &pEmr->RgnData + pEmr->cbRgnData),blimit); + printf(" RegionData: "); rgndata_print(pEmr->RgnData, minptr); printf("\n"); } // U_EMRBITBLT 76 @@ -1723,6 +1876,11 @@ void U_EMREXTSELECTCLIPRGN_print(const char *contents){ */ void U_EMRBITBLT_print(const char *contents){ PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRBITBLT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" cDest: "); pointl_print(pEmr->cDest); printf("\n"); @@ -1735,7 +1893,7 @@ void U_EMRBITBLT_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1749,6 +1907,11 @@ void U_EMRBITBLT_print(const char *contents){ */ void U_EMRSTRETCHBLT_print(const char *contents){ PU_EMRSTRETCHBLT pEmr = (PU_EMRSTRETCHBLT) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRSTRETCHBLT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" cDest: "); pointl_print(pEmr->cDest); printf("\n"); @@ -1761,7 +1924,7 @@ void U_EMRSTRETCHBLT_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1776,6 +1939,11 @@ void U_EMRSTRETCHBLT_print(const char *contents){ */ void U_EMRMASKBLT_print(const char *contents){ PU_EMRMASKBLT pEmr = (PU_EMRMASKBLT) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRMASKBLT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" cDest: "); pointl_print(pEmr->cDest); printf("\n"); @@ -1788,7 +1956,7 @@ void U_EMRMASKBLT_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" Src bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1799,7 +1967,7 @@ void U_EMRMASKBLT_print(const char *contents){ printf(" cbBmiMask: %u\n", pEmr->cbBmiMask ); if(pEmr->cbBmiMask){ printf(" Mask bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiMask); + bitmapinfo_print(contents + pEmr->offBmiMask, blimit); printf("\n"); } printf(" offBitsMask: %u\n", pEmr->offBitsMask ); @@ -1813,6 +1981,11 @@ void U_EMRMASKBLT_print(const char *contents){ */ void U_EMRPLGBLT_print(const char *contents){ PU_EMRPLGBLT pEmr = (PU_EMRPLGBLT) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRPLGBLT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" aptlDst(UL): "); pointl_print(pEmr->aptlDst[0]); printf("\n"); printf(" aptlDst(UR): "); pointl_print(pEmr->aptlDst[1]); printf("\n"); @@ -1826,7 +1999,7 @@ void U_EMRPLGBLT_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" Src bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1837,7 +2010,7 @@ void U_EMRPLGBLT_print(const char *contents){ printf(" cbBmiMask: %u\n", pEmr->cbBmiMask ); if(pEmr->cbBmiMask){ printf(" Mask bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiMask); + bitmapinfo_print(contents + pEmr->offBmiMask, blimit); printf("\n"); } printf(" offBitsMask: %u\n", pEmr->offBitsMask ); @@ -1851,6 +2024,11 @@ void U_EMRPLGBLT_print(const char *contents){ */ void U_EMRSETDIBITSTODEVICE_print(const char *contents){ PU_EMRSETDIBITSTODEVICE pEmr = (PU_EMRSETDIBITSTODEVICE) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRSETDIBITSTODEVICE)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" Src: "); pointl_print(pEmr->Src); printf("\n"); @@ -1859,7 +2037,7 @@ void U_EMRSETDIBITSTODEVICE_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" Src bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1876,6 +2054,11 @@ void U_EMRSETDIBITSTODEVICE_print(const char *contents){ */ void U_EMRSTRETCHDIBITS_print(const char *contents){ PU_EMRSTRETCHDIBITS pEmr = (PU_EMRSTRETCHDIBITS) (contents); + if(pEmr->emr.nSize < sizeof(U_EMRSTRETCHDIBITS)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" Src: "); pointl_print(pEmr->Src); printf("\n"); @@ -1884,7 +2067,7 @@ void U_EMRSTRETCHDIBITS_print(const char *contents){ printf(" cbBmiSrc: %u\n", pEmr->cbBmiSrc ); if(pEmr->cbBmiSrc){ printf(" Src bitmap: "); - bitmapinfo_print(contents + pEmr->offBmiSrc); + bitmapinfo_print(contents + pEmr->offBmiSrc, blimit); printf("\n"); } printf(" offBitsSrc: %u\n", pEmr->offBitsSrc ); @@ -1901,12 +2084,19 @@ void U_EMRSTRETCHDIBITS_print(const char *contents){ */ void U_EMREXTCREATEFONTINDIRECTW_print(const char *contents){ PU_EMREXTCREATEFONTINDIRECTW pEmr = (PU_EMREXTCREATEFONTINDIRECTW) (contents); + if(pEmr->emr.nSize < U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT){ // smallest variant + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" ihFont: %u\n",pEmr->ihFont ); printf(" Font: "); - if(pEmr->emr.nSize == sizeof(U_EMREXTCREATEFONTINDIRECTW)){ // holds logfont_panose + if(pEmr->emr.nSize == U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT_PANOSE){ // holds logfont_panose + IF_MEM_UNSAFE_PRINT_AND_RETURN(&(pEmr->elfw), sizeof(U_PANOSE), blimit); logfont_panose_print(pEmr->elfw); } - else { // holds logfont + else { // holds logfont or logfontExDv. The latter isn't supported but it starts with logfont, so use that + IF_MEM_UNSAFE_PRINT_AND_RETURN(&(pEmr->elfw), sizeof(U_LOGFONT), blimit); logfont_print( *(PU_LOGFONT) &(pEmr->elfw)); } printf("\n"); @@ -2002,17 +2192,25 @@ void U_EMRPOLYPOLYGON16_print(const char *contents){ void U_EMRPOLYDRAW16_print(const char *contents){ unsigned int i; PU_EMRPOLYDRAW16 pEmr = (PU_EMRPOLYDRAW16)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRPOLYDRAW16)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" cpts: %d\n",pEmr->cpts ); printf(" Points: "); + IF_MEM_UNSAFE_PRINT_AND_RETURN(pEmr->apts, pEmr->cpts*sizeof(U_POINT16), blimit); for(i=0;icpts; i++){ printf(" [%d]:",i); point16_print(pEmr->apts[i]); } printf("\n"); printf(" Types: "); + const char *abTypes = (const char *) pEmr->apts + pEmr->cpts*sizeof(U_POINT16); + IF_MEM_UNSAFE_PRINT_AND_RETURN(abTypes, pEmr->cpts, blimit); for(i=0;icpts; i++){ - printf(" [%d]:%u ",i,pEmr->abTypes[i]); + printf(" [%d]:%u ",i,((uint8_t *)abTypes)[i]); } printf("\n"); } @@ -2043,12 +2241,17 @@ void U_EMRCREATEDIBPATTERNBRUSHPT_print(const char *contents){ */ void U_EMREXTCREATEPEN_print(const char *contents){ PU_EMREXTCREATEPEN pEmr = (PU_EMREXTCREATEPEN)(contents); + if(pEmr->emr.nSize < sizeof(U_EMREXTCREATEPEN)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" ihPen: %u\n", pEmr->ihPen ); printf(" offBmi: %u\n", pEmr->offBmi ); printf(" cbBmi: %u\n", pEmr->cbBmi ); if(pEmr->cbBmi){ printf(" bitmap: "); - bitmapinfo_print(contents + pEmr->offBmi); + bitmapinfo_print(contents + pEmr->offBmi, blimit); printf("\n"); } printf(" offBits: %u\n", pEmr->offBits ); @@ -2077,6 +2280,10 @@ void U_EMRSETICMMODE_print(const char *contents){ */ void U_EMRCREATECOLORSPACE_print(const char *contents){ PU_EMRCREATECOLORSPACE pEmr = (PU_EMRCREATECOLORSPACE)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATECOLORSPACE)){ + printf(" record corruption HERE\n"); + return; + } printf(" ihCS: %u\n", pEmr->ihCS ); printf(" ColorSpace: "); logcolorspacea_print(pEmr->lcs); printf("\n"); } @@ -2111,6 +2318,12 @@ void U_EMRDELETECOLORSPACE_print(const char *contents){ */ void U_EMRPIXELFORMAT_print(const char *contents){ PU_EMRPIXELFORMAT pEmr = (PU_EMRPIXELFORMAT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRPIXELFORMAT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; + IF_MEM_UNSAFE_PRINT_AND_RETURN(&(pEmr->pfd), sizeof(U_PIXELFORMATDESCRIPTOR), blimit); printf(" Pfd: "); pixelformatdescriptor_print(pEmr->pfd); printf("\n"); } @@ -2130,6 +2343,11 @@ void U_EMRSMALLTEXTOUT_print(const char *contents){ int roff; char *string; PU_EMRSMALLTEXTOUT pEmr = (PU_EMRSMALLTEXTOUT)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRSMALLTEXTOUT)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" Dest: "); pointl_print(pEmr->Dest); printf("\n"); printf(" cChars: %u\n", pEmr->cChars ); printf(" fuOptions: 0x%8.8X\n", pEmr->fuOptions ); @@ -2138,14 +2356,17 @@ void U_EMRSMALLTEXTOUT_print(const char *contents){ printf(" eyScale: %f\n", pEmr->eyScale ); roff = sizeof(U_EMRSMALLTEXTOUT); //offset to the start of the variable fields if(!(pEmr->fuOptions & U_ETO_NO_RECT)){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, roff, blimit); printf(" rclBounds: "); rectl_print( *(PU_RECTL) (contents + roff)); printf("\n"); roff += sizeof(U_RECTL); } if(pEmr->fuOptions & U_ETO_SMALL_CHARS){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, roff + pEmr->cChars*sizeof(char), blimit); printf(" Text8: <%.*s>\n",pEmr->cChars,contents+roff); /* May not be null terminated */ } else { string = U_Utf16leToUtf8((uint16_t *)(contents+roff), pEmr->cChars, NULL); + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, roff + pEmr->cChars*2*sizeof(char), blimit); printf(" Text16: <%s>\n",contents+roff); free(string); } @@ -2199,12 +2420,18 @@ void U_EMRTRANSPARENTBLT_print(const char *contents){ void U_EMRGRADIENTFILL_print(const char *contents){ unsigned int i; PU_EMRGRADIENTFILL pEmr = (PU_EMRGRADIENTFILL)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRGRADIENTFILL)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" rclBounds: "); rectl_print( pEmr->rclBounds); printf("\n"); printf(" nTriVert: %u\n", pEmr->nTriVert ); printf(" nGradObj: %u\n", pEmr->nGradObj ); printf(" ulMode: %u\n", pEmr->ulMode ); contents += sizeof(U_EMRGRADIENTFILL); if(pEmr->nTriVert){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->nTriVert*sizeof(U_TRIVERTEX), blimit); printf(" TriVert: "); for(i=0; inTriVert; i++, contents+=sizeof(U_TRIVERTEX)){ trivertex_print(*(PU_TRIVERTEX)(contents)); @@ -2214,12 +2441,14 @@ void U_EMRGRADIENTFILL_print(const char *contents){ if(pEmr->nGradObj){ printf(" GradObj: "); if( pEmr->ulMode == U_GRADIENT_FILL_TRIANGLE){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->nGradObj*sizeof(U_GRADIENT3), blimit); for(i=0; inGradObj; i++, contents+=sizeof(U_GRADIENT3)){ gradient3_print(*(PU_GRADIENT3)(contents)); } } else if(pEmr->ulMode == U_GRADIENT_FILL_RECT_H || pEmr->ulMode == U_GRADIENT_FILL_RECT_V){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->nGradObj*sizeof(U_GRADIENT4), blimit); for(i=0; inGradObj; i++, contents+=sizeof(U_GRADIENT4)){ gradient4_print(*(PU_GRADIENT4)(contents)); } @@ -2244,12 +2473,18 @@ void U_EMRGRADIENTFILL_print(const char *contents){ void U_EMRCREATECOLORSPACEW_print(const char *contents){ unsigned int i; PU_EMRCREATECOLORSPACEW pEmr = (PU_EMRCREATECOLORSPACEW)(contents); + if(pEmr->emr.nSize < sizeof(U_EMRCREATECOLORSPACEW)){ + printf(" record corruption HERE\n"); + return; + } + const char *blimit = contents + pEmr->emr.nSize; printf(" ihCS: %u\n", pEmr->ihCS ); printf(" ColorSpace: "); logcolorspacew_print(pEmr->lcs); printf("\n"); printf(" dwFlags: 0x%8.8X\n", pEmr->dwFlags ); printf(" cbData: %u\n", pEmr->cbData ); printf(" Data(hexvalues):"); if(pEmr->dwFlags & 1){ + IF_MEM_UNSAFE_PRINT_AND_RETURN(contents, pEmr->cbData, blimit); for(i=0; icbData; i++){ printf("[%d]:%2.2X ",i,pEmr->Data[i]); } @@ -2267,145 +2502,154 @@ void U_EMRCREATECOLORSPACEW_print(const char *contents){ */ int U_emf_onerec_print(const char *contents, const char *blimit, int recnum, size_t off){ PU_ENHMETARECORD lpEMFR = (PU_ENHMETARECORD)(contents + off); - unsigned int size; - - printf("%-30srecord:%5d type:%-4d offset:%8d rsize:%8d\n",U_emr_names(lpEMFR->iType),recnum,lpEMFR->iType,(int) off,lpEMFR->nSize); - size = lpEMFR->nSize; - contents += off; + uint32_t nSize; + uint32_t iType; + const char *record = contents + off; - /* Check that the record size is OK, abort if not. - Pointer math might wrap, so check both sides of the range */ - if(size < sizeof(U_EMR) || - contents + size - 1 >= blimit || - contents + size - 1 < contents)return(-1); + if(record < contents)return(-1); // offset wrapped + /* Check that COMMON data in record can be touched without an access violation. If it cannot be + this is either a corrupt EMF or one engineered to cause a buffer overflow. Pointer math + could wrap so check both sides of the range. + */ + if(!U_emf_record_sizeok(record, blimit, &nSize, &iType, 1))return(-1); + + printf("%-30srecord:%5d type:%-4d offset:%8d rsize:%8d\n",U_emr_names(iType),recnum,iType,(int) off,nSize); + fflush(stdout); + + /* print the record header before checking further. + Note if this is a corrupt record, but continue anyway. + The _print routines will stop at the actual problem and print another corrupt message. + */ + if(!U_emf_record_safe(record)){printf("WARNING: Corrupt record. Emitting fields above the problem.\n");} + switch (lpEMFR->iType) { - case U_EMR_HEADER: U_EMRHEADER_print(contents); break; - case U_EMR_POLYBEZIER: U_EMRPOLYBEZIER_print(contents); break; - case U_EMR_POLYGON: U_EMRPOLYGON_print(contents); break; - case U_EMR_POLYLINE: U_EMRPOLYLINE_print(contents); break; - case U_EMR_POLYBEZIERTO: U_EMRPOLYBEZIERTO_print(contents); break; - case U_EMR_POLYLINETO: U_EMRPOLYLINETO_print(contents); break; - case U_EMR_POLYPOLYLINE: U_EMRPOLYPOLYLINE_print(contents); break; - case U_EMR_POLYPOLYGON: U_EMRPOLYPOLYGON_print(contents); break; - case U_EMR_SETWINDOWEXTEX: U_EMRSETWINDOWEXTEX_print(contents); break; - case U_EMR_SETWINDOWORGEX: U_EMRSETWINDOWORGEX_print(contents); break; - case U_EMR_SETVIEWPORTEXTEX: U_EMRSETVIEWPORTEXTEX_print(contents); break; - case U_EMR_SETVIEWPORTORGEX: U_EMRSETVIEWPORTORGEX_print(contents); break; - case U_EMR_SETBRUSHORGEX: U_EMRSETBRUSHORGEX_print(contents); break; - case U_EMR_EOF: U_EMREOF_print(contents); size=0; break; - case U_EMR_SETPIXELV: U_EMRSETPIXELV_print(contents); break; - case U_EMR_SETMAPPERFLAGS: U_EMRSETMAPPERFLAGS_print(contents); break; - case U_EMR_SETMAPMODE: U_EMRSETMAPMODE_print(contents); break; - case U_EMR_SETBKMODE: U_EMRSETBKMODE_print(contents); break; - case U_EMR_SETPOLYFILLMODE: U_EMRSETPOLYFILLMODE_print(contents); break; - case U_EMR_SETROP2: U_EMRSETROP2_print(contents); break; - case U_EMR_SETSTRETCHBLTMODE: U_EMRSETSTRETCHBLTMODE_print(contents); break; - case U_EMR_SETTEXTALIGN: U_EMRSETTEXTALIGN_print(contents); break; - case U_EMR_SETCOLORADJUSTMENT: U_EMRSETCOLORADJUSTMENT_print(contents); break; - case U_EMR_SETTEXTCOLOR: U_EMRSETTEXTCOLOR_print(contents); break; - case U_EMR_SETBKCOLOR: U_EMRSETBKCOLOR_print(contents); break; - case U_EMR_OFFSETCLIPRGN: U_EMROFFSETCLIPRGN_print(contents); break; - case U_EMR_MOVETOEX: U_EMRMOVETOEX_print(contents); break; - case U_EMR_SETMETARGN: U_EMRSETMETARGN_print(contents); break; - case U_EMR_EXCLUDECLIPRECT: U_EMREXCLUDECLIPRECT_print(contents); break; - case U_EMR_INTERSECTCLIPRECT: U_EMRINTERSECTCLIPRECT_print(contents); break; - case U_EMR_SCALEVIEWPORTEXTEX: U_EMRSCALEVIEWPORTEXTEX_print(contents); break; - case U_EMR_SCALEWINDOWEXTEX: U_EMRSCALEWINDOWEXTEX_print(contents); break; - case U_EMR_SAVEDC: U_EMRSAVEDC_print(contents); break; - case U_EMR_RESTOREDC: U_EMRRESTOREDC_print(contents); break; - case U_EMR_SETWORLDTRANSFORM: U_EMRSETWORLDTRANSFORM_print(contents); break; - case U_EMR_MODIFYWORLDTRANSFORM: U_EMRMODIFYWORLDTRANSFORM_print(contents); break; - case U_EMR_SELECTOBJECT: U_EMRSELECTOBJECT_print(contents); break; - case U_EMR_CREATEPEN: U_EMRCREATEPEN_print(contents); break; - case U_EMR_CREATEBRUSHINDIRECT: U_EMRCREATEBRUSHINDIRECT_print(contents); break; - case U_EMR_DELETEOBJECT: U_EMRDELETEOBJECT_print(contents); break; - case U_EMR_ANGLEARC: U_EMRANGLEARC_print(contents); break; - case U_EMR_ELLIPSE: U_EMRELLIPSE_print(contents); break; - case U_EMR_RECTANGLE: U_EMRRECTANGLE_print(contents); break; - case U_EMR_ROUNDRECT: U_EMRROUNDRECT_print(contents); break; - case U_EMR_ARC: U_EMRARC_print(contents); break; - case U_EMR_CHORD: U_EMRCHORD_print(contents); break; - case U_EMR_PIE: U_EMRPIE_print(contents); break; - case U_EMR_SELECTPALETTE: U_EMRSELECTPALETTE_print(contents); break; - case U_EMR_CREATEPALETTE: U_EMRCREATEPALETTE_print(contents); break; - case U_EMR_SETPALETTEENTRIES: U_EMRSETPALETTEENTRIES_print(contents); break; - case U_EMR_RESIZEPALETTE: U_EMRRESIZEPALETTE_print(contents); break; - case U_EMR_REALIZEPALETTE: U_EMRREALIZEPALETTE_print(contents); break; - case U_EMR_EXTFLOODFILL: U_EMREXTFLOODFILL_print(contents); break; - case U_EMR_LINETO: U_EMRLINETO_print(contents); break; - case U_EMR_ARCTO: U_EMRARCTO_print(contents); break; - case U_EMR_POLYDRAW: U_EMRPOLYDRAW_print(contents); break; - case U_EMR_SETARCDIRECTION: U_EMRSETARCDIRECTION_print(contents); break; - case U_EMR_SETMITERLIMIT: U_EMRSETMITERLIMIT_print(contents); break; - case U_EMR_BEGINPATH: U_EMRBEGINPATH_print(contents); break; - case U_EMR_ENDPATH: U_EMRENDPATH_print(contents); break; - case U_EMR_CLOSEFIGURE: U_EMRCLOSEFIGURE_print(contents); break; - case U_EMR_FILLPATH: U_EMRFILLPATH_print(contents); break; - case U_EMR_STROKEANDFILLPATH: U_EMRSTROKEANDFILLPATH_print(contents); break; - case U_EMR_STROKEPATH: U_EMRSTROKEPATH_print(contents); break; - case U_EMR_FLATTENPATH: U_EMRFLATTENPATH_print(contents); break; - case U_EMR_WIDENPATH: U_EMRWIDENPATH_print(contents); break; - case U_EMR_SELECTCLIPPATH: U_EMRSELECTCLIPPATH_print(contents); break; - case U_EMR_ABORTPATH: U_EMRABORTPATH_print(contents); break; - case U_EMR_UNDEF69: U_EMRUNDEF69_print(contents); break; - case U_EMR_COMMENT: U_EMRCOMMENT_print(contents, blimit, off); break; - case U_EMR_FILLRGN: U_EMRFILLRGN_print(contents); break; - case U_EMR_FRAMERGN: U_EMRFRAMERGN_print(contents); break; - case U_EMR_INVERTRGN: U_EMRINVERTRGN_print(contents); break; - case U_EMR_PAINTRGN: U_EMRPAINTRGN_print(contents); break; - case U_EMR_EXTSELECTCLIPRGN: U_EMREXTSELECTCLIPRGN_print(contents); break; - case U_EMR_BITBLT: U_EMRBITBLT_print(contents); break; - case U_EMR_STRETCHBLT: U_EMRSTRETCHBLT_print(contents); break; - case U_EMR_MASKBLT: U_EMRMASKBLT_print(contents); break; - case U_EMR_PLGBLT: U_EMRPLGBLT_print(contents); break; - case U_EMR_SETDIBITSTODEVICE: U_EMRSETDIBITSTODEVICE_print(contents); break; - case U_EMR_STRETCHDIBITS: U_EMRSTRETCHDIBITS_print(contents); break; - case U_EMR_EXTCREATEFONTINDIRECTW: U_EMREXTCREATEFONTINDIRECTW_print(contents); break; - case U_EMR_EXTTEXTOUTA: U_EMREXTTEXTOUTA_print(contents); break; - case U_EMR_EXTTEXTOUTW: U_EMREXTTEXTOUTW_print(contents); break; - case U_EMR_POLYBEZIER16: U_EMRPOLYBEZIER16_print(contents); break; - case U_EMR_POLYGON16: U_EMRPOLYGON16_print(contents); break; - case U_EMR_POLYLINE16: U_EMRPOLYLINE16_print(contents); break; - case U_EMR_POLYBEZIERTO16: U_EMRPOLYBEZIERTO16_print(contents); break; - case U_EMR_POLYLINETO16: U_EMRPOLYLINETO16_print(contents); break; - case U_EMR_POLYPOLYLINE16: U_EMRPOLYPOLYLINE16_print(contents); break; - case U_EMR_POLYPOLYGON16: U_EMRPOLYPOLYGON16_print(contents); break; - case U_EMR_POLYDRAW16: U_EMRPOLYDRAW16_print(contents); break; - case U_EMR_CREATEMONOBRUSH: U_EMRCREATEMONOBRUSH_print(contents); break; - case U_EMR_CREATEDIBPATTERNBRUSHPT: U_EMRCREATEDIBPATTERNBRUSHPT_print(contents); break; - case U_EMR_EXTCREATEPEN: U_EMREXTCREATEPEN_print(contents); break; - case U_EMR_POLYTEXTOUTA: U_EMRPOLYTEXTOUTA_print(contents); break; - case U_EMR_POLYTEXTOUTW: U_EMRPOLYTEXTOUTW_print(contents); break; - case U_EMR_SETICMMODE: U_EMRSETICMMODE_print(contents); break; - case U_EMR_CREATECOLORSPACE: U_EMRCREATECOLORSPACE_print(contents); break; - case U_EMR_SETCOLORSPACE: U_EMRSETCOLORSPACE_print(contents); break; - case U_EMR_DELETECOLORSPACE: U_EMRDELETECOLORSPACE_print(contents); break; - case U_EMR_GLSRECORD: U_EMRGLSRECORD_print(contents); break; - case U_EMR_GLSBOUNDEDRECORD: U_EMRGLSBOUNDEDRECORD_print(contents); break; - case U_EMR_PIXELFORMAT: U_EMRPIXELFORMAT_print(contents); break; - case U_EMR_DRAWESCAPE: U_EMRDRAWESCAPE_print(contents); break; - case U_EMR_EXTESCAPE: U_EMREXTESCAPE_print(contents); break; - case U_EMR_UNDEF107: U_EMRUNDEF107_print(contents); break; - case U_EMR_SMALLTEXTOUT: U_EMRSMALLTEXTOUT_print(contents); break; - case U_EMR_FORCEUFIMAPPING: U_EMRFORCEUFIMAPPING_print(contents); break; - case U_EMR_NAMEDESCAPE: U_EMRNAMEDESCAPE_print(contents); break; - case U_EMR_COLORCORRECTPALETTE: U_EMRCOLORCORRECTPALETTE_print(contents); break; - case U_EMR_SETICMPROFILEA: U_EMRSETICMPROFILEA_print(contents); break; - case U_EMR_SETICMPROFILEW: U_EMRSETICMPROFILEW_print(contents); break; - case U_EMR_ALPHABLEND: U_EMRALPHABLEND_print(contents); break; - case U_EMR_SETLAYOUT: U_EMRSETLAYOUT_print(contents); break; - case U_EMR_TRANSPARENTBLT: U_EMRTRANSPARENTBLT_print(contents); break; - case U_EMR_UNDEF117: U_EMRUNDEF117_print(contents); break; - case U_EMR_GRADIENTFILL: U_EMRGRADIENTFILL_print(contents); break; - case U_EMR_SETLINKEDUFIS: U_EMRSETLINKEDUFIS_print(contents); break; - case U_EMR_SETTEXTJUSTIFICATION: U_EMRSETTEXTJUSTIFICATION_print(contents); break; - case U_EMR_COLORMATCHTOTARGETW: U_EMRCOLORMATCHTOTARGETW_print(contents); break; - case U_EMR_CREATECOLORSPACEW: U_EMRCREATECOLORSPACEW_print(contents); break; - default: U_EMRNOTIMPLEMENTED_print("?",contents); break; + case U_EMR_HEADER: U_EMRHEADER_print(record); break; + case U_EMR_POLYBEZIER: U_EMRPOLYBEZIER_print(record); break; + case U_EMR_POLYGON: U_EMRPOLYGON_print(record); break; + case U_EMR_POLYLINE: U_EMRPOLYLINE_print(record); break; + case U_EMR_POLYBEZIERTO: U_EMRPOLYBEZIERTO_print(record); break; + case U_EMR_POLYLINETO: U_EMRPOLYLINETO_print(record); break; + case U_EMR_POLYPOLYLINE: U_EMRPOLYPOLYLINE_print(record); break; + case U_EMR_POLYPOLYGON: U_EMRPOLYPOLYGON_print(record); break; + case U_EMR_SETWINDOWEXTEX: U_EMRSETWINDOWEXTEX_print(record); break; + case U_EMR_SETWINDOWORGEX: U_EMRSETWINDOWORGEX_print(record); break; + case U_EMR_SETVIEWPORTEXTEX: U_EMRSETVIEWPORTEXTEX_print(record); break; + case U_EMR_SETVIEWPORTORGEX: U_EMRSETVIEWPORTORGEX_print(record); break; + case U_EMR_SETBRUSHORGEX: U_EMRSETBRUSHORGEX_print(record); break; + case U_EMR_EOF: U_EMREOF_print(record); nSize=0; break; + case U_EMR_SETPIXELV: U_EMRSETPIXELV_print(record); break; + case U_EMR_SETMAPPERFLAGS: U_EMRSETMAPPERFLAGS_print(record); break; + case U_EMR_SETMAPMODE: U_EMRSETMAPMODE_print(record); break; + case U_EMR_SETBKMODE: U_EMRSETBKMODE_print(record); break; + case U_EMR_SETPOLYFILLMODE: U_EMRSETPOLYFILLMODE_print(record); break; + case U_EMR_SETROP2: U_EMRSETROP2_print(record); break; + case U_EMR_SETSTRETCHBLTMODE: U_EMRSETSTRETCHBLTMODE_print(record); break; + case U_EMR_SETTEXTALIGN: U_EMRSETTEXTALIGN_print(record); break; + case U_EMR_SETCOLORADJUSTMENT: U_EMRSETCOLORADJUSTMENT_print(record); break; + case U_EMR_SETTEXTCOLOR: U_EMRSETTEXTCOLOR_print(record); break; + case U_EMR_SETBKCOLOR: U_EMRSETBKCOLOR_print(record); break; + case U_EMR_OFFSETCLIPRGN: U_EMROFFSETCLIPRGN_print(record); break; + case U_EMR_MOVETOEX: U_EMRMOVETOEX_print(record); break; + case U_EMR_SETMETARGN: U_EMRSETMETARGN_print(record); break; + case U_EMR_EXCLUDECLIPRECT: U_EMREXCLUDECLIPRECT_print(record); break; + case U_EMR_INTERSECTCLIPRECT: U_EMRINTERSECTCLIPRECT_print(record); break; + case U_EMR_SCALEVIEWPORTEXTEX: U_EMRSCALEVIEWPORTEXTEX_print(record); break; + case U_EMR_SCALEWINDOWEXTEX: U_EMRSCALEWINDOWEXTEX_print(record); break; + case U_EMR_SAVEDC: U_EMRSAVEDC_print(record); break; + case U_EMR_RESTOREDC: U_EMRRESTOREDC_print(record); break; + case U_EMR_SETWORLDTRANSFORM: U_EMRSETWORLDTRANSFORM_print(record); break; + case U_EMR_MODIFYWORLDTRANSFORM: U_EMRMODIFYWORLDTRANSFORM_print(record); break; + case U_EMR_SELECTOBJECT: U_EMRSELECTOBJECT_print(record); break; + case U_EMR_CREATEPEN: U_EMRCREATEPEN_print(record); break; + case U_EMR_CREATEBRUSHINDIRECT: U_EMRCREATEBRUSHINDIRECT_print(record); break; + case U_EMR_DELETEOBJECT: U_EMRDELETEOBJECT_print(record); break; + case U_EMR_ANGLEARC: U_EMRANGLEARC_print(record); break; + case U_EMR_ELLIPSE: U_EMRELLIPSE_print(record); break; + case U_EMR_RECTANGLE: U_EMRRECTANGLE_print(record); break; + case U_EMR_ROUNDRECT: U_EMRROUNDRECT_print(record); break; + case U_EMR_ARC: U_EMRARC_print(record); break; + case U_EMR_CHORD: U_EMRCHORD_print(record); break; + case U_EMR_PIE: U_EMRPIE_print(record); break; + case U_EMR_SELECTPALETTE: U_EMRSELECTPALETTE_print(record); break; + case U_EMR_CREATEPALETTE: U_EMRCREATEPALETTE_print(record); break; + case U_EMR_SETPALETTEENTRIES: U_EMRSETPALETTEENTRIES_print(record); break; + case U_EMR_RESIZEPALETTE: U_EMRRESIZEPALETTE_print(record); break; + case U_EMR_REALIZEPALETTE: U_EMRREALIZEPALETTE_print(record); break; + case U_EMR_EXTFLOODFILL: U_EMREXTFLOODFILL_print(record); break; + case U_EMR_LINETO: U_EMRLINETO_print(record); break; + case U_EMR_ARCTO: U_EMRARCTO_print(record); break; + case U_EMR_POLYDRAW: U_EMRPOLYDRAW_print(record); break; + case U_EMR_SETARCDIRECTION: U_EMRSETARCDIRECTION_print(record); break; + case U_EMR_SETMITERLIMIT: U_EMRSETMITERLIMIT_print(record); break; + case U_EMR_BEGINPATH: U_EMRBEGINPATH_print(record); break; + case U_EMR_ENDPATH: U_EMRENDPATH_print(record); break; + case U_EMR_CLOSEFIGURE: U_EMRCLOSEFIGURE_print(record); break; + case U_EMR_FILLPATH: U_EMRFILLPATH_print(record); break; + case U_EMR_STROKEANDFILLPATH: U_EMRSTROKEANDFILLPATH_print(record); break; + case U_EMR_STROKEPATH: U_EMRSTROKEPATH_print(record); break; + case U_EMR_FLATTENPATH: U_EMRFLATTENPATH_print(record); break; + case U_EMR_WIDENPATH: U_EMRWIDENPATH_print(record); break; + case U_EMR_SELECTCLIPPATH: U_EMRSELECTCLIPPATH_print(record); break; + case U_EMR_ABORTPATH: U_EMRABORTPATH_print(record); break; + case U_EMR_UNDEF69: U_EMRUNDEF69_print(record); break; + case U_EMR_COMMENT: U_EMRCOMMENT_print(record, off); break; + case U_EMR_FILLRGN: U_EMRFILLRGN_print(record); break; + case U_EMR_FRAMERGN: U_EMRFRAMERGN_print(record); break; + case U_EMR_INVERTRGN: U_EMRINVERTRGN_print(record); break; + case U_EMR_PAINTRGN: U_EMRPAINTRGN_print(record); break; + case U_EMR_EXTSELECTCLIPRGN: U_EMREXTSELECTCLIPRGN_print(record); break; + case U_EMR_BITBLT: U_EMRBITBLT_print(record); break; + case U_EMR_STRETCHBLT: U_EMRSTRETCHBLT_print(record); break; + case U_EMR_MASKBLT: U_EMRMASKBLT_print(record); break; + case U_EMR_PLGBLT: U_EMRPLGBLT_print(record); break; + case U_EMR_SETDIBITSTODEVICE: U_EMRSETDIBITSTODEVICE_print(record); break; + case U_EMR_STRETCHDIBITS: U_EMRSTRETCHDIBITS_print(record); break; + case U_EMR_EXTCREATEFONTINDIRECTW: U_EMREXTCREATEFONTINDIRECTW_print(record); break; + case U_EMR_EXTTEXTOUTA: U_EMREXTTEXTOUTA_print(record); break; + case U_EMR_EXTTEXTOUTW: U_EMREXTTEXTOUTW_print(record); break; + case U_EMR_POLYBEZIER16: U_EMRPOLYBEZIER16_print(record); break; + case U_EMR_POLYGON16: U_EMRPOLYGON16_print(record); break; + case U_EMR_POLYLINE16: U_EMRPOLYLINE16_print(record); break; + case U_EMR_POLYBEZIERTO16: U_EMRPOLYBEZIERTO16_print(record); break; + case U_EMR_POLYLINETO16: U_EMRPOLYLINETO16_print(record); break; + case U_EMR_POLYPOLYLINE16: U_EMRPOLYPOLYLINE16_print(record); break; + case U_EMR_POLYPOLYGON16: U_EMRPOLYPOLYGON16_print(record); break; + case U_EMR_POLYDRAW16: U_EMRPOLYDRAW16_print(record); break; + case U_EMR_CREATEMONOBRUSH: U_EMRCREATEMONOBRUSH_print(record); break; + case U_EMR_CREATEDIBPATTERNBRUSHPT: U_EMRCREATEDIBPATTERNBRUSHPT_print(record); break; + case U_EMR_EXTCREATEPEN: U_EMREXTCREATEPEN_print(record); break; + case U_EMR_POLYTEXTOUTA: U_EMRPOLYTEXTOUTA_print(record); break; + case U_EMR_POLYTEXTOUTW: U_EMRPOLYTEXTOUTW_print(record); break; + case U_EMR_SETICMMODE: U_EMRSETICMMODE_print(record); break; + case U_EMR_CREATECOLORSPACE: U_EMRCREATECOLORSPACE_print(record); break; + case U_EMR_SETCOLORSPACE: U_EMRSETCOLORSPACE_print(record); break; + case U_EMR_DELETECOLORSPACE: U_EMRDELETECOLORSPACE_print(record); break; + case U_EMR_GLSRECORD: U_EMRGLSRECORD_print(record); break; + case U_EMR_GLSBOUNDEDRECORD: U_EMRGLSBOUNDEDRECORD_print(record); break; + case U_EMR_PIXELFORMAT: U_EMRPIXELFORMAT_print(record); break; + case U_EMR_DRAWESCAPE: U_EMRDRAWESCAPE_print(record); break; + case U_EMR_EXTESCAPE: U_EMREXTESCAPE_print(record); break; + case U_EMR_UNDEF107: U_EMRUNDEF107_print(record); break; + case U_EMR_SMALLTEXTOUT: U_EMRSMALLTEXTOUT_print(record); break; + case U_EMR_FORCEUFIMAPPING: U_EMRFORCEUFIMAPPING_print(record); break; + case U_EMR_NAMEDESCAPE: U_EMRNAMEDESCAPE_print(record); break; + case U_EMR_COLORCORRECTPALETTE: U_EMRCOLORCORRECTPALETTE_print(record); break; + case U_EMR_SETICMPROFILEA: U_EMRSETICMPROFILEA_print(record); break; + case U_EMR_SETICMPROFILEW: U_EMRSETICMPROFILEW_print(record); break; + case U_EMR_ALPHABLEND: U_EMRALPHABLEND_print(record); break; + case U_EMR_SETLAYOUT: U_EMRSETLAYOUT_print(record); break; + case U_EMR_TRANSPARENTBLT: U_EMRTRANSPARENTBLT_print(record); break; + case U_EMR_UNDEF117: U_EMRUNDEF117_print(record); break; + case U_EMR_GRADIENTFILL: U_EMRGRADIENTFILL_print(record); break; + case U_EMR_SETLINKEDUFIS: U_EMRSETLINKEDUFIS_print(record); break; + case U_EMR_SETTEXTJUSTIFICATION: U_EMRSETTEXTJUSTIFICATION_print(record); break; + case U_EMR_COLORMATCHTOTARGETW: U_EMRCOLORMATCHTOTARGETW_print(record); break; + case U_EMR_CREATECOLORSPACEW: U_EMRCREATECOLORSPACEW_print(record); break; + default: U_EMRNOTIMPLEMENTED_print("?",record); break; } //end of switch - return(size); + return(nSize); } diff --git a/src/libuemf/uemf_print.h b/src/libuemf/uemf_print.h index 896de659e..6568b4cfa 100644 --- a/src/libuemf/uemf_print.h +++ b/src/libuemf/uemf_print.h @@ -6,11 +6,11 @@ /* File: uemf_print.h -Version: 0.0.5 -Date: 14-FEB-2013 +Version: 0.0.7 +Date: 24-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2013 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifndef _UEMF_PRINT_ @@ -44,17 +44,17 @@ void panose_print(U_PANOSE panose); void logfont_print(U_LOGFONT lf); void logfont_panose_print(U_LOGFONT_PANOSE lfp); void bitmapinfoheader_print(const char *Bmih); -void bitmapinfo_print(const char *Bmi); +void bitmapinfo_print(const char *Bmi, const char *blimit); void blend_print(U_BLEND blend); void extlogpen_print(const PU_EXTLOGPEN elp); void logpen_print(U_LOGPEN lp); void logpltntry_print(U_LOGPLTNTRY lpny); void logpalette_print(const PU_LOGPALETTE lp); void rgndataheader_print(U_RGNDATAHEADER rdh); -void rgndata_print(const PU_RGNDATA rd); +void rgndata_print(const PU_RGNDATA rd, const char *blimit); void coloradjustment_print(U_COLORADJUSTMENT ca); void pixelformatdescriptor_print(U_PIXELFORMATDESCRIPTOR pfd); -void emrtext_print(const char *emt, const char *record, int type); +void emrtext_print(const char *emt, const char *record, const char *blimit, int type); /* prototypes for EMR records */ void U_EMRNOTIMPLEMENTED_print(const char *name, const char *contents, int recnum, int off); @@ -126,7 +126,7 @@ void U_EMRFLATTENPATH_print(const char *contents); void U_EMRWIDENPATH_print(const char *contents); void U_EMRSELECTCLIPPATH_print(const char *contents); void U_EMRABORTPATH_print(const char *contents); -void U_EMRCOMMENT_print(const char *contents, const char *blimit, size_t off); +void U_EMRCOMMENT_print(const char *contents, size_t off); void U_EMRFILLRGN_print(const char *contents); void U_EMRFRAMERGN_print(const char *contents); void U_EMRINVERTRGN_print(const char *contents); diff --git a/src/libuemf/upmf.c b/src/libuemf/upmf.c index 01f7ba3a4..7d6349185 100644 --- a/src/libuemf/upmf.c +++ b/src/libuemf/upmf.c @@ -21,11 +21,11 @@ /* File: upmf.c -Version: 0.0.6 -Date: 26-MAR-2014 +Version: 0.0.9 +Date: 25-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2014 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifdef __cplusplus @@ -1459,11 +1459,18 @@ int U_PMF_PTRSAV_COND(const char **Dst, const char *Src, int Doit){ else { *Dst = NULL; } return(1); } +/* + + ===================================================================================== + start of U_PMF_*_get() functions + +*/ /** \brief Get the 16 bit unsigned Flags field from a header. \param contents Record from which to extract data, will be incremented by header size. \return Flags field + In many records the only value needed from the header is Flags. Rather than mapping the entire Header and returning it, in these instances this function may be called to just get this one value. @@ -1515,6 +1522,19 @@ int U_PMF_CMN_HDR_get(const char **contents, U_PMF_CMN_HDR *Header){ return(1); } +/** + \brief return the size in bytes of the EMF+ record + \param contents Record from which to extract data, will not be modified. + \returns size, or 0 if contents is Null +*/ +int U_PMF_RECORD_SIZE_get(const char *contents){ + if(!contents){ return(0); } + int Size; + const char *from = contents + 4; + U_PMF_SERIAL_get(&from, &Size, 4, 1, U_LE); + return(Size); +} + /** \brief Return the size of a PenData object from an EMF+ record. \param PenData Address in memory where the PenData object starts. @@ -5362,6 +5382,17 @@ U_PSEUDO_OBJ *U_PMR_TRANSLATEWORLDTRANSFORM_set(int xmtype, U_FLOAT Dx, U_FLOAT return(po); } +/* + + end of U_PMF_*_set() functions + ===================================================================================== + start of U_PMF_*_get() functions + + These functions all take a blimit value so that they can check if the data description in the fields + they process extend beyond the end of the record. + +*/ + //! \cond /* core _get functions, not accessed outside of this routine */ @@ -5387,11 +5418,15 @@ int U_PMF_CORE1_get(const char *contents, void *v1, void *v2, void *v3, void *v4 \param Version EmfPlusGraphicsVersion object \param Type BrushType Enumeration \param Data one of the 5 types of Brush data + \param blimit one byte past the end of data EMF+ manual 2.2.1.1, Microsoft name: EmfPlusBrush Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data){ - if(!contents || !Version || !Type || !Data){ return(0); } +int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit){ + if(!contents || !Version || !Type || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents,sizeof(U_PMF_BRUSH), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Type, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -5405,11 +5440,15 @@ int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, con \param Version EmfPlusGraphicsVersion object \param Type CustomLineCapData Enumeration \param Data one of the 2 types of Linecap data + \param blimit one byte past the end of data EMF+ manual 2.2.1.2, Microsoft name: EmfPlusCustomLineCap Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data){ - if(!contents || !Version || !Type || !Data){ return(0); } +int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit){ + if(!contents || !Version || !Type || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CUSTOMLINECAP), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Type, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -5428,10 +5467,13 @@ int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *T \param Data Unicode (UTF-16LE) name of font family EMF+ manual 2.2.1.3, Microsoft name: EmfPlusFont Object + + Caller must check Data for possible memory access violations. */ int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uint32_t *SizeUnit, - int32_t *FSFlags, uint32_t *Length, const char **Data){ - if(!contents || !Version || !EmSize || !SizeUnit || !FSFlags || !Length || !Data){ return(0); } + int32_t *FSFlags, uint32_t *Length, const char **Data, const char *blimit){ + if(!contents || !Version || !EmSize || !SizeUnit || !FSFlags || !Length || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_FONT), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, EmSize, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, SizeUnit, 4, 1, U_LE); @@ -5452,9 +5494,12 @@ int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uin \param Data one of the 2 types of image data EMF+ manual 2.2.1.4, Microsoft name: EmfPlusImage Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data){ - if(!contents || !Version || !Type){ return(0); } +int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit){ + if(!contents || !Version || !Type || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IMAGE), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Type, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -5472,8 +5517,10 @@ int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, con EMF+ manual 2.2.1.5, Microsoft name: EmfPlusImageAttributes Object */ -int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, uint32_t *ObjectClamp){ - if(!contents || !Version || !WrapMode || !ClampColor || !ObjectClamp){ return(0); } +int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, + uint32_t *ObjectClamp, const char *blimit){ + if(!contents || !Version || !WrapMode || !ClampColor || !ObjectClamp || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IMAGEATTRIBUTES), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); contents += 4; /* Skip Reserved 1*/ U_PMF_SERIAL_get(&contents, WrapMode, 4, 1, U_LE); @@ -5494,21 +5541,31 @@ int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t \param Types array of U_PMF_PATHPOINTTYPERLE and/or U_PMF_PATHPOINTTYPE EMF+ manual 2.2.1.6, Microsoft name: EmfPlusPath Object + + Caller must check Types for possible memory access violations if type can be U_PMF_PATHPOINTTYPERLE. */ -int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, const char **Points, const char **Types){ - if(!contents || !Version || !Count || !Flags || !Points || !Types){ return(0); } +int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, + const char **Points, const char **Types, const char *blimit){ + if(!contents || !Version || !Count || !Flags || !Points || !Types || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_PATH), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Count, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Flags, 2, 1, U_LE); contents+=2; /* reserved */ - U_PMF_PTRSAV_SHIFT(Points, &contents, 0); + uint32_t sizeP, sizeT; if(*Flags & U_PPF_P){ - int killme = U_PMF_LEN_REL715(contents,*Count); //DEBUG - printf("DEBUG U_PMF_PATH_get count:%d LENREL715:%d\n",*Count,killme);fflush(stdout); - contents += killme; + sizeP = U_PMF_LEN_REL715(contents,*Count); //DEBUG + printf("DEBUG U_PMF_PATH_get count:%d LENREL715:%d\n",*Count,sizeP);fflush(stdout); } - else if(*Flags & U_PPF_C){ contents += *Count * sizeof(U_PMF_POINT); } - else { contents += *Count * sizeof(U_PMF_POINTF); } + else if(*Flags & U_PPF_C){ sizeP = *Count * sizeof(U_PMF_POINT); } + else { sizeP = *Count * sizeof(U_PMF_POINTF); } + if(IS_MEM_UNSAFE(contents, sizeP, blimit))return(0); + U_PMF_PTRSAV_SHIFT(Points, &contents, 0); + contents += sizeP; + /* this limit is correct if there are only U_PMF_PATHPOINTTYPE PointTypes, it is a lower bound if + there can also be U_PMF_PATHPOINTTYPERLE */ + sizeT = *Count * sizeof(U_PMF_PATHPOINTTYPE); + if(IS_MEM_UNSAFE(contents, sizeT, blimit))return(0); U_PMF_PTRSAV_SHIFT(Types, &contents, 0); return(1); } @@ -5523,9 +5580,12 @@ int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uin \param Brush Brush Description EMF+ manual 2.2.1.7, Microsoft name: EmfPlusPen Object + + Caller must check Brush and PenData for possible memory access violations. */ -int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush){ - if(!contents || !Type || !PenData || !Brush){ return(0); } +int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush, const char *blimit){ + if(!contents || !Type || !PenData || !Brush || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_PEN), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Type, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(PenData, &contents, 0); @@ -5543,8 +5603,9 @@ int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const EMF+ manual 2.2.1.8, Microsoft name: EmfPlusRegion Object */ -int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes){ - if(!contents || !Version || !Count || !Nodes){ return(0); } +int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes, const char *blimit){ + if(!contents || !Version || !Count || !Nodes || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_REGION), blimit))return(0); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Count, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Nodes, &contents, 0); @@ -5560,8 +5621,9 @@ int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, c EMF+ manual 2.2.1.9, Microsoft name: EmfPlusStringFormat Object */ -int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data){ - if(!contents || !Sfs || !Data){ return(0); } +int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data, const char *blimit){ + if(!contents || !Sfs || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_STRINGFORMAT), blimit))return(0); U_PMF_SERIAL_get(&contents, Sfs, 4, 15, U_LE); *Data = contents; return(1); @@ -5578,8 +5640,9 @@ int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const EMF+ manual 2.2.2.1, Microsoft name: EmfPlusARGB Object */ -int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha){ - if(!contents || !Blue || !Green || !Red || !Alpha){ return(0); } +int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha, const char *blimit){ + if(!contents || !Blue || !Green || !Red || !Alpha || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_ARGB), blimit))return(0); U_PMF_SERIAL_get(&contents, Blue, 1, 1, U_XE); U_PMF_SERIAL_get(&contents, Green, 1, 1, U_XE); U_PMF_SERIAL_get(&contents, Red, 1, 1, U_XE); @@ -5595,11 +5658,14 @@ int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t \param Data pointer to variable part EMF+ manual 2.2.2.2, Microsoft name: EmfPlusBitmap Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data){ - if(!contents || !Bs || !Data){ return(0); } - U_PMF_SERIAL_get(&contents, Bs, 4, 5, U_LE); - U_PMF_PTRSAV_SHIFT(Data, &contents, 0); +int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data, const char *blimit){ + if(!contents || !Bs || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_BITMAP), blimit))return(0); + U_PMF_SERIAL_get(&contents, Bs, 4, 5, U_LE); // width, height, stride, pixelformat, type + U_PMF_PTRSAV_SHIFT(Data, &contents, 0); // bitmapdata return(1); } @@ -5612,11 +5678,16 @@ int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data){ \param Data An array of bytes, meaning depends on fields in U_PMF_BITMAP object and the PixelFormat enumeration. EMF+ manual 2.2.2.3, Microsoft name: EmfPlusBitmapData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data){ - if(!contents || !Ps || !Colors || !Data ){ return(0); } +int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data, const char *blimit){ + if(!contents || !Ps || !Colors || !Data || !blimit){ return(0); } + /* this structure is entirely optional */ + if(IS_MEM_UNSAFE(contents, 4*2, blimit))return(0); U_PMF_SERIAL_get(&contents, Ps, 4, 2, U_LE); U_PMF_PTRSAV_SHIFT(Colors, &contents, Ps->Elements * sizeof(U_PMF_ARGB)); + /* difficult to know how big the actual bitmap will be, just return the pointer to it untested */ U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -5627,13 +5698,15 @@ int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **C \param contents Record from which to extract data \param Elements Number of members in Positions and Colors \param Positions Caller must free. Pointer to memory holding positions along gradient line. - \param Colors Caller must NOT free memory ,Pointer to memory holding colors at positions on gradient line. + \param Colors Caller must NOT free memory, Pointer to memory holding colors at positions on gradient line. EMF+ manual 2.2.2.4, Microsoft name: EmfPlusBlendColors Object */ -int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors){ - if(!contents || !Positions || !Colors){ return(0); } +int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors, const char *blimit){ + if(!contents || !Positions || !Colors || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_BLENDCOLORS), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * 4, blimit))return(0); if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Positions, 4, *Elements, U_LE,1)){ return(0); } U_PMF_PTRSAV_SHIFT(Colors, &contents, 0); return(1); @@ -5649,9 +5722,11 @@ int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Po EMF+ manual 2.2.2.5, Microsoft name: EmfPlusBlendFactors Object */ -int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors){ - if(!contents || !Elements || !Positions || !Factors){ return(0); } +int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors, const char *blimit){ + if(!contents || !Elements || !Positions || !Factors || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_BLENDFACTORS), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * 4 * 2, blimit))return(0); if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Positions, 4, *Elements, U_LE, 1)){ return(0); } if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Factors, 4, *Elements, U_LE, 1)){ free(*Positions); @@ -5668,9 +5743,12 @@ int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **P \param Data boundary of the brush EMF+ manual 2.2.2.6, Microsoft name: EmfPlusBoundaryPathData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_BOUNDARYPATHDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -5680,14 +5758,16 @@ int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char * \brief Get data from a U_PMF_BOUNDARYPOINTDATA object \return 1 on success, 0 on error \param contents Record from which to extract data - \param Elements Members in POints + \param Elements Members in Points \param Points Caller must free. Pointer to memory holding points along gradient line. Boundary of the brush. EMF+ manual 2.2.2.7, Microsoft name: EmfPlusBoundaryPointData Object */ -int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points){ - if(!contents || !Elements || !Points){ return(0); } +int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points, const char *blimit){ + if(!contents || !Elements || !Points || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_BOUNDARYPOINTDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * 2, blimit))return(0); if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Points, 4, *Elements * 2, U_LE, 1)){ return(0); } return(1); } @@ -5701,8 +5781,9 @@ int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_P EMF+ manual 2.2.2.8, Microsoft name: EmfPlusCharacterRange Object */ -int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length){ - if(!contents || !First || !Length){ return(0); } +int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length, const char *blimit){ + if(!contents || !First || !Length || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CHARACTERRANGE), blimit))return(0); U_PMF_SERIAL_get(&contents, First, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Length, 4, 1, U_LE); return(1); @@ -5717,9 +5798,11 @@ int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Leng EMF+ manual 2.2.2.9, Microsoft name: EmfPlusCompoundLineData Object */ -int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths){ - if(!contents || !Elements || !Widths){ return(0); } +int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths, const char *blimit){ + if(!contents || !Elements || !Widths || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_COMPOUNDLINEDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * sizeof(U_FLOAT), blimit))return(0); *Widths = (U_FLOAT *)malloc(*Elements * sizeof(U_FLOAT)); if(!*Widths){ return(0); } U_PMF_SERIAL_get(&contents, *Widths, 4, *Elements, U_LE); @@ -5736,9 +5819,12 @@ int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT This function does not do anything useful, but it is included so that all objects have a corresponding _get(). + + Caller must check Data for possible memory access violations. */ -int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data){ - if(!contents || !Data){ return(0); } +int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data, const char *blimit){ + if(!contents || !Data || !blimit){ return(0); } + if(contents >= blimit)return(0); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -5751,9 +5837,12 @@ int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data){ \param Data Description of linecap EMF+ manual 2.2.2.11, Microsoft name: EmfPlusCustomEndCapData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CUSTOMENDCAPDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -5767,8 +5856,9 @@ int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char * EMF+ manual 2.2.2.12, Microsoft name: EmfPlusCustomLineCapArrowData Object */ -int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad){ - if(!contents || !Ccad){ return(0); } +int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad, const char *blimit){ + if(!contents || !Ccad || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CUSTOMLINECAPARROWDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Ccad, 4, 13, U_LE); return(1); } @@ -5781,9 +5871,12 @@ int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPAR \param Data variable part of U_PMF_CUSTOMLINECAPDATA EMF+ manual 2.2.2.13, Microsoft name: EmfPlusCustomLineCapData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data){ - if(!contents || !Clcd){ return(0); } +int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data, const char *blimit){ + if(!contents || !Clcd || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CUSTOMLINECAPDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Clcd, 4, 12, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -5798,14 +5891,19 @@ int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *C \param LineData Path to stroke (optional) EMF+ manual 2.2.2.14, Microsoft name: EmfPlusCustomLineCapOptionalData Object + + Caller must check LineData for possible memory access violations. */ -int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData){ +int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData, const char *blimit){ uint32_t length; int status = 1; - if(!contents){ return(0); } + if(!contents || !*FillData || !*LineData || !blimit){ return(0); } + /* this structure is entirely optional */ if(Flags & U_CLCD_FillPath){ if(!FillData){ return(0); } + if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); U_PMF_SERIAL_get(&contents, &length, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, length, blimit))return(0); contents -= 4; /* undo the unneeded shift from preceding */ U_PMF_PTRSAV_SHIFT(FillData, &contents, 4 + length); status += 2; @@ -5814,6 +5912,10 @@ int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, co if(Flags & U_CLCD_LinePath){ if(!LineData){ return(0); } + if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, &length, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, length, blimit))return(0); + contents -= 4; /* undo the unneeded shift from preceding */ U_PMF_PTRSAV_SHIFT(LineData, &contents, 0); status += 4; } @@ -5829,9 +5931,12 @@ int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, co \param Data Description of linecap EMF+ manual 2.2.2.15, Microsoft name: EmfPlusCustomStartCapData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_CUSTOMSTARTCAPDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -5846,9 +5951,11 @@ int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char EMF+ manual 2.2.2.16, Microsoft name: EmfPlusDashedLineData Object */ -int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths){ - if(!contents || !Elements || !Lengths){ return(0); } +int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths, const char *blimit){ + if(!contents || !Elements || !Lengths || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_DASHEDLINEDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * sizeof(U_FLOAT), blimit))return(0); *Lengths = (U_FLOAT *)malloc(*Elements * sizeof(U_FLOAT)); if(!*Lengths){ return(0); } U_PMF_SERIAL_get(&contents, *Lengths, 4, *Elements, U_LE); @@ -5863,9 +5970,12 @@ int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT ** \param Data Path specification EMF+ manual 2.2.2.17, Microsoft name: EmfPlusFillPath Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_FILLPATHO), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -5881,8 +5991,9 @@ int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data EMF+ manual 2.2.2.18, Microsoft name: EmfPlusFocusScaleData Object */ -int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY){ - if(!contents || !Count || !ScaleX || !ScaleY){ return(0); } +int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY, const char *blimit){ + if(!contents || !Count || !ScaleX || !ScaleY || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_FOCUSSCALEDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Count, 4, 1, U_LE); if(*Count != 2){ return(0); } U_PMF_SERIAL_get(&contents, ScaleX, 4, 1, U_LE); @@ -5899,9 +6010,10 @@ int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *Sca EMF+ manual 2.2.2.19, Microsoft name: EmfPlusGraphicsVersion Object */ -int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion){ - if(!contents || !Signature || !GrfVersion){ return(0); } +int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion, const char *blimit){ uint32_t tmp; + if(!contents || !Signature || !GrfVersion || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_GRAPHICSVERSION), blimit))return(0); memcpy(&tmp, contents, 4); *Signature = tmp >> 12; *GrfVersion = tmp & U_GFVR_MASKLO; @@ -5918,8 +6030,9 @@ int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVers EMF+ manual 2.2.2.20, Microsoft name: EmfPlusHatchBrushData Object */ -int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background){ - if(!contents || !Style || !Foreground || !Background){ return(0); } +int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background, const char *blimit){ + if(!contents || !Style || !Foreground || !Background || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_HATCHBRUSHDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Style, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Foreground, 4, 1, U_XE); U_PMF_SERIAL_get(&contents, Background, 4, 1, U_XE); @@ -5931,12 +6044,14 @@ int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB * \return 1 on success, 0 on error \param contents Record from which to extract data \param Value 7 bit signed integer (stored in an integer) + \param blimit one byte past the end of data EMF+ manual 2.2.2.21, Microsoft name: EmfPlusInteger7 Object */ -int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value){ - if(!contents || !*contents || !Value){ return(0); } +int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value, const char *blimit){ uint8_t tmp; + if(!contents || !*contents || !Value || !blimit){ return(0); } + if(IS_MEM_UNSAFE(*contents, 1, blimit))return(0); /* past end of buffer */ if(**contents & U_TEST_INT7)return(0); /* this bit must be 0 in this object type */ U_PMF_SERIAL_get(contents, &tmp, 1, 1, U_XE); if(tmp & U_SIGN_INT7){ @@ -5954,12 +6069,14 @@ int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value){ \return 1 on success, 0 on error \param contents Record from which to extract data \param Value 15 bit signed integer (stored in an integer) + \param blimit one byte past the end of data EMF+ manual 2.2.2.22, Microsoft name: EmfPlusInteger15 Object */ -int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value){ - if(!contents || !*contents || !Value){ return(0); } +int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value, const char *blimit){ + if(!contents || !*contents || !Value || !blimit){ return(0); } uint16_t tmp; + if(IS_MEM_UNSAFE(*contents, 2, blimit))return(0); /* past end of buffer */ if(!(**contents & U_TEST_INT7))return(0); /* this bit must be 1 in this object type */ U_PMF_SERIAL_get(contents, &tmp, 2, 1, U_BE); tmp &= U_MASK_INT15; /* drop the 7/15 flag from the most significant bit */ @@ -6000,11 +6117,15 @@ int U_PMF_LANGUAGEIDENTIFIER_get(U_PMF_LANGUAGEIDENTIFIER LId, int *SubLId, int \param contents Record from which to extract data \param Lgbd U_PMF_LINEARGRADIENTBRUSHDATA structure, with no variable part \param Data variable part of U_PMF_LINEARGRADIENTBRUSHDATA + \param blimit one byte past the end of data EMF+ manual 2.2.2.24, Microsoft name: EmfPlusLinearGradientBrushData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data){ - if(!contents || !Lgbd || !Data){ return(0); } +int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data, const char *blimit){ + if(!contents || !Lgbd || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_LINEARGRADIENTBRUSHDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Lgbd, 4, 6, U_LE); /* Flags, WrapMode, RectF*/ U_PMF_SERIAL_get(&contents, &(Lgbd->StartColor), 4, 4, U_XE); /* StartColor, EndColor, Reserved1 & 2 */ U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -6020,27 +6141,42 @@ int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENT \param Bc U_PMF_BLENDCOLORS object or NULL \param BfH U_PMF_BLENDFACTORS (H) object or NULL \param BfV U_PMF_BLENDFACTORS (V) object or NULL (WARNING, GDI+ defines this field but does not render it. DO NOT USE.) + \param blimit one byte past the end of data EMF+ manual 2.2.2.25, Microsoft name: EmfPlusLinearGradientBrushOptionalData Object + */ int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Tm, - const char **Bc, const char **BfH, const char **BfV){ + const char **Bc, const char **BfH, const char **BfV, const char *blimit){ uint32_t Elements; - if(!contents || !Tm|| !Bc || !BfH || !BfV){ return(0); } + if(!contents || !Tm|| !Bc || !BfH || !BfV || !blimit){ return(0); } + /* all of the fields are optional! */ *Bc = *BfH = *BfV = NULL; - if(Flags & U_BD_Transform)U_PMF_SERIAL_get(&contents, Tm, 4, 6, U_LE); + if(Flags & U_BD_Transform){ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_ROTMATRIX), blimit))return(0); + U_PMF_SERIAL_get(&contents, Tm, 4, 6, U_LE); + } if(Flags & U_BD_PresetColors){ + if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, &Elements, 4, 1, U_LE); /* starts with a 4 byte count*/ + if(IS_MEM_UNSAFE(contents, Elements * ( sizeof(U_FLOAT) + sizeof(U_PMF_ARGB)), blimit))return(0); + contents-=4; /* back up to the front of the count, as it is part of the data field */ U_PMF_PTRSAV_SHIFT(Bc, &contents, 0); } else if(Flags & U_BD_BlendFactorsH){ U_PMF_SERIAL_get(&contents, &Elements, 4, 1, U_LE); /* starts with a 4 byte count*/ + if(IS_MEM_UNSAFE(contents, Elements * 2 * sizeof(U_FLOAT), blimit))return(0); contents-=4; /* back up to the front of the count, as it is part of the data field */ - U_PMF_PTRSAV_SHIFT(BfH, &contents, 4 + 8*Elements); /* 4 byte count + 2 * 4bytes * Elements */ + U_PMF_PTRSAV_SHIFT(BfH, &contents, 4 + (Elements * 2 * sizeof(U_FLOAT))); /* 4 byte count + 2 * 4bytes * Elements */ if(Flags & U_BD_BlendFactorsV){ + if(IS_MEM_UNSAFE(contents, Elements * 2 * sizeof(U_FLOAT), blimit))return(0); U_PMF_PTRSAV_SHIFT(BfV, &contents, 0); } } else if(Flags & U_BD_BlendFactorsV){ + U_PMF_SERIAL_get(&contents, &Elements, 4, 1, U_LE); /* starts with a 4 byte count*/ + if(IS_MEM_UNSAFE(contents, Elements * 2 * sizeof(U_FLOAT), blimit))return(0); + contents-=4; /* back up to the front of the count, as it is part of the data field */ U_PMF_PTRSAV_SHIFT(BfV, &contents, 0); } return(1); @@ -6052,11 +6188,15 @@ int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Fla \param contents Record from which to extract data \param Size Bytes in Data \param Data Outline path + \param blimit one byte past the end of data EMF+ manual 2.2.2.26, Microsoft name: EmfPlusLinePath Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_LINEPATH), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); @@ -6069,11 +6209,15 @@ int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data){ \param Type \param Size Bytes in Data \param Data Various types of data, like an EMF metafile, WMF metafile, another EMF+ metafile + \param blimit one byte past the end of data EMF+ manual 2.2.2.27, Microsoft name: EmfPlusMetafile Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data){ - if(!contents || !Type || !Size || !Data){ return(0); } +int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Type || !Size || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_METAFILE), blimit))return(0); U_PMF_SERIAL_get(&contents, &Type, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, &Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -6087,13 +6231,16 @@ int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, con \param Flags PaletteStyle flags \param Elements Members in the array \param Colors Palette data (array of colors) + \param blimit one byte past the end of data EMF+ manual 2.2.2.28, Microsoft name: EmfPlusPalette Object */ -int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Colors){ - if(!contents || !Flags || !Elements || !Colors){ return(0); } +int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Colors, const char *blimit){ + if(!contents || !Flags || !Elements || !Colors || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_PALETTE), blimit))return(0); U_PMF_SERIAL_get(&contents, &Flags, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, &Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements*sizeof(U_RGBQUAD), blimit))return(0); U_PMF_PTRSAV_SHIFT(Colors, &contents, 0); return(1); @@ -6107,21 +6254,32 @@ int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, \param Gradient variable part of U_PMF_LINEARGRADIENTBRUSHDATA, Color Gradient with Elements members \param Boundary variable part of U_PMF_LINEARGRADIENTBRUSHDATA, U_PMF_BOUNDARYPATHDATA object if BrushDataPath bit set in Flag, else U_PMF_BOUNDARYPOINTDATA object \param Data variable part of U_PMF_LINEARGRADIENTBRUSHDATA, exact composition depends on Flags + \param blimit one byte past the end of data EMF+ manual 2.2.2.29, Microsoft name: EmfPlusPathGradientBrushData Object + + Caller must check Data for possible memory access violations. + */ -int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, const char **Boundary, const char **Data){ - if(!contents || !Pgbd || !Gradient || !Boundary || !Data){ return(0); } +int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, + const char **Boundary, const char **Data, const char *blimit){ + if(!contents || !Pgbd || !Gradient || !Boundary || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_PATHGRADIENTBRUSHDATA), blimit))return(0); uint32_t Size; U_PMF_SERIAL_get(&contents, Pgbd, 4, 2, U_LE); /* Flags and WrapMode*/ U_PMF_SERIAL_get(&contents, &(Pgbd->CenterColor), 4, 1, U_XE); U_PMF_SERIAL_get(&contents, &(Pgbd->Center), 4, 3, U_LE); /* Center and Elements */ + if(IS_MEM_UNSAFE(contents, Pgbd->Elements * sizeof(U_PMF_ARGB), blimit))return(0); U_PMF_PTRSAV_SHIFT(Gradient, &contents, Pgbd->Elements * sizeof(U_PMF_ARGB)); U_PMF_PTRSAV_SHIFT(Boundary, &contents, 0); U_PMF_SERIAL_get(&contents, &Size, 4, 1, U_LE); /* The first 4 bytes of the Boundary are always a size */ if(Pgbd->Flags & U_BD_Path){ contents += Size; } // U_PMF_BOUNDARYPATHDATA else { contents += Size*2*sizeof(U_FLOAT); } // U_PMF_BOUNDARYPOINTDATA - U_PMF_PTRSAV_SHIFT(Data, &contents, 0); + if(Pgbd->Flags & (U_BD_Transform |U_BD_PresetColors | U_BD_BlendFactorsH| U_BD_FocusScales)){ // optional data present + if(contents >= blimit)return(0); // the size is variable but this must still hold + U_PMF_PTRSAV_SHIFT(Data, &contents, 0); + } + else { *Data = NULL; } // no optional data present return(1); } @@ -6133,15 +6291,34 @@ int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUS \param Matrix Transformation matrix \param Pattern Blend Pattern \param Data Focus scales for the brush + \param blimit one byte past the end of data EMF+ manual 2.2.2.30, Microsoft name: EmfPlusPathGradientBrushOptionalData Object */ -int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, const char **Pattern, const char **Data){ - if(!contents || !Flags || !Matrix || !Pattern || !Data){ return(0); } - U_PMF_SERIAL_get(&contents, &Flags, 4, 1, U_LE); - U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); - U_PMF_PTRSAV_COND(Data, contents, (Flags & (U_BD_PresetColors | U_BD_BlendFactorsH))); - U_PMF_PTRSAV_COND(Data, contents, (Flags & U_BD_FocusScales)); +int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, + const char **Pattern, const char **Data, const char *blimit){ + int varsize; + if(!contents || !Flags || !Matrix || !Pattern || !Data || !blimit){ return(0); } + /* this structure is entirely optional */ + if(Flags & U_BD_Transform){ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_TRANSFORMMATRIX), blimit))return(0); + U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); + } + if(Flags & (U_BD_PresetColors | U_BD_BlendFactorsH)){ + if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + uint32_t Elements; + U_PMF_SERIAL_get(&contents, &Elements, 4, 1, U_LE); + contents -= 4; + varsize=(Elements * 4 * (Flags & U_BD_BlendFactorsH ? 2 :1)); + if(IS_MEM_UNSAFE(contents, varsize, blimit))return(0); + U_PMF_PTRSAV_SHIFT(Pattern, &contents, varsize); + } + else { *Pattern=NULL; } + if(Flags & U_BD_FocusScales){ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_FOCUSSCALEDATA), blimit))return(0); + U_PMF_PTRSAV_SHIFT(Data, &contents, sizeof(U_PMF_FOCUSSCALEDATA)); + } + else { *Data=NULL; } return(1); } @@ -6151,14 +6328,16 @@ int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags \param contents Record from which to extract data \param Flags PathPointType flags \param Type PathPointType enumeration + \param blimit one byte past the end of data EMF+ manual 2.2.2.31, Microsoft name: EmfPlusPathPointType Object Note: order of 4bit fields appears to be shown in the LE column, not as documented in the BE column. */ -int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type){ - if(!contents || !Flags || !Type){ return(0); } +int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type, const char *blimit){ + if(!contents || !Flags || !Type || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, 1, blimit))return(0); uint8_t tmp; memcpy(&tmp, contents, 1); *Flags =(tmp & U_PTP_MASK) >> U_PTP_SHIFT; @@ -6172,13 +6351,15 @@ int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type){ \param contents Record from which to extract data \param Bezier Set: Bezier curve, Clear: straight line \param RL Run Length - \param Ppt PathPointType enumeration + \param Ppt PathPointType enumeration + \param blimit one byte past the end of data EMF+ manual 2.2.2.32, Microsoft name: EmfPlusPathPointTypeRLE Object */ -int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt){ - if(!contents || !Bezier || !RL || !Ppt){ return(0); } +int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt, const char *blimit){ + if(!contents || !Bezier || !RL || !Ppt || !blimit){ return(0); } uint16_t tmp; + if(IS_MEM_UNSAFE(contents, 2, blimit))return(0); U_PMF_SERIAL_get(&contents, &tmp, 2, 1, U_LE); *Bezier = tmp & U_PPF_BZ; *RL = (tmp >> U_FF_SHFT_RL) & U_FF_MASK_RL; @@ -6194,14 +6375,17 @@ int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int * \param Unit UnitType enumeration \param Width Width in units set by Unit \param Data Optional pen data, exact composition depends on Flags + \param blimit one byte past the end of data EMF+ manual 2.2.2.33, Microsoft name: EmfPlusPenData Object */ -int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data){ - if(!contents || !Flags || !Unit || !Width || !Data){ return(0); } +int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data, const char *blimit){ + if(!contents || !Flags || !Unit || !Width || !Data || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, 3*4, blimit))return(0); U_PMF_SERIAL_get(&contents, Flags, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Unit, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Width, 4, 1, U_LE); + if(contents >= blimit)return(0); // variable data will extend farther, but this much at least must be true U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -6224,6 +6408,7 @@ int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_F \param CmpndLineData Compount Line (parallel lines drawn instead of one) \param CSCapData Custom start cap \param CECapData Custom end cap + \param blimit one byte past the end of data EMF+ manual 2.2.2.34, Microsoft name: EmfPlusPenOptionalData Object @@ -6245,26 +6430,56 @@ int U_PMF_PENOPTIONALDATA_get( int32_t *Alignment, const char **CmpndLineData, const char **CSCapData, - const char **CECapData){ + const char **CECapData, + const char *blimit){ if(!contents || !Flags || !Matrix || !StartCap || !EndCap || !Join || !MiterLimit || !Style || !DLCap || !DLOffset || !DLData || !Alignment || !CmpndLineData || - !CSCapData || !CECapData){ return(0); } - - if(Flags & U_PD_Transform){ U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); } - if(Flags & U_PD_StartCap){ U_PMF_SERIAL_get(&contents, StartCap, 4, 1, U_LE); } - if(Flags & U_PD_EndCap){ U_PMF_SERIAL_get(&contents, EndCap, 4, 1, U_LE); } - if(Flags & U_PD_Join){ U_PMF_SERIAL_get(&contents, Join, 4, 1, U_LE); } - if(Flags & U_PD_MiterLimit){ U_PMF_SERIAL_get(&contents, MiterLimit, 4, 1, U_LE); } - if(Flags & U_PD_LineStyle){ U_PMF_SERIAL_get(&contents, Style, 4, 1, U_LE); } - if(Flags & U_PD_DLCap){ U_PMF_SERIAL_get(&contents, DLCap, 4, 1, U_LE); } - if(Flags & U_PD_DLOffset){ U_PMF_SERIAL_get(&contents, DLOffset, 4, 1, U_LE); } - if(Flags & U_PD_DLData){ U_PMF_PTRSAV_SHIFT( DLData, &contents, U_PMF_LEN_FLOATDATA(contents)); } - if(Flags & U_PD_NonCenter){ U_PMF_SERIAL_get(&contents, Alignment, 4, 1, U_LE); } - if(Flags & U_PD_CLData){ U_PMF_PTRSAV_SHIFT( CmpndLineData, &contents, U_PMF_LEN_FLOATDATA(contents)); } - if(Flags & U_PD_CustomStartCap){ U_PMF_PTRSAV_SHIFT( CSCapData, &contents, U_PMF_LEN_BYTEDATA(contents)); } - if(Flags & U_PD_CustomEndCap){ U_PMF_PTRSAV_SHIFT( CECapData, &contents, U_PMF_LEN_BYTEDATA(contents)); } + !CSCapData || !CECapData || !blimit){ return(0); } + + if(Flags & U_PD_Transform){ if(IS_MEM_UNSAFE(contents, 4*6, blimit))return(0); + U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); + } + if(Flags & U_PD_StartCap){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, StartCap, 4, 1, U_LE); + } + if(Flags & U_PD_EndCap){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, EndCap, 4, 1, U_LE); + } + if(Flags & U_PD_Join){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, Join, 4, 1, U_LE); + } + if(Flags & U_PD_MiterLimit){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, MiterLimit, 4, 1, U_LE); + } + if(Flags & U_PD_LineStyle){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, Style, 4, 1, U_LE); + } + if(Flags & U_PD_DLCap){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, DLCap, 4, 1, U_LE); + } + if(Flags & U_PD_DLOffset){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, DLOffset, 4, 1, U_LE); + } + if(Flags & U_PD_DLData){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + if(IS_MEM_UNSAFE(contents, U_PMF_LEN_FLOATDATA(contents), blimit))return(0); + U_PMF_PTRSAV_SHIFT( DLData, &contents, U_PMF_LEN_FLOATDATA(contents)); + } + if(Flags & U_PD_NonCenter){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + U_PMF_SERIAL_get(&contents, Alignment, 4, 1, U_LE); } + if(Flags & U_PD_CLData){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + if(IS_MEM_UNSAFE(contents, U_PMF_LEN_FLOATDATA(contents), blimit))return(0); + U_PMF_PTRSAV_SHIFT( CmpndLineData, &contents, U_PMF_LEN_FLOATDATA(contents)); + } + if(Flags & U_PD_CustomStartCap){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + if(IS_MEM_UNSAFE(contents, U_PMF_LEN_BYTEDATA(contents), blimit))return(0); + U_PMF_PTRSAV_SHIFT( CSCapData, &contents, U_PMF_LEN_BYTEDATA(contents)); + } + if(Flags & U_PD_CustomEndCap){ if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); + if(IS_MEM_UNSAFE(contents, U_PMF_LEN_BYTEDATA(contents), blimit))return(0); + U_PMF_PTRSAV_SHIFT( CECapData, &contents, U_PMF_LEN_BYTEDATA(contents)); + } return(1); } @@ -6274,12 +6489,14 @@ int U_PMF_PENOPTIONALDATA_get( \param contents Record from which to extract data. On return position is offset by sizeof(U_PMF_POINT). \param X X coordinate \param Y Y coordinate + \param blimit one byte past the end of data EMF+ manual 2.2.2.35, Microsoft name: EmfPlusPoint Object */ -int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ - if(!contents || !X || !Y){ return(0); } +int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit){ + if(!contents || !X || !Y || !blimit){ return(0); } int16_t tmp; + if(IS_MEM_UNSAFE(*contents, 2*2, blimit))return(0); U_PMF_SERIAL_get(contents, &tmp, 2, 1, U_LE); *X = tmp; U_PMF_SERIAL_get(contents, &tmp, 2, 1, U_LE); *Y = tmp; return(1); @@ -6291,11 +6508,13 @@ int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ \param contents Record from which to extract data. On return position is offset by sizeof(U_PMF_POINTF). \param X X coordinate \param Y Y coordinate + \param blimit one byte past the end of data EMF+ manual 2.2.2.36, Microsoft name: EmfPlusPointF Object */ -int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ - if(!contents || !X || !Y){ return(0); } +int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit){ + if(!contents || !X || !Y || !blimit){ return(0); } + if(IS_MEM_UNSAFE(*contents, 4*2, blimit))return(0); U_PMF_SERIAL_get(contents, X, 4, 1, U_LE); U_PMF_SERIAL_get(contents, Y, 4, 1, U_LE); return(1); @@ -6307,19 +6526,20 @@ int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ \param contents Record from which to extract data. On return position is offset by returned size. \param X X coordinate \param Y Y coordinate + \param blimit one byte past the end of data EMF+ manual 2.2.2.37, Microsoft name: EmfPlusPointR Object */ -int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ - if(!contents || !*contents | !X || !Y){ return(0); } +int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit){ + if(!contents || !*contents | !X || !Y || !blimit){ return(0); } int size=0; - if( U_PMF_INTEGER7_get( contents, X)){ size +=1; } - else if(U_PMF_INTEGER15_get(contents, X)){ size +=2; } + if( U_PMF_INTEGER7_get( contents, X, blimit)){ size +=1; } + else if(U_PMF_INTEGER15_get(contents, X, blimit)){ size +=2; } else { return(0); } - if( U_PMF_INTEGER7_get( contents, Y)){ size +=1; } - else if(U_PMF_INTEGER15_get(contents, Y)){ size +=2; } + if( U_PMF_INTEGER7_get( contents, Y, blimit)){ size +=1; } + else if(U_PMF_INTEGER15_get(contents, Y, blimit)){ size +=2; } else { return(0); } return(size); @@ -6332,31 +6552,38 @@ int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y){ \param Flags Record flags (bits U_PPF_C and U_PPF_P are referenced) \param Elements Number of points to retrieve. \param Points Caller must free. Array of U_PMF_POINTF coordinates. + \param blimit one byte past the end of data + + This function should never be called directly by end user code. */ -int U_PMF_VARPOINTS_get(const char **contents, uint16_t Flags, int Elements, U_PMF_POINTF **Points){ +int U_PMF_VARPOINTS_get(const char *contents, uint16_t Flags, int Elements, U_PMF_POINTF **Points, const char *blimit){ int status = 0; - if(!contents || !*contents || !Points || !Elements){ return(status); } + if(!contents || !Points || !Elements || !blimit){ return(status); } U_PMF_POINTF *pts = (U_PMF_POINTF *)malloc(Elements * sizeof(U_PMF_POINTF)); if(!pts){ return(status); } *Points = pts; U_FLOAT XF, YF; U_FLOAT XFS, YFS; - for(XFS = YFS = 0.0; Elements; Elements--, pts++){ - if(Flags & U_PPF_P){ - if(!U_PMF_POINTR_get(contents, &XF, &YF))break; /* this should never happen */ + if(Flags & U_PPF_P){ + for(XFS = YFS = 0.0; Elements; Elements--, pts++){ + if(!U_PMF_POINTR_get(&contents, &XF, &YF, blimit))return(0); /* this should never happen */ XFS += XF; /* position relative to previous point, first point is always 0,0 */ YFS += YF; pts->X = XFS; pts->Y = YFS; } - else if(Flags & U_PPF_C){ - if(!U_PMF_POINT_get(contents, &XF, &XF))break; /* this should never happen */ + } + else if(Flags & U_PPF_C){ + for(XFS = YFS = 0.0; Elements; Elements--, pts++){ + if(!U_PMF_POINT_get(&contents, &XF, &XF, blimit))break; /* this should never happen */ pts->X = XF; pts->Y = YF; } - else { - (void) U_PMF_POINTF_get(contents, &(pts->X), &(pts->Y)); + } + else { + for(XFS = YFS = 0.0; Elements; Elements--, pts++){ + (void) U_PMF_POINTF_get(&contents, &(pts->X), &(pts->Y), blimit); } } if(Elements){ /* some error in the preceding */ @@ -6377,11 +6604,13 @@ int U_PMF_VARPOINTS_get(const char **contents, uint16_t Flags, int Elements, U_P \param Y UL Y value \param Width Width \param Height Height + \param blimit one byte past the end of data EMF+ manual 2.2.2.38, Microsoft name: EmfPlusRect Object */ -int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height){ +int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height, const char *blimit){ if(!contents || !X || !Y|| !Width || !Height){ return(0); } + if(IS_MEM_UNSAFE(*contents, 2*4, blimit))return(0); U_PMF_SERIAL_get(contents, X, 2, 1, U_LE); U_PMF_SERIAL_get(contents, Y, 2, 1, U_LE); U_PMF_SERIAL_get(contents, Width, 2, 1, U_LE); @@ -6397,11 +6626,13 @@ int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width \param Y UL Y value \param Width Width \param Height Height + \param blimit one byte past the end of data EMF+ manual 2.2.2.39, Microsoft name: EmfPlusRectF Object */ -int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height){ +int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height, const char *blimit){ if(!contents || !X || !Y|| !Width || !Height){ return(0); } + if(IS_MEM_UNSAFE(*contents, 4*4, blimit))return(0); U_PMF_SERIAL_get(contents, X, 4, 1, U_LE); U_PMF_SERIAL_get(contents, Y, 4, 1, U_LE); U_PMF_SERIAL_get(contents, Width, 4, 1, U_LE); @@ -6416,13 +6647,14 @@ int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Widt \param Flags Record flags (bit U_PPF_C is referenced) \param Elements Number of rects to retrieve. \param Rects Caller must free. Array of U_PMF_RECTF coordinates. + \param blimit one byte past the end of data Rects in record may be either U_PMF_RECT or U_PMF_RECTF, but this function always returns U_PMF_RECTF */ -int U_PMF_VARRECTS_get(const char **contents, uint16_t Flags, int Elements, U_PMF_RECTF **Rects){ +int U_PMF_VARRECTS_get(const char **contents, uint16_t Flags, int Elements, U_PMF_RECTF **Rects, const char *blimit){ int16_t X16, Y16, Width, Height; - if(!contents || !*contents || !Rects){ return(0); } + if(!contents || !*contents || !Rects || !blimit){ return(0); } U_PMF_RECTF *rts = (U_PMF_RECTF *)malloc(Elements * sizeof(U_PMF_RECTF)); if(!rts){ *Rects = NULL; @@ -6430,16 +6662,28 @@ int U_PMF_VARRECTS_get(const char **contents, uint16_t Flags, int Elements, U_PM } *Rects = rts; + if(Flags & U_PPF_C){ + if(IS_MEM_UNSAFE(*contents, Elements*sizeof(U_PMF_RECT), blimit)){ + free(rts); + return(0); + } + } + else { + if(IS_MEM_UNSAFE(*contents, Elements*sizeof(U_PMF_RECT), blimit)){ + free(rts); + return(0); + } + } for(; Elements; Elements--, rts++){ if(Flags & U_PPF_C){ - (void) U_PMF_RECT_get(contents, &X16, &Y16, &Width, &Height); + (void) U_PMF_RECT_get(contents, &X16, &Y16, &Width, &Height, blimit); rts->X = X16; rts->Y = Y16; rts->Width = Width; rts->Height = Height; } else { - (void) U_PMF_RECTF_get(contents, &(rts->X), &(rts->Y), &(rts->Width), &(rts->Height)); + (void) U_PMF_RECTF_get(contents, &(rts->X), &(rts->Y), &(rts->Width), &(rts->Height), blimit); } } return(1); @@ -6451,13 +6695,18 @@ int U_PMF_VARRECTS_get(const char **contents, uint16_t Flags, int Elements, U_PM \param contents Record from which to extract data \param Type RegionNodeDataType \param Data Depending on Type: U_PMF_REGIONNODEPATH, U_PMF_RECTF, or U_PMF_REGIONNODECHILDNODES - + \param blimit one byte past the end of data EMF+ manual 2.2.2.40, Microsoft name: EmfPlusRegionNode Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data){ - if(!contents || !Type|| !Data){ return(0); } +int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data, const char *blimit){ + if(!contents || !Type || !Data || !blimit){ return(0); } + /* Important! This only checks the constant part, the caller must check that returned data doesn't exceed blimit */ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_REGIONNODE), blimit))return(0); U_PMF_SERIAL_get(&contents, Type, 4, 1, U_LE); + if(contents >= blimit)return(0); // returned Data is variable size, this much at least must be true U_PMF_PTRSAV_COND(Data, contents, !(*Type == U_RNDT_Empty || *Type == U_RNDT_Infinite )); return(1); } @@ -6481,12 +6730,16 @@ int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data \param contents Record from which to extract data \param Size Bytes in Data \param Data Boundary of region node + \param blimit one byte past the end of data EMF+ manual 2.2.2.42, Microsoft name: EmfPlusRegionNodePath Object */ -int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data){ - if(!contents || !Size || !Data){ return(0); } +int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data, const char *blimit){ + if(!contents || !Size || !Data || !blimit){ return(0); } + /* Important! This only checks the constant part, the caller must check that returned data doesn't exceed blimit */ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_REGIONNODEPATH), blimit))return(0); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); + if(contents >= blimit)return(0); // returned Data is variable size, this much at least must be true U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -6496,11 +6749,13 @@ int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **D \return 1 on success, 0 on error \param contents Record from which to extract data \param Color Color of brush + \param blimit one byte past the end of data EMF+ manual 2.2.2.43, Microsoft name: EmfPlusSolidBrushData Object */ -int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color){ - if(!contents || !Color){ return(0); } +int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color, const char *blimit){ + if(!contents || !Color || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_SOLIDBRUSHDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Color, 4, 1, U_XE); return(1); } @@ -6513,12 +6768,14 @@ int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color){ \param RangeCount Entries in CharRange array \param TabStops Array of tabstop locations \param CharRange Array of character ranges in the text + \param blimit one byte past the end of data EMF+ manual 2.2.2.44, Microsoft name: EmfPlusStringFormatData Object */ int U_PMF_STRINGFORMATDATA_get(const char *contents, uint32_t TabStopCount, uint32_t RangeCount, - const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange){ - if(!contents || !TabStops|| !CharRange){ return(0); } + const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange, const char *blimit){ + if(!contents || !TabStops|| !CharRange || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, (TabStopCount + 2*RangeCount)*4, blimit))return(0); *TabStops = NULL; if(TabStopCount > 0){ U_PMF_SERIAL_get(&contents, TabStops, 4, TabStopCount, U_LE); } *CharRange = NULL; @@ -6533,13 +6790,19 @@ int U_PMF_STRINGFORMATDATA_get(const char *contents, uint32_t TabStopCount, uint \param Flags BrushData flags \param WrapMode WrapMode enumeration \param Data Optional texture data + \param blimit one byte past the end of data EMF+ manual 2.2.2.45, Microsoft name: EmfPlusTextureBrushData Object + + Caller must check Data for possible memory access violations. */ -int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data){ - if(!contents || !Flags || !WrapMode || !Data){ return(0); } +int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data, const char *blimit){ + if(!contents || !Flags || !WrapMode || !Data || !blimit){ return(0); } + /* Important! This only checks the constant part, the caller must check that returned data doesn't exceed blimit */ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_TEXTUREBRUSHDATA), blimit))return(0); U_PMF_SERIAL_get(&contents, Flags, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, WrapMode, 4, 1, U_LE); + if(contents >= blimit)return(0); // returned Data is variable size, this much at least must be true U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -6549,16 +6812,25 @@ int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *W \return 1 on success, 0 on error \param contents Record from which to extract data \param HasImage True if this object has an Image - \param Matrix Transformation matrix, present if Flag BrushDataTransform is set. + \param Matrix Transformation matrix, NULL if Flag BrushDataTransform is not set. \param Image Image that contains the texture. - + \param blimit one byte past the end of data EMF+ manual 2.2.2.46, Microsoft name: EmfPlusTextureBrushOptionalData Object + + Caller must check Image for possible memory access violations. */ -int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, const char **Image){ - if(!contents || !Matrix || !Image){ return(0); } - U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); - U_PMF_PTRSAV_COND(Image, contents, HasImage); +int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, + const char **Image, const char *blimit){ + if(!contents || !Image || !blimit){ return(0); } + if(Matrix){ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_TRANSFORMMATRIX), blimit))return(0); + U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); + } + if(HasImage){ + if(contents >= blimit)return(0); // returned Data is variable size, this much at least must be true + U_PMF_PTRSAV_COND(Image, contents, HasImage); + } return(1); } @@ -6567,11 +6839,13 @@ int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF \return 1 on success, 0 on error \param contents Record from which to extract data \param Matrix Transformation matrix, present if Flag BrushDataTransform is set. + \param blimit one byte past the end of data EMF+ manual 2.2.2.47, Microsoft name: EmfPlusTransformMatrix Object */ -int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix){ - if(!contents || !Matrix){ return(0); } +int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix, const char *blimit){ + if(!contents || !Matrix || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_TRANSFORMMATRIX), blimit))return(0); U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); return(1); } @@ -6582,11 +6856,13 @@ int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matri \param contents Record from which to extract data \param Radius Blur radius in pixels \param ExpandEdge 1: expand bitmap by Radius; 0: bitmap size unchanged + \param blimit one byte past the end of data EMF+ manual 2.2.3.1, Microsoft name: BlurEffect Object */ -int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge){ - if(!contents || !Radius || !ExpandEdge){ return(0); } +int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge, const char *blimit){ + if(!contents || !Radius || !ExpandEdge || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_BLUR), blimit))return(0); U_PMF_SERIAL_get(&contents, Radius, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, ExpandEdge, 4, 1, U_LE); return(1); @@ -6598,11 +6874,13 @@ int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdg \param contents Record from which to extract data \param Brightness -255 to 255, 0 is unchanged, positive increases, negative decreases \param Contrast -100 to 100, 0 is unchanged, positive increases, negative decreases + \param blimit one byte past the end of data EMF+ manual 2.2.3.2, Microsoft name: BrightnessContrastEffect Object */ -int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast){ - if(!contents || !Brightness || !Contrast){ return(0); } +int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast, const char *blimit){ + if(!contents || !Brightness || !Contrast || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_BRIGHTNESSCONTRAST), blimit))return(0); U_PMF_SERIAL_get(&contents, Brightness, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Contrast, 4, 1, U_LE); return(1); @@ -6615,11 +6893,13 @@ int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, i \param CyanRed -100 to 100, 0 is unchanged, positive increases Red & decreases Cyan, negative is opposite \param MagentaGreen -100 to 100, 0 is unchanged, positive increases Green & decreases Magenta, negative is opposite \param YellowBlue -100 to 100, 0 is unchanged, positive increases Blue & decreases Yellow, negative is opposite + \param blimit one byte past the end of data EMF+ manual 2.2.3.3, Microsoft name: ColorBalanceEffect Object */ -int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue){ - if(!contents || !CyanRed || !MagentaGreen || !YellowBlue){ return(0); } +int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue, const char *blimit){ + if(!contents || !CyanRed || !MagentaGreen || !YellowBlue || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_COLORBALANCE), blimit))return(0); U_PMF_SERIAL_get(&contents, CyanRed, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, MagentaGreen, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, YellowBlue, 4, 1, U_LE); @@ -6634,11 +6914,13 @@ int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *M \param Adjust CurveAdjustment enumeration \param Channel CurveChannel enumeration \param Intensity adjustment to apply. "Adjust" determines what field this is and range values. + \param blimit one byte past the end of data EMF+ manual 2.2.3.4, Microsoft name: ColorCurveEffect Object */ -int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity){ - if(!contents || !Adjust || !Channel || !Intensity){ return(0); } +int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity, const char *blimit){ + if(!contents || !Adjust || !Channel || !Intensity || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_COLORCURVE), blimit))return(0); U_PMF_SERIAL_get(&contents, Adjust, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Channel, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Intensity, 4, 1, U_LE); @@ -6653,12 +6935,14 @@ int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Ch \param GLUT Green color lookup table \param RLUT Red color lookup table \param ALUT Alpha color lookup table + \param blimit one byte past the end of data EMF+ manual 2.2.3.5, Microsoft name: ColorLookupTableEffect Object */ int U_PMF_IE_COLORLOOKUPTABLE_get(const char *contents, - const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT){ - if(!contents || !BLUT || !GLUT || !RLUT || !ALUT){ return(0); } + const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT, const char *blimit){ + if(!contents || !BLUT || !GLUT || !RLUT || !ALUT || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_COLORLOOKUPTABLE) + 4 * 256, blimit))return(0); U_PMF_PTRSAV_SHIFT((const char **)BLUT, &contents, 256); U_PMF_PTRSAV_SHIFT((const char **)GLUT, &contents, 256); U_PMF_PTRSAV_SHIFT((const char **)RLUT, &contents, 256); @@ -6671,11 +6955,14 @@ int U_PMF_IE_COLORLOOKUPTABLE_get(const char *contents, \return 1 on success, 0 on error \param contents Record from which to extract data \param Matrix 5 x 5 color transformation matrix, First 4 rows are [{4 multiplier values},0.0] for R,G,B,A, last Row is [{4 color translation valuess}, 1.0] + \param blimit one byte past the end of data EMF+ manual 2.2.3.6, Microsoft name: ColorMatrixEffect Object */ -int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix){ - if(!contents || !Matrix){ return(0); } +int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix, const char *blimit){ + if(!contents || !Matrix || !blimit){ return(0); } + /* Important! This only checks the constant part, the caller must check that returned data doesn't exceed blimit */ + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_COLORMATRIX), blimit))return(0); U_PMF_SERIAL_get(&contents, Matrix, 4, 5*5, U_LE); return(1); } @@ -6687,11 +6974,13 @@ int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix) \param Hue -180 to 180, 0 is unchanged \param Saturation -100 to 100, 0 is unchanged \param Lightness -100 to 100, 0 is unchanged + \param blimit one byte past the end of data EMF+ manual 2.2.3.7, Microsoft name: HueSaturationLightnessEffect Object */ -int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness){ - if(!contents || !Hue || !Saturation || !Lightness){ return(0); } +int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness, const char *blimit){ + if(!contents || !Hue || !Saturation || !Lightness || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_HUESATURATIONLIGHTNESS), blimit))return(0); U_PMF_SERIAL_get(&contents, Hue, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Saturation, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Lightness, 4, 1, U_LE); @@ -6705,11 +6994,13 @@ int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int3 \param Highlight 0 to 100, 100 is unchanged \param Midtone -100 to 100, 0 is unchanged \param Shadow 0 to 100, 0 is unchanged + \param blimit one byte past the end of data EMF+ manual 2.2.3.8, Microsoft name: LevelsEffect Object */ -int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow){ - if(!contents || !Highlight || !Midtone || !Shadow){ return(0); } +int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow, const char *blimit){ + if(!contents || !Highlight || !Midtone || !Shadow || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_LEVELS), blimit))return(0); U_PMF_SERIAL_get(&contents, Highlight, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Midtone, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Shadow, 4, 1, U_LE); @@ -6722,12 +7013,15 @@ int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midto \param contents Record from which to extract data \param Elements Number of members in Rects \param Rects Caller must free. Pointer to memory holding an array of U_RECTL. + \param blimit one byte past the end of data EMF+ manual 2.2.3.9, Microsoft name: RedEyeCorrectionEffect Object */ -int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects){ - if(!contents || !Elements || !Rects){ return(0); } +int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects, const char *blimit){ + if(!contents || !Elements || !Rects || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_REDEYECORRECTION), blimit))return(0); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * 4, blimit))return(0); *Rects = (U_RECTL *) malloc(*Elements * sizeof(U_RECTL)); if(!*Rects){ return(0); } U_PMF_SERIAL_get(&contents, *Rects, 4, *Elements * 4, U_LE); @@ -6740,11 +7034,13 @@ int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_REC \param contents Record from which to extract data \param Radius Sharpening radius in pixels \param Sharpen 0 to 100, 0 is unchanged + \param blimit one byte past the end of data EMF+ manual 2.2.3.10, Microsoft name: SharpenEffect Object */ -int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen){ - if(!contents || !Radius || !Sharpen){ return(0); } +int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen, const char *blimit){ + if(!contents || !Radius || !Sharpen || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_SHARPEN), blimit))return(0); U_PMF_SERIAL_get(&contents, Radius, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Sharpen, 4, 1, U_LE); return(1); @@ -6756,16 +7052,51 @@ int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen \param contents Record from which to extract data \param Hue -180 to 180, [positive==clockwise] rotation in degrees starting from blue \param Amount -100 [add black] to 100[add white], 0 is unchanged. Change in hue on specified axis + \param blimit one byte past the end of data EMF+ manual 2.2.3.11, Microsoft name: TintEffect Object */ -int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount){ - if(!contents || !Hue || !Amount){ return(0); } +int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount, const char *blimit){ + if(!contents || !Hue || !Amount || !blimit){ return(0); } + if(IS_MEM_UNSAFE(contents, sizeof(U_PMF_IE_TINT), blimit))return(0); U_PMF_SERIAL_get(&contents, Hue, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Amount, 4, 1, U_LE); return(1); } +/* + + end of U_PMF_*_get() functions + ===================================================================================== + start of U_PMR_*_get() functions + + These functions all assume that the size field in the common EMF+ header has already + been checked, so that the extent the record claims exists in the data read in for the file. + Consequently none of them takes a blimit parameter. They generate a new one from the + header size field and contents if needed. + +*/ + +int U_PMR_common_stack_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID){ + if(!contents || !StackID){ return(0); } + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_RESTORE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); + return(1); +} + +/* for records that have a type but no associated flag bits or data */ +int U_PMR_common_header_get(const char *contents, U_PMF_CMN_HDR *Header){ + /* memory access safe, only uses the common header */ + if(!contents){ return(0); } + U_PMF_CMN_HDR_get(&contents, Header); + return(1); +} + /** \brief Get data from a U_PMR_OFFSETCLIP record \return 1 on success, 0 on error @@ -6779,7 +7110,12 @@ int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount){ int U_PMR_OFFSETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *dX, U_FLOAT *dY){ if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_OFFSETCLIP))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_SERIAL_get(&contents, dX, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, dY, 4, 1, U_LE); return(1); @@ -6812,10 +7148,14 @@ int U_PMR_RESETCLIP_get(const char *contents, U_PMF_CMN_HDR *Header){ int U_PMR_SETCLIPPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum){ if(!contents || !PathID || !CMenum){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *CMenum = (Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; - *PathID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETCLIPPATH))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *CMenum = (lclHeader.Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; + *PathID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; return(1); } @@ -6833,9 +7173,13 @@ int U_PMR_SETCLIPRECT_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum, U_PMF_RECTF *Rect){ if(!contents || !CMenum || !Rect ){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *CMenum = (Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETCLIPRECT))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *CMenum = (lclHeader.Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); return(1); } @@ -6853,10 +7197,14 @@ int U_PMR_SETCLIPRECT_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_SETCLIPREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *CMenum){ if(!contents || !PathID || !CMenum){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *CMenum = (Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; - *PathID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETCLIPREGION))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *CMenum = (lclHeader.Flags >> U_FF_SHFT_CM4) & U_FF_MASK_CM4; + *PathID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; return(1); } @@ -6868,11 +7216,18 @@ int U_PMR_SETCLIPREGION_get(const char *contents, U_PMF_CMN_HDR *Header, \param Data Private data, may be anything EMF+ manual 2.3.2.1, Microsoft name: EmfPlusComment Record, Index 0x03 + + Caller must check Data for possible memory access violations. */ int U_PMR_COMMENT_get(const char *contents, U_PMF_CMN_HDR *Header, const char **Data){ if(!contents || !Data){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_COMMENT))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_PTRSAV_SHIFT(Data, &contents, 0); return(1); } @@ -6922,9 +7277,13 @@ int U_PMR_HEADER_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_GRAPHICSVERSION *Version, int *IsDual, int *IsVideo, uint32_t *LogicalDpiX, uint32_t *LogicalDpiY){ if(!contents || !Version || !IsDual || !IsVideo || !LogicalDpiX || !LogicalDpiY){ return(0); } uint32_t tmp; - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *IsDual = (Flags & U_PPF_DM ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_HEADER))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *IsDual = (lclHeader.Flags & U_PPF_DM ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Version, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, &tmp, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, LogicalDpiX, 4, 1, U_LE); @@ -6945,7 +7304,12 @@ int U_PMR_HEADER_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_CLEAR_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_ARGB *Color){ if(!contents || !Color){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_CLEAR))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_SERIAL_get(&contents, Color, 4, 1, U_LE); return(1); } @@ -6968,16 +7332,26 @@ int U_PMR_DRAWARC_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect){ if(!contents || !PenID || !ctype || !Start || !Sweep || !Rect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWARC))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Start, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Sweep, 4, 1, U_LE); - U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); + U_PMF_RECTF *Rects = NULL; + if(!U_PMF_VARRECTS_get(&contents, lclHeader.Flags, 1, &Rects, blimit))return(0); + memcpy(Rect,Rects,sizeof(U_PMF_RECTF)); + free(Rects); return(1); } + /** \brief Get data from a U_PMR_DRAWBEZIERS record \return 1 on success, 0 on error @@ -6996,14 +7370,20 @@ int U_PMR_DRAWBEZIERS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !PenID || !ctype || !RelAbs || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_P ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWBEZIERS))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_P ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); - return(1); + int status = U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit ); + return(status); } /** @@ -7025,14 +7405,20 @@ int U_PMR_DRAWCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !PenID || !ctype || !RelAbs || !Tension || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_P ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWCLOSEDCURVE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_P ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Tension, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7056,15 +7442,21 @@ int U_PMR_DRAWCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *Tension, uint32_t *Offset, uint32_t *NSegs, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !PenID || !ctype || !Tension || !Offset || !NSegs || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWCURVE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Tension, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Offset, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, NSegs, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7092,15 +7484,22 @@ int U_PMR_DRAWDRIVERSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint16_t **Glyphs, U_PMF_POINTF **Points, U_PMF_TRANSFORMMATRIX **Matrix){ if(!contents || !FontID || !btype || !Tension || !BrushID || !DSOFlags || !HasMatrix || !Elements || !Glyphs || !Points || !Matrix){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *FontID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWDRIVERSTRING))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *FontID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Tension, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, DSOFlags, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, HasMatrix, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements*2 + *Elements*2*4 + 24, blimit))return(0); if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Glyphs, 2, *Elements, U_LE, (*DSOFlags & U_DSO_CmapLookup))){ return(0); } if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Points, 4, *Elements *2, U_LE, (*DSOFlags & U_DSO_RealizedAdvance))){ return(0); } if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)Matrix, 4, 6, U_LE, (*HasMatrix))){ return(0); } @@ -7122,10 +7521,14 @@ int U_PMR_DRAWELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PenID, int *ctype, U_PMF_RECTF *Rect){ if(!contents || !PenID || !ctype || !Rect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWELLIPSE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); return(1); } @@ -7149,10 +7552,14 @@ int U_PMR_DRAWIMAGE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, U_PMF_RECTF *DstRect){ if(!contents || !ImgID || !ctype || !ImgAttrID || !SrcUnit || !SrcRect || !DstRect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *ImgID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWIMAGE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *ImgID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, ImgAttrID, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, SrcUnit, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, SrcRect, 4, 4, U_LE); @@ -7182,17 +7589,23 @@ int U_PMR_DRAWIMAGEPOINTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ImgAttrID, int32_t *SrcUnit, U_PMF_RECTF *SrcRect, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !ImgID || !ctype || !etype || !RelAbs || !ImgAttrID || !SrcUnit || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *etype = (Flags & U_PPF_E ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_P ? 1 : 0 ); - *ImgID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWIMAGEPOINTS))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *etype = (lclHeader.Flags & U_PPF_E ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_P ? 1 : 0 ); + *ImgID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, ImgAttrID, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, SrcUnit, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, SrcRect, 4, 4, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7215,14 +7628,20 @@ int U_PMR_DRAWLINES_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !PenID || !ctype || !dtype || !RelAbs || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *dtype = (Flags & U_PPF_D ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_P ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWLINES))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *dtype = (lclHeader.Flags & U_PPF_D ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_P ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7239,9 +7658,13 @@ int U_PMR_DRAWLINES_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_DRAWPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, uint32_t *PenID){ if(!contents || !PathID || !PenID){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *PathID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWPATH))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *PathID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, PenID, 4, 1, U_LE); return(1); } @@ -7264,13 +7687,22 @@ int U_PMR_DRAWPIE_get(const char *contents, U_PMF_CMN_HDR *Header, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect){ if(!contents || !PenID || !ctype || !Start || !Sweep || !Rect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWPIE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, Start, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Sweep, 4, 1, U_LE); - U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); + U_PMF_RECTF *Rects = NULL; + if(!U_PMF_VARRECTS_get(&contents, lclHeader.Flags, 1, &Rects, blimit))return(0); + memcpy(Rect,Rects,sizeof(U_PMF_RECTF)); + free(Rects); return(1); } @@ -7294,12 +7726,18 @@ int U_PMR_DRAWRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *Elements, U_PMF_RECTF **Rects){ if(!contents || !PenID || !Elements || !Rects){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *PenID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWPIE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *PenID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARRECTS_get(&contents, Flags, *Elements, Rects); + U_PMF_VARRECTS_get(&contents, lclHeader.Flags, *Elements, Rects, blimit); return(1); } @@ -7323,14 +7761,21 @@ int U_PMR_DRAWSTRING_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, uint32_t *FormatID, uint32_t *Elements, U_PMF_RECTF *Rect, uint16_t **String){ if(!contents || !FontID || !btype || !BrushID || !FormatID || !Elements || !String){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *FontID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWPIE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *FontID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, FormatID, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); + if(IS_MEM_UNSAFE(contents, *Elements * 2, blimit))return(0); if(!U_PMF_SERIAL_array_copy_get(&contents, (void **)String, 2, *Elements, U_XE, 1)){ return(0); } return(1); } @@ -7356,16 +7801,22 @@ int U_PMR_FILLCLOSEDCURVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, U_FLOAT *Tension, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !btype || !ctype || !ftype || !RelAbs || !BrushID || !Tension || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *ftype = (Flags & U_PPF_F ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_P ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWLINES))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *ftype = (lclHeader.Flags & U_PPF_F ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_P ? 1 : 0 ); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, Tension, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7386,10 +7837,14 @@ int U_PMR_FILLELLIPSE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, U_PMF_RECTF *Rect){ if(!contents || !btype || !ctype || !BrushID || !Rect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_FILLELLIPSE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); return(1); @@ -7412,10 +7867,14 @@ int U_PMR_FILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *PathID, int *btype, uint32_t *BrushID){ if(!contents || !PathID || !btype || !BrushID){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *PathID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_FILLPATH))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *PathID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ return(1); } @@ -7439,14 +7898,23 @@ int U_PMR_FILLPIE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, U_FLOAT *Start, U_FLOAT *Sweep, U_PMF_RECTF *Rect){ if(!contents || !btype || !ctype || !BrushID || !Start || !Sweep || !Rect){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_FILLPIE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, Start, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Sweep, 4, 1, U_LE); - U_PMF_SERIAL_get(&contents, Rect, 4, 4, U_LE); + U_PMF_RECTF *Rects = NULL; + if(!U_PMF_VARRECTS_get(&contents, lclHeader.Flags, 1, &Rects, blimit))return(0); + memcpy(Rect,Rects,sizeof(U_PMF_RECTF)); + free(Rects); return(1); } @@ -7469,14 +7937,20 @@ int U_PMR_FILLPOLYGON_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, uint32_t *Elements, U_PMF_POINTF **Points){ if(!contents || !btype || !ctype || !RelAbs || !BrushID || !Elements || !Points){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *RelAbs = (Flags & U_PPF_R ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_DRAWLINES))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *RelAbs = (lclHeader.Flags & U_PPF_R ? 1 : 0 ); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARPOINTS_get(&contents, Flags, *Elements, Points); + U_PMF_VARPOINTS_get(contents, lclHeader.Flags, *Elements, Points, blimit); return(1); } @@ -7505,13 +7979,19 @@ int U_PMR_FILLRECTS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *BrushID, uint32_t *Elements, U_PMF_RECTF **Rects){ if(!contents || !btype || !ctype || !BrushID || !Elements || !Rects){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_FILLRECTS))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ U_PMF_SERIAL_get(&contents, Elements, 4, 1, U_LE); - U_PMF_VARRECTS_get(&contents, Flags, *Elements, Rects); + U_PMF_VARRECTS_get(&contents, lclHeader.Flags, *Elements, Rects, blimit); /* correct btype, if necessary, for invalid EMF+ input */ if((*BrushID > 63) & !*btype)*btype=1; return(1); @@ -7534,11 +8014,15 @@ int U_PMR_FILLREGION_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *RgnID, int *btype, int *ctype, uint32_t *BrushID){ if(!contents || !RgnID || !btype || !ctype || !BrushID){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *btype = (Flags & U_PPF_B ? 1 : 0 ); - *ctype = (Flags & U_PPF_C ? 1 : 0 ); - *RgnID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_FILLREGION))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *btype = (lclHeader.Flags & U_PPF_B ? 1 : 0 ); + *ctype = (lclHeader.Flags & U_PPF_C ? 1 : 0 ); + *RgnID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; U_PMF_SERIAL_get(&contents, BrushID, 4, 1, (*btype ? U_XE : U_LE)); /* color is not byte swapped, ID integer is */ return(1); } @@ -7556,6 +8040,8 @@ int U_PMR_FILLREGION_get(const char *contents, U_PMF_CMN_HDR *Header, EMF+ manual 2.3.5.1, Microsoft name: EmfPlusObject Record, Index 0x13 + Caller must check Data for possible memory access violations. + OTHER NOTES: All objects are to be stored in the same table and retrieved by index. Documentation indicates that this table contains only 64 slots, although the index @@ -7585,11 +8071,15 @@ int U_PMR_OBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *ObjID, int *otype, int *ntype, uint32_t *TSize, const char **Data){ if(!contents || !ObjID || !otype || !ntype || !Data){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ntype = (Flags & U_PPF_N ? 1 : 0 ); - *ObjID = (Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; - *otype = (Flags >> U_FF_SHFT_OT) & U_FF_MASK_OT; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_OBJECT))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *ntype = (lclHeader.Flags & U_PPF_N ? 1 : 0 ); + *ObjID = (lclHeader.Flags >> U_FF_SHFT_OID8) & U_FF_MASK_OID8; + *otype = (lclHeader.Flags >> U_FF_SHFT_OT) & U_FF_MASK_OT; if(*ntype){ U_PMF_SERIAL_get(&contents, TSize, 4, 1, U_LE); } else { *TSize = 0; } U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -7606,12 +8096,19 @@ int U_PMR_OBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, \param Data "Serialized image effects parameter block". One of the ImageEffects objects. EMF+ manual 2.3.5.2, Microsoft name: EmfPlusSerializableObject Record, Index 0x38 + + Caller must check Data for possible memory access violations. */ int U_PMR_SERIALIZABLEOBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, uint8_t *GUID, uint32_t *Size, const char **Data){ if(!contents || !GUID || !Size || !Data){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SERIALIZABLEOBJECT))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_SERIAL_get(&contents, GUID, 1, 16, U_XE); U_PMF_SERIAL_get(&contents, Size, 4, 1, U_LE); U_PMF_PTRSAV_SHIFT(Data, &contents, 0); @@ -7631,10 +8128,14 @@ int U_PMR_SERIALIZABLEOBJECT_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_SETANTIALIASMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *SMenum, int *aatype){ if(!contents || !SMenum || !aatype){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *aatype = (Flags & U_PPF_AA ? 1 : 0 ); - *SMenum = (Flags >> U_FF_SHFT_AA) & U_FF_MASK_AA; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETANTIALIASMODE))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *aatype = (lclHeader.Flags & U_PPF_AA ? 1 : 0 ); + *SMenum = (lclHeader.Flags >> U_FF_SHFT_AA) & U_FF_MASK_AA; return(1); } @@ -7649,6 +8150,7 @@ int U_PMR_SETANTIALIASMODE_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETCOMPOSITINGMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *CMenum){ + /* memory access safe, only uses the common header */ if(!contents || !CMenum){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *CMenum = (Flags >> U_FF_SHFT_CM) & U_FF_MASK_CM; @@ -7667,6 +8169,7 @@ int U_PMR_SETCOMPOSITINGMODE_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETCOMPOSITINGQUALITY_get(const char *contents, U_PMF_CMN_HDR *Header, int *CQenum){ + /* memory access safe, only uses the common header */ if(!contents || !CQenum){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *CQenum = (Flags >> U_FF_SHFT_CQ) & U_FF_MASK_CQ; @@ -7685,6 +8188,7 @@ int U_PMR_SETCOMPOSITINGQUALITY_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETINTERPOLATIONMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *IMenum){ + /* memory access safe, only uses the common header */ if(!contents || !IMenum){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *IMenum = (Flags >> U_FF_SHFT_IM) & U_FF_MASK_IM; @@ -7703,6 +8207,7 @@ int U_PMR_SETINTERPOLATIONMODE_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETPIXELOFFSETMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int *POMenum){ + /* memory access safe, only uses the common header */ if(!contents || !POMenum){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *POMenum = (Flags >> U_FF_SHFT_PxOffM) & U_FF_MASK_PxOffM; @@ -7723,7 +8228,12 @@ int U_PMR_SETPIXELOFFSETMODE_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_SETRENDERINGORIGIN_get(const char *contents, U_PMF_CMN_HDR *Header, int32_t *X, int32_t *Y){ if(!contents || !X || !Y){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + if(!U_PMF_CMN_HDR_get(&contents, &lclHeader))return(0); + if(lclHeader.Size < sizeof(U_PMF_SETRENDERINGORIGIN))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_SERIAL_get(&contents, X, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Y, 4, 1, U_LE); return(1); @@ -7740,6 +8250,7 @@ int U_PMR_SETRENDERINGORIGIN_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETTEXTCONTRAST_get(const char *contents, U_PMF_CMN_HDR *Header, int *TGC){ + /* memory access safe, only uses the common header */ if(!contents || !TGC){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *TGC = (Flags >> U_FF_SHFT_TGC) & U_FF_MASK_TGC; @@ -7758,6 +8269,7 @@ int U_PMR_SETTEXTCONTRAST_get(const char *contents, U_PMF_CMN_HDR *Header, */ int U_PMR_SETTEXTRENDERINGHINT_get(const char *contents, U_PMF_CMN_HDR *Header, int *TRHenum){ + /* memory access safe, only uses the common header */ if(!contents || !TRHenum){ return(0); } uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); *TRHenum = (Flags >> U_FF_SHFT_TRH) & U_FF_MASK_TRH; @@ -7781,9 +8293,13 @@ int U_PMR_BEGINCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, int *UTenum, U_PMF_RECTF *DstRect, U_PMF_RECTF *SrcRect, uint32_t *StackID){ if(!contents || !UTenum || !DstRect || !SrcRect || !StackID){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *UTenum = (Flags >> U_FF_SHFT_UT) & U_FF_MASK_UT; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETCLIPREGION))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *UTenum = (lclHeader.Flags >> U_FF_SHFT_UT) & U_FF_MASK_UT; U_PMF_SERIAL_get(&contents, DstRect, 4, 4, U_LE); U_PMF_SERIAL_get(&contents, SrcRect, 4, 4, U_LE); U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); @@ -7800,10 +8316,7 @@ int U_PMR_BEGINCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, EMF+ manual 2.3.7.2, Microsoft name: EmfPlusBeginContainerNoParams Record, Index 0x28 */ int U_PMR_BEGINCONTAINERNOPARAMS_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID){ - if(!contents || !StackID){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); - return(1); + return(U_PMR_common_stack_get(contents, Header, StackID)); } /** @@ -7815,12 +8328,8 @@ int U_PMR_BEGINCONTAINERNOPARAMS_get(const char *contents, U_PMF_CMN_HDR *Header EMF+ manual 2.3.7.3, Microsoft name: EmfPlusEndContainer Record, Index 0x29 */ -int U_PMR_ENDCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, - uint32_t *StackID){ - if(!contents || !StackID){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); - return(1); +int U_PMR_ENDCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID){ + return(U_PMR_common_stack_get(contents, Header, StackID)); } /** @@ -7833,10 +8342,7 @@ int U_PMR_ENDCONTAINER_get(const char *contents, U_PMF_CMN_HDR *Header, EMF+ manual 2.3.7.4, Microsoft name: EmfPlusRestore Record, Index 0x26 */ int U_PMR_RESTORE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID){ - if(!contents || !StackID){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); - return(1); + return(U_PMR_common_stack_get(contents, Header, StackID)); } /** @@ -7849,10 +8355,7 @@ int U_PMR_RESTORE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *Sta EMF+ manual 2.3.7.5, Microsoft name: EmfPlusSave Record, Index 0x25 */ int U_PMR_SAVE_get(const char *contents, U_PMF_CMN_HDR *Header, uint32_t *StackID){ - if(!contents || !StackID){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - U_PMF_SERIAL_get(&contents, StackID, 4, 1, U_LE); - return(1); + return(U_PMR_common_stack_get(contents, Header, StackID)); } /** @@ -7870,11 +8373,17 @@ int U_PMR_SETTSCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, int *ctype, uint32_t *Elements, U_PMF_RECTF **Rects){ if(!contents || !ctype || !Elements || !Rects){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *ctype = (Flags & U_PPF_K ? 1 : 0 ); - *Elements = (Flags >> U_FF_SHFT_TSC) & U_FF_MASK_TSC; - U_PMF_CMN_HDR_get(&contents, Header); - U_PMF_VARRECTS_get(&contents, Flags, *Elements, Rects); + + const char *blimit = contents; + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETTSCLIP))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + blimit += lclHeader.Size; + + *ctype = (lclHeader.Flags & U_PPF_K ? 1 : 0 ); + *Elements = (lclHeader.Flags >> U_FF_SHFT_TSC) & U_FF_MASK_TSC; + U_PMF_VARRECTS_get(&contents, lclHeader.Flags, *Elements, Rects, blimit); return(1); } @@ -7898,6 +8407,8 @@ int U_PMR_SETTSCLIP_get(const char *contents, U_PMF_CMN_HDR *Header, \param Data Palette (optional) EMF+ manual 2.3.8.2, Microsoft name: EmfPlusSetTSGraphics Record, Index 0x39 + + Caller must check Data for possible memory access violations. */ int U_PMR_SETTSGRAPHICS_get(const char *contents, U_PMF_CMN_HDR *Header, int *vgatype, int *pptype, @@ -7909,10 +8420,14 @@ int U_PMR_SETTSGRAPHICS_get(const char *contents, U_PMF_CMN_HDR *Header, !AntiAliasMode || !TextRenderHint || !CompositingMode || !CompositingQuality || !RenderOriginX || !RenderOriginY || !TextContrast || !FilterType || !PixelOffset || !WorldToDevice || !Data){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *vgatype = (Flags & U_PPF_VGA ? 1 : 0 ); - *pptype = (Flags & U_PPF_PP ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETTSGRAPHICS))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *vgatype = (lclHeader.Flags & U_PPF_VGA ? 1 : 0 ); + *pptype = (lclHeader.Flags & U_PPF_PP ? 1 : 0 ); U_PMF_SERIAL_get(&contents, AntiAliasMode, 1, 1, U_XE); U_PMF_SERIAL_get(&contents, TextRenderHint, 1, 1, U_XE); U_PMF_SERIAL_get(&contents, CompositingMode, 1, 1, U_XE); @@ -7940,9 +8455,13 @@ int U_PMR_MULTIPLYWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header int *xmtype, U_PMF_TRANSFORMMATRIX *Matrix){ if(!contents || !xmtype || !Matrix){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *xmtype = (Flags & U_PPF_XM ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_MULTIPLYWORLDTRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *xmtype = (lclHeader.Flags & U_PPF_XM ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); return(1); } @@ -7956,9 +8475,7 @@ int U_PMR_MULTIPLYWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header EMF+ manual 2.3.9.2, Microsoft name: EmfPlusResetWorldTransform Record, Index 0x2B */ int U_PMR_RESETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header){ - if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - return(1); + return( U_PMR_common_header_get(contents,Header)); } /** @@ -7975,9 +8492,13 @@ int U_PMR_ROTATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Angle){ if(!contents || !xmtype || !Angle){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *xmtype = (Flags & U_PPF_XM ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_ROTATEWORLDTRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *xmtype = (lclHeader.Flags & U_PPF_XM ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Angle, 4, 1, U_LE); return(1); } @@ -7997,9 +8518,13 @@ int U_PMR_SCALEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *xmtype, U_FLOAT *Sx, U_FLOAT *Sy){ if(!contents || !xmtype || !Sx || !Sy){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *xmtype = (Flags & U_PPF_XM ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SCALEWORLDTRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *xmtype = (lclHeader.Flags & U_PPF_XM ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Sx, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Sy, 4, 1, U_LE); return(1); @@ -8019,9 +8544,13 @@ int U_PMR_SETPAGETRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int *PUenum, U_FLOAT *Scale){ if(!contents || !PUenum || !Scale){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *PUenum = (Flags >> U_FF_SHFT_PU) & U_FF_MASK_PU; - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETPAGETRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *PUenum = (lclHeader.Flags >> U_FF_SHFT_PU) & U_FF_MASK_PU; U_PMF_SERIAL_get(&contents, Scale, 4, 1, U_LE); return(1); } @@ -8038,7 +8567,12 @@ int U_PMR_SETPAGETRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, int U_PMR_SETWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Header, U_PMF_TRANSFORMMATRIX *Matrix){ if(!contents || !Matrix){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_SETWORLDTRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + U_PMF_SERIAL_get(&contents, Matrix, 4, 6, U_LE); return(1); } @@ -8058,9 +8592,13 @@ int U_PMR_TRANSLATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Heade int *xmtype, U_FLOAT *Dx, U_FLOAT *Dy){ if(!contents || !xmtype || !Dx || !Dy){ return(0); } - uint16_t Flags = U_PMF_HEADERFLAGS_get(contents); - *xmtype = (Flags & U_PPF_XM ? 1 : 0 ); - U_PMF_CMN_HDR_get(&contents, Header); + + U_PMF_CMN_HDR lclHeader; + U_PMF_CMN_HDR_get(&contents, &lclHeader); + if(lclHeader.Size < sizeof(U_PMF_TRANSLATEWORLDTRANSFORM))return(0); + if(Header){ memcpy(Header,&lclHeader,sizeof(U_PMF_CMN_HDR)); } + + *xmtype = (lclHeader.Flags & U_PPF_XM ? 1 : 0 ); U_PMF_SERIAL_get(&contents, Dx, 4, 1, U_LE); U_PMF_SERIAL_get(&contents, Dy, 4, 1, U_LE); return(1); @@ -8079,9 +8617,7 @@ int U_PMR_TRANSLATEWORLDTRANSFORM_get(const char *contents, U_PMF_CMN_HDR *Heade the path by using the current pen, and fills its interior by using the current brush." */ int U_PMR_STROKEFILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header){ - if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - return(1); + return( U_PMR_common_header_get(contents,Header)); } /** @@ -8093,9 +8629,7 @@ int U_PMR_STROKEFILLPATH_get(const char *contents, U_PMF_CMN_HDR *Header){ EMF+ manual mentioned in 2.1.1.1, reserved, not otherwise documented, Microsoft name: EmfPlusMultiFormatStart Record, Index 0x05 */ int U_PMR_MULTIFORMATSTART_get(const char *contents, U_PMF_CMN_HDR *Header){ - if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - return(1); + return( U_PMR_common_header_get(contents,Header)); } /** @@ -8107,9 +8641,7 @@ int U_PMR_MULTIFORMATSTART_get(const char *contents, U_PMF_CMN_HDR *Header){ EMF+ manual mentioned in 2.1.1.1, reserved, not otherwise documented, Microsoft name: EmfPlusMultiFormatSection Record, Index 0x06 */ int U_PMR_MULTIFORMATSECTION_get(const char *contents, U_PMF_CMN_HDR *Header){ - if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - return(1); + return( U_PMR_common_header_get(contents,Header)); } /** @@ -8121,9 +8653,7 @@ int U_PMR_MULTIFORMATSECTION_get(const char *contents, U_PMF_CMN_HDR *Header){ EMF+ manual mentioned in 2.1.1.1, reserved, not otherwise documented, Microsoft name: EmfPlusMultiFormatEnd Record, Index 0x06 */ int U_PMR_MULTIFORMATEND_get(const char *contents, U_PMF_CMN_HDR *Header){ - if(!contents){ return(0); } - U_PMF_CMN_HDR_get(&contents, Header); - return(1); + return( U_PMR_common_header_get(contents,Header)); } diff --git a/src/libuemf/upmf.h b/src/libuemf/upmf.h index 27ac94a89..dbda02ba7 100644 --- a/src/libuemf/upmf.h +++ b/src/libuemf/upmf.h @@ -27,11 +27,11 @@ /* File: upmf.h -Version: 0.0.2 -Date: 04-NOV-2013 +Version: 0.0.4 +Date: 17-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2013 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifndef _UPMF_ @@ -1805,9 +1805,8 @@ typedef struct { /** @brief EMF+ manual 2.2.2.25, Microsoft name: EmfPlusLinearGradientBrushOptionalData Object For U_PMF_LINEARGRADIENTBRUSHDATA data field */ -typedef struct { - U_PMF_ROTMATRIX Matrix; //!< Rotation matrix, Manuals says that this should be Transformation matrix, but last two values are missing -/* variable part of object, not part of structure. +/* Entire object is variable and not part of a structure! U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA + U_PMF_ROTMATRIX Matrix; //!< Rotation matrix, Manuals says that this should be Transformation matrix, but last two values are missing (various) pattern; //!< Presence and meaning depend on Flags field, see below Flag values @@ -1818,7 +1817,6 @@ typedef struct { 0 0 1 U_PMF_BLENDFACTORS 0 1 1 U_PMF_BLENDFACTORS, U_PMF_BLENDFACTORS */ -} U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA; /** @brief EMF+ manual 2.2.2.26, Microsoft name: EmfPlusLinePath Object */ typedef struct { @@ -1888,7 +1886,10 @@ typedef struct { Bitfields in the FILE (LITTLE endian here, manual uses BIG endian) are: bits 4-7 PathPointType flags bits 0-3 PathPointType enumeration + @{ */ +typedef uint8_t U_PMF_PATHPOINTTYPE; //!< EMF+ manual 2.2.2.31, Microsoft name: EmfPlusPathPointType Object +/** @} */ /** \defgroup U_PMF_PPTYPERLE PMF Run Length Encoded Path Point Types @brief EMF+ manual 2.2.2.32, Microsoft name: EmfPlusPathPointTypeRLE Object @@ -2838,6 +2839,7 @@ void U_PMF_MEMCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size); void U_PMF_REPCPY_DSTSHIFT(char **Dst, const void *Src, size_t Size, size_t Reps); void U_PMF_PTRSAV_SHIFT(const char **Dst, const char **Src, size_t Size); uint16_t U_PMF_HEADERFLAGS_get(const char *contents); +int U_PMF_RECORD_SIZE_get(const char *contents); int U_PMF_CMN_HDR_get(const char **contents, U_PMF_CMN_HDR *Header); int U_OID_To_OT(uint32_t OID); int U_OID_To_BT(uint32_t OID); @@ -3035,77 +3037,77 @@ U_PSEUDO_OBJ *U_PMR_STROKEFILLPATH_set(void); /* EMF+ prototypes (objects_get) */ -int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data); -int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data); -int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uint32_t *SizeUnit, int32_t *FSFlags, uint32_t *Length, const char **Data); -int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data); -int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, uint32_t *ObjectClamp); -int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, const char **Points, const char **Types); -int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush); -int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes); -int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data); -int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha); -int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data); -int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data); -int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors); -int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors); -int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points); -int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length); -int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths); -int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data); -int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad); -int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data); -int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData); -int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths); -int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY); -int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion); -int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background); -int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value); -int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value); +int U_PMF_BRUSH_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit); +int U_PMF_CUSTOMLINECAP_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit); +int U_PMF_FONT_get(const char *contents, uint32_t *Version, U_FLOAT *EmSize, uint32_t *SizeUnit, int32_t *FSFlags, uint32_t *Length, const char **Data, const char *blimit); +int U_PMF_IMAGE_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **Data, const char *blimit); +int U_PMF_IMAGEATTRIBUTES_get(const char *contents, uint32_t *Version, uint32_t *WrapMode, uint32_t *ClampColor, uint32_t *ObjectClamp, const char *blimit); +int U_PMF_PATH_get(const char *contents, uint32_t *Version, uint32_t *Count, uint16_t *Flags, const char **Points, const char **Types, const char *blimit); +int U_PMF_PEN_get(const char *contents, uint32_t *Version, uint32_t *Type, const char **PenData, const char **Brush, const char *blimit); +int U_PMF_REGION_get(const char *contents, uint32_t *Version, uint32_t *Count, const char **Nodes, const char *blimit); +int U_PMF_STRINGFORMAT_get(const char *contents, U_PMF_STRINGFORMAT *Sfs, const char **Data, const char *blimit); +int U_PMF_ARGB_get(const char *contents, uint8_t *Blue, uint8_t *Green, uint8_t *Red, uint8_t *Alpha, const char *blimit); +int U_PMF_BITMAP_get(const char *contents, U_PMF_BITMAP *Bs, const char **Data, const char *blimit); +int U_PMF_BITMAPDATA_get(const char *contents, U_PMF_PALETTE *Ps, const char **Colors, const char **Data, const char *blimit); +int U_PMF_BLENDCOLORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, const char **Colors, const char *blimit); +int U_PMF_BLENDFACTORS_get(const char *contents, uint32_t *Elements, U_FLOAT **Positions, U_FLOAT **Factors, const char *blimit); +int U_PMF_BOUNDARYPATHDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_BOUNDARYPOINTDATA_get(const char *contents, int32_t *Elements, U_PMF_POINTF **Points, const char *blimit); +int U_PMF_CHARACTERRANGE_get(const char *contents, int32_t *First, int32_t *Length, const char *blimit); +int U_PMF_COMPOUNDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Widths, const char *blimit); +int U_PMF_COMPRESSEDIMAGE_get(const char *contents, const char **Data, const char *blimit); +int U_PMF_CUSTOMENDCAPDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_CUSTOMLINECAPARROWDATA_get(const char *contents, U_PMF_CUSTOMLINECAPARROWDATA *Ccad, const char *blimit); +int U_PMF_CUSTOMLINECAPDATA_get(const char *contents, U_PMF_CUSTOMLINECAPDATA *Clcd, const char **Data, const char *blimit); +int U_PMF_CUSTOMLINECAPOPTIONALDATA_get(const char *contents, uint32_t Flags, const char **FillData, const char **LineData, const char *blimit); +int U_PMF_CUSTOMSTARTCAPDATA_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_DASHEDLINEDATA_get(const char *contents, int32_t *Elements, U_FLOAT **Lengths, const char *blimit); +int U_PMF_FILLPATHOBJ_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_FOCUSSCALEDATA_get(const char *contents, uint32_t *Count, U_FLOAT *ScaleX, U_FLOAT *ScaleY, const char *blimit); +int U_PMF_GRAPHICSVERSION_get(const char *contents, int *Signature, int *GrfVersion, const char *blimit); +int U_PMF_HATCHBRUSHDATA_get(const char *contents, uint32_t *Style, U_PMF_ARGB *Foreground, U_PMF_ARGB *Background, const char *blimit); +int U_PMF_INTEGER7_get(const char **contents, U_FLOAT *Value, const char *blimit); +int U_PMF_INTEGER15_get(const char **contents, U_FLOAT *Value, const char *blimit); int U_PMF_LANGUAGEIDENTIFIER_get(U_PMF_LANGUAGEIDENTIFIER LId, int *SubLId, int *PriLId); -int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data); -int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Tm, const char **Bc, const char **BfH, const char **BfV); -int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data); -int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Data); -int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, const char **Boundary, const char **Data); -int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, const char **Pattern, const char **Data); -int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type); -int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt); -int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data); +int U_PMF_LINEARGRADIENTBRUSHDATA_get(const char *contents, U_PMF_LINEARGRADIENTBRUSHDATA *Lgbd, const char **Data, const char *blimit); +int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Tm, const char **Bc, const char **BfH, const char **BfV, const char *blimit); +int U_PMF_LINEPATH_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_METAFILE_get(const char *contents, uint32_t *Type, uint32_t *Size, const char **Data, const char *blimit); +int U_PMF_PALETTE_get(const char *contents, uint32_t *Flags, uint32_t *Elements, const char **Data, const char *blimit); +int U_PMF_PATHGRADIENTBRUSHDATA_get(const char *contents, U_PMF_PATHGRADIENTBRUSHDATA *Pgbd, const char **Gradient, const char **Boundary, const char **Data, const char *blimit); +int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, const char **Pattern, const char **Data, const char *blimit); +int U_PMF_PATHPOINTTYPE_get(const char *contents, int *Flags, int *Type, const char *blimit); +int U_PMF_PATHPOINTTYPERLE_get(const char *contents, int *Bezier, int *RL, int *Ppt, const char *blimit); +int U_PMF_PENDATA_get(const char *contents, uint32_t *Flags, uint32_t *Unit, U_FLOAT *Width, const char **Data, const char *blimit); int U_PMF_PENOPTIONALDATA_get(const char *contents, uint32_t Flags, U_PMF_TRANSFORMMATRIX *Matrix, int32_t *StartCap, int32_t *EndCap, uint32_t *Join, U_FLOAT *MiterLimit, int32_t *Style, int32_t *DLCap, U_FLOAT *DLOffset, - const char **DLData, int32_t *Alignment, const char **CmpndLineData, const char **CSCapData, const char **CECapData); -int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y); -int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y); -int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y); -int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height); -int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height); -int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data); + const char **DLData, int32_t *Alignment, const char **CmpndLineData, const char **CSCapData, const char **CECapData, const char *blimit); +int U_PMF_POINT_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit); +int U_PMF_POINTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit); +int U_PMF_POINTR_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, const char *blimit); +int U_PMF_RECT_get(const char **contents, int16_t *X, int16_t *Y, int16_t *Width, int16_t *Height, const char *blimit); +int U_PMF_RECTF_get(const char **contents, U_FLOAT *X, U_FLOAT *Y, U_FLOAT *Width, U_FLOAT *Height, const char *blimit); +int U_PMF_REGIONNODE_get(const char *contents, uint32_t *Type, const char **Data, const char *blimit); /* There is no U_PMF_REGIONNODECHILDNODES_get, see the note in upmf.c */ -int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data); -int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color); +int U_PMF_REGIONNODEPATH_get(const char *contents, int32_t *Size, const char **Data, const char *blimit); +int U_PMF_SOLIDBRUSHDATA_get(const char *contents, U_PMF_ARGB *Color, const char *blimit); int U_PMF_STRINGFORMATDATA_get(const char *contents, uint32_t TabStopCount, uint32_t RangeCount, - const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange); -int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data); -int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, const char **Image); -int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix); -int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge); -int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast); -int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue); -int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity); + const U_FLOAT **TabStops, const U_PMF_CHARACTERRANGE **CharRange, const char *blimit); +int U_PMF_TEXTUREBRUSHDATA_get(const char *contents, uint32_t *Flags, int32_t *WrapMode, const char **Data, const char *blimit); +int U_PMF_TEXTUREBRUSHOPTIONALDATA_get(const char *contents, int HasImage, U_PMF_TRANSFORMMATRIX *Matrix, const char **Image, const char *blimit); +int U_PMF_TRANSFORMMATRIX_get(const char *contents, U_PMF_TRANSFORMMATRIX *Matrix, const char *blimit); +int U_PMF_IE_BLUR_get(const char *contents, U_FLOAT *Radius, uint32_t *ExpandEdge, const char *blimit); +int U_PMF_IE_BRIGHTNESSCONTRAST_get(const char *contents, int32_t *Brightness, int32_t *Contrast, const char *blimit); +int U_PMF_IE_COLORBALANCE_get(const char *contents, int32_t *CyanRed, int32_t *MagentaGreen, int32_t *YellowBlue, const char *blimit); +int U_PMF_IE_COLORCURVE_get(const char *contents, uint32_t *Adjust, uint32_t *Channel, int32_t *Intensity, const char *blimit); int U_PMF_IE_COLORLOOKUPTABLE_get(const char *contents, - const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT); -int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix); -int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness); -int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow); -int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects); -int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen); -int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount); + const uint8_t **BLUT, const uint8_t **GLUT, const uint8_t **RLUT, const uint8_t **ALUT, const char *blimit); +int U_PMF_IE_COLORMATRIX_get(const char *contents, U_PMF_IE_COLORMATRIX *Matrix, const char *blimit); +int U_PMF_IE_HUESATURATIONLIGHTNESS_get(const char *contents, int32_t *Hue, int32_t *Saturation, int32_t *Lightness, const char *blimit); +int U_PMF_IE_LEVELS_get(const char *contents, int32_t *Highlight, int32_t *Midtone, int32_t *Shadow, const char *blimit); +int U_PMF_IE_REDEYECORRECTION_get(const char *contents, int32_t *Elements, U_RECTL **Rects, const char *blimit); +int U_PMF_IE_SHARPEN_get(const char *contents, U_FLOAT *Radius, int32_t *Sharpen, const char *blimit); +int U_PMF_IE_TINT_get(const char *contents, int32_t *Hue, int32_t *Amount, const char *blimit); /* EMF+ prototypes (records_get) */ diff --git a/src/libuemf/upmf_print.c b/src/libuemf/upmf_print.c index 13bbfade8..7d9598b0d 100644 --- a/src/libuemf/upmf_print.c +++ b/src/libuemf/upmf_print.c @@ -6,11 +6,11 @@ /* File: upmf_print.c -Version: 0.0.3 -Date: 24-MAR-2014 +Version: 0.0.5 +Date: 24-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2014 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ /* compiler options: @@ -30,6 +30,7 @@ extern "C" { #include #include "upmf_print.h" #include "uemf_print.h" +#include "uemf_safe.h" //! \cond @@ -49,7 +50,7 @@ int U_PMR_NODATAREC_print(const char *contents){ /* this function is not visible in the API. Common routine used by many functions that draw points. */ -void U_PMF_VARPOINTS_print(const char **contents, int Flags, uint32_t Elements){ +void U_PMF_VARPOINTS_print(const char **contents, int Flags, uint32_t Elements, const char *blimit){ unsigned int i; U_FLOAT Xpos, Ypos; @@ -58,9 +59,9 @@ void U_PMF_VARPOINTS_print(const char **contents, int Flags, uint32_t Elements){ else { printf(" + Points(Float):"); } for(Xpos = Ypos = i = 0; i1 are child nodes. + \param blimit one byte past the end of data EMF+ manual 2.2.2.40, Microsoft name: EmfPlusRegionNode Object */ -int U_PMF_REGIONNODE_print(const char *contents, int Level){ +int U_PMF_REGIONNODE_print(const char *contents, int Level, const char *blimit){ int len=4; /* Type will always be present */ uint32_t Type; const char *Data; - int status = U_PMF_REGIONNODE_get(contents, &Type, &Data); + int status = U_PMF_REGIONNODE_get(contents, &Type, &Data, blimit); if(status){ printf("\n + RegionNode(Level:%d) { Type:%X(",Level,Type); U_PMF_NODETYPE_print(Type); printf(")"); if(Type >= U_RNDT_And && Type <= U_RNDT_Complement){ - len += U_PMF_REGIONNODECHILDNODES_print(Data, Level+1); + len += U_PMF_REGIONNODECHILDNODES_print(Data, Level+1, blimit); } else if(Type == U_RNDT_Rect){ len += sizeof(U_PMF_RECTF); - (void) U_PMF_RECTF_print(&Data); + (void) U_PMF_RECTF_print(&Data, blimit); printf("\n"); } else if(Type == U_RNDT_Path){ - len += U_PMF_REGIONNODEPATH_print(Data); + len += U_PMF_REGIONNODEPATH_print(Data, blimit); } /* U_RNDT_Empty and U_RNDT_Infinite do not change the length */ else if(Type == U_RNDT_Empty ){ printf(" Empty" ); } @@ -1624,18 +1702,19 @@ int U_PMF_REGIONNODE_print(const char *contents, int Level){ \return size on success, 0 on error \param contents Record from which to print data \param Level Tree level. This routine is recursive and could go down many levels. 1 is the top, >1 are child nodes. + \param blimit one byte past the end of data EMF+ manual 2.2.2.41, Microsoft name: EmfPlusRegionNodeChildNodes Object */ -int U_PMF_REGIONNODECHILDNODES_print(const char *contents, int Level){ +int U_PMF_REGIONNODECHILDNODES_print(const char *contents, int Level, const char *blimit){ uint32_t size,rsize; printf(" RegionNodeChildNodes:\n"); printf(" + RNCN__Left(Level:%d) {", Level); - size = U_PMF_REGIONNODE_print(contents, Level); + size = U_PMF_REGIONNODE_print(contents, Level, blimit); printf(" + RNCN__Left(Level:%d) },\n", Level); if(size){ contents += size; printf(" + RNCN_Right(Level:%d) {", Level); - rsize = U_PMF_REGIONNODE_print(contents, Level); + rsize = U_PMF_REGIONNODE_print(contents, Level, blimit); size += rsize; printf(" + RNCN_Right(Level:%d) },\n",Level); } @@ -1646,15 +1725,16 @@ int U_PMF_REGIONNODECHILDNODES_print(const char *contents, int Level){ \brief Print data from a U_PMF_REGIONNODEPATH object \return Size of data on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.2.42, Microsoft name: EmfPlusRegionNodePath Object */ -int U_PMF_REGIONNODEPATH_print(const char *contents){ +int U_PMF_REGIONNODEPATH_print(const char *contents, const char * blimit){ int32_t Size; const char *Data; - int status = U_PMF_REGIONNODEPATH_get(contents, &Size, &Data); + int status = U_PMF_REGIONNODEPATH_get(contents, &Size, &Data, blimit); if(status){ printf(" RegionNodePath: \n"); - (void) U_PMF_PATH_print(Data); + (void) U_PMF_PATH_print(Data, blimit); status = Size + 4; /* data sizee + the 4 bytes encoding the size */ } return(status); @@ -1665,11 +1745,12 @@ int U_PMF_REGIONNODEPATH_print(const char *contents){ \brief Print data from a U_PMF_SOLIDBRUSHDATA object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.2.43, Microsoft name: EmfPlusSolidBrushData Object */ -int U_PMF_SOLIDBRUSHDATA_print(const char *contents){ +int U_PMF_SOLIDBRUSHDATA_print(const char *contents, const char *blimit){ U_PMF_ARGB Color; - int status = U_PMF_SOLIDBRUSHDATA_get(contents, &Color); + int status = U_PMF_SOLIDBRUSHDATA_get(contents, &Color, blimit); if(status){ printf(" SolidBrushData: "); (void) U_PMF_ARGB_print((char *) &Color); @@ -1683,12 +1764,13 @@ int U_PMF_SOLIDBRUSHDATA_print(const char *contents){ \param contents Record from which to print data \param TabStopCount Entries in TabStop array \param RangeCount Entries in CharRange array + \param blimit one byte past the end of data EMF+ manual 2.2.2.44, Microsoft name: EmfPlusStringFormatData Object */ -int U_PMF_STRINGFORMATDATA_print(const char *contents, uint32_t TabStopCount, uint32_t RangeCount){ +int U_PMF_STRINGFORMATDATA_print(const char *contents, uint32_t TabStopCount, uint32_t RangeCount, const char *blimit){ const U_FLOAT *TabStops; const U_PMF_CHARACTERRANGE *CharRange; - int status = U_PMF_STRINGFORMATDATA_get(contents, TabStopCount, RangeCount, &TabStops, &CharRange); + int status = U_PMF_STRINGFORMATDATA_get(contents, TabStopCount, RangeCount, &TabStops, &CharRange, blimit); if(status){ printf(" SFdata: TabStopCount:%u RangeCount:%u\n", TabStopCount, RangeCount); @@ -1708,13 +1790,14 @@ int U_PMF_STRINGFORMATDATA_print(const char *contents, uint32_t TabStopCount, ui \brief Print data from a U_PMF_TEXTUREBRUSHDATA object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.2.45, Microsoft name: EmfPlusTextureBrushData Object */ -int U_PMF_TEXTUREBRUSHDATA_print(const char *contents){ +int U_PMF_TEXTUREBRUSHDATA_print(const char *contents, const char *blimit){ uint32_t Flags; int32_t WrapMode; const char *Data; - int status = U_PMF_TEXTUREBRUSHDATA_get(contents, &Flags, &WrapMode, &Data); + int status = U_PMF_TEXTUREBRUSHDATA_get(contents, &Flags, &WrapMode, &Data, blimit); if(status){ printf(" + TBdata: Flags:%X WrapMode:%d", Flags, WrapMode); } @@ -1725,18 +1808,23 @@ int U_PMF_TEXTUREBRUSHDATA_print(const char *contents){ \brief Print data from a U_PMF_TEXTUREBRUSHOPTIONALDATA object \return 1 on success, 0 on error \param contents Record from which to print data + \param HasMatrix True if the record contains a matrix. \param HasImage True if the record contains an image. + \param blimit one byte past the end of data EMF+ manual 2.2.2.46, Microsoft name: EmfPlusTextureBrushOptionalData Object */ -int U_PMF_TEXTUREBRUSHOPTIONALDATA_print(const char *contents, int HasImage){ +int U_PMF_TEXTUREBRUSHOPTIONALDATA_print(const char *contents, int HasMatrix, int HasImage, const char *blimit){ U_PMF_TRANSFORMMATRIX Matrix; + U_PMF_TRANSFORMMATRIX *pMatrix; const char *Image; - int status = U_PMF_TEXTUREBRUSHOPTIONALDATA_get(contents, HasImage, &Matrix, &Image); + if(HasMatrix){ pMatrix = &Matrix; } + else { pMatrix = NULL; } + int status = U_PMF_TEXTUREBRUSHOPTIONALDATA_get(contents, HasImage, pMatrix, &Image, blimit); if(status){ printf(" + TBOptdata: Image:%c", (HasImage ? 'Y' : 'N')); (void) U_PMF_TRANSFORMMATRIX2_print(&Matrix); - (void) U_PMF_IMAGE_print(Image); + (void) U_PMF_IMAGE_print(Image, blimit); } return(status); } @@ -1745,11 +1833,12 @@ int U_PMF_TEXTUREBRUSHOPTIONALDATA_print(const char *contents, int HasImage){ \brief Print data from a U_PMF_TRANSFORMMATRIX object stored in file byte order. \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.2.47, Microsoft name: EmfPlusTransformMatrix Object */ -int U_PMF_TRANSFORMMATRIX_print(const char *contents){ +int U_PMF_TRANSFORMMATRIX_print(const char *contents, const char *blimit){ U_PMF_TRANSFORMMATRIX Tm; - int status = U_PMF_TRANSFORMMATRIX_get(contents, &Tm); + int status = U_PMF_TRANSFORMMATRIX_get(contents, &Tm, blimit); if(status){ U_PMF_TRANSFORMMATRIX2_print(&Tm); } @@ -1782,12 +1871,13 @@ int U_PMF_ROTMATRIX2_print(U_PMF_ROTMATRIX *Rm){ \brief Print data from a U_PMF_IE_BLUR object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.1, Microsoft name: BlurEffect Object */ -int U_PMF_IE_BLUR_print(const char *contents){ +int U_PMF_IE_BLUR_print(const char *contents, const char *blimit){ U_FLOAT Radius; uint32_t ExpandEdge; - int status = U_PMF_IE_BLUR_get(contents, &Radius, &ExpandEdge); + int status = U_PMF_IE_BLUR_get(contents, &Radius, &ExpandEdge, blimit); if(status){ printf("BlurEffect Radius:%f ExpandEdge:%u\n", Radius, ExpandEdge); } @@ -1798,11 +1888,12 @@ int U_PMF_IE_BLUR_print(const char *contents){ \brief Print data from a U_PMF_IE_BRIGHTNESSCONTRAST object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.2, Microsoft name: BrightnessContrastEffect Object */ -int U_PMF_IE_BRIGHTNESSCONTRAST_print(const char *contents){ +int U_PMF_IE_BRIGHTNESSCONTRAST_print(const char *contents, const char *blimit){ int32_t Brightness, Contrast; - int status = U_PMF_IE_BRIGHTNESSCONTRAST_get(contents, &Brightness, &Contrast); + int status = U_PMF_IE_BRIGHTNESSCONTRAST_get(contents, &Brightness, &Contrast, blimit); if(status){ printf("BrightnessContrastEffect Brightness:%d Contrast:%d\n", Brightness, Contrast); } @@ -1813,11 +1904,12 @@ int U_PMF_IE_BRIGHTNESSCONTRAST_print(const char *contents){ \brief Print data from a U_PMF_IE_COLORBALANCE object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.3, Microsoft name: ColorBalanceEffect Object */ -int U_PMF_IE_COLORBALANCE_print(const char *contents){ +int U_PMF_IE_COLORBALANCE_print(const char *contents, const char *blimit){ int32_t CyanRed, MagentaGreen, YellowBlue; - int status = U_PMF_IE_COLORBALANCE_get(contents, &CyanRed, &MagentaGreen, &YellowBlue); + int status = U_PMF_IE_COLORBALANCE_get(contents, &CyanRed, &MagentaGreen, &YellowBlue, blimit); if(status){ printf("ColorBalanceEffect CyanRed:%d MagentaGreen:%d YellowBlue:%d\n", CyanRed, MagentaGreen, YellowBlue); } @@ -1828,12 +1920,13 @@ int U_PMF_IE_COLORBALANCE_print(const char *contents){ \brief Print data from a U_PMF_IE_COLORCURVE object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.4, Microsoft name: ColorCurveEffect Object */ -int U_PMF_IE_COLORCURVE_print(const char *contents){ +int U_PMF_IE_COLORCURVE_print(const char *contents, const char *blimit){ uint32_t Adjust, Channel; int32_t Intensity; - int status = U_PMF_IE_COLORCURVE_get(contents, &Adjust, &Channel, &Intensity); + int status = U_PMF_IE_COLORCURVE_get(contents, &Adjust, &Channel, &Intensity, blimit); if(status){ printf("ColorBalanceEffect Adjust:%u Channel:%u Intensity:%d\n", Adjust, Channel, Intensity); } @@ -1844,11 +1937,12 @@ int U_PMF_IE_COLORCURVE_print(const char *contents){ \brief Print data from a U_PMF_IE_COLORLOOKUPTABLE object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.5, Microsoft name: ColorLookupTableEffect Object */ -int U_PMF_IE_COLORLOOKUPTABLE_print(const char *contents){ +int U_PMF_IE_COLORLOOKUPTABLE_print(const char *contents, const char *blimit){ const uint8_t *BLUT, *GLUT, *RLUT, *ALUT; - int status = U_PMF_IE_COLORLOOKUPTABLE_get(contents, &BLUT, &GLUT, &RLUT, &ALUT); + int status = U_PMF_IE_COLORLOOKUPTABLE_get(contents, &BLUT, &GLUT, &RLUT, &ALUT, blimit); if(status){ printf("ColorLookupTableEffect \n"); U_PMF_UINT8_ARRAY_print(" BLUT:", BLUT, 256, "\n"); @@ -1863,12 +1957,13 @@ int U_PMF_IE_COLORLOOKUPTABLE_print(const char *contents){ \brief Print data from a U_PMF_IE_COLORMATRIX object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.6, Microsoft name: ColorMatrixEffect Object */ -int U_PMF_IE_COLORMATRIX_print(const char *contents){ +int U_PMF_IE_COLORMATRIX_print(const char *contents, const char *blimit){ U_PMF_IE_COLORMATRIX Matrix; int i,j; - int status = U_PMF_IE_COLORMATRIX_get(contents, &Matrix); + int status = U_PMF_IE_COLORMATRIX_get(contents, &Matrix, blimit); if(status){ printf("ColorMatrixEffect\n"); for(i=0;i<5;i++){ @@ -1885,11 +1980,12 @@ int U_PMF_IE_COLORMATRIX_print(const char *contents){ \brief Print data from a U_PMF_IE_HUESATURATIONLIGHTNESS object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.7, Microsoft name: HueSaturationLightnessEffect Object */ -int U_PMF_IE_HUESATURATIONLIGHTNESS_print(const char *contents){ +int U_PMF_IE_HUESATURATIONLIGHTNESS_print(const char *contents, const char *blimit){ int32_t Hue, Saturation, Lightness; - int status = U_PMF_IE_HUESATURATIONLIGHTNESS_get(contents, &Hue, &Saturation, &Lightness); + int status = U_PMF_IE_HUESATURATIONLIGHTNESS_get(contents, &Hue, &Saturation, &Lightness, blimit); if(status){ printf("HueSaturationLightnessEffect Hue:%d Saturation:%d Lightness:%d\n", Hue, Saturation, Lightness); } @@ -1900,11 +1996,12 @@ int U_PMF_IE_HUESATURATIONLIGHTNESS_print(const char *contents){ \brief Print data from a U_PMF_IE_LEVELS object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.8, Microsoft name: LevelsEffect Object */ -int U_PMF_IE_LEVELS_print(const char *contents){ +int U_PMF_IE_LEVELS_print(const char *contents, const char *blimit){ int32_t Highlight, Midtone, Shadow; - int status = U_PMF_IE_LEVELS_get(contents, &Highlight, &Midtone, &Shadow); + int status = U_PMF_IE_LEVELS_get(contents, &Highlight, &Midtone, &Shadow, blimit); if(status){ printf("LevelEffect Highlight:%d Midtone:%d Shadow:%d\n", Highlight, Midtone, Shadow); } @@ -1915,12 +2012,13 @@ int U_PMF_IE_LEVELS_print(const char *contents){ \brief Print data from a U_PMF_IE_REDEYECORRECTION object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.9, Microsoft name: RedEyeCorrectionEffect Object */ -int U_PMF_IE_REDEYECORRECTION_print(const char *contents){ +int U_PMF_IE_REDEYECORRECTION_print(const char *contents, const char *blimit){ int32_t Elements; U_RECTL *Rects; - int status = U_PMF_IE_REDEYECORRECTION_get(contents, &Elements, &Rects); + int status = U_PMF_IE_REDEYECORRECTION_get(contents, &Elements, &Rects, blimit); if(status){ printf("RedEyeCorrectionEffect Elements:%u", Elements); for(; Elements; Elements--, Rects++){ @@ -1935,13 +2033,14 @@ int U_PMF_IE_REDEYECORRECTION_print(const char *contents){ /** \brief Print data from a U_PMF_IE_SHARPEN object \return 1 on success, 0 on error + \param blimit one byte past the end of data \param contents Record from which to print data EMF+ manual 2.2.3.10, Microsoft name: SharpenEffect Object */ -int U_PMF_IE_SHARPEN_print(const char *contents){ +int U_PMF_IE_SHARPEN_print(const char *contents, const char *blimit){ U_FLOAT Radius; int32_t Sharpen; - int status = U_PMF_IE_SHARPEN_get(contents, &Radius, &Sharpen); + int status = U_PMF_IE_SHARPEN_get(contents, &Radius, &Sharpen, blimit); if(status){ printf("SharpenEffect Radius:%f Sharpen:%u\n", Radius, Sharpen); } @@ -1952,11 +2051,12 @@ int U_PMF_IE_SHARPEN_print(const char *contents){ \brief Print data from a U_PMF_IE_TINT object \return 1 on success, 0 on error \param contents Record from which to print data + \param blimit one byte past the end of data EMF+ manual 2.2.3.11, Microsoft name: TintEffect Object */ -int U_PMF_IE_TINT_print(const char *contents){ +int U_PMF_IE_TINT_print(const char *contents, const char *blimit){ int32_t Hue, Amount; - int status = U_PMF_IE_TINT_get(contents, &Hue, &Amount); + int status = U_PMF_IE_TINT_get(contents, &Hue, &Amount, blimit); if(status){ printf("TintEffect Hue:%d Amount:%d\n", Hue, Amount); } @@ -1981,6 +2081,9 @@ int U_PMR_OFFSETCLIP_print(const char *contents){ if(status){ printf(" + dx:%f dy:%f\n",dX,dY); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2007,6 +2110,9 @@ int U_PMR_SETCLIPPATH_print(const char *contents){ if(status){ printf(" + PathID:%u CMenum:%d\n",PathID,CMenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2027,6 +2133,9 @@ int U_PMR_SETCLIPRECT_print(const char *contents){ U_PMF_RECTF_S_print(&Rect); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2045,6 +2154,9 @@ int U_PMR_SETCLIPREGION_print(const char *contents){ U_PMF_COMBINEMODEENUMERATION_print(CMenum); printf(")\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2061,6 +2173,11 @@ int U_PMR_COMMENT_print(const char *contents){ unsigned int i=0; int status = U_PMR_COMMENT_get(contents, &Header, &Data); if(status){ + const char *blimit = contents + Header.Size; + if(IS_MEM_UNSAFE(Data, Header.DataSize, blimit)){ + printf(" corrupt record\n"); + return(0); + } /* try to print it, but only ASCII, bail on anything that is not ASCII */ printf(" + Data:"); for(i=0; i< Header.DataSize; i++,Data++){ @@ -2070,6 +2187,9 @@ int U_PMR_COMMENT_print(const char *contents){ } printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2107,9 +2227,12 @@ int U_PMR_HEADER_print(const char *contents){ if(status){ /* try to print it, but only ASCII, bail on anything that is not ASCII */ printf(" + "); - (void) U_PMF_GRAPHICSVERSION_print((char *) &Version); + (void) U_PMF_GRAPHICSVERSION_memsafe_print((char *)&Version);; printf(" IsDual:%c IsVideo:%d LogicalDpiX,y:{%u,%u}\n",(IsDual ? 'Y' : 'N'),IsVideo,LogicalDpiX, LogicalDpiY); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2127,6 +2250,9 @@ int U_PMR_CLEAR_print(const char *contents){ printf(" + Color:"); (void) U_PMF_ARGB_print((char *) &Color); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2147,6 +2273,9 @@ int U_PMR_DRAWARC_print(const char *contents){ (void) U_PMF_VARRECTF_S_print(&Rect, 1); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2167,6 +2296,9 @@ int U_PMR_DRAWBEZIERS_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2194,6 +2326,9 @@ int U_PMR_DRAWCLOSEDCURVE_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2221,6 +2356,9 @@ int U_PMR_DRAWCURVE_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2269,7 +2407,9 @@ int U_PMR_DRAWDRIVERSTRING_print(const char *contents){ free(Matrix); printf("\n"); } - + } + else { + printf(" corrupt record\n"); } return(status); } @@ -2290,6 +2430,9 @@ int U_PMR_DRAWELLIPSE_print(const char *contents){ (void) U_PMF_VARRECTF_S_print(&Rect, 1); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2313,6 +2456,9 @@ int U_PMR_DRAWIMAGE_print(const char *contents){ (void) U_PMF_RECTF_S_print(&DstRect); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2339,6 +2485,9 @@ int U_PMR_DRAWIMAGEPOINTS_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2360,6 +2509,9 @@ int U_PMR_DRAWLINES_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2375,6 +2527,9 @@ int U_PMR_DRAWPATH_print(const char *contents){ if(status){ printf(" + PathIdx:%d PenIdx:%d\n", PathIdx, PenIdx); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2395,6 +2550,9 @@ int U_PMR_DRAWPIE_print(const char *contents){ (void) U_PMF_VARRECTF_S_print(&Rect, 1); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2402,10 +2560,9 @@ int U_PMR_DRAWPIE_print(const char *contents){ \brief Print data from a U_PMR_DRAWRECTS record \return size of record in bytes on success, 0 on error \param contents Record from which to print data - \param blimit One byte past the last record in memory. EMF+ manual 2.3.4.13, Microsoft name: EmfPlusDrawRects Record, Index 0x0B */ -int U_PMR_DRAWRECTS_print(const char *contents, const char *blimit){ +int U_PMR_DRAWRECTS_print(const char *contents){ uint32_t PenID; int ctype; uint32_t Elements; @@ -2413,11 +2570,13 @@ int U_PMR_DRAWRECTS_print(const char *contents, const char *blimit){ U_PMF_CMN_HDR hdr; int status = U_PMR_DRAWRECTS_get(contents, &hdr, &PenID, &ctype, &Elements, &Rects); if(status){ - if(contents + hdr.Size >= blimit)return(0); printf(" + PenID:%u ctype:%d Elements:%u Rect:", PenID,ctype,Elements); (void) U_PMF_VARRECTF_S_print(Rects, Elements); printf("\n"); } + else { + printf(" corrupt record\n"); + } if(Rects)free(Rects); return(status); } @@ -2452,6 +2611,9 @@ int U_PMR_DRAWSTRING_print(const char *contents){ printf(" String(as_UTF8):(none)\n"); } } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2477,6 +2639,9 @@ int U_PMR_FILLCLOSEDCURVE_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2498,6 +2663,9 @@ int U_PMR_FILLELLIPSE_print(const char *contents){ (void) U_PMF_VARRECTF_S_print(&Rect, 1); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2516,6 +2684,9 @@ int U_PMR_FILLPATH_print(const char *contents){ (void) U_PMF_VARBRUSHID_print(btype, BrushID); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2537,6 +2708,9 @@ int U_PMR_FILLPIE_print(const char *contents){ (void) U_PMF_VARRECTF_S_print(&Rect, 1); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2558,6 +2732,9 @@ int U_PMR_FILLPOLYGON_print(const char *contents){ U_PMF_VARPOINTF_S_print(Points, Elements); free(Points); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2565,23 +2742,24 @@ int U_PMR_FILLPOLYGON_print(const char *contents){ \brief Print data from a U_PMR_FILLRECTS record \return size of record in bytes on success, 0 on error \param contents Record from which to print data - \param blimit One byte past the last record in memory. EMF+ manual 2.3.4.20, Microsoft name: EmfPlusFillRects Record, Index 0x0A */ -int U_PMR_FILLRECTS_print(const char *contents, const char *blimit){ +int U_PMR_FILLRECTS_print(const char *contents){ int btype, ctype; uint32_t BrushID, Elements; U_PMF_RECTF *Rects; U_PMF_CMN_HDR hdr; int status = U_PMR_FILLRECTS_get(contents, &hdr, &btype,&ctype, &BrushID, &Elements, &Rects); if(status){ - if(contents + hdr.Size >= blimit)return(0); printf(" + btype:%d ctype:%d Elements:%u",btype,ctype,Elements); (void) U_PMF_VARBRUSHID_print(btype, BrushID); (void) U_PMF_VARRECTF_S_print(Rects, Elements); free(Rects); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2600,6 +2778,9 @@ int U_PMR_FILLREGION_print(const char *contents){ (void) U_PMF_VARBRUSHID_print(btype, BrushID); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2611,6 +2792,10 @@ int U_PMR_FILLREGION_print(const char *contents){ \param ObjCont Structure that holds accumulated object. \param term Flag used when an abnormal termination of a series of continuation records is encountered. EMF+ manual 2.3.5.1, Microsoft name: EmfPlusObject Record, Index 0x13 + + This is the ONLY EMF+ record type which needs an explicit blimit passed in. Since it glues + together multiple records, and calls itself recursively, the initial caller cannot determine + that all of the sizes will be OK from the first record's header. */ int U_PMR_OBJECT_print(const char *contents, const char *blimit, U_OBJ_ACCUM *ObjCont, int term){ U_PMF_CMN_HDR Header; @@ -2641,8 +2826,11 @@ int U_PMR_OBJECT_print(const char *contents, const char *blimit, U_OBJ_ACCUM *Ob /* In a corrupt EMF+ file we might hit a new type of record before all the continuation records expected have been found. If that happens terminate whatever we have accumulated so far, and then go on to emit the new (unexpected) record. */ - if(contents + Header.Size >= blimit)return(0); - if(!status)return(status); + if(IS_MEM_UNSAFE(contents, Header.Size, blimit))return(0); + if(!status){ + printf(" corrupt record\n"); + return(status); + } if((ObjCont->used > 0) && (U_OA_append(ObjCont, NULL, 0, otype, ObjID) < 0)){ U_PMR_OBJECT_print(contents, blimit, ObjCont, 1); } @@ -2665,16 +2853,17 @@ int U_PMR_OBJECT_print(const char *contents, const char *blimit, U_OBJ_ACCUM *Ob ttype = otype; } if(status){ + blimit = ObjCont->accum + ObjCont->used; /* more restrictive blimit, just to end of object */ switch(ttype){ - case U_OT_Brush: (void) U_PMF_BRUSH_print(ObjCont->accum); break; - case U_OT_Pen: (void) U_PMF_PEN_print(ObjCont->accum); break; - case U_OT_Path: (void) U_PMF_PATH_print(ObjCont->accum); break; - case U_OT_Region: (void) U_PMF_REGION_print(ObjCont->accum); break; - case U_OT_Image: (void) U_PMF_IMAGE_print(ObjCont->accum); break; - case U_OT_Font: (void) U_PMF_FONT_print(ObjCont->accum); break; - case U_OT_StringFormat: (void) U_PMF_STRINGFORMAT_print(ObjCont->accum); break; - case U_OT_ImageAttributes: (void) U_PMF_IMAGEATTRIBUTES_print(ObjCont->accum); break; - case U_OT_CustomLineCap: (void) U_PMF_CUSTOMLINECAP_print(ObjCont->accum,""); break; + case U_OT_Brush: (void) U_PMF_BRUSH_print(ObjCont->accum, blimit); break; + case U_OT_Pen: (void) U_PMF_PEN_print(ObjCont->accum, blimit); break; + case U_OT_Path: (void) U_PMF_PATH_print(ObjCont->accum, blimit); break; + case U_OT_Region: (void) U_PMF_REGION_print(ObjCont->accum, blimit); break; + case U_OT_Image: (void) U_PMF_IMAGE_print(ObjCont->accum, blimit); break; + case U_OT_Font: (void) U_PMF_FONT_print(ObjCont->accum, blimit); break; + case U_OT_StringFormat: (void) U_PMF_STRINGFORMAT_print(ObjCont->accum, blimit); break; + case U_OT_ImageAttributes: (void) U_PMF_IMAGEATTRIBUTES_print(ObjCont->accum, blimit); break; + case U_OT_CustomLineCap: (void) U_PMF_CUSTOMLINECAP_print(ObjCont->accum,"", blimit); break; case U_OT_Invalid: default: printf("INVALID OBJECT TYPE!!!!\n"); @@ -2707,24 +2896,27 @@ int U_PMR_SERIALIZABLEOBJECT_print(const char *contents){ printf("\n + Effect:"); free(string); switch(iee){ - case U_IEE_Unknown: printf("(undefined)\n"); break; - case U_IEE_BlurEffectGuid: U_PMF_IE_BLUR_print(Data); break; - case U_IEE_BrightnessContrastEffectGuid: U_PMF_IE_BRIGHTNESSCONTRAST_print(Data); break; - case U_IEE_ColorBalanceEffectGuid: U_PMF_IE_COLORBALANCE_print(Data); break; - case U_IEE_ColorCurveEffectGuid: U_PMF_IE_COLORCURVE_print(Data); break; - case U_IEE_ColorLookupTableEffectGuid: U_PMF_IE_COLORLOOKUPTABLE_print(Data); break; - case U_IEE_ColorMatrixEffectGuid: U_PMF_IE_COLORMATRIX_print(Data); break; - case U_IEE_HueSaturationLightnessEffectGuid: U_PMF_IE_HUESATURATIONLIGHTNESS_print(Data); break; - case U_IEE_LevelsEffectGuid: U_PMF_IE_LEVELS_print(Data); break; - case U_IEE_RedEyeCorrectionEffectGuid: U_PMF_IE_REDEYECORRECTION_print(Data); break; - case U_IEE_SharpenEffectGuid: U_PMF_IE_SHARPEN_print(Data); break; - case U_IEE_TintEffectGuid: U_PMF_IE_TINT_print(Data); break; + case U_IEE_Unknown: printf("(undefined)\n"); break; + case U_IEE_BlurEffectGuid: U_PMF_IE_BLUR_print(Data, Data + sizeof(U_PMF_IE_BLUR)); break; + case U_IEE_BrightnessContrastEffectGuid: U_PMF_IE_BRIGHTNESSCONTRAST_print(Data, Data + sizeof(U_PMF_IE_BRIGHTNESSCONTRAST)); break; + case U_IEE_ColorBalanceEffectGuid: U_PMF_IE_COLORBALANCE_print(Data, Data + sizeof(U_PMF_IE_COLORBALANCE)); break; + case U_IEE_ColorCurveEffectGuid: U_PMF_IE_COLORCURVE_print(Data, Data + sizeof(U_PMF_IE_COLORCURVE)); break; + case U_IEE_ColorLookupTableEffectGuid: U_PMF_IE_COLORLOOKUPTABLE_print(Data, Data + sizeof(U_PMF_IE_COLORLOOKUPTABLE)); break; + case U_IEE_ColorMatrixEffectGuid: U_PMF_IE_COLORMATRIX_print(Data, Data + sizeof(U_PMF_IE_COLORMATRIX)); break; + case U_IEE_HueSaturationLightnessEffectGuid: U_PMF_IE_HUESATURATIONLIGHTNESS_print(Data, Data + sizeof(U_PMF_IE_HUESATURATIONLIGHTNESS)); break; + case U_IEE_LevelsEffectGuid: U_PMF_IE_LEVELS_print(Data, Data + sizeof(U_PMF_IE_LEVELS)); break; + case U_IEE_RedEyeCorrectionEffectGuid: U_PMF_IE_REDEYECORRECTION_print(Data, Data + sizeof(U_PMF_IE_REDEYECORRECTION)); break; + case U_IEE_SharpenEffectGuid: U_PMF_IE_SHARPEN_print(Data, Data + sizeof(U_PMF_IE_SHARPEN)); break; + case U_IEE_TintEffectGuid: U_PMF_IE_TINT_print(Data, Data + sizeof(U_PMF_IE_TINT)); break; } } else { printf(" + GUID:ERROR Size:%u\n",Size); } } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2740,6 +2932,9 @@ int U_PMR_SETANTIALIASMODE_print(const char *contents){ if(status){ printf(" + SMenum:%d AntiAlias:%c\n",SMenum,(aatype ? 'Y' : 'N')); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2755,6 +2950,9 @@ int U_PMR_SETCOMPOSITINGMODE_print(const char *contents){ if(status){ printf(" + CMenum:%d\n",CMenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2770,6 +2968,9 @@ int U_PMR_SETCOMPOSITINGQUALITY_print(const char *contents){ if(status){ printf(" + CQenum:%d\n",CQenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2785,6 +2986,9 @@ int U_PMR_SETINTERPOLATIONMODE_print(const char *contents){ if(status){ printf(" + IMenum:%d\n",IMenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2800,6 +3004,9 @@ int U_PMR_SETPIXELOFFSETMODE_print(const char *contents){ if(status){ printf(" + POMenum:%d\n",POMenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2815,6 +3022,9 @@ int U_PMR_SETRENDERINGORIGIN_print(const char *contents){ if(status){ printf(" + X:%d Y:%d\n", X, Y); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2830,6 +3040,9 @@ int U_PMR_SETTEXTCONTRAST_print(const char *contents){ if(status){ printf(" + GC:%d\n", GC); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2845,6 +3058,9 @@ int U_PMR_SETTEXTRENDERINGHINT_print(const char *contents){ if(status){ printf(" + TRHenum:%d\n",TRHenum); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2865,6 +3081,9 @@ int U_PMR_BEGINCONTAINER_print(const char *contents){ printf(" SrcRect:"); (void) U_PMF_RECTF_S_print(&SrcRect); printf(" StackID:%u\n", StackID); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2880,6 +3099,9 @@ int U_PMR_BEGINCONTAINERNOPARAMS_print(const char *contents){ if(status){ printf(" + StackID:%u\n", StackID); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2895,6 +3117,9 @@ int U_PMR_ENDCONTAINER_print(const char *contents){ if(status){ printf(" + StackID:%u\n", StackID); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2910,6 +3135,9 @@ int U_PMR_RESTORE_print(const char *contents){ if(status){ printf(" + StackID:%u\n", StackID); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2925,6 +3153,9 @@ int U_PMR_SAVE_print(const char *contents){ if(status){ printf(" + StackID:%u\n", StackID); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2945,6 +3176,9 @@ int U_PMR_SETTSCLIP_print(const char *contents){ free(Rects); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2967,6 +3201,7 @@ int U_PMR_SETTSGRAPHICS_print(const char *contents){ &RenderOriginX, &RenderOriginY, &TextContrast, &FilterType, &PixelOffset, &WorldToDevice, &Data); if(status){ + const char *blimit = contents + status; printf(" + vgatype:%d pptype:%u",vgatype,pptype); printf(" AntiAliasMode:%u TextRenderHint:%u CompositingMode:%u CompositingQuality:%u", AntiAliasMode, TextRenderHint, CompositingMode, CompositingQuality); @@ -2974,9 +3209,12 @@ int U_PMR_SETTSGRAPHICS_print(const char *contents){ printf(" TextContrast:%u",TextContrast); printf(" WorldToDevice:"); U_PMF_TRANSFORMMATRIX2_print(&WorldToDevice); - if(pptype){ (void) U_PMF_PALETTE_print(Data); } + if(pptype && !U_PMF_PALETTE_print(Data, blimit))return(0); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -2996,6 +3234,9 @@ int U_PMR_MULTIPLYWORLDTRANSFORM_print(const char *contents){ U_PMF_TRANSFORMMATRIX2_print(&Matrix); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -3022,6 +3263,9 @@ int U_PMR_ROTATEWORLDTRANSFORM_print(const char *contents){ if(status){ printf(" + xmtype:%d Multiply:%s Angle:%f\n",xmtype,(xmtype ? "Post" : "Pre"), Angle); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -3038,6 +3282,9 @@ int U_PMR_SCALEWORLDTRANSFORM_print(const char *contents){ if(status){ printf(" + xmtype:%d Multiply:%s ScaleX:%f ScaleY:%f\n",xmtype,(xmtype ? "Post" : "Pre"), Sx, Sy); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -3054,6 +3301,9 @@ int U_PMR_SETPAGETRANSFORM_print(const char *contents){ if(status){ printf(" + UTenum:%d Scale:%f\n",UTenum, Scale); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -3071,6 +3321,9 @@ int U_PMR_SETWORLDTRANSFORM_print(const char *contents){ U_PMF_TRANSFORMMATRIX2_print(&Matrix); printf("\n"); } + else { + printf(" corrupt record\n"); + } return(status); } @@ -3087,6 +3340,9 @@ int U_PMR_TRANSLATEWORLDTRANSFORM_print(const char *contents){ if(status){ printf(" + xmtype:%d Multiply:%s TranslateX:%f TranlateY:%f\n",xmtype,(xmtype ? "Post" : "Pre"), Dx, Dy); } + else { + printf(" corrupt record\n"); + } return(status); } diff --git a/src/libuemf/upmf_print.h b/src/libuemf/upmf_print.h index 3ba6694eb..fe1c57d60 100644 --- a/src/libuemf/upmf_print.h +++ b/src/libuemf/upmf_print.h @@ -6,11 +6,11 @@ /* File: upmf_print.h -Version: 0.0.2 -Date: 17-OCT-2013 +Version: 0.0.4 +Date: 24-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu -Copyright: 2013 David Mathog and California Institute of Technology (Caltech) +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) */ #ifndef _UPMF_PRINT_ @@ -33,77 +33,78 @@ int U_PMF_PX_FMT_ENUM_print(int pfe); int U_PMF_NODETYPE_print(int Type); /* prototypes for objects used in PMR records */ -int U_PMF_BRUSH_print(const char *contents); -int U_PMF_CUSTOMLINECAP_print(const char *contents, const char *Which); -int U_PMF_FONT_print(const char *contents); -int U_PMF_IMAGE_print(const char *contents); -int U_PMF_IMAGEATTRIBUTES_print(const char *contents); -int U_PMF_PATH_print(const char *contents); -int U_PMF_PEN_print(const char *contents); -int U_PMF_REGION_print(const char *contents); -int U_PMF_STRINGFORMAT_print(const char *contents); +int U_PMF_BRUSH_print(const char *contents, const char *blimit); +int U_PMF_CUSTOMLINECAP_print(const char *contents, const char *Which, const char *blimit); +int U_PMF_FONT_print(const char *contents, const char *blimit); +int U_PMF_IMAGE_print(const char *contents, const char *blimit); +int U_PMF_IMAGEATTRIBUTES_print(const char *contents, const char *blimit); +int U_PMF_PATH_print(const char *contents, const char *blimit); +int U_PMF_PEN_print(const char *contents, const char *blimit); +int U_PMF_REGION_print(const char *contents, const char *blimit); +int U_PMF_STRINGFORMAT_print(const char *contents, const char *blimit); int U_PMF_ARGB_print(const char *contents); -int U_PMF_BITMAP_print(const char *contents); -int U_PMF_BITMAPDATA_print(const char *contents); -int U_PMF_BLENDCOLORS_print(const char *contents); -int U_PMF_BLENDFACTORS_print(const char *contents, const char *type); -int U_PMF_BOUNDARYPATHDATA_print(const char *contents); -int U_PMF_BOUNDARYPOINTDATA_print(const char *contents); -int U_PMF_CHARACTERRANGE_print(const char *contents); -int U_PMF_COMPOUNDLINEDATA_print(const char *contents); -int U_PMF_COMPRESSEDIMAGE_print(const char *contents); -int U_PMF_CUSTOMENDCAPDATA_print(const char *contents); -int U_PMF_CUSTOMLINECAPARROWDATA_print(const char *contents); -int U_PMF_CUSTOMLINECAPDATA_print(const char *contents); -int U_PMF_CUSTOMLINECAPOPTIONALDATA_print(const char *contents, uint32_t Flags); -int U_PMF_CUSTOMSTARTCAPDATA_print(const char *contents); -int U_PMF_DASHEDLINEDATA_print(const char *contents); -int U_PMF_FILLPATHOBJ_print(const char *contents); -int U_PMF_FOCUSSCALEDATA_print(const char *contents); -int U_PMF_GRAPHICSVERSION_print(const char *contents); -int U_PMF_HATCHBRUSHDATA_print(const char *contents); +int U_PMF_BITMAP_print(const char *contents, const char *blimit); +int U_PMF_BITMAPDATA_print(const char *contents, const char *blimit); +int U_PMF_BLENDCOLORS_print(const char *contents, const char *blimit); +int U_PMF_BLENDFACTORS_print(const char *contents, const char *type, const char *blimit); +int U_PMF_BOUNDARYPATHDATA_print(const char *contents, const char *blimit); +int U_PMF_BOUNDARYPOINTDATA_print(const char *contents, const char *blimit); +int U_PMF_CHARACTERRANGE_print(const char *contents, const char *blimit); +int U_PMF_COMPOUNDLINEDATA_print(const char *contents, const char *blimit); +int U_PMF_COMPRESSEDIMAGE_print(const char *contents, const char *blimit); +int U_PMF_CUSTOMENDCAPDATA_print(const char *contents, const char *blimit); +int U_PMF_CUSTOMLINECAPARROWDATA_print(const char *contents, const char *blimit); +int U_PMF_CUSTOMLINECAPDATA_print(const char *contents, const char *blimit); +int U_PMF_CUSTOMLINECAPOPTIONALDATA_print(const char *contents, uint32_t Flags, const char *blimit); +int U_PMF_CUSTOMSTARTCAPDATA_print(const char *contents, const char *blimit); +int U_PMF_DASHEDLINEDATA_print(const char *contents, const char *blimit); +int U_PMF_FILLPATHOBJ_print(const char *contents, const char *blimit); +int U_PMF_FOCUSSCALEDATA_print(const char *contents, const char *blimit); +int U_PMF_GRAPHICSVERSION_memsafe_print(const char *contents); +int U_PMF_GRAPHICSVERSION_print(const char *contents, const char *blimit); +int U_PMF_HATCHBRUSHDATA_print(const char *contents, const char *blimit); int U_PMF_LANGUAGEIDENTIFIER_print(U_PMF_LANGUAGEIDENTIFIER LId); -int U_PMF_LINEARGRADIENTBRUSHDATA_print(const char *contents); -int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_print(const char *contents, int BDFlag); -int U_PMF_LINEPATH_print(const char *contents); -int U_PMF_METAFILE_print(const char *contents); -int U_PMF_PALETTE_print(const char *contents); -int U_PMF_PATHGRADIENTBRUSHDATA_print(const char *contents); -int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_print(const char *contents, int BDFlag); -int U_PMF_PATHPOINTTYPE_print(const char *contents); -int U_PMF_PATHPOINTTYPERLE_print(const char *contents); -int U_PMF_PENDATA_print(const char *contents); -int U_PMF_PENOPTIONALDATA_print(const char *contents, int Flags); -int U_PMF_POINT_print(const char **contents); -int U_PMF_POINTF_print(const char **contents); -int U_PMF_POINTR_print(const char **contents, U_FLOAT *Xpos, U_FLOAT *Ypos); +int U_PMF_LINEARGRADIENTBRUSHDATA_print(const char *contents, const char *blimit); +int U_PMF_LINEARGRADIENTBRUSHOPTIONALDATA_print(const char *contents, int BDFlag, const char *blimit); +int U_PMF_LINEPATH_print(const char *contents, const char *blimit); +int U_PMF_METAFILE_print(const char *contents, const char *blimit); +int U_PMF_PALETTE_print(const char *contents, const char *blimit); +int U_PMF_PATHGRADIENTBRUSHDATA_print(const char *contents, const char *blimit); +int U_PMF_PATHGRADIENTBRUSHOPTIONALDATA_print(const char *contents, int BDFlag, const char *blimit); +int U_PMF_PATHPOINTTYPE_print(const char *contents, const char *blimit); +int U_PMF_PATHPOINTTYPERLE_print(const char *contents, const char *blimit); +int U_PMF_PENDATA_print(const char *contents, const char *blimit); +int U_PMF_PENOPTIONALDATA_print(const char *contents, int Flags, const char *blimit); +int U_PMF_POINT_print(const char **contents, const char *blimit); +int U_PMF_POINTF_print(const char **contents, const char *blimit); +int U_PMF_POINTR_print(const char **contents, U_FLOAT *Xpos, U_FLOAT *Ypos, const char *blimit); int U_PMF_POINT_S_print(U_PMF_POINT *Point); int U_PMF_POINTF_S_print(U_PMF_POINTF *Point); -int U_PMF_RECT_print(const char **contents); -int U_PMF_RECTF_print(const char **contents); +int U_PMF_RECT_print(const char **contents, const char *blimit); +int U_PMF_RECTF_print(const char **contents, const char *blimit); int U_PMF_RECT_S_print(U_PMF_RECT *Rect); int U_PMF_RECTF_S_print(U_PMF_RECTF *Rect); -int U_PMF_REGIONNODE_print(const char *contents, int Level); -int U_PMF_REGIONNODECHILDNODES_print(const char *contents, int Level); -int U_PMF_REGIONNODEPATH_print(const char *contents); -int U_PMF_SOLIDBRUSHDATA_print(const char *contents); -int U_PMF_STRINGFORMATDATA_print(const char *contents, uint32_t TabStopCount, uint32_t RangeCount); -int U_PMF_TEXTUREBRUSHDATA_print(const char *contents); -int U_PMF_TEXTUREBRUSHOPTIONALDATA_print(const char *contents, int HasImage); -int U_PMF_TRANSFORMMATRIX_print(const char *contents); +int U_PMF_REGIONNODE_print(const char *contents, int Level, const char *blimit); +int U_PMF_REGIONNODECHILDNODES_print(const char *contents, int Level, const char *blimit); +int U_PMF_REGIONNODEPATH_print(const char *contents, const char *blimit); +int U_PMF_SOLIDBRUSHDATA_print(const char *contents, const char *blimit); +int U_PMF_STRINGFORMATDATA_print(const char *contents, uint32_t TabStopCount, uint32_t RangeCount, const char *blimit); +int U_PMF_TEXTUREBRUSHDATA_print(const char *contents, const char *blimit); +int U_PMF_TEXTUREBRUSHOPTIONALDATA_print(const char *contents, int HasMatrix, int HasImage, const char *blimit); +int U_PMF_TRANSFORMMATRIX_print(const char *contents, const char *blimit); int U_PMF_TRANSFORMMATRIX2_print(U_PMF_TRANSFORMMATRIX *Matrix); int U_PMF_ROTMATRIX2_print(U_PMF_ROTMATRIX *Matrix); -int U_PMF_IE_BLUR_print(const char *contents); -int U_PMF_IE_BRIGHTNESSCONTRAST_print(const char *contents); -int U_PMF_IE_COLORBALANCE_print(const char *contents); -int U_PMF_IE_COLORCURVE_print(const char *contents); -int U_PMF_IE_COLORLOOKUPTABLE_print(const char *contents); -int U_PMF_IE_COLORMATRIX_print(const char *contents); -int U_PMF_IE_HUESATURATIONLIGHTNESS_print(const char *contents); -int U_PMF_IE_LEVELS_print(const char *contents); -int U_PMF_IE_REDEYECORRECTION_print(const char *contents); -int U_PMF_IE_SHARPEN_print(const char *contents); -int U_PMF_IE_TINT_print(const char *contents); +int U_PMF_IE_BLUR_print(const char *contents, const char *blimit); +int U_PMF_IE_BRIGHTNESSCONTRAST_print(const char *contents, const char *blimit); +int U_PMF_IE_COLORBALANCE_print(const char *contents, const char *blimit); +int U_PMF_IE_COLORCURVE_print(const char *contents, const char *blimit); +int U_PMF_IE_COLORLOOKUPTABLE_print(const char *contents, const char *blimit); +int U_PMF_IE_COLORMATRIX_print(const char *contents, const char *blimit); +int U_PMF_IE_HUESATURATIONLIGHTNESS_print(const char *contents, const char *blimit); +int U_PMF_IE_LEVELS_print(const char *contents, const char *blimit); +int U_PMF_IE_REDEYECORRECTION_print(const char *contents, const char *blimit); +int U_PMF_IE_SHARPEN_print(const char *contents, const char *blimit); +int U_PMF_IE_TINT_print(const char *contents, const char *blimit); /* prototypes for PMR records */ int U_PMR_OFFSETCLIP_print(const char *contents); @@ -127,14 +128,14 @@ int U_PMR_DRAWIMAGEPOINTS_print(const char *contents); int U_PMR_DRAWLINES_print(const char *contents); int U_PMR_DRAWPATH_print(const char *contents); int U_PMR_DRAWPIE_print(const char *contents); -int U_PMR_DRAWRECTS_print(const char *contents, const char *blimit); +int U_PMR_DRAWRECTS_print(const char *contents); int U_PMR_DRAWSTRING_print(const char *contents); int U_PMR_FILLCLOSEDCURVE_print(const char *contents); int U_PMR_FILLELLIPSE_print(const char *contents); int U_PMR_FILLPATH_print(const char *contents); int U_PMR_FILLPIE_print(const char *contents); int U_PMR_FILLPOLYGON_print(const char *contents); -int U_PMR_FILLRECTS_print(const char *contents, const char *blimit); +int U_PMR_FILLRECTS_print(const char *contents); int U_PMR_FILLREGION_print(const char *contents); int U_PMR_OBJECT_print(const char *contents, const char *blimit, U_OBJ_ACCUM *ObjCont, int term); int U_PMR_SERIALIZABLEOBJECT_print(const char *contents); diff --git a/src/libuemf/uwmf.c b/src/libuemf/uwmf.c index b378e587f..35d38f69a 100644 --- a/src/libuemf/uwmf.c +++ b/src/libuemf/uwmf.c @@ -19,8 +19,8 @@ /* File: uwmf.c -Version: 0.0.15 -Date: 11-APR-2014 +Version: 0.0.16 +Date: 25-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2014 David Mathog and California Institute of Technology (Caltech) @@ -47,6 +47,7 @@ extern "C" { #endif #include "uwmf.h" #include "uwmf_endian.h" +#include "uemf_safe.h" /** \brief Look up the full numeric type of a WMR record by type. @@ -671,6 +672,51 @@ const char *U_wmr_escnames(int idx){ /* one prototype from uwmf_endian. Put it here because end user should never need to see it, so not in uemf.h or uwmf_endian.h */ void U_swap2(void *ul, unsigned int count); + +/** + \brief Check that the bitmap in the specified packed DIB is compatible with the record size + + \return 1 on success, 0 on failure + \param record EMF record that contains a DIB pixel array + \param blimit one byte past the end of the record. + + This method can only test DIBs that hold Microsoft's various bitmap types. PNG or JPG is just a bag + of bytes, and there is no possible way to derive from the known width and height how big it should be. + + This should not be called directly by end user code. +*/ +int packed_DIB_safe( + const char *record, + const char *blimit + ){ + int dibparams = U_BI_UNKNOWN; // type of image not yet determined + const char *px = NULL; // DIB pixels + const U_RGBQUAD *ct = NULL; // DIB color table + int bs; + int usedbytes; + + if(!bitmapinfo_safe(record, blimit))return(0); // this DIB has issues with colors fitting into the record + uint32_t width, height, colortype, numCt, invert; // these values will be set in get_DIB_params + // next call returns pointers and values, but allocates no memory + dibparams = wget_DIB_params(record, &px, (const U_RGBQUAD **) &ct, &numCt, &width, &height, &colortype, &invert); + // sanity checking + if(numCt && colortype >= U_BCBM_COLOR16)return(0); //color tables not used above 16 bit pixels + if(!numCt && colortype < U_BCBM_COLOR16)return(0); //color tables mandatory for < 16 bit + + if(dibparams ==U_BI_RGB){ + // this is the only DIB type where we can calculate how big it should be when stored in the WMF file + bs = colortype/8; + if(bs<1){ + usedbytes = (width*colortype + 7)/8; // width of line in fully and partially occupied bytes + } + else { + usedbytes = width*bs; + } + if(IS_MEM_UNSAFE(px, usedbytes, blimit))return(0); + } + return(1); +} + //! \endcond /** @@ -4439,9 +4485,7 @@ size_t U_WMRRECSAFE_get( memcpy(&Size16, contents + offsetof(U_METARECORD,Size16_4), 4); size = 2*Size16; /* Record is not self consistent - described size past the end of WMF in memory */ - if(size < U_SIZE_METARECORD || - contents + size - 1 >= blimit || - contents + size - 1 < contents)size=0; + if(size < U_SIZE_METARECORD || IS_MEM_UNSAFE(contents, size, blimit))size=0; return(size); } @@ -4826,20 +4870,21 @@ int wmfheader_get( ){ uint32_t Key; int size=0; - if(!Placeable || !Header || contents + 4 >= blimit)return(0); + if(!contents || !Placeable || !Header || !blimit)return(0); + if(IS_MEM_UNSAFE(contents, 4, blimit))return(0); memcpy(&Key, contents + offsetof(U_WMRPLACEABLE,Key), 4); if(Key == 0x9AC6CDD7){ size += U_SIZE_WMRPLACEABLE; - if(contents + size >= blimit)return(0); + if(IS_MEM_UNSAFE(contents, size, blimit))return(0); memcpy(Placeable, contents, U_SIZE_WMRPLACEABLE); contents += U_SIZE_WMRPLACEABLE; } else { memset(Placeable, 0, U_SIZE_WMRPLACEABLE); } - if(contents + size + U_SIZE_WMRHEADER >= blimit)return(0); + if(IS_MEM_UNSAFE(contents, size + U_SIZE_WMRHEADER, blimit))return(0); size += 2* (*(uint16_t *)(contents + offsetof(U_WMRHEADER,Size16w))); - if(contents + size >= blimit)return(0); + if(IS_MEM_UNSAFE(contents, size, blimit))return(0); memcpy(Header, contents, U_SIZE_WMRHEADER); return(size); } @@ -5512,7 +5557,11 @@ int U_WMRPOLYGON_get( uint16_t *Length, const char **Data ){ - return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRPOLYGON), NULL, Length, Data); + int size = U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRPOLYGON), NULL, Length, Data); + if(size){ + if(IS_MEM_UNSAFE(*Data, (*Length)*sizeof(U_POINT16), contents+size))return(0); + } + return size; } /** @@ -5527,7 +5576,11 @@ int U_WMRPOLYLINE_get( uint16_t *Length, const char **Data ){ - return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRPOLYLINE), NULL, Length, Data); + int size = U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRPOLYGON), NULL, Length, Data); + if(size){ + if(IS_MEM_UNSAFE(*Data, (*Length)*sizeof(U_POINT16), contents+size))return(0); + } + return size; } /** @@ -5550,7 +5603,11 @@ int U_WMRESCAPE_get( uint16_t *Length, const char **Data ){ - return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRESCAPE), Escape, Length, Data); + int size = U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRESCAPE), Escape, Length, Data); + if(size){ + if(IS_MEM_UNSAFE(*Data, *Length, contents+size))return(0); + } + return size; } /** @@ -5787,6 +5844,7 @@ int U_WMRSETDIBTODEV_get( Dst->y = *(int16_t *)( contents + offsetof(U_WMRSETDIBTODEV, yDst )); Dst->x = *(int16_t *)( contents + offsetof(U_WMRSETDIBTODEV, xDst )); *dib = ( contents + offsetof(U_WMRSETDIBTODEV, dib )); + if(!packed_DIB_safe(*dib, *dib+size))return(0); return(size); } @@ -5948,6 +6006,7 @@ int U_WMRDIBBITBLT_get( Dst->y = *(int16_t *)( contents + offsetof(U_WMRDIBBITBLT_PX, yDst )); Dst->x = *(int16_t *)( contents + offsetof(U_WMRDIBBITBLT_PX, xDst )); *dib = ( contents + offsetof(U_WMRDIBBITBLT_PX, dib )); + if(!packed_DIB_safe(*dib, *dib+size))return(0); } return(size); } @@ -5999,6 +6058,7 @@ int U_WMRDIBSTRETCHBLT_get( cDst->y = *(int16_t *)( contents + offsetof(U_WMRDIBSTRETCHBLT_PX, hDst )); cDst->x = *(int16_t *)( contents + offsetof(U_WMRDIBSTRETCHBLT_PX, wDst )); *dib = ( contents + offsetof(U_WMRDIBSTRETCHBLT_PX, dib )); + if(!packed_DIB_safe(*dib, *dib+size))return(0); } return(size); } @@ -6040,11 +6100,13 @@ int U_WMRDIBCREATEPATTERNBRUSH_get( if(TmpBm16.Width <= 0 || TmpBm16.Height <= 0 || TmpBm16.Planes != 1 || TmpBm16.BitsPixel == 0){ *Bm16 = NULL; *dib = (contents + offsetof(U_WMRDIBCREATEPATTERNBRUSH, Src)); + if(!packed_DIB_safe(*dib, *dib+size))return(0); } } else { /* from DIB */ *Bm16 = NULL; *dib = (contents + offsetof(U_WMRDIBCREATEPATTERNBRUSH, Src)); + if(!packed_DIB_safe(*dib, *dib+size))return(0); } return(size); } @@ -6085,6 +6147,7 @@ int U_WMRSTRETCHDIB_get( Dst->y = *(int16_t *)( contents + offsetof(U_WMRSTRETCHDIB, yDst )); Dst->x = *(int16_t *)( contents + offsetof(U_WMRSTRETCHDIB, xDst )); *dib = ( contents + offsetof(U_WMRSTRETCHDIB, dib )); + if(!packed_DIB_safe(*dib, *dib+size))return(0); return(size); } @@ -6914,7 +6977,12 @@ int U_WMRCREATEFONTINDIRECT_get( const char *contents, const char **font ){ - return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRCREATEFONTINDIRECT), NULL, NULL, font); + int size = U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRCREATEFONTINDIRECT), NULL, NULL, font); + if(size){ + if(IS_MEM_UNSAFE(*font, U_SIZE_FONT_CORE, contents+size))return(0); + if(contents + size - *font > U_SIZE_FONT_CORE + 32)return(0); // font name must fit in a 32 bit field + } + return size; } /** @@ -6927,6 +6995,7 @@ int U_WMRCREATEBRUSHINDIRECT_get( const char *contents, const char **brush ){ + // U_SIZE_WMRCREATEBRUSHINDIRECT is everything, no variable part, so the test below is sufficient return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRCREATEBRUSHINDIRECT), NULL, NULL, brush); } @@ -6947,16 +7016,19 @@ int U_WMRCREATEBITMAP_get(void){ \return length of the U_WMRCREATEREGION record in bytes, or 0 on error \param contents record to extract data from \param Region pointer to U_REGION structure in memory. Pointer may not be aligned properly for structure. + + Caller must check at the returned Region does not extend outside of the record! */ int U_WMRCREATEREGION_get( const char *contents, const char **Region ){ - return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRCREATEREGION), NULL, NULL, Region); + return U_WMRCORE_2U16_N16_get(contents, (U_SIZE_WMRCREATEREGION), NULL, NULL, Region); } + #ifdef __cplusplus } #endif diff --git a/src/libuemf/uwmf.h b/src/libuemf/uwmf.h index 54f7f36fe..2237d2221 100644 --- a/src/libuemf/uwmf.h +++ b/src/libuemf/uwmf.h @@ -36,8 +36,8 @@ /* File: uwmf.h -Version: 0.0.10 -Date: 24-MAR-2014 +Version: 0.0.11 +Date: 23-APR-2014 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2014 David Mathog and California Institute of Technology (Caltech) @@ -728,6 +728,7 @@ enum U_WMR_TYPES{ #define U_SIZE_WMRCREATEFONTINDIRECT 26 /**< X 28 */ #define U_SIZE_WMRCREATEBRUSHINDIRECT 14 /**< X 16 */ #define U_SIZE_WMRCREATEREGION 26 /**< X 28 */ +#define U_SIZE_WMRCREATEREGION_CORE 24 /**< X 28 Like U_SIZE_WMRCREATEREGION minus the variable part */ /** @} */ diff --git a/src/libuemf/uwmf_print.c b/src/libuemf/uwmf_print.c index 0e089a5cd..dd460b2b0 100644 --- a/src/libuemf/uwmf_print.c +++ b/src/libuemf/uwmf_print.c @@ -319,7 +319,7 @@ void scan_print( \param dh void pointer to DIB header A DIB header in an WMF may be either a BitmapCoreHeader or BitmapInfoHeader. */ -void dibheader_print(const void *dh){ +void dibheader_print(const char *dh, const char *blimit){ uint32_t Size; memcpy(&Size, dh, 4); /* may not be aligned */ if(Size == 0xC ){ @@ -330,7 +330,7 @@ void dibheader_print(const void *dh){ } else { printf(" (BitmapInfoHeader) "); - bitmapinfo_print(dh); /* may not be aligned, called routine must handle it */ + bitmapinfo_print(dh, blimit); /* may not be aligned, called routine must handle it */ } } @@ -922,7 +922,7 @@ void U_WMRSETDIBTODEV_print(const char *contents){ printf(" Src X,Y:{%d,%d}\n", Src.x, Src.y ); printf(" W,H:%d,%d\n", cwh.x, cwh.y ); printf(" Dst X,Y:{%d,%d}\n", Dst.x, Dst.y ); - printf(" DIB:"); dibheader_print(dib); printf("\n"); + printf(" DIB:"); dibheader_print(dib, dib+size); printf("\n"); } } @@ -993,7 +993,7 @@ void U_WMRDIBBITBLT_print(const char *contents){ printf(" Src X,Y:{%d,%d}\n", Src.x, Src.x ); printf(" W,H:%d,%d\n", cwh.x, cwh.y ); printf(" Dst X,Y:{%d,%d}\n", Dst.x, Dst.y ); - if(dib){ printf(" DIB:"); dibheader_print(dib); printf("\n"); } + if(dib){ printf(" DIB:"); dibheader_print(dib, dib+size); printf("\n"); } else { printf(" DIB: none\n"); } } } @@ -1009,7 +1009,7 @@ void U_WMRDIBSTRETCHBLT_print(const char *contents){ printf(" Src X,Y:{%d,%d}\n", Src.x, Src.x ); printf(" Dst W,H:%d,%d\n", cDst.x, cDst.y ); printf(" Dst X,Y:{%d,%d}\n", Dst.x, Dst.y ); - if(dib){ printf(" DIB:"); dibheader_print(dib); printf("\n"); } + if(dib){ printf(" DIB:"); dibheader_print(dib, dib+size); printf("\n"); } else { printf(" DIB: none\n"); } } } @@ -1028,7 +1028,7 @@ void U_WMRDIBCREATEPATTERNBRUSH_print(const char *contents){ printf(" Src:Bitmap16:"); bitmap16_print(Bm16); printf("\n"); } else { /* from DIB */ - printf(" Src:DIB:"); dibheader_print(dib); printf("\n"); + printf(" Src:DIB:"); dibheader_print(dib, dib+size); printf("\n"); } } } @@ -1046,7 +1046,7 @@ void U_WMRSTRETCHDIB_print(const char *contents){ printf(" Src X,Y:{%d,%d}\n", Src.x, Src.x ); printf(" Dst W,H:%d,%d\n", cDst.x, cDst.y ); printf(" Dst X,Y:{%d,%d}\n", Dst.x, Dst.y ); - if(dib){ printf(" DIB:"); dibheader_print(dib); printf("\n"); } + if(dib){ printf(" DIB:"); dibheader_print(dib, dib+size); printf("\n"); } else { printf(" DIB: none\n"); } } } diff --git a/src/libuemf/uwmf_print.h b/src/libuemf/uwmf_print.h index 8daee0feb..54dfe9c9c 100644 --- a/src/libuemf/uwmf_print.h +++ b/src/libuemf/uwmf_print.h @@ -37,7 +37,7 @@ void bitmapcoreheader_print(U_BITMAPCOREHEADER ch); void logbrushw_print(U_WLOGBRUSH lb); void polypolygon_print(uint16_t nPolys, const uint16_t *aPolyCounts, const char *Points); void scan_print(U_SCAN sc); -void dibheader_print(const void *dh); +void dibheader_print(const char *dh, const char *blimit); /* prototypes for WMF records */ int wmfheader_print(const char *contents, const char *blimit); -- cgit v1.2.3 From 9b9f0427b04c7e84f7c0baad54ce3005ad08ac65 Mon Sep 17 00:00:00 2001 From: mathog <> Date: Mon, 27 Apr 2015 12:30:27 -0700 Subject: add two files omitted in patch at revision 14062 (bzr r14063) --- src/libuemf/uemf_safe.c | 1202 +++++++++++++++++++++++++++++++++++++++++++++++ src/libuemf/uemf_safe.h | 32 ++ 2 files changed, 1234 insertions(+) create mode 100644 src/libuemf/uemf_safe.c create mode 100644 src/libuemf/uemf_safe.h diff --git a/src/libuemf/uemf_safe.c b/src/libuemf/uemf_safe.c new file mode 100644 index 000000000..36284d60e --- /dev/null +++ b/src/libuemf/uemf_safe.c @@ -0,0 +1,1202 @@ +/** + @file uemf_safe.c + + @brief Functions for checking EMF records for memory issues. + + EMF records come in a variety of sizes, and some types have variable sizes. + These functions check the record types and report if there are any issues + that could cause a memory access problem. All counts and offsets are examined + and the data structure checked so that no referenced byte is outside of the + declared size of the record. + + Many variables are initialized to zero even though they will always be set because + some versions of gcc give spurious "may be used uninitialized" warnings otherwise. +*/ + +/* +File: uemf_safe.c +Version: 0.0.4 +Date: 23-APR-2015 +Author: David Mathog, Biology Division, Caltech +email: mathog@caltech.edu +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include /* for offsetof() macro */ +#include "uemf.h" +#include "uemf_endian.h" // for u_emf_record_sizeok + +// hide almost everuything in here from Doxygen +//! \cond + +/** + \brief Test a U_EXTLOGPEN object. + \param elp PU_EXTLOGPEN object + \param blimit one byte past the end of the record +*/ +int extlogpen_safe( + PU_EXTLOGPEN elp, + const char *blimit + ){ + int count=elp->elpNumEntries; + if(IS_MEM_UNSAFE(&(elp->elpStyleEntry), count*4, blimit))return(0); + return(1); +} + +/** + \brief Test a U_EMRTEXT record + \param pemt Pointer to a U_EMRTEXT record + \param record Pointer to the start of the record which contains this U_EMRTEXT + \param blimit one byte past the end of the record. +*/ +int emrtext_safe( + PU_EMRTEXT pemt, + const char *record, + const char *blimit + ){ + int off; + uint32_t count = pemt->nChars; + uint32_t fOptions = pemt->fOptions; + uint32_t offDx = 0; + off = sizeof(U_EMRTEXT); + if(!(fOptions & U_ETO_NO_RECT)){ + if(IS_MEM_UNSAFE(pemt, sizeof(U_RECTL), blimit))return(0); + off+=sizeof(U_RECTL); + } + offDx = *(uint32_t *)((char *)pemt +off); + if(IS_MEM_UNSAFE(pemt, off + 4, blimit))return(0); + if(IS_MEM_UNSAFE(record, offDx + count*4, blimit))return(0); + return(1); +} + +/** + \return 1 on success, 0 on failure + \brief Test a U_RGNDATA object. + \param rd pointer to a U_RGNDATA object. + \param cbRgnData size of the U_RGNDATA object. +*/ +int rgndata_safe( + PU_RGNDATA rd, + int cbRgnData + ){ + int count = rd->rdh.nCount; + if(4*count + (int)sizeof(U_RGNDATAHEADER) > cbRgnData)return(0); + return(1); +} + + +/** + \return 1 on success, 0 on failure + \brief Test a U_BITMAPINFO object. + \param Bmi pointer to a U_BITMAPINFO object. + \param blimit one byte past the end of the record. +*/ +int bitmapinfo_safe( + const char *Bmi, + const char *blimit + ){ + int ClrUsed; + if(IS_MEM_UNSAFE(Bmi, offsetof(U_BITMAPINFO,bmiHeader) + sizeof(U_BITMAPINFOHEADER), blimit))return(0); + ClrUsed = get_real_color_count(Bmi + offsetof(U_BITMAPINFO,bmiHeader)); + if(ClrUsed && IS_MEM_UNSAFE(Bmi, offsetof(U_BITMAPINFO,bmiColors) + ClrUsed*sizeof(U_RGBQUAD), blimit))return(0); + return(1); +} + +/** + \brief Check that the bitmap in the specified DIB is compatible with the record size + + \return 1 on success, 0 on failure + \param record EMF record that contains a DIB pixel array + \param iUsage DIBcolors Enumeration + \param offBmi offset from the start of the record to the start of the bitmapinfo structure + \param cbBmi declared space for the bitmapinfo structure in the record + \param offBits offset from the start of the record to the start of the bitmap + \param cbBits declared space for the bitmap in the record (amount used may be less than this) + \param blimit one byte past the end of the record. + + This method can only test DIBs that hold Microsoft's various bitmap types. PNG or JPG is just a bag + of bytes, and there is no possible way to derive from the known width and height how big it should be. +*/ +int DIB_safe( + const char *record, + uint32_t iUsage, + uint32_t offBmi, + uint32_t cbBmi, + uint32_t offBits, + uint32_t cbBits, + const char *blimit + ){ + int dibparams = U_BI_UNKNOWN; // type of image not yet determined + const char *px = NULL; // DIB pixels + const U_RGBQUAD *ct = NULL; // DIB color table + int bs; + int usedbytes; + + if(!cbBmi)return(1); // No DIB in a record where it is optional + if(IS_MEM_UNSAFE(record, offBmi + cbBmi, blimit))return(0); + if(!bitmapinfo_safe(record + offBmi, blimit))return(0); // checks the number of colors + if(cbBits && IS_MEM_UNSAFE(record, offBits + cbBits, blimit))return(0); + if(iUsage == U_DIB_RGB_COLORS){ + uint32_t width, height, colortype, numCt, invert; // these values will be set in get_DIB_params + // next call returns pointers and values, but allocates no memory + dibparams = get_DIB_params(record, offBits, offBmi, &px, (const U_RGBQUAD **) &ct, + &numCt, &width, &height, &colortype, &invert); + + // sanity checking + if(numCt && colortype >= U_BCBM_COLOR16)return(0); //color tables not used above 16 bit pixels + if(!numCt && colortype < U_BCBM_COLOR16)return(0); //color tables mandatory for < 16 bit + + if(dibparams ==U_BI_RGB){ + // this is the only DIB type where we can calculate how big it should be when stored in the EMF file + bs = colortype/8; + if(bs<1){ + usedbytes = (width*colortype + 7)/8; // width of line in fully and partially occupied bytes + } + else { + usedbytes = width*bs; + } + if(IS_MEM_UNSAFE(record+offBits, usedbytes, blimit))return(0); + } + } + return(1); +} + + +/* ********************************************************************************************** +These functions contain shared code used by various U_EMR*_safe functions. These should NEVER be called +by end user code and to further that end prototypes are NOT provided and they are hidden from Doxygen. + + + These all have this form: + + void core1_safe(const char *record){ + + but some do not actually use torev. + + + +*********************************************************************************************** */ + +// all core*_safe call this, U_EMRSETMARGN_safe and some others all it directly +// numbered as core5 to be consistent with uemf.c, but must appear before the others as there is no prototype +// sizeof(U_ENHMETARECORD) bytes in the record +int core5_safe(const char *record, int minSize){ + PU_EMR pEmr = (PU_EMR)(record); + if((int) pEmr->nSize < minSize)return(0); + return(1); +} + +// Functions with the same form starting with U_EMRPOLYBEZIER_safe +int core1_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYLINETO))return(0); + PU_EMRPOLYLINETO pEmr = (PU_EMRPOLYLINETO) (record); + int count=pEmr->cptl; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->aptl, count*sizeof(U_POINTL), blimit))return(0); + return(1); +} + +// Functions with the same form starting with U_EMRPOLYPOLYLINE_safe +int core2_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYPOLYLINE))return(0); + PU_EMRPOLYPOLYLINE pEmr = (PU_EMRPOLYPOLYLINE) (record); + int count = pEmr->cptl; + int nPolys = pEmr->nPolys; + const char * blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->aPolyCounts, nPolys*4, blimit))return(0); + record += sizeof(U_EMRPOLYPOLYLINE) - 4 + sizeof(uint32_t)* nPolys; + if(IS_MEM_UNSAFE(record, count*sizeof(U_POINTL), blimit))return(0); + return(1); +} + + +// Functions with the same form starting with U_EMRSETMAPMODE_safe +int core3_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSETMAPMODE))return(0); + return(1); +} + +// Functions taking a single U_RECT or U_RECTL, starting with U_EMRELLIPSE_safe, also U_EMRFILLPATH_safe, +int core4_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRELLIPSE))return(0); + return(1); +} + +// Functions with the same form starting with U_EMRPOLYBEZIER16_safe +int core6_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYBEZIER16))return(0); + PU_EMRPOLYBEZIER16 pEmr = (PU_EMRPOLYBEZIER16) (record); + int count=pEmr->cpts; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->apts, count*sizeof(U_POINT16), blimit))return(0); + return(1); +} + + +// Records with the same form starting with U_EMRSETWINDOWEXTEX_safe, that is, all with two uint32_t values after the emr +int core7_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSETWINDOWEXTEX))return(0); + return(1); +} + +// For U_EMREXTTEXTOUTA and U_EMREXTTEXTOUTW, type=0 for the first one +int core8_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMREXTTEXTOUTA))return(0); + PU_EMREXTTEXTOUTA pEmr = (PU_EMREXTTEXTOUTA) (record); + const char *blimit = record + pEmr->emr.nSize; + if(!emrtext_safe(&(pEmr->emrtext),record,blimit))return(0); + return(1); +} + +// Functions that take a rect and a pair of points, starting with U_EMRARC_safe +int core9_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRARC))return(0); + return(1); +} + +// Functions with the same form starting with U_EMRPOLYPOLYLINE16_safe +int core10_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYPOLYLINE16))return(0); + PU_EMRPOLYPOLYLINE16 pEmr = (PU_EMRPOLYPOLYLINE16) (record); + int count = pEmr->cpts; + int nPolys = pEmr->nPolys; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->aPolyCounts, nPolys*4, blimit))return(0); + record += sizeof(U_EMRPOLYPOLYLINE16) - 4 + sizeof(uint32_t)* nPolys; + if(IS_MEM_UNSAFE(record, count*sizeof(U_POINT16), blimit))return(0); + return(1); +} + +// Functions with the same form starting with U_EMRINVERTRGN_safe and U_EMRPAINTRGN_safe, +int core11_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRINVERTRGN))return(0); + PU_EMRINVERTRGN pEmr = (PU_EMRINVERTRGN)(record); + int cbRgnData = pEmr->cbRgnData; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_safe(pEmr->RgnData, cbRgnData)); +} + + +// common code for U_EMRCREATEMONOBRUSH_safe and U_EMRCREATEDIBPATTERNBRUSHPT_safe, +int core12_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRCREATEMONOBRUSH))return(0); + PU_EMRCREATEMONOBRUSH pEmr = (PU_EMRCREATEMONOBRUSH) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMI offBmi = pEmr->offBmi; + U_CBBMI cbBmi = pEmr->cbBmi; + U_OFFBITS offBits = pEmr->offBits; + U_CBBITS cbBits = pEmr->cbBits; + uint32_t iUsage = pEmr->iUsage; + return(DIB_safe(record, iUsage, offBmi, cbBmi, offBits, cbBits, blimit)); +} + +// common code for U_EMRALPHABLEND_safe and U_EMRTRANSPARENTBLT_safe, +int core13_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRALPHABLEND))return(0); + PU_EMRALPHABLEND pEmr = (PU_EMRALPHABLEND) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITS cbBitsSrc = pEmr->cbBitsSrc; + uint32_t iUsageSrc = pEmr->iUsageSrc; + return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit)); +} + +/* ********************************************************************************************** +These are the core EMR_safe functions, each converts a particular type of record. +All operate in place on the chunk of memory holding that record. +Some of these have offsets or counts which, if corrupt or evil would result in access outside + the record. These cases return a status value of 0 if that happens, 1 on success. Other + records which do not have these issues do not return a status value. +They are listed in order by the corresponding U_EMR_* index number. +*********************************************************************************************** */ + +/** + All of the record level (hidden) functions have this form: + \brief Convert a pointer to a U_EMR_whatever record which has not been implemented. + \param record pointer to a buffer holding the EMR record + \param torev 1 for native to reversed, 0 for reversed to native +*/ +int U_EMRNOTIMPLEMENTED_safe(const char *record){ + fprintf(stderr,"EMF WARNING: could not safety check record because that type has not been implemented!\n"); + return(core5_safe(record, sizeof(U_EMR))); +} + +// U_EMRHEADER 1 +int U_EMRHEADER_safe(const char *record){ + // use _MIN form so that it accepts very old EMF files + return(core5_safe(record, U_SIZE_EMRHEADER_MIN)); +} + +// U_EMRPOLYBEZIER 2 +int U_EMRPOLYBEZIER_safe(const char *record){ + return(core1_safe(record)); +} + +// U_EMRPOLYGON 3 +int U_EMRPOLYGON_safe(const char *record){ + return(core1_safe(record)); +} + +// U_EMRPOLYLINE 4 +int U_EMRPOLYLINE_safe(const char *record){ + return(core1_safe(record)); +} + +// U_EMRPOLYBEZIERTO 5 +int U_EMRPOLYBEZIERTO_safe(const char *record){ + return(core1_safe(record)); +} + +// U_EMRPOLYLINETO 6 +int U_EMRPOLYLINETO_safe(const char *record){ + return(core1_safe(record)); +} + +// U_EMRPOLYPOLYLINE 7 +int U_EMRPOLYPOLYLINE_safe(const char *record){ + return(core2_safe(record)); +} + +// U_EMRPOLYPOLYGON 8 +int U_EMRPOLYPOLYGON_safe(const char *record){ + return(core2_safe(record)); +} + +// U_EMRSETWINDOWEXTEX 9 +int U_EMRSETWINDOWEXTEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRSETWINDOWORGEX 10 +int U_EMRSETWINDOWORGEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRSETVIEWPORTEXTEX 11 +int U_EMRSETVIEWPORTEXTEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRSETVIEWPORTORGEX 12 +int U_EMRSETVIEWPORTORGEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRSETBRUSHORGEX 13 +int U_EMRSETBRUSHORGEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMREOF 14 +int U_EMREOF_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMREOF))return(0); + PU_EMREOF pEmr = (PU_EMREOF)(record); + const char *blimit = record + pEmr->emr.nSize; + int cbPalEntries=pEmr->cbPalEntries; + if(cbPalEntries){ + if(IS_MEM_UNSAFE(record, pEmr->offPalEntries + 2*2, blimit))return(0);// 2 16 bit values in U_LOGPALLETE + } + int off = sizeof(U_EMREOF) + 4 * cbPalEntries; + if(IS_MEM_UNSAFE(record, off + 4, blimit))return(0); + return(1); +} + + +// U_EMRSETPIXELV 15 +int U_EMRSETPIXELV_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETPIXELV)); + +} + + +// U_EMRSETMAPPERFLAGS 16 +int U_EMRSETMAPPERFLAGS_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETMAPPERFLAGS)); +} + + +// U_EMRSETMAPMODE 17 +int U_EMRSETMAPMODE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETBKMODE 18 +int U_EMRSETBKMODE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETPOLYFILLMODE 19 +int U_EMRSETPOLYFILLMODE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETROP2 20 +int U_EMRSETROP2_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETSTRETCHBLTMODE 21 +int U_EMRSETSTRETCHBLTMODE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETTEXTALIGN 22 +int U_EMRSETTEXTALIGN_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETCOLORADJUSTMENT 23 +int U_EMRSETCOLORADJUSTMENT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETCOLORADJUSTMENT)); +} + +// U_EMRSETTEXTCOLOR 24 +int U_EMRSETTEXTCOLOR_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETTEXTCOLOR)); +} + +// U_EMRSETBKCOLOR 25 +int U_EMRSETBKCOLOR_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETBKCOLOR)); +} + +// U_EMROFFSETCLIPRGN 26 +int U_EMROFFSETCLIPRGN_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRMOVETOEX 27 +int U_EMRMOVETOEX_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRSETMETARGN 28 +int U_EMRSETMETARGN_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETMETARGN)); +} + +// U_EMREXCLUDECLIPRECT 29 +int U_EMREXCLUDECLIPRECT_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRINTERSECTCLIPRECT 30 +int U_EMRINTERSECTCLIPRECT_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRSCALEVIEWPORTEXTEX 31 +int U_EMRSCALEVIEWPORTEXTEX_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRSCALEWINDOWEXTEX 32 +int U_EMRSCALEWINDOWEXTEX_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRSAVEDC 33 +int U_EMRSAVEDC_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSAVEDC)); +} + +// U_EMRRESTOREDC 34 +int U_EMRRESTOREDC_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETWORLDTRANSFORM 35 +int U_EMRSETWORLDTRANSFORM_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETWORLDTRANSFORM)); +} + +// U_EMRMODIFYWORLDTRANSFORM 36 +int U_EMRMODIFYWORLDTRANSFORM_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRMODIFYWORLDTRANSFORM)); +} + +// U_EMRSELECTOBJECT 37 +int U_EMRSELECTOBJECT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSELECTOBJECT)); +} + +// U_EMRCREATEPEN 38 +int U_EMRCREATEPEN_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCREATEPEN)); +} + +// U_EMRCREATEBRUSHINDIRECT 39 +int U_EMRCREATEBRUSHINDIRECT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCREATEBRUSHINDIRECT)); +} + +// U_EMRDELETEOBJECT 40 +int U_EMRDELETEOBJECT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRDELETEOBJECT)); + +} + +// U_EMRANGLEARC 41 +int U_EMRANGLEARC_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRANGLEARC)); +} + +// U_EMRELLIPSE 42 +int U_EMRELLIPSE_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRRECTANGLE 43 +int U_EMRRECTANGLE_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRROUNDRECT 44 +int U_EMRROUNDRECT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRROUNDRECT)); +} + +// U_EMRARC 45 +int U_EMRARC_safe(const char *record){ + return(core9_safe(record)); +} + +// U_EMRCHORD 46 +int U_EMRCHORD_safe(const char *record){ + return(core9_safe(record)); +} + +// U_EMRPIE 47 +int U_EMRPIE_safe(const char *record){ + return(core9_safe(record)); +} + +// U_EMRSELECTPALETTE 48 +int U_EMRSELECTPALETTE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRCREATEPALETTE 49 +int U_EMRCREATEPALETTE_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCREATEPALETTE)); +} + +// U_EMRSETPALETTEENTRIES 50 +int U_EMRSETPALETTEENTRIES_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRSETPALETTEENTRIES)); +} + +// U_EMRRESIZEPALETTE 51 +int U_EMRRESIZEPALETTE_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRREALIZEPALETTE 52 +int U_EMRREALIZEPALETTE_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRREALIZEPALETTE)); +} + +// U_EMREXTFLOODFILL 53 +int U_EMREXTFLOODFILL_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMREXTFLOODFILL)); +} + +// U_EMRLINETO 54 +int U_EMRLINETO_safe(const char *record){ + return(core7_safe(record)); +} + +// U_EMRARCTO 55 +int U_EMRARCTO_safe(const char *record){ + return(core9_safe(record)); +} + +// U_EMRPOLYDRAW 56 +int U_EMRPOLYDRAW_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYDRAW))return(0); + PU_EMRPOLYDRAW pEmr = (PU_EMRPOLYDRAW)(record); + int count = pEmr->cptl; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->aptl, count*sizeof(U_POINTL), blimit))return(0); + return(1); +} + +// U_EMRSETARCDIRECTION 57 +int U_EMRSETARCDIRECTION_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRSETMITERLIMIT 58 +int U_EMRSETMITERLIMIT_safe(const char *record){ + return(core3_safe(record)); +} + + +// U_EMRBEGINPATH 59 +int U_EMRBEGINPATH_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRBEGINPATH)); +} + +// U_EMRENDPATH 60 +int U_EMRENDPATH_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRENDPATH)); +} + +// U_EMRCLOSEFIGURE 61 +int U_EMRCLOSEFIGURE_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCLOSEFIGURE)); +} + +// U_EMRFILLPATH 62 +int U_EMRFILLPATH_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRSTROKEANDFILLPATH 63 +int U_EMRSTROKEANDFILLPATH_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRSTROKEPATH 64 +int U_EMRSTROKEPATH_safe(const char *record){ + return(core4_safe(record)); +} + +// U_EMRFLATTENPATH 65 +int U_EMRFLATTENPATH_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRFLATTENPATH)); +} + +// U_EMRWIDENPATH 66 +int U_EMRWIDENPATH_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRWIDENPATH)); +} + +// U_EMRSELECTCLIPPATH 67 +int U_EMRSELECTCLIPPATH_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRABORTPATH 68 +int U_EMRABORTPATH_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRABORTPATH)); +} + +// U_EMRUNDEF69 69 +#define U_EMRUNDEF69_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRCOMMENT 70 Comment (any binary data, interpretation is program specific) +int U_EMRCOMMENT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRCOMMENT))return(0); + PU_EMRCOMMENT pEmr = (PU_EMRCOMMENT)(record); + int cbData = pEmr->cbData; + const char *blimit =record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(record, cbData + sizeof(U_SIZE_EMRCOMMENT), blimit))return(0); + return(1); +} + +// U_EMRFILLRGN 71 +int U_EMRFILLRGN_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRFILLRGN))return(0); + PU_EMRFILLRGN pEmr = (PU_EMRFILLRGN)(record); + int cbRgnData = pEmr->cbRgnData; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_safe(pEmr->RgnData, cbRgnData)); +} + +// U_EMRFRAMERGN 72 +int U_EMRFRAMERGN_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRFRAMERGN))return(0); + PU_EMRFRAMERGN pEmr = (PU_EMRFRAMERGN)(record); + int cbRgnData = pEmr->cbRgnData; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_safe(pEmr->RgnData, cbRgnData)); +} + +// U_EMRINVERTRGN 73 +int U_EMRINVERTRGN_safe(const char *record){ + return(core11_safe(record)); +} + +// U_EMRPAINTRGN 74 +int U_EMRPAINTRGN_safe(const char *record){ + return(core11_safe(record)); +} + +// U_EMREXTSELECTCLIPRGN 75 +int U_EMREXTSELECTCLIPRGN_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMREXTSELECTCLIPRGN))return(0); + PU_EMREXTSELECTCLIPRGN pEmr = (PU_EMREXTSELECTCLIPRGN)(record); + int cbRgnData = pEmr->cbRgnData; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->RgnData, cbRgnData, blimit))return(0); + return(rgndata_safe(pEmr->RgnData, cbRgnData)); +} + +// U_EMRBITBLT 76 +int U_EMRBITBLT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRBITBLT))return(0); + PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITS cbBitsSrc = pEmr->cbBitsSrc; + uint32_t iUsageSrc = pEmr->iUsageSrc; + return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit)); +} + +// U_EMRSTRETCHBLT 77 +int U_EMRSTRETCHBLT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSTRETCHBLT))return(0); + PU_EMRBITBLT pEmr = (PU_EMRBITBLT) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITS cbBitsSrc = pEmr->cbBitsSrc; + uint32_t iUsageSrc = pEmr->iUsageSrc; + return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit)); +} + +// U_EMRMASKBLT 78 +int U_EMRMASKBLT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRMASKBLT))return(0); + PU_EMRMASKBLT pEmr = (PU_EMRMASKBLT) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBMIMSK offBmiMask = pEmr->offBmiMask; + U_CBBMIMSK cbBmiMask = pEmr->cbBmiMask; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITSSRC cbBitsSrc = pEmr->cbBitsSrc; + U_OFFBITSMSK offBitsMask = pEmr->offBitsMask; + U_CBBITSMSK cbBitsMask = pEmr->cbBitsMask; + uint32_t iUsageSrc = pEmr->iUsageSrc; + uint32_t iUsageMask = pEmr->iUsageMask; + if(!DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit))return(0); + return(DIB_safe(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit)); +} + +// U_EMRPLGBLT 79 +int U_EMRPLGBLT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPLGBLT))return(0); + PU_EMRPLGBLT pEmr = (PU_EMRPLGBLT) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBMIMSK offBmiMask = pEmr->offBmiMask; + U_CBBMIMSK cbBmiMask = pEmr->cbBmiMask; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITSSRC cbBitsSrc = pEmr->cbBitsSrc; + U_OFFBITSMSK offBitsMask = pEmr->offBitsMask; + U_CBBITSMSK cbBitsMask = pEmr->cbBitsMask; + uint32_t iUsageSrc = pEmr->iUsageSrc; + uint32_t iUsageMask = pEmr->iUsageMask; + if(!DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit))return(0); + return(DIB_safe(record, iUsageMask, offBmiMask, cbBmiMask, offBitsMask, cbBitsMask, blimit)); +} + +// U_EMRSETDIBITSTODEVICE 80 +int U_EMRSETDIBITSTODEVICE_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSETDIBITSTODEVICE))return(0); + PU_EMRSETDIBITSTODEVICE pEmr = (PU_EMRSETDIBITSTODEVICE) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITSSRC cbBitsSrc = pEmr->cbBitsSrc; + uint32_t iUsageSrc = pEmr->iUsageSrc; + return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit)); +} + +// U_EMRSTRETCHDIBITS 81 +int U_EMRSTRETCHDIBITS_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSTRETCHDIBITS))return(0); + PU_EMRSTRETCHDIBITS pEmr = (PU_EMRSTRETCHDIBITS) (record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMISRC offBmiSrc = pEmr->offBmiSrc; + U_CBBMISRC cbBmiSrc = pEmr->cbBmiSrc; + U_OFFBITSSRC offBitsSrc = pEmr->offBitsSrc; + U_CBBITSSRC cbBitsSrc = pEmr->cbBitsSrc; + uint32_t iUsageSrc = pEmr->iUsageSrc; + return(DIB_safe(record, iUsageSrc, offBmiSrc, cbBmiSrc, offBitsSrc, cbBitsSrc, blimit)); +} + +// U_EMREXTCREATEFONTINDIRECTW 82 +int U_EMREXTCREATEFONTINDIRECTW_safe(const char *record){ + /* Panose or logfont, LogFontExDv is not supported. Test smallest to largest */ + if(core5_safe(record, U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT))return(1); + return(core5_safe(record, U_SIZE_EMREXTCREATEFONTINDIRECTW_LOGFONT_PANOSE)); +} + +// U_EMREXTTEXTOUTA 83 +int U_EMREXTTEXTOUTA_safe(const char *record){ + return(core8_safe(record)); +} + +// U_EMREXTTEXTOUTW 84 +int U_EMREXTTEXTOUTW_safe(const char *record){ + return(core8_safe(record)); +} + +// U_EMRPOLYBEZIER16 85 +/** + \brief Convert a pointer to a U_EMR_POLYBEZIER16 record. + \param record pointer to a buffer holding the EMR record +*/ +int U_EMRPOLYBEZIER16_safe(const char *record){ + return(core6_safe(record)); +} + +// U_EMRPOLYGON16 86 +int U_EMRPOLYGON16_safe(const char *record){ + return(core6_safe(record)); +} + +// U_EMRPOLYLINE16 87 +int U_EMRPOLYLINE16_safe(const char *record){ + return(core6_safe(record)); +} + +// U_EMRPOLYBEZIERTO16 88 +int U_EMRPOLYBEZIERTO16_safe(const char *record){ + return(core6_safe(record)); +} + +// U_EMRPOLYLINETO16 89 +/** + \brief Convert a pointer to a U_EMR_POLYLINETO16 record. + \param record pointer to a buffer holding the EMR record +*/ +int U_EMRPOLYLINETO16_safe(const char *record){ + return(core6_safe(record)); +} + +// U_EMRPOLYPOLYLINE16 90 +int U_EMRPOLYPOLYLINE16_safe(const char *record){ + return(core10_safe(record)); +} + +// U_EMRPOLYPOLYGON16 91 +int U_EMRPOLYPOLYGON16_safe(const char *record){ + return(core10_safe(record)); +} + + +// U_EMRPOLYDRAW16 92 +int U_EMRPOLYDRAW16_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRPOLYDRAW16))return(0); + PU_EMRPOLYDRAW16 pEmr = (PU_EMRPOLYDRAW16)(record); + int count = pEmr->cpts; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(pEmr->apts, count*sizeof(U_POINT16), blimit))return(0); + return(1); +} + +// U_EMRCREATEMONOBRUSH 93 +int U_EMRCREATEMONOBRUSH_safe(const char *record){ + return(core12_safe(record)); +} + +// U_EMRCREATEDIBPATTERNBRUSHPT_safe 94 +int U_EMRCREATEDIBPATTERNBRUSHPT_safe(const char *record){ + return(core12_safe(record)); +} + + +// U_EMREXTCREATEPEN 95 +int U_EMREXTCREATEPEN_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMREXTCREATEPEN))return(0); + PU_EMREXTCREATEPEN pEmr = (PU_EMREXTCREATEPEN)(record); + const char *blimit = record + pEmr->emr.nSize; + U_OFFBMI offBmi = pEmr->offBmi; + U_CBBMI cbBmi = pEmr->cbBmi; + U_OFFBITS offBits = pEmr->offBits; + U_CBBITS cbBits = pEmr->cbBits; + if(!DIB_safe(record, U_DIB_RGB_COLORS, offBmi, cbBmi, offBits, cbBits, blimit))return(0); + return(extlogpen_safe((PU_EXTLOGPEN) &(pEmr->elp), blimit)); +} + +// U_EMRPOLYTEXTOUTA 96 NOT IMPLEMENTED, denigrated after Windows NT +#define U_EMRPOLYTEXTOUTA_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRPOLYTEXTOUTW 97 NOT IMPLEMENTED, denigrated after Windows NT +#define U_EMRPOLYTEXTOUTW_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRSETICMMODE 98 +int U_EMRSETICMMODE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRCREATECOLORSPACE 99 +int U_EMRCREATECOLORSPACE_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCREATECOLORSPACE)); +} + +// U_EMRSETCOLORSPACE 100 +int U_EMRSETCOLORSPACE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRDELETECOLORSPACE 101 +int U_EMRDELETECOLORSPACE_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRGLSRECORD 102 Not implemented +#define U_EMRGLSRECORD_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRGLSBOUNDEDRECORD 103 Not implemented +#define U_EMRGLSBOUNDEDRECORD_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRPIXELFORMAT 104 +int U_EMRPIXELFORMAT_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRPIXELFORMAT)); +} + +// U_EMRDRAWESCAPE 105 Not implemented +#define U_EMRDRAWESCAPE_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMREXTESCAPE 106 Not implemented +#define U_EMREXTESCAPE_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRUNDEF107 107 Not implemented +#define U_EMRUNDEF107_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRSMALLTEXTOUT 108 +int U_EMRSMALLTEXTOUT_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRSMALLTEXTOUT))return(0); + PU_EMRSMALLTEXTOUT pEmr = (PU_EMRSMALLTEXTOUT)(record); + int roff=sizeof(U_EMRSMALLTEXTOUT); // offset to the start of the variable fields + int fuOptions = pEmr->fuOptions; + int cChars = pEmr->cChars; + const char *blimit = record + pEmr->emr.nSize; + if(!(fuOptions & U_ETO_NO_RECT)){ + if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL), blimit))return(0); + } + if(IS_MEM_UNSAFE(record, roff + sizeof(U_RECTL) + cChars, blimit))return(0); + return(1); +} + +// U_EMRFORCEUFIMAPPING 109 Not implemented +#define U_EMRFORCEUFIMAPPING_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRNAMEDESCAPE 110 Not implemented +#define U_EMRNAMEDESCAPE_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRCOLORCORRECTPALETTE 111 Not implemented +#define U_EMRCOLORCORRECTPALETTE_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRSETICMPROFILEA 112 Not implemented +#define U_EMRSETICMPROFILEA_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRSETICMPROFILEW 113 Not implemented +#define U_EMRSETICMPROFILEW_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRALPHABLEND 114 +int U_EMRALPHABLEND_safe(const char *record){ + return(core13_safe(record)); +} + +// U_EMRSETLAYOUT 115 +int U_EMRSETLAYOUT_safe(const char *record){ + return(core3_safe(record)); +} + +// U_EMRTRANSPARENTBLT 116 +int U_EMRTRANSPARENTBLT_safe(const char *record){ + return(core13_safe(record)); +} + + +// U_EMRUNDEF117 117 Not implemented +#define U_EMRUNDEF117_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRGRADIENTFILL 118 +int U_EMRGRADIENTFILL_safe(const char *record){ + if(!core5_safe(record, U_SIZE_EMRGRADIENTFILL))return(0); + PU_EMRGRADIENTFILL pEmr = (PU_EMRGRADIENTFILL)(record); + int nTriVert = pEmr->nTriVert; + int nGradObj = pEmr->nGradObj; + int ulMode = pEmr->ulMode; + const char *blimit = record + pEmr->emr.nSize; + if(IS_MEM_UNSAFE(record, nTriVert*sizeof(U_TRIVERTEX), blimit))return(0); + record += nTriVert * sizeof(U_TRIVERTEX); + if(nGradObj){ + if( ulMode == U_GRADIENT_FILL_TRIANGLE){ + if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT3), blimit))return(0); + } + else if(ulMode == U_GRADIENT_FILL_RECT_H || ulMode == U_GRADIENT_FILL_RECT_V){ + if(IS_MEM_UNSAFE(record, nGradObj*sizeof(U_GRADIENT4), blimit))return(0); + } + } + return(1); +} + +// U_EMRSETLINKEDUFIS 119 Not implemented +#define U_EMRSETLINKEDUFIS_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRSETTEXTJUSTIFICATION120 Not implemented (denigrated) +#define U_EMRSETTEXTJUSTIFICATION_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. +// U_EMRCOLORMATCHTOTARGETW 121 Not implemented +#define U_EMRCOLORMATCHTOTARGETW_safe(A) U_EMRNOTIMPLEMENTED_safe(A) //!< Not implemented. + +// U_EMRCREATECOLORSPACEW 122 +int U_EMRCREATECOLORSPACEW_safe(const char *record){ + return(core5_safe(record, U_SIZE_EMRCREATECOLORSPACEW)); +} + +//! \endcond + +/** + \brief Test an EMF record in memory from Big Endian to Little Endian. + \return 0 on failure, 1 on success + \param record pointer to the EMF record in memory + + Normally this would be called immediately after reading a record from a file + and having called U_emf_record_sizeok(). + It is NOT safe to call this routine without first calling U_emf_record_sizeok)()! + If the file has been converted from one endian to another calling this routine is + not necessary, because those routines also perform these checks. +*/ +int U_emf_record_safe(const char *record){ + int rstatus=1; + + if(!record)return(0); // programming error + + switch (U_EMRTYPE(record)) + { + case U_EMR_HEADER: rstatus=U_EMRHEADER_safe(record); break; + case U_EMR_POLYBEZIER: rstatus=U_EMRPOLYBEZIER_safe(record); break; + case U_EMR_POLYGON: rstatus=U_EMRPOLYGON_safe(record); break; + case U_EMR_POLYLINE: rstatus=U_EMRPOLYLINE_safe(record); break; + case U_EMR_POLYBEZIERTO: rstatus=U_EMRPOLYBEZIERTO_safe(record); break; + case U_EMR_POLYLINETO: rstatus=U_EMRPOLYLINETO_safe(record); break; + case U_EMR_POLYPOLYLINE: rstatus=U_EMRPOLYPOLYLINE_safe(record); break; + case U_EMR_POLYPOLYGON: rstatus=U_EMRPOLYPOLYGON_safe(record); break; + case U_EMR_SETWINDOWEXTEX: rstatus=U_EMRSETWINDOWEXTEX_safe(record); break; + case U_EMR_SETWINDOWORGEX: rstatus=U_EMRSETWINDOWORGEX_safe(record); break; + case U_EMR_SETVIEWPORTEXTEX: rstatus=U_EMRSETVIEWPORTEXTEX_safe(record); break; + case U_EMR_SETVIEWPORTORGEX: rstatus=U_EMRSETVIEWPORTORGEX_safe(record); break; + case U_EMR_SETBRUSHORGEX: rstatus=U_EMRSETBRUSHORGEX_safe(record); break; + case U_EMR_EOF: rstatus=U_EMREOF_safe(record); break; + case U_EMR_SETPIXELV: rstatus=U_EMRSETPIXELV_safe(record); break; + case U_EMR_SETMAPPERFLAGS: rstatus=U_EMRSETMAPPERFLAGS_safe(record); break; + case U_EMR_SETMAPMODE: rstatus=U_EMRSETMAPMODE_safe(record); break; + case U_EMR_SETBKMODE: rstatus=U_EMRSETBKMODE_safe(record); break; + case U_EMR_SETPOLYFILLMODE: rstatus=U_EMRSETPOLYFILLMODE_safe(record); break; + case U_EMR_SETROP2: rstatus=U_EMRSETROP2_safe(record); break; + case U_EMR_SETSTRETCHBLTMODE: rstatus=U_EMRSETSTRETCHBLTMODE_safe(record); break; + case U_EMR_SETTEXTALIGN: rstatus=U_EMRSETTEXTALIGN_safe(record); break; + case U_EMR_SETCOLORADJUSTMENT: rstatus=U_EMRSETCOLORADJUSTMENT_safe(record); break; + case U_EMR_SETTEXTCOLOR: rstatus=U_EMRSETTEXTCOLOR_safe(record); break; + case U_EMR_SETBKCOLOR: rstatus=U_EMRSETBKCOLOR_safe(record); break; + case U_EMR_OFFSETCLIPRGN: rstatus=U_EMROFFSETCLIPRGN_safe(record); break; + case U_EMR_MOVETOEX: rstatus=U_EMRMOVETOEX_safe(record); break; + case U_EMR_SETMETARGN: rstatus=U_EMRSETMETARGN_safe(record); break; + case U_EMR_EXCLUDECLIPRECT: rstatus=U_EMREXCLUDECLIPRECT_safe(record); break; + case U_EMR_INTERSECTCLIPRECT: rstatus=U_EMRINTERSECTCLIPRECT_safe(record); break; + case U_EMR_SCALEVIEWPORTEXTEX: rstatus=U_EMRSCALEVIEWPORTEXTEX_safe(record); break; + case U_EMR_SCALEWINDOWEXTEX: rstatus=U_EMRSCALEWINDOWEXTEX_safe(record); break; + case U_EMR_SAVEDC: rstatus=U_EMRSAVEDC_safe(record); break; + case U_EMR_RESTOREDC: rstatus=U_EMRRESTOREDC_safe(record); break; + case U_EMR_SETWORLDTRANSFORM: rstatus=U_EMRSETWORLDTRANSFORM_safe(record); break; + case U_EMR_MODIFYWORLDTRANSFORM: rstatus=U_EMRMODIFYWORLDTRANSFORM_safe(record); break; + case U_EMR_SELECTOBJECT: rstatus=U_EMRSELECTOBJECT_safe(record); break; + case U_EMR_CREATEPEN: rstatus=U_EMRCREATEPEN_safe(record); break; + case U_EMR_CREATEBRUSHINDIRECT: rstatus=U_EMRCREATEBRUSHINDIRECT_safe(record); break; + case U_EMR_DELETEOBJECT: rstatus=U_EMRDELETEOBJECT_safe(record); break; + case U_EMR_ANGLEARC: rstatus=U_EMRANGLEARC_safe(record); break; + case U_EMR_ELLIPSE: rstatus=U_EMRELLIPSE_safe(record); break; + case U_EMR_RECTANGLE: rstatus=U_EMRRECTANGLE_safe(record); break; + case U_EMR_ROUNDRECT: rstatus=U_EMRROUNDRECT_safe(record); break; + case U_EMR_ARC: rstatus=U_EMRARC_safe(record); break; + case U_EMR_CHORD: rstatus=U_EMRCHORD_safe(record); break; + case U_EMR_PIE: rstatus=U_EMRPIE_safe(record); break; + case U_EMR_SELECTPALETTE: rstatus=U_EMRSELECTPALETTE_safe(record); break; + case U_EMR_CREATEPALETTE: rstatus=U_EMRCREATEPALETTE_safe(record); break; + case U_EMR_SETPALETTEENTRIES: rstatus=U_EMRSETPALETTEENTRIES_safe(record); break; + case U_EMR_RESIZEPALETTE: rstatus=U_EMRRESIZEPALETTE_safe(record); break; + case U_EMR_REALIZEPALETTE: rstatus=U_EMRREALIZEPALETTE_safe(record); break; + case U_EMR_EXTFLOODFILL: rstatus=U_EMREXTFLOODFILL_safe(record); break; + case U_EMR_LINETO: rstatus=U_EMRLINETO_safe(record); break; + case U_EMR_ARCTO: rstatus=U_EMRARCTO_safe(record); break; + case U_EMR_POLYDRAW: rstatus=U_EMRPOLYDRAW_safe(record); break; + case U_EMR_SETARCDIRECTION: rstatus=U_EMRSETARCDIRECTION_safe(record); break; + case U_EMR_SETMITERLIMIT: rstatus=U_EMRSETMITERLIMIT_safe(record); break; + case U_EMR_BEGINPATH: rstatus=U_EMRBEGINPATH_safe(record); break; + case U_EMR_ENDPATH: rstatus=U_EMRENDPATH_safe(record); break; + case U_EMR_CLOSEFIGURE: rstatus=U_EMRCLOSEFIGURE_safe(record); break; + case U_EMR_FILLPATH: rstatus=U_EMRFILLPATH_safe(record); break; + case U_EMR_STROKEANDFILLPATH: rstatus=U_EMRSTROKEANDFILLPATH_safe(record); break; + case U_EMR_STROKEPATH: rstatus=U_EMRSTROKEPATH_safe(record); break; + case U_EMR_FLATTENPATH: rstatus=U_EMRFLATTENPATH_safe(record); break; + case U_EMR_WIDENPATH: rstatus=U_EMRWIDENPATH_safe(record); break; + case U_EMR_SELECTCLIPPATH: rstatus=U_EMRSELECTCLIPPATH_safe(record); break; + case U_EMR_ABORTPATH: rstatus=U_EMRABORTPATH_safe(record); break; + case U_EMR_UNDEF69: rstatus=U_EMRUNDEF69_safe(record); break; + case U_EMR_COMMENT: rstatus=U_EMRCOMMENT_safe(record); break; + case U_EMR_FILLRGN: rstatus=U_EMRFILLRGN_safe(record); break; + case U_EMR_FRAMERGN: rstatus=U_EMRFRAMERGN_safe(record); break; + case U_EMR_INVERTRGN: rstatus=U_EMRINVERTRGN_safe(record); break; + case U_EMR_PAINTRGN: rstatus=U_EMRPAINTRGN_safe(record); break; + case U_EMR_EXTSELECTCLIPRGN: rstatus=U_EMREXTSELECTCLIPRGN_safe(record); break; + case U_EMR_BITBLT: rstatus=U_EMRBITBLT_safe(record); break; + case U_EMR_STRETCHBLT: rstatus=U_EMRSTRETCHBLT_safe(record); break; + case U_EMR_MASKBLT: rstatus=U_EMRMASKBLT_safe(record); break; + case U_EMR_PLGBLT: rstatus=U_EMRPLGBLT_safe(record); break; + case U_EMR_SETDIBITSTODEVICE: rstatus=U_EMRSETDIBITSTODEVICE_safe(record); break; + case U_EMR_STRETCHDIBITS: rstatus=U_EMRSTRETCHDIBITS_safe(record); break; + case U_EMR_EXTCREATEFONTINDIRECTW: rstatus=U_EMREXTCREATEFONTINDIRECTW_safe(record); break; + case U_EMR_EXTTEXTOUTA: rstatus=U_EMREXTTEXTOUTA_safe(record); break; + case U_EMR_EXTTEXTOUTW: rstatus=U_EMREXTTEXTOUTW_safe(record); break; + case U_EMR_POLYBEZIER16: rstatus=U_EMRPOLYBEZIER16_safe(record); break; + case U_EMR_POLYGON16: rstatus=U_EMRPOLYGON16_safe(record); break; + case U_EMR_POLYLINE16: rstatus=U_EMRPOLYLINE16_safe(record); break; + case U_EMR_POLYBEZIERTO16: rstatus=U_EMRPOLYBEZIERTO16_safe(record); break; + case U_EMR_POLYLINETO16: rstatus=U_EMRPOLYLINETO16_safe(record); break; + case U_EMR_POLYPOLYLINE16: rstatus=U_EMRPOLYPOLYLINE16_safe(record); break; + case U_EMR_POLYPOLYGON16: rstatus=U_EMRPOLYPOLYGON16_safe(record); break; + case U_EMR_POLYDRAW16: rstatus=U_EMRPOLYDRAW16_safe(record); break; + case U_EMR_CREATEMONOBRUSH: rstatus=U_EMRCREATEMONOBRUSH_safe(record); break; + case U_EMR_CREATEDIBPATTERNBRUSHPT: rstatus=U_EMRCREATEDIBPATTERNBRUSHPT_safe(record); break; + case U_EMR_EXTCREATEPEN: rstatus=U_EMREXTCREATEPEN_safe(record); break; + case U_EMR_POLYTEXTOUTA: rstatus=U_EMRPOLYTEXTOUTA_safe(record); break; + case U_EMR_POLYTEXTOUTW: rstatus=U_EMRPOLYTEXTOUTW_safe(record); break; + case U_EMR_SETICMMODE: rstatus=U_EMRSETICMMODE_safe(record); break; + case U_EMR_CREATECOLORSPACE: rstatus=U_EMRCREATECOLORSPACE_safe(record); break; + case U_EMR_SETCOLORSPACE: rstatus=U_EMRSETCOLORSPACE_safe(record); break; + case U_EMR_DELETECOLORSPACE: rstatus=U_EMRDELETECOLORSPACE_safe(record); break; + case U_EMR_GLSRECORD: rstatus=U_EMRGLSRECORD_safe(record); break; + case U_EMR_GLSBOUNDEDRECORD: rstatus=U_EMRGLSBOUNDEDRECORD_safe(record); break; + case U_EMR_PIXELFORMAT: rstatus=U_EMRPIXELFORMAT_safe(record); break; + case U_EMR_DRAWESCAPE: rstatus=U_EMRDRAWESCAPE_safe(record); break; + case U_EMR_EXTESCAPE: rstatus=U_EMREXTESCAPE_safe(record); break; + case U_EMR_UNDEF107: rstatus=U_EMRUNDEF107_safe(record); break; + case U_EMR_SMALLTEXTOUT: rstatus=U_EMRSMALLTEXTOUT_safe(record); break; + case U_EMR_FORCEUFIMAPPING: rstatus=U_EMRFORCEUFIMAPPING_safe(record); break; + case U_EMR_NAMEDESCAPE: rstatus=U_EMRNAMEDESCAPE_safe(record); break; + case U_EMR_COLORCORRECTPALETTE: rstatus=U_EMRCOLORCORRECTPALETTE_safe(record); break; + case U_EMR_SETICMPROFILEA: rstatus=U_EMRSETICMPROFILEA_safe(record); break; + case U_EMR_SETICMPROFILEW: rstatus=U_EMRSETICMPROFILEW_safe(record); break; + case U_EMR_ALPHABLEND: rstatus=U_EMRALPHABLEND_safe(record); break; + case U_EMR_SETLAYOUT: rstatus=U_EMRSETLAYOUT_safe(record); break; + case U_EMR_TRANSPARENTBLT: rstatus=U_EMRTRANSPARENTBLT_safe(record); break; + case U_EMR_UNDEF117: rstatus=U_EMRUNDEF117_safe(record); break; + case U_EMR_GRADIENTFILL: rstatus=U_EMRGRADIENTFILL_safe(record); break; + case U_EMR_SETLINKEDUFIS: rstatus=U_EMRSETLINKEDUFIS_safe(record); break; + case U_EMR_SETTEXTJUSTIFICATION: rstatus=U_EMRSETTEXTJUSTIFICATION_safe(record); break; + case U_EMR_COLORMATCHTOTARGETW: rstatus=U_EMRCOLORMATCHTOTARGETW_safe(record); break; + case U_EMR_CREATECOLORSPACEW: rstatus=U_EMRCREATECOLORSPACEW_safe(record); break; + default: rstatus=U_EMRNOTIMPLEMENTED_safe(record); break; + } //end of switch + return(rstatus); +} + + +#ifdef __cplusplus +} +#endif diff --git a/src/libuemf/uemf_safe.h b/src/libuemf/uemf_safe.h new file mode 100644 index 000000000..0c9e3cc69 --- /dev/null +++ b/src/libuemf/uemf_safe.h @@ -0,0 +1,32 @@ +/** + @file uemf_safe.h + + @brief Defintions and prototype for function for converting EMF records between Big Endian and Little Endian byte orders. +*/ + +/* +File: uemf_endian.h +Version: 0.0.2 +Date: 26-MAR-2015 +Author: David Mathog, Biology Division, Caltech +email: mathog@caltech.edu +Copyright: 2015 David Mathog and California Institute of Technology (Caltech) +*/ + +#ifndef _UEMF_SAFE_ +#define _UEMF_SAFE_ + +#ifdef __cplusplus +extern "C" { +#endif + +// prototypes +int U_emf_record_safe(const char *record); +int bitmapinfo_safe(const char *Bmi, const char *blimit); +//! \endcond + +#ifdef __cplusplus +} +#endif + +#endif /* _UEMF_SAFE_ */ -- cgit v1.2.3 From 4bd4a89e23064b6782728d7965b12443978dcd29 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Tue, 28 Apr 2015 00:56:20 +0200 Subject: removed a few "using Inkscape::Util::GSListConstIterator" (bzr r13922.1.16) --- src/extension/implementation/implementation.cpp | 1 - src/extension/internal/bitmap/imagemagick.cpp | 2 -- src/extension/internal/bluredge.cpp | 1 - src/extension/internal/grid.cpp | 2 -- src/removeoverlap.cpp | 1 - src/ui/dialog/align-and-distribute.cpp | 5 ----- src/ui/dialog/transformation.cpp | 1 - 7 files changed, 13 deletions(-) diff --git a/src/extension/implementation/implementation.cpp b/src/extension/implementation/implementation.cpp index 717ca3310..b0ff3e91c 100644 --- a/src/extension/implementation/implementation.cpp +++ b/src/extension/implementation/implementation.cpp @@ -47,7 +47,6 @@ Gtk::Widget *Implementation::prefs_effect(Inkscape::Extension::Effect *module, I SPDocument * current_document = view->doc(); - using Inkscape::Util::GSListConstIterator; std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node const* first_select = NULL; if (!selected.empty()) { diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index 3a29b3dc0..5e4c930bc 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -240,8 +240,6 @@ ImageMagick::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::Vie { SPDocument * current_document = view->doc(); - using Inkscape::Util::GSListConstIterator; - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp index b80e5ddbb..9f19f8b3b 100644 --- a/src/extension/internal/bluredge.cpp +++ b/src/extension/internal/bluredge.cpp @@ -63,7 +63,6 @@ BlurEdge::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View Inkscape::Preferences *prefs = Inkscape::Preferences::get(); double old_offset = prefs->getDouble("/options/defaultoffsetwidth/value", 1.0, "px"); - using Inkscape::Util::GSListConstIterator; // TODO need to properly refcount the items, at least std::vector items(selection->itemList()); selection->clear(); diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 60d606a02..932d9a0d0 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -190,8 +190,6 @@ Grid::prefs_effect(Inkscape::Extension::Effect *module, Inkscape::UI::View::View { SPDocument * current_document = view->doc(); - using Inkscape::Util::GSListConstIterator; - std::vector selected = ((SPDesktop *)view)->getSelection()->itemList(); Inkscape::XML::Node * first_select = NULL; if (!selected.empty()) { diff --git a/src/removeoverlap.cpp b/src/removeoverlap.cpp index 01ce2c47e..9ea75de0d 100644 --- a/src/removeoverlap.cpp +++ b/src/removeoverlap.cpp @@ -39,7 +39,6 @@ namespace { * horizontally and yGap vertically */ void removeoverlap(std::vector const &items, double const xGap, double const yGap) { - using Inkscape::Util::GSListConstIterator; std::vector selected(items); std::vector records; std::vector rs; diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp index 1ee72dcbc..882427912 100644 --- a/src/ui/dialog/align-and-distribute.cpp +++ b/src/ui/dialog/align-and-distribute.cpp @@ -97,7 +97,6 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups"); - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; @@ -250,7 +249,6 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; @@ -548,7 +546,6 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; @@ -646,7 +643,6 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; @@ -745,7 +741,6 @@ private : Inkscape::Selection *selection = desktop->getSelection(); if (!selection) return; - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 459e6e937..5bd3cb309 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -740,7 +740,6 @@ void Transformation::applyPageMove(Inkscape::Selection *selection) if (_check_move_relative.get_active()) { // shift each object relatively to the previous one - using Inkscape::Util::GSListConstIterator; std::vector selected(selection->itemList()); if (selected.empty()) return; -- cgit v1.2.3 From 643c75ddbbbea2f018050faa1e7e38c71482418a Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Tue, 28 Apr 2015 01:20:57 +0200 Subject: removed a few useless SP_OBJECT() casts (bzr r13922.1.17) --- src/selection-chemistry.cpp | 28 ++++++++++++++-------------- src/selection.cpp | 4 ++-- src/splivarot.cpp | 4 ++-- src/ui/dialog/object-attributes.cpp | 2 +- src/ui/dialog/transformation.cpp | 2 +- src/ui/tools/gradient-tool.cpp | 2 +- src/widgets/stroke-style.cpp | 4 ++-- 7 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index c1d4f58e4..7255e80cb 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -889,14 +889,14 @@ sp_item_list_common_parent_group(std::vector const items) if (items.empty()) { return NULL; } - SPObject *parent = SP_OBJECT(items[0])->parent; + SPObject *parent = items[0]->parent; // Strictly speaking this CAN happen, if user selects from Inkscape::XML editor if (!dynamic_cast(parent)) { return NULL; } for (std::vector::const_iterator item=items.begin();item!=items.end();item++) { if((*item)==items[0])continue; - if (SP_OBJECT(*item)->parent != parent) { + if ((*item)->parent != parent) { return NULL; } } @@ -2896,7 +2896,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) //items = g_slist_sort(items, (GCompareFunc) sp_object_compare_position); // Why needed? // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items[0])->parent; + SPObject *parent = items[0]->parent; Geom::Affine parent_transform; { @@ -2911,7 +2911,7 @@ void sp_selection_to_marker(SPDesktop *desktop, bool apply) // Create a list of duplicates, to be pasted inside marker element. std::vector repr_copies; for (std::vector::const_reverse_iterator i=items.rbegin();i!=items.rend();i++){ - Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = (*i)->getRepr()->duplicate(xml_doc); repr_copies.push_back(dup); } @@ -3248,7 +3248,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) sort(items.begin(),items.end(),sp_object_compare_position); // bottommost object, after sorting - SPObject *parent = SP_OBJECT(items[0])->parent; + SPObject *parent = items[0]->parent; Geom::Affine parent_transform; @@ -3262,12 +3262,12 @@ sp_selection_tile(SPDesktop *desktop, bool apply) } // remember the position of the first item - gint pos = SP_OBJECT(items[0])->getRepr()->position(); + gint pos = items[0]->getRepr()->position(); // create a list of duplicates std::vector repr_copies; for (std::vector::const_iterator i=items.begin();i!=items.end();i++){ - Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = (*i)->getRepr()->duplicate(xml_doc); repr_copies.push_back(dup); } @@ -3520,7 +3520,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) // Create the filename. gchar *const basename = g_strdup_printf("%s-%s-%u.png", document->getName(), - SP_OBJECT(items[0])->getRepr()->attribute("id"), + items[0]->getRepr()->attribute("id"), current); // Imagemagick is known not to handle spaces in filenames, so we replace anything but letters, // digits, and a few other chars, with "_" @@ -3540,8 +3540,8 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) //g_print("%s\n", filepath); // Remember parent and z-order of the topmost one - gint pos = SP_OBJECT(items.back())->getRepr()->position(); - SPObject *parent_object = SP_OBJECT(items.back())->parent; + gint pos = items.back()->getRepr()->position(); + SPObject *parent_object = items.back()->parent; Inkscape::XML::Node *parent = parent_object->getRepr(); // Calculate resolution @@ -3857,7 +3857,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ apply_to_items = g_slist_prepend(apply_to_items, desktop->currentLayer()); for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - Inkscape::XML::Node *dup = SP_OBJECT(*i)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = (*i)->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); SPObject *item = *i; @@ -3870,7 +3870,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ } } else if (!topmost) { // topmost item is used as a mask, which is applied to other items in a selection - Inkscape::XML::Node *dup = SP_OBJECT(items[0])->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = items[0]->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { @@ -4049,7 +4049,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { } } - SP_OBJECT(*i)->getRepr()->setAttribute(attributeName, "none"); + (*i)->getRepr()->setAttribute(attributeName, "none"); SPGroup *group = dynamic_cast(*i); if (ungroup_masked && group) { @@ -4070,7 +4070,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { GSList *items_to_move = NULL; for ( SPObject *child = obj->firstChild() ; child; child = child->getNext() ) { // Collect all clipped paths and masks within a single group - Inkscape::XML::Node *copy = SP_OBJECT(child)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *copy = child->getRepr()->duplicate(xml_doc); if(copy->attribute("inkscape:original-d") && copy->attribute("inkscape:path-effect")) { copy->setAttribute("d", copy->attribute("inkscape:original-d")); diff --git a/src/selection.cpp b/src/selection.cpp index d9266b599..b2fb6447e 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -517,7 +517,7 @@ uint Selection::numberOfLayers() { std::vector const items = const_cast(this)->itemList(); std::set layers; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPObject *layer = _layers->layerForObject(SP_OBJECT(*iter)); + SPObject *layer = _layers->layerForObject(*iter); layers.insert(layer); } return layers.size(); @@ -527,7 +527,7 @@ guint Selection::numberOfParents() { std::vector const items = const_cast(this)->itemList(); std::set parents; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { - SPObject *parent = SP_OBJECT(*iter)->parent; + SPObject *parent = (*iter)->parent; parents.insert(parent); } return parents.size(); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index a04dedda9..f61a30462 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -354,8 +354,8 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool if (bop == bool_op_diff || bop == bool_op_cut || bop == bool_op_slice) { // check in the tree to find which element of the selection list is topmost (for 2-operand commands only) - Inkscape::XML::Node *a = SP_OBJECT(il.front())->getRepr(); - Inkscape::XML::Node *b = SP_OBJECT(il.back())->getRepr(); + Inkscape::XML::Node *a = il.front()->getRepr(); + Inkscape::XML::Node *b = il.back()->getRepr(); if (a == NULL || b == NULL) { boolop_display_error_message(desktop, _("Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut.")); diff --git a/src/ui/dialog/object-attributes.cpp b/src/ui/dialog/object-attributes.cpp index f43a15225..1bc570f43 100644 --- a/src/ui/dialog/object-attributes.cpp +++ b/src/ui/dialog/object-attributes.cpp @@ -127,7 +127,7 @@ void ObjectAttributes::widget_setup (void) blocked = true; // CPPIFY - SPObject *obj = SP_OBJECT(item); //to get the selected item + SPObject *obj = item; //to get the selected item // GObjectClass *klass = G_OBJECT_GET_CLASS(obj); //to deduce the object's type // GType type = G_TYPE_FROM_CLASS(klass); const SPAttrDesc *desc; diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 5bd3cb309..f571828ce 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -1005,7 +1005,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) for(std::vector::const_iterator i=tmp.begin();i!=tmp.end();i++){ SPItem *item = *i; item->set_item_transform(displayed); - SP_OBJECT(item)->updateRepr(); + item->updateRepr(); } } else { sp_selection_apply_affine(selection, displayed); // post-multiply each object's transform diff --git a/src/ui/tools/gradient-tool.cpp b/src/ui/tools/gradient-tool.cpp index bf38b5ca5..526671515 100644 --- a/src/ui/tools/gradient-tool.cpp +++ b/src/ui/tools/gradient-tool.cpp @@ -913,7 +913,7 @@ static void sp_gradient_drag(GradientTool &rc, Geom::Point const pt, guint /*sta for (std::vector::const_iterator i = itemlist.begin();i!=itemlist.end();i++) { //FIXME: see above - sp_repr_css_change_recursive(SP_OBJECT(*i)->getRepr(), css, "style"); + sp_repr_css_change_recursive((*i)->getRepr(), css, "style"); sp_item_set_gradient(*i, vector, (SPGradientType) type, fill_or_stroke); diff --git a/src/widgets/stroke-style.cpp b/src/widgets/stroke-style.cpp index 481fa0609..482ca7af4 100644 --- a/src/widgets/stroke-style.cpp +++ b/src/widgets/stroke-style.cpp @@ -902,7 +902,7 @@ StrokeStyle::updateLine() return; std::vector const objects = sel->itemList(); - SPObject * const object = SP_OBJECT(objects[0]); + SPObject * const object = objects[0]; SPStyle * const style = object->style; /* Markers */ @@ -1002,7 +1002,7 @@ StrokeStyle::scaleLine() /* Set dash */ setScaledDash(css, ndash, dash, offset, width); - sp_desktop_apply_css_recursive (SP_OBJECT(*i), css, true); + sp_desktop_apply_css_recursive ((*i), css, true); } g_free(dash); -- cgit v1.2.3 From ba4dbfb351180e0fc4ad57be6e3534fa2ab5cf8c Mon Sep 17 00:00:00 2001 From: Alex Valavanis Date: Tue, 28 Apr 2015 00:38:31 +0100 Subject: Fix unnecessary inclusion of glibmm/threads.h. This can be resolved by ensuring that glibmm headers always preceed glib.h headers. Same applies with gtkmm/gtk+ etc (bzr r14064) --- src/display/canvas-axonomgrid.cpp | 4 ---- src/display/canvas-grid.cpp | 4 ---- src/extension/execution-env.cpp | 4 ---- src/extension/extension.cpp | 4 ---- src/extension/internal/bitmap/imagemagick.cpp | 4 ---- src/extension/internal/cdr-input.h | 4 ---- src/extension/internal/grid.cpp | 4 ---- src/extension/internal/pdfinput/pdf-input.h | 4 ---- src/extension/internal/vsd-input.h | 4 ---- src/extension/param/bool.cpp | 4 ---- src/extension/param/color.cpp | 4 ---- src/extension/param/description.cpp | 4 ---- src/extension/param/enum.cpp | 4 ---- src/extension/param/float.cpp | 4 ---- src/extension/param/int.cpp | 4 ---- src/extension/param/notebook.cpp | 4 ---- src/extension/param/radiobutton.cpp | 4 ---- src/extension/param/string.cpp | 4 ---- src/extension/prefdialog.h | 9 --------- src/inkscape.cpp | 4 ---- src/libdepixelize/kopftracer2011.cpp | 7 +------ src/live_effects/lpe-fillet-chamfer.h | 8 -------- src/live_effects/lpe-lattice2.cpp | 2 ++ src/live_effects/lpe-lattice2.h | 6 +++++- src/live_effects/parameter/originalpath.cpp | 4 ---- src/live_effects/parameter/originalpatharray.cpp | 4 ---- src/ui/dialog-events.cpp | 4 ---- src/ui/dialog/aboutbox.h | 8 -------- src/ui/dialog/calligraphic-profile-rename.h | 4 ---- src/ui/dialog/color-item.cpp | 4 ---- src/ui/dialog/debug.cpp | 4 ---- src/ui/dialog/export.cpp | 4 ---- src/ui/dialog/filedialogimpl-gtkmm.h | 8 -------- src/ui/dialog/filedialogimpl-win32.h | 5 ----- src/ui/dialog/floating-behavior.cpp | 4 ---- src/ui/dialog/font-substitution.cpp | 4 ---- src/ui/dialog/guides.h | 4 ---- src/ui/dialog/icon-preview.cpp | 4 ---- src/ui/dialog/layer-properties.h | 4 ---- src/ui/dialog/layers.h | 4 ---- src/ui/dialog/livepatheffect-add.h | 8 -------- src/ui/dialog/lpe-fillet-chamfer-properties.cpp | 4 ---- src/ui/dialog/lpe-powerstroke-properties.cpp | 4 ---- src/ui/dialog/messages.h | 8 -------- src/ui/dialog/objects.h | 4 ---- src/ui/dialog/ocaldialogs.h | 4 ---- src/ui/dialog/spellcheck.h | 4 ---- src/ui/dialog/symbols.cpp | 4 ---- src/ui/dialog/text-edit.h | 4 ---- src/ui/dialog/tile.h | 4 ---- src/ui/dialog/transformation.cpp | 4 ---- src/ui/previewholder.h | 4 ---- src/ui/tools/tool-base.cpp | 4 ---- src/ui/widget/addtoicon.cpp | 4 ---- src/ui/widget/button.h | 8 -------- src/ui/widget/clipmaskicon.cpp | 4 ---- src/ui/widget/color-picker.h | 8 -------- src/ui/widget/color-preview.h | 4 ---- src/ui/widget/dock-item.h | 4 ---- src/ui/widget/dock.h | 8 -------- src/ui/widget/entity-entry.cpp | 4 ---- src/ui/widget/filter-effect-chooser.h | 8 -------- src/ui/widget/frame.h | 8 -------- src/ui/widget/imageicon.h | 8 -------- src/ui/widget/imagetoggler.h | 4 ---- src/ui/widget/insertordericon.h | 3 ++- src/ui/widget/labelled.h | 8 -------- src/ui/widget/layertypeicon.cpp | 4 ---- src/ui/widget/licensor.h | 8 -------- src/ui/widget/notebook-page.h | 4 ---- src/ui/widget/object-composite-settings.h | 8 -------- src/ui/widget/panel.cpp | 4 ---- src/ui/widget/panel.h | 4 ---- src/ui/widget/preferences-widget.cpp | 4 ---- src/ui/widget/preferences-widget.h | 4 ---- src/ui/widget/rotateable.cpp | 4 ---- src/ui/widget/selected-style.h | 4 ---- src/ui/widget/spin-scale.h | 4 ---- src/ui/widget/spin-slider.h | 4 ---- src/ui/widget/spinbutton.h | 8 -------- src/ui/widget/style-swatch.h | 4 ---- src/ui/widget/tolerance-slider.cpp | 4 ---- src/ui/widget/unit-menu.h | 8 -------- src/verbs.cpp | 7 +++---- src/widgets/dash-selector.h | 4 ---- src/widgets/desktop-widget.h | 8 -------- src/widgets/fill-style.cpp | 4 ---- src/widgets/icon.cpp | 4 ---- src/widgets/paint-selector.cpp | 4 ---- src/widgets/shrink-wrap-button.cpp | 4 ---- src/widgets/sp-attribute-widget.h | 4 ---- src/widgets/spw-utilities.cpp | 4 ---- src/widgets/stroke-marker-selector.h | 8 -------- src/widgets/swatch-selector.h | 8 -------- src/widgets/toolbox.cpp | 4 ---- 95 files changed, 13 insertions(+), 454 deletions(-) diff --git a/src/display/canvas-axonomgrid.cpp b/src/display/canvas-axonomgrid.cpp index a2df86823..1794ccbab 100644 --- a/src/display/canvas-axonomgrid.cpp +++ b/src/display/canvas-axonomgrid.cpp @@ -17,10 +17,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 9b9f64529..4eda9b194 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -17,10 +17,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/extension/execution-env.cpp b/src/extension/execution-env.cpp index 13b8d60c4..e7cd43d9d 100644 --- a/src/extension/execution-env.cpp +++ b/src/extension/execution-env.cpp @@ -14,10 +14,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "gtkmm/messagedialog.h" #include "execution-env.h" diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp index 3d0f49a20..6f7539360 100644 --- a/src/extension/extension.cpp +++ b/src/extension/extension.cpp @@ -19,10 +19,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/internal/bitmap/imagemagick.cpp b/src/extension/internal/bitmap/imagemagick.cpp index 76f35415e..7c91bf1ef 100644 --- a/src/extension/internal/bitmap/imagemagick.cpp +++ b/src/extension/internal/bitmap/imagemagick.cpp @@ -12,10 +12,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/extension/internal/cdr-input.h b/src/extension/internal/cdr-input.h index 3de6c1ed0..10af41d5a 100644 --- a/src/extension/internal/cdr-input.h +++ b/src/extension/internal/cdr-input.h @@ -19,10 +19,6 @@ #ifdef WITH_LIBCDR -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "../implementation/implementation.h" diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index 270edfe44..61f2f70e2 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/internal/pdfinput/pdf-input.h b/src/extension/internal/pdfinput/pdf-input.h index d57c3e993..866db5d82 100644 --- a/src/extension/internal/pdfinput/pdf-input.h +++ b/src/extension/internal/pdfinput/pdf-input.h @@ -16,10 +16,6 @@ #ifdef HAVE_POPPLER -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "../../implementation/implementation.h" diff --git a/src/extension/internal/vsd-input.h b/src/extension/internal/vsd-input.h index 3414e0ec9..acc52debf 100644 --- a/src/extension/internal/vsd-input.h +++ b/src/extension/internal/vsd-input.h @@ -19,10 +19,6 @@ #ifdef WITH_LIBVISIO -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "../implementation/implementation.h" diff --git a/src/extension/param/bool.cpp b/src/extension/param/bool.cpp index 548dec4fa..de9b1c586 100644 --- a/src/extension/param/bool.cpp +++ b/src/extension/param/bool.cpp @@ -10,10 +10,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index 5bd70359f..b774bac83 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -14,10 +14,6 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/description.cpp b/src/extension/param/description.cpp index 95ed04afc..326e75e4a 100644 --- a/src/extension/param/description.cpp +++ b/src/extension/param/description.cpp @@ -13,10 +13,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/enum.cpp b/src/extension/param/enum.cpp index 74b2a75ad..8bc0fbda7 100644 --- a/src/extension/param/enum.cpp +++ b/src/extension/param/enum.cpp @@ -18,10 +18,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp index 464938f03..81508f6c0 100644 --- a/src/extension/param/float.cpp +++ b/src/extension/param/float.cpp @@ -10,10 +10,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp index 819c75693..c286018fd 100644 --- a/src/extension/param/int.cpp +++ b/src/extension/param/int.cpp @@ -10,10 +10,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/notebook.cpp b/src/extension/param/notebook.cpp index 9ec31ca6b..20c8e8481 100644 --- a/src/extension/param/notebook.cpp +++ b/src/extension/param/notebook.cpp @@ -16,10 +16,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp index 740acf1d1..8181c6f51 100644 --- a/src/extension/param/radiobutton.cpp +++ b/src/extension/param/radiobutton.cpp @@ -18,10 +18,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/param/string.cpp b/src/extension/param/string.cpp index d6e438db5..4e525ff73 100644 --- a/src/extension/param/string.cpp +++ b/src/extension/param/string.cpp @@ -10,10 +10,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/extension/prefdialog.h b/src/extension/prefdialog.h index 905d35744..4714c2c3f 100644 --- a/src/extension/prefdialog.h +++ b/src/extension/prefdialog.h @@ -10,19 +10,10 @@ #ifndef INKSCAPE_EXTENSION_DIALOG_H__ #define INKSCAPE_EXTENSION_DIALOG_H__ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include - namespace Gtk { class CheckButton; } diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 6a0e0f35a..888a64430 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -22,10 +22,6 @@ #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "debug/simple-event.h" #include "debug/event-tracker.h" diff --git a/src/libdepixelize/kopftracer2011.cpp b/src/libdepixelize/kopftracer2011.cpp index 1e769b0c9..96784b14f 100644 --- a/src/libdepixelize/kopftracer2011.cpp +++ b/src/libdepixelize/kopftracer2011.cpp @@ -28,11 +28,6 @@ #include -// Build fix under Inkscape build tree -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "kopftracer2011.h" #include "priv/colorspace.h" @@ -667,4 +662,4 @@ inline bool Heuristics::islands(PixelGraph::const_iterator a, fill-column:99 End: */ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/live_effects/lpe-fillet-chamfer.h b/src/live_effects/lpe-fillet-chamfer.h index 0d6a1ff17..fb06e804c 100644 --- a/src/live_effects/lpe-fillet-chamfer.h +++ b/src/live_effects/lpe-fillet-chamfer.h @@ -15,14 +15,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#if HAVE_CONFIG_H -# include "config.h" -#endif - -#if defined(GLIBMM_DISABLE_DEPRECATED) && defined(HAVE_GLIBMM_THREADS_H) -# include -#endif - #include "live_effects/parameter/enum.h" #include "live_effects/parameter/bool.h" #include "live_effects/parameter/unit.h" diff --git a/src/live_effects/lpe-lattice2.cpp b/src/live_effects/lpe-lattice2.cpp index abd6e7786..02bda3af5 100644 --- a/src/live_effects/lpe-lattice2.cpp +++ b/src/live_effects/lpe-lattice2.cpp @@ -18,6 +18,8 @@ #include "live_effects/lpe-lattice2.h" +#include + #include "sp-shape.h" #include "sp-item.h" #include "sp-path.h" diff --git a/src/live_effects/lpe-lattice2.h b/src/live_effects/lpe-lattice2.h index ff2e75641..b32903c9e 100644 --- a/src/live_effects/lpe-lattice2.h +++ b/src/live_effects/lpe-lattice2.h @@ -18,12 +18,16 @@ * * Released under GNU GPL, read the file 'COPYING' for more information */ -#include #include "live_effects/parameter/enum.h" +#include #include "live_effects/effect.h" #include "live_effects/parameter/point.h" #include "live_effects/lpegroupbbox.h" +namespace Gtk { +class Expander; +} + namespace Inkscape { namespace LivePathEffect { diff --git a/src/live_effects/parameter/originalpath.cpp b/src/live_effects/parameter/originalpath.cpp index 0884c4c9c..2741461be 100644 --- a/src/live_effects/parameter/originalpath.cpp +++ b/src/live_effects/parameter/originalpath.cpp @@ -8,10 +8,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "live_effects/parameter/originalpath.h" diff --git a/src/live_effects/parameter/originalpatharray.cpp b/src/live_effects/parameter/originalpatharray.cpp index 7706dbdf8..78e061e66 100644 --- a/src/live_effects/parameter/originalpatharray.cpp +++ b/src/live_effects/parameter/originalpatharray.cpp @@ -8,10 +8,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "live_effects/parameter/originalpatharray.h" #include diff --git a/src/ui/dialog-events.cpp b/src/ui/dialog-events.cpp index 5bc8088a1..8856631c0 100644 --- a/src/ui/dialog-events.cpp +++ b/src/ui/dialog-events.cpp @@ -15,10 +15,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/aboutbox.h b/src/ui/dialog/aboutbox.h index 015e344a1..f3234b88d 100644 --- a/src/ui/dialog/aboutbox.h +++ b/src/ui/dialog/aboutbox.h @@ -15,14 +15,6 @@ #ifndef INKSCAPE_UI_DIALOG_ABOUTBOX_H #define INKSCAPE_UI_DIALOG_ABOUTBOX_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include namespace Inkscape { diff --git a/src/ui/dialog/calligraphic-profile-rename.h b/src/ui/dialog/calligraphic-profile-rename.h index fa13db196..4ef71900b 100644 --- a/src/ui/dialog/calligraphic-profile-rename.h +++ b/src/ui/dialog/calligraphic-profile-rename.h @@ -15,10 +15,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif - #include #include #include diff --git a/src/ui/dialog/color-item.cpp b/src/ui/dialog/color-item.cpp index a49a47d5c..6603d5c69 100644 --- a/src/ui/dialog/color-item.cpp +++ b/src/ui/dialog/color-item.cpp @@ -17,10 +17,6 @@ #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/debug.cpp b/src/ui/dialog/debug.cpp index 9e2287f80..d127261c0 100644 --- a/src/ui/dialog/debug.cpp +++ b/src/ui/dialog/debug.cpp @@ -13,10 +13,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/export.cpp b/src/ui/dialog/export.cpp index 6d90c792e..9ac5c24fe 100644 --- a/src/ui/dialog/export.cpp +++ b/src/ui/dialog/export.cpp @@ -20,10 +20,6 @@ // This has to be included prior to anything that includes setjmp.h, it croaks otherwise #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/filedialogimpl-gtkmm.h b/src/ui/dialog/filedialogimpl-gtkmm.h index 6687915d7..7501b5e14 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.h +++ b/src/ui/dialog/filedialogimpl-gtkmm.h @@ -17,14 +17,6 @@ #ifndef __FILE_DIALOGIMPL_H__ #define __FILE_DIALOGIMPL_H__ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - //Gtk includes #include #include diff --git a/src/ui/dialog/filedialogimpl-win32.h b/src/ui/dialog/filedialogimpl-win32.h index 8c3b6bad6..b254c3ef6 100644 --- a/src/ui/dialog/filedialogimpl-win32.h +++ b/src/ui/dialog/filedialogimpl-win32.h @@ -16,11 +16,6 @@ #include #ifdef WIN32 -#if WITH_GLIBMM_2_32 -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif -#endif #include "filedialogimpl-gtkmm.h" diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp index 11db14801..740acd989 100644 --- a/src/ui/dialog/floating-behavior.cpp +++ b/src/ui/dialog/floating-behavior.cpp @@ -14,10 +14,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/font-substitution.cpp b/src/ui/dialog/font-substitution.cpp index ae03bdf0e..2ef61978f 100644 --- a/src/ui/dialog/font-substitution.cpp +++ b/src/ui/dialog/font-substitution.cpp @@ -10,10 +10,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/guides.h b/src/ui/dialog/guides.h index 22bf5097a..4ff7b4fde 100644 --- a/src/ui/dialog/guides.h +++ b/src/ui/dialog/guides.h @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #if WITH_GTKMM_3_0 diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index b908a90cb..069b61cb7 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -17,10 +17,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/dialog/layer-properties.h b/src/ui/dialog/layer-properties.h index d114c6ba5..c75a7f190 100644 --- a/src/ui/dialog/layer-properties.h +++ b/src/ui/dialog/layer-properties.h @@ -16,10 +16,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/layers.h b/src/ui/dialog/layers.h index ae0ac6040..9cd2c3b92 100644 --- a/src/ui/dialog/layers.h +++ b/src/ui/dialog/layers.h @@ -16,10 +16,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/livepatheffect-add.h b/src/ui/dialog/livepatheffect-add.h index 99ead878c..c686e8365 100644 --- a/src/ui/dialog/livepatheffect-add.h +++ b/src/ui/dialog/livepatheffect-add.h @@ -11,14 +11,6 @@ #ifndef INKSCAPE_DIALOG_LIVEPATHEFFECT_ADD_H #define INKSCAPE_DIALOG_LIVEPATHEFFECT_ADD_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp index 7e5c17133..f63b19e86 100644 --- a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp +++ b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp @@ -8,10 +8,6 @@ #include #endif -#if GLIBMM_DISABLE_DEPRECATED &&HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "lpe-fillet-chamfer-properties.h" #include diff --git a/src/ui/dialog/lpe-powerstroke-properties.cpp b/src/ui/dialog/lpe-powerstroke-properties.cpp index a9e57970d..0cf3e9706 100644 --- a/src/ui/dialog/lpe-powerstroke-properties.cpp +++ b/src/ui/dialog/lpe-powerstroke-properties.cpp @@ -17,10 +17,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "lpe-powerstroke-properties.h" #include #include diff --git a/src/ui/dialog/messages.h b/src/ui/dialog/messages.h index 54ca84f47..6ed246ece 100644 --- a/src/ui/dialog/messages.h +++ b/src/ui/dialog/messages.h @@ -16,14 +16,6 @@ #ifndef INKSCAPE_UI_DIALOG_MESSAGES_H #define INKSCAPE_UI_DIALOG_MESSAGES_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h index 74c2382ac..1842fea11 100644 --- a/src/ui/dialog/objects.h +++ b/src/ui/dialog/objects.h @@ -16,10 +16,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif - #include #include #include diff --git a/src/ui/dialog/ocaldialogs.h b/src/ui/dialog/ocaldialogs.h index bd028c145..6ceceb9ef 100644 --- a/src/ui/dialog/ocaldialogs.h +++ b/src/ui/dialog/ocaldialogs.h @@ -17,10 +17,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - //Gtk includes #include #include diff --git a/src/ui/dialog/spellcheck.h b/src/ui/dialog/spellcheck.h index 27b89e34e..e98a9d80e 100644 --- a/src/ui/dialog/spellcheck.h +++ b/src/ui/dialog/spellcheck.h @@ -16,10 +16,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index eeb4d6cbe..06c17611f 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -18,10 +18,6 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/dialog/text-edit.h b/src/ui/dialog/text-edit.h index 8683d80a3..117ad2e28 100644 --- a/src/ui/dialog/text-edit.h +++ b/src/ui/dialog/text-edit.h @@ -22,10 +22,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/tile.h b/src/ui/dialog/tile.h index 2f75a8922..de1d3028b 100644 --- a/src/ui/dialog/tile.h +++ b/src/ui/dialog/tile.h @@ -20,10 +20,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 233d99750..e7ee9529f 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include <2geom/transforms.h> diff --git a/src/ui/previewholder.h b/src/ui/previewholder.h index f9f923be4..f6d1985cc 100644 --- a/src/ui/previewholder.h +++ b/src/ui/previewholder.h @@ -16,10 +16,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/tools/tool-base.cpp b/src/ui/tools/tool-base.cpp index a07f2fb86..2eb6d24d9 100644 --- a/src/ui/tools/tool-base.cpp +++ b/src/ui/tools/tool-base.cpp @@ -20,10 +20,6 @@ #include "widgets/desktop-widget.h" -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "shortcuts.h" #include "file.h" #include "ui/tools/tool-base.h" diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp index f15d7abf7..823e24a00 100644 --- a/src/ui/widget/addtoicon.cpp +++ b/src/ui/widget/addtoicon.cpp @@ -12,10 +12,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif - #include "ui/widget/addtoicon.h" #include diff --git a/src/ui/widget/button.h b/src/ui/widget/button.h index 471b7d8a2..d3c9afa02 100644 --- a/src/ui/widget/button.h +++ b/src/ui/widget/button.h @@ -10,14 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_BUTTON_H #define INKSCAPE_UI_WIDGET_BUTTON_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp index 943b1bebc..421f1df1e 100644 --- a/src/ui/widget/clipmaskicon.cpp +++ b/src/ui/widget/clipmaskicon.cpp @@ -11,10 +11,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif - #include "ui/widget/clipmaskicon.h" #include diff --git a/src/ui/widget/color-picker.h b/src/ui/widget/color-picker.h index b4da5dbf2..99904b081 100644 --- a/src/ui/widget/color-picker.h +++ b/src/ui/widget/color-picker.h @@ -13,16 +13,8 @@ #ifndef __COLOR_PICKER_H__ #define __COLOR_PICKER_H__ -#ifdef HAVE_CONFIG_H -# include -#endif - #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/color-preview.h b/src/ui/widget/color-preview.h index 959b5e09b..caddfb9a2 100644 --- a/src/ui/widget/color-preview.h +++ b/src/ui/widget/color-preview.h @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include namespace Inkscape { diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h index cc0c13eea..25a69d94c 100644 --- a/src/ui/widget/dock-item.h +++ b/src/ui/widget/dock-item.h @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/dock.h b/src/ui/widget/dock.h index 33e60b836..74b072d22 100644 --- a/src/ui/widget/dock.h +++ b/src/ui/widget/dock.h @@ -12,14 +12,6 @@ #ifndef INKSCAPE_UI_WIDGET_DOCK_H #define INKSCAPE_UI_WIDGET_DOCK_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include "ui/widget/dock-item.h" diff --git a/src/ui/widget/entity-entry.cpp b/src/ui/widget/entity-entry.cpp index c7d5efe29..69173fa25 100644 --- a/src/ui/widget/entity-entry.cpp +++ b/src/ui/widget/entity-entry.cpp @@ -17,10 +17,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/widget/filter-effect-chooser.h b/src/ui/widget/filter-effect-chooser.h index 6092c61a5..0bcf97433 100644 --- a/src/ui/widget/filter-effect-chooser.h +++ b/src/ui/widget/filter-effect-chooser.h @@ -12,14 +12,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/widget/frame.h b/src/ui/widget/frame.h index 55638ad40..a04666651 100644 --- a/src/ui/widget/frame.h +++ b/src/ui/widget/frame.h @@ -10,14 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_FRAME_H #define INKSCAPE_UI_WIDGET_FRAME_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/imageicon.h b/src/ui/widget/imageicon.h index 8faf13cb1..2ea8b8533 100644 --- a/src/ui/widget/imageicon.h +++ b/src/ui/widget/imageicon.h @@ -12,14 +12,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/ui/widget/imagetoggler.h b/src/ui/widget/imagetoggler.h index df6eb7ded..7b02fa4dc 100644 --- a/src/ui/widget/imagetoggler.h +++ b/src/ui/widget/imagetoggler.h @@ -14,10 +14,6 @@ #include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/insertordericon.h b/src/ui/widget/insertordericon.h index fb3412d3f..bf8ac4fa7 100644 --- a/src/ui/widget/insertordericon.h +++ b/src/ui/widget/insertordericon.h @@ -13,10 +13,11 @@ # include "config.h" #endif -#include #include #include +#include + namespace Inkscape { namespace UI { namespace Widget { diff --git a/src/ui/widget/labelled.h b/src/ui/widget/labelled.h index 5334454bc..88eb3ce19 100644 --- a/src/ui/widget/labelled.h +++ b/src/ui/widget/labelled.h @@ -11,14 +11,6 @@ #ifndef INKSCAPE_UI_WIDGET_LABELLED_H #define INKSCAPE_UI_WIDGET_LABELLED_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include namespace Gtk { diff --git a/src/ui/widget/layertypeicon.cpp b/src/ui/widget/layertypeicon.cpp index 3d6182bf8..672c607e5 100644 --- a/src/ui/widget/layertypeicon.cpp +++ b/src/ui/widget/layertypeicon.cpp @@ -11,10 +11,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -# include -#endif - #include "ui/widget/layertypeicon.h" #include diff --git a/src/ui/widget/licensor.h b/src/ui/widget/licensor.h index c75c5fe9e..b96162589 100644 --- a/src/ui/widget/licensor.h +++ b/src/ui/widget/licensor.h @@ -10,14 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_LICENSOR_H #define INKSCAPE_UI_WIDGET_LICENSOR_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include class SPDocument; diff --git a/src/ui/widget/notebook-page.h b/src/ui/widget/notebook-page.h index 4f7915423..c11de1b5b 100644 --- a/src/ui/widget/notebook-page.h +++ b/src/ui/widget/notebook-page.h @@ -14,10 +14,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include namespace Gtk { diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h index 5a723a2fd..ae16564e1 100644 --- a/src/ui/widget/object-composite-settings.h +++ b/src/ui/widget/object-composite-settings.h @@ -11,14 +11,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index 0cff25d88..8a1e98a63 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -15,10 +15,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include // for Gtk::RESPONSE_* #include #include diff --git a/src/ui/widget/panel.h b/src/ui/widget/panel.h index 5680cac30..a90060e17 100644 --- a/src/ui/widget/panel.h +++ b/src/ui/widget/panel.h @@ -17,10 +17,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp index 98028ed78..72597e4d9 100644 --- a/src/ui/widget/preferences-widget.cpp +++ b/src/ui/widget/preferences-widget.cpp @@ -14,10 +14,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/preferences-widget.h b/src/ui/widget/preferences-widget.h index 5d9816e74..8b75b8368 100644 --- a/src/ui/widget/preferences-widget.h +++ b/src/ui/widget/preferences-widget.h @@ -22,10 +22,6 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "ui/widget/spinbutton.h" #include diff --git a/src/ui/widget/rotateable.cpp b/src/ui/widget/rotateable.cpp index 2d7597d7c..5e938dee6 100644 --- a/src/ui/widget/rotateable.cpp +++ b/src/ui/widget/rotateable.cpp @@ -11,10 +11,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/selected-style.h b/src/ui/widget/selected-style.h index 0b6a14762..804a6fef6 100644 --- a/src/ui/widget/selected-style.h +++ b/src/ui/widget/selected-style.h @@ -15,10 +15,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #if WITH_GTKMM_3_0 diff --git a/src/ui/widget/spin-scale.h b/src/ui/widget/spin-scale.h index d0447e4a6..50e4fc953 100644 --- a/src/ui/widget/spin-scale.h +++ b/src/ui/widget/spin-scale.h @@ -13,10 +13,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/spin-slider.h b/src/ui/widget/spin-slider.h index 74982ea58..a5999f14f 100644 --- a/src/ui/widget/spin-slider.h +++ b/src/ui/widget/spin-slider.h @@ -14,10 +14,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/spinbutton.h b/src/ui/widget/spinbutton.h index cbe33e8ea..30ffc7d77 100644 --- a/src/ui/widget/spinbutton.h +++ b/src/ui/widget/spinbutton.h @@ -10,14 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_SPINBUTTON_H #define INKSCAPE_UI_WIDGET_SPINBUTTON_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include namespace Inkscape { diff --git a/src/ui/widget/style-swatch.h b/src/ui/widget/style-swatch.h index 582d2ebb3..0016e0256 100644 --- a/src/ui/widget/style-swatch.h +++ b/src/ui/widget/style-swatch.h @@ -17,10 +17,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp index ff525c679..ced811c57 100644 --- a/src/ui/widget/tolerance-slider.cpp +++ b/src/ui/widget/tolerance-slider.cpp @@ -12,10 +12,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/ui/widget/unit-menu.h b/src/ui/widget/unit-menu.h index 2fd25a6a9..f414660f7 100644 --- a/src/ui/widget/unit-menu.h +++ b/src/ui/widget/unit-menu.h @@ -10,14 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_UNIT_H #define INKSCAPE_UI_WIDGET_UNIT_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "util/units.h" diff --git a/src/verbs.cpp b/src/verbs.cpp index 5febeeb7c..ea2c06dcf 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -32,10 +32,9 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - +// Note that gtkmm headers must be included before gtk+ C headers +// in all files. The same applies for glibmm/glib etc. +// If this is not done, then errors will be generate relating to Glib::Threads being undefined #include #include #include diff --git a/src/widgets/dash-selector.h b/src/widgets/dash-selector.h index 5b9ebfa2b..ec5a1cbd5 100644 --- a/src/widgets/dash-selector.h +++ b/src/widgets/dash-selector.h @@ -14,10 +14,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/widgets/desktop-widget.h b/src/widgets/desktop-widget.h index a77d56fc3..489217d9a 100644 --- a/src/widgets/desktop-widget.h +++ b/src/widgets/desktop-widget.h @@ -12,14 +12,6 @@ * ? -2004 */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "message.h" #include "ui/view/view-widget.h" diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index d60a92b8b..b92b0a474 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -22,10 +22,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/widgets/icon.cpp b/src/widgets/icon.cpp index afc4fcfb0..542d16797 100644 --- a/src/widgets/icon.cpp +++ b/src/widgets/icon.cpp @@ -16,10 +16,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 948c80db3..740ce2b0e 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -24,10 +24,6 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "widgets/swatch-selector.h" #include "sp-pattern.h" #include diff --git a/src/widgets/shrink-wrap-button.cpp b/src/widgets/shrink-wrap-button.cpp index 3558780ed..941a0466c 100644 --- a/src/widgets/shrink-wrap-button.cpp +++ b/src/widgets/shrink-wrap-button.cpp @@ -13,10 +13,6 @@ #include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/widgets/sp-attribute-widget.h b/src/widgets/sp-attribute-widget.h index 4bd6c6959..d9b972201 100644 --- a/src/widgets/sp-attribute-widget.h +++ b/src/widgets/sp-attribute-widget.h @@ -19,10 +19,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/widgets/spw-utilities.cpp b/src/widgets/spw-utilities.cpp index f87889bb1..7030753a5 100644 --- a/src/widgets/spw-utilities.cpp +++ b/src/widgets/spw-utilities.cpp @@ -17,10 +17,6 @@ #include #include -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include diff --git a/src/widgets/stroke-marker-selector.h b/src/widgets/stroke-marker-selector.h index 27ac76d6f..a7ee788b8 100644 --- a/src/widgets/stroke-marker-selector.h +++ b/src/widgets/stroke-marker-selector.h @@ -10,14 +10,6 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include diff --git a/src/widgets/swatch-selector.h b/src/widgets/swatch-selector.h index c8c9983a6..4b7aa483f 100644 --- a/src/widgets/swatch-selector.h +++ b/src/widgets/swatch-selector.h @@ -1,14 +1,6 @@ #ifndef SEEN_SP_SWATCH_SELECTOR_H #define SEEN_SP_SWATCH_SELECTOR_H -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include class SPDocument; diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index 5d52db6f2..d56b91f5e 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -29,10 +29,6 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include #include -- cgit v1.2.3 From 0bb8a8c4d732a72568c5a5f698e2f5f591d10bef Mon Sep 17 00:00:00 2001 From: tkzv Date: Tue, 28 Apr 2015 06:52:09 +0200 Subject: Translation. Fix for bug #1449294 (Envelope extension absent with Russian interface) (bzr r14065) --- po/ru.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/ru.po b/po/ru.po index 198fbadfa..02ff9375c 100644 --- a/po/ru.po +++ b/po/ru.po @@ -36990,7 +36990,7 @@ msgstr "Поведение:" #: ../share/extensions/summersnight.inx.h:1 msgid "Envelope" -msgstr "Перспектива" +msgstr "По огибающей" #: ../share/extensions/svg2fxg.inx.h:1 #, fuzzy -- cgit v1.2.3 From 5f42b9187cc50cdc8407e31752f2ae682e6641a8 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 28 Apr 2015 16:26:17 +0200 Subject: Save original text in 'aria-label' attribute for accessibilty reasons. (bzr r14066) --- src/path-chemistry.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 5f6e1495b..988559e30 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -362,7 +362,7 @@ bool sp_item_list_to_curves(const GSList *items, GSList **selected, GSList **to_select, bool skip_all_lpeitems) { bool did = false; - + for (; items != NULL; items = items->next) { @@ -488,6 +488,9 @@ sp_selected_item_to_curved_repr(SPItem *item, guint32 /*text_grouping_policy*/) if (dynamic_cast(item) || dynamic_cast(item)) { // Special treatment for text: convert each glyph to separate path, then group the paths Inkscape::XML::Node *g_repr = xml_doc->createElement("svg:g"); + + Glib::ustring original_text; // To save original text of accessibility. + g_repr->setAttribute("transform", item->getRepr()->attribute("transform")); /* Mask */ gchar *mask_str = (gchar *) item->getRepr()->attribute("mask"); @@ -508,6 +511,8 @@ sp_selected_item_to_curved_repr(SPItem *item, guint32 /*text_grouping_policy*/) Inkscape::Text::Layout::iterator iter = te_get_layout(item)->begin(); do { + original_text += (gunichar)te_get_layout(item)->characterAt( iter ); + Inkscape::Text::Layout::iterator iter_next = iter; iter_next.nextGlyph(); // iter_next is one glyph ahead from iter if (iter == iter_next) @@ -547,6 +552,11 @@ sp_selected_item_to_curved_repr(SPItem *item, guint32 /*text_grouping_policy*/) p_repr->setAttribute("style", style_str.c_str()); g_repr->appendChild(p_repr); + + // For accessibility, store original string + if( original_text.size() > 0 ) { + g_repr->setAttribute("aria-label", original_text.c_str() ); + } Inkscape::GC::release(p_repr); if (iter == te_get_layout(item)->end()) -- cgit v1.2.3 From 1b24834a9073b27ffe84dd0a48ebab4ef7cba46f Mon Sep 17 00:00:00 2001 From: mathog <> Date: Tue, 28 Apr 2015 11:11:32 -0700 Subject: enable default pen object for WMF files (bzr r14067) --- src/extension/internal/wmf-inout.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp index 30a028eec..3ab7a4e89 100644 --- a/src/extension/internal/wmf-inout.cpp +++ b/src/extension/internal/wmf-inout.cpp @@ -3085,8 +3085,12 @@ Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri ) d.dc[0].style.stroke_dasharray.set = 0; d.dc[0].style.stroke_linecap.computed = 2; // U_PS_ENDCAP_SQUARE; d.dc[0].style.stroke_linejoin.computed = 0; // U_PS_JOIN_MITER; - d.dc[0].style.stroke_width.value = 1.0; // will be reset to something reasonable once WMF draying size is known + d.dc[0].style.stroke_width.value = 1.0; // will be reset to something reasonable once WMF drawing size is known d.dc[0].style.stroke.value.color.set( 0, 0, 0 ); + d.dc[0].stroke_set = true; + + // Default brush is none - no fill. WMF files that do not specify a brush are unlikely to look very good! + d.dc[0].fill_set = false; d.dc[0].font_name = strdup("Arial"); // Default font, set only on lowest level, it copies up from there WMF spec says device can pick whatever it wants -- cgit v1.2.3 From 6839dc4380abd4e892cf65600ffe4c63ed91eb67 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 28 Apr 2015 19:44:34 -0400 Subject: fix tangent sign problems in path outline code (bzr r14068) --- src/helper/geom-pathstroke.cpp | 159 ++++++++++++++++++++++++----------------- 1 file changed, 94 insertions(+), 65 deletions(-) diff --git a/src/helper/geom-pathstroke.cpp b/src/helper/geom-pathstroke.cpp index eb0c432c6..6b35bb290 100644 --- a/src/helper/geom-pathstroke.cpp +++ b/src/helper/geom-pathstroke.cpp @@ -127,87 +127,104 @@ static Circle touching_circle( D2 const &curve, double t, double tol=0.0 namespace { -// Join functions may: -// - inspect any curve of the current path -// - append any type of curve to the current path -// - inspect the outgoing path -// -// Join functions must: -// - append the outgoing curve -// OR -// - end at outgoing.finalPoint - -typedef void join_func(Geom::Path& res, Geom::Curve const& outgoing, double miter, double width); - -void bevel_join(Geom::Path& res, Geom::Curve const& outgoing, double /*miter*/, double /*width*/) +// Internal data structure + +struct join_data +{ + join_data(Geom::Path &_res, Geom::Path const&_outgoing, Geom::Point _in_tang, Geom::Point _out_tang, double _miter, double _width) + : res(_res), outgoing(_outgoing), in_tang(_in_tang) + , out_tang(_out_tang), miter(_miter), width(_width) {} + + // I/O + Geom::Path &res; + Geom::Path const& outgoing; + + // input tangents + Geom::Point in_tang; + Geom::Point out_tang; + + // line parameters + double miter; + double width; +}; + +// Join functions must append the outgoing path + +typedef void join_func(join_data jd); + +void bevel_join(join_data jd) { - res.appendNew(outgoing.initialPoint()); - res.append(outgoing); + jd.res.appendNew(jd.outgoing.initialPoint()); + jd.res.append(jd.outgoing); } -void round_join(Geom::Path& res, Geom::Curve const& outgoing, double /*miter*/, double width) +void round_join(join_data jd) { - res.appendNew(width, width, 0, false, width <= 0, outgoing.initialPoint()); - res.append(outgoing); + jd.res.appendNew(jd.width, jd.width, 0, false, jd.width <= 0, jd.outgoing.initialPoint()); + jd.res.append(jd.outgoing); } -void miter_join_internal(Geom::Path& res, Geom::Curve const& outgoing, double miter, double width, bool clip) +void miter_join_internal(join_data jd, bool clip) { - Geom::Curve const& incoming = res.back(); - Geom::Point tang1 = Geom::unitTangentAt(reverse(incoming.toSBasis()), 0.); - Geom::Point tang2 = outgoing.unitTangentAt(0); - Geom::Point p = Geom::intersection_point(incoming.finalPoint(), tang1, outgoing.initialPoint(), tang2); + using namespace Geom; + + Curve const& incoming = jd.res.back(); + Curve const& outgoing = jd.outgoing.front(); + Path &res = jd.res; + double width = jd.width, miter = jd.miter; + + Point tang1 = jd.in_tang; + Point tang2 = jd.out_tang; + Point p = intersection_point(incoming.finalPoint(), tang1, outgoing.initialPoint(), tang2); bool satisfied = false; bool inc_ls = res.back_open().degreesOfFreedom() <= 4; if (p.isFinite()) { // check size of miter - Geom::Point point_on_path = incoming.finalPoint() + Geom::rot90(tang1)*width; - satisfied = Geom::distance(p, point_on_path) <= miter * 2.0 * width; + Point point_on_path = incoming.finalPoint() + rot90(tang1)*width; + satisfied = distance(p, point_on_path) <= miter * 2.0 * width; if (satisfied) { // miter OK, check to see if we can do a relocation if (inc_ls) { res.setFinal(p); } else { - res.appendNew(p); + res.appendNew(p); } } else if (clip) { // miter needs clipping, find two points - Geom::Point bisector_versor = Geom::Line(point_on_path, p).versor(); - Geom::Point point_limit = point_on_path + miter * 2.0 * width * bisector_versor; + Point bisector_versor = Line(point_on_path, p).versor(); + Point point_limit = point_on_path + miter * 2.0 * width * bisector_versor; - Geom::Point p1 = Geom::intersection_point(incoming.finalPoint(), tang1, point_limit, bisector_versor.cw()); - Geom::Point p2 = Geom::intersection_point(outgoing.initialPoint(), tang2, point_limit, bisector_versor.cw()); + Point p1 = intersection_point(incoming.finalPoint(), tang1, point_limit, bisector_versor.cw()); + Point p2 = intersection_point(outgoing.initialPoint(), tang2, point_limit, bisector_versor.cw()); if (inc_ls) { res.setFinal(p1); } else { - res.appendNew(p1); + res.appendNew(p1); } - res.appendNew(p2); + res.appendNew(p2); } } - res.appendNew(outgoing.initialPoint()); + res.appendNew(outgoing.initialPoint()); // check if we can do another relocation bool out_ls = outgoing.degreesOfFreedom() <= 4; - if ( (satisfied || clip) && out_ls) { + if ((satisfied || clip) && out_ls) { res.setFinal(outgoing.finalPoint()); } else { res.append(outgoing); } -} -void miter_join(Geom::Path& res, Geom::Curve const& outgoing, double miter, double width) { - miter_join_internal( res, outgoing, miter, width, false ); + // either way, add the rest of the path + res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); } -void miter_clip_join(Geom::Path& res, Geom::Curve const& outgoing, double miter, double width) { - miter_join_internal( res, outgoing, miter, width, true ); -} +void miter_join(join_data jd) { miter_join_internal(jd, false); } +void miter_clip_join(join_data jd) { miter_join_internal(jd, true); } Geom::Point pick_solution(Geom::Point points[2], Geom::Point tang2, Geom::Point endPt) { @@ -225,15 +242,18 @@ Geom::Point pick_solution(Geom::Point points[2], Geom::Point tang2, Geom::Point return sol; } -void extrapolate_join(Geom::Path& res, Geom::Curve const& outgoing, double miter, double width) +void extrapolate_join(join_data jd) { using namespace Geom; + Geom::Path &res = jd.res; Geom::Curve const& incoming = res.back(); + Geom::Curve const& outgoing = jd.outgoing.front(); Geom::Point startPt = incoming.finalPoint(); Geom::Point endPt = outgoing.initialPoint(); - Geom::Point tang1 = Geom::unitTangentAt(reverse(incoming.toSBasis()), 0.); - Geom::Point tang2 = outgoing.unitTangentAt(0); + Geom::Point tang1 = jd.in_tang; + Geom::Point tang2 = jd.out_tang; + double width = jd.width, miter = jd.miter; Geom::Circle circle1 = Geom::touching_circle(Geom::reverse(incoming.toSBasis()), 0.); Geom::Circle circle2 = Geom::touching_circle(outgoing.toSBasis(), 0); @@ -280,7 +300,7 @@ void extrapolate_join(Geom::Path& res, Geom::Curve const& outgoing, double miter if (solutions != 2) // no solutions available, fall back to miter - return miter_clip_join(res, outgoing, miter, width); + return miter_clip_join(jd); // We have a solution, thus sol is defined. p1 = sol; @@ -381,14 +401,19 @@ void extrapolate_join(Geom::Path& res, Geom::Curve const& outgoing, double miter // Straight line segment: res.appendNew(outgoing.finalPoint()); } - + + // add the rest of the path + res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); + delete arc1; delete arc2; } -void join_inside(Geom::Path& res, Geom::Curve const& outgoing) +void join_inside(join_data jd) { + Geom::Path &res = jd.res; Geom::Curve const& incoming = res.back_open(); + Geom::Curve const& outgoing = jd.outgoing.front(); Geom::Crossings cross = Geom::crossings(incoming, outgoing); if (!cross.empty()) { @@ -406,28 +431,35 @@ void join_inside(Geom::Path& res, Geom::Curve const& outgoing) res.appendNew(outgoing.initialPoint()); res.append(outgoing); } + + // add the rest of the path + res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); } -bool decide(Geom::Curve const& incoming, Geom::Curve const& outgoing) +void tangents(Geom::Point* tang, Geom::Curve const& incoming, Geom::Curve const& outgoing) { Geom::Point tang1 = Geom::unitTangentAt(reverse(incoming.toSBasis()), 0.); Geom::Point tang2 = outgoing.unitTangentAt(0.); - return (Geom::cross(tang1, tang2) < 0); + tang[0] = tang1, tang[1] = tang2; } -void outline_helper(Geom::Path& res, Geom::Path const& to_add, double width, bool on_outside, double miter, Inkscape::LineJoinType join) +void outline_helper(Geom::Path &res, Geom::Path const& temp, Geom::Point in_tang, Geom::Point out_tang, double width, double miter, Inkscape::LineJoinType join) { - if (res.size() == 0 || to_add.size() == 0) + if (res.size() == 0 || temp.size() == 0) return; - Geom::Curve const& outgoing = to_add[0]; + Geom::Curve const& outgoing = temp.front(); if (Geom::are_near(res.finalPoint(), outgoing.initialPoint())) { // if the points are /that/ close, just ignore this one - res.setFinal(outgoing.initialPoint()); - res.append(outgoing); + res.setFinal(temp.initialPoint()); + res.append(temp); return; } + join_data jd(res, temp, in_tang, out_tang, miter, width); + + bool on_outside = (Geom::cross(in_tang, out_tang) < 0); + if (on_outside) { join_func *jf; switch (join) { @@ -446,9 +478,9 @@ void outline_helper(Geom::Path& res, Geom::Path const& to_add, double width, boo default: jf = &miter_join; } - jf(res, outgoing, miter, width); + jf(jd); } else { - join_inside(res, outgoing); + join_inside(jd); } } @@ -705,6 +737,7 @@ Geom::Path half_outline(Geom::Path const& input, double width, double miter, Lin Geom::Point tang1 = input[0].unitTangentAt(0); Geom::Point start = input.initialPoint() + tang1 * width; Geom::Path temp; + Geom::Point tang[2]; res.start(start); @@ -720,20 +753,16 @@ Geom::Path half_outline(Geom::Path const& input, double width, double miter, Lin if (u == 0) { res.append(temp); } else { - bool on_outside = decide(input[u-1], input[u]); - outline_helper(res, temp, width, on_outside, miter, join); - if (temp.size() > 0) - res.insert(res.end(), ++temp.begin(), temp.end()); + tangents(tang, input[u-1], input[u]); + outline_helper(res, temp, tang[0], tang[1], width, miter, join); } // odd number of paths if (u < k - 1) { temp = Geom::Path(); offset_curve(temp, &input[u+1], width); - bool on_outside = decide(input[u], input[u+1]); - outline_helper(res, temp, width, on_outside, miter, join); - if (temp.size() > 0) - res.insert(res.end(), ++temp.begin(), temp.end()); + tangents(tang, input[u], input[u+1]); + outline_helper(res, temp, tang[0], tang[1], width, miter, join); } } @@ -744,8 +773,8 @@ Geom::Path half_outline(Geom::Path const& input, double width, double miter, Lin temp.append(c1); Geom::Path temp2; temp2.append(c2); - bool on_outside = decide(input.back(), input.front()); - outline_helper(temp, temp2, width, on_outside, miter, join); + tangents(tang, input.back(), input.front()); + outline_helper(temp, temp2, tang[0], tang[1], width, miter, join); res.erase(res.begin()); res.erase_last(); // -- cgit v1.2.3 From 5a3f7c27245b1a1858036210efbde031d199ebdc Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 28 Apr 2015 21:10:13 -0400 Subject: Catch more intersections (can still be improved somewhat I think) (bzr r14069) --- src/helper/geom-pathstroke.cpp | 38 +++++++++++++++++--------------------- 1 file changed, 17 insertions(+), 21 deletions(-) diff --git a/src/helper/geom-pathstroke.cpp b/src/helper/geom-pathstroke.cpp index 6b35bb290..a33fb005b 100644 --- a/src/helper/geom-pathstroke.cpp +++ b/src/helper/geom-pathstroke.cpp @@ -412,31 +412,27 @@ void extrapolate_join(join_data jd) void join_inside(join_data jd) { Geom::Path &res = jd.res; - Geom::Curve const& incoming = res.back_open(); - Geom::Curve const& outgoing = jd.outgoing.front(); - Geom::Crossings cross = Geom::crossings(incoming, outgoing); - - if (!cross.empty()) { - // yeah if we could avoid allocing that'd be great - Geom::Curve *d1 = incoming.portion(0., cross[0].ta); - res.erase_last(); - res.append(*d1); - delete d1; - - Geom::Curve *d2 = outgoing.portion(cross[0].tb, 1.); - res.setFinal(d2->initialPoint()); - res.append(*d2); - delete d2; + Geom::Path const& temp = jd.outgoing; + Geom::Crossings cross = Geom::crossings(res, temp); + + if (cross.size() == 1) { + Geom::Path d1 = res.portion(0., cross[0].ta); + Geom::Path d2 = temp.portion(cross[0].tb, temp.size()); + + // Watch for bugs in 2geom crossing regarding severe inflection points + res.clear(); + res.append(d1); + res.setFinal(d2.initialPoint()); + res.append(d2); } else { - res.appendNew(outgoing.initialPoint()); - res.append(outgoing); + res.appendNew(temp.initialPoint()); + res.append(temp); + // add the rest of the path + res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); } - - // add the rest of the path - res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); } -void tangents(Geom::Point* tang, Geom::Curve const& incoming, Geom::Curve const& outgoing) +void tangents(Geom::Point tang[2], Geom::Curve const& incoming, Geom::Curve const& outgoing) { Geom::Point tang1 = Geom::unitTangentAt(reverse(incoming.toSBasis()), 0.); Geom::Point tang2 = outgoing.unitTangentAt(0.); -- cgit v1.2.3 From 658291159764636339acd95389827eb8ae159ecb Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Tue, 28 Apr 2015 21:25:47 -0400 Subject: Increase precision (long thin paths had a ton of width variance), fix logic error (bzr r14070) --- src/helper/geom-pathstroke.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/helper/geom-pathstroke.cpp b/src/helper/geom-pathstroke.cpp index a33fb005b..292ba3044 100644 --- a/src/helper/geom-pathstroke.cpp +++ b/src/helper/geom-pathstroke.cpp @@ -427,8 +427,6 @@ void join_inside(join_data jd) } else { res.appendNew(temp.initialPoint()); res.append(temp); - // add the rest of the path - res.insert(res.end(), ++jd.outgoing.begin(), jd.outgoing.end()); } } @@ -607,7 +605,7 @@ void offset_quadratic(Geom::Path& p, Geom::QuadraticBezier const& bez, double wi void offset_curve(Geom::Path& res, Geom::Curve const* current, double width) { - double const tolerance = 0.005; + double const tolerance = 0.0025; size_t levels = 8; if (current->isDegenerate()) return; // don't do anything -- cgit v1.2.3 From 175d41edfe840e85f01783526c0a29d16b335df3 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 02:31:16 -0400 Subject: cmake: Force requiring Gnome VFS Otherwise the build fails when trying to compile src/extension/internal/svg.cpp (bzr r14070.1.1) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 11069a51c..7a059d3de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,7 +40,7 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE ) # ----------------------------------------------------------------------------- option(WITH_DBUS "Compile with support for DBus interface" OFF) option(ENABLE_LCMS "Compile with LCMS support" OFF) -option(WITH_GNOME_VFS "Compile with support for Gnome VFS" OFF) +option(WITH_GNOME_VFS "Compile with support for Gnome VFS" ON) #option(WITH_INKJAR "Enable support for openoffice files (SVG jars)" ON) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling -- cgit v1.2.3 From 5557c73f06d4c2b3640a93cb3dd2d0eba72ed2ca Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 02:32:07 -0400 Subject: cmake: Don't depend on OpenSSL I'm not sure why this was in the cmake rules but it doesn't seem to be required for plain vanilla Inkscape builds. (bzr r14070.1.2) --- CMakeScripts/DefineDependsandFlags.cmake | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 12f0b5240..ffeab5808 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -227,9 +227,9 @@ if(WITH_GTKSPELL) set(WITH_GTKSPELL ${GTKSPELL_FOUND}) endif() -find_package(OpenSSL) -list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) -list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) +#find_package(OpenSSL) +#list(APPEND INKSCAPE_INCS_SYS ${OPENSSL_INCLUDE_DIR}) +#list(APPEND INKSCAPE_LIBS ${OPENSSL_LIBRARIES}) find_package(LibXslt REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${LIBXSLT_INCLUDE_DIR}) -- cgit v1.2.3 From 2fcb866f8d81fa9dfc408ceaafcb8641113a5f1d Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 10:12:49 -0400 Subject: cmake: Force CMS on to resolve missing DSO linker error A fix may still be needed if CMS is off, but that may require deeper changes. (bzr r14070.1.3) --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a059d3de..905f714af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,7 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE ) # Options # ----------------------------------------------------------------------------- option(WITH_DBUS "Compile with support for DBus interface" OFF) -option(ENABLE_LCMS "Compile with LCMS support" OFF) +option(ENABLE_LCMS "Compile with LCMS support" ON) option(WITH_GNOME_VFS "Compile with support for Gnome VFS" ON) #option(WITH_INKJAR "Enable support for openoffice files (SVG jars)" ON) -- cgit v1.2.3 From c9402117b96cbde93c13cc52f1596b723861e8ec Mon Sep 17 00:00:00 2001 From: jabiertxof Date: Wed, 29 Apr 2015 11:25:54 -0400 Subject: Fix a bug linking a path parameter to a transformed element (bzr r14071) --- src/live_effects/parameter/path.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/live_effects/parameter/path.cpp b/src/live_effects/parameter/path.cpp index ba95affd9..32e82ff8c 100644 --- a/src/live_effects/parameter/path.cpp +++ b/src/live_effects/parameter/path.cpp @@ -427,7 +427,13 @@ PathParam::paste_param_path(const char *svgd) if (svgd && *svgd) { // remove possible link to path remove_link(); - + SPItem * item = SP_ACTIVE_DESKTOP->getSelection()->singleItem(); + if (item != NULL) { + Geom::PathVector path_clipboard = sp_svg_read_pathv(svgd); + path_clipboard *= item->i2doc_affine().inverse(); + svgd = sp_svg_write_path( path_clipboard ); + } + param_write_to_repr(svgd); signal_path_pasted.emit(); } -- cgit v1.2.3 From 556a53bca1b75b43730da749313f8a6827f2461d Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 29 Apr 2015 19:24:49 +0200 Subject: Fix regression: Update default font-family if nothing is selected on canvas. (bzr r14072) --- src/libnrtype/FontFactory.h | 2 +- src/widgets/text-toolbar.cpp | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/libnrtype/FontFactory.h b/src/libnrtype/FontFactory.h index bd5a4460c..4c8c2cb29 100644 --- a/src/libnrtype/FontFactory.h +++ b/src/libnrtype/FontFactory.h @@ -68,7 +68,7 @@ public: }; // Map type for gathering UI family and style names -typedef std::map > FamilyToStylesMap; +// typedef std::map > FamilyToStylesMap; class font_factory { public: diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 3d2e6eef8..ec011fffd 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -162,11 +162,17 @@ static void sp_text_fontfamily_value_changed( Ink_ComboBoxEntry_Action *act, GOb fontlister->fill_css( css ); SPDesktop *desktop = SP_ACTIVE_DESKTOP; - sp_desktop_set_style (desktop, css, true, true); // Results in selection change called twice. + if( desktop->getSelection()->isEmpty() ) { + // Update default + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->mergeStyle("/tools/text/style", css); + } else { + // If there is a selection, update + sp_desktop_set_style (desktop, css, true, true); // Results in selection change called twice. + DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_TEXT, + _("Text: Change font family")); + } sp_repr_css_attr_unref (css); - - DocumentUndo::done(desktop->getDocument(), SP_VERB_CONTEXT_TEXT, - _("Text: Change font family")); } // unfreeze -- cgit v1.2.3 From f4c56b0f307b4f0f2ab499e7f10cf2a9644688c4 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 29 Apr 2015 16:23:05 -0400 Subject: Better solution picking (bzr r14073) --- src/helper/geom-pathstroke.cpp | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/src/helper/geom-pathstroke.cpp b/src/helper/geom-pathstroke.cpp index 292ba3044..1df17acf5 100644 --- a/src/helper/geom-pathstroke.cpp +++ b/src/helper/geom-pathstroke.cpp @@ -415,9 +415,28 @@ void join_inside(join_data jd) Geom::Path const& temp = jd.outgoing; Geom::Crossings cross = Geom::crossings(res, temp); - if (cross.size() == 1) { - Geom::Path d1 = res.portion(0., cross[0].ta); - Geom::Path d2 = temp.portion(cross[0].tb, temp.size()); + int solution = -1; // lol, really hope there aren't more than INT_MAX crossings + if (cross.size() == 1) solution = 0; + else if (cross.size() > 1) { + // I am not sure how well this will work -- we pick the join node closest + // to the cross point of the paths + Geom::Point original = res.finalPoint()+Geom::rot90(jd.in_tang)*jd.width; + Geom::Coord trial = Geom::L2(res.pointAt(cross[0].ta)-original); + solution = 0; + for (size_t i = 1; i < cross.size(); ++i) { + //printf("Trying %d\n", i); + Geom::Coord test = Geom::L2(res.pointAt(cross[i].ta)-original); + if (test < trial) { + trial = test; + solution = i; + //printf("Found improved solution: %f\n", trial); + } + } + } + + if (solution != -1) { + Geom::Path d1 = res.portion(0., cross[solution].ta); + Geom::Path d2 = temp.portion(cross[solution].tb, temp.size()); // Watch for bugs in 2geom crossing regarding severe inflection points res.clear(); -- cgit v1.2.3 From 71fcf846f0cb03e8f73ef72f1174b7e05f03d1c0 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Wed, 29 Apr 2015 23:03:20 +0200 Subject: corrected test file (bzr r13922.1.20) --- src/object-test.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/object-test.h b/src/object-test.h index 06363c372..4f0be3251 100644 --- a/src/object-test.h +++ b/src/object-test.h @@ -204,7 +204,8 @@ public: assert(n_group != NULL); begin = clock(); - sp_item_group_ungroup(n_group, NULL, false); + std::vector ch; + sp_item_group_ungroup(n_group, ch, false); end = clock(); std::cout << "Took " << double(end - begin) / double(CLOCKS_PER_SEC) << " seconds to ungroup a with " << num_elements << " elements\n"; -- cgit v1.2.3 From 7aac87804be5fe99db56130848d94da4d07e2382 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Wed, 29 Apr 2015 23:30:20 +0200 Subject: uint -> unsigned int (bzr r14075) --- src/selection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/selection.cpp b/src/selection.cpp index b2fb6447e..017089ec5 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -513,7 +513,7 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { return object; } -uint Selection::numberOfLayers() { +unsigned int Selection::numberOfLayers() { std::vector const items = const_cast(this)->itemList(); std::set layers; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { -- cgit v1.2.3 From c848ff33a5f3fd7eabfe83604bb42bb5e705c0b4 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 30 Apr 2015 00:29:17 +0200 Subject: unsigned int -> size_t (bzr r14076) --- src/selection.cpp | 4 ++-- src/selection.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/selection.cpp b/src/selection.cpp index 017089ec5..53772c381 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -513,7 +513,7 @@ SPObject *Selection::_objectForXMLNode(Inkscape::XML::Node *repr) const { return object; } -unsigned int Selection::numberOfLayers() { +size_t Selection::numberOfLayers() { std::vector const items = const_cast(this)->itemList(); std::set layers; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { @@ -523,7 +523,7 @@ unsigned int Selection::numberOfLayers() { return layers.size(); } -guint Selection::numberOfParents() { +size_t Selection::numberOfParents() { std::vector const items = const_cast(this)->itemList(); std::set parents; for ( std::vector::const_iterator iter=items.begin();iter!=items.end();iter++ ) { diff --git a/src/selection.h b/src/selection.h index 7ac0f40f3..952dde51d 100644 --- a/src/selection.h +++ b/src/selection.h @@ -259,10 +259,10 @@ public: std::list const box3DList(Persp3D *persp = NULL); /** Returns the number of layers in which there are selected objects. */ - unsigned int numberOfLayers(); + size_t numberOfLayers(); /** Returns the number of parents to which the selected objects belong. */ - unsigned int numberOfParents(); + size_t numberOfParents(); /** Returns the bounding rectangle of the selection. */ Geom::OptRect bounds(SPItem::BBoxType type) const; -- cgit v1.2.3 From ce75639406465cb3e60b097d70defa51bfdc10a6 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 18:52:55 -0400 Subject: cmake: Include missing source file in build rules (bzr r14070.1.4) --- src/libuemf/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/libuemf/CMakeLists.txt b/src/libuemf/CMakeLists.txt index f5a97f212..922d404a6 100644 --- a/src/libuemf/CMakeLists.txt +++ b/src/libuemf/CMakeLists.txt @@ -4,6 +4,7 @@ set(libuemf_SRC uemf.c uemf_endian.c uemf_print.c + uemf_safe.c uemf_utf.c uwmf.c uwmf_endian.c -- cgit v1.2.3 From 7969df944138a5524d40be8e9030b90629f6ec18 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 29 Apr 2015 19:25:17 -0400 Subject: cmake: Add missing dependencies for libgomp and libjpg (bzr r14070.1.5) --- CMakeScripts/DefineDependsandFlags.cmake | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index ffeab5808..637e48d6a 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -3,8 +3,7 @@ set(INKSCAPE_LIBS "") set(INKSCAPE_INCS "") set(INKSCAPE_INCS_SYS "") -list(APPEND INKSCAPE_INCS - ${PROJECT_SOURCE_DIR} +list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src # generated includes @@ -33,6 +32,7 @@ else() list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() +list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME if(WITH_GNOME_VFS) @@ -127,6 +127,14 @@ if(WITH_LIBWPG) endif() endif() +FIND_PACKAGE(JPEG REQUIRED) +#IF(JPEG_FOUND) + #INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) + #TARGET_LINK_LIBRARIES(mpo ${JPEG_LIBRARIES}) +#ENDIF() +list(APPEND INKSCAPE_INCS_SYS ${JPEG_INCLUDE_DIR}) +list(APPEND INKSCAPE_LIBS ${JPEG_LIBRARIES}) + find_package(PNG REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${PNG_PNG_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${PNG_LIBRARY}) -- cgit v1.2.3 From e5abbfaf9a7767bff95f45bdbfed4999ba894a99 Mon Sep 17 00:00:00 2001 From: "Liam P. White" Date: Wed, 29 Apr 2015 22:38:25 -0400 Subject: Fix dbus build (bzr r14077) --- src/extension/dbus/document-interface.cpp | 46 +++++++++++++++---------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp index 4fde6885f..d64bdbc5c 100644 --- a/src/extension/dbus/document-interface.cpp +++ b/src/extension/dbus/document-interface.cpp @@ -186,10 +186,10 @@ selection_get_center_y (Inkscape::Selection *sel){ * know we never bothered to implement it seperatly. Although * they might see the selection box flicker if used in a loop. */ -const GSList * +std::vector selection_swap(Inkscape::Selection *sel, gchar *name, GError **error) { - const GSList *oldsel = g_slist_copy((GSList *)sel->list()); + std::vector oldsel = sel->list(); sel->set(get_object_by_name(sel->layers()->getDocument(), name, error)); return oldsel; @@ -199,9 +199,11 @@ selection_swap(Inkscape::Selection *sel, gchar *name, GError **error) * See selection_swap, above */ void -selection_restore(Inkscape::Selection *sel, const GSList * oldsel) +selection_restore(Inkscape::Selection *sel, std::vector oldsel) { - sel->setList(oldsel); + // ... setList used to work here + sel->clear(); + sel->add(oldsel.begin(), oldsel.end()); } /* @@ -708,8 +710,8 @@ gboolean document_interface_move (DocumentInterface *doc_interface, gchar *name, gdouble x, gdouble y, GError **error) { - const GSList *oldsel = selection_swap(doc_interface->target.getSelection(), name, error); - if (!oldsel) + std::vector oldsel = selection_swap(doc_interface->target.getSelection(), name, error); + if (oldsel.empty()) return FALSE; sp_selection_move (doc_interface->target.getSelection(), x, 0 - y); selection_restore(doc_interface->target.getSelection(), oldsel); @@ -720,8 +722,8 @@ gboolean document_interface_move_to (DocumentInterface *doc_interface, gchar *name, gdouble x, gdouble y, GError **error) { - const GSList *oldsel = selection_swap(doc_interface->target.getSelection(), name, error); - if (!oldsel) + std::vector oldsel = selection_swap(doc_interface->target.getSelection(), name, error); + if (oldsel.empty()) return FALSE; Inkscape::Selection * sel = doc_interface->target.getSelection(); sp_selection_move (doc_interface->target.getSelection(), x - selection_get_center_x(sel), @@ -734,8 +736,8 @@ gboolean document_interface_object_to_path (DocumentInterface *doc_interface, char *shape, GError **error) { - const GSList *oldsel = selection_swap(doc_interface->target.getSelection(), shape, error); - if (!oldsel) + std::vector oldsel = selection_swap(doc_interface->target.getSelection(), shape, error); + if (oldsel.empty()) return FALSE; dbus_call_verb (doc_interface, SP_VERB_OBJECT_TO_CURVE, error); selection_restore(doc_interface->target.getSelection(), oldsel); @@ -849,8 +851,8 @@ gboolean document_interface_move_to_layer (DocumentInterface *doc_interface, gchar *shape, gchar *layerstr, GError **error) { - const GSList *oldsel = selection_swap(doc_interface->target.getSelection(), shape, error); - if (!oldsel) + std::vector oldsel = selection_swap(doc_interface->target.getSelection(), shape, error); + if (oldsel.empty()) return FALSE; document_interface_selection_move_to_layer(doc_interface, layerstr, error); @@ -1085,15 +1087,15 @@ void document_interface_update(DocumentInterface *doc_interface, GError ** error gboolean document_interface_selection_get(DocumentInterface *doc_interface, char ***out, GError ** /*error*/) { Inkscape::Selection * sel = doc_interface->target.getSelection(); - GSList const *oldsel = sel->list(); + std::vector oldsel = sel->list(); - int size = g_slist_length((GSList *) oldsel); + int size = oldsel.size(); *out = g_new0 (char *, size + 1); int i = 0; - for (GSList const *iter = oldsel; iter != NULL; iter = iter->next) { - (*out)[i] = g_strdup(SP_OBJECT(iter->data)->getRepr()->attribute("id")); + for (std::vector::iterator iter = oldsel.begin(), e = oldsel.end(); iter != e; ++iter) { + (*out)[i] = g_strdup((*iter)->getId()); i++; } (*out)[i] = NULL; @@ -1426,23 +1428,21 @@ gboolean dbus_send_ping (SPDesktop* desk, SPItem *item) gboolean document_interface_get_children (DocumentInterface *doc_interface, char *name, char ***out, GError **error) { - SPItem* parent=(SPItem* )get_object_by_name(doc_interface->target.getDocument(), name, error); + SPItem* parent=(SPItem* )get_object_by_name(doc_interface->target.getDocument(), name, error); + std::vector children = parent->childList(false); - GSList const *children = parent->childList(false); - - int size = g_slist_length((GSList *) children); + int size = children.size(); *out = g_new0 (char *, size + 1); int i = 0; - for (GSList const *iter = children; iter != NULL; iter = iter->next) { - (*out)[i] = g_strdup(SP_OBJECT(iter->data)->getRepr()->attribute("id")); + for (std::vector::iterator iter = children.begin(), e = children.end(); iter != e; ++iter) { + (*out)[i] = g_strdup((*iter)->getId()); i++; } (*out)[i] = NULL; return TRUE; - } -- cgit v1.2.3 From 6307c00b5774db5e914415127b302cca5e21345b Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 1 May 2015 02:26:56 +0200 Subject: Fixed crash bug due to some overlooked function changed in the recent merge. Also fixed the layer ordering in the widget, which was messed up by the same bug in a way i haven't quite sorted out (so the fact that this patch fixed it is quite a mystery, but i won't complain) (bzr r14079) --- src/selection-chemistry.cpp | 12 ++++++------ src/splivarot.cpp | 2 +- src/xml/repr-util.cpp | 17 +++++++++++------ src/xml/repr.h | 3 ++- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 7255e80cb..c30d22503 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -459,7 +459,7 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) // sorting items from different parents sorts each parent's subset without possibly mixing // them, just what we need - sort(reprs.begin(),reprs.end(),sp_repr_compare_position); + sort(reprs.begin(),reprs.end(),sp_repr_compare_position_bool); std::vector newsel; @@ -677,7 +677,7 @@ void sp_edit_invert_in_all_layers(SPDesktop *desktop) static void sp_selection_group_impl(std::vector p, Inkscape::XML::Node *group, Inkscape::XML::Document *xml_doc, SPDocument *doc) { - sort(p.begin(),p.end(),sp_repr_compare_position); + sort(p.begin(),p.end(),sp_repr_compare_position_bool); // Remember the position and parent of the topmost object. gint topmost = p.back()->position(); @@ -1002,7 +1002,7 @@ void sp_selection_raise_to_top(Inkscape::Selection *selection, SPDesktop *deskto } std::vector rl(selection->reprList()); - sort(rl.begin(),rl.end(),sp_repr_compare_position); + sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_iterator l=rl.begin(); l!=rl.end();l++) { Inkscape::XML::Node *repr =(*l); @@ -1086,7 +1086,7 @@ void sp_selection_lower_to_bottom(Inkscape::Selection *selection, SPDesktop *des } std::vector rl(selection->reprList()); - sort(rl.begin(),rl.end(),sp_repr_compare_position); + sort(rl.begin(),rl.end(),sp_repr_compare_position_bool); for (std::vector::const_reverse_iterator l=rl.rbegin();l!=rl.rend();l++) { gint minpos; @@ -2549,7 +2549,7 @@ void sp_selection_clone(SPDesktop *desktop) selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing them, just what we need - sort(reprs.begin(),reprs.end(),sp_repr_compare_position); + sort(reprs.begin(),reprs.end(),sp_repr_compare_position_bool); std::vector newsel; @@ -3709,7 +3709,7 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) std::vector p(selection->reprList()); - sort(p.begin(),p.end(),sp_repr_compare_position); + sort(p.begin(),p.end(),sp_repr_compare_position_bool); selection->clear(); diff --git a/src/splivarot.cpp b/src/splivarot.cpp index f61a30462..bec300936 100644 --- a/src/splivarot.cpp +++ b/src/splivarot.cpp @@ -688,7 +688,7 @@ sp_selected_path_boolop(Inkscape::Selection *selection, SPDesktop *desktop, bool // find out the bottom object std::vector sorted(selection->reprList()); - sort(sorted.begin(),sorted.end(),sp_repr_compare_position); + sort(sorted.begin(),sorted.end(),sp_repr_compare_position_bool); source = doc->getObjectByRepr(sorted.front()); } diff --git a/src/xml/repr-util.cpp b/src/xml/repr-util.cpp index 3858f08a7..305f1b292 100644 --- a/src/xml/repr-util.cpp +++ b/src/xml/repr-util.cpp @@ -260,7 +260,7 @@ gchar const *sp_xml_ns_prefix_uri(gchar const *prefix) * -1 first object's position is less than the second * @todo Rewrite this function's description to be understandable */ -bool sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second) +int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second) { int p1, p2; if (first->parent() == second->parent()) { @@ -277,9 +277,9 @@ bool sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::N g_assert(ancestor != NULL); if (ancestor == first) { - return false; + return 1; } else if (ancestor == second) { - return true; + return -1; } else { Inkscape::XML::Node const *to_first = AncetreFils(first, ancestor); Inkscape::XML::Node const *to_second = AncetreFils(second, ancestor); @@ -289,9 +289,9 @@ bool sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::N } } - if (p1 > p2) return false; - if (p1 < p2) return true; - return false; + if (p1 > p2) return 1; + if (p1 < p2) return -1; + return 0; /* effic: Assuming that the parent--child relationship is consistent (i.e. that the parent really does contain first and second among @@ -310,6 +310,11 @@ bool sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::N pjrm */ } +bool sp_repr_compare_position_bool(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second){ + return sp_repr_compare_position_bool(first, second)<0; +} + + /** * Find an element node using an unique attribute. * diff --git a/src/xml/repr.h b/src/xml/repr.h index fbe25ec12..17763195a 100644 --- a/src/xml/repr.h +++ b/src/xml/repr.h @@ -121,7 +121,8 @@ unsigned sp_repr_set_point(Inkscape::XML::Node *repr, char const *key, Geom::Poi unsigned sp_repr_get_point(Inkscape::XML::Node *repr, char const *key, Geom::Point *val); //c++-style comparison : returns (bool)(a Date: Fri, 1 May 2015 05:52:17 +0200 Subject: cmake: Fix osx-related issues with cmake-build Add new helper function to retrive pkg-config variables in Cmake; use paths defined as environment variables for builds on OS X (useful if MacPorts is not installed into default prefix); check backend of GTK2 on OS X in main cmake file (x11|quartz). (bzr r14080) --- CMakeLists.txt | 24 ++++++++++++++++++++++++ CMakeScripts/DefineDependsandFlags.cmake | 30 +++++++++++++++++++++++++++++- CMakeScripts/HelperFunctions.cmake | 19 +++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 CMakeScripts/HelperFunctions.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 905f714af..697006278 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,30 @@ if(CMAKE_COMPILER_IS_GNUCC) endif() endif() +# +# Set platform defaults (originally copied from darktable) +# +if(APPLE) + message("-- Mac OS X build detected, setting default features") + # prefer macports and/or user-installed libraries over system ones + #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) + set(CMAKE_FIND_FRAMEWORK "LAST") + + # test and display relevant env variables + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") + endif() + if(DEFINED ENV{GTKMM_BASEPATH}) + message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") + endif() + + # detect current GTK+ backend + include(${CMAKE_SOURCE_DIR}/CMakeScripts/HelperFunctions.cmake) + pkg_check_variable(gtk+-2.0 target) + message("GTK2 backend: ${GTK+_2.0_TARGET}") + +endif(APPLE) + #----------------------------------------------------------------------------- # Redirect output files diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 637e48d6a..b0e5aa8b2 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -24,6 +24,31 @@ if (WIN32) list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lgthread-2.0.dll") # FIXME +elseif(APPLE) + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + # Adding the library search path explicitly seems not required + # if MacPorts is installed in default prefix ('/opt/local') - + # Cmake then can rely on the hard-coded paths in its modules. + # Only prepend search path if $CMAKE_PREFIX_PATH is defined: + list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME + # TODO: verify whether linking the next two libs explicitly is always + # required, or only if MacPorts is installed in custom prefix: + list(APPEND INKSCAPE_LIBS "-liconv") # FIXME + list(APPEND INKSCAPE_LIBS "-lintl") # FIXME + endif() + list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME + list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME + # GTK+ backend + if(${GTK+_2.0_TARGET} MATCHES "x11") + # only link X11 if using X11 backend of GTK2 + list(APPEND INKSCAPE_LIBS "-lX11") # FIXME + elseif(${GTK+_2.0_TARGET} MATCHES "quartz") + # TODO: gtk-mac-integration (currently only useful for osxmenu branch) + # 1) add configure option (ON/OFF) for gtk-mac-integration + # 2) add checks (GTK+ backend must be "quartz") + # 3) link relevant lib(s) + endif() else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME @@ -32,7 +57,10 @@ else() list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() -list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME +if(NOT APPLE) + # FIXME: should depend on availability of OpenMP support (see below) (?) + list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME +endif() list(APPEND INKSCAPE_LIBS "-lgslcblas") # FIXME if(WITH_GNOME_VFS) diff --git a/CMakeScripts/HelperFunctions.cmake b/CMakeScripts/HelperFunctions.cmake new file mode 100644 index 000000000..0e6fff51a --- /dev/null +++ b/CMakeScripts/HelperFunctions.cmake @@ -0,0 +1,19 @@ +# pkg_check_variable() - a function to retrieve pkg-config variables in CMake +# +# source: http://bloerg.net/2015/03/06/pkg-config-variables-in-cmake.html + +find_package(PkgConfig REQUIRED) + +function(pkg_check_variable _pkg _name) + string(TOUPPER ${_pkg} _pkg_upper) + string(TOUPPER ${_name} _name_upper) + string(REPLACE "-" "_" _pkg_upper ${_pkg_upper}) + string(REPLACE "-" "_" _name_upper ${_name_upper}) + set(_output_name "${_pkg_upper}_${_name_upper}") + + execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=${_name} ${_pkg} + OUTPUT_VARIABLE _pkg_result + OUTPUT_STRIP_TRAILING_WHITESPACE) + + set("${_output_name}" "${_pkg_result}" CACHE STRING "pkg-config variable ${_name} of ${_pkg}") +endfunction() -- cgit v1.2.3 From 09eecb6d66f482d5a88eea700db71b5b5e523962 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Fri, 1 May 2015 16:29:50 -0400 Subject: cmake: Sp. fix (bzr r14081) --- CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 697006278..1b3ba36b4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ # CMake TODO -# - Remove hard coded defines (see bwelow) -# - Test on MinGW and OSX +# - Remove hard coded defines (see below) +# - Test on MinGW +# √ Test on OSX # - Add configurable options for Python/Perl, see configure --help # # ideasman42 @@ -70,7 +71,7 @@ option(WITH_GNOME_VFS "Compile with support for Gnome VFS" ON) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling option(WITH_GTKSPELL "Compile with support for GTK spelling widget" ON) -option(WITH_LIBWPG "Compile with support of libpoppler-cairo for WordPrefect Graphics" ON) +option(WITH_LIBWPG "Compile with support of libpoppler-cairo for WordPerfect Graphics" ON) option(ENABLE_POPPLER "Compile with support of libpoppler" ON) option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON) -- cgit v1.2.3 From d92f5665feda7ca40853a1945d505e88fb609044 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Fri, 1 May 2015 16:33:55 -0400 Subject: bzrignore: Add cmake bits (bzr r14082) --- .bzrignore | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.bzrignore b/.bzrignore index c85c5284f..ee5f321b0 100644 --- a/.bzrignore +++ b/.bzrignore @@ -224,3 +224,13 @@ build-osxapp inst-osxapp packaging/macosx/ScriptExec/build packaging/macosx/Inkscape.app + +# cmake bits +*.cmake +CMakeCache.txt +CMakeFiles +Makefile +bin/ +lib/ +include/ + -- cgit v1.2.3 From d865487a94fb0f2b5fba2bb332011ec7a7420ae7 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 2 May 2015 01:08:34 +0200 Subject: Fix segfault due to an infinite recursion (due to a typo) (bzr r14083) --- src/xml/repr-util.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xml/repr-util.cpp b/src/xml/repr-util.cpp index 305f1b292..4cbe930a1 100644 --- a/src/xml/repr-util.cpp +++ b/src/xml/repr-util.cpp @@ -311,7 +311,7 @@ int sp_repr_compare_position(Inkscape::XML::Node const *first, Inkscape::XML::No } bool sp_repr_compare_position_bool(Inkscape::XML::Node const *first, Inkscape::XML::Node const *second){ - return sp_repr_compare_position_bool(first, second)<0; + return sp_repr_compare_position(first, second)<0; } -- cgit v1.2.3 From fee6f2b2bd4ade26b957f91de04d45c38541b05a Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 2 May 2015 03:14:58 +0200 Subject: fixed selection after ungroup fixed some regression with displacement of clones of clones when ungrouping (test case: icons.svg) (bzr r14084) --- src/sp-item-group.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 9bd42665d..72cd5d7fa 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -375,7 +375,7 @@ void sp_item_group_ungroup_handle_clones(SPItem *parent, Geom::Affine const g) { for(std::list::const_iterator refd=parent->hrefList.begin();refd!=parent->hrefList.end();refd++){ SPItem *citem = dynamic_cast(*refd); - if (citem) { + if (citem && !citem->cloned) { SPUse *useitem = dynamic_cast(citem); if (useitem && useitem->get_original() == parent) { Geom::Affine ctrans; @@ -541,15 +541,12 @@ sp_item_group_ungroup (SPGroup *group, std::vector &children, bool do_d if (item) { item->doWriteTransform(repr, item->transform, NULL, false); + children.insert(children.begin(),item); } else { g_assert_not_reached(); } Inkscape::GC::release(repr); - if (!children.empty() && item) { - children.insert(children.begin(),item); - } - items = g_slist_remove (items, items->data); } -- cgit v1.2.3 From 280053e5ddfcdf158f62d2d6a72681b3092d2168 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 2 May 2015 03:47:39 +0200 Subject: Fixed comparison function used in sorts (bzr r14085) --- src/selection-chemistry.cpp | 6 +++--- src/seltrans.cpp | 2 +- src/sp-object.cpp | 4 ++++ src/sp-object.h | 1 + src/ui/clipboard.cpp | 2 +- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index c30d22503..68adf5381 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -326,7 +326,7 @@ static void sp_selection_copy_impl(std::vector const &items, std::vecto { // Sort items: std::vector sorted_items(items); - sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); + sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position_bool); // Copy item reprs: for (std::vector::const_iterator i = sorted_items.begin(); i != sorted_items.end(); i++) { @@ -3245,7 +3245,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) std::vector items (selection->itemList()); - sort(items.begin(),items.end(),sp_object_compare_position); + sort(items.begin(),items.end(),sp_object_compare_position_bool); // bottommost object, after sorting SPObject *parent = items[0]->parent; @@ -3836,7 +3836,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ std::vector items(selection->itemList()); - sort(items.begin(),items.end(),sp_object_compare_position); + sort(items.begin(),items.end(),sp_object_compare_position_bool); // See lp bug #542004 selection->clear(); diff --git a/src/seltrans.cpp b/src/seltrans.cpp index bfb8d53f1..f7562923f 100644 --- a/src/seltrans.cpp +++ b/src/seltrans.cpp @@ -529,7 +529,7 @@ void Inkscape::SelTrans::stamp() } else { /* Build cache */ l = selection->itemList(); - sort(l.begin(),l.end(),sp_object_compare_position); + sort(l.begin(),l.end(),sp_object_compare_position_bool); _stamp_cache = l; } diff --git a/src/sp-object.cpp b/src/sp-object.cpp index d4b8a15c0..0bb8c240f 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -357,6 +357,10 @@ int sp_object_compare_position(SPObject const *first, SPObject const *second) return result; } +bool sp_object_compare_position_bool(SPObject const *first, SPObject const *second){ + return sp_object_compare_position(first,second)<0; +} + SPObject *SPObject::appendChildRepr(Inkscape::XML::Node *repr) { if ( !cloned ) { diff --git a/src/sp-object.h b/src/sp-object.h index f5d47be05..7bc02fad5 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -876,6 +876,7 @@ public: * -1 first object's position is less than the second \endverbatim */ int sp_object_compare_position(SPObject const *first, SPObject const *second); +bool sp_object_compare_position_bool(SPObject const *first, SPObject const *second); #endif // SP_OBJECT_H_SEEN diff --git a/src/ui/clipboard.cpp b/src/ui/clipboard.cpp index a3620b754..d6cf1f980 100644 --- a/src/ui/clipboard.cpp +++ b/src/ui/clipboard.cpp @@ -674,7 +674,7 @@ void ClipboardManagerImpl::_copySelection(Inkscape::Selection *selection) // copy the representation of the items std::vector sorted_items(itemlist); - sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position); + sort(sorted_items.begin(),sorted_items.end(),sp_object_compare_position_bool); for(std::vector::const_iterator i=sorted_items.begin();i!=sorted_items.end();i++){ SPItem *item = *i; -- cgit v1.2.3 From 2f156df97e50f3a1fa2ddc994ddb24dce76a77f2 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Fri, 1 May 2015 22:25:08 -0400 Subject: bzrignore: Fix *.cmake ignorance Only certain .cmake files should be ignored (bzr r14086) --- .bzrignore | 3 ++- src/extension/CMakeLists.txt | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.bzrignore b/.bzrignore index ee5f321b0..784575a91 100644 --- a/.bzrignore +++ b/.bzrignore @@ -226,7 +226,8 @@ packaging/macosx/ScriptExec/build packaging/macosx/Inkscape.app # cmake bits -*.cmake +cmake_install.cmake +cmake_uninstall.cmake CMakeCache.txt CMakeFiles Makefile diff --git a/src/extension/CMakeLists.txt b/src/extension/CMakeLists.txt index 47292fd97..d1104f3cc 100644 --- a/src/extension/CMakeLists.txt +++ b/src/extension/CMakeLists.txt @@ -57,6 +57,7 @@ set(extension_SRC internal/vsd-input.cpp internal/wmf-inout.cpp internal/wmf-print.cpp + internal/wpg-input.cpp internal/filter/filter-all.cpp internal/filter/filter-file.cpp @@ -142,6 +143,7 @@ set(extension_SRC internal/vsd-input.h internal/wmf-inout.h internal/wmf-print.h + internal/wpg-input.h ) if(WIN32) -- cgit v1.2.3 From 046602640873c37516516c9903079d6c5528bd05 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 2 May 2015 02:05:29 -0400 Subject: cmake: Fix WPG 0.2 build variables WPG 0.1 appears to have been tested and made to work, but a parallel set of code checks WPG 0.2 and the variable names are all wrong (looks like they didn't get properly updated from the original automake scripts). The detection fails entirely on Ubuntu 14.04 and probably other recent distros. With this change, cmake now builds inkscape properly for me. (bzr r14087) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- CMakeScripts/Modules/FindLibWPG.cmake | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index b0e5aa8b2..321f0982c 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -145,8 +145,8 @@ add_definitions(${POPPLER_DEFINITIONS}) if(WITH_LIBWPG) find_package(LibWPG) if(LIBWPG_FOUND) - set(WITH_LIBWPG01 ${LIBWPG01_FOUND}) - set(WITH_LIBWPG02 ${LIBWPG02_FOUND}) + set(WITH_LIBWPG-0.1 ${LIBWPG-0.1_FOUND}) + set(WITH_LIBWPG-0.2 ${LIBWPG-0.2_FOUND}) list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) add_definitions(${LIBWPG_DEFINITIONS}) diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 4f173da2d..136267070 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -38,17 +38,17 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) - if (LIBWPG02_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG02_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG02_LIBRARIES}) + if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) set(LIBWPG02_FOUND TRUE) - endif (LIBWPG02_FOUND) - if (LIBWPG01_FOUND OR LIBWPG_02_FOUND) + endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) set(LIBWPG_FOUND TRUE) - endif (LIBWPG01_FOUND OR LIBWPG_02_FOUND) + endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) endif (PKG_CONFIG_FOUND) endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) -- cgit v1.2.3 From d990da7606e88039bbb5b133559b4b1b201a1363 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sat, 2 May 2015 02:09:38 -0400 Subject: sp-text: Whitespace cleanup (bzr r14088) --- src/sp-text.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/sp-text.cpp b/src/sp-text.cpp index 0dca42bb4..d351e58e3 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -149,7 +149,7 @@ void SPText::remove_child(Inkscape::XML::Node *rch) { void SPText::update(SPCtx *ctx, guint flags) { unsigned childflags = (flags & SP_OBJECT_MODIFIED_CASCADE); if (flags & SP_OBJECT_MODIFIED_FLAG) { - childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + childflags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } // Create temporary list of children @@ -519,7 +519,7 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio } } } - + if (SP_IS_TEXT(root)) { SP_TEXT(root)->attributes.mergeInto(&optional_attrs, parent_optional_attrs, parent_attrs_offset, true, true); if (SP_TEXT(root)->attributes.getTextLength()->_set) { // set textLength on the entire layout, see note in TNG-Layout.h @@ -571,7 +571,7 @@ unsigned SPText::_buildLayoutInput(SPObject *root, Inkscape::Text::Layout::Optio child_attrs_offset--; } } - + for (SPObject *child = root->firstChild() ; child ; child = child->getNext() ) { SPString *str = dynamic_cast(child); if (str) { @@ -691,15 +691,15 @@ bool TextTagAttributes::readSingleAttribute(unsigned key, gchar const *value) case SP_ATTR_DX: attr_vector = &attributes.dx; break; case SP_ATTR_DY: attr_vector = &attributes.dy; break; case SP_ATTR_ROTATE: attr_vector = &attributes.rotate; break; - case SP_ATTR_TEXTLENGTH: - attributes.textLength.readOrUnset(value); - return true; + case SP_ATTR_TEXTLENGTH: + attributes.textLength.readOrUnset(value); + return true; break; - case SP_ATTR_LENGTHADJUST: - attributes.lengthAdjust = (value && !strcmp(value, "spacingAndGlyphs")? - Inkscape::Text::Layout::LENGTHADJUST_SPACINGANDGLYPHS : + case SP_ATTR_LENGTHADJUST: + attributes.lengthAdjust = (value && !strcmp(value, "spacingAndGlyphs")? + Inkscape::Text::Layout::LENGTHADJUST_SPACINGANDGLYPHS : Inkscape::Text::Layout::LENGTHADJUST_SPACING); // default is "spacing" - return true; + return true; break; default: return false; } @@ -724,7 +724,7 @@ void TextTagAttributes::writeTo(Inkscape::XML::Node *node) const node->setAttribute("lengthAdjust", "spacing"); } else if (attributes.lengthAdjust == Inkscape::Text::Layout::LENGTHADJUST_SPACINGANDGLYPHS) { node->setAttribute("lengthAdjust", "spacingAndGlyphs"); - } + } } } @@ -734,7 +734,7 @@ void TextTagAttributes::writeSingleAttributeLength(Inkscape::XML::Node *node, gc gchar single_value_string[32]; g_ascii_formatd(single_value_string, sizeof (single_value_string), "%.8g", length.computed); node->setAttribute(key, single_value_string); - } else + } else node->setAttribute(key, NULL); } @@ -802,7 +802,7 @@ void TextTagAttributes::mergeInto(Inkscape::Text::Layout::OptionalTextTagAttrs * output->textLength.unit = attributes.textLength.unit; output->textLength._set = attributes.textLength._set; output->lengthAdjust = attributes.lengthAdjust; - } + } } void TextTagAttributes::mergeSingleAttribute(std::vector *output_list, std::vector const &parent_list, unsigned parent_offset, std::vector const *overlay_list) -- cgit v1.2.3 From bd9cc9950b2cb841a3d0f92609f38a907133d31e Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 10:35:25 +0200 Subject: cmake: fix build with poppler >= 0.29 (bzr r14089) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++++ config.h.cmake | 3 +++ 2 files changed, 7 insertions(+) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 321f0982c..697f2166d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -122,6 +122,10 @@ if(ENABLE_POPPLER) POPPLER_VERSION VERSION_EQUAL "0.26.0") set(POPPLER_EVEN_NEWER_COLOR_SPACE_API ON) endif() + if(POPPLER_VERSION VERSION_GREATER "0.29.0" OR + POPPLER_VERSION VERSION_EQUAL "0.29.0") + set(POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API ON) + endif() if(POPPLER_VERSION VERSION_GREATER "0.15.1" OR POPPLER_VERSION VERSION_EQUAL "0.15.1") set(POPPLER_NEW_GFXPATCH ON) diff --git a/config.h.cmake b/config.h.cmake index 398608446..81712be63 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -137,6 +137,9 @@ /* Use color space API from Poppler >= 0.26.0 */ #cmakedefine POPPLER_EVEN_NEWER_COLOR_SPACE_API 1 +/* Use color space API from Poppler >= 0.29.0 */ +#cmakedefine POPPLER_EVEN_NEWER_NEW_COLOR_SPACE_API 1 + /* Use new error API from Poppler >= 0.20.0 */ #cmakedefine POPPLER_NEW_ERRORAPI -- cgit v1.2.3 From d043dd57f00f0fc4a170eb48fce1bf616c81c753 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 12:03:29 +0200 Subject: cmake: enable Image Magick++ support for bitmap effects (bzr r14090) --- CMakeScripts/DefineDependsandFlags.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 697f2166d..d9c0977e1 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -300,6 +300,7 @@ find_package(ImageMagick COMPONENTS MagickCore Magick++) if(ImageMagick_FOUND) list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) + set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) -- cgit v1.2.3 From daa49de4de9aecd929913de4677bccd105bbf628 Mon Sep 17 00:00:00 2001 From: houz Date: Sat, 2 May 2015 12:39:03 +0200 Subject: cmake: fix failing checks due to missing include and library paths (e.g. for gtk_window_fullscreen) (bzr r14091) --- CMakeScripts/ConfigChecks.cmake | 3 +++ CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CMakeScripts/ConfigChecks.cmake b/CMakeScripts/ConfigChecks.cmake index 5f76e01e9..905465448 100644 --- a/CMakeScripts/ConfigChecks.cmake +++ b/CMakeScripts/ConfigChecks.cmake @@ -9,6 +9,9 @@ include(CheckStructHasMember) # usage: CHECK_FUNCTION_EXISTS ( ) # usage: CHECK_STRUCT_HAS_MEMBER (
) +set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${INKSCAPE_LIBS}) +set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${INKSCAPE_INCS_SYS}) + CHECK_INCLUDE_FILES(boost/concept_check.hpp HAVE_BOOST_CONCEPT_CHECK_HPP) CHECK_INCLUDE_FILES(cairo-pdf.h HAVE_CAIRO_PDF) CHECK_FUNCTION_EXISTS(floor HAVE_FLOOR) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index d9c0977e1..27802ad92 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -311,7 +311,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) include_directories(${INKSCAPE_INCS}) include_directories(SYSTEM ${INKSCAPE_INCS_SYS}) +include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) + unset(INKSCAPE_INCS) unset(INKSCAPE_INCS_SYS) - -include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) -- cgit v1.2.3 From 82f8496e6c5409a4bc3200fda113687ea0260eb1 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Sat, 2 May 2015 15:15:27 +0200 Subject: =?UTF-8?q?Translations.=20German=20translation=20update=20by=20Ed?= =?UTF-8?q?uard=20Braun.=20Icelandic=20translation=20update=20by=20Sveinn?= =?UTF-8?q?=20=C3=AD=20Felli.=20Catalan=20translation=20update=20by=20Jord?= =?UTF-8?q?i=20Mas=20i=20Hern=C3=A0ndez.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (bzr r14092) --- po/ca.po | 160 +- po/de.po | 3357 +++++++++++++++++++------------------ po/is.po | 5543 ++++++++++++++++++++++++++++++++++---------------------------- 3 files changed, 4843 insertions(+), 4217 deletions(-) diff --git a/po/ca.po b/po/ca.po index 3d59ad78a..c6a14a4ad 100644 --- a/po/ca.po +++ b/po/ca.po @@ -506,7 +506,7 @@ msgstr "Membrana fina" #: ../share/filters/filters.svg.h:156 msgid "Thin like a soap membrane" -msgstr "Prim com una pel·lícula a la superfície de la sopa" +msgstr "Prim com una pel·lícula a la superfície del sabó" #: ../share/filters/filters.svg.h:158 msgid "Matte Ridge" @@ -577,7 +577,7 @@ msgstr "Escorça" #: ../share/filters/filters.svg.h:188 msgid "Bark texture, vertical; use with deep colors" -msgstr "Textura d'escorça de forma vertical: useu-la amb color intensos" +msgstr "Textura d'escorça de forma vertical: useu-la amb colors intensos" #: ../share/filters/filters.svg.h:190 msgid "Lizard Skin" @@ -893,7 +893,7 @@ msgstr "Gent" #: ../share/filters/filters.svg.h:332 msgid "Colorized blotches, like a crowd of people" -msgstr "Taques de diversos color, com en una gentada" +msgstr "Taques de diversos colors, com en una gentada" #: ../share/filters/filters.svg.h:334 msgid "Scotland" @@ -916,7 +916,7 @@ msgstr "" #: ../share/filters/filters.svg.h:342 msgid "Cutout Glow" -msgstr "Resplendor retallat" +msgstr "Resplendor retallada" #: ../share/filters/filters.svg.h:344 msgid "In and out glow with a possible offset and colorizable flood" @@ -1301,7 +1301,7 @@ msgstr "Transparència rugosa" #: ../share/filters/filters.svg.h:488 msgid "Adds a turbulent transparency which displaces pixels at the same time" -msgstr "Afegeix una transparència turbulent amb píxels desplaçats alhora" +msgstr "Afegeix una transparència turbulenta amb píxels desplaçats alhora" #: ../share/filters/filters.svg.h:490 msgid "Gouache" @@ -1607,7 +1607,7 @@ msgstr "Barreja oposada" #: ../share/filters/filters.svg.h:628 msgid "Blend an image with its hue opposite" -msgstr "Barreja una imatge amb la seua oposada" +msgstr "Barreja una imatge amb la seva oposada" #: ../share/filters/filters.svg.h:630 msgid "Hue to White" @@ -1670,7 +1670,7 @@ msgid "" "Overlays two copies with different blur amounts and modifiable blend and " "composite" msgstr "" -"Superposa dues copies amb diferent grau de difuminat, mescla i composició" +"Superposa dues còpies amb diferent grau de difuminat, mescla i composició" #: ../share/filters/filters.svg.h:658 msgid "Image Drawing Basic" @@ -3203,7 +3203,7 @@ msgstr "Negre atzabeja" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1" -msgstr "Rallat 1:1" +msgstr "Ratllat 1:1" #: ../share/patterns/patterns.svg.h:1 msgid "Stripes 1:1 white" @@ -3683,7 +3683,7 @@ msgstr "Prohibit aparcar" #: ../share/symbols/symbols.h:103 ../share/symbols/symbols.h:104 msgctxt "Symbol" msgid "No Dogs" -msgstr "Prohibit gossos" +msgstr "Prohibits gossos" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:105 ../share/symbols/symbols.h:106 @@ -4025,13 +4025,13 @@ msgstr "Retard" #: ../share/symbols/symbols.h:175 msgctxt "Symbol" msgid "Loop Limit Begin" -msgstr "Inici del limit del bucle" +msgstr "Inici del límit del bucle" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:176 msgctxt "Symbol" msgid "Loop Limit End" -msgstr "Final del limit del bucle" +msgstr "Final del límit del bucle" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:177 @@ -4450,7 +4450,7 @@ msgstr "Capsa 3D" #: ../src/color-profile.cpp:853 #, c-format msgid "Color profiles directory (%s) is unavailable." -msgstr "El directori de les perfils de color (%s) no es troba disponible." +msgstr "El directori dels perfils de color (%s) no es troba disponible." #: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 msgid "(invalid UTF-8 string)" @@ -4774,7 +4774,7 @@ msgstr "cantonada" #: ../src/display/snap-indicator.cpp:164 msgid "text anchor" -msgstr "ancora del text" +msgstr "àncora del text" #: ../src/display/snap-indicator.cpp:167 msgid "text baseline" @@ -4850,7 +4850,7 @@ msgstr "Cantonada" #: ../src/display/snap-indicator.cpp:234 msgid "Text anchor" -msgstr "Ancora del text" +msgstr "Àncora del text" #: ../src/display/snap-indicator.cpp:237 msgid "Multiple of grid spacing" @@ -5452,7 +5452,7 @@ msgid "" "between the given ranges to the full color range" msgstr "" "Canvia el nivell del canal especificat de la imatge seleccionada escalant a " -"tota la gamma possible els valors compresos dins uns límits ." +"tota la gamma possible els valors compresos dins uns límits." #: ../src/extension/internal/bitmap/medianFilter.cpp:37 msgid "Median" @@ -5736,7 +5736,7 @@ msgstr "Orientació del text:" #: ../src/extension/internal/cairo-ps-out.cpp:376 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 msgid "Embed fonts" -msgstr "Fonts incrustades" +msgstr "Tipus de lletra incrustats" #: ../src/extension/internal/cairo-ps-out.cpp:335 #: ../src/extension/internal/cairo-ps-out.cpp:377 @@ -5954,11 +5954,11 @@ msgstr "Converteix línies de traços/punts a línies individuals" #: ../src/extension/internal/emf-inout.cpp:3576 #: ../src/extension/internal/wmf-inout.cpp:3151 msgid "Convert gradients to colored polygon series" -msgstr "Converteix el gradient a series de polígons pintats" +msgstr "Converteix els degradats a sèries de polígons pintats" #: ../src/extension/internal/emf-inout.cpp:3577 msgid "Use native rectangular linear gradients" -msgstr "Usa un gradient lineal rectangular nadiu" +msgstr "Usa un degradat lineal rectangular nadiu" #: ../src/extension/internal/emf-inout.cpp:3578 msgid "Map all fill patterns to standard EMF hatches" @@ -9815,7 +9815,7 @@ msgstr "Radi (unitat o %):" #: ../src/live_effects/lpe-fillet-chamfer.cpp:62 msgid "Radius, in unit or %" -msgstr "Radi, en l'unitat o %" +msgstr "Radi, en la unitat o %" #: ../src/live_effects/lpe-fillet-chamfer.cpp:63 msgid "Chamfer steps:" @@ -10535,7 +10535,7 @@ msgstr "Creixement:" #: ../src/live_effects/lpe-rough-hatches.cpp:226 msgid "Growth of distance between hatches." -msgstr "Creixement de la distància entre les línies de al trama." +msgstr "Creixement de la distància entre les línies de la trama." #. FIXME: top/bottom names are inverted in the UI/svg and in the code!! #: ../src/live_effects/lpe-rough-hatches.cpp:228 @@ -11006,7 +11006,7 @@ msgstr "" #: ../src/live_effects/lpe-sketch.cpp:49 msgid "Average offset:" -msgstr "Desviació mitja:" +msgstr "Desviació mitjana:" #: ../src/live_effects/lpe-sketch.cpp:50 msgid "Average distance each stroke is away from the original path" @@ -11623,7 +11623,7 @@ msgstr "Mostra l'id,x,y,w,h de tots els objectes" #: ../src/main.cpp:478 msgid "The ID of the object whose dimensions are queried" -msgstr "L' ID de l'objecte les dimensions del qual es volen consultar" +msgstr "L'ID de l'objecte les dimensions del qual es volen consultar" #. TRANSLATORS: this option makes Inkscape print the name (path) of the extension directory #: ../src/main.cpp:484 @@ -14354,7 +14354,7 @@ msgstr "Suprimeix els clons del mosaic" msgid "" "If you want to clone several objects, group them and clone the " "group." -msgstr "Per clonar varis objectes, agrupeu-los i cloneu el grup." +msgstr "Per clonar diversos objectes, agrupeu-los i cloneu el grup." #: ../src/ui/dialog/clonetiler.cpp:2238 msgid "Creating tiled clones..." @@ -14917,7 +14917,7 @@ msgstr "Tanca en acabar" #: ../src/ui/dialog/export.cpp:177 msgid "Once the export completes, close this dialog" -msgstr "Un cop acabada la exportació, tanca aquest diàleg" +msgstr "Un cop acabada l'exportació, tanca aquest diàleg" #: ../src/ui/dialog/export.cpp:179 msgid "_Export" @@ -16344,7 +16344,7 @@ msgstr "Selecciona tots els elements afectats" #: ../src/ui/dialog/font-substitution.cpp:114 msgid "Don't show this warning again" -msgstr "No mostris més aquest avis" +msgstr "No mostris més aquest avís" #: ../src/ui/dialog/font-substitution.cpp:255 msgid "Font '%1' substituted with '%2'" @@ -16993,7 +16993,7 @@ msgstr "Meetei mayek" #: ../src/ui/dialog/glyphs.cpp:286 msgid "Hangul Syllables" -msgstr "Síl·libes Hangul" +msgstr "Síl·labes Hangul" #: ../src/ui/dialog/glyphs.cpp:287 msgid "Hangul Jamo Extended-B" @@ -17210,7 +17210,7 @@ msgstr "Ampliat:" #: ../src/ui/dialog/icon-preview.cpp:240 msgid "Actual Size:" -msgstr "Mida actual:" +msgstr "Mida real:" #: ../src/ui/dialog/icon-preview.cpp:245 msgctxt "Icon preview window" @@ -17265,7 +17265,7 @@ msgstr "cops per l'amplada de traç actual" #: ../src/ui/dialog/inkscape-preferences.cpp:205 msgid "Size of dots created with Ctrl+click (relative to current stroke width)" msgstr "" -"Mida del punts creats amb Ctrl+clic (relativa a l'amplada de traç actual)" +"Mida dels punts creats amb Ctrl+clic (relativa a l'amplada de traç actual)" #: ../src/ui/dialog/inkscape-preferences.cpp:220 msgid "No objects selected to take the style from." @@ -18868,7 +18868,7 @@ msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" -"El perfil ICC que s'ha de usar per calibrar la sortida de la pantalla.\n" +"El perfil ICC que s'ha d'usar per calibrar la sortida de la pantalla.\n" "Directoris on s'ha buscat:%s" #: ../src/ui/dialog/inkscape-preferences.cpp:971 @@ -19100,7 +19100,7 @@ msgstr "Acoloreix els marcadors personalitzats del mateix color que l'objecte" #: ../src/ui/dialog/inkscape-preferences.cpp:1146 #: ../src/ui/dialog/inkscape-preferences.cpp:1356 msgid "Update marker color when object color changes" -msgstr "Actualitza el color del marcador quan canvii el color de l'objecte" +msgstr "Actualitza el color del marcador quan canviï el color de l'objecte" #. Selecting options #: ../src/ui/dialog/inkscape-preferences.cpp:1149 @@ -19580,7 +19580,7 @@ msgid "" "(possibly in groups), relink the duplicated clone to the duplicated original " "instead of the old original" msgstr "" -"En duplicar una selecció que conté tan el clon com l'original (cosa possible " +"En duplicar una selecció que conté tant el clon com l'original (cosa possible " "amb grups), torna a enllaçar el clon duplicat amb l'original duplicat en " "comptes de fer-ho amb l'original antic" @@ -19672,7 +19672,7 @@ msgid "" "Stroke color same as object, fill color either object fill color or marker " "fill color" msgstr "" -"Color de contorn igual que el objecte; color d'emplenat, color d'emplenat de " +"Color de contorn igual que l'objecte; color d'emplenat, color d'emplenat de " "l'objecte o bé color d'emplenat del marcador" #: ../src/ui/dialog/inkscape-preferences.cpp:1358 @@ -22525,7 +22525,7 @@ msgid "" "Shift+Ctrl: snap rotation angle to %g° increments and rotate both " "handles" msgstr "" -"Maj+Ctrl: ajusta l'angle de rotació amb increments de %gº i gira les " +"Maj+Ctrl: ajusta l'angle de rotació amb increments de %g° i gira les " "dues nanses" #: ../src/ui/tool/node.cpp:528 @@ -22538,7 +22538,7 @@ msgstr "Ctrl: Mou la nansa per les seves passes reals en l'efecte viu BSp msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" -"Ctrl: ajusta l'angle de rotació amb increments de %gº, clica per " +"Ctrl: ajusta l'angle de rotació amb increments de %g°, clica per " "rectificar" #: ../src/ui/tool/node.cpp:536 @@ -22793,13 +22793,13 @@ msgstr "" #, c-format msgctxt "Transform handle tip" msgid "Skew horizontally by %.2f°" -msgstr "Inclina horitzontalment %.2fº" +msgstr "Inclina horitzontalment %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:597 #, c-format msgctxt "Transform handle tip" msgid "Skew vertically by %.2f°" -msgstr "Inclina verticalment %.2fº" +msgstr "Inclina verticalment %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:656 msgctxt "Transform handle tip" @@ -24499,11 +24499,11 @@ msgstr "mit." #: ../src/ui/widget/selected-style.cpp:246 msgid "Fill is averaged over selected objects" -msgstr "L'emplenat és una mitja dels objectes seleccionats" +msgstr "L'emplenat és una mitjana dels objectes seleccionats" #: ../src/ui/widget/selected-style.cpp:246 msgid "Stroke is averaged over selected objects" -msgstr "El traç és una mitja dels objectes seleccionats" +msgstr "El traç és una mitjana dels objectes seleccionats" #. TRANSLATOR COMMENT: M means "Multiple" #: ../src/ui/widget/selected-style.cpp:249 @@ -24630,7 +24630,7 @@ msgstr "Amplada del traç: %.5g%s%s" #: ../src/ui/widget/selected-style.cpp:1162 msgid " (averaged)" -msgstr " (mitja)" +msgstr " (mitjana)" #: ../src/ui/widget/selected-style.cpp:1188 msgid "0 (transparent)" @@ -25925,7 +25925,7 @@ msgstr "B_loca o desbloca la capa actual" #: ../src/verbs.cpp:2682 msgid "Toggle lock on current layer" -msgstr "Commuta boqueig a la capa actual" +msgstr "Commuta el boqueig a la capa actual" #: ../src/verbs.cpp:2683 msgid "_Show/hide Current Layer" @@ -25938,7 +25938,7 @@ msgstr "Commuta la visibilitat de la capa actual" #. Object #: ../src/verbs.cpp:2687 msgid "Rotate _90° CW" -msgstr "Gira _90º en sentit horari" +msgstr "Gira _90° en sentit horari" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. @@ -25948,7 +25948,7 @@ msgstr "Gira la selecció 90° en sentit horari" #: ../src/verbs.cpp:2691 msgid "Rotate 9_0° CCW" -msgstr "Gira 9_0º en sentit antihorari" +msgstr "Gira 9_0° en sentit antihorari" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. @@ -26928,7 +26928,7 @@ msgstr "Editor de tipografia SVG..." #: ../src/verbs.cpp:2949 msgid "Edit SVG fonts" -msgstr "Edita els tipografia SVG" +msgstr "Edita les tipografies SVG" #: ../src/verbs.cpp:2950 msgid "Print Colors..." @@ -28523,7 +28523,7 @@ msgstr "" msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -"L'emplenat és solid excepte si el subcamí va en sentit oposat (regla: " +"L'emplenat és sòlid excepte si el subcamí va en sentit oposat (regla: " "nonzero)" #: ../src/widgets/paint-selector.cpp:600 @@ -28797,7 +28797,7 @@ msgstr "Menor" #: ../src/widgets/ruler.cpp:210 msgid "Lower limit of ruler" -msgstr "Limit menor del regle" +msgstr "Límit menor del regle" #: ../src/widgets/ruler.cpp:219 msgid "Upper" @@ -28805,7 +28805,7 @@ msgstr "Superior" #: ../src/widgets/ruler.cpp:220 msgid "Upper limit of ruler" -msgstr "Limit superior del regle" +msgstr "Límit superior del regle" #: ../src/widgets/ruler.cpp:230 msgid "Position of mark on the ruler" @@ -30012,7 +30012,7 @@ msgstr "Línia base del text" #: ../src/widgets/toolbox.cpp:1806 msgid "Snap text anchors and baselines" -msgstr "Ajusta les ancores del text i les línies base" +msgstr "Ajusta les àncores del text i les línies base" #: ../src/widgets/toolbox.cpp:1816 msgid "Page border" @@ -30141,7 +30141,7 @@ msgstr "Mode atrau/repel" #: ../src/widgets/tweak-toolbar.cpp:220 msgid "Attract parts of paths towards cursor; with Shift from cursor" -msgstr "Atrau els camins cap al cursor o bé els repel amb la tecla Majúscules" +msgstr "Atrau els camins cap al cursor o bé els repel·leix amb la tecla Majúscules" #: ../src/widgets/tweak-toolbar.cpp:226 msgid "Roughen mode" @@ -30618,7 +30618,7 @@ msgstr "" #: ../share/extensions/gcodetools.py:6110 msgid "Lathe X and Z axis remap should be the same. Exiting..." msgstr "" -"Els eixos de gir X i Z reassignats haurien de ser el mateixos. S'està " +"Els eixos de gir X i Z reassignats haurien de ser els mateixos. S'està " "sortint..." #: ../share/extensions/gcodetools.py:6662 @@ -30698,7 +30698,7 @@ msgid "" "The HPGL data contained unknown (unsupported) commands, there is a " "possibility that the drawing is missing some content." msgstr "" -"Les dades HPGL contenen comandaments desconeguts (sense suport), hi ha una " +"Les dades HPGL contenen ordres desconegudes (sense suport), hi ha una " "possibilitat que el dibuix hagi perdut una part del contingut." #. issue error if no paths found @@ -30719,7 +30719,7 @@ msgid "" "Technical details:\n" "%s" msgstr "" -"El fantàstic emulador lxml per libxml2 es necessari per a inkex.py. " +"El fantàstic emulador lxml per libxml2 és necessari per a inkex.py. " "Baixeu-vos i instal·leu-vos l'última versió de lxml de " "http://cheeseshop.python.org/pypi/lxml/, o bé feu-ho a través del gestor de " "paquets des de la línia d'ordres: sudo apt-get install python-lxml\n" @@ -30870,7 +30870,7 @@ msgstr "" #: ../share/extensions/jessyInk_summary.py:123 msgid "{0}\t\"{1}\" (object id \"{2}\") will be replaced by \"{3}\"." -msgstr "{0}\t\"{1}\" (l'object amb id \"{2}\") serà reemplaçat per \"{3}\"." +msgstr "{0}\t\"{1}\" (l'objecte amb id \"{2}\") serà reemplaçat per \"{3}\"." #: ../share/extensions/jessyInk_summary.py:168 msgid "" @@ -30979,7 +30979,7 @@ msgid "" "Please choose a larger object or set 'Space between copies' > 0" msgstr "" "La longitud total del patró és massa petita: \n" -"Trieu un objecte major o configureu «Espai entre copies» > 0" +"Trieu un objecte major o configureu «Espai entre còpies» > 0" #: ../share/extensions/pathalongpath.py:277 msgid "" @@ -31181,7 +31181,7 @@ msgstr "Introduïu una tipografia substituta a la caixa." #: ../share/extensions/replace_font.py:253 msgid "Please enter a replacement font in the replace all box." -msgstr "Introduïu un tipografia substituta a totes les caixes." +msgstr "Introduïu una tipografia substituta a totes les caixes." #: ../share/extensions/summersnight.py:44 msgid "" @@ -31235,7 +31235,7 @@ msgstr "Oops... L'element \"%s\" no és a la capa web lliscadora" #: ../share/extensions/webslicer_export.py:57 msgid "You must give a directory to export the slices." -msgstr "Cal que doneu un directori per exportar el fragments." +msgstr "Cal que doneu un directori per exportar els fragments." #: ../share/extensions/webslicer_export.py:69 #, python-format @@ -31433,9 +31433,9 @@ msgstr "" "Ajusta el to, la saturació, i la brillantor de la representació HSL dels " "objectes en color.\n" "Opcions:\n" -" * To: gir en graus (dona voltes).\n" -" * Saturació: afegeix/treu % (min=-100, màx=100).\n" -" * Brillantor: afegeix/treu % (min=-100, màx=100).\n" +" * To: gir en graus (dóna voltes).\n" +" * Saturació: afegeix/treu % (mín=-100, màx=100).\n" +" * Brillantor: afegeix/treu % (mín=-100, màx=100).\n" " * To/Saturació/Brillantor aleatòries: Fes aleatoris el valor dels " "paràmetres.\n" " " @@ -32081,7 +32081,7 @@ msgstr "" "- El paràmetre unitat base especifica en quina unitat de les coordenades està " "la sortida (96 px = 1 in).\n" "- Tipus d'elements suportats\n" -" - Camins ( línies i splines)\n" +" - Camins (línies i splines)\n" " - Rectangles\n" " - Clons (la referència creuada amb l'original s'ha perdut)\n" "- L'opció de sortida spline ROBO-Master només es pot llegir correctament amb " @@ -32284,7 +32284,7 @@ msgid "" "home directory." msgstr "" "* No escriviu l'extensió del fitxer, ja s'afegirà automàticament.\n" -"* El camí relatius (o noms de fitxers sense camí) són relatius a la " +"* El camí relatiu (o noms de fitxers sense camí) són relatius a la " "carpeta de l'usuari." #: ../share/extensions/extrude.inx.h:3 @@ -32389,7 +32389,7 @@ msgstr "Empra coordenades polars" msgid "" "When set, Isotropic scaling uses smallest of width/xrange or height/yrange" msgstr "" -"Quan està configurat , l'escalat isotròpic empra el mínim entre amplada/rangX " +"Quan està configurat, l'escalat isotròpic empra el mínim entre amplada/rangX " "o alçada/rangY" #: ../share/extensions/funcplot.inx.h:12 @@ -32524,10 +32524,10 @@ msgstr "" "El connector Gcodetools: converteix els camins a Gcode (usant interpolació " "circular), fa desplaçament de camins i grava cantons afilats usant talladors " "de con. Aquest connector calcula Gcode per als camins mitjançant la " -"interpolació circular o moviment lineal quan sigui necessari. El tutorials, " -"manuals i suport es poden trobar al fòrum de suport de anglès: " -"http://www.cnc-club.ru/gcodetools i al fòrum de suport de Rússia: " -"http://www.cnc-club.ru/gcodetoolsru Credits: Nick Drobchenko, Vladimir " +"interpolació circular o moviment lineal quan sigui necessari. Els tutorials, " +"manuals i suport es poden trobar al fòrum de suport en anglès: " +"http://www.cnc-club.ru/gcodetools i al fòrum de suport en rus: " +"http://www.cnc-club.ru/gcodetoolsru Crèdits: Nick Drobchenko, Vladimir " "Kalyaev, John Brooker, Henry Nicolas, Chris Lusby Taylor. Gcodetools ver. 1.7" #: ../share/extensions/gcodetools_about.inx.h:5 @@ -32625,7 +32625,7 @@ msgid "" "+Ctrl+G) 3. Press Apply Suspected small objects will be marked out by " "colored arrows." msgstr "" -"Ús: 1. Seleccioneu totes les desplaçaments d'àrea (traços grisos) 2. Objecte " +"Ús: 1. Seleccioneu totes els desplaçaments d'àrea (traços grisos) 2. Objecte " "/ Desagrupa (Maj+ Ctrl + G) 3. Feu clic a Aplica, els objectes petits es " "marcaran amb fletxes de colors." @@ -32875,7 +32875,7 @@ msgstr "Capgira l'eix «Y» i parametritza Gcode " #: ../share/extensions/gcodetools_lathe.inx.h:44 #: ../share/extensions/gcodetools_path_to_gcode.inx.h:33 msgid "Round all values to 4 digits" -msgstr "Arredoneix tots el valors a 4 dígits" +msgstr "Arredoneix tots els valors a 4 dígits" #: ../share/extensions/gcodetools_area.inx.h:52 #: ../share/extensions/gcodetools_dxf_points.inx.h:24 @@ -33054,7 +33054,7 @@ msgstr "" "(desplaçament, escala, mirall, rotació en el pla XY) del camí. Mode 3 punts " "només: no poseu els tres punts en una sola línia (utilitzeu el mode 2 punts " "en el seu lloc). Podeu modificar després els valors de la superfície Z, la " -"profunditat Z utilitzant l'eina de text (3ra coordenada). Si no hi ha punts " +"profunditat Z utilitzant l'eina de text (3a coordenada). Si no hi ha punts " "dins de la capa actual es prenen de la capa superior. No desagrupeu els punts " "d'orientació! Podeu seleccionar usant doble clic per entrar el grup o amb " "Ctrl + Clic. Ara premeu s'aplicarà per crear punts de control (conjunt " @@ -33118,7 +33118,7 @@ msgstr "Prepara el camí per al plasma" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:2 msgid "Prepare path for plasma or laser cuters" -msgstr "Prepara el camí per al plasma el cúter laser" +msgstr "Prepara el camí per al plasma el làser cúter" #: ../share/extensions/gcodetools_prepare_path_for_plasma.inx.h:3 msgid "Create in-out paths" @@ -33253,7 +33253,7 @@ msgstr "" "\n" "Si la vora és zero, el patró serà discontinu als cantons. Utilitzeu una vora " "positiva, preferiblement més gran que la mida de cel·la, per produir una unió " -"suau del patró als cantons. Utilitzeu una vora negatiu per reduir la mida del " +"suau del patró als cantons. Utilitzeu una vora negativa per reduir la mida del " "patró i obtenir una vora buida." #: ../share/extensions/gimp_xcf.inx.h:1 @@ -33779,7 +33779,7 @@ msgstr "" "Aquesta extensió renderitza una línia de text usant\n" "tipus de lletra\"Hershey\" per a impressores, derivats de \n" "NBS SP-424 1976-04, \"Una contribució a \n" -"les tècniques d'escritura per ordinador: Taules de \n" +"les tècniques d'escriptura per ordinador: Taules de \n" "coordenades pel repertori Hershey's Repertory dels\n" "tipus de lletra occidentals i dels símbols gràfics.\"\n" "\n" @@ -33919,7 +33919,7 @@ msgstr "Gira en sentit horari:" #: ../share/extensions/hpgl_output.inx.h:15 #: ../share/extensions/plotter.inx.h:34 msgid "Rotation of the drawing (Default: 0°)" -msgstr "Gir del dibuix (Per defecte: 0º)" +msgstr "Gir del dibuix (Per defecte: 0°)" #: ../share/extensions/hpgl_output.inx.h:16 #: ../share/extensions/plotter.inx.h:35 @@ -35017,7 +35017,7 @@ msgstr "Orientació del text: " #: ../share/extensions/measure.inx.h:5 msgid "Angle [with Fixed Angle option only] (°):" -msgstr "Angle [només amb l'opció d'angle fixat] (º):" +msgstr "Angle [només amb l'opció d'angle fixat] (°):" #: ../share/extensions/measure.inx.h:6 msgid "Font size (px):" @@ -35485,7 +35485,7 @@ msgstr "" #: ../share/extensions/plotter.inx.h:21 msgid "Parallel (LPT) connections are not supported." -msgstr "No es suporten les connexions paral·lel (LPT)." +msgstr "No se suporten les connexions paral·lel (LPT)." #: ../share/extensions/plotter.inx.h:32 msgid "" @@ -35499,7 +35499,7 @@ msgstr "" #: ../share/extensions/plotter.inx.h:33 msgid "Rotation (°, clockwise):" -msgstr "Gira en sentit horari(º):" +msgstr "Gira en sentit horari(°):" #: ../share/extensions/plotter.inx.h:52 msgid "Show debug information" @@ -35532,7 +35532,7 @@ msgstr "Sortida d'AutoCAD Plot" #: ../share/extensions/plt_output.inx.h:3 msgid "Save a file for plotters" -msgstr "Desa un fitxer per a plóters" +msgstr "Desa un fitxer per a plòters" #: ../share/extensions/polyhedron_3d.inx.h:1 msgid "3D Polyhedron" @@ -35932,7 +35932,7 @@ msgstr "Pas (mida entre dents):" #: ../share/extensions/render_gears.inx.h:4 msgid "Pressure angle (degrees):" -msgstr "Angle de pressió (º):" +msgstr "Angle de pressió (°):" #: ../share/extensions/render_gears.inx.h:5 msgid "Diameter of center hole (0 for none):" @@ -36206,7 +36206,7 @@ msgid "" "level." msgstr "" "Aquesta extensió optimitza el fitxer SVG d'acord a les següents opcions:\n" -" * Escurça els nom de color: Converteix tots els colors a format #RRGGBB " +" * Escurça els noms de colors: Converteix tots els colors a format #RRGGBB " "o #RGB.\n" " * Converteix els atributs CSS a XML: converteix els estils des de les " "etiquetes d'estils i declaracions d'estil interior=\"\" a atributs XML.\n" @@ -36247,7 +36247,7 @@ msgstr "" "més curt a l'element més referenciat. Per exemple, #linearGradient5621, " "referenciat 100 cops, es pot convertir en #a.\n" " * Preserva els noms ID creats manualment que no s'acabin amb dígits: en " -"general, la sortida SVG optimitzada el suprimeix, però si es necessari per " +"general, la sortida SVG optimitzada el suprimeix, però si és necessari per " "referències (p.e. #middledot), podeu usar aquesta opció.\n" " * Preserva aquests noms ID, separats amb coma: podeu usar-ho junt amb " "les altres opcions de preservació si voleu preservar més noms ID " @@ -36659,7 +36659,7 @@ msgid "" "Each layer split into it's own svg file and collected as a tape archive (tar " "file)" msgstr "" -"Cada capa divideix el seu propi fitxer svg i el colecta com un sol fitxer " +"Cada capa divideix el seu propi fitxer svg i el recull com un sol fitxer " "(fitxer tar)" #: ../share/extensions/text_braille.inx.h:1 diff --git a/po/de.po b/po/de.po index ce41974c4..15d76defe 100644 --- a/po/de.po +++ b/po/de.po @@ -14,21 +14,21 @@ # Alexander Senger , 2009. # Benjamin Weis , 2014. # Heiko Wöhrle , 2014. +# Eduard Braun , 2015. # msgid "" msgstr "" "Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-01-25 08:39+0100\n" -"PO-Revision-Date: 2015-01-05 09:36+0100\n" -"Last-Translator: Heiko Wöhrle \n" +"POT-Creation-Date: 2015-03-10 09:10+0100\n" +"PO-Revision-Date: 2015-04-21 02:20+0200\n" +"Last-Translator: Eduard Braun \n" "Language-Team: \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.7.1\n" "X-Poedit-Basepath: .\n" "X-Poedit-SourceCharset: utf-8\n" "X-Language: de_DE\n" @@ -1034,7 +1034,7 @@ msgstr "Dreidimensional verkrümmte, faserige Holztextur" #: ../share/filters/filters.svg.h:402 msgid "3D Mother of Pearl" -msgstr "3D Mutter der Perlen" +msgstr "3D Perlmutt" #: ../share/filters/filters.svg.h:404 msgid "3D warped, iridescent pearly shell texture" @@ -1060,26 +1060,27 @@ msgstr "Schwarzlicht" #: ../src/extension/internal/filter/bumps.h:101 #: ../src/extension/internal/filter/bumps.h:321 #: ../src/extension/internal/filter/bumps.h:328 -#: ../src/extension/internal/filter/color.h:82 -#: ../src/extension/internal/filter/color.h:164 -#: ../src/extension/internal/filter/color.h:171 -#: ../src/extension/internal/filter/color.h:262 -#: ../src/extension/internal/filter/color.h:340 -#: ../src/extension/internal/filter/color.h:347 -#: ../src/extension/internal/filter/color.h:437 -#: ../src/extension/internal/filter/color.h:532 -#: ../src/extension/internal/filter/color.h:654 -#: ../src/extension/internal/filter/color.h:751 -#: ../src/extension/internal/filter/color.h:830 -#: ../src/extension/internal/filter/color.h:921 -#: ../src/extension/internal/filter/color.h:1049 -#: ../src/extension/internal/filter/color.h:1119 -#: ../src/extension/internal/filter/color.h:1212 -#: ../src/extension/internal/filter/color.h:1324 -#: ../src/extension/internal/filter/color.h:1429 -#: ../src/extension/internal/filter/color.h:1505 -#: ../src/extension/internal/filter/color.h:1609 -#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/color.h:83 +#: ../src/extension/internal/filter/color.h:165 +#: ../src/extension/internal/filter/color.h:172 +#: ../src/extension/internal/filter/color.h:283 +#: ../src/extension/internal/filter/color.h:337 +#: ../src/extension/internal/filter/color.h:415 +#: ../src/extension/internal/filter/color.h:422 +#: ../src/extension/internal/filter/color.h:512 +#: ../src/extension/internal/filter/color.h:607 +#: ../src/extension/internal/filter/color.h:729 +#: ../src/extension/internal/filter/color.h:826 +#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:996 +#: ../src/extension/internal/filter/color.h:1124 +#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1287 +#: ../src/extension/internal/filter/color.h:1399 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1580 +#: ../src/extension/internal/filter/color.h:1684 +#: ../src/extension/internal/filter/color.h:1691 #: ../src/extension/internal/filter/morphology.h:194 #: ../src/extension/internal/filter/overlays.h:73 #: ../src/extension/internal/filter/paint.h:99 @@ -1089,7 +1090,7 @@ msgstr "Schwarzlicht" #: ../src/extension/internal/filter/transparency.h:345 #: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:830 #: ../src/ui/dialog/clonetiler.cpp:981 -#: ../src/ui/dialog/document-properties.cpp:157 +#: ../src/ui/dialog/document-properties.cpp:164 #: ../share/extensions/color_HSL_adjust.inx.h:20 #: ../share/extensions/color_blackandwhite.inx.h:3 #: ../share/extensions/color_brighter.inx.h:2 @@ -3933,14 +3934,13 @@ msgstr "Sortieren" #: ../share/symbols/symbols.h:161 msgctxt "Symbol" msgid "Connector" -msgstr "Verbinder" +msgstr "Objektverbinder" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:162 -#, fuzzy msgctxt "Symbol" msgid "Off-Page Connector" -msgstr "Objektverbinder" +msgstr "Seitenübergreifender Objektverbinder" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:163 @@ -4238,17 +4238,15 @@ msgstr "Hafen" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:239 ../share/symbols/symbols.h:240 -#, fuzzy msgctxt "Symbol" msgid "Motorbike Trail" -msgstr "Schneemobilweg" +msgstr "Motorradstrecke" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:241 ../share/symbols/symbols.h:242 -#, fuzzy msgctxt "Symbol" msgid "Radiator Water" -msgstr "Sättigung" +msgstr "Kühlwasser" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:243 ../share/symbols/symbols.h:244 @@ -4386,12 +4384,11 @@ msgstr "Windsurfen" #: ../share/symbols/symbols.h:291 msgctxt "Symbol" msgid "Blank" -msgstr "" +msgstr "Leer" #: ../share/templates/templates.h:1 -#, fuzzy msgid "CD Label 120mmx120mm " -msgstr "CD-Beschriftung 120x120 " +msgstr "CD Etikett 120mm×120mm " #: ../share/templates/templates.h:1 msgid "Simple CD Label template with disc's pattern." @@ -4422,9 +4419,8 @@ msgid "LaTeX beamer template with helping grid." msgstr "LaTeX Beamervorlage mit Hilfsgitter." #: ../share/templates/templates.h:1 -#, fuzzy msgid "LaTex LaTeX latex grid beamer" -msgstr "LaTex LaTeX latex Gitter Projektion" +msgstr "LaTex LaTeX latex Gitter Beamer" #: ../share/templates/templates.h:1 msgid "Typography Canvas" @@ -4439,22 +4435,22 @@ msgid "guidelines typography canvas" msgstr "Leitfaden Typografiearbeitsfläche" #. 3D box -#: ../src/box3d.cpp:260 ../src/box3d.cpp:1314 +#: ../src/box3d.cpp:250 ../src/box3d.cpp:1304 #: ../src/ui/dialog/inkscape-preferences.cpp:407 msgid "3D Box" msgstr "3D-Box" -#: ../src/color-profile.cpp:853 +#: ../src/color-profile.cpp:842 #, c-format msgid "Color profiles directory (%s) is unavailable." msgstr "Farbprofilverzeichnis (%s) ist nicht verfügbar." -#: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 +#: ../src/color-profile.cpp:901 ../src/color-profile.cpp:918 msgid "(invalid UTF-8 string)" msgstr "(ungültiger UTF-8 string)" # CHECK -#: ../src/color-profile.cpp:914 +#: ../src/color-profile.cpp:903 msgctxt "Profile name" msgid "None" msgstr "Kein" @@ -4471,23 +4467,23 @@ msgstr "" "Aktuelle Ebene ist gesperrt. Entsperren Sie sie, um darauf zu " "zeichnen." -#: ../src/desktop-events.cpp:236 +#: ../src/desktop-events.cpp:242 msgid "Create guide" msgstr "Hilfslinien erstellen" -#: ../src/desktop-events.cpp:492 +#: ../src/desktop-events.cpp:498 msgid "Move guide" -msgstr "Führungslinie verschieben" +msgstr "Hilfslinie verschieben" -#: ../src/desktop-events.cpp:499 ../src/desktop-events.cpp:557 +#: ../src/desktop-events.cpp:505 ../src/desktop-events.cpp:563 #: ../src/ui/dialog/guides.cpp:138 msgid "Delete guide" -msgstr "Führungslinie löschen" +msgstr "Hilfslinie löschen" -#: ../src/desktop-events.cpp:537 +#: ../src/desktop-events.cpp:543 #, c-format msgid "Guideline: %s" -msgstr "Führungslinie: %s" +msgstr "Hilfslinie: %s" #: ../src/desktop.cpp:873 msgid "No previous zoom." @@ -4497,92 +4493,92 @@ msgstr "Kein vorheriger Zoomfaktor." msgid "No next zoom." msgstr "Kein nächster Zoomfaktor." -#: ../src/display/canvas-axonomgrid.cpp:353 ../src/display/canvas-grid.cpp:693 +#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 msgid "Grid _units:" msgstr "Gitter-Raster_einheiten:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 msgid "_Origin X:" msgstr "_Ursprung X:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 #: ../src/ui/dialog/inkscape-preferences.cpp:746 #: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "X coordinate of grid origin" msgstr "X-Koordinate des Gitterursprungs" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 msgid "O_rigin Y:" msgstr "U_rsprung Y:" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 #: ../src/ui/dialog/inkscape-preferences.cpp:747 #: ../src/ui/dialog/inkscape-preferences.cpp:772 msgid "Y coordinate of grid origin" msgstr "Y-Koordinate des Gitterursprungs" -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:704 +#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 msgid "Spacing _Y:" msgstr "Abstand _Y:" -#: ../src/display/canvas-axonomgrid.cpp:361 +#: ../src/display/canvas-axonomgrid.cpp:369 #: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Base length of z-axis" msgstr "Basislänge der Z-Achse" -#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/display/canvas-axonomgrid.cpp:372 #: ../src/ui/dialog/inkscape-preferences.cpp:778 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Winkel X:" -#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/display/canvas-axonomgrid.cpp:372 #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "Winkel der X-Achse" -#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/display/canvas-axonomgrid.cpp:374 #: ../src/ui/dialog/inkscape-preferences.cpp:779 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Winkel Z:" -#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/display/canvas-axonomgrid.cpp:374 #: ../src/ui/dialog/inkscape-preferences.cpp:779 msgid "Angle of z-axis" msgstr "Winkel der Z-Achse" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 msgid "Minor grid line _color:" msgstr "Nebengitter-Linienfarbe:" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 #: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Minor grid line color" msgstr "Nebengitter-Linienfarbe:" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 msgid "Color of the minor grid lines" msgstr "Farbe der Nebengitterlinien" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 msgid "Ma_jor grid line color:" msgstr "Farbe der _dicken Gitterlinien:" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 #: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Major grid line color" msgstr "Farbe der dicken Gitterlinien" -#: ../src/display/canvas-axonomgrid.cpp:376 ../src/display/canvas-grid.cpp:715 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "Color of the major (highlighted) grid lines" msgstr "Farbe der dicken (hervorgehobenen) Gitterlinien" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 msgid "_Major grid line every:" msgstr "D_icke Gitterlinien alle:" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 msgid "lines" msgstr "Linien" @@ -4634,25 +4630,25 @@ msgstr "" "Legt fest, ob das Raster angezeigt werden soll. Objekte rasten auch an " "unsichtbaren Gittern ein." -#: ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-grid.cpp:709 msgid "Spacing _X:" msgstr "Abstand _X:" -#: ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-grid.cpp:709 #: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "Distance between vertical grid lines" msgstr "Abstand der vertikalen Gitterlinien" -#: ../src/display/canvas-grid.cpp:704 +#: ../src/display/canvas-grid.cpp:712 #: ../src/ui/dialog/inkscape-preferences.cpp:753 msgid "Distance between horizontal grid lines" msgstr "Abstand der horizontalen Gitterlinien" -#: ../src/display/canvas-grid.cpp:736 +#: ../src/display/canvas-grid.cpp:744 msgid "_Show dots instead of lines" msgstr "Zeige Punkte anstatt Linien" -#: ../src/display/canvas-grid.cpp:737 +#: ../src/display/canvas-grid.cpp:745 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "Wenn gesetzt, Punkte an Gitterpunkten anstelle Gitterlinien verwenden" @@ -4676,7 +4672,7 @@ msgstr "Gitterlinie (Senkrechte)" #: ../src/display/snap-indicator.cpp:88 msgid "guide" -msgstr "Führungslinie" +msgstr "Hilfslinie" #: ../src/display/snap-indicator.cpp:91 msgid "guide intersection" @@ -4684,15 +4680,15 @@ msgstr "Gitter-Überschneidung" #: ../src/display/snap-indicator.cpp:94 msgid "guide origin" -msgstr "Führungslinienursprung" +msgstr "Hilfslinienursprung" #: ../src/display/snap-indicator.cpp:97 msgid "guide (perpendicular)" -msgstr "Führungslinie (Senkrechte)" +msgstr "Hilfslinie (Senkrechte)" #: ../src/display/snap-indicator.cpp:100 msgid "grid-guide intersection" -msgstr "Gitter-Führungslinien-Überschneidung" +msgstr "Gitter-Hilfslinien-Überschneidung" #: ../src/display/snap-indicator.cpp:103 msgid "cusp node" @@ -4720,7 +4716,7 @@ msgstr "Pfadüberschneidung" #: ../src/display/snap-indicator.cpp:121 msgid "guide-path intersection" -msgstr "Führungslinie-Pfad-Überschneidung" +msgstr "Hilfslinie-Pfad-Überschneidung" #: ../src/display/snap-indicator.cpp:124 msgid "clip-path" @@ -4832,11 +4828,11 @@ msgstr "Pfadüberschneidung" #: ../src/display/snap-indicator.cpp:218 msgid "Guide" -msgstr "Führungslinien" +msgstr "Hilfslinien" #: ../src/display/snap-indicator.cpp:221 msgid "Guide origin" -msgstr "Führungslinienursprung" +msgstr "Hilfslinienursprung" #: ../src/display/snap-indicator.cpp:224 msgid "Convex hull corner" @@ -4876,7 +4872,7 @@ msgstr "Dokument im Speicher %d" msgid "Memory document %1" msgstr "Dokument im Speicher %1" -#: ../src/document.cpp:839 +#: ../src/document.cpp:855 #, c-format msgid "Unnamed document %d" msgstr "Unbenanntes Dokument %d" @@ -4947,7 +4943,7 @@ msgstr "Dialog beim Starten des Programmes anzeigen" #: ../src/extension/execution-env.cpp:144 #, c-format msgid "'%s' working, please wait..." -msgstr "»%s« arbeitet, bitte warten..." +msgstr "„%s“ arbeitet, bitte warten..." #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; @@ -4987,16 +4983,16 @@ msgstr "eine Abhängigkeit nicht aufgelöst werden konnte." #: ../src/extension/extension.cpp:325 msgid "Extension \"" -msgstr "Erweiterung »" +msgstr "Erweiterung „" #: ../src/extension/extension.cpp:325 msgid "\" failed to load because " -msgstr "«: Laden fehlgeschlagen, da " +msgstr "“: Laden fehlgeschlagen, da " #: ../src/extension/extension.cpp:674 #, c-format msgid "Could not create extension error log file '%s'" -msgstr "Fehlerprotokolldatei »%s« konnte nicht erweitert oder erzeugt werden." +msgstr "Fehlerprotokolldatei „%s“ konnte nicht erweitert oder erzeugt werden." #: ../src/extension/extension.cpp:782 #: ../share/extensions/webslicer_create_rect.inx.h:2 @@ -5138,9 +5134,9 @@ msgstr "Rauschen hinzufügen" #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); #: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/color.h:501 +#: ../src/extension/internal/filter/color.h:1572 +#: ../src/extension/internal/filter/color.h:1660 #: ../src/extension/internal/filter/distort.h:69 #: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 #: ../src/ui/dialog/filter-effects-dialog.cpp:2842 @@ -5279,7 +5275,7 @@ msgid "Apply charcoal stylization to selected bitmap(s)" msgstr "Kohlezeichnungseffekt auf Bitmap(s) anwenden" #: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 +#: ../src/extension/internal/filter/color.h:392 msgid "Colorize" msgstr "Einfärben" @@ -5288,7 +5284,7 @@ msgid "Colorize selected bitmap(s) with specified color, using given opacity" msgstr "Färbt ausgewählte Bitmap(s) mit gegebener Farbe und Deckkraft ein." #: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 +#: ../src/extension/internal/filter/color.h:1189 msgid "Contrast" msgstr "Kontrast" @@ -5323,9 +5319,8 @@ msgid "Right (px):" msgstr "Rechts (px):" #: ../src/extension/internal/bitmap/crop.cpp:77 -#, fuzzy msgid "Crop selected bitmap(s)" -msgstr "Gewählte Bitmaps schneiden" +msgstr "Gewählte(s) Rastergrafik(en) beschneiden" #: ../src/extension/internal/bitmap/cycleColormap.cpp:37 msgid "Cycle Colormap" @@ -5408,7 +5403,7 @@ msgid "Implode selected bitmap(s)" msgstr "Implodiert ausgewählte Bitmaps." #: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/color.h:817 #: ../src/extension/internal/filter/image.h:56 #: ../src/extension/internal/filter/morphology.h:66 #: ../src/extension/internal/filter/paint.h:345 @@ -5418,12 +5413,12 @@ msgstr "Ebene" #: ../src/extension/internal/bitmap/level.cpp:43 #: ../src/extension/internal/bitmap/levelChannel.cpp:65 msgid "Black Point:" -msgstr "Schwarzer Punkt" +msgstr "Schwarzpunkt" #: ../src/extension/internal/bitmap/level.cpp:44 #: ../src/extension/internal/bitmap/levelChannel.cpp:66 msgid "White Point:" -msgstr "Weißer Punkt" +msgstr "Weißpunkt" #: ../src/extension/internal/bitmap/level.cpp:45 #: ../src/extension/internal/bitmap/levelChannel.cpp:67 @@ -5443,7 +5438,7 @@ msgid "Level (with Channel)" msgstr "Ebene (mit Kanal)" #: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 +#: ../src/extension/internal/filter/color.h:711 msgid "Channel:" msgstr "Kanal:" @@ -5527,7 +5522,7 @@ msgstr "Deckkraft" #: ../src/extension/internal/bitmap/opacity.cpp:40 #: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/ui/dialog/objects.cpp:1621 ../src/widgets/dropper-toolbar.cpp:83 +#: ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "Deckkraft:" @@ -5602,8 +5597,8 @@ msgid "Sharpen selected bitmap(s)" msgstr "Schärft ausgewählte Bitmap(s)." #: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1569 +#: ../src/extension/internal/filter/color.h:1573 msgid "Solarize" msgstr "Solarisieren" @@ -5702,106 +5697,118 @@ msgid "PostScript" msgstr "Postscript" #: ../src/extension/internal/cairo-ps-out.cpp:329 -#: ../src/extension/internal/cairo-ps-out.cpp:368 +#: ../src/extension/internal/cairo-ps-out.cpp:371 msgid "Restrict to PS level:" -msgstr "Auf PostScript Level einschränken" +msgstr "PostScript Level einschränken" #: ../src/extension/internal/cairo-ps-out.cpp:330 -#: ../src/extension/internal/cairo-ps-out.cpp:369 +#: ../src/extension/internal/cairo-ps-out.cpp:372 msgid "PostScript level 3" msgstr "PostScript Level 3" #: ../src/extension/internal/cairo-ps-out.cpp:331 -#: ../src/extension/internal/cairo-ps-out.cpp:370 +#: ../src/extension/internal/cairo-ps-out.cpp:373 msgid "PostScript level 2" -msgstr "Postscript Level 2" +msgstr "PostScript Level 2" #: ../src/extension/internal/cairo-ps-out.cpp:333 -#: ../src/extension/internal/cairo-ps-out.cpp:372 +#: ../src/extension/internal/cairo-ps-out.cpp:375 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:250 -#: ../src/extension/internal/emf-inout.cpp:3569 -#: ../src/extension/internal/wmf-inout.cpp:3144 -msgid "Convert texts to paths" -msgstr "Texte in Pfade umwandeln" +#, fuzzy +msgid "Text output options:" +msgstr "Textausrichtung" #: ../src/extension/internal/cairo-ps-out.cpp:334 -msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -msgstr "PS+LaTeX: Text in PS weglassen und LaTeX Datei erstellen" +#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 +#, fuzzy +msgid "Embed fonts" +msgstr "Alle Raster einbetten" #: ../src/extension/internal/cairo-ps-out.cpp:335 -#: ../src/extension/internal/cairo-ps-out.cpp:374 +#: ../src/extension/internal/cairo-ps-out.cpp:377 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:252 -msgid "Rasterize filter effects" -msgstr "Filtereffekte in Raster umwandeln" +#, fuzzy +msgid "Convert text to paths" +msgstr "Texte in Pfade umwandeln" #: ../src/extension/internal/cairo-ps-out.cpp:336 -#: ../src/extension/internal/cairo-ps-out.cpp:375 +#: ../src/extension/internal/cairo-ps-out.cpp:378 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:253 +#, fuzzy +msgid "Omit text in PDF and create LaTeX file" +msgstr "PDF+LaTeX: Text in PDF weglassen und LaTeX Datei erstellen" + +#: ../src/extension/internal/cairo-ps-out.cpp:338 +#: ../src/extension/internal/cairo-ps-out.cpp:380 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +msgid "Rasterize filter effects" +msgstr "Filtereffekte in Raster umwandeln" + +#: ../src/extension/internal/cairo-ps-out.cpp:339 +#: ../src/extension/internal/cairo-ps-out.cpp:381 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 msgid "Resolution for rasterization (dpi):" msgstr "Auflösung des Rasters (dpi)" -#: ../src/extension/internal/cairo-ps-out.cpp:337 -#: ../src/extension/internal/cairo-ps-out.cpp:376 +#: ../src/extension/internal/cairo-ps-out.cpp:340 +#: ../src/extension/internal/cairo-ps-out.cpp:382 msgid "Output page size" msgstr "Seitengröße der Ausgabe" -#: ../src/extension/internal/cairo-ps-out.cpp:338 -#: ../src/extension/internal/cairo-ps-out.cpp:377 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:255 +#: ../src/extension/internal/cairo-ps-out.cpp:341 +#: ../src/extension/internal/cairo-ps-out.cpp:383 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 msgid "Use document's page size" msgstr "Seitengröße vom Dokument nutzen" -#: ../src/extension/internal/cairo-ps-out.cpp:339 -#: ../src/extension/internal/cairo-ps-out.cpp:378 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:256 +#: ../src/extension/internal/cairo-ps-out.cpp:342 +#: ../src/extension/internal/cairo-ps-out.cpp:384 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 msgid "Use exported object's size" msgstr "Nutze exportierte Objektgröße" -#: ../src/extension/internal/cairo-ps-out.cpp:341 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 +#: ../src/extension/internal/cairo-ps-out.cpp:344 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 msgid "Bleed/margin (mm):" msgstr "Beschnitt/Umrandung (mm):" -#: ../src/extension/internal/cairo-ps-out.cpp:342 -#: ../src/extension/internal/cairo-ps-out.cpp:381 -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 +#: ../src/extension/internal/cairo-ps-out.cpp:345 +#: ../src/extension/internal/cairo-ps-out.cpp:387 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 msgid "Limit export to the object with ID:" msgstr "Export einschränken auf das Objekt mit ID" -#: ../src/extension/internal/cairo-ps-out.cpp:346 +#: ../src/extension/internal/cairo-ps-out.cpp:349 #: ../share/extensions/ps_input.inx.h:2 msgid "PostScript (*.ps)" msgstr "PostScript (*.ps)" -#: ../src/extension/internal/cairo-ps-out.cpp:347 +#: ../src/extension/internal/cairo-ps-out.cpp:350 msgid "PostScript File" msgstr "Postscript-Datei" -#: ../src/extension/internal/cairo-ps-out.cpp:366 +#: ../src/extension/internal/cairo-ps-out.cpp:369 #: ../share/extensions/eps_input.inx.h:3 msgid "Encapsulated PostScript" msgstr "Encapsulated Postscript" -#: ../src/extension/internal/cairo-ps-out.cpp:373 -msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -msgstr "EPS+LaTeX: Text in EPS weglassen und LaTeX Datei erstellen" - -#: ../src/extension/internal/cairo-ps-out.cpp:380 +#: ../src/extension/internal/cairo-ps-out.cpp:386 msgid "Bleed/margin (mm)" msgstr "Beschnitt/Umrandung (mm)" -#: ../src/extension/internal/cairo-ps-out.cpp:385 +#: ../src/extension/internal/cairo-ps-out.cpp:391 #: ../share/extensions/eps_input.inx.h:2 msgid "Encapsulated PostScript (*.eps)" msgstr "Encapsulated Postscript (*.eps)" -#: ../src/extension/internal/cairo-ps-out.cpp:386 +#: ../src/extension/internal/cairo-ps-out.cpp:392 msgid "Encapsulated PostScript File" msgstr "Encapsulated-Postscript-Datei" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:244 msgid "Restrict to PDF version:" -msgstr "Einschränken auf PDF-Version:" +msgstr "PDF-Version einschränken:" #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:246 msgid "PDF 1.5" @@ -5811,11 +5818,7 @@ msgstr "PDF 1.5" msgid "PDF 1.4" msgstr "PDF 1.4" -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:251 -msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" -msgstr "PDF+LaTeX: Text in PDF weglassen und LaTeX Datei erstellen" - -#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:254 +#: ../src/extension/internal/cairo-renderer-pdf-out.cpp:257 msgid "Output page size:" msgstr "Seitengröße der Ausgabe:" @@ -5889,75 +5892,80 @@ msgid "Open presentation exchange files saved in Corel DRAW" msgstr "" "Öffnen einer Presentation Exchange Datei, die in Corel DRAW gespeichert wurde" -#: ../src/extension/internal/emf-inout.cpp:3553 +#: ../src/extension/internal/emf-inout.cpp:3562 msgid "EMF Input" msgstr "EMF einlesen" -#: ../src/extension/internal/emf-inout.cpp:3558 +#: ../src/extension/internal/emf-inout.cpp:3567 msgid "Enhanced Metafiles (*.emf)" msgstr "Erweiterte Metadateien (*.emf)" # !!! -#: ../src/extension/internal/emf-inout.cpp:3559 +#: ../src/extension/internal/emf-inout.cpp:3568 msgid "Enhanced Metafiles" msgstr "Erweiterte Metadateien" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3576 msgid "EMF Output" msgstr "EMF-Ausgabe" -#: ../src/extension/internal/emf-inout.cpp:3570 -#: ../src/extension/internal/wmf-inout.cpp:3145 +#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/wmf-inout.cpp:3152 +msgid "Convert texts to paths" +msgstr "Texte in Pfade umwandeln" + +#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/wmf-inout.cpp:3153 msgid "Map Unicode to Symbol font" msgstr "Unicode mit Symbol Font verbinden" -#: ../src/extension/internal/emf-inout.cpp:3571 -#: ../src/extension/internal/wmf-inout.cpp:3146 +#: ../src/extension/internal/emf-inout.cpp:3580 +#: ../src/extension/internal/wmf-inout.cpp:3154 msgid "Map Unicode to Wingdings" msgstr "Unicode mit Wingdings Font verbinden" -#: ../src/extension/internal/emf-inout.cpp:3572 -#: ../src/extension/internal/wmf-inout.cpp:3147 +#: ../src/extension/internal/emf-inout.cpp:3581 +#: ../src/extension/internal/wmf-inout.cpp:3155 msgid "Map Unicode to Zapf Dingbats" msgstr "Unicode mit Zapf Dingbats Font verbinden" -#: ../src/extension/internal/emf-inout.cpp:3573 -#: ../src/extension/internal/wmf-inout.cpp:3148 +#: ../src/extension/internal/emf-inout.cpp:3582 +#: ../src/extension/internal/wmf-inout.cpp:3156 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "MS Unicode PUA (0xF020-0xF0FF) für umgewandelte Zeichen verwenden" -#: ../src/extension/internal/emf-inout.cpp:3574 -#: ../src/extension/internal/wmf-inout.cpp:3149 +#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/wmf-inout.cpp:3157 msgid "Compensate for PPT font bug" msgstr "PPT font bug kompensieren" -#: ../src/extension/internal/emf-inout.cpp:3575 -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/wmf-inout.cpp:3158 msgid "Convert dashed/dotted lines to single lines" msgstr "Gestrichelte/gepunktete Linien in zusammenhängende Linien umwandeln" -#: ../src/extension/internal/emf-inout.cpp:3576 -#: ../src/extension/internal/wmf-inout.cpp:3151 +#: ../src/extension/internal/emf-inout.cpp:3585 +#: ../src/extension/internal/wmf-inout.cpp:3159 msgid "Convert gradients to colored polygon series" msgstr "Farbverlauf in lineare farbige Rechtecke umwandeln" -#: ../src/extension/internal/emf-inout.cpp:3577 +#: ../src/extension/internal/emf-inout.cpp:3586 msgid "Use native rectangular linear gradients" msgstr "Native rechteckige lineare Verläufe verwenden" -#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/emf-inout.cpp:3587 msgid "Map all fill patterns to standard EMF hatches" msgstr "Alle Füllmuster als Standard EMF Muster setzen" -#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/emf-inout.cpp:3588 msgid "Ignore image rotations" msgstr "Bilddrehung ignorieren" -#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/emf-inout.cpp:3592 msgid "Enhanced Metafile (*.emf)" msgstr "Erweiterte Metadatei (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/emf-inout.cpp:3593 msgid "Enhanced Metafile" msgstr "Erweiterte Metadatei" @@ -6001,23 +6009,24 @@ msgstr "Hervorhebungsfarbe" #: ../src/extension/internal/filter/blurs.h:350 #: ../src/extension/internal/filter/bumps.h:141 #: ../src/extension/internal/filter/bumps.h:361 -#: ../src/extension/internal/filter/color.h:81 -#: ../src/extension/internal/filter/color.h:170 -#: ../src/extension/internal/filter/color.h:261 -#: ../src/extension/internal/filter/color.h:346 -#: ../src/extension/internal/filter/color.h:436 -#: ../src/extension/internal/filter/color.h:531 -#: ../src/extension/internal/filter/color.h:653 -#: ../src/extension/internal/filter/color.h:750 -#: ../src/extension/internal/filter/color.h:829 -#: ../src/extension/internal/filter/color.h:920 -#: ../src/extension/internal/filter/color.h:1048 -#: ../src/extension/internal/filter/color.h:1118 -#: ../src/extension/internal/filter/color.h:1211 -#: ../src/extension/internal/filter/color.h:1323 -#: ../src/extension/internal/filter/color.h:1428 -#: ../src/extension/internal/filter/color.h:1504 -#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:282 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:421 +#: ../src/extension/internal/filter/color.h:511 +#: ../src/extension/internal/filter/color.h:606 +#: ../src/extension/internal/filter/color.h:728 +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:904 +#: ../src/extension/internal/filter/color.h:995 +#: ../src/extension/internal/filter/color.h:1123 +#: ../src/extension/internal/filter/color.h:1193 +#: ../src/extension/internal/filter/color.h:1286 +#: ../src/extension/internal/filter/color.h:1398 +#: ../src/extension/internal/filter/color.h:1503 +#: ../src/extension/internal/filter/color.h:1579 +#: ../src/extension/internal/filter/color.h:1690 #: ../src/extension/internal/filter/distort.h:95 #: ../src/extension/internal/filter/distort.h:204 #: ../src/extension/internal/filter/filter-file.cpp:151 @@ -6057,7 +6066,7 @@ msgstr "Mattes Gelee" #: ../src/extension/internal/filter/bevels.h:136 #: ../src/extension/internal/filter/bevels.h:220 #: ../src/extension/internal/filter/blurs.h:187 -#: ../src/extension/internal/filter/color.h:74 +#: ../src/extension/internal/filter/color.h:75 msgid "Brightness" msgstr "Glanz" @@ -6127,11 +6136,11 @@ msgstr "Mischen:" #: ../src/extension/internal/filter/bumps.h:131 #: ../src/extension/internal/filter/bumps.h:337 #: ../src/extension/internal/filter/bumps.h:344 -#: ../src/extension/internal/filter/color.h:329 -#: ../src/extension/internal/filter/color.h:336 -#: ../src/extension/internal/filter/color.h:1423 -#: ../src/extension/internal/filter/color.h:1596 -#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/color.h:404 +#: ../src/extension/internal/filter/color.h:411 +#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1671 +#: ../src/extension/internal/filter/color.h:1677 #: ../src/extension/internal/filter/paint.h:705 #: ../src/extension/internal/filter/transparency.h:63 #: ../src/filter-enums.cpp:55 @@ -6143,12 +6152,12 @@ msgstr "Verdunkeln" #: ../src/extension/internal/filter/bumps.h:132 #: ../src/extension/internal/filter/bumps.h:335 #: ../src/extension/internal/filter/bumps.h:342 -#: ../src/extension/internal/filter/color.h:327 -#: ../src/extension/internal/filter/color.h:332 -#: ../src/extension/internal/filter/color.h:647 -#: ../src/extension/internal/filter/color.h:1415 -#: ../src/extension/internal/filter/color.h:1420 -#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/color.h:402 +#: ../src/extension/internal/filter/color.h:407 +#: ../src/extension/internal/filter/color.h:722 +#: ../src/extension/internal/filter/color.h:1490 +#: ../src/extension/internal/filter/color.h:1495 +#: ../src/extension/internal/filter/color.h:1669 #: ../src/extension/internal/filter/paint.h:703 #: ../src/extension/internal/filter/transparency.h:62 #: ../src/filter-enums.cpp:54 ../src/ui/dialog/input.cpp:382 @@ -6160,13 +6169,13 @@ msgstr "Screen" #: ../src/extension/internal/filter/bumps.h:133 #: ../src/extension/internal/filter/bumps.h:338 #: ../src/extension/internal/filter/bumps.h:345 -#: ../src/extension/internal/filter/color.h:325 -#: ../src/extension/internal/filter/color.h:333 -#: ../src/extension/internal/filter/color.h:645 -#: ../src/extension/internal/filter/color.h:1414 -#: ../src/extension/internal/filter/color.h:1421 -#: ../src/extension/internal/filter/color.h:1595 -#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/color.h:400 +#: ../src/extension/internal/filter/color.h:408 +#: ../src/extension/internal/filter/color.h:720 +#: ../src/extension/internal/filter/color.h:1489 +#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1670 +#: ../src/extension/internal/filter/color.h:1676 #: ../src/extension/internal/filter/paint.h:701 #: ../src/extension/internal/filter/transparency.h:60 #: ../src/filter-enums.cpp:53 @@ -6178,10 +6187,10 @@ msgstr "Multiplizieren" #: ../src/extension/internal/filter/bumps.h:134 #: ../src/extension/internal/filter/bumps.h:339 #: ../src/extension/internal/filter/bumps.h:346 -#: ../src/extension/internal/filter/color.h:328 -#: ../src/extension/internal/filter/color.h:335 -#: ../src/extension/internal/filter/color.h:1422 -#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/color.h:403 +#: ../src/extension/internal/filter/color.h:410 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1668 #: ../src/extension/internal/filter/paint.h:704 #: ../src/extension/internal/filter/transparency.h:64 #: ../src/filter-enums.cpp:56 @@ -6226,9 +6235,9 @@ msgid "Erosion" msgstr "Erosion" #: ../src/extension/internal/filter/blurs.h:336 -#: ../src/extension/internal/filter/color.h:1205 -#: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/extension/internal/filter/color.h:1280 +#: ../src/extension/internal/filter/color.h:1392 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "Background color" msgstr "Hintergrundfarbe" @@ -6241,13 +6250,13 @@ msgstr "Misch-Typ:" #: ../src/extension/internal/filter/bumps.h:130 #: ../src/extension/internal/filter/bumps.h:336 #: ../src/extension/internal/filter/bumps.h:343 -#: ../src/extension/internal/filter/color.h:326 -#: ../src/extension/internal/filter/color.h:334 -#: ../src/extension/internal/filter/color.h:646 -#: ../src/extension/internal/filter/color.h:1413 -#: ../src/extension/internal/filter/color.h:1419 -#: ../src/extension/internal/filter/color.h:1586 -#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/color.h:401 +#: ../src/extension/internal/filter/color.h:409 +#: ../src/extension/internal/filter/color.h:721 +#: ../src/extension/internal/filter/color.h:1488 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1661 +#: ../src/extension/internal/filter/color.h:1675 #: ../src/extension/internal/filter/distort.h:78 #: ../src/extension/internal/filter/paint.h:702 #: ../src/extension/internal/filter/textures.h:77 @@ -6285,11 +6294,11 @@ msgstr "Stoß-Quelle" #: ../src/extension/internal/filter/bumps.h:88 #: ../src/extension/internal/filter/bumps.h:317 -#: ../src/extension/internal/filter/color.h:157 -#: ../src/extension/internal/filter/color.h:637 -#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:712 +#: ../src/extension/internal/filter/color.h:896 #: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:183 #: ../src/widgets/sp-color-icc-selector.cpp:330 #: ../src/widgets/sp-color-scales.cpp:415 #: ../src/widgets/sp-color-scales.cpp:416 @@ -6298,11 +6307,11 @@ msgstr "Rot" #: ../src/extension/internal/filter/bumps.h:89 #: ../src/extension/internal/filter/bumps.h:318 -#: ../src/extension/internal/filter/color.h:158 -#: ../src/extension/internal/filter/color.h:638 -#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:713 +#: ../src/extension/internal/filter/color.h:897 #: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:184 #: ../src/widgets/sp-color-icc-selector.cpp:331 #: ../src/widgets/sp-color-scales.cpp:418 #: ../src/widgets/sp-color-scales.cpp:419 @@ -6311,11 +6320,11 @@ msgstr "Grün" #: ../src/extension/internal/filter/bumps.h:90 #: ../src/extension/internal/filter/bumps.h:319 -#: ../src/extension/internal/filter/color.h:159 -#: ../src/extension/internal/filter/color.h:639 -#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:714 +#: ../src/extension/internal/filter/color.h:898 #: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:185 #: ../src/widgets/sp-color-icc-selector.cpp:332 #: ../src/widgets/sp-color-scales.cpp:421 #: ../src/widgets/sp-color-scales.cpp:422 @@ -6341,20 +6350,20 @@ msgstr "Diffuses Licht" #: ../src/extension/internal/filter/bumps.h:98 #: ../src/extension/internal/filter/bumps.h:329 #: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 #: ../share/extensions/interp_att_g.inx.h:11 msgid "Height" msgstr "Höhe" #: ../src/extension/internal/filter/bumps.h:99 #: ../src/extension/internal/filter/bumps.h:330 -#: ../src/extension/internal/filter/color.h:76 -#: ../src/extension/internal/filter/color.h:824 -#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:899 +#: ../src/extension/internal/filter/color.h:1188 #: ../src/extension/internal/filter/paint.h:86 #: ../src/extension/internal/filter/paint.h:592 #: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/ui/tools/flood-tool.cpp:188 #: ../src/widgets/sp-color-icc-selector.cpp:341 #: ../src/widgets/sp-color-scales.cpp:447 #: ../src/widgets/sp-color-scales.cpp:448 ../src/widgets/tweak-toolbar.cpp:318 @@ -6469,7 +6478,7 @@ msgstr "Hintergrund:" #: ../src/extension/internal/filter/bumps.h:322 #: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:518 +#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:509 msgid "Image" msgstr "Bild" @@ -6482,7 +6491,7 @@ msgid "Background opacity" msgstr "Hintergrund-Deckkraft" #: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 +#: ../src/extension/internal/filter/color.h:1115 msgid "Lighting" msgstr "Blitz" @@ -6523,38 +6532,38 @@ msgstr "In" msgid "Turns an image to jelly" msgstr "Verändert ein Bild zu Gelee" -#: ../src/extension/internal/filter/color.h:72 +#: ../src/extension/internal/filter/color.h:73 msgid "Brilliance" msgstr "Brillianz" -#: ../src/extension/internal/filter/color.h:75 -#: ../src/extension/internal/filter/color.h:1417 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:1492 msgid "Over-saturation" msgstr "Übersättigung" -#: ../src/extension/internal/filter/color.h:77 -#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/color.h:78 +#: ../src/extension/internal/filter/color.h:162 #: ../src/extension/internal/filter/overlays.h:70 #: ../src/extension/internal/filter/paint.h:85 #: ../src/extension/internal/filter/paint.h:502 #: ../src/extension/internal/filter/transparency.h:136 #: ../src/extension/internal/filter/transparency.h:210 msgid "Inverted" -msgstr "Invertiet" +msgstr "Invertiert" -#: ../src/extension/internal/filter/color.h:85 +#: ../src/extension/internal/filter/color.h:86 msgid "Brightness filter" msgstr "Helligkeitsfilter" -#: ../src/extension/internal/filter/color.h:152 +#: ../src/extension/internal/filter/color.h:153 msgid "Channel Painting" msgstr "Kanalfarbe" -#: ../src/extension/internal/filter/color.h:156 -#: ../src/extension/internal/filter/color.h:257 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:332 #: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 #: ../src/ui/dialog/inkscape-preferences.cpp:952 -#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/ui/tools/flood-tool.cpp:187 #: ../src/widgets/sp-color-icc-selector.cpp:337 #: ../src/widgets/sp-color-icc-selector.cpp:342 #: ../src/widgets/sp-color-scales.cpp:444 @@ -6563,133 +6572,180 @@ msgstr "Kanalfarbe" msgid "Saturation" msgstr "Sättigung" -#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:161 #: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:199 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:189 msgid "Alpha" msgstr "Alpha" -#: ../src/extension/internal/filter/color.h:174 +#: ../src/extension/internal/filter/color.h:175 msgid "Replace RGB by any color" msgstr "RGB durch eine Farbe ersetzen" #: ../src/extension/internal/filter/color.h:254 +#, fuzzy +msgid "Color Blindness" +msgstr "Farbige Außenlinie" + +#: ../src/extension/internal/filter/color.h:258 +#, fuzzy +msgid "Blindness type:" +msgstr "Misch-Typ:" + +#: ../src/extension/internal/filter/color.h:259 +msgid "Rod monochromacy (atypical achromatopsia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:260 +msgid "Cone monochromacy (typical achromatopsia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:261 +msgid "Geen weak (deuteranomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:262 +msgid "Green blind (deuteranopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:263 +msgid "Red weak (protanomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:264 +msgid "Red blind (protanopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Blue weak (tritanomaly)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:266 +msgid "Blue blind (tritanopia)" +msgstr "" + +#: ../src/extension/internal/filter/color.h:286 +#, fuzzy +msgid "Simulate color blindness" +msgstr "Simuliere Ölgemälde" + +#: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" msgstr "Farbverschiebung" -#: ../src/extension/internal/filter/color.h:256 +#: ../src/extension/internal/filter/color.h:331 msgid "Shift (°)" msgstr "Verschiebung (°)" -#: ../src/extension/internal/filter/color.h:265 +#: ../src/extension/internal/filter/color.h:340 msgid "Rotate and desaturate hue" msgstr "Farbton rotieren nud entsättigen" -#: ../src/extension/internal/filter/color.h:321 +#: ../src/extension/internal/filter/color.h:396 msgid "Harsh light" msgstr "Grelles Licht" -#: ../src/extension/internal/filter/color.h:322 +#: ../src/extension/internal/filter/color.h:397 msgid "Normal light" msgstr "Normales Licht" -#: ../src/extension/internal/filter/color.h:323 +#: ../src/extension/internal/filter/color.h:398 msgid "Duotone" msgstr "Zweifarbigkeit" -#: ../src/extension/internal/filter/color.h:324 -#: ../src/extension/internal/filter/color.h:1412 +#: ../src/extension/internal/filter/color.h:399 +#: ../src/extension/internal/filter/color.h:1487 msgid "Blend 1:" msgstr "Mischen 1:" -#: ../src/extension/internal/filter/color.h:331 -#: ../src/extension/internal/filter/color.h:1418 +#: ../src/extension/internal/filter/color.h:406 +#: ../src/extension/internal/filter/color.h:1493 msgid "Blend 2:" msgstr "Mischen 2:" -#: ../src/extension/internal/filter/color.h:350 +#: ../src/extension/internal/filter/color.h:425 msgid "Blend image or object with a flood color" msgstr "Mischt Bild oder Objekt mit einer fließenden Farbe" -#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:23 +#: ../src/extension/internal/filter/color.h:499 ../src/filter-enums.cpp:23 msgid "Component Transfer" msgstr "Komponenten-Übertragung" -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:110 +#: ../src/extension/internal/filter/color.h:502 ../src/filter-enums.cpp:110 msgid "Identity" msgstr "Identität" -#: ../src/extension/internal/filter/color.h:428 +#: ../src/extension/internal/filter/color.h:503 #: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 #: ../src/ui/dialog/filter-effects-dialog.cpp:1050 msgid "Table" msgstr "Tabelle" -#: ../src/extension/internal/filter/color.h:429 +#: ../src/extension/internal/filter/color.h:504 #: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 #: ../src/ui/dialog/filter-effects-dialog.cpp:1053 msgid "Discrete" msgstr "Getrennt" -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:113 +#: ../src/extension/internal/filter/color.h:505 ../src/filter-enums.cpp:113 #: ../src/live_effects/lpe-interpolate_points.cpp:25 #: ../src/live_effects/lpe-powerstroke.cpp:194 msgid "Linear" msgstr "Linie" -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:114 +#: ../src/extension/internal/filter/color.h:506 ../src/filter-enums.cpp:114 msgid "Gamma" msgstr "Gamma" -#: ../src/extension/internal/filter/color.h:440 +#: ../src/extension/internal/filter/color.h:515 msgid "Basic component transfer structure" msgstr "Basis-Komponente Transferstruktur" -#: ../src/extension/internal/filter/color.h:509 +#: ../src/extension/internal/filter/color.h:584 msgid "Duochrome" msgstr "Duochrom" -#: ../src/extension/internal/filter/color.h:513 +#: ../src/extension/internal/filter/color.h:588 msgid "Fluorescence level" msgstr "Fluoreszenz-Level" -#: ../src/extension/internal/filter/color.h:514 +#: ../src/extension/internal/filter/color.h:589 msgid "Swap:" msgstr "Tausch:" -#: ../src/extension/internal/filter/color.h:515 +#: ../src/extension/internal/filter/color.h:590 msgid "No swap" msgstr "Kein Tausch" -#: ../src/extension/internal/filter/color.h:516 +#: ../src/extension/internal/filter/color.h:591 msgid "Color and alpha" msgstr "Farbe und Alpha" -#: ../src/extension/internal/filter/color.h:517 +#: ../src/extension/internal/filter/color.h:592 msgid "Color only" msgstr "nur Farbe" -#: ../src/extension/internal/filter/color.h:518 +#: ../src/extension/internal/filter/color.h:593 msgid "Alpha only" msgstr "nur Alpha" -#: ../src/extension/internal/filter/color.h:522 +#: ../src/extension/internal/filter/color.h:597 msgid "Color 1" msgstr "Farbe 1" -#: ../src/extension/internal/filter/color.h:525 +#: ../src/extension/internal/filter/color.h:600 msgid "Color 2" msgstr "Farbe 2" -#: ../src/extension/internal/filter/color.h:535 +#: ../src/extension/internal/filter/color.h:610 msgid "Convert luminance values to a duochrome palette" msgstr "Konvertiert Luminanzwerte in eine duochrome Palette" -#: ../src/extension/internal/filter/color.h:634 +#: ../src/extension/internal/filter/color.h:709 msgid "Extract Channel" msgstr "Kanal extrahieren" -#: ../src/extension/internal/filter/color.h:640 +#: ../src/extension/internal/filter/color.h:715 #: ../src/widgets/sp-color-icc-selector.cpp:344 #: ../src/widgets/sp-color-icc-selector.cpp:349 #: ../src/widgets/sp-color-scales.cpp:469 @@ -6697,7 +6753,7 @@ msgstr "Kanal extrahieren" msgid "Cyan" msgstr "Zyan" -#: ../src/extension/internal/filter/color.h:641 +#: ../src/extension/internal/filter/color.h:716 #: ../src/widgets/sp-color-icc-selector.cpp:345 #: ../src/widgets/sp-color-icc-selector.cpp:350 #: ../src/widgets/sp-color-scales.cpp:472 @@ -6705,7 +6761,7 @@ msgstr "Zyan" msgid "Magenta" msgstr "Magenta" -#: ../src/extension/internal/filter/color.h:642 +#: ../src/extension/internal/filter/color.h:717 #: ../src/widgets/sp-color-icc-selector.cpp:346 #: ../src/widgets/sp-color-icc-selector.cpp:351 #: ../src/widgets/sp-color-scales.cpp:475 @@ -6713,27 +6769,27 @@ msgstr "Magenta" msgid "Yellow" msgstr "Gelb" -#: ../src/extension/internal/filter/color.h:644 +#: ../src/extension/internal/filter/color.h:719 msgid "Background blend mode:" msgstr "Hintergrund-Mischmodus:" -#: ../src/extension/internal/filter/color.h:649 +#: ../src/extension/internal/filter/color.h:724 msgid "Channel to alpha" msgstr "Kanal zu Alpha" -#: ../src/extension/internal/filter/color.h:657 +#: ../src/extension/internal/filter/color.h:732 msgid "Extract color channel as a transparent image" msgstr "Extrahiere Farbkanal als ein transparentes Bild" -#: ../src/extension/internal/filter/color.h:740 +#: ../src/extension/internal/filter/color.h:815 msgid "Fade to Black or White" msgstr "Zu Schwarz oder Weiß ausblenden" -#: ../src/extension/internal/filter/color.h:743 +#: ../src/extension/internal/filter/color.h:818 msgid "Fade to:" msgstr "Ausblenden zu:" -#: ../src/extension/internal/filter/color.h:744 +#: ../src/extension/internal/filter/color.h:819 #: ../src/ui/widget/selected-style.cpp:274 #: ../src/widgets/sp-color-icc-selector.cpp:347 #: ../src/widgets/sp-color-scales.cpp:478 @@ -6741,139 +6797,139 @@ msgstr "Ausblenden zu:" msgid "Black" msgstr "Schwarz" -#: ../src/extension/internal/filter/color.h:745 +#: ../src/extension/internal/filter/color.h:820 #: ../src/ui/widget/selected-style.cpp:270 msgid "White" msgstr "Weiß" -#: ../src/extension/internal/filter/color.h:754 +#: ../src/extension/internal/filter/color.h:829 msgid "Fade to black or white" msgstr "Ausblenden zu Schwarz oder Weiß" -#: ../src/extension/internal/filter/color.h:819 +#: ../src/extension/internal/filter/color.h:894 msgid "Greyscale" msgstr "Graustufen" -#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:900 #: ../src/extension/internal/filter/paint.h:83 #: ../src/extension/internal/filter/paint.h:239 msgid "Transparent" msgstr "Transparent" -#: ../src/extension/internal/filter/color.h:833 +#: ../src/extension/internal/filter/color.h:908 msgid "Customize greyscale components" msgstr "Anpassen der Graustufen-Komponenten" -#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:980 #: ../src/ui/widget/selected-style.cpp:266 msgid "Invert" msgstr "Invertieren" -#: ../src/extension/internal/filter/color.h:907 +#: ../src/extension/internal/filter/color.h:982 msgid "Invert channels:" msgstr "Kanäle invertieren:" -#: ../src/extension/internal/filter/color.h:908 +#: ../src/extension/internal/filter/color.h:983 msgid "No inversion" msgstr "Keine Umkehrung" -#: ../src/extension/internal/filter/color.h:909 +#: ../src/extension/internal/filter/color.h:984 msgid "Red and blue" msgstr "Rot und Blau" -#: ../src/extension/internal/filter/color.h:910 +#: ../src/extension/internal/filter/color.h:985 msgid "Red and green" msgstr "Rot und Grün" -#: ../src/extension/internal/filter/color.h:911 +#: ../src/extension/internal/filter/color.h:986 msgid "Green and blue" msgstr "Grün und Blau" -#: ../src/extension/internal/filter/color.h:913 +#: ../src/extension/internal/filter/color.h:988 msgid "Light transparency" msgstr "Lichttransparenz:" -#: ../src/extension/internal/filter/color.h:914 +#: ../src/extension/internal/filter/color.h:989 msgid "Invert hue" msgstr "Farbton invertieren" -#: ../src/extension/internal/filter/color.h:915 +#: ../src/extension/internal/filter/color.h:990 msgid "Invert lightness" msgstr "Helligkeit invertieren" -#: ../src/extension/internal/filter/color.h:916 +#: ../src/extension/internal/filter/color.h:991 msgid "Invert transparency" msgstr "Transparenz invertieren" -#: ../src/extension/internal/filter/color.h:924 +#: ../src/extension/internal/filter/color.h:999 msgid "Manage hue, lightness and transparency inversions" msgstr "Verwalten Farbton, Helligkeit und Transparenz-Umkehrungen" -#: ../src/extension/internal/filter/color.h:1042 +#: ../src/extension/internal/filter/color.h:1117 msgid "Lights" msgstr "Lichter" -#: ../src/extension/internal/filter/color.h:1043 +#: ../src/extension/internal/filter/color.h:1118 msgid "Shadows" msgstr "Schatten" -#: ../src/extension/internal/filter/color.h:1044 +#: ../src/extension/internal/filter/color.h:1119 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 #: ../src/live_effects/effect.cpp:110 #: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 msgid "Offset" msgstr "Versatz" -#: ../src/extension/internal/filter/color.h:1052 +#: ../src/extension/internal/filter/color.h:1127 msgid "Modify lights and shadows separately" msgstr "Licht und Schatten einzeln verändern" -#: ../src/extension/internal/filter/color.h:1111 +#: ../src/extension/internal/filter/color.h:1186 msgid "Lightness-Contrast" msgstr "Helligkeit - Kontrast" -#: ../src/extension/internal/filter/color.h:1122 +#: ../src/extension/internal/filter/color.h:1197 msgid "Modify lightness and contrast separately" msgstr "Helligkeit und Kontrast einzeln anpassen" -#: ../src/extension/internal/filter/color.h:1190 +#: ../src/extension/internal/filter/color.h:1265 msgid "Nudge RGB" msgstr "Präzisionsausrichtung RGB" -#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1269 msgid "Red offset" msgstr "Rot-Versatz:" -#: ../src/extension/internal/filter/color.h:1195 -#: ../src/extension/internal/filter/color.h:1198 -#: ../src/extension/internal/filter/color.h:1201 -#: ../src/extension/internal/filter/color.h:1307 -#: ../src/extension/internal/filter/color.h:1310 -#: ../src/extension/internal/filter/color.h:1313 +#: ../src/extension/internal/filter/color.h:1270 +#: ../src/extension/internal/filter/color.h:1273 +#: ../src/extension/internal/filter/color.h:1276 +#: ../src/extension/internal/filter/color.h:1382 +#: ../src/extension/internal/filter/color.h:1385 +#: ../src/extension/internal/filter/color.h:1388 #: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 msgid "X" msgstr "X" -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 +#: ../src/extension/internal/filter/color.h:1271 +#: ../src/extension/internal/filter/color.h:1274 +#: ../src/extension/internal/filter/color.h:1277 +#: ../src/extension/internal/filter/color.h:1383 +#: ../src/extension/internal/filter/color.h:1386 +#: ../src/extension/internal/filter/color.h:1389 #: ../src/ui/dialog/input.cpp:1616 msgid "Y" msgstr "Y:" -#: ../src/extension/internal/filter/color.h:1197 +#: ../src/extension/internal/filter/color.h:1272 msgid "Green offset" msgstr "Grün-Versatz:" -#: ../src/extension/internal/filter/color.h:1200 +#: ../src/extension/internal/filter/color.h:1275 msgid "Blue offset" msgstr "Blau-Versatz:" -#: ../src/extension/internal/filter/color.h:1215 +#: ../src/extension/internal/filter/color.h:1290 msgid "" "Nudge RGB channels separately and blend them to different types of " "backgrounds" @@ -6881,23 +6937,23 @@ msgstr "" "Präzisionsausrichtung nach RGB-Kanälen getrennt und mischt sie zu " "verschiedenen Typen von Hintergründen" -#: ../src/extension/internal/filter/color.h:1302 +#: ../src/extension/internal/filter/color.h:1377 msgid "Nudge CMY" msgstr "Präzisionsausrichtung RGB" -#: ../src/extension/internal/filter/color.h:1306 +#: ../src/extension/internal/filter/color.h:1381 msgid "Cyan offset" msgstr "Blau-Versatz" -#: ../src/extension/internal/filter/color.h:1309 +#: ../src/extension/internal/filter/color.h:1384 msgid "Magenta offset" msgstr "Rot-Versatz" -#: ../src/extension/internal/filter/color.h:1312 +#: ../src/extension/internal/filter/color.h:1387 msgid "Yellow offset" msgstr "Gelb-Versatz" -#: ../src/extension/internal/filter/color.h:1327 +#: ../src/extension/internal/filter/color.h:1402 msgid "" "Nudge CMY channels separately and blend them to different types of " "backgrounds" @@ -6905,80 +6961,80 @@ msgstr "" "Präzisionsausrichtung nach RGB-Kanälen getrennt und mischt sie zu " "verschiedenen Typen von Hintergründen" -#: ../src/extension/internal/filter/color.h:1408 +#: ../src/extension/internal/filter/color.h:1483 msgid "Quadritone fantasy" msgstr "Vierfarben-Fantasie" -#: ../src/extension/internal/filter/color.h:1410 +#: ../src/extension/internal/filter/color.h:1485 msgid "Hue distribution (°)" msgstr "Farbton Verteilung (°)" -#: ../src/extension/internal/filter/color.h:1411 +#: ../src/extension/internal/filter/color.h:1486 #: ../share/extensions/svgcalendar.inx.h:19 msgid "Colors" msgstr "Farben" -#: ../src/extension/internal/filter/color.h:1432 +#: ../src/extension/internal/filter/color.h:1507 msgid "Replace hue by two colors" msgstr "Farbwert durch zwei Farben ersetzen" -#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1571 msgid "Hue rotation (°)" msgstr "Farbtondrehung (°)" -#: ../src/extension/internal/filter/color.h:1499 +#: ../src/extension/internal/filter/color.h:1574 msgid "Moonarize" msgstr "Lunarisieren" -#: ../src/extension/internal/filter/color.h:1508 +#: ../src/extension/internal/filter/color.h:1583 msgid "Classic photographic solarization effect" msgstr "Klassischer fotografischer Solarisationseffekt" -#: ../src/extension/internal/filter/color.h:1581 +#: ../src/extension/internal/filter/color.h:1656 msgid "Tritone" msgstr "Drei-Farben-Palette" -#: ../src/extension/internal/filter/color.h:1587 +#: ../src/extension/internal/filter/color.h:1662 msgid "Enhance hue" msgstr "Farbton verbessern" -#: ../src/extension/internal/filter/color.h:1588 +#: ../src/extension/internal/filter/color.h:1663 msgid "Phosphorescence" msgstr "Phosphorisierend" -#: ../src/extension/internal/filter/color.h:1589 +#: ../src/extension/internal/filter/color.h:1664 msgid "Colored nights" msgstr "Farbige Nächte" -#: ../src/extension/internal/filter/color.h:1590 +#: ../src/extension/internal/filter/color.h:1665 msgid "Hue to background" msgstr "Farbton zu Hintergrund" -#: ../src/extension/internal/filter/color.h:1592 +#: ../src/extension/internal/filter/color.h:1667 msgid "Global blend:" msgstr "Globales Mischen:" -#: ../src/extension/internal/filter/color.h:1598 +#: ../src/extension/internal/filter/color.h:1673 msgid "Glow" msgstr "Glühen" -#: ../src/extension/internal/filter/color.h:1599 +#: ../src/extension/internal/filter/color.h:1674 msgid "Glow blend:" msgstr "Glühend " -#: ../src/extension/internal/filter/color.h:1604 +#: ../src/extension/internal/filter/color.h:1679 msgid "Local light" msgstr "Lokales Licht" -#: ../src/extension/internal/filter/color.h:1605 +#: ../src/extension/internal/filter/color.h:1680 msgid "Global light" msgstr "Globales Licht" -#: ../src/extension/internal/filter/color.h:1608 +#: ../src/extension/internal/filter/color.h:1683 msgid "Hue distribution (°):" msgstr "Farbton Verteilung (°):" -#: ../src/extension/internal/filter/color.h:1619 +#: ../src/extension/internal/filter/color.h:1694 msgid "" "Create a custom tritone palette with additional glow, blend modes and hue " "moving" @@ -7151,7 +7207,7 @@ msgstr "Öffnen" #: ../src/extension/internal/filter/morphology.h:65 #: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:318 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/rect-toolbar.cpp:317 ../src/widgets/spray-toolbar.cpp:116 #: ../src/widgets/tweak-toolbar.cpp:128 #: ../share/extensions/interp_att_g.inx.h:10 msgid "Width" @@ -7260,7 +7316,7 @@ msgstr "Rauschen" #: ../src/extension/internal/filter/overlays.h:59 #: ../src/extension/internal/filter/paint.h:690 -#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:88 #: ../src/ui/dialog/tracedialog.cpp:747 #: ../share/extensions/color_HSL_adjust.inx.h:2 #: ../share/extensions/color_custom.inx.h:2 @@ -7739,7 +7795,7 @@ msgstr "%s Bitmap-Bildimport" #: ../src/extension/internal/gdkpixbuf-input.cpp:190 msgid "Image Import Type:" -msgstr "Bildimporttyp:" +msgstr "Art des Bildimports:" #: ../src/extension/internal/gdkpixbuf-input.cpp:190 msgid "" @@ -7753,24 +7809,24 @@ msgstr "" #: ../src/extension/internal/gdkpixbuf-input.cpp:191 #: ../src/ui/dialog/inkscape-preferences.cpp:1456 msgid "Embed" -msgstr "%i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "%i überflüssiges Element aus <defs> entfernt." msgstr[1] "%i überflüssige Elemente aus <defs> entfernt." -#: ../src/file.cpp:637 +#: ../src/file.cpp:643 msgid "No unused definitions in <defs>." msgstr "Keine überflüssigen Elemente in <defs>." -#: ../src/file.cpp:669 +#: ../src/file.cpp:675 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " @@ -8291,12 +8349,12 @@ msgstr "" "Keine vorhandene Erweiterung von Inkscape kann das Dokument (%s) sichern. " "Dies Ursache dafür ist möglicherweise eine unbekannte Dateinamenendung." -#: ../src/file.cpp:670 ../src/file.cpp:678 ../src/file.cpp:686 -#: ../src/file.cpp:692 ../src/file.cpp:697 +#: ../src/file.cpp:676 ../src/file.cpp:684 ../src/file.cpp:692 +#: ../src/file.cpp:698 ../src/file.cpp:703 msgid "Document not saved." msgstr "Dokument wurde nicht gespeichert." -#: ../src/file.cpp:677 +#: ../src/file.cpp:683 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." @@ -8304,54 +8362,54 @@ msgstr "" "Datei %s ist schreibgeschützt! Bitte entfernen Sie den Schreibschutz und " "versuchen es dann erneut." -#: ../src/file.cpp:685 +#: ../src/file.cpp:691 #, c-format msgid "File %s could not be saved." msgstr "Datei %s konnte nicht gespeichert werden." -#: ../src/file.cpp:715 ../src/file.cpp:717 +#: ../src/file.cpp:721 ../src/file.cpp:723 msgid "Document saved." msgstr "Dokument wurde gespeichert." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:860 ../src/file.cpp:1408 +#: ../src/file.cpp:866 ../src/file.cpp:1414 msgid "drawing" msgstr "Zeichnung" -#: ../src/file.cpp:865 +#: ../src/file.cpp:871 msgid "drawing-%1" msgstr "Zeichnung-%1" -#: ../src/file.cpp:882 +#: ../src/file.cpp:888 msgid "Select file to save a copy to" msgstr "Datei wählen, in die eine Kopie gespeichert werden soll" -#: ../src/file.cpp:884 +#: ../src/file.cpp:890 msgid "Select file to save to" msgstr "Datei wählen, in die gespeichert werden soll" -#: ../src/file.cpp:989 ../src/file.cpp:991 +#: ../src/file.cpp:995 ../src/file.cpp:997 msgid "No changes need to be saved." msgstr "Es müssen keine Änderungen gespeichert werden." -#: ../src/file.cpp:1010 +#: ../src/file.cpp:1016 msgid "Saving document..." msgstr "Dokument wird gespeichert..." -#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/file.cpp:1252 ../src/ui/dialog/inkscape-preferences.cpp:1450 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Importieren" -#: ../src/file.cpp:1296 +#: ../src/file.cpp:1302 msgid "Select file to import" msgstr "Wählen Sie die zu importierende Datei" -#: ../src/file.cpp:1429 +#: ../src/file.cpp:1435 msgid "Select file to export to" msgstr "Wählen Sie die Datei, in die exportiert werden soll" -#: ../src/file.cpp:1682 +#: ../src/file.cpp:1688 msgid "Import Clip Art" msgstr "Importiere Clipart" @@ -8421,12 +8479,10 @@ msgid "Overlay" msgstr "Überlagerung" #: ../src/filter-enums.cpp:59 -#, fuzzy msgid "Color Dodge" msgstr "Farbig abwedeln" #: ../src/filter-enums.cpp:60 -#, fuzzy msgid "Color Burn" msgstr "Farbig nachbelichten" @@ -8446,7 +8502,7 @@ msgstr "Differenz" msgid "Exclusion" msgstr "Exklusiv-Oder (Ausschluss)" -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:186 #: ../src/widgets/sp-color-icc-selector.cpp:336 #: ../src/widgets/sp-color-icc-selector.cpp:340 #: ../src/widgets/sp-color-scales.cpp:441 @@ -8475,8 +8531,7 @@ msgstr "Farbton rotieren" msgid "Luminance to Alpha" msgstr "Leuchtkraft zu Alpha" -#. File -#: ../src/filter-enums.cpp:87 ../src/verbs.cpp:2431 +#: ../src/filter-enums.cpp:87 #: ../share/extensions/jessyInk_mouseHandler.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:7 msgid "Default" @@ -8565,53 +8620,53 @@ msgstr "Farbverlauf invertieren" msgid "Reverse gradient" msgstr "Farbverlauf umkehren" -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:227 +#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "Zwischenfarbe löschen" -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:90 msgid "Linear gradient start" msgstr "Anfang des linearen Farbverlaufs" #. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:91 msgid "Linear gradient end" msgstr "Ende des linearen Farbverlaufs" -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:92 msgid "Linear gradient mid stop" msgstr "Zwischenfarbe des linearen Farbverlaufs" -#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 +#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:93 msgid "Radial gradient center" msgstr "Zentrum des radialen Farbverlaufs" #: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +#: ../src/ui/tools/gradient-tool.cpp:94 ../src/ui/tools/gradient-tool.cpp:95 msgid "Radial gradient radius" msgstr "Radius des radialen Farbverlaufs" -#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 +#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:96 msgid "Radial gradient focus" msgstr "Fokus des radialen Farbverlaufs" #. POINT_RG_FOCUS #: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +#: ../src/ui/tools/gradient-tool.cpp:97 ../src/ui/tools/gradient-tool.cpp:98 msgid "Radial gradient mid stop" msgstr "Zwischenfarbe des radialen Farbverlaufs" -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:93 msgid "Mesh gradient corner" -msgstr "Gitterverlauf Ecke" +msgstr "Verlaufsgitter Ecke" -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:94 msgid "Mesh gradient handle" -msgstr "Gitterverlauf Anfasser" +msgstr "Verlaufsgitter Anfasser" -#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:95 msgid "Mesh gradient tensor" -msgstr "Gitterverlauf Tensor" +msgstr "Verlaufsgitter Tensor" #: ../src/gradient-drag.cpp:567 msgid "Added patch row or column" @@ -8805,7 +8860,7 @@ msgid "Dockitem which 'owns' this grip" msgstr "Dockobjekt, das diesen Griff \"besitzt\"" #. Name -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 #: ../src/widgets/text-toolbar.cpp:1405 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 @@ -8952,7 +9007,7 @@ msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:132 #: ../src/ui/dialog/align-and-distribute.cpp:1002 -#: ../src/ui/dialog/document-properties.cpp:153 +#: ../src/ui/dialog/document-properties.cpp:160 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 #: ../src/widgets/desktop-widget.cpp:1992 #: ../share/extensions/empty_page.inx.h:1 @@ -8968,7 +9023,7 @@ msgstr "Aktuelle Seitenzahl" #: ../src/live_effects/parameter/originalpatharray.cpp:86 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 #: ../src/ui/widget/page-sizer.cpp:258 -#: ../src/widgets/gradient-selector.cpp:140 +#: ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "Name" @@ -9042,7 +9097,7 @@ msgstr "" "Versuch, %p an ein schon gebundenes Objekt %p anzubinden (gehört momentan zu " "%p)" -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:230 msgid "Position" msgstr "Position" @@ -9356,7 +9411,7 @@ msgstr "Stich-Pfad" msgid "Fill between strokes" msgstr "Füllung und _Kontur" -#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2926 +#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2916 msgid "Fill between many" msgstr "" @@ -9553,54 +9608,58 @@ msgstr "Visuelle Rahmen" msgid "Uses the visual bounding box" msgstr "Visuelle Rahmen" -#. initialise your parameters here: -#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, -#. Geom::Point(100,100)), -#: ../src/live_effects/lpe-bspline.cpp:60 +#: ../src/live_effects/lpe-bspline.cpp:57 msgid "Steps with CTRL:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:60 +#: ../src/live_effects/lpe-bspline.cpp:57 msgid "Change number of steps with CTRL pressed" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-simplify.cpp:33 +#, fuzzy +msgid "Helper size:" +msgstr "Anfassergröße:" + +#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-simplify.cpp:33 +#, fuzzy +msgid "Helper size" +msgstr "Anfassergröße:" + +#: ../src/live_effects/lpe-bspline.cpp:59 #, fuzzy msgid "Ignore cusp nodes" msgstr "An spitzen Knoten einrasten" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:59 #, fuzzy msgid "Change ignoring cusp nodes" msgstr "Versatz der Zwischenfarben des Farbverlaufs ändern" -#: ../src/live_effects/lpe-bspline.cpp:62 +#: ../src/live_effects/lpe-bspline.cpp:60 #: ../src/live_effects/lpe-fillet-chamfer.cpp:57 #, fuzzy msgid "Change only selected nodes" msgstr "Gewählte Endknoten verbinden" -#: ../src/live_effects/lpe-bspline.cpp:63 -#, fuzzy -msgid "Show helper paths" -msgstr "An Ausschneidepfaden einrasten" - -#: ../src/live_effects/lpe-bspline.cpp:64 +#: ../src/live_effects/lpe-bspline.cpp:61 #, fuzzy msgid "Change weight:" msgstr "Deckelhöhe:" -#: ../src/live_effects/lpe-bspline.cpp:64 +#: ../src/live_effects/lpe-bspline.cpp:61 #, fuzzy msgid "Change weight of the effect" msgstr "Höhe des Filtereffekts" -#: ../src/live_effects/lpe-bspline.cpp:291 +#: ../src/live_effects/lpe-bspline.cpp:290 #, fuzzy msgid "Default weight" msgstr "Vorgegebener Titel" -#: ../src/live_effects/lpe-bspline.cpp:296 +#: ../src/live_effects/lpe-bspline.cpp:295 #, fuzzy msgid "Make cusp" msgstr "Stern erstellen" @@ -9843,7 +9902,7 @@ msgstr "Einheit:" #. initialise your parameters here: #: ../src/live_effects/lpe-fillet-chamfer.cpp:60 #: ../src/live_effects/lpe-roughen.cpp:39 ../src/live_effects/lpe-ruler.cpp:42 -#: ../src/widgets/ruler.cpp:201 +#: ../src/widgets/ruler.cpp:202 msgid "Unit" msgstr "Einheit" @@ -10013,7 +10072,7 @@ msgstr "Gehrung" #: ../src/live_effects/lpe-jointype.cpp:34 #: ../src/live_effects/lpe-taperstroke.cpp:65 -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgid "Reflected" msgstr "Reflektierend" @@ -10167,7 +10226,8 @@ msgid "Control handle 0:" msgstr "Control handle 0:" #: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:48 @@ -10175,7 +10235,8 @@ msgid "Control handle 1:" msgstr "Control handle 1:" #: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:49 @@ -10183,7 +10244,8 @@ msgid "Control handle 2:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:50 @@ -10191,7 +10253,8 @@ msgid "Control handle 3:" msgstr "Control handle 3:" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:51 @@ -10199,7 +10262,8 @@ msgid "Control handle 4:" msgstr "Control handle 4:" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:52 @@ -10207,7 +10271,8 @@ msgid "Control handle 5:" msgstr "Control handle 5:" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:53 @@ -10215,7 +10280,8 @@ msgid "Control handle 6:" msgstr "Control handle 6:" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:54 @@ -10223,7 +10289,8 @@ msgid "Control handle 7:" msgstr "Control handle 7:" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:55 @@ -10232,7 +10299,9 @@ msgid "Control handle 8x9:" msgstr "Control handle 8:" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:56 @@ -10241,7 +10310,9 @@ msgid "Control handle 10x11:" msgstr "Control handle 10:" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:57 @@ -10249,7 +10320,9 @@ msgid "Control handle 12:" msgstr "Control handle 12:" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 12 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:58 @@ -10257,7 +10330,9 @@ msgid "Control handle 13:" msgstr "Control handle 13:" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 13 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:59 @@ -10265,7 +10340,9 @@ msgid "Control handle 14:" msgstr "Control handle 14:" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 14 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:60 @@ -10273,7 +10350,9 @@ msgid "Control handle 15:" msgstr "Control handle 15:" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 15 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:61 @@ -10282,7 +10361,9 @@ msgid "Control handle 16:" msgstr "Control handle 1:" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 16 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:62 @@ -10291,7 +10372,9 @@ msgid "Control handle 17:" msgstr "Control handle 1:" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 17 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:63 @@ -10300,7 +10383,9 @@ msgid "Control handle 18:" msgstr "Control handle 1:" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 18 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:64 @@ -10309,7 +10394,9 @@ msgid "Control handle 19:" msgstr "Control handle 1:" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 19 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:65 @@ -10318,7 +10405,9 @@ msgid "Control handle 20x21:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:66 @@ -10327,7 +10416,9 @@ msgid "Control handle 22x23:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:67 @@ -10336,7 +10427,9 @@ msgid "Control handle 24x26:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:68 @@ -10345,7 +10438,9 @@ msgid "Control handle 25x27:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:69 @@ -10354,7 +10449,9 @@ msgid "Control handle 28x30:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:70 @@ -10363,7 +10460,9 @@ msgid "Control handle 29x31:" msgstr "Control handle 2:" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:71 @@ -10372,10 +10471,12 @@ msgid "Control handle 32x33x34x35:" msgstr "Control handle 3:" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click to reset" +msgid "" +"Control handle 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move " +"along axes" msgstr "" -#: ../src/live_effects/lpe-lattice2.cpp:221 +#: ../src/live_effects/lpe-lattice2.cpp:224 #, fuzzy msgid "Reset grid" msgstr "Gitter entfernen" @@ -10505,8 +10606,11 @@ msgid "Top Left" msgstr "Oben und Links" #: ../src/live_effects/lpe-perspective-envelope.cpp:47 -msgid "Top Left - Ctrl+Alt+Click to reset" +#, fuzzy +msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" +"Alt: Anfasserlänge fixieren; Strg+Alt: Entlang der Anfasser " +"verschieben" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 #, fuzzy @@ -10514,8 +10618,11 @@ msgid "Top Right" msgstr "Oben und Rechts" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 -msgid "Top Right - Ctrl+Alt+Click to reset" +#, fuzzy +msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" +"Alt: Anfasserlänge fixieren; Strg+Alt: Entlang der Anfasser " +"verschieben" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 #, fuzzy @@ -10523,8 +10630,11 @@ msgid "Down Left" msgstr "Oben und Links" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 -msgid "Down Left - Ctrl+Alt+Click to reset" +#, fuzzy +msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" +"Alt: Anfasserlänge fixieren; Strg+Alt: Entlang der Anfasser " +"verschieben" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 #, fuzzy @@ -10532,8 +10642,11 @@ msgid "Down Right" msgstr "Rechts" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 -msgid "Down Right - Ctrl+Alt+Click to reset" +#, fuzzy +msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" +"Alt: Anfasserlänge fixieren; Strg+Alt: Entlang der Anfasser " +"verschieben" #: ../src/live_effects/lpe-perspective-envelope.cpp:257 #, fuzzy @@ -10990,67 +11103,66 @@ msgid "" "you are applying it to. If this is not what you want, click Cancel." msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:29 +#: ../src/live_effects/lpe-simplify.cpp:30 #, fuzzy msgid "Steps:" msgstr "Schritte:" -#: ../src/live_effects/lpe-simplify.cpp:29 +#: ../src/live_effects/lpe-simplify.cpp:30 #, fuzzy msgid "Change number of simplify steps " msgstr "Stern: Anzahl der Ecken ändern" -#: ../src/live_effects/lpe-simplify.cpp:30 +#: ../src/live_effects/lpe-simplify.cpp:31 #, fuzzy msgid "Roughly threshold:" msgstr "Schwellwert:" -#: ../src/live_effects/lpe-simplify.cpp:31 -#, fuzzy -msgid "Helper size:" -msgstr "Anfassergröße:" - -#: ../src/live_effects/lpe-simplify.cpp:31 +#: ../src/live_effects/lpe-simplify.cpp:32 #, fuzzy -msgid "Helper size" -msgstr "Anfassergröße:" +msgid "Smooth angles:" +msgstr "Glattheit:" #: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Max degree difference on handles to preform a smooth" +msgstr "" + +#: ../src/live_effects/lpe-simplify.cpp:34 #, fuzzy msgid "Helper nodes" msgstr "Knoten löschen" -#: ../src/live_effects/lpe-simplify.cpp:32 +#: ../src/live_effects/lpe-simplify.cpp:34 #, fuzzy msgid "Show helper nodes" msgstr "Knoten absenken" -#: ../src/live_effects/lpe-simplify.cpp:34 +#: ../src/live_effects/lpe-simplify.cpp:36 #, fuzzy msgid "Helper handles" msgstr "Anfasser skalieren" -#: ../src/live_effects/lpe-simplify.cpp:34 +#: ../src/live_effects/lpe-simplify.cpp:36 #, fuzzy msgid "Show helper handles" msgstr "Anfasser zeigen" -#: ../src/live_effects/lpe-simplify.cpp:36 +#: ../src/live_effects/lpe-simplify.cpp:38 #, fuzzy msgid "Paths separately" msgstr "Größe getrennt einfügen" -#: ../src/live_effects/lpe-simplify.cpp:36 +#: ../src/live_effects/lpe-simplify.cpp:38 #, fuzzy msgid "Simplifying paths (separately)" msgstr "Vereinfache Pfade (getrennt):" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:40 #, fuzzy msgid "Just coalesce" msgstr "Nur Werkzeuge überprüfen" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:40 #, fuzzy msgid "Simplify just coalesce" msgstr "Farben vereinfachen" @@ -11368,7 +11480,7 @@ msgid "Select original" msgstr "Original auswählen" #: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1202 +#: ../src/widgets/gradient-toolbar.cpp:1205 msgid "Reverse" msgstr "Umkehren" @@ -11384,13 +11496,13 @@ msgid "Remove Path" msgstr "Von Pfad _trennen" #: ../src/live_effects/parameter/originalpatharray.cpp:183 -#: ../src/ui/dialog/objects.cpp:1847 +#: ../src/ui/dialog/objects.cpp:1823 #, fuzzy msgid "Move Down" msgstr "Verschiebungsmodus" #: ../src/live_effects/parameter/originalpatharray.cpp:195 -#: ../src/ui/dialog/objects.cpp:1862 +#: ../src/ui/dialog/objects.cpp:1831 #, fuzzy msgid "Move Up" msgstr "Pfad verschieben" @@ -11434,8 +11546,7 @@ msgstr "Mit Pfad aus der Zwischenablage verknüpfen" msgid "Paste path parameter" msgstr "Pfadparameter einfügen" -#: ../src/live_effects/parameter/point.cpp:89 -#: ../src/live_effects/parameter/pointreseteable.cpp:103 +#: ../src/live_effects/parameter/point.cpp:103 msgid "Change point parameter" msgstr "Punktparameter ändern" @@ -11476,13 +11587,13 @@ msgstr "Einheitenparameter ändern" #, c-format msgid "Unable to find verb ID '%s' specified on the command line.\n" msgstr "" -"Kann Verben-Kennung »%s«, die per Kommandozeile übergeben wurde, nicht " +"Kann Verben-Kennung „%s“, die per Kommandozeile übergeben wurde, nicht " "finden.\n" #: ../src/main-cmdlineact.cpp:60 #, c-format msgid "Unable to find node ID: '%s'\n" -msgstr "Kann Knoten-Kennung »%s« nicht finden.\n" +msgstr "Kann Knoten-Kennung „%s“ nicht finden.\n" #: ../src/main.cpp:295 msgid "Print the Inkscape version number" @@ -11496,7 +11607,7 @@ msgstr "X-Server nicht verwenden (Dateien nur mittels Konsole verarbeiten)" msgid "Try to use X server (even if $DISPLAY is not set)" msgstr "" "Versuche, den X-Server zu verwenden (auch wenn die Umgebungsvariable " -"»$DISPLAY« nicht gesetzt wurde)" +"„$DISPLAY“ nicht gesetzt wurde)" #: ../src/main.cpp:310 msgid "Open specified document(s) (option string may be excluded)" @@ -11512,7 +11623,7 @@ msgstr "DATEINAME" #: ../src/main.cpp:315 msgid "Print document(s) to specified output file (use '| program' for pipe)" msgstr "" -"Dokumente in angegebene Ausgabedatei drucken (verwenden Sie »| Programm« zur " +"Dokumente in angegebene Ausgabedatei drucken (verwenden Sie „| Programm“ zur " "Weiterleitung)" #: ../src/main.cpp:320 @@ -11538,7 +11649,7 @@ msgid "" "corner)" msgstr "" "Exportierter Bereich in SVG-Benutzereinheiten (Vorgabe: gesamte " -"Zeichenfläche, »0,0« ist die untere linke Ecke)" +"Zeichenfläche, „0,0“ ist die untere linke Ecke)" #: ../src/main.cpp:331 msgid "x0:y0:x1:y1" @@ -11805,100 +11916,95 @@ msgstr "" msgid "_File" msgstr "_Datei" -#. Tag -#: ../src/menus-skeleton.h:17 ../src/verbs.cpp:2726 -msgid "_New" -msgstr "_Neu" - #. " \n" #. " \n" -#: ../src/menus-skeleton.h:43 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 +#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 msgid "_Edit" msgstr "_Bearbeiten" -#: ../src/menus-skeleton.h:53 ../src/verbs.cpp:2477 +#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 msgid "Paste Si_ze" msgstr "_Größe einfügen" -#: ../src/menus-skeleton.h:65 +#: ../src/menus-skeleton.h:63 msgid "Clo_ne" msgstr "_Klonen" -#: ../src/menus-skeleton.h:79 +#: ../src/menus-skeleton.h:77 msgid "Select Sa_me" msgstr "Das Gleiche auswählen" -#: ../src/menus-skeleton.h:97 +#: ../src/menus-skeleton.h:95 msgid "_View" msgstr "_Ansicht" -#: ../src/menus-skeleton.h:98 +#: ../src/menus-skeleton.h:96 msgid "_Zoom" msgstr "_Zoomfaktor" -#: ../src/menus-skeleton.h:114 +#: ../src/menus-skeleton.h:112 msgid "_Display mode" msgstr "_Anzeigemodus" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:123 +#: ../src/menus-skeleton.h:121 msgid "_Color display mode" msgstr "Farb-Anzeigemodus" #. Better location in menu needs to be found #. " \n" #. " \n" -#: ../src/menus-skeleton.h:136 +#: ../src/menus-skeleton.h:134 msgid "Sh_ow/Hide" msgstr "Anzeigen/Ausblenden" #. Not quite ready to be in the menus. #. " \n" -#: ../src/menus-skeleton.h:156 +#: ../src/menus-skeleton.h:154 msgid "_Layer" msgstr "_Ebene" -#: ../src/menus-skeleton.h:180 +#: ../src/menus-skeleton.h:178 msgid "_Object" msgstr "_Objekt" -#: ../src/menus-skeleton.h:191 +#: ../src/menus-skeleton.h:189 msgid "Cli_p" msgstr "Ausschneide_pfad" -#: ../src/menus-skeleton.h:195 +#: ../src/menus-skeleton.h:193 msgid "Mas_k" msgstr "_Maskierung" -#: ../src/menus-skeleton.h:199 +#: ../src/menus-skeleton.h:197 msgid "Patter_n" msgstr "M_uster" -#: ../src/menus-skeleton.h:223 +#: ../src/menus-skeleton.h:221 msgid "_Path" msgstr "_Pfad" -#: ../src/menus-skeleton.h:251 ../src/ui/dialog/find.cpp:77 +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:78 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "_Text" # !!! -#: ../src/menus-skeleton.h:269 +#: ../src/menus-skeleton.h:267 msgid "Filter_s" msgstr "_Filter" -#: ../src/menus-skeleton.h:275 +#: ../src/menus-skeleton.h:273 msgid "Exte_nsions" msgstr "E_rweiterungen" -#: ../src/menus-skeleton.h:281 +#: ../src/menus-skeleton.h:279 msgid "_Help" msgstr "_Hilfe" -#: ../src/menus-skeleton.h:285 +#: ../src/menus-skeleton.h:283 msgid "Tutorials" msgstr "Einführungen" @@ -11968,11 +12074,11 @@ msgstr "Pfadrichtung umkehren" msgid "No paths to reverse in the selection." msgstr "Die Auswahl enthält keine Pfade zum Umkehren." -#: ../src/persp3d.cpp:333 +#: ../src/persp3d.cpp:323 msgid "Toggle vanishing point" msgstr "Fluchtpunkt umschalten" -#: ../src/persp3d.cpp:344 +#: ../src/persp3d.cpp:334 msgid "Toggle multiple vanishing points" msgstr "Multiple Fluchtpunkte umschalten" @@ -12089,8 +12195,10 @@ msgstr "FreeArt" msgid "Open Font License" msgstr "Open-Font-Lizenz" +#. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1952 +#: ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "Titel:" @@ -12240,7 +12348,7 @@ msgstr "Fragment:" #: ../src/rdf.cpp:296 msgid "XML fragment for the RDF 'License' section" -msgstr "XML-Fragment für den RDF-Abschnitt »Lizenz«" +msgstr "XML-Fragment für den RDF-Abschnitt „Lizenz“" #: ../src/resource-manager.cpp:332 msgid "Fixup broken links" @@ -12256,11 +12364,11 @@ msgstr "Es wurde nichts gelöscht." #: ../src/selection-chemistry.cpp:433 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:974 +#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 #: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1178 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1181 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-toolbar.cpp:1209 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "Löschen" @@ -12291,7 +12399,7 @@ msgstr "" msgid "No groups to ungroup in the selection." msgstr "Keine Gruppe zum Aufheben in dieser Auswahl." -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:571 +#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:575 msgid "Ungroup" msgstr "Gruppierung aufheben" @@ -12390,145 +12498,145 @@ msgstr "Größe einfügen" msgid "Paste size separately" msgstr "Größe getrennt einfügen" -#: ../src/selection-chemistry.cpp:1330 +#: ../src/selection-chemistry.cpp:1349 msgid "Select object(s) to move to the layer above." msgstr "" "Objekt(e) auswählen, welche eine Ebene weiter nach oben verschoben " "werden sollen." -#: ../src/selection-chemistry.cpp:1356 +#: ../src/selection-chemistry.cpp:1376 msgid "Raise to next layer" msgstr "Auf nächste Ebene anheben" -#: ../src/selection-chemistry.cpp:1363 +#: ../src/selection-chemistry.cpp:1383 msgid "No more layers above." msgstr "Keine weiteren Ebenen über dieser." -#: ../src/selection-chemistry.cpp:1375 +#: ../src/selection-chemistry.cpp:1395 msgid "Select object(s) to move to the layer below." msgstr "" "Objekt(e) auswählen, welche in die Ebene darunter verschoben werden " "sollen." -#: ../src/selection-chemistry.cpp:1401 +#: ../src/selection-chemistry.cpp:1422 msgid "Lower to previous layer" msgstr "Zur nächsten Ebene absenken" -#: ../src/selection-chemistry.cpp:1408 +#: ../src/selection-chemistry.cpp:1429 msgid "No more layers below." msgstr "Keine weiteren Ebenen unter dieser." -#: ../src/selection-chemistry.cpp:1420 +#: ../src/selection-chemistry.cpp:1441 msgid "Select object(s) to move." msgstr "Objekt(e) zum Verschieben auswählen." -#: ../src/selection-chemistry.cpp:1437 ../src/verbs.cpp:2656 +#: ../src/selection-chemistry.cpp:1459 ../src/verbs.cpp:2656 msgid "Move selection to layer" msgstr "Auswahl zur Ebene verschieben" #. An SVG element cannot have a transform. We could change 'x' and 'y' in response #. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1527 ../src/seltrans.cpp:388 +#: ../src/selection-chemistry.cpp:1549 ../src/seltrans.cpp:388 msgid "Cannot transform an embedded SVG." msgstr "Kann ein eingebettetes SVG nicht verändern." -#: ../src/selection-chemistry.cpp:1698 +#: ../src/selection-chemistry.cpp:1720 msgid "Remove transform" msgstr "Transformationen zurücksetzen" -#: ../src/selection-chemistry.cpp:1805 +#: ../src/selection-chemistry.cpp:1827 msgid "Rotate 90° CCW" msgstr "90° gegen den Uhrzeigersinn drehen" -#: ../src/selection-chemistry.cpp:1805 +#: ../src/selection-chemistry.cpp:1827 msgid "Rotate 90° CW" msgstr "90° im Uhrzeigersinn drehen" -#: ../src/selection-chemistry.cpp:1826 ../src/seltrans.cpp:483 +#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 #: ../src/ui/dialog/transformation.cpp:893 msgid "Rotate" msgstr "Drehen" -#: ../src/selection-chemistry.cpp:2214 +#: ../src/selection-chemistry.cpp:2204 msgid "Rotate by pixels" msgstr "Um Pixel rotieren" -#: ../src/selection-chemistry.cpp:2244 ../src/seltrans.cpp:480 +#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 #: ../src/ui/dialog/transformation.cpp:868 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "Skalieren" -#: ../src/selection-chemistry.cpp:2269 +#: ../src/selection-chemistry.cpp:2259 msgid "Scale by whole factor" msgstr "Um einen ganzzahligen Faktor skalieren" -#: ../src/selection-chemistry.cpp:2284 +#: ../src/selection-chemistry.cpp:2274 msgid "Move vertically" msgstr "Vertikal verschieben" -#: ../src/selection-chemistry.cpp:2287 +#: ../src/selection-chemistry.cpp:2277 msgid "Move horizontally" msgstr "Horizontal verschieben" -#: ../src/selection-chemistry.cpp:2290 ../src/selection-chemistry.cpp:2316 +#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 #: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 msgid "Move" msgstr "Verschieben" -#: ../src/selection-chemistry.cpp:2310 +#: ../src/selection-chemistry.cpp:2300 msgid "Move vertically by pixels" msgstr "Vertikal um einzelne Pixel verschieben" -#: ../src/selection-chemistry.cpp:2313 +#: ../src/selection-chemistry.cpp:2303 msgid "Move horizontally by pixels" msgstr "Horizontal um einzelne Pixel verschieben" -#: ../src/selection-chemistry.cpp:2445 +#: ../src/selection-chemistry.cpp:2435 msgid "The selection has no applied path effect." msgstr "Auf die Selektion ist kein Pfadeffekt angewandt." -#: ../src/selection-chemistry.cpp:2617 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 msgid "Select an object to clone." msgstr "Zu klonendes Objekt auswählen." -#: ../src/selection-chemistry.cpp:2653 +#: ../src/selection-chemistry.cpp:2643 msgctxt "Action" msgid "Clone" msgstr "Klone" -#: ../src/selection-chemistry.cpp:2669 +#: ../src/selection-chemistry.cpp:2659 msgid "Select clones to relink." msgstr "Klon auswählen, um wieder zu verknüpfen" -#: ../src/selection-chemistry.cpp:2676 +#: ../src/selection-chemistry.cpp:2666 msgid "Copy an object to clipboard to relink clones to." msgstr "Kopiert ein Objekt in die Ablage als Elter für Klone." -#: ../src/selection-chemistry.cpp:2699 +#: ../src/selection-chemistry.cpp:2689 msgid "No clones to relink in the selection." msgstr "" "Keine Klone in der Auswahl, deren Verknüpfung erneut gesetzt werden " "kann." -#: ../src/selection-chemistry.cpp:2702 +#: ../src/selection-chemistry.cpp:2692 msgid "Relink clone" msgstr "Klon wiederverbinden" -#: ../src/selection-chemistry.cpp:2716 +#: ../src/selection-chemistry.cpp:2706 msgid "Select clones to unlink." msgstr "Klon auswählen, dessen Verknüpfung aufgehoben werden soll." -#: ../src/selection-chemistry.cpp:2772 +#: ../src/selection-chemistry.cpp:2762 msgid "No clones to unlink in the selection." msgstr "" "Keine Klone in der Auswahl, deren Verknüpfung aufgehoben werden kann." -#: ../src/selection-chemistry.cpp:2776 +#: ../src/selection-chemistry.cpp:2766 msgid "Unlink clone" msgstr "Klonverbindung auftrennen" -#: ../src/selection-chemistry.cpp:2789 +#: ../src/selection-chemistry.cpp:2779 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 " @@ -12539,7 +12647,7 @@ msgstr "" "den Ausgangspfad zu finden. Fließtextpfad auswählen, um seinen Rahmen " "zu finden." -#: ../src/selection-chemistry.cpp:2837 +#: ../src/selection-chemistry.cpp:2827 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" @@ -12547,7 +12655,7 @@ msgstr "" "Gesuchtes Objekt nicht gefunden - vielleicht ist der Klon, der " "verbundene Versatz, der Textpfad oder der Fließtext verwaist?" -#: ../src/selection-chemistry.cpp:2843 +#: ../src/selection-chemistry.cpp:2833 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" @@ -12555,138 +12663,138 @@ msgstr "" "Dieses Objekt kann nicht ausgewählt werden - es ist unsichtbar und " "befindet sich in <defs>" -#: ../src/selection-chemistry.cpp:2932 +#: ../src/selection-chemistry.cpp:2922 #, fuzzy msgid "Select path(s) to fill." msgstr "Pfad zum Vereinfachen auswählen." -#: ../src/selection-chemistry.cpp:2950 +#: ../src/selection-chemistry.cpp:2940 msgid "Select object(s) to convert to marker." msgstr "" "Objekt(e) auswählen, die in eine Knotenmarkierung umgewandelt werden " "sollen." -#: ../src/selection-chemistry.cpp:3025 +#: ../src/selection-chemistry.cpp:3015 msgid "Objects to marker" msgstr "Objekte zu Knotenmarkierung" -#: ../src/selection-chemistry.cpp:3050 +#: ../src/selection-chemistry.cpp:3040 msgid "Select object(s) to convert to guides." msgstr "Objekt(e) auswählen, die in Führungs umgewandelt werden sollen." -#: ../src/selection-chemistry.cpp:3073 +#: ../src/selection-chemistry.cpp:3063 msgid "Objects to guides" msgstr "Objekte zu Hilfslinien" -#: ../src/selection-chemistry.cpp:3109 +#: ../src/selection-chemistry.cpp:3099 msgid "Select objects to convert to symbol." msgstr "Wählen Sie Objekte zum Konvertieren in ein Symbol aus." -#: ../src/selection-chemistry.cpp:3212 +#: ../src/selection-chemistry.cpp:3202 msgid "Group to symbol" msgstr "Gruppieren zum Symbol" -#: ../src/selection-chemistry.cpp:3231 +#: ../src/selection-chemistry.cpp:3221 msgid "Select a symbol to extract objects from." msgstr "Wählen Sie ein Symbol, um Objekte daraus zu entnehmen." -#: ../src/selection-chemistry.cpp:3240 +#: ../src/selection-chemistry.cpp:3230 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" "Wählen Sie nur einSymbol aus, um es in eine Gruppe zu konvertieren." -#: ../src/selection-chemistry.cpp:3298 +#: ../src/selection-chemistry.cpp:3288 msgid "Group from symbol" msgstr "Gruppieren vom Symbol" -#: ../src/selection-chemistry.cpp:3316 +#: ../src/selection-chemistry.cpp:3306 msgid "Select object(s) to convert to pattern." msgstr "" "Objekt(e) auswählen, die in ein Füllmuster umgewandelt werden sollen." -#: ../src/selection-chemistry.cpp:3415 +#: ../src/selection-chemistry.cpp:3405 msgid "Objects to pattern" msgstr "Objekte in Füllmuster umwandeln" -#: ../src/selection-chemistry.cpp:3431 +#: ../src/selection-chemistry.cpp:3421 msgid "Select an object with pattern fill to extract objects from." msgstr "" "Ein Objekt mit Musterfüllung auswählen, um die Füllung zu extrahieren." -#: ../src/selection-chemistry.cpp:3492 +#: ../src/selection-chemistry.cpp:3482 msgid "No pattern fills in the selection." msgstr "Die Auswahl enthält keine Musterfüllung." -#: ../src/selection-chemistry.cpp:3495 +#: ../src/selection-chemistry.cpp:3485 msgid "Pattern to objects" msgstr "Füllmuster in Objekte umwandeln" -#: ../src/selection-chemistry.cpp:3586 +#: ../src/selection-chemistry.cpp:3576 msgid "Select object(s) to make a bitmap copy." msgstr "Objekt(e) auswählen, um eine Bitmap-Kopie zu erstellen." -#: ../src/selection-chemistry.cpp:3590 +#: ../src/selection-chemistry.cpp:3580 msgid "Rendering bitmap..." msgstr "Bitmap wird gerendert..." -#: ../src/selection-chemistry.cpp:3777 +#: ../src/selection-chemistry.cpp:3767 msgid "Create bitmap" msgstr "Bitmap erstellen" -#: ../src/selection-chemistry.cpp:3802 ../src/selection-chemistry.cpp:3921 +#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 msgid "Select object(s) to create clippath or mask from." msgstr "" "Objekt(e) auswählen, um Ausschneidepfad oder Maskierung daraus zu " "erzeugen." -#: ../src/selection-chemistry.cpp:3895 +#: ../src/selection-chemistry.cpp:3885 #, fuzzy msgid "Create Clip Group" msgstr "_Klon erzeugen" -#: ../src/selection-chemistry.cpp:3924 +#: ../src/selection-chemistry.cpp:3914 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" "Maskierungsobjekt und Objekt(e) auswählen, um Ausschneidepfad oder " "Maskierung darauf anzuwenden." -#: ../src/selection-chemistry.cpp:4105 +#: ../src/selection-chemistry.cpp:4095 msgid "Set clipping path" msgstr "Ausschneidepfad setzen" -#: ../src/selection-chemistry.cpp:4107 +#: ../src/selection-chemistry.cpp:4097 msgid "Set mask" msgstr "Maskierung setzen" -#: ../src/selection-chemistry.cpp:4122 +#: ../src/selection-chemistry.cpp:4112 msgid "Select object(s) to remove clippath or mask from." msgstr "" "Objekt(e) auswählen, um Ausschneidepfad oder Maskierung davon zu " "entfernen." -#: ../src/selection-chemistry.cpp:4242 +#: ../src/selection-chemistry.cpp:4232 msgid "Release clipping path" msgstr "Ausschneidepfad entfernen" -#: ../src/selection-chemistry.cpp:4244 +#: ../src/selection-chemistry.cpp:4234 msgid "Release mask" msgstr "Maskierung entfernen" -#: ../src/selection-chemistry.cpp:4263 +#: ../src/selection-chemistry.cpp:4253 msgid "Select object(s) to fit canvas to." msgstr "" "Objekt(e) auswählen, auf die die Arbeitsfläche angepasst werden soll." #. Fit Page -#: ../src/selection-chemistry.cpp:4283 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 msgid "Fit Page to Selection" msgstr "Seite in Auswahl einpassen" -#: ../src/selection-chemistry.cpp:4312 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 msgid "Fit Page to Drawing" msgstr "Seite in Zeichnungsgröße einpassen" -#: ../src/selection-chemistry.cpp:4333 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 msgid "Fit Page to Selection or Drawing" msgstr "Seite in Auswahl oder ganze Zeichnung einpassen" @@ -12771,10 +12879,10 @@ msgstr "Umschalt+D zum Finden des Rahmens verwenden" #: ../src/selection-describer.cpp:236 #, c-format -msgid "%i objects selected of type %s" -msgid_plural "%i objects selected of types %s" -msgstr[0] "%i Objekte des Typs %s ausgewählt" -msgstr[1] "%i Objekte der Typen %s ausgewählt" +msgid "%1$i objects selected of type %2$s" +msgid_plural "%1$i objects selected of types %2$s" +msgstr[0] "%1$i Objekte des Typs %2$s ausgewählt" +msgstr[1] "%1$i Objekte der Typen %2$s ausgewählt" #: ../src/selection-describer.cpp:246 #, c-format @@ -12889,36 +12997,36 @@ msgstr "Wählen Sie einen Namen für die zu exportierende Datei" msgid "Select a file to import" msgstr "Wählen Sie die zu importierende Datei" -#: ../src/sp-anchor.cpp:125 +#: ../src/sp-anchor.cpp:111 #, c-format msgid "to %s" msgstr "zu %s" -#: ../src/sp-anchor.cpp:129 +#: ../src/sp-anchor.cpp:115 msgid "without URI" msgstr "ohne URI" -#: ../src/sp-ellipse.cpp:373 +#: ../src/sp-ellipse.cpp:344 msgid "Segment" msgstr "Segment" -#: ../src/sp-ellipse.cpp:375 +#: ../src/sp-ellipse.cpp:346 msgid "Arc" msgstr "Bogen" #. Ellipse -#: ../src/sp-ellipse.cpp:378 ../src/sp-ellipse.cpp:385 +#: ../src/sp-ellipse.cpp:349 ../src/sp-ellipse.cpp:356 #: ../src/ui/dialog/inkscape-preferences.cpp:412 #: ../src/widgets/pencil-toolbar.cpp:163 msgid "Ellipse" msgstr "Ellipse" -#: ../src/sp-ellipse.cpp:382 +#: ../src/sp-ellipse.cpp:353 msgid "Circle" msgstr "Kreis" #. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:195 +#: ../src/sp-flowregion.cpp:181 msgid "Flow Region" msgstr "Fließtextbereich" @@ -12926,44 +13034,44 @@ msgstr "Fließtextbereich" #. * 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:348 +#: ../src/sp-flowregion.cpp:334 msgid "Flow Excluded Region" msgstr "Ausgeschlossenen Bereich umfließen" -#: ../src/sp-flowtext.cpp:290 +#: ../src/sp-flowtext.cpp:280 msgid "Flowed Text" msgstr "Fließtext" -#: ../src/sp-flowtext.cpp:292 +#: ../src/sp-flowtext.cpp:282 msgid "Linked Flowed Text" msgstr "Verknüpfter Fließtext" -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:381 -#: ../src/ui/tools/text-tool.cpp:1566 +#: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 +#: ../src/ui/tools/text-tool.cpp:1557 msgid " [truncated]" msgstr "[abgestumpft}" -#: ../src/sp-flowtext.cpp:300 +#: ../src/sp-flowtext.cpp:290 #, c-format msgid "(%d character%s)" msgid_plural "(%d characters%s)" msgstr[0] "(%d Zeichen%s)" msgstr[1] "(%d Zeichen%s)" -#: ../src/sp-guide.cpp:249 +#: ../src/sp-guide.cpp:246 msgid "Create Guides Around the Page" -msgstr "Führungslinien an Seitenrändern erstellen" +msgstr "Hilfslinien an Seitenrändern erstellen" -#: ../src/sp-guide.cpp:261 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2549 msgid "Delete All Guides" -msgstr "Führungslinien löschen" +msgstr "Hilfslinien löschen" #. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:448 +#: ../src/sp-guide.cpp:445 msgid "Deleted" msgstr "Gelöscht" -#: ../src/sp-guide.cpp:457 +#: ../src/sp-guide.cpp:454 msgid "" "Shift+drag to rotate, Ctrl+drag to move origin, Del to " "delete" @@ -12971,48 +13079,48 @@ msgstr "" "Umschalt+Ziehen rotiert, Strg+Ziehen bewegt Ursprung, Entf löscht." -#: ../src/sp-guide.cpp:461 +#: ../src/sp-guide.cpp:458 #, c-format msgid "vertical, at %s" -msgstr "Vertikale Führungslinie bei %s" +msgstr "Vertikale Hilfslinie bei %s" -#: ../src/sp-guide.cpp:464 +#: ../src/sp-guide.cpp:461 #, c-format msgid "horizontal, at %s" -msgstr "Horizontale Führungslinie bei %s" +msgstr "Horizontale Hilfslinie bei %s" -#: ../src/sp-guide.cpp:469 +#: ../src/sp-guide.cpp:466 #, c-format msgid "at %d degrees, through (%s,%s)" msgstr "bei %d Grad, durch (%s, %s)" -#: ../src/sp-image.cpp:526 +#: ../src/sp-image.cpp:517 msgid "embedded" msgstr "eingebettet" -#: ../src/sp-image.cpp:534 +#: ../src/sp-image.cpp:525 #, c-format msgid "[bad reference]: %s" msgstr "[falsche Referenz]: %s" -#: ../src/sp-image.cpp:535 +#: ../src/sp-image.cpp:526 #, c-format msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:332 +#: ../src/sp-item-group.cpp:322 msgid "Group" -msgstr "Gruppieren" +msgstr "Gruppe" -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 #, c-format msgid "of %d object" -msgstr "von %d Objekt" +msgstr "aus %d Objekt" -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 #, c-format msgid "of %d objects" -msgstr "von %d Objekten" +msgstr "aus %d Objekten" #: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 msgid "Object" @@ -13038,7 +13146,7 @@ msgstr "%s; gefiltert (%s)" msgid "%s; filtered" msgstr "%s; gefiltert" -#: ../src/sp-line.cpp:126 +#: ../src/sp-line.cpp:113 msgid "Line" msgstr "Linie" @@ -13046,103 +13154,103 @@ msgstr "Linie" msgid "An exception occurred during execution of the Path Effect." msgstr "Beim ausführen des Pfadeffektes ist ein Fehler aufgetreten." -#: ../src/sp-offset.cpp:339 +#: ../src/sp-offset.cpp:329 msgid "Linked Offset" msgstr "Verbundener Versatz" -#: ../src/sp-offset.cpp:341 +#: ../src/sp-offset.cpp:331 msgid "Dynamic Offset" msgstr "Dynamischer Versatz" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:347 +#: ../src/sp-offset.cpp:337 #, c-format msgid "%s by %f pt" msgstr "%s von %f Pkt." -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:338 msgid "outset" msgstr "erweitert" -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:338 msgid "inset" msgstr "geschrumpft" -#: ../src/sp-path.cpp:70 +#: ../src/sp-path.cpp:60 msgid "Path" msgstr "Pfad" -#: ../src/sp-path.cpp:95 +#: ../src/sp-path.cpp:85 #, c-format msgid ", path effect: %s" msgstr ", Pfadeffekt: %s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:88 #, c-format msgid "%i node%s" msgstr "%i Knoten%s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:88 #, c-format msgid "%i nodes%s" msgstr "%i Knoten%s" # !!! -#: ../src/sp-polygon.cpp:185 +#: ../src/sp-polygon.cpp:173 msgid "Polygon" msgstr "Polygon" # !!! -#: ../src/sp-polyline.cpp:131 +#: ../src/sp-polyline.cpp:121 msgid "Polyline" msgstr "Linienzug" #. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:153 ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Rectangle" msgstr "Rechteck" #. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:420 +#: ../src/sp-spiral.cpp:220 ../src/ui/dialog/inkscape-preferences.cpp:420 #: ../share/extensions/gcodetools_area.inx.h:11 msgid "Spiral" msgstr "Spirale" #. TRANSLATORS: since turn count isn't an integer, please adjust the #. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 +#: ../src/sp-spiral.cpp:226 #, c-format msgid "with %3f turns" msgstr "mit %3f Windungen" #. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 #: ../src/widgets/star-toolbar.cpp:471 msgid "Star" msgstr "Stern" -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:464 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:464 msgid "Polygon" msgstr "Polygon" #. while there will never be less than 3 vertices, we still need to #. make calls to ngettext because the pluralization may be different #. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertex" msgstr "mit %d Eckpunkt" -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertices" msgstr "mit %d Eckpunkten" -#: ../src/sp-switch.cpp:76 +#: ../src/sp-switch.cpp:62 msgid "Conditional Group" msgstr "Bedingte Gruppe" -#: ../src/sp-text.cpp:365 ../src/verbs.cpp:348 +#: ../src/sp-text.cpp:351 ../src/verbs.cpp:348 #: ../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 @@ -13157,56 +13265,56 @@ msgstr "Bedingte Gruppe" msgid "Text" msgstr "Text" -#: ../src/sp-text.cpp:385 +#: ../src/sp-text.cpp:371 #, c-format msgid "on path%s (%s, %s)" msgstr "an Pfad%s (%s, %s)" -#: ../src/sp-text.cpp:386 +#: ../src/sp-text.cpp:372 #, c-format msgid "%s (%s, %s)" msgstr "%s (%s, %s)" -#: ../src/sp-tref.cpp:230 +#: ../src/sp-tref.cpp:218 msgid "Cloned Character Data" msgstr "Geklonte Zeichendaten" -#: ../src/sp-tref.cpp:246 +#: ../src/sp-tref.cpp:234 msgid " from " msgstr " von " -#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:281 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:269 msgid "[orphaned]" msgstr "[verwaist]" -#: ../src/sp-tspan.cpp:218 +#: ../src/sp-tspan.cpp:203 msgid "Text Span" msgstr "Textspanne" -#: ../src/sp-use.cpp:244 +#: ../src/sp-use.cpp:232 msgid "Symbol" msgstr "Symbol" -#: ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:234 msgid "Clone" msgstr "Klone" -#: ../src/sp-use.cpp:254 ../src/sp-use.cpp:256 ../src/sp-use.cpp:258 +#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 #, c-format msgid "called %s" msgstr "%s aufgerufen" -#: ../src/sp-use.cpp:258 +#: ../src/sp-use.cpp:246 msgid "Unnamed Symbol" msgstr "Unbenanntes Symbol" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:267 +#: ../src/sp-use.cpp:255 msgid "..." msgstr "..." -#: ../src/sp-use.cpp:276 +#: ../src/sp-use.cpp:264 #, c-format msgid "of: %s" msgstr "von: %s" @@ -13638,7 +13746,7 @@ msgid "Rearrange" msgstr "Anordnen" #: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1727 +#: ../src/widgets/toolbox.cpp:1729 msgid "Nodes" msgstr "Knoten" @@ -14547,19 +14655,19 @@ msgstr "" msgid "Creating tiled clones..." msgstr "Geschachtelte Klone erstellen..." -#: ../src/ui/dialog/clonetiler.cpp:2651 +#: ../src/ui/dialog/clonetiler.cpp:2654 msgid "Create tiled clones" msgstr "Gekachelte Klone erzeugen" -#: ../src/ui/dialog/clonetiler.cpp:2884 +#: ../src/ui/dialog/clonetiler.cpp:2887 msgid "Per row:" msgstr "Pro Reihe:" -#: ../src/ui/dialog/clonetiler.cpp:2902 +#: ../src/ui/dialog/clonetiler.cpp:2905 msgid "Per column:" msgstr "Pro Spalte:" -#: ../src/ui/dialog/clonetiler.cpp:2910 +#: ../src/ui/dialog/clonetiler.cpp:2913 msgid "Randomize:" msgstr "Zufallsfaktor:" @@ -14616,66 +14724,66 @@ msgid "Release log messages" msgstr "Fehlerprotokoll verwerfen" #: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:159 +#: ../src/ui/dialog/document-properties.cpp:166 msgid "Metadata" msgstr "Metadaten" #: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:160 +#: ../src/ui/dialog/document-properties.cpp:167 msgid "License" msgstr "Nutzungsbedingungen - Lizenz" # !!! #: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1007 +#: ../src/ui/dialog/document-properties.cpp:978 msgid "Dublin Core Entities" msgstr "Dublin-Core-Entities" #: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1069 +#: ../src/ui/dialog/document-properties.cpp:1040 msgid "License" msgstr "Lizenz" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "Use antialiasing" msgstr "Kantenglättung verwenden" -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "If unset, no antialiasing will be done on the drawing" msgstr "Wenn abgewählt, erfolgt keine Kantenglättung" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:119 msgid "Show page _border" msgstr "_Rand der Seite anzeigen" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:119 msgid "If set, rectangular page border is shown" msgstr "Wenn gesetzt, dann wird ein rechteckiger Seitenrand gezeigt" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Border on _top of drawing" msgstr "Rand im _Vordergrund anzeigen" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "If set, border is always on top of the drawing" msgstr "Wenn gesetzt, dann ist der Rand immmer im Vordergrund" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "_Show border shadow" msgstr "Rand_schatten anzeigen" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "If set, page border shows a shadow on its right and lower side" msgstr "" "Wenn gesetzt, dann zeigt der Seitenrand einen Schatten an der rechten und " "unteren Seite" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "Back_ground color:" msgstr "Hintergrundfarbe:" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "" "Color of the page background. Note: transparency setting ignored while " "editing but used when exporting to bitmap." @@ -14684,83 +14792,82 @@ msgstr "" "während der Bearbeitung ignoriert, aber genutzt, wenn es als Bitmap " "exportiert wird." -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Border _color:" msgstr "_Randfarbe:" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Page border color" msgstr "Randfarbe der Zeichenfläche" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Color of the page border" msgstr "Randfarbe der Zeichenfläche" -#: ../src/ui/dialog/document-properties.cpp:117 -#, fuzzy +#: ../src/ui/dialog/document-properties.cpp:124 msgid "Display _units:" -msgstr "Gitter-Raster_einheiten:" +msgstr "Anzeigeeinheiten:" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:128 msgid "Show _guides" -msgstr "_Führungslinien anzeigen" +msgstr "_Hilfslinien anzeigen" -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:128 msgid "Show or hide guides" -msgstr "Führungslinien anzeigen oder ausblenden" +msgstr "Hilfslinien anzeigen oder ausblenden" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Guide co_lor:" -msgstr "F_arbe der Führungslinien:" +msgstr "F_arbe der Hilfslinien:" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Guideline color" -msgstr "Farbe der Führungslinien" +msgstr "Farbe der Hilfslinien" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Color of guidelines" -msgstr "Farbe der Führungslinien" +msgstr "Farbe der Hilfslinien" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "_Highlight color:" msgstr "_Hervorhebungsfarbe:" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Highlighted guideline color" -msgstr "Farbe der hervorgehobenen Führungslinien" +msgstr "Farbe der hervorgehobenen Hilfslinien" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Color of a guideline when it is under mouse" -msgstr "Farbe der Führungslinie falls unter dem Mauszeiger" +msgstr "Farbe der Hilfslinie falls unter dem Mauszeiger" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:132 msgid "Snap _distance" msgstr "Einrastabstand" -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:132 msgid "Snap only when _closer than:" msgstr "Nur einrasten, wenn _näher als:" -#: ../src/ui/dialog/document-properties.cpp:125 -#: ../src/ui/dialog/document-properties.cpp:130 -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:132 +#: ../src/ui/dialog/document-properties.cpp:137 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Always snap" msgstr "Immer einrasten" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Snapping distance, in screen pixels, for snapping to objects" msgstr "Einrastabstand in Bildschirmpixeln, um an Objekten einzurasten" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Always snap to objects, regardless of their distance" msgstr "" "Wenn gesetzt, dann rasten Objekte am nahesten Objekt ein, unabhängig von der " "Entfernung" -#: ../src/ui/dialog/document-properties.cpp:127 +#: ../src/ui/dialog/document-properties.cpp:134 msgid "" "If set, objects only snap to another object when it's within the range " "specified below" @@ -14769,25 +14876,25 @@ msgstr "" "definierten Reichweite sind." #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:137 msgid "Snap d_istance" msgstr "Einrastabstand:" -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:137 msgid "Snap only when c_loser than:" msgstr "Nur einrasten, wenn _näher als:" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Snapping distance, in screen pixels, for snapping to grid" msgstr "Einrastabstand in Bildschirmpixeln, um in das Gitter einzurasten" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Always snap to grids, regardless of the distance" msgstr "" "Wenn gesetzt, dann rasten Objekte an der nahesten Gitterslinie ein, " "unabhängig von der Entfernung" -#: ../src/ui/dialog/document-properties.cpp:132 +#: ../src/ui/dialog/document-properties.cpp:139 msgid "" "If set, objects only snap to a grid line when it's within the range " "specified below" @@ -14796,138 +14903,138 @@ msgstr "" "Reichweite sind." #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Snap dist_ance" msgstr "Einrastabstand" -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Snap only when close_r than:" msgstr "Nur einrasten, wenn _näher als:" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "Einrastabstand in Bildschirmpixeln, um an Führungslinien einzurasten" +msgstr "Einrastabstand in Bildschirmpixeln, um an Hilfslinien einzurasten" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Always snap to guides, regardless of the distance" msgstr "" -"Objekte rasten immer an der nächsten Führungslinie ein, unabhängig von der " +"Objekte rasten immer an der nächsten Hilfslinie ein, unabhängig von der " "Entfernung" -#: ../src/ui/dialog/document-properties.cpp:137 +#: ../src/ui/dialog/document-properties.cpp:144 msgid "" "If set, objects only snap to a guide when it's within the range specified " "below" msgstr "" -"Nur an Führungslinien einrasten, wenn diese innerhalb der unten definierten " +"Nur an Hilfslinien einrasten, wenn diese innerhalb der unten definierten " "Reichweite sind." #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:147 msgid "Snap to clip paths" msgstr "An Ausschneidepfaden einrasten" -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:147 msgid "When snapping to paths, then also try snapping to clip paths" msgstr "" "Neben dem Einrasten an Pfaden, auch versuchen an Ausschbeidepfaden " "einzurasten" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "Snap to mask paths" msgstr "An Maskierungspfaden einrasten" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "When snapping to paths, then also try snapping to mask paths" msgstr "" "Neben dem Einrasten an Pfaden, auch versuchen an Maskierungspfaden " "einzurasten" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "Snap perpendicularly" msgstr "Senkrecht einrasten" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "" "When snapping to paths or guides, then also try snapping perpendicularly" msgstr "" -"Neben dem Einrasten an Pfaden oder Führungslinien, auch versuchen senkrecht " +"Neben dem Einrasten an Pfaden oder Hilfslinien, auch versuchen senkrecht " "einzurasten" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "Snap tangentially" msgstr "Tangential einrasten" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "When snapping to paths or guides, then also try snapping tangentially" msgstr "" -"Neben dem Einrasten an Pfaden oder Führungslinien, auch versuchen tangential " +"Neben dem Einrasten an Pfaden oder Hilfslinien, auch versuchen tangential " "einzurasten" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:153 msgctxt "Grid" msgid "_New" msgstr "_Neu" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:153 msgid "Create new grid." msgstr "Neues Gitter erzeugen." -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:154 msgctxt "Grid" msgid "_Remove" msgstr "_Entfernen" -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:154 msgid "Remove selected grid." msgstr "Ausgewähltes Gitter entfernen." -#: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/ui/dialog/document-properties.cpp:161 +#: ../src/widgets/toolbox.cpp:1836 msgid "Guides" -msgstr "Führungslinien" +msgstr "Hilfslinien" -#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2827 +#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2827 msgid "Snap" msgstr "Einrasten" -#: ../src/ui/dialog/document-properties.cpp:158 +#: ../src/ui/dialog/document-properties.cpp:165 msgid "Scripting" msgstr "Skripte" # !!! -#: ../src/ui/dialog/document-properties.cpp:322 +#: ../src/ui/dialog/document-properties.cpp:329 msgid "General" msgstr "Allgemein" # !!! -#: ../src/ui/dialog/document-properties.cpp:324 +#: ../src/ui/dialog/document-properties.cpp:331 msgid "Page Size" msgstr "Seitengröße" # !!! -#: ../src/ui/dialog/document-properties.cpp:326 +#: ../src/ui/dialog/document-properties.cpp:333 msgid "Display" msgstr "Anzeige" # !!! -#: ../src/ui/dialog/document-properties.cpp:361 +#: ../src/ui/dialog/document-properties.cpp:368 msgid "Guides" -msgstr "Führungslinien" +msgstr "Hilfslinien" -#: ../src/ui/dialog/document-properties.cpp:379 +#: ../src/ui/dialog/document-properties.cpp:386 msgid "Snap to objects" msgstr "An Objekten einrasten" -#: ../src/ui/dialog/document-properties.cpp:381 +#: ../src/ui/dialog/document-properties.cpp:388 msgid "Snap to grids" msgstr "Am Gitter einrasten" -#: ../src/ui/dialog/document-properties.cpp:383 +#: ../src/ui/dialog/document-properties.cpp:390 msgid "Snap to guides" -msgstr "An Führungslinien einrasten" +msgstr "An Hilfslinien einrasten" -#: ../src/ui/dialog/document-properties.cpp:385 +#: ../src/ui/dialog/document-properties.cpp:392 msgid "Miscellaneous" msgstr "Verschiedenes" @@ -14935,136 +15042,136 @@ msgstr "Verschiedenes" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:3008 +#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:3008 msgid "Link Color Profile" msgstr "Farb-Profil verknüpfen" -#: ../src/ui/dialog/document-properties.cpp:599 +#: ../src/ui/dialog/document-properties.cpp:606 msgid "Remove linked color profile" msgstr "Verknüpftes Farb-Profil entfernen" -#: ../src/ui/dialog/document-properties.cpp:613 +#: ../src/ui/dialog/document-properties.cpp:620 msgid "Linked Color Profiles:" msgstr "Verknüpfte Farb-Profile:" -#: ../src/ui/dialog/document-properties.cpp:615 +#: ../src/ui/dialog/document-properties.cpp:622 msgid "Available Color Profiles:" msgstr "Verfügbare Farb-Profile:" -#: ../src/ui/dialog/document-properties.cpp:617 +#: ../src/ui/dialog/document-properties.cpp:624 msgid "Link Profile" msgstr "Profil verknüpfen" -#: ../src/ui/dialog/document-properties.cpp:626 +#: ../src/ui/dialog/document-properties.cpp:627 msgid "Unlink Profile" msgstr "Profil entknüpfen" -#: ../src/ui/dialog/document-properties.cpp:710 +#: ../src/ui/dialog/document-properties.cpp:705 msgid "Profile Name" msgstr "Profil-Name" -#: ../src/ui/dialog/document-properties.cpp:746 +#: ../src/ui/dialog/document-properties.cpp:741 msgid "External scripts" msgstr "Externe Scripte" -#: ../src/ui/dialog/document-properties.cpp:747 +#: ../src/ui/dialog/document-properties.cpp:742 msgid "Embedded scripts" msgstr "Eingebettete Scripte" -#: ../src/ui/dialog/document-properties.cpp:752 +#: ../src/ui/dialog/document-properties.cpp:747 msgid "External script files:" msgstr "Externe Script-Dateien:" -#: ../src/ui/dialog/document-properties.cpp:754 +#: ../src/ui/dialog/document-properties.cpp:749 msgid "Add the current file name or browse for a file" msgstr "" "Fügen Sie den aktuellen Dateinamen hinzu oder suchen Sie nach einer Datei" -#: ../src/ui/dialog/document-properties.cpp:763 -#: ../src/ui/dialog/document-properties.cpp:852 +#: ../src/ui/dialog/document-properties.cpp:752 +#: ../src/ui/dialog/document-properties.cpp:829 #: ../src/ui/widget/selected-style.cpp:356 msgid "Remove" msgstr "Entfernen" -#: ../src/ui/dialog/document-properties.cpp:833 +#: ../src/ui/dialog/document-properties.cpp:816 msgid "Filename" msgstr "Dateiname" -#: ../src/ui/dialog/document-properties.cpp:841 +#: ../src/ui/dialog/document-properties.cpp:824 msgid "Embedded script files:" msgstr "Eingebettete Script-Dateien:" -#: ../src/ui/dialog/document-properties.cpp:843 +#: ../src/ui/dialog/document-properties.cpp:826 msgid "New" msgstr "Neu" -#: ../src/ui/dialog/document-properties.cpp:922 +#: ../src/ui/dialog/document-properties.cpp:893 msgid "Script id" msgstr "Skript id" -#: ../src/ui/dialog/document-properties.cpp:928 +#: ../src/ui/dialog/document-properties.cpp:899 msgid "Content:" msgstr "Inhalt:" -#: ../src/ui/dialog/document-properties.cpp:1045 +#: ../src/ui/dialog/document-properties.cpp:1016 msgid "_Save as default" msgstr "Zur Vorgabe machen" -#: ../src/ui/dialog/document-properties.cpp:1046 +#: ../src/ui/dialog/document-properties.cpp:1017 msgid "Save this metadata as the default metadata" msgstr "Metadaten als Standard-Metadaten abspeichern" -#: ../src/ui/dialog/document-properties.cpp:1047 +#: ../src/ui/dialog/document-properties.cpp:1018 msgid "Use _default" msgstr "Standardeinstellungen benutzen" -#: ../src/ui/dialog/document-properties.cpp:1048 +#: ../src/ui/dialog/document-properties.cpp:1019 msgid "Use the previously saved default metadata here" msgstr "Verwenden Sie hier die zuvor gespeicherte Standardmetadaten" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1121 +#: ../src/ui/dialog/document-properties.cpp:1092 msgid "Add external script..." msgstr "Füge externes Script hinzu..." -#: ../src/ui/dialog/document-properties.cpp:1160 +#: ../src/ui/dialog/document-properties.cpp:1131 msgid "Select a script to load" msgstr "Skript zum Laden auswählen" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1188 +#: ../src/ui/dialog/document-properties.cpp:1159 msgid "Add embedded script..." msgstr "Füge eingebettetes Script hinzu..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1219 +#: ../src/ui/dialog/document-properties.cpp:1190 msgid "Remove external script" msgstr "Lösche externes Script" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1249 +#: ../src/ui/dialog/document-properties.cpp:1220 msgid "Remove embedded script" msgstr "Eingebettetes Script entfernen" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1346 +#: ../src/ui/dialog/document-properties.cpp:1317 msgid "Edit embedded script" msgstr "Eingebettetes Script bearbeiten" -#: ../src/ui/dialog/document-properties.cpp:1434 +#: ../src/ui/dialog/document-properties.cpp:1405 msgid "Creation" msgstr "Erzeugen" -#: ../src/ui/dialog/document-properties.cpp:1435 +#: ../src/ui/dialog/document-properties.cpp:1406 msgid "Defined grids" msgstr "Definierte Gitter" -#: ../src/ui/dialog/document-properties.cpp:1682 +#: ../src/ui/dialog/document-properties.cpp:1653 msgid "Remove grid" msgstr "Gitter entfernen" -#: ../src/ui/dialog/document-properties.cpp:1770 +#: ../src/ui/dialog/document-properties.cpp:1741 #, fuzzy msgid "Changed default display unit" msgstr "Geänderte Dokumenteneinheit" @@ -15478,7 +15585,7 @@ msgstr "Keine Datei ausgewählt" #: ../src/ui/dialog/fill-and-stroke.cpp:62 msgid "_Fill" -msgstr "_Füllen" +msgstr "_Füllung" #: ../src/ui/dialog/fill-and-stroke.cpp:63 msgid "Stroke _paint" @@ -15499,7 +15606,7 @@ msgstr "" "Diese Matrix definiert eine lineare Transformation im Farbraum. Jede Zeile " "wirkt auf eine der Farbkomponenten des Ausgangs, jede Spalte bestimmt den " "Einfluß der jeweiligen Eingangskomponente. Die letzte Spalte gibt einen " -"konstanten Grundwert der Ausgangskomponenten vor. " +"konstanten Grundwert der Ausgangskomponenten vor." # CHECK #: ../src/ui/dialog/filter-effects-dialog.cpp:549 @@ -15530,12 +15637,10 @@ msgid "This SVG filter effect is not yet implemented in Inkscape." msgstr "Dieser SVG-Filtereffekt ist noch nicht in Inkscape implementiert." #: ../src/ui/dialog/filter-effects-dialog.cpp:1041 -#, fuzzy msgid "Slope" -msgstr "Umhüllung" +msgstr "Steigung" #: ../src/ui/dialog/filter-effects-dialog.cpp:1042 -#, fuzzy msgid "Intercept" msgstr "Schnittpunkt" @@ -16065,7 +16170,7 @@ msgstr "" "Der Filterbaustein Komponententransfer beeinflusst die " "Farbkomponenten des Eingangs (rot, grün, blau und alpha) gemäß " "festzulegender Transferfunktionen. Dies erlaubt Operationen wie Helligkeits- " -"und Kontrasteinstellung, Farbbalance und Schwellenwerte." +"und Kontrasteinstellung, Farbbalance und Schwellwerte." #: ../src/ui/dialog/filter-effects-dialog.cpp:2960 msgid "" @@ -16216,313 +16321,313 @@ msgstr "Filterbaustein duplizieren" msgid "Set filter primitive attribute" msgstr "Attribut für Filterbaustein setzen" -#: ../src/ui/dialog/find.cpp:71 +#: ../src/ui/dialog/find.cpp:72 msgid "F_ind:" msgstr "Finden:" -#: ../src/ui/dialog/find.cpp:71 +#: ../src/ui/dialog/find.cpp:72 msgid "Find objects by their content or properties (exact or partial match)" msgstr "" "Objekte nach ihrem Inhalt oder Eigenschaften finden (exakte oder partielle " "Übereinstimmung)" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:73 msgid "R_eplace:" msgstr "Ersetzen:" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:73 msgid "Replace match with this value" msgstr "Übereinstimmung mit diesem Wert ersetzen" -#: ../src/ui/dialog/find.cpp:74 +#: ../src/ui/dialog/find.cpp:75 msgid "_All" msgstr "_Alles" -#: ../src/ui/dialog/find.cpp:74 +#: ../src/ui/dialog/find.cpp:75 msgid "Search in all layers" msgstr "In allen Ebenen suchen" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:76 msgid "Current _layer" msgstr "Aktuelle Ebene" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:76 msgid "Limit search to the current layer" msgstr "Suche auf aktuelle Ebene beschränken" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:77 msgid "Sele_ction" msgstr "Auswahl" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:77 msgid "Limit search to the current selection" msgstr "Suche auf aktuelle Auswahl beschränken" -#: ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/find.cpp:78 msgid "Search in text objects" msgstr "Textobjekte durchsuchen" -#: ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/find.cpp:79 msgid "_Properties" msgstr "Eigenschaften" -#: ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/find.cpp:79 msgid "Search in object properties, styles, attributes and IDs" msgstr "Suche in Objekt-Eigenschaften, Stilen, Attributen und IDs" -#: ../src/ui/dialog/find.cpp:80 +#: ../src/ui/dialog/find.cpp:81 msgid "Search in" msgstr "Suchen in" -#: ../src/ui/dialog/find.cpp:81 +#: ../src/ui/dialog/find.cpp:82 msgid "Scope" msgstr "Umfang" -#: ../src/ui/dialog/find.cpp:83 +#: ../src/ui/dialog/find.cpp:84 msgid "Case sensiti_ve" msgstr "schreibungsabhängig" -#: ../src/ui/dialog/find.cpp:83 +#: ../src/ui/dialog/find.cpp:84 msgid "Match upper/lower case" msgstr "Entspricht Groß-/ Kleinschreibung" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:85 msgid "E_xact match" msgstr "Exakte Übereinstimmung" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:85 msgid "Match whole objects only" msgstr "Übereinstimmung nur mit kompletten Objekten" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:86 msgid "Include _hidden" msgstr "Einschließlich _Ausgeblendete" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:86 msgid "Include hidden objects in search" msgstr "Ausgeblendete Objekte bei Suche berücksichtigen" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:87 msgid "Include loc_ked" msgstr "Einschließlich _Gesperrte" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:87 msgid "Include locked objects in search" msgstr "Gesperrte Objekte bei der Suche berücksichtigen" # !!! -#: ../src/ui/dialog/find.cpp:88 +#: ../src/ui/dialog/find.cpp:89 msgid "General" msgstr "Allgemein" -#: ../src/ui/dialog/find.cpp:90 +#: ../src/ui/dialog/find.cpp:91 msgid "_ID" msgstr "_ID" -#: ../src/ui/dialog/find.cpp:90 +#: ../src/ui/dialog/find.cpp:91 msgid "Search id name" msgstr "Suche nach id Name" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:92 msgid "Attribute _name" msgstr "Attributname" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:92 msgid "Search attribute name" msgstr "Attributnamen suchen" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:93 msgid "Attri_bute value" msgstr "Attributwert" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:93 msgid "Search attribute value" msgstr "Attributwert suchen" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:94 msgid "_Style" msgstr "_Stil" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:94 msgid "Search style" msgstr "Suchstil" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:95 msgid "F_ont" msgstr "Schrift" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:95 msgid "Search fonts" msgstr "Schriftarten suchen" -#: ../src/ui/dialog/find.cpp:95 +#: ../src/ui/dialog/find.cpp:96 msgid "Properties" msgstr "Eigenschaften" -#: ../src/ui/dialog/find.cpp:97 +#: ../src/ui/dialog/find.cpp:98 msgid "All types" msgstr "Alle Typen" -#: ../src/ui/dialog/find.cpp:97 +#: ../src/ui/dialog/find.cpp:98 msgid "Search all object types" msgstr "Alle Objekttypen durchsuchen" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:99 msgid "Rectangles" msgstr "Rechtecke" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:99 msgid "Search rectangles" msgstr "Rechtecke durchsuchen" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:100 msgid "Ellipses" msgstr "Ellipsen" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:100 msgid "Search ellipses, arcs, circles" msgstr "Ellipsen, Bögen und Kreise durchsuchen" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:101 msgid "Stars" msgstr "Sterne" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:101 msgid "Search stars and polygons" msgstr "Sterne und Polygone suchen" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:102 msgid "Spirals" msgstr "Spiralen" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:102 msgid "Search spirals" msgstr "Spiralen durchsuchen" -#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1735 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 msgid "Paths" msgstr "Pfade" -#: ../src/ui/dialog/find.cpp:102 +#: ../src/ui/dialog/find.cpp:103 msgid "Search paths, lines, polylines" msgstr "Pfade, Linien oder Linienzüge suchen" -#: ../src/ui/dialog/find.cpp:103 +#: ../src/ui/dialog/find.cpp:104 msgid "Texts" msgstr "Texte" -#: ../src/ui/dialog/find.cpp:103 +#: ../src/ui/dialog/find.cpp:104 msgid "Search text objects" msgstr "Textobjekte durchsuchen" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:105 msgid "Groups" msgstr "Gruppen" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:105 msgid "Search groups" msgstr "Gruppen durchsuchen" #. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:107 +#: ../src/ui/dialog/find.cpp:108 msgctxt "Find dialog" msgid "Clones" msgstr "Klone" -#: ../src/ui/dialog/find.cpp:107 +#: ../src/ui/dialog/find.cpp:108 msgid "Search clones" msgstr "Klone durchsuchen" -#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 +#: ../src/ui/dialog/find.cpp:110 ../share/extensions/embedimage.inx.h:3 #: ../share/extensions/extractimage.inx.h:5 msgid "Images" msgstr "Bilder" -#: ../src/ui/dialog/find.cpp:109 +#: ../src/ui/dialog/find.cpp:110 msgid "Search images" msgstr "Bilder durchsuchen" -#: ../src/ui/dialog/find.cpp:110 +#: ../src/ui/dialog/find.cpp:111 msgid "Offsets" msgstr "Versatz" -#: ../src/ui/dialog/find.cpp:110 +#: ../src/ui/dialog/find.cpp:111 msgid "Search offset objects" msgstr "Objekte mit Versatz finden" -#: ../src/ui/dialog/find.cpp:111 +#: ../src/ui/dialog/find.cpp:112 msgid "Object types" msgstr "Objekttypen" -#: ../src/ui/dialog/find.cpp:114 +#: ../src/ui/dialog/find.cpp:115 msgid "_Find" msgstr "_Suchen" -#: ../src/ui/dialog/find.cpp:114 +#: ../src/ui/dialog/find.cpp:115 msgid "Select all objects matching the selection criteria" msgstr "Wähle Objekte aus, die zu allen angegebene Feldern passen" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:116 msgid "_Replace All" msgstr "Alles e_rsetzen" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:116 msgid "Replace all matches" msgstr "Ersetze alle Übereinstimmungen" # # !!! just make the menu item insensitive -#: ../src/ui/dialog/find.cpp:797 +#: ../src/ui/dialog/find.cpp:801 msgid "Nothing to replace" msgstr "Es gibt nichts zu ersetzen" #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:838 +#: ../src/ui/dialog/find.cpp:842 #, c-format msgid "%d object found (out of %d), %s match." msgid_plural "%d objects found (out of %d), %s match." msgstr[0] "%d (von %d) Objekt gefunden, %s passend." msgstr[1] "%d (von %d) Objekten gefunden, %s passend." -#: ../src/ui/dialog/find.cpp:841 +#: ../src/ui/dialog/find.cpp:845 msgid "exact" msgstr "exakt" -#: ../src/ui/dialog/find.cpp:841 +#: ../src/ui/dialog/find.cpp:845 msgid "partial" msgstr "teilweise" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:844 +#: ../src/ui/dialog/find.cpp:848 msgid "%1 match replaced" msgid_plural "%1 matches replaced" msgstr[0] "%1 Übereinstimmung ersetzt" msgstr[1] "%1 Übereinstimmungen ersetzt" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:848 +#: ../src/ui/dialog/find.cpp:852 msgid "%1 object found" msgid_plural "%1 objects found" msgstr[0] "%1 Objekt gefunden" msgstr[1] "%1 Objekte gefunden" -#: ../src/ui/dialog/find.cpp:862 +#: ../src/ui/dialog/find.cpp:866 msgid "Replace text or property" msgstr "Text oder Eigenschaft ersetzen" # !!! just make the menu item insensitive -#: ../src/ui/dialog/find.cpp:866 +#: ../src/ui/dialog/find.cpp:870 msgid "Nothing found" msgstr "Nichts gefunden" -#: ../src/ui/dialog/find.cpp:871 +#: ../src/ui/dialog/find.cpp:875 msgid "No objects found" msgstr "Keine Objekte gefunden" -#: ../src/ui/dialog/find.cpp:892 +#: ../src/ui/dialog/find.cpp:896 msgid "Select an object type" msgstr "Wählen Sie ein Objekttyp" -#: ../src/ui/dialog/find.cpp:910 +#: ../src/ui/dialog/find.cpp:914 msgid "Select a property" msgstr "Wählen Sie eine Eigenschaft aus" @@ -17365,12 +17470,12 @@ msgstr "Hilfslinien relativ zur aktuellen Position verschieben/drehen" #: ../src/ui/dialog/guides.cpp:48 msgctxt "Guides" msgid "_X:" -msgstr "_X: [Führungslinien]" +msgstr "_X: [Hilfslinien]" #: ../src/ui/dialog/guides.cpp:49 msgctxt "Guides" msgid "_Y:" -msgstr "_Y: [Führungslinien]" +msgstr "_Y: [Hilfslinien]" #: ../src/ui/dialog/guides.cpp:50 ../src/ui/dialog/object-properties.cpp:59 msgid "_Label:" @@ -17378,7 +17483,7 @@ msgstr "_Bezeichner:" #: ../src/ui/dialog/guides.cpp:50 msgid "Optionally give this guideline a name" -msgstr "Vergeben Sie optional einen Namen für die Führungslinie" +msgstr "Vergeben Sie optional einen Namen für die Hilfslinie" #: ../src/ui/dialog/guides.cpp:51 msgid "_Angle:" @@ -17386,16 +17491,16 @@ msgstr "Winkel:" #: ../src/ui/dialog/guides.cpp:130 msgid "Set guide properties" -msgstr "Führungslinien-Eigenschaften setzen" +msgstr "Hilfslinien-Eigenschaften setzen" #: ../src/ui/dialog/guides.cpp:160 msgid "Guideline" -msgstr "Führungslinien" +msgstr "Hilfslinien" #: ../src/ui/dialog/guides.cpp:311 #, c-format msgid "Guideline ID: %s" -msgstr "Führungslinien ID: %s" +msgstr "Hilfslinien ID: %s" #: ../src/ui/dialog/guides.cpp:317 #, c-format @@ -17446,14 +17551,14 @@ msgstr "Ausgewählten Objekte zeigen Farbverlaufs-Anfasser an" #: ../src/ui/dialog/inkscape-preferences.cpp:196 msgid "Conversion to guides uses edges instead of bounding box" -msgstr "Umwandlung zu Führungslinien nutzt Ecken anstelle von Umrandungsboxen" +msgstr "Umwandlung zu Hilfslinien nutzt Ecken anstelle von Umrandungsboxen" #: ../src/ui/dialog/inkscape-preferences.cpp:197 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 "" -"Wird ein Objekt zu Führungslinien umgewandelt, so gelten die tatsächlichen " +"Wird ein Objekt zu Hilfslinien umgewandelt, so gelten die tatsächlichen " "Umrisse des Objekts, nicht die rechteckige Umrandung." #: ../src/ui/dialog/inkscape-preferences.cpp:204 @@ -17504,7 +17609,7 @@ msgid "" "the button below to set it." msgstr "" "Werkzeuge können eigene Stilvorgaben behalten, die auf neu erzeugte Objekte " -"angewendet werden. Stilvorgabe mit dem unteren Knopf festlegen." +"angewendet werden. Stilvorgabe mit der unteren Schaltfläche festlegen." #. style swatch #: ../src/ui/dialog/inkscape-preferences.cpp:282 @@ -17549,17 +17654,17 @@ msgstr "Dieser Rahmen berücksichtigt nur den reinen Pfad" #: ../src/ui/dialog/inkscape-preferences.cpp:314 msgid "Conversion to guides" -msgstr "Umwandlung in Führungslinien" +msgstr "Umwandlung in Hilfslinien" #: ../src/ui/dialog/inkscape-preferences.cpp:315 msgid "Keep objects after conversion to guides" -msgstr "Behalte Objekte nach Umwandlung in Führungslinien" +msgstr "Behalte Objekte nach Umwandlung in Hilfslinien" #: ../src/ui/dialog/inkscape-preferences.cpp:317 msgid "" "When converting an object to guides, don't delete the object after the " "conversion" -msgstr "Objekt bleibt erhalten, wenn es in Führungslinien umgewandelt wird." +msgstr "Objekt bleibt erhalten, wenn es in Hilfslinien umgewandelt wird." #: ../src/ui/dialog/inkscape-preferences.cpp:318 msgid "Treat groups as a single object" @@ -17570,7 +17675,7 @@ msgid "" "Treat groups as a single object during conversion to guides rather than " "converting each child separately" msgstr "" -"Gruppen werden als Ganzes (statt der Einzelteile) zu Führungslinien " +"Gruppen werden als Ganzes (statt der Einzelteile) zu Hilfslinien " "umgewandelt." #: ../src/ui/dialog/inkscape-preferences.cpp:322 @@ -17937,8 +18042,8 @@ msgstr "Farbeimer" #. Gradient #: ../src/ui/dialog/inkscape-preferences.cpp:487 -#: ../src/widgets/gradient-selector.cpp:134 -#: ../src/widgets/gradient-selector.cpp:302 +#: ../src/widgets/gradient-selector.cpp:144 +#: ../src/widgets/gradient-selector.cpp:295 msgid "Gradient" msgstr "Farbverlauf" @@ -18158,6 +18263,10 @@ msgstr "Ungarisch (hu)" msgid "Indonesian (id)" msgstr "Indonesisch (id)" +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Icelandic (is)" +msgstr "" + #: ../src/ui/dialog/inkscape-preferences.cpp:532 msgid "Italian (it)" msgstr "Italienisch (it)" @@ -18357,7 +18466,7 @@ msgid "" "Set the maximum length of the Open Recent list in the File menu, or clear " "the list" msgstr "" -"Die maximale Länge der Liste zuletzt geöffneter Dokumente im Menü »Datei«" +"Die maximale Länge der Liste zuletzt geöffneter Dokumente im Menü „Datei“" #: ../src/ui/dialog/inkscape-preferences.cpp:602 msgid "_Zoom correction factor (in %):" @@ -18485,7 +18594,7 @@ msgstr "Zeichnungsgröße ändern, wenn die Fenstergröße verändert wird" #: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Show close button on dialogs" -msgstr "Schließknöpfe in Dialogen zeigen" +msgstr "Schaltflächen zum Schließen von Dialogen zeigen" # CHECK #: ../src/ui/dialog/inkscape-preferences.cpp:652 @@ -18535,7 +18644,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:673 msgid "Saving dialogs status" -msgstr "Speichere Dialogstatud" +msgstr "Dialogstatus speichern" #: ../src/ui/dialog/inkscape-preferences.cpp:677 msgid "" @@ -18576,27 +18685,27 @@ msgstr "Dialoge bleiben vor Dokumentenfenstern" #: ../src/ui/dialog/inkscape-preferences.cpp:702 msgid "Same as Normal but may work better with some window managers" msgstr "" -"Wie »Normal«, aber funktioniert evtl. besser mit manchen Fenstermanagern" +"Wie „Normal“, aber funktioniert evtl. besser mit manchen Fenstermanagern" #: ../src/ui/dialog/inkscape-preferences.cpp:705 msgid "Dialog Transparency" -msgstr "Dialog Transparenz:" +msgstr "Dialog Transparenz" #: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "_Opacity when focused:" -msgstr "Deckkraft bei Focus:" +msgstr "Deckkraft wenn fokussiert:" #: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "Opacity when _unfocused:" -msgstr "Trübung wenn nicht fokussiert:" +msgstr "Deckkraft wenn nicht fokussiert:" #: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "_Time of opacity change animation:" -msgstr "Zeit für Deckkraft-Änderungsanimation" +msgstr "Zeit der Animation beim Ändern der Deckkraft:" #: ../src/ui/dialog/inkscape-preferences.cpp:714 msgid "Miscellaneous" -msgstr "Verschiedenes:" +msgstr "Verschiedenes" #: ../src/ui/dialog/inkscape-preferences.cpp:717 msgid "Whether dialog windows are to be hidden in the window manager taskbar" @@ -18608,9 +18717,9 @@ msgid "" "(this is the default which can be changed in any window using the button " "above the right scrollbar)" msgstr "" -"Darstellungsgröße des Dokuments anpassen, wenn sich die Fenstergröße ändert " -"- der selbe Bereich bleibt sichtbar (Vorgabe, die in jedem Fenster mit dem " -"Knopf über dem rechten Rollbalken geändert wird)" +"Darstellungsgröße des Dokuments anpassen, wenn sich die Fenstergröße ändert, " +"damit der selbe Bereich sichtbar bleibt (Vorgabe, die in jedem Fenster mit " +"der Schaltfläche über dem rechten Rollbalken geändert werden kann)" #: ../src/ui/dialog/inkscape-preferences.cpp:722 msgid "" @@ -18623,7 +18732,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:724 msgid "Whether dialog windows have a close button (requires restart)" -msgstr "Dialogfenster haben Knöpfe zum Schließen (erfordert Neustart)" +msgstr "Dialogfenster haben Schaltflächen zum Schließen (erfordert Neustart)" #: ../src/ui/dialog/inkscape-preferences.cpp:725 msgid "Windows" @@ -19492,7 +19601,7 @@ msgid "" "acceleration)" msgstr "" "Drücken von Strg+Pfeiltaste erhöht zunehmend die Rollgeschwindigkeit (0 " -"bedeutet »keine Beschleunigung«)" +"bedeutet „keine Beschleunigung“)" #: ../src/ui/dialog/inkscape-preferences.cpp:1214 msgid "Autoscrolling" @@ -19513,7 +19622,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1219 #: ../src/ui/dialog/tracedialog.cpp:522 ../src/ui/dialog/tracedialog.cpp:721 msgid "_Threshold:" -msgstr "Schwellwert:" +msgstr "Schwellwer_t:" #: ../src/ui/dialog/inkscape-preferences.cpp:1220 msgid "" @@ -19690,7 +19799,7 @@ msgid "" "When on, the snap angles when rotating a guideline will be relative to the " "original angle" msgstr "" -"Wenn eingeschaltet, wird der Einrastwinkel beim Drehen einer Führungslinie " +"Wenn eingeschaltet, wird der Einrastwinkel beim Drehen einer Hilfslinie " "relativ zum ursprünglichen Winkel" #: ../src/ui/dialog/inkscape-preferences.cpp:1280 @@ -19698,7 +19807,7 @@ msgid "_Zoom in/out by:" msgstr "Zoomfaktor vergrößern/verkleinern um:" #: ../src/ui/dialog/inkscape-preferences.cpp:1280 -#: ../src/ui/dialog/objects.cpp:1622 +#: ../src/ui/dialog/objects.cpp:1620 #: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "%" msgstr "%" @@ -19998,7 +20107,7 @@ msgstr "Effekt-Qualität für Anzeige:" #. build custom preferences tab #: ../src/ui/dialog/inkscape-preferences.cpp:1428 -#: ../src/ui/dialog/print.cpp:232 +#: ../src/ui/dialog/print.cpp:215 msgid "Rendering" msgstr "Rendern" @@ -20021,7 +20130,7 @@ msgid "_Bitmap editor:" msgstr "_Bitmap-Editor:" #: ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:57 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "Exportieren" @@ -20036,7 +20145,7 @@ msgstr "" "Bevorzugte Auflösung der Bitmap (Punkte pro Zoll) im Exportieren-Dialog" #: ../src/ui/dialog/inkscape-preferences.cpp:1445 -#: ../src/ui/dialog/xml-tree.cpp:912 +#: ../src/ui/dialog/xml-tree.cpp:920 msgid "Create" msgstr "Erstellen" @@ -20101,9 +20210,10 @@ msgid "Bitmaps" msgstr "Bitmaps" #: ../src/ui/dialog/inkscape-preferences.cpp:1494 +#, fuzzy msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added seperately to " +"create will be added separately to " msgstr "" "Wählen Sie eine Datei mit vorderfinierten Tastenkürzeln. Jeder " "benutzerdefinierte Kürzel der erstellt wird, wird separat hinzugefügt zu" @@ -20513,12 +20623,12 @@ msgstr "Ebene sperren" msgid "Unlock layer" msgstr "Ebene entsperren" -#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:845 +#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 #: ../src/verbs.cpp:1438 msgid "Toggle layer solo" msgstr "Sichbarkeit der aktuellen Ebene umschalten" -#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:848 +#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 #: ../src/verbs.cpp:1462 msgid "Lock other layers" msgstr "Andere Ebenen sperren" @@ -20556,73 +20666,73 @@ msgstr "Oben" msgid "Add Path Effect" msgstr "Pfadeffekt hinzufügen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 msgid "Add path effect" msgstr "Pfadeffekt hinzufügen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +#: ../src/ui/dialog/livepatheffect-editor.cpp:123 msgid "Delete current path effect" msgstr "Aktuellen Pfadeffekt löschen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +#: ../src/ui/dialog/livepatheffect-editor.cpp:127 msgid "Raise the current path effect" msgstr "Aktuellen Pfadeffekt vergrößern" -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +#: ../src/ui/dialog/livepatheffect-editor.cpp:131 msgid "Lower the current path effect" msgstr "Aktuellen Pfadeffekt verringern" -#: ../src/ui/dialog/livepatheffect-editor.cpp:312 +#: ../src/ui/dialog/livepatheffect-editor.cpp:298 msgid "Unknown effect is applied" msgstr "Unbekannter Effekt wurde angewendet" -#: ../src/ui/dialog/livepatheffect-editor.cpp:315 +#: ../src/ui/dialog/livepatheffect-editor.cpp:301 msgid "Click button to add an effect" msgstr "Schaltfläche klicken, um Effekt hinzuzufügen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:330 +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 msgid "Click add button to convert clone" msgstr "Klicken Sie auf Hinzufügen, um Klon zu konvertieren" -#: ../src/ui/dialog/livepatheffect-editor.cpp:335 -#: ../src/ui/dialog/livepatheffect-editor.cpp:339 -#: ../src/ui/dialog/livepatheffect-editor.cpp:348 +#: ../src/ui/dialog/livepatheffect-editor.cpp:321 +#: ../src/ui/dialog/livepatheffect-editor.cpp:325 +#: ../src/ui/dialog/livepatheffect-editor.cpp:334 msgid "Select a path or shape" msgstr "Wähle einen Pfad oder Form" -#: ../src/ui/dialog/livepatheffect-editor.cpp:344 +#: ../src/ui/dialog/livepatheffect-editor.cpp:330 msgid "Only one item can be selected" msgstr "Nur ein Element kann ausgewählt werden" -#: ../src/ui/dialog/livepatheffect-editor.cpp:376 +#: ../src/ui/dialog/livepatheffect-editor.cpp:362 msgid "Unknown effect" msgstr "Unbekannter Effekt wurde angewendet" -#: ../src/ui/dialog/livepatheffect-editor.cpp:452 +#: ../src/ui/dialog/livepatheffect-editor.cpp:438 msgid "Create and apply path effect" msgstr "Pfadeffekt erstellen und anwenden" -#: ../src/ui/dialog/livepatheffect-editor.cpp:492 +#: ../src/ui/dialog/livepatheffect-editor.cpp:478 msgid "Create and apply Clone original path effect" msgstr "Erstellen und Anwenden des Klon-Original-Pfadeffekts" -#: ../src/ui/dialog/livepatheffect-editor.cpp:514 +#: ../src/ui/dialog/livepatheffect-editor.cpp:500 msgid "Remove path effect" msgstr "Pfadeffekt entfernen" -#: ../src/ui/dialog/livepatheffect-editor.cpp:532 +#: ../src/ui/dialog/livepatheffect-editor.cpp:518 msgid "Move path effect up" msgstr "Pfadeffekt nach oben verschieben" -#: ../src/ui/dialog/livepatheffect-editor.cpp:549 +#: ../src/ui/dialog/livepatheffect-editor.cpp:535 msgid "Move path effect down" msgstr "Pfadeffekt nach unten verschieben" -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Activate path effect" msgstr "Pfadeffekt aktivieren" -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Deactivate path effect" msgstr "Pfadeffekt deaktivieren" @@ -20886,93 +20996,93 @@ msgstr "Objekte ausblenden" msgid "Unhide object" msgstr "Ausgeblendete Objekte anzeigen" -#: ../src/ui/dialog/objects.cpp:875 +#: ../src/ui/dialog/objects.cpp:873 #, fuzzy msgid "Unhide objects" msgstr "Ausgeblendete Objekte anzeigen" -#: ../src/ui/dialog/objects.cpp:875 +#: ../src/ui/dialog/objects.cpp:873 #, fuzzy msgid "Hide objects" msgstr "Objekte ausblenden" -#: ../src/ui/dialog/objects.cpp:895 +#: ../src/ui/dialog/objects.cpp:893 #, fuzzy msgid "Lock objects" msgstr "Objekt sperren" -#: ../src/ui/dialog/objects.cpp:895 +#: ../src/ui/dialog/objects.cpp:893 #, fuzzy msgid "Unlock objects" msgstr "Objektsperrung aufheben" -#: ../src/ui/dialog/objects.cpp:907 +#: ../src/ui/dialog/objects.cpp:905 #, fuzzy msgid "Layer to group" msgstr "Ebene nach ganz oben" -#: ../src/ui/dialog/objects.cpp:907 +#: ../src/ui/dialog/objects.cpp:905 #, fuzzy msgid "Group to layer" msgstr "Gruppieren zum Symbol" -#: ../src/ui/dialog/objects.cpp:1105 +#: ../src/ui/dialog/objects.cpp:1103 #, fuzzy msgid "Moved objects" msgstr "Keine Objekte" -#: ../src/ui/dialog/objects.cpp:1354 ../src/ui/dialog/tags.cpp:875 -#: ../src/ui/dialog/tags.cpp:882 +#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:856 +#: ../src/ui/dialog/tags.cpp:863 #, fuzzy msgid "Rename object" msgstr "Objekte drehen" -#: ../src/ui/dialog/objects.cpp:1461 +#: ../src/ui/dialog/objects.cpp:1459 #, fuzzy msgid "Set object highlight color" msgstr "Objekttitel setzen" -#: ../src/ui/dialog/objects.cpp:1471 +#: ../src/ui/dialog/objects.cpp:1469 #, fuzzy msgid "Set object opacity" msgstr "Objekttitel setzen" -#: ../src/ui/dialog/objects.cpp:1504 +#: ../src/ui/dialog/objects.cpp:1502 #, fuzzy msgid "Set object blend mode" msgstr "Objektbezeichner setzen" -#: ../src/ui/dialog/objects.cpp:1560 +#: ../src/ui/dialog/objects.cpp:1558 #, fuzzy msgid "Set object blur" msgstr "Objektbezeichner setzen" -#: ../src/ui/dialog/objects.cpp:1802 +#: ../src/ui/dialog/objects.cpp:1800 #, fuzzy msgid "Add layer..." msgstr "Ebene _hinzufügen..." -#: ../src/ui/dialog/objects.cpp:1817 +#: ../src/ui/dialog/objects.cpp:1807 #, fuzzy msgid "Remove object" msgstr "Schrift entfernen" -#: ../src/ui/dialog/objects.cpp:1832 +#: ../src/ui/dialog/objects.cpp:1815 #, fuzzy msgid "Move To Bottom" msgstr "Nach ganz u_nten absenken" -#: ../src/ui/dialog/objects.cpp:1877 +#: ../src/ui/dialog/objects.cpp:1839 #, fuzzy msgid "Move To Top" msgstr "Verschiebungsmodus" -#: ../src/ui/dialog/objects.cpp:1892 +#: ../src/ui/dialog/objects.cpp:1847 #, fuzzy msgid "Collapse All" msgstr "Alles l_eeren" -#: ../src/ui/dialog/objects.cpp:1974 +#: ../src/ui/dialog/objects.cpp:1922 #, fuzzy msgid "Select Highlight Color" msgstr "_Hervorhebungsfarbe:" @@ -21050,9 +21160,8 @@ msgid "Avoid single disconnected pixels" msgstr "Vermeidet einzelne unverbundene Pixel" #: ../src/ui/dialog/pixelartdialog.cpp:209 -#, fuzzy msgid "A constant vote value" -msgstr "Eine konstante Stimmgewichtung" +msgstr "Eine konstante Stimmenzahl" #: ../src/ui/dialog/pixelartdialog.cpp:219 msgid "Sparse pixels (window _radius):" @@ -21060,7 +21169,7 @@ msgstr "Verstreute Pixel (Fenster _Radius):" #: ../src/ui/dialog/pixelartdialog.cpp:228 msgid "The radius of the window analyzed" -msgstr "Der Radius des Fensters wird analysiert" +msgstr "Der Radius des Bildausschnitts welcher analysiert wird" #: ../src/ui/dialog/pixelartdialog.cpp:229 msgid "Sparse pixels (_multiplier):" @@ -21071,9 +21180,9 @@ msgid "Favors connections that are part of foreground color" msgstr "Bevorzugt Verbindungen die Teil der Vordergrundfarbe sind" #: ../src/ui/dialog/pixelartdialog.cpp:246 -#, fuzzy msgid "The heuristic computed vote will be multiplied by this value" -msgstr "Die heuristisch berechnete Quote wird mit diesem Wert multipliziert" +msgstr "" +"Die heuristisch berechnete Stimmenzahl wird mit diesem Wert multipliziert" #: ../src/ui/dialog/pixelartdialog.cpp:259 msgid "Heuristics" @@ -21085,7 +21194,7 @@ msgstr "_Voronoi-Diagramm" #: ../src/ui/dialog/pixelartdialog.cpp:267 msgid "Output composed of straight lines" -msgstr "Ausgabe als gerade Linien" +msgstr "Ausgabe bestehend aus geraden Linien" #: ../src/ui/dialog/pixelartdialog.cpp:273 msgid "Convert to _B-spline curves" @@ -21093,7 +21202,7 @@ msgstr "Umwandeln in _B-Spline-Kurven" #: ../src/ui/dialog/pixelartdialog.cpp:274 msgid "Preserve staircasing artifacts" -msgstr "Treppenbildungsartefakte beibehalten" +msgstr "Geglätte Ausgabe (mit Treppenartefakten)" #: ../src/ui/dialog/pixelartdialog.cpp:281 msgid "_Smooth curves" @@ -21110,7 +21219,7 @@ msgstr "Ausgabe" #: ../src/ui/dialog/pixelartdialog.cpp:297 #: ../src/ui/dialog/tracedialog.cpp:814 msgid "Reset all settings to defaults" -msgstr "Alle Einstellungen auf Standardeinstellungen zurücksetzen" +msgstr "Alle Einstellungen auf Standard zurücksetzen" #: ../src/ui/dialog/pixelartdialog.cpp:302 #: ../src/ui/dialog/tracedialog.cpp:819 @@ -21120,7 +21229,7 @@ msgstr "Nachzeichnen abbrechen" #: ../src/ui/dialog/pixelartdialog.cpp:306 #: ../src/ui/dialog/tracedialog.cpp:823 msgid "Execute the trace" -msgstr "Nachzeichnen ausführen" +msgstr "Nachzeichnen starten" #: ../src/ui/dialog/pixelartdialog.cpp:388 #: ../src/ui/dialog/pixelartdialog.cpp:422 @@ -21130,8 +21239,8 @@ msgid "" "\n" "Continue the procedure (without saving)?" msgstr "" -"Bild erscheint zu groß. Die Bearbeitung wird länger dauern und es empfiehlt " -"sich, das Dokument vorher zu speichern. \n" +"Bild erscheint zu groß. Der Vorgang kann einige Zeit in Anspruch nehmen und " +"es empfiehlt sich, das Dokument zunächst zu speichern.\n" "\n" "Verarbeitung fortsetzen (ohne zu speichern)?" @@ -21242,21 +21351,21 @@ msgstr "Auf Ellipse anordnen" msgid "Could not open temporary PNG for bitmap printing" msgstr "Konnte temporäres PNG für Rasterdruck nicht öffnen" -#: ../src/ui/dialog/print.cpp:155 +#: ../src/ui/dialog/print.cpp:138 msgid "Could not set up Document" msgstr "Dokument konnte nicht eingerichtet werden" # CairoRenderContext ist Eigenname? -#: ../src/ui/dialog/print.cpp:159 +#: ../src/ui/dialog/print.cpp:142 msgid "Failed to set CairoRenderContext" msgstr "Fehler beim Setzen von CairoRenderContext" #. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:197 +#: ../src/ui/dialog/print.cpp:180 msgid "SVG Document" msgstr "SVG-Dokument" -#: ../src/ui/dialog/print.cpp:198 +#: ../src/ui/dialog/print.cpp:181 msgid "Print" msgstr "Drucken" @@ -21497,8 +21606,8 @@ msgstr "Beispieltext" msgid "Preview Text:" msgstr "Textvorschau:" -#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:370 -#: ../src/ui/tools/gradient-tool.cpp:468 +#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:360 +#: ../src/ui/tools/gradient-tool.cpp:458 #: ../src/widgets/gradient-vector.cpp:794 msgid "Add gradient stop" msgstr "Zwischenfarbe zum Farbverlauf hinzufügen" @@ -21548,15 +21657,15 @@ msgstr "Symbol vom aktuellen Dokument entfernen." #: ../src/ui/dialog/symbols.cpp:239 msgid "Display more icons in row." -msgstr "Mehr Symbole in Reihe anzeigen." +msgstr "Mehr Symbole in einer Reihe anzeigen." #: ../src/ui/dialog/symbols.cpp:248 msgid "Display fewer icons in row." -msgstr "Weniger Symbole in Reihe anzeigen." +msgstr "Weniger Symbole in einer Reihe anzeigen." #: ../src/ui/dialog/symbols.cpp:258 msgid "Toggle 'fit' symbols in icon space." -msgstr "\"Einpassen\" der Symbole im Symbolbereich umschalten." +msgstr "\"Einpassen\" der Symbole im Symbolbereich." #: ../src/ui/dialog/symbols.cpp:270 msgid "Make symbols smaller by zooming out." @@ -21570,32 +21679,32 @@ msgstr "Symbole durch Hineinzoomen vergrößern." msgid "Unnamed Symbols" msgstr "Unbenannte Symbole" -#: ../src/ui/dialog/tags.cpp:293 ../src/ui/dialog/tags.cpp:591 -#: ../src/ui/dialog/tags.cpp:705 +#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:572 +#: ../src/ui/dialog/tags.cpp:686 #, fuzzy msgid "Remove from selection set" msgstr "Maskierung von Auswahl entfernen" -#: ../src/ui/dialog/tags.cpp:449 +#: ../src/ui/dialog/tags.cpp:430 msgid "Items" msgstr "" -#: ../src/ui/dialog/tags.cpp:688 +#: ../src/ui/dialog/tags.cpp:669 #, fuzzy msgid "Add selection to set" msgstr "Die gewählten Objekte nach ganz oben anheben" -#: ../src/ui/dialog/tags.cpp:846 +#: ../src/ui/dialog/tags.cpp:827 #, fuzzy msgid "Moved sets" msgstr "Bewegungen" -#: ../src/ui/dialog/tags.cpp:1016 +#: ../src/ui/dialog/tags.cpp:997 #, fuzzy msgid "Add a new selection set" msgstr "Neuer Verbindungspunkt" -#: ../src/ui/dialog/tags.cpp:1025 +#: ../src/ui/dialog/tags.cpp:1006 #, fuzzy msgid "Remove Item/Set" msgstr "Effekte entfernen" @@ -21670,7 +21779,7 @@ msgid "Text path offset" msgstr "Text-Pfad-Versatz" #: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 -#: ../src/ui/tools/text-tool.cpp:1455 +#: ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "Textstil setzen" @@ -21700,19 +21809,19 @@ msgstr "Gewählte Objekte anordnen" #. brightness #: ../src/ui/dialog/tracedialog.cpp:508 msgid "_Brightness cutoff" -msgstr "_Helligkeit ausschalten" +msgstr "_Helligkeitsschwellwert" #: ../src/ui/dialog/tracedialog.cpp:512 msgid "Trace by a given brightness level" -msgstr "Abhängig vom angegebenen Helligkeitswert nachzeichnen" +msgstr "Entlang eines angegebenen Helligkeitswerts nachzeichnen" #: ../src/ui/dialog/tracedialog.cpp:519 msgid "Brightness cutoff for black/white" -msgstr "Helligkeitsschwellwerte für Schwarz/Weiß" +msgstr "Helligkeitsschwellwert für Schwarz/Weiß" #: ../src/ui/dialog/tracedialog.cpp:529 msgid "Single scan: creates a path" -msgstr "Einzelner Scan: einen Pfad erzeugen" +msgstr "Einzelne Abtastung: Einen Pfad erzeugen" #. canny edge detection #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method @@ -21722,18 +21831,15 @@ msgstr "Kanten_erkennung" #: ../src/ui/dialog/tracedialog.cpp:538 msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "" -"Mit optimaler Kantenerkennung durch J. Canny's Algorithmus nachzeichnen" +msgstr "Mit optimaler Kantenerkennung nach J. Canny's Algorithmus nachzeichnen" #: ../src/ui/dialog/tracedialog.cpp:556 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" -msgstr "" -"Schwellwert des Helligkeitswerts bei angrenzenden Pixeln (bestimmt " -"Kantenbreite)" +msgstr "Helligkeitsschwellwert für angrenzende Pixel (bestimmt Kantenbreite)" #: ../src/ui/dialog/tracedialog.cpp:559 msgid "T_hreshold:" -msgstr "Sc_hwellenwert:" +msgstr "Sc_hwellwert:" #. quantization #. TRANSLATORS: Color Quantization: the process of reducing the number @@ -21745,11 +21851,11 @@ msgstr "Farb_quantisierung" #: ../src/ui/dialog/tracedialog.cpp:575 msgid "Trace along the boundaries of reduced colors" -msgstr "Entlang der reduzierten Farbbegrenzungen nachzeichnen" +msgstr "Entlang der Farbränder bei reduzierter Farbtiefe nachzeichnen." #: ../src/ui/dialog/tracedialog.cpp:583 msgid "The number of reduced colors" -msgstr "Anzahl der reduzierten Farben" +msgstr "Anzahl der Farben" #: ../src/ui/dialog/tracedialog.cpp:586 msgid "_Colors:" @@ -21776,11 +21882,11 @@ msgstr "Angegebene Anzahl von Helligkeitsstufen nachzeichnen" #: ../src/ui/dialog/tracedialog.cpp:621 msgid "Sc_ans:" -msgstr "Sc_andurchgänge:" +msgstr "_Abtastungen:" #: ../src/ui/dialog/tracedialog.cpp:625 msgid "The desired number of scans" -msgstr "Gewünschte Anzahl von Scandurchgängen" +msgstr "Gewünschte Anzahl von Abtastungen" #: ../src/ui/dialog/tracedialog.cpp:630 msgid "Co_lors" @@ -21788,7 +21894,7 @@ msgstr "_Farben" #: ../src/ui/dialog/tracedialog.cpp:634 msgid "Trace the given number of reduced colors" -msgstr "Nachzeichnen auf angegebene Anzahl von Farben beschränken" +msgstr "Angegebene Anzahl von Farben nachzeichnen" #: ../src/ui/dialog/tracedialog.cpp:639 msgid "_Grays" @@ -21796,7 +21902,7 @@ msgstr "_Graustufen" #: ../src/ui/dialog/tracedialog.cpp:643 msgid "Same as Colors, but the result is converted to grayscale" -msgstr "Wie bei »Farben«, aber Ergebnis in Graustufen konvertieren" +msgstr "Wie „Farben“, jedoch wird das Ergebnis in Graustufen konvertiert" #. TRANSLATORS: "Smooth" is a verb here #: ../src/ui/dialog/tracedialog.cpp:649 @@ -21810,15 +21916,15 @@ msgstr "Gaußschen Weichzeichner vor dem Nachzeichnen anwenden" #. TRANSLATORS: "Stack" is a verb here #: ../src/ui/dialog/tracedialog.cpp:657 msgid "Stac_k scans" -msgstr "S_cans stapeln" +msgstr "Abtastungen stapeln" #: ../src/ui/dialog/tracedialog.cpp:661 msgid "" "Stack scans on top of one another (no gaps) instead of tiling (usually with " "gaps)" msgstr "" -"Scans übereinander stapeln (ohne Zwischenräume) anstatt zu kacheln (meist " -"mit Zwischenräumen)" +"Abtastungen übereinander stapeln (keine Lücken) anstatt zu kacheln (meist " +"mit Lücken)" #: ../src/ui/dialog/tracedialog.cpp:665 msgid "Remo_ve background" @@ -21831,13 +21937,13 @@ msgstr "Unterste Ebene (Hintergrund) nach Fertigstellung entfernen" #: ../src/ui/dialog/tracedialog.cpp:675 msgid "Multiple scans: creates a group of paths" -msgstr "Mehrfache Scans: Gruppen von Pfaden erzeugen" +msgstr "Mehrfache Abtastungen: Gruppen von Pfaden erzeugen" #. # end multiple scan #. ## end mode page #: ../src/ui/dialog/tracedialog.cpp:684 msgid "_Mode" -msgstr "_Modus" +msgstr "_Methode" #. ## begin option page #. # potrace parameters @@ -21867,7 +21973,7 @@ msgstr "Scharfe Ecken der Nachzeichnung glätten" #: ../src/ui/dialog/tracedialog.cpp:719 msgid "Increase this to smooth corners more" -msgstr "Erhöhen, um Ecken zu glätten" +msgstr "Erhöhen, um Ecken stärker zu glätten" #: ../src/ui/dialog/tracedialog.cpp:726 msgid "Optimize p_aths" @@ -21876,7 +21982,8 @@ msgstr "Pf_ade optimieren" #: ../src/ui/dialog/tracedialog.cpp:729 msgid "Try to optimize paths by joining adjacent Bezier curve segments" msgstr "" -"Versuchen, Pfade durch Verbinden von Bézierkurvenabschnitten zu optimieren" +"Versuchen, Pfade durch Verbinden von benachbarten Abschnitten der " +"Bézierkurve zu optimieren" #: ../src/ui/dialog/tracedialog.cpp:737 msgid "" @@ -21905,7 +22012,7 @@ msgid "" "\n" "http://potrace.sourceforge.net" msgstr "" -"Inkscapes Vektorrasterisierung\n" +"Inkscapes Rastervektorisierung\n" "basiert auf Potrace,\n" "entwickelt von Peter Selinger\n" "\n" @@ -22129,12 +22236,12 @@ msgid "nodeAsInXMLdialogTooltip|Delete node" msgstr "Knoten löschen" #: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 +#: ../src/ui/dialog/xml-tree.cpp:985 msgid "Duplicate node" msgstr "Knoten duplizieren" -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:199 +#: ../src/ui/dialog/xml-tree.cpp:1021 msgid "Delete attribute" msgstr "Attribut löschen" @@ -22146,43 +22253,43 @@ msgstr "Setzen" msgid "Drag to reorder nodes" msgstr "Ziehen, um die Knoten neu zu sortieren" -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1135 +#: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 +#: ../src/ui/dialog/xml-tree.cpp:1143 msgid "Unindent node" msgstr "Einrückung des Knotens verringern" -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1113 +#: ../src/ui/dialog/xml-tree.cpp:161 ../src/ui/dialog/xml-tree.cpp:162 +#: ../src/ui/dialog/xml-tree.cpp:1121 msgid "Indent node" msgstr "Knoten einrücken" -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1064 +#: ../src/ui/dialog/xml-tree.cpp:168 ../src/ui/dialog/xml-tree.cpp:169 +#: ../src/ui/dialog/xml-tree.cpp:1072 msgid "Raise node" msgstr "Knoten anheben" -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1082 +#: ../src/ui/dialog/xml-tree.cpp:175 ../src/ui/dialog/xml-tree.cpp:176 +#: ../src/ui/dialog/xml-tree.cpp:1090 msgid "Lower node" msgstr "Knoten absenken" -#: ../src/ui/dialog/xml-tree.cpp:208 +#: ../src/ui/dialog/xml-tree.cpp:216 msgid "Attribute name" msgstr "Attributname" -#: ../src/ui/dialog/xml-tree.cpp:223 +#: ../src/ui/dialog/xml-tree.cpp:231 msgid "Attribute value" msgstr "Attributwert" -#: ../src/ui/dialog/xml-tree.cpp:311 +#: ../src/ui/dialog/xml-tree.cpp:319 msgid "Click to select nodes, drag to rearrange." msgstr "Klick wählt Knoten aus, Ziehen ordnet neu an." -#: ../src/ui/dialog/xml-tree.cpp:322 +#: ../src/ui/dialog/xml-tree.cpp:330 msgid "Click attribute to edit." msgstr "Klick auf Attribut zum Bearbeiten." -#: ../src/ui/dialog/xml-tree.cpp:326 +#: ../src/ui/dialog/xml-tree.cpp:334 #, c-format msgid "" "Attribute %s selected. Press Ctrl+Enter when done editing to " @@ -22191,31 +22298,31 @@ msgstr "" "Attribut %s ausgewählt. Strg+Eingabe schließt ab und übernimmt " "Änderungen." -#: ../src/ui/dialog/xml-tree.cpp:566 +#: ../src/ui/dialog/xml-tree.cpp:574 msgid "Drag XML subtree" msgstr "XML-Unterbaum ziehen" -#: ../src/ui/dialog/xml-tree.cpp:868 +#: ../src/ui/dialog/xml-tree.cpp:876 msgid "New element node..." msgstr "Neuer Elementknoten..." -#: ../src/ui/dialog/xml-tree.cpp:906 +#: ../src/ui/dialog/xml-tree.cpp:914 msgid "Cancel" msgstr "Abbrechen" -#: ../src/ui/dialog/xml-tree.cpp:943 +#: ../src/ui/dialog/xml-tree.cpp:951 msgid "Create new element node" msgstr "Neuen Elementknoten erzeugen" -#: ../src/ui/dialog/xml-tree.cpp:959 +#: ../src/ui/dialog/xml-tree.cpp:967 msgid "Create new text node" msgstr "Neuen Textknoten erzeugen" -#: ../src/ui/dialog/xml-tree.cpp:994 +#: ../src/ui/dialog/xml-tree.cpp:1002 msgid "nodeAsInXMLinHistoryDialog|Delete node" msgstr "Knoten löschen" -#: ../src/ui/dialog/xml-tree.cpp:1038 +#: ../src/ui/dialog/xml-tree.cpp:1046 msgid "Change attribute" msgstr "Attribut ändern" @@ -22289,10 +22396,10 @@ msgid "" "\n" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" -"Eine Datei namens »%s« existiert " +"Eine Datei namens „%s“ existiert " "bereits. Soll sie ersetzt werden?\n" "\n" -"Die Datei existiert bereits in »%s«. Sie zu ersetzen wird ihren Inhalt " +"Die Datei existiert bereits in „%s“. Sie zu ersetzen wird ihren Inhalt " "überschreiben." #: ../src/ui/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 @@ -22464,7 +22571,7 @@ msgstr "_Text und Schriftart..." msgid "Check Spellin_g..." msgstr "Rechtschreibprüfun_g..." -#: ../src/ui/object-edit.cpp:456 +#: ../src/ui/object-edit.cpp:464 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" @@ -22472,7 +22579,7 @@ msgstr "" "Radius der horizontalen Rundung anpassen; Strg setzt vertikale " "und horizontale Rundung gleich" -#: ../src/ui/object-edit.cpp:461 +#: ../src/ui/object-edit.cpp:469 msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" @@ -22480,7 +22587,7 @@ msgstr "" "Radius der vertikalen Rundung anpassen; Strg setzt vertikale " "und horizontale Rundung gleich" -#: ../src/ui/object-edit.cpp:466 ../src/ui/object-edit.cpp:471 +#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 msgid "" "Adjust the width and height of the rectangle; with Ctrl to " "lock ratio or stretch in one dimension only" @@ -22488,8 +22595,8 @@ msgstr "" "Höhe/Breite des Rechtecks anpassen; Strg um Seitenverhältnis " "bei zu behalten oder nur in eine Richtung zu strecken" -#: ../src/ui/object-edit.cpp:718 ../src/ui/object-edit.cpp:722 #: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 +#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 msgid "" "Resize box in X/Y direction; with Shift along the Z axis; with " "Ctrl to constrain to the directions of edges or diagonals" @@ -22497,8 +22604,8 @@ msgstr "" "Größe der Box in X/Y-Richtung ändern; mit Umschalt entlang der Z-" "Achse; Mit Strg auf Richtung der Seiten oder Diagonalen beschränkt" -#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 #: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 +#: ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 msgid "" "Resize box along the Z axis; with Shift in X/Y direction; with " "Ctrl to constrain to the directions of edges or diagonals" @@ -22506,20 +22613,20 @@ msgstr "" "Größe der Box entlang der Z-Achse ändern; mit Umschalt in X/Y-" "Richtung; Mit Strg auf Richtung der Seiten und Diagonalen beschränkt" -#: ../src/ui/object-edit.cpp:750 +#: ../src/ui/object-edit.cpp:758 msgid "Move the box in perspective" msgstr "Bewegen der Box in der Perspektive" -#: ../src/ui/object-edit.cpp:989 +#: ../src/ui/object-edit.cpp:997 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "" "Höhe/Breite der Ellipse anpassen; Strg erzeugt einen Kreis" -#: ../src/ui/object-edit.cpp:993 +#: ../src/ui/object-edit.cpp:1001 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "Höhe der Ellipse anpassen; Strg erzeugt einen Kreis" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:1005 msgid "" "Position the start point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " @@ -22529,7 +22636,7 @@ msgstr "" "den Winkel ein; ziehen innerhalb der Ellipse erzeugt einen Kreisbogen " "- außerhalb ein Kreissegment" -#: ../src/ui/object-edit.cpp:1002 +#: ../src/ui/object-edit.cpp:1010 msgid "" "Position the end point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " @@ -22539,7 +22646,7 @@ msgstr "" "ein; Ziehen innerhalb der Ellipse erzeugt einen Kreisbogen - " "außerhalb ein Kreissegment" -#: ../src/ui/object-edit.cpp:1148 +#: ../src/ui/object-edit.cpp:1156 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" @@ -22547,7 +22654,7 @@ msgstr "" "Spitzen des Sterns oder Polygons anpassen; Umschalt rundet ab; " "Alt verändert nach Zufall" -#: ../src/ui/object-edit.cpp:1156 +#: ../src/ui/object-edit.cpp:1164 msgid "" "Adjust the base radius of the star; with Ctrl to keep star " "rays radial (no skew); with Shift to round; with Alt to " @@ -22557,7 +22664,7 @@ msgstr "" "Ausrichtung der Spitzen; Umschalt rundet; Alt verändert " "zufällig" -#: ../src/ui/object-edit.cpp:1351 +#: ../src/ui/object-edit.cpp:1359 msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" @@ -22565,7 +22672,7 @@ msgstr "" "Spirale von innen einrollen/ausrollen; Winkel mit Strg " "einrasten; Alt konvergiert/divergiert" -#: ../src/ui/object-edit.cpp:1355 +#: ../src/ui/object-edit.cpp:1363 msgid "" "Roll/unroll the spiral from outside; with Ctrl to snap angle; " "with Shift to scale/rotate; with Alt to lock radius" @@ -22573,11 +22680,11 @@ msgstr "" "Spirale von außen ausrollen/einrollen; Winkel mit Strg " "einrasten; Umschalt skaliert/rotiert; mit Alt Radius sperren" -#: ../src/ui/object-edit.cpp:1402 +#: ../src/ui/object-edit.cpp:1410 msgid "Adjust the offset distance" msgstr "Versatz-Abstand anpassen" -#: ../src/ui/object-edit.cpp:1439 +#: ../src/ui/object-edit.cpp:1447 msgid "Drag to resize the flowed text frame" msgstr "Ziehen, um die Größe des Fließtext-Rahmens zu ändern" @@ -23146,7 +23253,7 @@ msgstr "" "Führungspfad. Pfeiltasten verändern Breite (links/rechts) und Winkel " "(hoch/runter)." -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1593 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1584 msgid "" "Click to select or create text, drag to create flowed text; " "then type." @@ -23182,7 +23289,7 @@ msgstr "" msgid "Drag to measure the dimensions of objects." msgstr "Ziehen um die Dimensionen von Objekten zu messen." -#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:275 msgid "" "Click to set fill, Shift+click to set stroke; drag to " "average color in area; with Alt to pick inverse color; Ctrl+C " @@ -23215,18 +23322,18 @@ msgstr "Ziehen zum Radieren." msgid "Choose a subtool from the toolbar" msgstr "Wählen Sie ein Werkzeug aus der Werkzeugleiste" -#: ../src/ui/tools/arc-tool.cpp:252 +#: ../src/ui/tools/arc-tool.cpp:242 msgid "" "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" "Strg: Kreis oder Ellipse mit ganzzahligem Höhen-/Breitenverhältnis " "erzeugen, Winkel vom Bogen/Kreissegment einrasten" -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:279 msgid "Shift: draw around the starting point" msgstr "Umschalt: Um Mittelpunkt zeichnen" -#: ../src/ui/tools/arc-tool.cpp:422 +#: ../src/ui/tools/arc-tool.cpp:412 #, c-format msgid "" "Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " @@ -23235,7 +23342,7 @@ msgstr "" "Ellipse: %s × %s (festes Achsenverhältnis %d:%d); Umschalt zeichnet um Startpunkt" -#: ../src/ui/tools/arc-tool.cpp:424 +#: ../src/ui/tools/arc-tool.cpp:414 #, c-format msgid "" "Ellipse: %s × %s; with Ctrl to make square or integer-" @@ -23244,157 +23351,157 @@ msgstr "" "Ellipse: %s × %s; Strg drücken für ganzzahliges " "Verhältnis der Radien; Umschalt zeichnet um Startpunkt" -#: ../src/ui/tools/arc-tool.cpp:447 +#: ../src/ui/tools/arc-tool.cpp:437 msgid "Create ellipse" msgstr "Ellipse erzeugen" -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +#: ../src/ui/tools/box3d-tool.cpp:360 ../src/ui/tools/box3d-tool.cpp:367 +#: ../src/ui/tools/box3d-tool.cpp:374 ../src/ui/tools/box3d-tool.cpp:381 +#: ../src/ui/tools/box3d-tool.cpp:388 ../src/ui/tools/box3d-tool.cpp:395 msgid "Change perspective (angle of PLs)" msgstr "Perspektive ändern (Winkel der Perspektivlinien)" #. status text -#: ../src/ui/tools/box3d-tool.cpp:583 +#: ../src/ui/tools/box3d-tool.cpp:573 msgid "3D Box; with Shift to extrude along the Z axis" msgstr "3D Box; Umschalt um in Z-Richtung zu vergrößern" -#: ../src/ui/tools/box3d-tool.cpp:609 +#: ../src/ui/tools/box3d-tool.cpp:599 msgid "Create 3D box" msgstr "3D-Quader erzeugen" -#: ../src/ui/tools/calligraphic-tool.cpp:536 +#: ../src/ui/tools/calligraphic-tool.cpp:526 msgid "" "Guide path selected; start drawing along the guide with Ctrl" msgstr "" "Führungspfad ausgewählt; starte Zeichnen entlang der Führung mit " "Strg" -#: ../src/ui/tools/calligraphic-tool.cpp:538 +#: ../src/ui/tools/calligraphic-tool.cpp:528 msgid "Select a guide path to track with Ctrl" msgstr "Führungspfad auswählen mit Strg" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:663 msgid "Tracking: connection to guide path lost!" msgstr "Verfolgen: Verbindung zum Führungspfad verloren!" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:663 msgid "Tracking a guide path" msgstr "Verfolge einen Führungspfad" -#: ../src/ui/tools/calligraphic-tool.cpp:676 +#: ../src/ui/tools/calligraphic-tool.cpp:666 msgid "Drawing a calligraphic stroke" msgstr "Zeichne einen kalligrafischen Strich" -#: ../src/ui/tools/calligraphic-tool.cpp:977 +#: ../src/ui/tools/calligraphic-tool.cpp:967 msgid "Draw calligraphic stroke" msgstr "Kalligrafischen Strich zeichnen" -#: ../src/ui/tools/connector-tool.cpp:499 +#: ../src/ui/tools/connector-tool.cpp:489 msgid "Creating new connector" msgstr "Einen neuen Objektverbinder erzeugen" -#: ../src/ui/tools/connector-tool.cpp:740 +#: ../src/ui/tools/connector-tool.cpp:730 msgid "Connector endpoint drag cancelled." msgstr "Ziehen von Verbinder-Endpunkten abgebrochen." -#: ../src/ui/tools/connector-tool.cpp:783 +#: ../src/ui/tools/connector-tool.cpp:773 msgid "Reroute connector" msgstr "Objektverbinder neu verlegen" -#: ../src/ui/tools/connector-tool.cpp:936 +#: ../src/ui/tools/connector-tool.cpp:926 msgid "Create connector" msgstr "Objektverbinder erzeugen" # !!! -#: ../src/ui/tools/connector-tool.cpp:953 +#: ../src/ui/tools/connector-tool.cpp:943 msgid "Finishing connector" msgstr "Beende Objektverbinder" -#: ../src/ui/tools/connector-tool.cpp:1191 +#: ../src/ui/tools/connector-tool.cpp:1181 msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" "Objektverbinder-Endpunkt: ziehen, um neu zu verlegen oder mit neuen " "Formen zu verbinden" -#: ../src/ui/tools/connector-tool.cpp:1336 +#: ../src/ui/tools/connector-tool.cpp:1326 msgid "Select at least one non-connector object." msgstr "Mindestens ein Objekt auswählen, das kein Objektverbinder ist." -#: ../src/ui/tools/connector-tool.cpp:1341 +#: ../src/ui/tools/connector-tool.cpp:1331 #: ../src/widgets/connector-toolbar.cpp:314 msgid "Make connectors avoid selected objects" msgstr "Objektverbinder weichen den ausgewählten Objekten aus" -#: ../src/ui/tools/connector-tool.cpp:1342 +#: ../src/ui/tools/connector-tool.cpp:1332 #: ../src/widgets/connector-toolbar.cpp:324 msgid "Make connectors ignore selected objects" msgstr "Objektverbinder ignorieren die ausgewählten Objekte" #. alpha of color under cursor, to show in the statusbar #. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 +#: ../src/ui/tools/dropper-tool.cpp:271 #, c-format msgid " alpha %.3g" msgstr " Alpha %.3g" #. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:273 #, c-format msgid ", averaged with radius %d" msgstr ", gemittelt mit Radius %d" -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:273 msgid " under cursor" msgstr " unter Mauszeiger" #. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/ui/tools/dropper-tool.cpp:275 msgid "Release mouse to set color." msgstr "Maustaste loslassen, um die Farbe zu übernehmen." -#: ../src/ui/tools/dropper-tool.cpp:333 +#: ../src/ui/tools/dropper-tool.cpp:323 msgid "Set picked color" msgstr "Übernommene Farbe setzen" -#: ../src/ui/tools/eraser-tool.cpp:437 +#: ../src/ui/tools/eraser-tool.cpp:427 msgid "Drawing an eraser stroke" msgstr "Zeichne einen Löschstrich" -#: ../src/ui/tools/eraser-tool.cpp:770 +#: ../src/ui/tools/eraser-tool.cpp:760 msgid "Draw eraser stroke" msgstr "Radierer-Pfad zeichnen" -#: ../src/ui/tools/flood-tool.cpp:192 +#: ../src/ui/tools/flood-tool.cpp:182 msgid "Visible Colors" msgstr "Sichtbare Farben" # CHECK -#: ../src/ui/tools/flood-tool.cpp:210 +#: ../src/ui/tools/flood-tool.cpp:200 msgctxt "Flood autogap" msgid "None" msgstr "Keine" -#: ../src/ui/tools/flood-tool.cpp:211 +#: ../src/ui/tools/flood-tool.cpp:201 msgctxt "Flood autogap" msgid "Small" msgstr "Klein" -#: ../src/ui/tools/flood-tool.cpp:212 +#: ../src/ui/tools/flood-tool.cpp:202 msgctxt "Flood autogap" msgid "Medium" msgstr "Mittel" -#: ../src/ui/tools/flood-tool.cpp:213 +#: ../src/ui/tools/flood-tool.cpp:203 msgctxt "Flood autogap" msgid "Large" msgstr "Groß" -#: ../src/ui/tools/flood-tool.cpp:435 +#: ../src/ui/tools/flood-tool.cpp:425 msgid "Too much inset, the result is empty." msgstr "Zu viel Schrumpfung, das Ergebnis ist leer." -#: ../src/ui/tools/flood-tool.cpp:476 +#: ../src/ui/tools/flood-tool.cpp:466 #, c-format msgid "" "Area filled, path with %d node created and unioned with selection." @@ -23407,18 +23514,18 @@ msgstr[1] "" "Gebiet gefüllt, Pfad mit %d Knoten erzeugt und mit der Auswahl " "vereinigt." -#: ../src/ui/tools/flood-tool.cpp:482 +#: ../src/ui/tools/flood-tool.cpp:472 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." msgstr[0] "Gebiet gefüllt, Pfad mit %d Knoten erzeugt." msgstr[1] "Gebiet gefüllt, Pfad mit %d Knoten erzeugt." -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +#: ../src/ui/tools/flood-tool.cpp:740 ../src/ui/tools/flood-tool.cpp:1050 msgid "Area is not bounded, cannot fill." msgstr "Gebiet ist nicht abgegrenzt, kann nicht füllen." -#: ../src/ui/tools/flood-tool.cpp:1065 +#: ../src/ui/tools/flood-tool.cpp:1055 msgid "" "Only the visible part of the bounded area was filled. If you want to " "fill all of the area, undo, zoom out, and fill again." @@ -23427,15 +23534,15 @@ msgstr "" "Sie das gesamte Gebiet füllen wollen, dann machen Sie rückgängig, zoomen " "heraus, und füllen Sie noch einmal." -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +#: ../src/ui/tools/flood-tool.cpp:1073 ../src/ui/tools/flood-tool.cpp:1224 msgid "Fill bounded area" msgstr "Fülle abgegrenztes Gebiet" -#: ../src/ui/tools/flood-tool.cpp:1099 +#: ../src/ui/tools/flood-tool.cpp:1089 msgid "Set style on object" msgstr "Stil auf Objekte anwenden" -#: ../src/ui/tools/flood-tool.cpp:1159 +#: ../src/ui/tools/flood-tool.cpp:1149 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" "Zeichne über Flächen um zur Füllung hinzuzufügen, Alt für " @@ -23464,31 +23571,31 @@ msgid "Create single dot" msgstr "Einen einzelnen Punkt erzeugen" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#: ../src/ui/tools/gradient-tool.cpp:121 ../src/ui/tools/mesh-tool.cpp:120 #, c-format msgid "%s selected" msgstr "%s ausgewählt" #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#: ../src/ui/tools/gradient-tool.cpp:123 ../src/ui/tools/gradient-tool.cpp:132 #, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" -msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" -msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" +msgstr[0] " von %d Farbverlaufs-Anfasser" +msgstr[1] " von %d Farbverlaufs-Anfassern" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#: ../src/ui/tools/gradient-tool.cpp:124 ../src/ui/tools/gradient-tool.cpp:133 +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:123 +#: ../src/ui/tools/mesh-tool.cpp:134 ../src/ui/tools/mesh-tool.cpp:142 #, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" -msgstr[0] "auf %d gewähltes Objekt" -msgstr[1] "auf %d gewählte Objekte" +msgstr[0] " auf %d ausgewählten Objekt" +msgstr[1] " auf %d ausgewählten Objekten" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#: ../src/ui/tools/gradient-tool.cpp:130 ../src/ui/tools/mesh-tool.cpp:130 #, c-format msgid "" "One handle merging %d stop (drag with Shift to separate) selected" @@ -23500,121 +23607,122 @@ msgstr[1] "" "trennt)" #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 +#: ../src/ui/tools/gradient-tool.cpp:138 #, c-format msgid "%d gradient handle selected out of %d" msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" -msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" +msgstr[0] "%d Verlaufs-Anfasser von %d ausgewählt" +msgstr[1] "%d Verlaufs-Anfasser von %d ausgewählt" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 +#: ../src/ui/tools/gradient-tool.cpp:145 #, c-format msgid "No gradient handles selected out of %d on %d selected object" msgid_plural "" "No gradient handles selected out of %d on %d selected objects" msgstr[0] "" -"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" +"Von %d Verlaufs-Anfassern keiner ausgewählt bei %d ausgewählten Objekt" msgstr[1] "" -"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" +"Von %d Verlaufs-Anfassern keiner ausgewählt bei %d ausgewählten " +"Objekten" -#: ../src/ui/tools/gradient-tool.cpp:443 +#: ../src/ui/tools/gradient-tool.cpp:433 msgid "Simplify gradient" msgstr "Farbverlauf vereinfachen" -#: ../src/ui/tools/gradient-tool.cpp:519 +#: ../src/ui/tools/gradient-tool.cpp:509 msgid "Create default gradient" msgstr "Standard-Farbverlauf erzeugen" -#: ../src/ui/tools/gradient-tool.cpp:578 ../src/ui/tools/mesh-tool.cpp:570 +#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:560 msgid "Draw around handles to select them" msgstr "Zeichne um Anfasser um diese auszuwählen" -#: ../src/ui/tools/gradient-tool.cpp:701 +#: ../src/ui/tools/gradient-tool.cpp:691 msgid "Ctrl: snap gradient angle" msgstr "Strg: Winkel des Farbverlaufs einrasten" -#: ../src/ui/tools/gradient-tool.cpp:702 +#: ../src/ui/tools/gradient-tool.cpp:692 msgid "Shift: draw gradient around the starting point" msgstr "Umschalt: Farbverlauf ausgehend vom Mittelpunkt zeichnen" -#: ../src/ui/tools/gradient-tool.cpp:956 ../src/ui/tools/mesh-tool.cpp:993 +#: ../src/ui/tools/gradient-tool.cpp:946 ../src/ui/tools/mesh-tool.cpp:983 #, 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] "Farbverlauf für %d Objekte; mit Strg Winkel einrasten" msgstr[1] "Farbverlauf für %d Objekte; mit Strg Winkel einrasten" -#: ../src/ui/tools/gradient-tool.cpp:960 ../src/ui/tools/mesh-tool.cpp:997 +#: ../src/ui/tools/gradient-tool.cpp:950 ../src/ui/tools/mesh-tool.cpp:987 msgid "Select objects on which to create gradient." msgstr "Objekte auswählen, für die ein Farbverlauf erzeugt werden soll." -#: ../src/ui/tools/lpe-tool.cpp:206 +#: ../src/ui/tools/lpe-tool.cpp:195 msgid "Choose a construction tool from the toolbar." msgstr "Ein Konstruktionswerkzeug von der Werkzeugleiste wählen." #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 -#, fuzzy, c-format +#: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 +#, c-format msgid " out of %d mesh handle" msgid_plural " out of %d mesh handles" -msgstr[0] " von %d Farbverlaufs-Anfasser gewählt" -msgstr[1] " von %d Farbverlaufs-Anfassern gewählt" +msgstr[0] " von %d Gitter-Anfasser" +msgstr[1] " von %d Gitter-Anfassern" -#: ../src/ui/tools/mesh-tool.cpp:150 -#, fuzzy, c-format +#: ../src/ui/tools/mesh-tool.cpp:140 +#, c-format msgid "%d mesh handle selected out of %d" msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "%d Verlaufs-Handle von %d ausgewählt" -msgstr[1] "%d Verlaufs-Handles von %d ausgewählt" +msgstr[0] "%d Gitter-Anfasser von %d ausgewählt" +msgstr[1] "%d Gitter-Anfasser von %d ausgewählt" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 -#, fuzzy, c-format +#: ../src/ui/tools/mesh-tool.cpp:147 +#, c-format msgid "No mesh handles selected out of %d on %d selected object" msgid_plural "No mesh handles selected out of %d on %d selected objects" msgstr[0] "" -"Kein Verlaufs-Handle von %d ausgewählt bei %d markiertem Objekt" +"Von %d Gitter-Anfassern keiner ausgewählt bei %d ausgewählten Objekt" msgstr[1] "" -"Keine Verlaufs-Handles von %d ausgewählt bei %d markierten Objekten" +"Von %d Gitter-Anfassern keiner ausgewählt bei %d ausgewählten Objekten" -#: ../src/ui/tools/mesh-tool.cpp:321 +#: ../src/ui/tools/mesh-tool.cpp:311 msgid "Split mesh row/column" msgstr "Teile Gitter Reihe/Spalte" -#: ../src/ui/tools/mesh-tool.cpp:407 +#: ../src/ui/tools/mesh-tool.cpp:397 msgid "Toggled mesh path type." msgstr "Umgeschalteter Gitterpfadtyp." -#: ../src/ui/tools/mesh-tool.cpp:411 +#: ../src/ui/tools/mesh-tool.cpp:401 msgid "Approximated arc for mesh side." msgstr "Durchschnittlicher Winkel für Gitterseite." -#: ../src/ui/tools/mesh-tool.cpp:415 +#: ../src/ui/tools/mesh-tool.cpp:405 msgid "Toggled mesh tensors." msgstr "Umgeschaltete Gittertensoren." -#: ../src/ui/tools/mesh-tool.cpp:419 +#: ../src/ui/tools/mesh-tool.cpp:409 msgid "Smoothed mesh corner color." msgstr "Farbe für geglättete Gitterecke." -#: ../src/ui/tools/mesh-tool.cpp:423 +#: ../src/ui/tools/mesh-tool.cpp:413 msgid "Picked mesh corner color." msgstr "Ausgewählte Farbe der Gitter-Ecken " -#: ../src/ui/tools/mesh-tool.cpp:498 +#: ../src/ui/tools/mesh-tool.cpp:488 msgid "Create default mesh" msgstr "Standardgitter erstellen" -#: ../src/ui/tools/mesh-tool.cpp:718 +#: ../src/ui/tools/mesh-tool.cpp:708 msgid "FIXMECtrl: snap mesh angle" msgstr "FIXMEStrg: Gitterwinkel einrasten" -#: ../src/ui/tools/mesh-tool.cpp:719 +#: ../src/ui/tools/mesh-tool.cpp:709 msgid "FIXMEShift: draw mesh around the starting point" msgstr "FIXMEUmschalt: Gitter um den Startpunkt zeichnen" -#: ../src/ui/tools/node-tool.cpp:612 +#: ../src/ui/tools/node-tool.cpp:602 msgctxt "Node tool tip" msgid "" "Shift: drag to add nodes to the selection, click to toggle object " @@ -23623,19 +23731,19 @@ msgstr "" "Umschalt: Ziehen, um Knoten zur Auswahl hinzuzufügen. Klicken, um die " "Auswahl umzuschalten." -#: ../src/ui/tools/node-tool.cpp:616 +#: ../src/ui/tools/node-tool.cpp:606 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" msgstr "Umschalt: Ziehen, um Knoten zur Auswahl hinzuzufügen" -#: ../src/ui/tools/node-tool.cpp:628 +#: ../src/ui/tools/node-tool.cpp:618 #, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." msgstr[0] "%u von %u Knoten ausgewählt." msgstr[1] "%u von %u Knoten ausgewählt." -#: ../src/ui/tools/node-tool.cpp:634 +#: ../src/ui/tools/node-tool.cpp:624 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" @@ -23643,71 +23751,71 @@ msgstr "" "%s Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu " "bearbeiten (mehr: Umschalt)" -#: ../src/ui/tools/node-tool.cpp:640 +#: ../src/ui/tools/node-tool.cpp:630 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "%s Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" -#: ../src/ui/tools/node-tool.cpp:649 +#: ../src/ui/tools/node-tool.cpp:639 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "" "Ziehen, um Knoten auszuwählen. Klicken, um nur dieses Objekt zu bearbeiten." -#: ../src/ui/tools/node-tool.cpp:652 +#: ../src/ui/tools/node-tool.cpp:642 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "Ziehen, um Knoten auszuwählen. Klicken, um Auswahl zu löschen" -#: ../src/ui/tools/node-tool.cpp:657 +#: ../src/ui/tools/node-tool.cpp:647 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" "Ziehen um Objekte zum Bearbeiten auszuwählen und Klicken, um das Objekt zu " "bearbeiten (mehr: Umschalt)" -#: ../src/ui/tools/node-tool.cpp:660 +#: ../src/ui/tools/node-tool.cpp:650 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "Ziehen, um Objekte zum bearbeiten auszuwählen" -#: ../src/ui/tools/pen-tool.cpp:233 ../src/ui/tools/pencil-tool.cpp:466 +#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:457 msgid "Drawing cancelled" msgstr "Zeichnen abgebrochen" # !!! make singular and plural forms -#: ../src/ui/tools/pen-tool.cpp:469 ../src/ui/tools/pencil-tool.cpp:204 +#: ../src/ui/tools/pen-tool.cpp:460 ../src/ui/tools/pencil-tool.cpp:195 msgid "Continuing selected path" msgstr "Gewählten Pfad verlängern" -#: ../src/ui/tools/pen-tool.cpp:479 ../src/ui/tools/pencil-tool.cpp:212 +#: ../src/ui/tools/pen-tool.cpp:470 ../src/ui/tools/pencil-tool.cpp:203 msgid "Creating new path" msgstr "Erzeuge neuen Pfad" -#: ../src/ui/tools/pen-tool.cpp:481 ../src/ui/tools/pencil-tool.cpp:215 +#: ../src/ui/tools/pen-tool.cpp:472 ../src/ui/tools/pencil-tool.cpp:206 msgid "Appending to selected path" msgstr "Zu ausgewähltem Pfad hinzufügen" -#: ../src/ui/tools/pen-tool.cpp:646 +#: ../src/ui/tools/pen-tool.cpp:637 msgid "Click or click and drag to close and finish the path." msgstr "Klick oder Klick und Ziehen, um den Pfad abzuschließen." -#: ../src/ui/tools/pen-tool.cpp:648 +#: ../src/ui/tools/pen-tool.cpp:639 #, fuzzy msgid "" "Click or click and drag to close and finish the path. Shift" "+Click make a cusp node" msgstr "Klick oder Klick und Ziehen, um den Pfad abzuschließen." -#: ../src/ui/tools/pen-tool.cpp:660 +#: ../src/ui/tools/pen-tool.cpp:651 msgid "" "Click or click and drag to continue the path from this point." msgstr "" "Klick oder Klick und Ziehen, um den Pfad von diesem Punkt aus " "fortzusetzen." -#: ../src/ui/tools/pen-tool.cpp:662 +#: ../src/ui/tools/pen-tool.cpp:653 #, fuzzy msgid "" "Click or click and drag to continue the path from this point. " @@ -23716,7 +23824,7 @@ msgstr "" "Klick oder Klick und Ziehen, um den Pfad von diesem Punkt aus " "fortzusetzen." -#: ../src/ui/tools/pen-tool.cpp:2036 +#: ../src/ui/tools/pen-tool.cpp:2027 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Ctrl to " @@ -23725,7 +23833,7 @@ msgstr "" "Kurvensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " "Winkel ein; Eingabe schließt den Pfad ab" -#: ../src/ui/tools/pen-tool.cpp:2037 +#: ../src/ui/tools/pen-tool.cpp:2028 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Ctrl to " @@ -23734,7 +23842,7 @@ msgstr "" "Liniensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " "Winkel ein; Eingabe schließt den Pfad ab" -#: ../src/ui/tools/pen-tool.cpp:2040 +#: ../src/ui/tools/pen-tool.cpp:2031 #, fuzzy, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+ClickKurvensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " "Winkel ein; Eingabe schließt den Pfad ab" -#: ../src/ui/tools/pen-tool.cpp:2041 +#: ../src/ui/tools/pen-tool.cpp:2032 #, fuzzy, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " @@ -23752,7 +23860,7 @@ msgstr "" "Liniensegment: Winkel %3.2f°, Abstand %s; Strg rastet den " "Winkel ein; Eingabe schließt den Pfad ab" -#: ../src/ui/tools/pen-tool.cpp:2058 +#: ../src/ui/tools/pen-tool.cpp:2049 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " @@ -23761,7 +23869,7 @@ msgstr "" "Kurvenanfasser: Winkel %3.2f°; Länge %s; Winkel mit Strg " "einrasten" -#: ../src/ui/tools/pen-tool.cpp:2082 +#: ../src/ui/tools/pen-tool.cpp:2073 #, c-format msgid "" "Curve handle, symmetric: angle %3.2f°, length %s; with CtrlSymmetrischer Kurvenanfasser: Winkel %3.2f°, Länge %s; Strg rastet den Winkel ein; Umschalt bewegt nur diesen Anfasser" -#: ../src/ui/tools/pen-tool.cpp:2083 +#: ../src/ui/tools/pen-tool.cpp:2074 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " @@ -23780,29 +23888,29 @@ msgstr "" "Winkel ein; Umschalt bewegt nur diesen Anfasser" # not sure here -cm- -#: ../src/ui/tools/pen-tool.cpp:2217 +#: ../src/ui/tools/pen-tool.cpp:2208 msgid "Drawing finished" msgstr "Zeichnen beendet" -#: ../src/ui/tools/pencil-tool.cpp:316 +#: ../src/ui/tools/pencil-tool.cpp:307 msgid "Release here to close and finish the path." msgstr "Hier loslassen, um den Pfad zu schließen und beenden." -#: ../src/ui/tools/pencil-tool.cpp:322 +#: ../src/ui/tools/pencil-tool.cpp:313 msgid "Drawing a freehand path" msgstr "Freihandlinien zeichnen" -#: ../src/ui/tools/pencil-tool.cpp:327 +#: ../src/ui/tools/pencil-tool.cpp:318 msgid "Drag to continue the path from this point." msgstr "Ziehen, um den Pfad von diesem Punkt aus fortzusetzen." # !!! #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:412 +#: ../src/ui/tools/pencil-tool.cpp:403 msgid "Finishing freehand" msgstr "Fertig mit Freihandlinien" -#: ../src/ui/tools/pencil-tool.cpp:515 +#: ../src/ui/tools/pencil-tool.cpp:506 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." @@ -23811,11 +23919,11 @@ msgstr "" "Pfaden. Zum Beenden Alt loslassen." # !!! -#: ../src/ui/tools/pencil-tool.cpp:542 +#: ../src/ui/tools/pencil-tool.cpp:533 msgid "Finishing freehand sketch" msgstr "Fertig mit Freihandlinien" -#: ../src/ui/tools/rect-tool.cpp:288 +#: ../src/ui/tools/rect-tool.cpp:278 msgid "" "Ctrl: make square or integer-ratio rect, lock a rounded corner " "circular" @@ -23823,7 +23931,7 @@ msgstr "" "Strg: Quadrat oder Rechteck mit ganzzahligem Kanten-Längenverhältnis, " "abgerundete Kanten mit einheitlichen Radien" -#: ../src/ui/tools/rect-tool.cpp:449 +#: ../src/ui/tools/rect-tool.cpp:439 #, c-format msgid "" "Rectangle: %s × %s (constrained to ratio %d:%d); with ShiftRechteck: %s × %s (beschränkt auf Seitenverhältnis %d:%d); " "Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/ui/tools/rect-tool.cpp:452 +#: ../src/ui/tools/rect-tool.cpp:442 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " @@ -23841,7 +23949,7 @@ msgstr "" "Rechteck: %s × %s (beschränkt auf Goldenen Schnitt 1,618 : 1); " "Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/ui/tools/rect-tool.cpp:454 +#: ../src/ui/tools/rect-tool.cpp:444 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " @@ -23850,7 +23958,7 @@ msgstr "" "Rechteck: %s × %s (beschränkt auf Goldenen Schnitt 1 : 1,618); " "Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/ui/tools/rect-tool.cpp:458 +#: ../src/ui/tools/rect-tool.cpp:448 #, c-format msgid "" "Rectangle: %s × %s; with Ctrl to make square or integer-" @@ -23859,16 +23967,16 @@ msgstr "" "Rechteck: %s × %s; Strg erzeugt Quadrat oder ganzzahliges " "Höhen/Breitenverhältnis; Umschalt - Rechteck vom Zentrum aus zeichnen" -#: ../src/ui/tools/rect-tool.cpp:481 +#: ../src/ui/tools/rect-tool.cpp:471 msgid "Create rectangle" msgstr "Rechteck erzeugen" -#: ../src/ui/tools/select-tool.cpp:169 +#: ../src/ui/tools/select-tool.cpp:160 msgid "Click selection to toggle scale/rotation handles" msgstr "" "Klicken Sie auf die Auswahl, um zwischen Skalieren und Rotieren umzuschalten" -#: ../src/ui/tools/select-tool.cpp:170 +#: ../src/ui/tools/select-tool.cpp:161 msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." @@ -23877,16 +23985,16 @@ msgstr "" "auszuwählen." # !!! -#: ../src/ui/tools/select-tool.cpp:223 +#: ../src/ui/tools/select-tool.cpp:214 msgid "Move canceled." msgstr "Verschieben abgebrochen." # !!! -#: ../src/ui/tools/select-tool.cpp:231 +#: ../src/ui/tools/select-tool.cpp:222 msgid "Selection canceled." msgstr "Auswahl abgebrochen." -#: ../src/ui/tools/select-tool.cpp:653 +#: ../src/ui/tools/select-tool.cpp:644 msgid "" "Draw over objects to select them; release Alt to switch to " "rubberband selection" @@ -23894,7 +24002,7 @@ msgstr "" "Zeichnen über Objekten wählt sie aus; Alt loslassen, um mit " "Gummiband auszuwählen" -#: ../src/ui/tools/select-tool.cpp:655 +#: ../src/ui/tools/select-tool.cpp:646 msgid "" "Drag around objects to select them; press Alt to switch to " "touch selection" @@ -23902,19 +24010,19 @@ msgstr "" "Ziehen um Objekte wählt sie aus; Alt drücken, um durch " "Berührung auszuwählen" -#: ../src/ui/tools/select-tool.cpp:950 +#: ../src/ui/tools/select-tool.cpp:941 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" "Strg: Klick um in Gruppierung auszuwählen; Ziehen um horizontal/" "vertikal bewegen" -#: ../src/ui/tools/select-tool.cpp:951 +#: ../src/ui/tools/select-tool.cpp:942 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" "Umschalt: Klick um Auswahl aktivieren/deaktivieren, Ziehen für " "Gummiband-Auswahl" -#: ../src/ui/tools/select-tool.cpp:952 +#: ../src/ui/tools/select-tool.cpp:943 msgid "" "Alt: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" @@ -23922,41 +24030,41 @@ msgstr "" "Alt: Klick um verdeckte Objekte auswählen; Ziehen um gewähltes Objekt " "zu verschieben oder durch Berühren auszuwählen" -#: ../src/ui/tools/select-tool.cpp:1160 +#: ../src/ui/tools/select-tool.cpp:1151 msgid "Selected object is not a group. Cannot enter." msgstr "Ausgewähltes Objekt ist keine Gruppe - kann diese nicht betreten." -#: ../src/ui/tools/spiral-tool.cpp:259 +#: ../src/ui/tools/spiral-tool.cpp:249 msgid "Ctrl: snap angle" msgstr "Strg: Winkel einrasten" -#: ../src/ui/tools/spiral-tool.cpp:261 +#: ../src/ui/tools/spiral-tool.cpp:251 msgid "Alt: lock spiral radius" msgstr "Alt: Radius der Spirale einrasten" -#: ../src/ui/tools/spiral-tool.cpp:400 +#: ../src/ui/tools/spiral-tool.cpp:390 #, c-format msgid "" "Spiral: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" "Spirale: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#: ../src/ui/tools/spiral-tool.cpp:421 +#: ../src/ui/tools/spiral-tool.cpp:411 msgid "Create spiral" msgstr "Spirale erstellen" -#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 +#: ../src/ui/tools/spray-tool.cpp:182 ../src/ui/tools/tweak-tool.cpp:157 #, c-format msgid "%i object selected" msgid_plural "%i objects selected" msgstr[0] "%i Objekt ausgewählt" msgstr[1] "%i Objekte ausgewählt" -#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 +#: ../src/ui/tools/spray-tool.cpp:184 ../src/ui/tools/tweak-tool.cpp:159 msgid "Nothing selected" msgstr "Es wurde nichts gewählt" -#: ../src/ui/tools/spray-tool.cpp:199 +#: ../src/ui/tools/spray-tool.cpp:189 #, c-format msgid "" "%s. Drag, click or click and scroll to spray copies of the initial " @@ -23965,7 +24073,7 @@ msgstr "" "%s. Ziehen, Klicken oder Klicken und Scrollen zum Sprühen von Kopien " "der ersten Auswahl." -#: ../src/ui/tools/spray-tool.cpp:202 +#: ../src/ui/tools/spray-tool.cpp:192 #, c-format msgid "" "%s. Drag, click or click and scroll to spray clones of the initial " @@ -23974,7 +24082,7 @@ msgstr "" "%s. Ziehen, Klicken oder Klicken und Scrollen zum Sprühen von Klonen " "der ersten Auswahl." -#: ../src/ui/tools/spray-tool.cpp:205 +#: ../src/ui/tools/spray-tool.cpp:195 #, c-format msgid "" "%s. Drag, click or click and scroll to spray in a single path of the " @@ -23983,95 +24091,95 @@ msgstr "" "%s. Ziehen, Klicken oder Klicken und Scrollen zum Sprühen in einen " "Einzelpfad der ersten Auswahl." -#: ../src/ui/tools/spray-tool.cpp:664 +#: ../src/ui/tools/spray-tool.cpp:654 msgid "Nothing selected! Select objects to spray." msgstr "Nichts ausgewählt! Wähle Objekte zum Sprühen aus." -#: ../src/ui/tools/spray-tool.cpp:739 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:729 ../src/widgets/spray-toolbar.cpp:166 msgid "Spray with copies" msgstr "Sprühen mit Kopien" -#: ../src/ui/tools/spray-tool.cpp:743 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:733 ../src/widgets/spray-toolbar.cpp:173 msgid "Spray with clones" msgstr "Sprühen mit Klonen" -#: ../src/ui/tools/spray-tool.cpp:747 +#: ../src/ui/tools/spray-tool.cpp:737 msgid "Spray in single path" msgstr "Sprühen in einen einzelnen Pfad" -#: ../src/ui/tools/star-tool.cpp:271 +#: ../src/ui/tools/star-tool.cpp:261 msgid "Ctrl: snap angle; keep rays radial" msgstr "Strg: Winkel einrasten; Strahlen bleiben radial ausgerichtet" -#: ../src/ui/tools/star-tool.cpp:417 +#: ../src/ui/tools/star-tool.cpp:407 #, c-format msgid "" "Polygon: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" "Polygon: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#: ../src/ui/tools/star-tool.cpp:418 +#: ../src/ui/tools/star-tool.cpp:408 #, c-format msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" "Stern: Radius %s, Winkel %5g°; Winkel mit Strg einrasten" -#: ../src/ui/tools/star-tool.cpp:446 +#: ../src/ui/tools/star-tool.cpp:436 msgid "Create star" msgstr "Stern erstellen" -#: ../src/ui/tools/text-tool.cpp:379 +#: ../src/ui/tools/text-tool.cpp:370 msgid "Click to edit the text, drag to select part of the text." msgstr "" "Klick zum Ändern des Textes, Ziehen, um einen Teil des Textes " "zu ändern." -#: ../src/ui/tools/text-tool.cpp:381 +#: ../src/ui/tools/text-tool.cpp:372 msgid "" "Click to edit the flowed text, drag to select part of the text." msgstr "" "Klick zum Ändern des Fließtextes, Ziehen, um einen Teil des " "Textes zu ändern." -#: ../src/ui/tools/text-tool.cpp:435 +#: ../src/ui/tools/text-tool.cpp:426 msgid "Create text" msgstr "Text erstellen" -#: ../src/ui/tools/text-tool.cpp:460 +#: ../src/ui/tools/text-tool.cpp:451 msgid "Non-printable character" msgstr "Nicht druckbares Zeichen" -#: ../src/ui/tools/text-tool.cpp:475 +#: ../src/ui/tools/text-tool.cpp:466 msgid "Insert Unicode character" msgstr "Unicode-Zeichen einfügen" -#: ../src/ui/tools/text-tool.cpp:510 +#: ../src/ui/tools/text-tool.cpp:501 #, c-format msgid "Unicode (Enter to finish): %s: %s" msgstr "Unicode (Eingabe zum Abschliessen): %s: %s" -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 +#: ../src/ui/tools/text-tool.cpp:503 ../src/ui/tools/text-tool.cpp:808 msgid "Unicode (Enter to finish): " msgstr "Unicode (Eingabe zum Abschliessen): " -#: ../src/ui/tools/text-tool.cpp:595 +#: ../src/ui/tools/text-tool.cpp:586 #, c-format msgid "Flowed text frame: %s × %s" msgstr "Fließtext-Rahmen: %s × %s" -#: ../src/ui/tools/text-tool.cpp:653 +#: ../src/ui/tools/text-tool.cpp:644 msgid "Type text; Enter to start new line." msgstr "Text schreiben; Eingabe, um eine neue Zeile zu beginnen." -#: ../src/ui/tools/text-tool.cpp:664 +#: ../src/ui/tools/text-tool.cpp:655 msgid "Flowed text is created." msgstr "Fließtext wird erzeugt." -#: ../src/ui/tools/text-tool.cpp:665 +#: ../src/ui/tools/text-tool.cpp:656 msgid "Create flowed text" msgstr "Fließtext erstellen" -#: ../src/ui/tools/text-tool.cpp:667 +#: ../src/ui/tools/text-tool.cpp:658 msgid "" "The frame is too small for the current font size. Flowed text not " "created." @@ -24079,75 +24187,75 @@ msgstr "" "Der Rahmen ist zu klein für die aktuelle Schriftgröße. Der Fließtext " "wurde nicht erzeugt." -#: ../src/ui/tools/text-tool.cpp:803 +#: ../src/ui/tools/text-tool.cpp:794 msgid "No-break space" msgstr "Untrennbares Leerzeichen" -#: ../src/ui/tools/text-tool.cpp:804 +#: ../src/ui/tools/text-tool.cpp:795 msgid "Insert no-break space" msgstr "Untrennbares Leerzeichen einfügen" -#: ../src/ui/tools/text-tool.cpp:840 +#: ../src/ui/tools/text-tool.cpp:831 msgid "Make bold" msgstr "Fett" -#: ../src/ui/tools/text-tool.cpp:857 +#: ../src/ui/tools/text-tool.cpp:848 msgid "Make italic" msgstr "Kursiv" -#: ../src/ui/tools/text-tool.cpp:895 +#: ../src/ui/tools/text-tool.cpp:886 msgid "New line" msgstr "Neue Zeile" -#: ../src/ui/tools/text-tool.cpp:936 +#: ../src/ui/tools/text-tool.cpp:927 msgid "Backspace" msgstr "Rückschritt" -#: ../src/ui/tools/text-tool.cpp:990 +#: ../src/ui/tools/text-tool.cpp:981 msgid "Kern to the left" msgstr "Unterschneidung nach links" -#: ../src/ui/tools/text-tool.cpp:1014 +#: ../src/ui/tools/text-tool.cpp:1005 msgid "Kern to the right" msgstr "Unterschneidung nach rechts" -#: ../src/ui/tools/text-tool.cpp:1038 +#: ../src/ui/tools/text-tool.cpp:1029 msgid "Kern up" msgstr "Unterschneidung nach oben" -#: ../src/ui/tools/text-tool.cpp:1062 +#: ../src/ui/tools/text-tool.cpp:1053 msgid "Kern down" msgstr "Unterschneidung nach unten" -#: ../src/ui/tools/text-tool.cpp:1137 +#: ../src/ui/tools/text-tool.cpp:1128 msgid "Rotate counterclockwise" msgstr "Entgegen Uhrzeigersinn drehen" -#: ../src/ui/tools/text-tool.cpp:1157 +#: ../src/ui/tools/text-tool.cpp:1148 msgid "Rotate clockwise" msgstr "Im Uhrzeigersinn drehen" -#: ../src/ui/tools/text-tool.cpp:1173 +#: ../src/ui/tools/text-tool.cpp:1164 msgid "Contract line spacing" msgstr "Zeilenabstand vermindern" -#: ../src/ui/tools/text-tool.cpp:1179 +#: ../src/ui/tools/text-tool.cpp:1170 msgid "Contract letter spacing" msgstr "Zeichenabstand vermindern" -#: ../src/ui/tools/text-tool.cpp:1196 +#: ../src/ui/tools/text-tool.cpp:1187 msgid "Expand line spacing" msgstr "Zeilenabstand vergrößern" -#: ../src/ui/tools/text-tool.cpp:1202 +#: ../src/ui/tools/text-tool.cpp:1193 msgid "Expand letter spacing" msgstr "Zeichenabstand vergrößern" -#: ../src/ui/tools/text-tool.cpp:1332 +#: ../src/ui/tools/text-tool.cpp:1323 msgid "Paste text" msgstr "Text einfügen" -#: ../src/ui/tools/text-tool.cpp:1583 +#: ../src/ui/tools/text-tool.cpp:1574 #, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " @@ -24162,7 +24270,7 @@ msgstr[1] "" "Fließtext schreiben (%d Zeichen%s); Eingabe, um einen neuen Absatz zu " "beginnen." -#: ../src/ui/tools/text-tool.cpp:1585 +#: ../src/ui/tools/text-tool.cpp:1576 #, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" @@ -24174,7 +24282,7 @@ msgstr[1] "" "Text eintippen oder bearbeiten (%d Zeichen%s); Eingabe, um eine neue " "Zeile zu beginnen." -#: ../src/ui/tools/text-tool.cpp:1695 +#: ../src/ui/tools/text-tool.cpp:1686 msgid "Type text" msgstr "Text eingeben" @@ -24182,144 +24290,144 @@ msgstr "Text eingeben" msgid "Space+mouse move to pan canvas" msgstr "Leertaste+Maus ziehen, um die Arbeitsfläche zu verschieben" -#: ../src/ui/tools/tweak-tool.cpp:174 +#: ../src/ui/tools/tweak-tool.cpp:164 #, c-format msgid "%s. Drag to move." msgstr "%s. Ziehen zum verschieben." -#: ../src/ui/tools/tweak-tool.cpp:178 +#: ../src/ui/tools/tweak-tool.cpp:168 #, c-format msgid "%s. Drag or click to move in; with Shift to move out." msgstr "" -"%s. Ziehen oder Klicken zum verschieben hinein ; mit Umschalttaste " -"zum verschieben hinaus." +"%s. Ziehen oder Klicken zum Zusammenziehen; mit Umschalttaste zum " +"Auseinanderziehen." -#: ../src/ui/tools/tweak-tool.cpp:186 +#: ../src/ui/tools/tweak-tool.cpp:176 #, c-format msgid "%s. Drag or click to move randomly." -msgstr "%s. Ziehen oder Klicken zum zufälligen verschieben." +msgstr "%s. Ziehen oder Klicken zum zufälligen Verschieben." -#: ../src/ui/tools/tweak-tool.cpp:190 +#: ../src/ui/tools/tweak-tool.cpp:180 #, c-format msgid "%s. Drag or click to scale down; with Shift to scale up." msgstr "" -"%s. Ziehen oder Klicken zum kleiner skalieren; mit Umschalttaste zum " -"größer skalieren." +"%s. Ziehen oder Klicken zum verkleinern; mit Umschalttaste zum " +"vergrößern." -#: ../src/ui/tools/tweak-tool.cpp:198 +#: ../src/ui/tools/tweak-tool.cpp:188 #, c-format msgid "" "%s. Drag or click to rotate clockwise; with Shift, " "counterclockwise." msgstr "" "%s. Ziehen oder Klicken zum Drehen im Uhrzeigersinn; mit " -"Umschalttaste zum gegen den Uhrzeigersinn." +"Umschalttaste zum Drehen gegen den Uhrzeigersinn." -#: ../src/ui/tools/tweak-tool.cpp:206 +#: ../src/ui/tools/tweak-tool.cpp:196 #, c-format msgid "%s. Drag or click to duplicate; with Shift, delete." msgstr "" "%s. Ziehen oder Klicken zum Duplizieren; mit Umschalttaste zum " "Löschen." -#: ../src/ui/tools/tweak-tool.cpp:214 +#: ../src/ui/tools/tweak-tool.cpp:204 #, c-format msgid "%s. Drag to push paths." msgstr "%s. Ziehen zum Schieben der Pfade." -#: ../src/ui/tools/tweak-tool.cpp:218 +#: ../src/ui/tools/tweak-tool.cpp:208 #, c-format msgid "%s. Drag or click to inset paths; with Shift to outset." msgstr "" "%s. Ziehen oder Klicken zieht Pfade zusammen; mit Umschalt " "schiebt sie auseinander." -#: ../src/ui/tools/tweak-tool.cpp:226 +#: ../src/ui/tools/tweak-tool.cpp:216 #, c-format msgid "%s. Drag or click to attract paths; with Shift to repel." msgstr "" "%s. Ziehen oder Klicken zieht Pfade an; mit Umschalt stößt es sie " "ab." -#: ../src/ui/tools/tweak-tool.cpp:234 +#: ../src/ui/tools/tweak-tool.cpp:224 #, c-format msgid "%s. Drag or click to roughen paths." msgstr "%s. Ziehen oder Klicken um Pfad aufzurauen." -#: ../src/ui/tools/tweak-tool.cpp:238 +#: ../src/ui/tools/tweak-tool.cpp:228 #, c-format msgid "%s. Drag or click to paint objects with color." msgstr "%s. Ziehen oder Klicken um Objekte zu bemalen mit Farbe." -#: ../src/ui/tools/tweak-tool.cpp:242 +#: ../src/ui/tools/tweak-tool.cpp:232 #, c-format msgid "%s. Drag or click to randomize colors." msgstr "%s. Ziehen oder Klicken um Farben zufällig zu setzen." -#: ../src/ui/tools/tweak-tool.cpp:246 +#: ../src/ui/tools/tweak-tool.cpp:236 #, c-format msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -"%s. Ziehen oder Klicken, um die Weichheit zu erhöhen; mit Umschalt " +"%s. Ziehen oder Klicken, um die Unschärfe zu erhöhen; mit Umschalt " "verringern." -#: ../src/ui/tools/tweak-tool.cpp:1205 +#: ../src/ui/tools/tweak-tool.cpp:1195 msgid "Nothing selected! Select objects to tweak." msgstr "Nichts ausgewählt! Wähle Objekte zum Justieren aus." -#: ../src/ui/tools/tweak-tool.cpp:1239 +#: ../src/ui/tools/tweak-tool.cpp:1229 msgid "Move tweak" -msgstr "Verschieben-Justage" +msgstr "Optimieren durch Verschieben" # Was bewegt sich? -#: ../src/ui/tools/tweak-tool.cpp:1243 +#: ../src/ui/tools/tweak-tool.cpp:1233 msgid "Move in/out tweak" msgstr "Optimieren durch Zusammen-/Auseinanderbewegen" -#: ../src/ui/tools/tweak-tool.cpp:1247 +#: ../src/ui/tools/tweak-tool.cpp:1237 msgid "Move jitter tweak" -msgstr "Bewegungsversatz-Justage" +msgstr "Optimieren durch Bewegungsversatz" -#: ../src/ui/tools/tweak-tool.cpp:1251 +#: ../src/ui/tools/tweak-tool.cpp:1241 msgid "Scale tweak" -msgstr "Skalieren-Justage" +msgstr "Optimieren durch Skalieren" -#: ../src/ui/tools/tweak-tool.cpp:1255 +#: ../src/ui/tools/tweak-tool.cpp:1245 msgid "Rotate tweak" -msgstr "Rotieren-Justage" +msgstr "Optimieren durch Rotieren" -#: ../src/ui/tools/tweak-tool.cpp:1259 +#: ../src/ui/tools/tweak-tool.cpp:1249 msgid "Duplicate/delete tweak" -msgstr "Dulizieren-/Löschen-Justage" +msgstr "Optimieren durch Duplizieren-/Löschen" -#: ../src/ui/tools/tweak-tool.cpp:1263 +#: ../src/ui/tools/tweak-tool.cpp:1253 msgid "Push path tweak" -msgstr "Pfad-Verschieben-Justage" +msgstr "Optimieren durch Verschieben von Pfaden" -#: ../src/ui/tools/tweak-tool.cpp:1267 +#: ../src/ui/tools/tweak-tool.cpp:1257 msgid "Shrink/grow path tweak" -msgstr "Schrumpfen-/Weiten-Justage" +msgstr "Optimieren durch Schrumpfen/Vergößern von Pfaden" -#: ../src/ui/tools/tweak-tool.cpp:1271 +#: ../src/ui/tools/tweak-tool.cpp:1261 msgid "Attract/repel path tweak" -msgstr "Pfad-Anziehen-/-Abstoßen-Justage" +msgstr "Optimieren durch Anziehen/Abstoßen von Pfaden" -#: ../src/ui/tools/tweak-tool.cpp:1275 +#: ../src/ui/tools/tweak-tool.cpp:1265 msgid "Roughen path tweak" -msgstr "Pfadrauheit-Justage" +msgstr "Optimieren der Pfadrauheit" -#: ../src/ui/tools/tweak-tool.cpp:1279 +#: ../src/ui/tools/tweak-tool.cpp:1269 msgid "Color paint tweak" -msgstr "Farb-Justage" +msgstr "Optimieren der Farbe" -#: ../src/ui/tools/tweak-tool.cpp:1283 +#: ../src/ui/tools/tweak-tool.cpp:1273 msgid "Color jitter tweak" -msgstr "Farbrauschen-Justage" +msgstr "Optimieren durch Farbrauschen" -#: ../src/ui/tools/tweak-tool.cpp:1287 +#: ../src/ui/tools/tweak-tool.cpp:1277 msgid "Blur tweak" -msgstr "Unschärfe-Justage" +msgstr "Optimieren durch Unschärfe" #: ../src/ui/widget/filter-effect-chooser.cpp:26 msgid "_Blur:" @@ -24353,6 +24461,11 @@ msgstr "Proprietär" msgid "MetadataLicence|Other" msgstr "Andere" +#: ../src/ui/widget/licensor.cpp:72 +#, fuzzy +msgid "Document license updated" +msgstr "Dokumentbereinigung" + #: ../src/ui/widget/object-composite-settings.cpp:47 #: ../src/ui/widget/selected-style.cpp:1119 #: ../src/ui/widget/selected-style.cpp:1120 @@ -24695,12 +24808,12 @@ msgstr "L" #: ../src/ui/widget/selected-style.cpp:221 #, fuzzy msgid "Mesh gradient fill" -msgstr "Füllung des linearen Farbverlaufs" +msgstr "Füllung des Verlaufsgitter" #: ../src/ui/widget/selected-style.cpp:221 #, fuzzy msgid "Mesh gradient stroke" -msgstr "Kontur des linearen Farbverlaufs" +msgstr "Kontur des Verlaufsgitter" #: ../src/ui/widget/selected-style.cpp:229 msgid "Different" @@ -25051,8 +25164,8 @@ msgstr[1] "" msgid "" "shared by %d box; drag with Shift to separate selected box(es)" msgid_plural "" -"shared by %d boxes; drag with Shift to separate selected box" -"(es)" +"shared by %d boxes; drag with Shift to separate selected " +"box(es)" msgstr[0] "%d Quader zugewiesen. " msgstr[1] "" "%d Quadern zugewiesen. Umschalt+Ziehen trennt die Quader." @@ -25262,6 +25375,12 @@ msgstr "Keine" msgid "Does nothing" msgstr "Hat keine Funktion" +#. File +#. Tag +#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 +msgid "_New" +msgstr "_Neu" + #: ../src/verbs.cpp:2431 msgid "Create new document from the default template" msgstr "Ein neues Dokument mit der Standardvorlage anlegen" @@ -25315,15 +25434,15 @@ msgstr "Das Dokument drucken" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) #: ../src/verbs.cpp:2446 msgid "Clean _up document" -msgstr "Dokument säubern" +msgstr "Dok_ument säubern" #: ../src/verbs.cpp:2446 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" msgstr "" -"Unbenutzte vordefinierte Elemente (z.B. Farbverläufe oder Ausschneidepfade) " -"aus den <defs> des Dokuments entfernen" +"Unbenutzte Definitionen (z.B. Farbverläufe oder Ausschneidepfade) aus den " +"<defs> des Dokuments entfernen" #: ../src/verbs.cpp:2448 msgid "_Import..." @@ -25376,8 +25495,8 @@ msgid "Quit Inkscape" msgstr "Inkscape verlassen" #: ../src/verbs.cpp:2461 -msgid "_Templates..." -msgstr "_Vorlagen..." +msgid "New from _Template..." +msgstr "Neu aus _Vorlage" #: ../src/verbs.cpp:2462 msgid "Create new project from template" @@ -25614,7 +25733,7 @@ msgstr "Objekte aus einem gekacheltem Füllmuster extrahieren" #: ../src/verbs.cpp:2519 msgid "Group to Symbol" -msgstr "Gruppieren zum Symbol" +msgstr "Gruppe zu Symbol" #: ../src/verbs.cpp:2520 msgid "Convert group to a symbol" @@ -25622,11 +25741,11 @@ msgstr "Gruppe in Symbol konvertieren" #: ../src/verbs.cpp:2521 msgid "Symbol to Group" -msgstr "Symbol zum Gruppieren" +msgstr "Symbol zu Gruppe" #: ../src/verbs.cpp:2522 msgid "Extract group from a symbol" -msgstr "Extrahiere Gruppe von einem Symbol" +msgstr "Extrahiere Gruppe aus einem Symbol" #: ../src/verbs.cpp:2523 msgid "Clea_r All" @@ -26346,7 +26465,7 @@ msgstr "Modellieren" #: ../src/verbs.cpp:2734 msgid "Tweak objects by sculpting or painting" -msgstr "Objekte verbessern durch Verformen oder Malen" +msgstr "Objekte optimieren durch Verformen oder Einfärben" #: ../src/verbs.cpp:2735 msgctxt "ContextVerb" @@ -26355,7 +26474,7 @@ msgstr "Spray" #: ../src/verbs.cpp:2736 msgid "Spray objects by sculpting or painting" -msgstr "Objekte sprühen durch Verformen oder Malen" +msgstr "Objekte sprühen durch Verformen oder Einfärben" #: ../src/verbs.cpp:2737 msgctxt "ContextVerb" @@ -26744,8 +26863,8 @@ msgstr "Hi_lfslinien" #: ../src/verbs.cpp:2826 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" -"Führungslinien zeigen oder verstecken (von einem Lineal ziehen, um eine " -"Führungslinie zu erzeugen)" +"Hilfslinien zeigen oder verstecken (von einem Lineal ziehen, um eine " +"Hilfslinie zu erzeugen)" #: ../src/verbs.cpp:2827 msgid "Enable snapping" @@ -27445,7 +27564,7 @@ msgstr "Bogen: Offen/geschlossen ändern" # !!! #: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 -#: ../src/widgets/rect-toolbar.cpp:261 ../src/widgets/rect-toolbar.cpp:300 +#: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 #: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 #: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 msgid "New:" @@ -27455,7 +27574,7 @@ msgstr "Neu:" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); #: ../src/widgets/arc-toolbar.cpp:292 ../src/widgets/arc-toolbar.cpp:303 -#: ../src/widgets/rect-toolbar.cpp:269 ../src/widgets/rect-toolbar.cpp:287 +#: ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 #: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 #: ../src/widgets/star-toolbar.cpp:386 msgid "Change:" @@ -28054,7 +28173,7 @@ msgid "" "\n" "If you close without saving, your changes will be discarded." msgstr "" -"Änderungen an Dokument »%s« vor dem " +"Änderungen an Dokument „%s“ vor dem " "Schließen speichern?\n" "\n" "Wenn Sie schließen, ohne zu speichern, dann gehen Ihre Änderungen verloren." @@ -28072,10 +28191,10 @@ msgid "" "\n" "Do you want to save this file as Inkscape SVG?" msgstr "" -"Die Datei \"%s\" wurde in einem " +"Die Datei \"%s\" wurde in einem " "möglicherweise verlustbehafteten Format gespeichert!\n" "\n" -"Möchten Sie das Dokument als ein Inkscape SVG speichern?" +"Möchten Sie das Dokument als Inkscape SVG speichern?" #: ../src/widgets/desktop-widget.cpp:1179 msgid "_Save as Inkscape SVG" @@ -28184,137 +28303,137 @@ msgstr "Stil" # !!! #: ../src/widgets/font-selector.cpp:211 msgid "Face" -msgstr "Fläche" +msgstr "Schnitt" #: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 msgid "Font size:" msgstr "Schriftgröße:" -#: ../src/widgets/gradient-selector.cpp:196 +#: ../src/widgets/gradient-selector.cpp:201 msgid "Create a duplicate gradient" -msgstr "Duplikat-Farbverlauf erstellen" +msgstr "Farbverlauf duplizieren" #: ../src/widgets/gradient-selector.cpp:212 msgid "Edit gradient" msgstr "Farbverlauf bearbeiten" -#: ../src/widgets/gradient-selector.cpp:288 +#: ../src/widgets/gradient-selector.cpp:281 #: ../src/widgets/paint-selector.cpp:236 msgid "Swatch" msgstr "Farbmuster" -#: ../src/widgets/gradient-selector.cpp:338 +#: ../src/widgets/gradient-selector.cpp:331 msgid "Rename gradient" msgstr "Farbverlauf umbenennen" #: ../src/widgets/gradient-toolbar.cpp:156 #: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:756 -#: ../src/widgets/gradient-toolbar.cpp:1094 +#: ../src/widgets/gradient-toolbar.cpp:758 +#: ../src/widgets/gradient-toolbar.cpp:1097 msgid "No gradient" msgstr "Kein Farbverlauf" -#: ../src/widgets/gradient-toolbar.cpp:175 +#: ../src/widgets/gradient-toolbar.cpp:176 msgid "Multiple gradients" msgstr "Mehrfache Farbverläufe" -#: ../src/widgets/gradient-toolbar.cpp:676 +#: ../src/widgets/gradient-toolbar.cpp:678 msgid "Multiple stops" -msgstr "Mehrfach-Stopp" +msgstr "Mehrere Zwischenfarben" -#: ../src/widgets/gradient-toolbar.cpp:774 +#: ../src/widgets/gradient-toolbar.cpp:776 #: ../src/widgets/gradient-vector.cpp:609 msgid "No stops in gradient" msgstr "Keine Zwischenfarben im Farbverlauf" -#: ../src/widgets/gradient-toolbar.cpp:927 +#: ../src/widgets/gradient-toolbar.cpp:930 msgid "Assign gradient to object" msgstr "Farbverlauf einem Objekt zuweisen" -#: ../src/widgets/gradient-toolbar.cpp:949 +#: ../src/widgets/gradient-toolbar.cpp:952 msgid "Set gradient repeat" msgstr "Setze Verlaufswiederholung" -#: ../src/widgets/gradient-toolbar.cpp:987 +#: ../src/widgets/gradient-toolbar.cpp:990 #: ../src/widgets/gradient-vector.cpp:720 msgid "Change gradient stop offset" msgstr "Versatz der Zwischenfarben des Farbverlaufs ändern" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "linear" msgstr "linear" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "Create linear gradient" msgstr "Linearen Farbverlauf erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "radial" msgstr "radial" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "Create radial (elliptic or circular) gradient" msgstr "Radialen (elliptischen oder kreisförmigen) Farbverlauf erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1041 -#: ../src/widgets/mesh-toolbar.cpp:207 +#: ../src/widgets/gradient-toolbar.cpp:1044 +#: ../src/widgets/mesh-toolbar.cpp:341 msgid "New:" msgstr "Neu:" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 msgid "fill" msgstr "füllen" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 msgid "Create gradient in the fill" msgstr "Farbverlauf für die Füllung erzeugen" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 msgid "stroke" msgstr "Kontur" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 msgid "Create gradient in the stroke" msgstr "Farbverlauf für die Kontur erzeugen" # CHECK -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:237 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:371 msgid "on:" msgstr "auf:" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Select" msgstr "Auswählen" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Choose a gradient" msgstr "Wählen Sie einen Verlauf" -#: ../src/widgets/gradient-toolbar.cpp:1097 +#: ../src/widgets/gradient-toolbar.cpp:1100 msgid "Select:" msgstr "Auswählen:" # CHECK -#: ../src/widgets/gradient-toolbar.cpp:1112 +#: ../src/widgets/gradient-toolbar.cpp:1115 msgctxt "Gradient repeat type" msgid "None" msgstr "Keine" -#: ../src/widgets/gradient-toolbar.cpp:1118 +#: ../src/widgets/gradient-toolbar.cpp:1121 msgid "Direct" msgstr "Direkt" -#: ../src/widgets/gradient-toolbar.cpp:1120 +#: ../src/widgets/gradient-toolbar.cpp:1123 msgid "Repeat" msgstr "Wiederholen" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1122 +#: ../src/widgets/gradient-toolbar.cpp:1125 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -28326,57 +28445,57 @@ msgstr "" "Richtung (spreadMethod=\"repeat\"), oder Wiederholung in abwechselnd " "entgegengesetzte Richtungen (spreadMethod=\"reflect\")" -#: ../src/widgets/gradient-toolbar.cpp:1127 +#: ../src/widgets/gradient-toolbar.cpp:1130 msgid "Repeat:" msgstr "Wiederholung:" -#: ../src/widgets/gradient-toolbar.cpp:1141 +#: ../src/widgets/gradient-toolbar.cpp:1144 msgid "No stops" -msgstr "Keine Stopps" +msgstr "Keine Zwischenfarben" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Stops" -msgstr "Stopps" +msgstr "Zwischenfarben" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Select a stop for the current gradient" -msgstr "Stopp für derzeitigen Farbverlauf auswählen" +msgstr "Zwischenfarbe für derzeitigen Farbverlauf auswählen" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "Stops:" -msgstr "Stopps:" +msgstr "Zwischenfarben:" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 #: ../src/widgets/gradient-vector.cpp:906 msgctxt "Gradient" msgid "Offset:" msgstr "Versatz:" -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 msgid "Offset of selected stop" -msgstr "Den gewählten Stopp verschieben" +msgstr "Die gewählten Zwischenfarbe verschieben" -#: ../src/widgets/gradient-toolbar.cpp:1174 -#: ../src/widgets/gradient-toolbar.cpp:1175 +#: ../src/widgets/gradient-toolbar.cpp:1177 +#: ../src/widgets/gradient-toolbar.cpp:1178 msgid "Insert new stop" -msgstr "Neuen Stopp einfügen" +msgstr "Zwischenfarbe einfügen" -#: ../src/widgets/gradient-toolbar.cpp:1188 -#: ../src/widgets/gradient-toolbar.cpp:1189 +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1192 #: ../src/widgets/gradient-vector.cpp:888 msgid "Delete stop" msgstr "Zwischenfarbe löschen" -#: ../src/widgets/gradient-toolbar.cpp:1203 +#: ../src/widgets/gradient-toolbar.cpp:1206 msgid "Reverse the direction of the gradient" msgstr "Die Richtung des Verlaufs umkehren" -#: ../src/widgets/gradient-toolbar.cpp:1217 +#: ../src/widgets/gradient-toolbar.cpp:1220 msgid "Link gradients" msgstr "Verknüpfe Farbverläufe" -#: ../src/widgets/gradient-toolbar.cpp:1218 +#: ../src/widgets/gradient-toolbar.cpp:1221 msgid "Link gradients to change all related gradients" msgstr "Verknüpfe Farbverläufe, um alle verbundenen Farbverläufe zu ändern" @@ -28479,7 +28598,7 @@ msgstr "Messwert aür ausgewählte Objekte anzeigen" #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 #: ../src/widgets/paintbucket-toolbar.cpp:168 -#: ../src/widgets/rect-toolbar.cpp:379 ../src/widgets/select-toolbar.cpp:538 +#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 msgid "Units" msgstr "Einheiten" @@ -28508,73 +28627,102 @@ msgstr "Die Schriftgröße, die für die Messungen verwendet werden" msgid "The units to be used for the measurements" msgstr "Die Einheiten, die für die Messungen verwendet werden" -#: ../src/widgets/mesh-toolbar.cpp:200 +#: ../src/widgets/mesh-toolbar.cpp:311 +#, fuzzy +msgid "Set mesh type" +msgstr "Textstil setzen" + +#: ../src/widgets/mesh-toolbar.cpp:334 msgid "normal" msgstr "Normal" -#: ../src/widgets/mesh-toolbar.cpp:200 +#: ../src/widgets/mesh-toolbar.cpp:334 msgid "Create mesh gradient" -msgstr "Gitter-Farbverlauf erzeugen" +msgstr "Verlaufsgitter erzeugen" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/mesh-toolbar.cpp:338 msgid "conical" msgstr "konisch" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/mesh-toolbar.cpp:338 msgid "Create conical gradient" msgstr "Konischen Farbverlauf erzeugen" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 msgid "Rows" msgstr "Reihen" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 #: ../share/extensions/guides_creator.inx.h:5 #: ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "Reihen:" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 msgid "Number of rows in new mesh" msgstr "Anzahl der Zeilen im neuen Gitter" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 msgid "Columns" msgstr "Spalten" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Spalten:" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 msgid "Number of columns in new mesh" msgstr "Anzahl der Spalten im neuen Gitter" -#: ../src/widgets/mesh-toolbar.cpp:289 +#: ../src/widgets/mesh-toolbar.cpp:423 msgid "Edit Fill" msgstr "Füllung bearbeiten" -#: ../src/widgets/mesh-toolbar.cpp:290 +#: ../src/widgets/mesh-toolbar.cpp:424 msgid "Edit fill mesh" msgstr "Füllungsgitter bearbeiten" -#: ../src/widgets/mesh-toolbar.cpp:301 +#: ../src/widgets/mesh-toolbar.cpp:435 msgid "Edit Stroke" msgstr "Kontur bearbeiten" -#: ../src/widgets/mesh-toolbar.cpp:302 +#: ../src/widgets/mesh-toolbar.cpp:436 msgid "Edit stroke mesh" msgstr "Konturgitter bearbeiten" -#: ../src/widgets/mesh-toolbar.cpp:313 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "Anfasser zeigen" -#: ../src/widgets/mesh-toolbar.cpp:314 -#, fuzzy +#: ../src/widgets/mesh-toolbar.cpp:448 msgid "Show side and tensor handles" -msgstr "Anzeigen der Anfasser" +msgstr "Anzeigen der seitlichen und Tensor-Anfasser" + +#: ../src/widgets/mesh-toolbar.cpp:463 +msgid "WARNING: Mesh SVG Syntax Subject to Change" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:473 +msgctxt "Type" +msgid "Coons" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:476 +msgid "Bicubic" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:478 +msgid "Coons" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:479 +msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:481 ../src/widgets/pencil-toolbar.cpp:278 +msgid "Smoothing:" +msgstr "Glättung:" #: ../src/widgets/node-toolbar.cpp:341 msgid "Insert node" @@ -28771,7 +28919,7 @@ msgstr "Y-Koordinate der Auswahl" #: ../src/widgets/paint-selector.cpp:222 msgid "No paint" -msgstr "Nicht zeichnen" +msgstr "Keine Farbe" #: ../src/widgets/paint-selector.cpp:224 msgid "Flat color" @@ -28786,13 +28934,12 @@ msgid "Radial gradient" msgstr "Radialer Farbverlauf" #: ../src/widgets/paint-selector.cpp:231 -#, fuzzy msgid "Mesh gradient" -msgstr "Farbverlaufs-Anfasser verschieben" +msgstr "Verlaufsgitter" #: ../src/widgets/paint-selector.cpp:238 msgid "Unset paint (make it undefined so it can be inherited)" -msgstr "Farbe nicht setzen (damit sie nicht übernommen/vererbt werden kann)" +msgstr "Farbe nicht setzen (damit sie geerbt werden kann)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:255 @@ -28800,16 +28947,16 @@ msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" msgstr "" -"Überschneidungen desselben Pfades oder mit eingefügten Pfaden erzeugen " -"Löcher (Füllregel: evenodd)" +"Überschneidungen im Pfad oder mit Pfadabschnitten erzeugen Löcher in der " +"Füllung (Füllregel: evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:266 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -"Vollständiges Füllen, außer ein eingefügter Pfad läuft entgegengesetzt " -"(Füllregel: nonzero)" +"Vollständige Füllung, solange kein Pfadabschnitt in entgegengesetzter " +"Richtung verläuft (Füllregel: nonzero)" #: ../src/widgets/paint-selector.cpp:600 msgid "No objects" @@ -28829,7 +28976,7 @@ msgstr "Keine Farbe" #: ../src/widgets/paint-selector.cpp:704 msgid "Flat color" -msgstr "Farbbereich" +msgstr "Einfache Farbe" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); #: ../src/widgets/paint-selector.cpp:773 @@ -28841,9 +28988,8 @@ msgid "Radial gradient" msgstr "Radialer Farbverlauf" #: ../src/widgets/paint-selector.cpp:781 -#, fuzzy msgid "Mesh gradient" -msgstr "Linearer Farbverlauf" +msgstr "Verlaufsgitter" #: ../src/widgets/paint-selector.cpp:1080 msgid "" @@ -28852,8 +28998,8 @@ msgid "" "create a new pattern from selection." msgstr "" "Benutzen Sie das Knotenwerkzeug, um Position Winkel und Größe des " -"Musters auf der Arbeitsfläche anzupassen. Mit Objekt » Füllmuster » " -"Objekte in Füllmuster umwandeln lassen sich neue Füllmuster von " +"Musters auf der Arbeitsfläche anzupassen. Mit Objekt „ Füllmuster " +"„ Objekte in Füllmuster umwandeln lassen sich neue Füllmuster von " "ausgewählten Objekten erzeugen." #: ../src/widgets/paint-selector.cpp:1093 @@ -28862,7 +29008,7 @@ msgstr "Füllmuster" #: ../src/widgets/paint-selector.cpp:1187 msgid "Swatch fill" -msgstr "Farbmusterfüllung" +msgstr "Farbmuster" #: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by" @@ -28886,17 +29032,18 @@ msgstr "" #: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "Grow/shrink by" -msgstr "Vergrößern/Verkleinern um:" +msgstr "Vergrößern/Verkleinern um" #: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "Grow/shrink by:" -msgstr "Vergrößern/Verkleinern um:" +msgstr "Vergrößern/Verkleinern um" #: ../src/widgets/paintbucket-toolbar.cpp:177 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" -"Erzeugten Füllungspfad vergrößern (positive) oder verkleinern (negativ)" +"Betrag um den der erzeugte Füllungspfad vergrößert (positiv) oder " +"verkleinert (negativ) wird" #: ../src/widgets/paintbucket-toolbar.cpp:202 msgid "Close gaps" @@ -28917,8 +29064,8 @@ msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" msgstr "" -"Die Parameter des Farbeimers auf Vorgabewerte zurücksetzen (Menü Datei » " -"Inkscape-Einstellungen » Werkzeuge, um die Vorgabeeinstellungen zu ändern)" +"Die Parameter des Farbeimers auf Vorgabewerte zurücksetzen (Menü Datei " +"„ Inkscape-Einstellungen „ Werkzeuge, um die Vorgabeeinstellungen zu ändern)" #: ../src/widgets/pencil-toolbar.cpp:96 msgid "Bezier" @@ -28996,10 +29143,6 @@ msgstr "(viele Knoten, grob)" msgid "(few nodes, smooth)" msgstr "(wenige Knoten, weich)" -#: ../src/widgets/pencil-toolbar.cpp:278 -msgid "Smoothing:" -msgstr "Glättung:" - #: ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing: " msgstr "Glättung:" @@ -29013,98 +29156,98 @@ msgid "" "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -"Die Parameter des Stiftes auf Vorgabewerte zurücksetzen (Menü Datei » " -"Inkscape-Einstellungen » Werkzeuge, um die Grundeinstellungen zu ändern)" +"Die Parameter des Stiftes auf Vorgabewerte zurücksetzen (Menü Datei " +"„ Inkscape-Einstellungen „ Werkzeuge, um die Grundeinstellungen zu ändern)" #: ../src/widgets/rect-toolbar.cpp:124 msgid "Change rectangle" msgstr "Rechteck ändern" -#: ../src/widgets/rect-toolbar.cpp:318 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "W:" msgstr "W:" -#: ../src/widgets/rect-toolbar.cpp:318 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "Width of rectangle" msgstr "Breite des Rechtecks" -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "H:" msgstr "H:" -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "Height of rectangle" msgstr "Höhe des Rechtecks" -#: ../src/widgets/rect-toolbar.cpp:349 ../src/widgets/rect-toolbar.cpp:364 +#: ../src/widgets/rect-toolbar.cpp:348 ../src/widgets/rect-toolbar.cpp:363 msgid "not rounded" msgstr "nicht abgerundet" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius" msgstr "Horizontaler Radius" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Rx:" msgstr "Rx:" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius of rounded corners" msgstr "Horizontaler Radius einer abgerundeten Ecke" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius" msgstr "Vertikaler Radius" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Ry:" msgstr "Ry:" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius of rounded corners" msgstr "Vertikaler Radius einer abgerundeten Ecke" -#: ../src/widgets/rect-toolbar.cpp:386 +#: ../src/widgets/rect-toolbar.cpp:385 msgid "Not rounded" msgstr "Nicht abgerundet" -#: ../src/widgets/rect-toolbar.cpp:387 +#: ../src/widgets/rect-toolbar.cpp:386 msgid "Make corners sharp" msgstr "Spitze Ecken" -#: ../src/widgets/ruler.cpp:192 +#: ../src/widgets/ruler.cpp:193 msgid "The orientation of the ruler" msgstr "Die Ausrichtung des Lineals" -#: ../src/widgets/ruler.cpp:202 +#: ../src/widgets/ruler.cpp:203 msgid "Unit of the ruler" msgstr "Einheit des Lineals" -#: ../src/widgets/ruler.cpp:209 +#: ../src/widgets/ruler.cpp:210 msgid "Lower" msgstr "Untere" -#: ../src/widgets/ruler.cpp:210 +#: ../src/widgets/ruler.cpp:211 msgid "Lower limit of ruler" msgstr "Untergrenze des Lineals" -#: ../src/widgets/ruler.cpp:219 +#: ../src/widgets/ruler.cpp:220 msgid "Upper" msgstr "Obere" -#: ../src/widgets/ruler.cpp:220 +#: ../src/widgets/ruler.cpp:221 msgid "Upper limit of ruler" msgstr "Obergrenze des Lineals" -#: ../src/widgets/ruler.cpp:230 +#: ../src/widgets/ruler.cpp:231 msgid "Position of mark on the ruler" msgstr "Position der Markierung auf dem Lineal" -#: ../src/widgets/ruler.cpp:239 +#: ../src/widgets/ruler.cpp:240 msgid "Max Size" msgstr "Maximale Größe" -#: ../src/widgets/ruler.cpp:240 +#: ../src/widgets/ruler.cpp:241 msgid "Maximum size of the ruler" msgstr "Maximalgröße des Lineals" @@ -29488,8 +29631,8 @@ msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -"Die Parameter der Formen auf Vorgabewerte zurücksetzen (Menü Datei » " -"Inkscape-Einstellungen » Werkzeuge, um die Vorgabeeinstellungen zu ändern)" +"Die Parameter der Formen auf Vorgabewerte zurücksetzen (Menü Datei " +"„ Inkscape-Einstellungen „ Werkzeuge, um die Vorgabeeinstellungen zu ändern)" # (swatches) #. Width @@ -30153,7 +30296,7 @@ msgstr "Zeichendrehung (Grad)" #: ../src/widgets/toolbox.cpp:181 msgid "Color/opacity used for color tweaking" -msgstr "Farbe / Opazität zur Farbjustage" +msgstr "Farbe/Deckkraft für Optimierung durch Einfärben" #: ../src/widgets/toolbox.cpp:189 msgid "Style of new stars" @@ -30195,149 +30338,150 @@ msgstr "\"Beschreibung fehlt noch!\"" msgid "Style of Paint Bucket fill objects" msgstr "Stil von neuen Farbeimer-Objekten" -#: ../src/widgets/toolbox.cpp:1681 +#: ../src/widgets/toolbox.cpp:1683 msgid "Bounding box" msgstr "Rahmen" -#: ../src/widgets/toolbox.cpp:1681 +#: ../src/widgets/toolbox.cpp:1683 msgid "Snap bounding boxes" -msgstr "Am Rahmen einrasten" +msgstr "Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1690 +#: ../src/widgets/toolbox.cpp:1692 msgid "Bounding box edges" msgstr "Kanten der Umrandung" -#: ../src/widgets/toolbox.cpp:1690 +#: ../src/widgets/toolbox.cpp:1692 msgid "Snap to edges of a bounding box" msgstr "An Kanten einer Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1699 +#: ../src/widgets/toolbox.cpp:1701 msgid "Bounding box corners" msgstr "Ecken der Umrandung" -#: ../src/widgets/toolbox.cpp:1699 +#: ../src/widgets/toolbox.cpp:1701 msgid "Snap bounding box corners" -msgstr "An Ecken der Umrandung einrasten" +msgstr "Ecken der Umrandung einrasten" -#: ../src/widgets/toolbox.cpp:1708 +#: ../src/widgets/toolbox.cpp:1710 msgid "BBox Edge Midpoints" -msgstr "Mittenpunkte der Umrandungskanten" +msgstr "Mittelpunkte der Umrandungslinien" -#: ../src/widgets/toolbox.cpp:1708 +#: ../src/widgets/toolbox.cpp:1710 msgid "Snap midpoints of bounding box edges" -msgstr "An Mittelpunkten von Umrandungslinien ein-/ausrasten" +msgstr "Mittelpunkte von Umrandungslinien einrasten" -#: ../src/widgets/toolbox.cpp:1718 +#: ../src/widgets/toolbox.cpp:1720 msgid "BBox Centers" msgstr "Mittelpunkt Umrandung" -#: ../src/widgets/toolbox.cpp:1718 +#: ../src/widgets/toolbox.cpp:1720 msgid "Snapping centers of bounding boxes" -msgstr "An Mittelpunkten von Umrandungen ein-/ausrasten" +msgstr "Mittelpunkte von Umrandungen einrasten" -#: ../src/widgets/toolbox.cpp:1727 +#: ../src/widgets/toolbox.cpp:1729 msgid "Snap nodes, paths, and handles" msgstr "Knoten, Pfade und Anfasser einrasten" -#: ../src/widgets/toolbox.cpp:1735 +#: ../src/widgets/toolbox.cpp:1737 msgid "Snap to paths" -msgstr "An Objektpfaden einrasten" +msgstr "An Pfaden einrasten" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1746 msgid "Path intersections" -msgstr "Pfadüberschneidung" +msgstr "Pfadüberschneidungen" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1746 msgid "Snap to path intersections" msgstr "An Pfadüberschneidungen einrasten" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1755 msgid "To nodes" msgstr "An Knoten" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1755 msgid "Snap cusp nodes, incl. rectangle corners" -msgstr "An spitzen Knoten einrasten (inkl. Ecken von Rechtecken)" +msgstr "Spitze Knoten einrasten, inkl. Ecken von Rechtecken" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1764 msgid "Smooth nodes" -msgstr "Glatte Knotten" +msgstr "Glatte Knoten" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1764 msgid "Snap smooth nodes, incl. quadrant points of ellipses" -msgstr "Einrasten an glatten Knoten, inkl. Quadrant-Punkten von Ellipsen" +msgstr "Glatte Knoten einrasten, inkl. Quadrantenpunkte von Ellipsen" -#: ../src/widgets/toolbox.cpp:1771 +#: ../src/widgets/toolbox.cpp:1773 msgid "Line Midpoints" msgstr "Linien-Mittelpunkte" -#: ../src/widgets/toolbox.cpp:1771 +#: ../src/widgets/toolbox.cpp:1773 msgid "Snap midpoints of line segments" -msgstr "Einrasten an Mittelpunkten von Liniensegmenten" +msgstr "Mittelpunkte von Liniensegmenten einrasten" -#: ../src/widgets/toolbox.cpp:1780 +#: ../src/widgets/toolbox.cpp:1782 msgid "Others" msgstr "Andere" -#: ../src/widgets/toolbox.cpp:1780 +#: ../src/widgets/toolbox.cpp:1782 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -"Einrasten an anderen Punkten (Zentren, Hilfslinien-Ursprünge, " -"Verlaufsanfasser, usw.)" +"Andere Punkte einrasten (Mittelpunkte, Ursprünge von Hilfslinien, " +"Anfasser von Farbverläufen, usw.)" -#: ../src/widgets/toolbox.cpp:1788 +#: ../src/widgets/toolbox.cpp:1790 msgid "Object Centers" -msgstr "Objektzentrum" +msgstr "Objektmittelpunkte" -#: ../src/widgets/toolbox.cpp:1788 +#: ../src/widgets/toolbox.cpp:1790 msgid "Snap centers of objects" -msgstr "An Objektmittelpunkten einrasten" +msgstr "Objektmittelpunkte einrasten" -#: ../src/widgets/toolbox.cpp:1797 +#: ../src/widgets/toolbox.cpp:1799 msgid "Rotation Centers" msgstr "Drehpunkte" -#: ../src/widgets/toolbox.cpp:1797 +#: ../src/widgets/toolbox.cpp:1799 msgid "Snap an item's rotation center" -msgstr "An Drehpunkten von Objekten einrasten" +msgstr "Drehpunkte von Objekten einrasten" -#: ../src/widgets/toolbox.cpp:1806 +#: ../src/widgets/toolbox.cpp:1808 msgid "Text baseline" msgstr "Text-Grundlinie" -#: ../src/widgets/toolbox.cpp:1806 +#: ../src/widgets/toolbox.cpp:1808 msgid "Snap text anchors and baselines" -msgstr "An TExtankern und Grundlinien einrasten" +msgstr "Textanker und Grundlinien einrasten" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1818 msgid "Page border" msgstr "Seitenrand" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1818 msgid "Snap to the page border" msgstr "Am Seitenrand einrasten" -#: ../src/widgets/toolbox.cpp:1825 +#: ../src/widgets/toolbox.cpp:1827 msgid "Snap to grids" msgstr "Am Gitter einrasten" -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/widgets/toolbox.cpp:1836 msgid "Snap guides" -msgstr "An Führungslinien einrasten" +msgstr "Hilfslinien einrasten" #. Width #: ../src/widgets/tweak-toolbar.cpp:125 msgid "(pinch tweak)" -msgstr "(Zupfjustage)" +msgstr "(Optimieren durch Zupfen)" #: ../src/widgets/tweak-toolbar.cpp:125 msgid "(broad tweak)" -msgstr "(breite Justage)" +msgstr "(breite Optimierung)" #: ../src/widgets/tweak-toolbar.cpp:128 msgid "The width of the tweak area (relative to the visible canvas area)" msgstr "" -"Breite des Justagebereichs (relativ zum sichtbaren Arbeitsflächenbereich)" +"Breite des Optimierungsbereichs (relativ zum sichtbaren " +"Arbeitsflächenbereich)" #. Force #: ../src/widgets/tweak-toolbar.cpp:142 @@ -30374,7 +30518,7 @@ msgstr "Her-/Wegbewegen" #: ../src/widgets/tweak-toolbar.cpp:171 msgid "Move objects towards cursor; with Shift from cursor" -msgstr "Verschiebt Objekte zum Cursor; mit Umschalt vom Mauszeiger weg" +msgstr "Verschiebt Objekte zum Mauszeiger; mit Umschalt vom Mauszeiger weg" #: ../src/widgets/tweak-toolbar.cpp:177 msgid "Move jitter mode" @@ -30418,7 +30562,7 @@ msgstr "Teile des Pfades in eine beliebige Richtung schieben" #: ../src/widgets/tweak-toolbar.cpp:212 msgid "Shrink/grow mode" -msgstr "Schrumpf-/Wachstums-Modus" +msgstr "Schrumpf-/Vergößerungs-Modus" #: ../src/widgets/tweak-toolbar.cpp:213 msgid "Shrink (inset) parts of paths; with Shift grow (outset)" @@ -30536,7 +30680,7 @@ msgstr "" "Druckempfindlichkeit des Eingabegeräts benutzen, um die Kraft der " "Anpassungsaktion zu bestimmen" -#: ../share/extensions/convert2dashes.py:93 +#: ../share/extensions/convert2dashes.py:100 msgid "" "The selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -30605,7 +30749,7 @@ msgstr "" "Module werden von der Erweiterung benötigt. Bitte installieren Sie diese und " "versuchen es erneut." -#: ../share/extensions/dxf_outlines.py:300 +#: ../share/extensions/dxf_outlines.py:299 msgid "" "Error: Field 'Layer match name' must be filled when using 'By name match' " "option" @@ -30613,7 +30757,7 @@ msgstr "" "Fehler: Feld 'Übereinstimmender Ebenenname' muss ausgefüllt sein, wenn die " "Option 'Nach Namensübereinstimmung' verwendet wird. " -#: ../share/extensions/dxf_outlines.py:341 +#: ../share/extensions/dxf_outlines.py:340 #, python-format msgid "Warning: Layer '%s' not found!" msgstr "Warnung: Ebene '%s' nicht gefunden!" @@ -30662,12 +30806,17 @@ msgid "Need at least 2 paths selected" msgstr "Benötigt mindestens 2 ausgewählte Pfade" #: ../share/extensions/funcplot.py:48 -msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" +#, fuzzy +msgid "" +"x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" msgstr "" "X-Interval kann nicht Null sein. Bitte verändern Sie 'Start X' oder 'Ende X'" #: ../share/extensions/funcplot.py:60 -msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" +#, fuzzy +msgid "" +"y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " +"value of rectangle's bottom'" msgstr "" "Y-Interval kann nicht Null sein. Bitte verändern Sie 'Y oben' oder 'Y unten'" @@ -30953,14 +31102,19 @@ msgid "Please select an object" msgstr "Bitte wählen Sie ein Objekt." #: ../share/extensions/gimp_xcf.py:39 -msgid "Gimp must be installed and set in your path variable." +#, fuzzy +msgid "Inkscape must be installed and set in your path variable." msgstr "Gimp muss installiert und in Ihren Pfadvariablen gesetzt sein." #: ../share/extensions/gimp_xcf.py:43 +msgid "Gimp must be installed and set in your path variable." +msgstr "Gimp muss installiert und in Ihren Pfadvariablen gesetzt sein." + +#: ../share/extensions/gimp_xcf.py:47 msgid "An error occurred while processing the XCF file." msgstr "Es ist beim Verarbeiten der XCF-Datei ein fehler aufgetreten." -#: ../share/extensions/gimp_xcf.py:177 +#: ../share/extensions/gimp_xcf.py:185 msgid "This extension requires at least one non empty layer." msgstr "Diese Erweiterung benötigt mindestens eine nicht leere Ebene." @@ -30973,7 +31127,8 @@ msgid "Movements" msgstr "Bewegungen" #: ../share/extensions/hpgl_decoder.py:44 -msgid "Pen #" +#, fuzzy +msgid "Pen " msgstr "Stift #" #. issue error if no hpgl data found @@ -31033,7 +31188,7 @@ msgstr "Kein passender Knoten für Ausdruck: %s" #: ../share/extensions/inkex.py:313 msgid "SVG Width not set correctly! Assuming width = 100" -msgstr "" +msgstr "Breite des SVGs nicht richtig gesetzt. Benutze width = 100" #: ../share/extensions/interp_att_g.py:167 msgid "There is no selection to interpolate" @@ -31345,17 +31500,17 @@ msgstr "" " Versuchen sie den Befehl Pfad | Objekt in Pfad umwandeln." #. issue error if no paths found -#: ../share/extensions/plotter.py:66 +#: ../share/extensions/plotter.py:67 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" "Keine Pfade gefunden. Bitte alle zu plottenden Objekte in Pfade umwandeln." -#: ../share/extensions/plotter.py:143 +#: ../share/extensions/plotter.py:144 msgid "pySerial is not installed." msgstr "pySerial ist nicht installiert." -#: ../share/extensions/plotter.py:163 +#: ../share/extensions/plotter.py:164 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." @@ -31746,7 +31901,7 @@ msgstr "Schwarz-Weiß" #: ../share/extensions/color_blackandwhite.inx.h:2 msgid "Threshold Color (1-255):" -msgstr "Schwellenwertfarbe (1-255):" +msgstr "Schwellwertfarbe (1-255):" #: ../share/extensions/color_brighter.inx.h:1 msgid "Brighter" @@ -31910,7 +32065,7 @@ msgid "" "If you do not have it, there is likely to be something wrong with your " "Inkscape installation." msgstr "" -"Das Skript »dia2svg.sh« sollte in Ihrer Inkscape-Installation vorhanden " +"Das Skript „dia2svg.sh“ sollte in Ihrer Inkscape-Installation vorhanden " "sein. Wenn Sie es nicht haben, ist wahrscheinlich etwas mit Ihrer Inkscape-" "Installation nicht in Ordnung." @@ -31928,7 +32083,7 @@ msgstr "Dia-Zeichnung (*.dia)" #: ../share/extensions/dia.inx.h:5 msgid "A diagram created with the program Dia" -msgstr "Eine mit dem Programm »Dia« erstellte Zeichnung" +msgstr "Eine mit dem Programm „Dia“ erstellte Zeichnung" #: ../share/extensions/dimension.inx.h:1 msgid "Dimensions" @@ -32258,7 +32413,7 @@ msgstr "AutoCAD DXF R13 (*.dxf)" #: ../share/extensions/dxf_input.inx.h:20 msgid "Import AutoCAD's Document Exchange Format" -msgstr "AutoCADs »Document Exchange Format« importieren" +msgstr "AutoCADs „Document Exchange Format“ importieren" #: ../share/extensions/dxf_outlines.inx.h:1 msgid "Desktop Cutting Plotter" @@ -32766,11 +32921,12 @@ msgid "" "\n" "The constants pi and e are also available." msgstr "" -"Die folgenden Standard-Mathematik-Funktionen von Python sind verfügbar: ceil" -"(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); exp(x); log" -"(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); atan(x); atan2" -"(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); radians(x); cosh(x); " -"sinh(x); tanh(x). Die Konstanten pi und e sind ebenfalls verfügbar." +"Die folgenden Standard-Mathematik-Funktionen von Python sind verfügbar: " +"ceil(x); fabs(x); floor(x); fmod(x,y); frexp(x); ldexp(x,i); modf(x); " +"exp(x); log(x [, base]); log10(x); pow(x,y); sqrt(x); acos(x); asin(x); " +"atan(x); atan2(y,x); hypot(x,y); cos(x); sin(x); tan(x); degrees(x); " +"radians(x); cosh(x); sinh(x); tanh(x). Die Konstanten pi und e sind " +"ebenfalls verfügbar." #: ../share/extensions/funcplot.inx.h:31 msgid "Function:" @@ -33576,13 +33732,13 @@ msgid "" "of the pattern and get an empty border." msgstr "" "Erstellt ein zufälliges Muster aus Voronoi-Zellen. Das Muster wird später im " -"Fülungs- und Kontur-Dialog verfügbar seion. Sie müssen dazu ein Objekt oder " +"Füllungs- und Kontur-Dialog verfügbar sein. Sie müssen dazu ein Objekt oder " "ein Gruppe auswählen.\n" "\n" " Ist der Rand null, wird das Muster an den Kanten unterbrochen. Nehmen Sie " "einen positiven Wert, größer als die Zellgröße, um einen weichen Übergang " "zwischen Zellen und Rand zu schaffen. Nehmen Sie einen negativen Wert, um " -"die Mustergröße zu reduzieren und einen lleren Rand zu erzeugen." +"die Mustergröße zu reduzieren und einen lehren Rand zu erzeugen." #: ../share/extensions/gimp_xcf.inx.h:1 msgid "GIMP XCF" @@ -33848,15 +34004,15 @@ msgstr "Strichstärke Winkelnebenteilung (px):" #: ../share/extensions/guides_creator.inx.h:1 msgid "Guides creator" -msgstr "Führungslinien erstellen" +msgstr "Hilfslinien erstellen" #: ../share/extensions/guides_creator.inx.h:2 msgid "Regular guides" -msgstr "Regelmäßige Führungslinien" +msgstr "Regelmäßige Hilfslinien" #: ../share/extensions/guides_creator.inx.h:3 msgid "Guides preset:" -msgstr "Führungslinienvoreinstellung:" +msgstr "Hilfslinienvoreinstellung:" #: ../share/extensions/guides_creator.inx.h:6 msgid "Start from edges" @@ -33864,7 +34020,7 @@ msgstr "An Kanten beginnen" #: ../share/extensions/guides_creator.inx.h:7 msgid "Delete existing guides" -msgstr "Lösche existierende Führungslinien" +msgstr "Lösche existierende Hilfslinien" #: ../share/extensions/guides_creator.inx.h:8 msgid "Custom..." @@ -33880,7 +34036,7 @@ msgstr "Drittel-Regel" #: ../share/extensions/guides_creator.inx.h:11 msgid "Diagonal guides" -msgstr "Diagonale Führungslinien" +msgstr "Diagonale Hilfslinien" #: ../share/extensions/guides_creator.inx.h:12 msgid "Upper left corner" @@ -34138,13 +34294,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 #: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:25 msgid "Resolution X (dpi):" msgstr "X-Auflösung (dpi):" #: ../share/extensions/hpgl_input.inx.h:4 #: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:26 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -34154,13 +34310,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:5 #: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 +#: ../share/extensions/plotter.inx.h:27 msgid "Resolution Y (dpi):" msgstr "Y-Auflösung (dpi):" #: ../share/extensions/hpgl_input.inx.h:6 #: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 +#: ../share/extensions/plotter.inx.h:28 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -34202,27 +34358,27 @@ msgstr "" "(Erweiterungsmenü), um direkt über eine serielle Verbindung zu plotten." #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:24 msgid "Plotter Settings " msgstr "Plottereinstellungen " #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 +#: ../share/extensions/plotter.inx.h:29 msgid "Pen number:" msgstr "Stiftnummer:" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 +#: ../share/extensions/plotter.inx.h:30 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "Die Nummer des zu verwendenden Stiftes (Werkzeug) (Standard: '1')" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:31 msgid "Pen force (g):" msgstr "Stiftdruck (g):" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:32 msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" @@ -34231,7 +34387,7 @@ msgstr "" "Auf 0 setzen, um den Befehl zu ignorieren (Standard)" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/plotter.inx.h:33 msgid "Pen speed (cm/s or mm/s):" msgstr "Stiftgeschwindigkeit (cm/s oder mm/s):" @@ -34249,53 +34405,53 @@ msgid "Rotation (°, Clockwise):" msgstr "Drehung (°, im Uhrzeigersinn):" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:36 msgid "Rotation of the drawing (Default: 0°)" msgstr "Drehung der Zeichnung in Grad (Standard 0°)" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:37 msgid "Mirror X axis" msgstr "X-Spiegelachse" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:38 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "X-Achse spiegeln" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/plotter.inx.h:39 msgid "Mirror Y axis" msgstr "Y-Spiegelachse" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:40 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "Y-Achse spiegeln" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/plotter.inx.h:41 msgid "Center zero point" msgstr "Zentrierter Nullpunkt" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:42 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "Wählen wenn der verwendete Plotter seinen 0-Punkt in der Mitte hat." #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/plotter.inx.h:43 msgid "Plot Features " msgstr "Plot-Funktionen " #: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/plotter.inx.h:44 msgid "Overcut (mm):" msgstr "Überschnitt (mm):" #: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/plotter.inx.h:45 msgid "" "The distance in mm that will be cut over the starting point of the path to " "prevent open paths, set to 0.0 to omit command (Default: 1.00)" @@ -34304,12 +34460,12 @@ msgstr "" "wird, um offene Pfade zu schützen (Standard: '1.00')" #: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/plotter.inx.h:46 msgid "Tool offset (mm):" msgstr "Werkzeugversatz (mm):" #: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/plotter.inx.h:47 msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" @@ -34318,12 +34474,12 @@ msgstr "" "zu übergehen (Standard: '0.25')" #: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/plotter.inx.h:48 msgid "Use precut" msgstr "Überschnitt verwenden" #: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/plotter.inx.h:49 msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" @@ -34332,12 +34488,12 @@ msgstr "" "Werkzeug richtig auszurichten." #: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/plotter.inx.h:50 msgid "Curve flatness:" msgstr "Kurvenebenheit:" #: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/plotter.inx.h:51 msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" @@ -34346,12 +34502,12 @@ msgstr "" "reproduziert werden; Je kleiner desto feiner (Standard: '1.2')" #: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/plotter.inx.h:52 msgid "Auto align" msgstr "Automatisches Ausrichten" #: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/plotter.inx.h:53 msgid "" "Check this to auto align the drawing to the zero point (Plus the tool offset " "if used). If unchecked you have to make sure that all parts of your drawing " @@ -34362,7 +34518,7 @@ msgstr "" "Zeichnung innerhalb der Dokumentengrenzen sind. (Standard: ausgewählt)" #: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:56 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." @@ -34419,7 +34575,6 @@ msgstr "Referenz der Tasten- und Maus-Befehle" #. i18n. Please don't translate it unless a page exists in your language #: ../share/extensions/inkscape_help_keys.inx.h:3 -#, fuzzy msgid "http://inkscape.org/doc/keys091.html" msgstr "http://inkscape.org/doc/keys091.html" @@ -34499,11 +34654,11 @@ msgstr "Endwert" #: ../share/extensions/interp_att_g.inx.h:13 msgid "Translate X" -msgstr "Übersetzer X" +msgstr "Verschiebung X" #: ../share/extensions/interp_att_g.inx.h:14 msgid "Translate Y" -msgstr "Übersetzer Y" +msgstr "Verschiebung Y" #: ../share/extensions/interp_att_g.inx.h:15 #: ../share/extensions/markers_strokepaint.inx.h:9 @@ -35784,36 +35939,47 @@ msgid "The command language to use (Default: HPGL)" msgstr "Die zu verwendende Befehlssprache (Standard: HPGL)" #: ../share/extensions/plotter.inx.h:12 +msgid "Initialization commands:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:13 +msgid "" +"Commands that will be sent to the plotter before the main data stream, only " +"use this if you know what you are doing! (Default: Empty)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 msgid "Software (XON/XOFF)" msgstr "Software (XON/XOFF)" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:15 msgid "Hardware (RTS/CTS)" msgstr "Hardware (RTS/CTS)" -#: ../share/extensions/plotter.inx.h:14 +#: ../share/extensions/plotter.inx.h:16 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "Hardware (DSR/DTR + RTS/CTS)" # CHECK -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:17 msgctxt "Flow control" msgid "None" msgstr "Keine" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:18 msgid "HPGL" msgstr "HPGL" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:19 msgid "DMPL" msgstr "DMPL" -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" +#: ../share/extensions/plotter.inx.h:20 +#, fuzzy +msgid "KNK Plotter (HPGL variant)" msgstr "KNK Zing (HPGL-Variante)" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:21 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" @@ -35821,7 +35987,7 @@ msgstr "" "Die Verwendung falscher Einstellungen kann zum Einfrieren von Inkscape " "führen. Bitte Datei vor dem Plotten immer speichern!" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:22 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." @@ -35829,11 +35995,11 @@ msgstr "" "Es können serielle Verbindungen oder ein USB-Seriell-Konverter verwendet " "werden. Fragen Sie Ihren Plotter-Hersteller wenn Sie Treiber benötigen." -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:23 msgid "Parallel (LPT) connections are not supported." msgstr "Parallele (LPT) Verbindungen werden nicht unterstützt." -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:34 msgid "" "The speed the pen will move with in centimeters or millimeters per second " "(depending on your plotter model), set to 0 to omit command. Most plotters " @@ -35843,15 +36009,15 @@ msgstr "" "Modellabhängig). Auf 0 setzen um denBefehl auszulassen . Die meisten Plotter " "ignorieren diesen Befehl (Standard: 0)" -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/plotter.inx.h:35 msgid "Rotation (°, clockwise):" msgstr "Drehung (°, im Uhrzeigersinn):" -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/plotter.inx.h:54 msgid "Show debug information" msgstr "Debuginformation anzeigen" -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/plotter.inx.h:55 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" @@ -36643,11 +36809,13 @@ msgid "Seamless Pattern" msgstr "Braille Muster" #: ../share/extensions/seamless_pattern.inx.h:2 +#: ../share/extensions/seamless_pattern_procedural.inx.h:2 #, fuzzy msgid "Custom Width (px):" msgstr "Breite der Kontur, px" #: ../share/extensions/seamless_pattern.inx.h:3 +#: ../share/extensions/seamless_pattern_procedural.inx.h:3 #, fuzzy msgid "Custom Height (px):" msgstr "Rechts (px):" @@ -36660,16 +36828,6 @@ msgstr "" msgid "Seamless Pattern Procedural" msgstr "" -#: ../share/extensions/seamless_pattern_procedural.inx.h:2 -#, fuzzy -msgid "Custom Width (px.):" -msgstr "Breite der Kontur, px" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:3 -#, fuzzy -msgid "Custom Height (px.):" -msgstr "Rechts (px):" - #: ../share/extensions/setup_typography_canvas.inx.h:1 msgid "1 - Setup Typography Canvas" msgstr "1 - Einrichtung der Typografie-Arbeitsfläche" @@ -36725,7 +36883,7 @@ msgstr "Sketch-Zeichnung (*.sk)" #: ../share/extensions/sk_input.inx.h:3 msgid "A diagram created with the program Sketch" -msgstr "Eine mit dem Programm »Sketch« erstellte Zeichnung" +msgstr "Eine mit dem Programm „Sketch“ erstellte Zeichnung" #: ../share/extensions/spirograph.inx.h:1 msgid "Spirograph" @@ -37249,12 +37407,12 @@ msgstr "beim Klicken" #: ../share/extensions/web-set-att.inx.h:9 #: ../share/extensions/web-transmit-att.inx.h:8 msgid "on focus" -msgstr "bei Fokuserhalt" +msgstr "beim Fokussieren" #: ../share/extensions/web-set-att.inx.h:10 #: ../share/extensions/web-transmit-att.inx.h:9 msgid "on blur" -msgstr "bei Unschärfe" +msgstr "beim Defokussieren" #: ../share/extensions/web-set-att.inx.h:11 #: ../share/extensions/web-transmit-att.inx.h:10 @@ -37264,22 +37422,22 @@ msgstr "beim Aktivieren" #: ../share/extensions/web-set-att.inx.h:12 #: ../share/extensions/web-transmit-att.inx.h:11 msgid "on mouse down" -msgstr "wenn Zeiger sich nach unten bewegt" +msgstr "beim Drücken der Maustaste" #: ../share/extensions/web-set-att.inx.h:13 #: ../share/extensions/web-transmit-att.inx.h:12 msgid "on mouse up" -msgstr "wenn Zeiger sich nach oben bewegt" +msgstr "beim Loslassen der Maustaste" #: ../share/extensions/web-set-att.inx.h:14 #: ../share/extensions/web-transmit-att.inx.h:13 msgid "on mouse over" -msgstr "bei Überfahren mit Zeiger" +msgstr "wenn Mauszeiger das Objekt erreicht" #: ../share/extensions/web-set-att.inx.h:15 #: ../share/extensions/web-transmit-att.inx.h:14 msgid "on mouse move" -msgstr "bei Bewegen des Zeigers" +msgstr "wenn Mauszeiger sich über dem Objekt bewegt" #: ../share/extensions/web-set-att.inx.h:16 #: ../share/extensions/web-transmit-att.inx.h:15 @@ -37381,8 +37539,8 @@ msgid "" "This effect transmits one or more attributes from the first selected element " "to the second when an event occurs." msgstr "" -"Dieser Effekt setzt Attribute im zweiten ausgewählten Element, wenn ein " -"Ereignis bei dem ersten Element eintritt." +"Dieser Effekt sendet ein oder mehrere Attribute vom ersten ausgewählten " +"Element zum Zweiten wenn ein Ereignis eintritt." #: ../share/extensions/web-transmit-att.inx.h:26 msgid "" @@ -37390,7 +37548,7 @@ msgid "" "with a space, and only with a space." msgstr "" "Wenn Sie mehr als nur ein Attribut übertragen wollen, müssen Sie diese mit " -"einzelnen Leerzeichen trennen. " +"einzelnen Leerzeichen trennen." #: ../share/extensions/webslicer_create_group.inx.h:1 msgid "Set a layout group" @@ -37429,7 +37587,7 @@ msgstr "Prozent (relativ zur Größe des Vorgängers)" #: ../share/extensions/webslicer_create_group.inx.h:10 msgid "Undefined (relative to non-floating content size)" -msgstr "Unbestimmt (relativ zur nicht-schwimmenden Inhaltsgröße)" +msgstr "Unbestimmt (relativ zur nicht-fließenden Inhaltsgröße)" #: ../share/extensions/webslicer_create_group.inx.h:12 msgid "" @@ -37647,6 +37805,27 @@ msgstr "Ein beliebtes Dateiformat für Clipart" msgid "XAML Input" msgstr "XAML einlesen" +#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +#~ msgstr "PS+LaTeX: Text in PS weglassen und LaTeX Datei erstellen" + +#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +#~ msgstr "EPS+LaTeX: Text in EPS weglassen und LaTeX Datei erstellen" + +#, fuzzy +#~ msgid "Show helper paths" +#~ msgstr "An Ausschneidepfaden einrasten" + +#~ msgid "_Templates..." +#~ msgstr "_Vorlagen..." + +#, fuzzy +#~ msgid "Custom Width (px.):" +#~ msgstr "Breite der Kontur, px" + +#, fuzzy +#~ msgid "Custom Height (px.):" +#~ msgstr "Rechts (px):" + #~ msgid "A4 Landscape Page" #~ msgstr "A4 Querformatseite" @@ -38367,7 +38546,7 @@ msgstr "XAML einlesen" #~ msgstr "Einstellen des \"rechten\" Endes der Tangente" #~ msgid "Stack step:" -#~ msgstr "Scans stapeln" +#~ msgstr "Abtastungen stapeln" #~ msgid "Point param:" #~ msgstr "Punktparameter" @@ -38765,7 +38944,7 @@ msgstr "XAML einlesen" #~ "document (e.g. 'en-GB')" #~ msgstr "" #~ "Zweibuchstabiges Sprachsymbol mit optionalen Untersymbolen für die " -#~ "Sprache dieses Dokuments (z.B. »de-CH«)" +#~ "Sprache dieses Dokuments (z.B. „de-CH“)" #~ msgid "" #~ "The topic of this document as comma-separated key words, phrases, or " @@ -38808,7 +38987,7 @@ msgstr "XAML einlesen" #~ msgstr "Voreinstellung" #~ msgid "Vertical guide each:" -#~ msgstr "Vertikale Führungslinie alle" +#~ msgstr "Vertikale Hilfslinie alle" #~ msgid "1/2" #~ msgstr "1/2" @@ -38838,7 +39017,7 @@ msgstr "XAML einlesen" #~ msgstr "1/10" #~ msgid "Horizontal guide each:" -#~ msgstr "Horizontale Führungslinie alle:" +#~ msgstr "Horizontale Hilfslinie alle:" #~ msgid "Crop:" #~ msgstr "Schneiden:" @@ -39490,14 +39669,14 @@ msgstr "XAML einlesen" #~ msgstr "Schmelz:" #~ msgid "_Snap guides while dragging" -#~ msgstr "An Führungslinien während dem Ziehen _einrasten" +#~ msgstr "An Hilfslinien während dem Ziehen _einrasten" #~ msgid "" #~ "While dragging a guide, snap to object nodes or bounding box corners " #~ "('Snap to nodes' or 'snap to bounding box corners' must be enabled; only " #~ "a small part of the guide near the cursor will snap)" #~ msgstr "" -#~ "Während des Ziehens einer Führungslinie rastet diese an Objekt-Knoten " +#~ "Während des Ziehens einer Hilfslinie rastet diese an Objekt-Knoten " #~ "oder Ecken von Umrandungskästen ein (\"An Knoten einrasten\" oder \"An " #~ "Umrandungsecken einrasten\" muss aktiviert sein; nur ein kleiner Teil um " #~ "den Mauszeiger wird einrasten)" @@ -39704,9 +39883,6 @@ msgstr "XAML einlesen" #~ msgid "Draws a black outline around" #~ msgstr "Zeichnet einen schwarzen Umriss " -#~ msgid "Color outline" -#~ msgstr "Farbige Außenlinie" - #~ msgid "Draws a colored outline around" #~ msgstr "Zeichnet einen farbige Umriss" @@ -40834,11 +41010,6 @@ msgstr "XAML einlesen" #~ "nur horizontale/vertikale Verschiebung;Strg+Alt: entlang der " #~ "Anfasser verschieben" -#~ msgid "Alt: lock handle length; Ctrl+Alt: move along handles" -#~ msgstr "" -#~ "Alt: Anfasserlänge fixieren; Strg+Alt: Entlang der Anfasser " -#~ "verschieben" - #~ msgid "" #~ "Node handle: drag to shape the curve; with Ctrl to snap " #~ "angle; with Alt to lock length; with Shift to rotate both " @@ -41144,7 +41315,7 @@ msgstr "XAML einlesen" #~ msgstr "Encapsulated Postscript Interchange (*.epsi)" #~ msgid "Encapsulated Postscript with a thumbnail" -#~ msgstr "»Encapsulated Postscript« mit einem Vorschaubild" +#~ msgstr "„Encapsulated Postscript“ mit einem Vorschaubild" #~ msgid "Glossy jelly" #~ msgstr "Glänzendes Gelee" @@ -41337,8 +41508,8 @@ msgstr "XAML einlesen" #~ msgstr "" #~ "Druckername (wie von lpstat -p angezeigt);\n" #~ "leer lassen, um den Standarddrucker zu verwenden.\n" -#~ "Verwenden Sie »> Dateiname« zum Drucken in eine Datei.\n" -#~ "Verwenden Sie »| Prog. Arg. …« zur Weiterleitung an ein Programm." +#~ "Verwenden Sie „> Dateiname“ zum Drucken in eine Datei.\n" +#~ "Verwenden Sie „| Prog. Arg. …“ zur Weiterleitung an ein Programm." #~ msgid "PDF Print" #~ msgstr "PDF-Druck" @@ -41424,7 +41595,7 @@ msgstr "XAML einlesen" #~ msgstr "Exportiere EPS-Dateien mit den Seitengrößen als Umrandungsbox" #~ msgid "Select at least two objects to combine." -#~ msgstr "Mindestens 2 Objekte zum Kombinieren auswählen." +#~ msgstr "Mindestens zwei Objekte zum Kombinieren auswählen." #~ msgid "Pushing %d selected object" #~ msgid_plural "Pushing %d selected objects" @@ -41482,13 +41653,13 @@ msgstr "XAML einlesen" #~ msgstr "Knoten an Objektpfaden einrasten" #~ msgid "Snap bounding box corners and guides to bounding box edges" -#~ msgstr "_Umrandungsbox an Führungslinien einrasten" +#~ msgstr "_Umrandungsbox an Hilfslinien einrasten" #~ msgid "Snap bounding box corners and nodes to the page border" -#~ msgstr "_Umrandungsbox an Führungslinien einrasten" +#~ msgstr "_Umrandungsbox an Hilfslinien einrasten" #~ msgid "_Grid with guides" -#~ msgstr "Gitter/Führungslinien" +#~ msgstr "Gitter/Hilfslinien" #~ msgid "_Paths" #~ msgstr "Pfade" @@ -41503,7 +41674,7 @@ msgstr "XAML einlesen" # !!! points? #~ msgid "Special points to consider" -#~ msgstr "_Knoten (Punkte) an Führungslinien einrasten" +#~ msgstr "_Knoten (Punkte) an Hilfslinien einrasten" #~ msgid "Commands bar icon size" #~ msgstr "Befehlsleiste Icon Größe" diff --git a/po/is.po b/po/is.po index f0836459c..19c422f3e 100644 --- a/po/is.po +++ b/po/is.po @@ -1,20 +1,22 @@ -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. +# Þýðing inkscape.po á Icelandic +# Copyright (C) 2015 Icelandic Inksape Translators +# This file is distributed under the same license as the Inkscape package. # # Sveinn í Felli , 2015. msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-01-28 11:25+0100\n" -"PO-Revision-Date: 2015-03-11 18:53+0000\n" +"POT-Creation-Date: 2015-03-10 09:10+0100\n" +"PO-Revision-Date: 2015-04-30 14:44+0000\n" "Last-Translator: Sveinn í Felli \n" "Language-Team: Icelandic \n" "Language: is\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" +"Plural-Forms: nplurals=2; plural=(n%10!=1 || n%100==11);\n" +"\n" "X-Generator: Lokalize 1.5\n" #: ../inkscape.desktop.in.h:1 @@ -164,7 +166,7 @@ msgstr "" #: ../share/filters/filters.svg.h:38 msgid "Ripple" -msgstr "" +msgstr "Gárur" #: ../share/filters/filters.svg.h:39 ../share/filters/filters.svg.h:123 #: ../share/filters/filters.svg.h:315 ../share/filters/filters.svg.h:319 @@ -178,7 +180,7 @@ msgstr "Aflaga" #: ../share/filters/filters.svg.h:40 msgid "Horizontal rippling of edges" -msgstr "" +msgstr "Lárétt gárun jaðra" #: ../share/filters/filters.svg.h:42 msgid "Speckle" @@ -628,7 +630,7 @@ msgstr "" #: ../share/filters/filters.svg.h:218 msgid "Raised Border" -msgstr "" +msgstr "Hækkaðir jaðrar" #: ../share/filters/filters.svg.h:220 msgid "Strongly raised border around a flat surface" @@ -685,7 +687,7 @@ msgstr "" #: ../share/filters/filters.svg.h:242 msgid "Gold Splatter" -msgstr "" +msgstr "Gullslettur" #: ../share/filters/filters.svg.h:244 msgid "Splattered cast metal, with golden highlights" @@ -693,7 +695,7 @@ msgstr "" #: ../share/filters/filters.svg.h:246 msgid "Gold Paste" -msgstr "" +msgstr "Gullkrem" #: ../share/filters/filters.svg.h:248 msgid "Fat pasted cast metal, with golden highlights" @@ -701,7 +703,7 @@ msgstr "" #: ../share/filters/filters.svg.h:250 msgid "Crumpled Plastic" -msgstr "" +msgstr "Krumpuplast" #: ../share/filters/filters.svg.h:252 msgid "Crumpled matte plastic, with melted edge" @@ -783,7 +785,7 @@ msgstr "" #: ../share/filters/filters.svg.h:290 msgid "Shaken Liquid" -msgstr "" +msgstr "Hristur vökvi" #: ../share/filters/filters.svg.h:292 msgid "Colorizable filling with flow inside like transparency" @@ -791,7 +793,7 @@ msgstr "" #: ../share/filters/filters.svg.h:294 msgid "Soft Focus Lens" -msgstr "" +msgstr "Mjúkur linsufókus" #: ../share/filters/filters.svg.h:296 msgid "Glowing image content without blurring it" @@ -799,7 +801,7 @@ msgstr "" #: ../share/filters/filters.svg.h:298 msgid "Stained Glass" -msgstr "" +msgstr "Steint gler" #: ../share/filters/filters.svg.h:300 msgid "Illuminated stained glass effect" @@ -807,7 +809,7 @@ msgstr "" #: ../share/filters/filters.svg.h:302 msgid "Dark Glass" -msgstr "" +msgstr "Dökkt gler" #: ../share/filters/filters.svg.h:304 msgid "Illuminated glass effect with light coming from beneath" @@ -831,7 +833,7 @@ msgstr "" #: ../share/filters/filters.svg.h:314 ../share/filters/filters.svg.h:362 msgid "Torn Edges" -msgstr "" +msgstr "Rifnar brúnir" #: ../share/filters/filters.svg.h:316 ../share/filters/filters.svg.h:364 msgid "" @@ -923,7 +925,7 @@ msgstr "" #: ../share/filters/filters.svg.h:358 msgid "Wax Print" -msgstr "" +msgstr "Vaxprentun" #: ../share/filters/filters.svg.h:360 msgid "Wax print on tissue texture" @@ -939,7 +941,7 @@ msgstr "" #: ../share/filters/filters.svg.h:370 msgid "Felt" -msgstr "" +msgstr "Filti" #: ../share/filters/filters.svg.h:372 msgid "" @@ -948,7 +950,7 @@ msgstr "" #: ../share/filters/filters.svg.h:374 msgid "Ink Paint" -msgstr "" +msgstr "Blekmálning" #: ../share/filters/filters.svg.h:376 msgid "Ink paint on paper with some turbulent color shift" @@ -956,7 +958,7 @@ msgstr "" #: ../share/filters/filters.svg.h:378 msgid "Tinted Rainbow" -msgstr "" +msgstr "Litaður regnbogi" #: ../share/filters/filters.svg.h:380 msgid "Smooth rainbow colors melted along the edges and colorizable" @@ -964,7 +966,7 @@ msgstr "" #: ../share/filters/filters.svg.h:382 msgid "Melted Rainbow" -msgstr "" +msgstr "Bræddur regnbogi" #: ../share/filters/filters.svg.h:384 msgid "Smooth rainbow colors slightly melted along the edges" @@ -1030,26 +1032,27 @@ msgstr "Svart ljós" #: ../src/extension/internal/filter/bumps.h:101 #: ../src/extension/internal/filter/bumps.h:321 #: ../src/extension/internal/filter/bumps.h:328 -#: ../src/extension/internal/filter/color.h:82 -#: ../src/extension/internal/filter/color.h:164 -#: ../src/extension/internal/filter/color.h:171 -#: ../src/extension/internal/filter/color.h:262 -#: ../src/extension/internal/filter/color.h:340 -#: ../src/extension/internal/filter/color.h:347 -#: ../src/extension/internal/filter/color.h:437 -#: ../src/extension/internal/filter/color.h:532 -#: ../src/extension/internal/filter/color.h:654 -#: ../src/extension/internal/filter/color.h:751 -#: ../src/extension/internal/filter/color.h:830 -#: ../src/extension/internal/filter/color.h:921 -#: ../src/extension/internal/filter/color.h:1049 -#: ../src/extension/internal/filter/color.h:1119 -#: ../src/extension/internal/filter/color.h:1212 -#: ../src/extension/internal/filter/color.h:1324 -#: ../src/extension/internal/filter/color.h:1429 -#: ../src/extension/internal/filter/color.h:1505 -#: ../src/extension/internal/filter/color.h:1609 -#: ../src/extension/internal/filter/color.h:1616 +#: ../src/extension/internal/filter/color.h:83 +#: ../src/extension/internal/filter/color.h:165 +#: ../src/extension/internal/filter/color.h:172 +#: ../src/extension/internal/filter/color.h:283 +#: ../src/extension/internal/filter/color.h:337 +#: ../src/extension/internal/filter/color.h:415 +#: ../src/extension/internal/filter/color.h:422 +#: ../src/extension/internal/filter/color.h:512 +#: ../src/extension/internal/filter/color.h:607 +#: ../src/extension/internal/filter/color.h:729 +#: ../src/extension/internal/filter/color.h:826 +#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:996 +#: ../src/extension/internal/filter/color.h:1124 +#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1287 +#: ../src/extension/internal/filter/color.h:1399 +#: ../src/extension/internal/filter/color.h:1504 +#: ../src/extension/internal/filter/color.h:1580 +#: ../src/extension/internal/filter/color.h:1684 +#: ../src/extension/internal/filter/color.h:1691 #: ../src/extension/internal/filter/morphology.h:194 #: ../src/extension/internal/filter/overlays.h:73 #: ../src/extension/internal/filter/paint.h:99 @@ -1059,7 +1062,7 @@ msgstr "Svart ljós" #: ../src/extension/internal/filter/transparency.h:345 #: ../src/filter-enums.cpp:67 ../src/ui/dialog/clonetiler.cpp:830 #: ../src/ui/dialog/clonetiler.cpp:981 -#: ../src/ui/dialog/document-properties.cpp:157 +#: ../src/ui/dialog/document-properties.cpp:164 #: ../share/extensions/color_HSL_adjust.inx.h:20 #: ../share/extensions/color_blackandwhite.inx.h:3 #: ../share/extensions/color_brighter.inx.h:2 @@ -1098,7 +1101,7 @@ msgstr "" #: ../share/filters/filters.svg.h:418 msgid "Plaster Color" -msgstr "" +msgstr "Gifsaður litur" #: ../share/filters/filters.svg.h:420 msgid "Colored plaster emboss effect" @@ -1106,7 +1109,7 @@ msgstr "" #: ../share/filters/filters.svg.h:422 msgid "Velvet Bumps" -msgstr "" +msgstr "Flauelsójöfnur" #: ../share/filters/filters.svg.h:424 msgid "Gives Smooth Bumps velvet like" @@ -1114,7 +1117,7 @@ msgstr "" #: ../share/filters/filters.svg.h:426 msgid "Comics Cream" -msgstr "" +msgstr "Myndasögusmurning" #: ../share/filters/filters.svg.h:427 ../share/filters/filters.svg.h:727 #: ../share/filters/filters.svg.h:731 ../share/filters/filters.svg.h:735 @@ -1228,7 +1231,7 @@ msgstr "" #: ../share/filters/filters.svg.h:474 msgid "Carnaval" -msgstr "" +msgstr "Kjötkveðjuhátíð" #: ../share/filters/filters.svg.h:476 msgid "White splotches evocating carnaval masks" @@ -1236,7 +1239,7 @@ msgstr "" #: ../share/filters/filters.svg.h:478 msgid "Plastify" -msgstr "" +msgstr "Plastgera" #: ../share/filters/filters.svg.h:480 msgid "" @@ -1246,7 +1249,7 @@ msgstr "" #: ../share/filters/filters.svg.h:482 msgid "Plaster" -msgstr "" +msgstr "Gifsað" #: ../share/filters/filters.svg.h:484 msgid "" @@ -1320,7 +1323,7 @@ msgstr "" #: ../share/filters/filters.svg.h:518 msgid "Lapping" -msgstr "" +msgstr "Slípun" #: ../share/filters/filters.svg.h:520 msgid "Something like a water noise" @@ -1328,7 +1331,7 @@ msgstr "" #: ../share/filters/filters.svg.h:522 msgid "Monochrome Transparency" -msgstr "" +msgstr "Einlitað gegnsæi" #: ../share/filters/filters.svg.h:523 ../share/filters/filters.svg.h:527 #: ../share/filters/filters.svg.h:647 ../share/filters/filters.svg.h:651 @@ -1482,7 +1485,7 @@ msgstr "" #: ../share/filters/filters.svg.h:591 msgid "Pixel tools" -msgstr "" +msgstr "Mynddílaverkfæri" #: ../share/filters/filters.svg.h:592 msgid "Reduce or remove antialiasing around shapes" @@ -1530,11 +1533,11 @@ msgstr "" #: ../share/filters/filters.svg.h:614 msgid "Rough Canvas Painting" -msgstr "" +msgstr "Málun á hrjúfan striga" #: ../share/filters/filters.svg.h:618 msgid "Paper Bump" -msgstr "" +msgstr "Pappírsójöfnur" #: ../share/filters/filters.svg.h:620 msgid "Paper like emboss effect" @@ -1550,7 +1553,7 @@ msgstr "" #: ../share/filters/filters.svg.h:626 msgid "Blend Opposites" -msgstr "" +msgstr "Blöndun andstæðna" #: ../share/filters/filters.svg.h:628 msgid "Blend an image with its hue opposite" @@ -1562,12 +1565,12 @@ msgstr "Litblær í hvítt" #: ../share/filters/filters.svg.h:632 msgid "Fades hue progressively to white" -msgstr "" +msgstr "Deyfir litblæ smám saman yfir í hvítt" #: ../share/filters/filters.svg.h:634 #: ../src/extension/internal/bitmap/swirl.cpp:37 msgid "Swirl" -msgstr "Sveimur" +msgstr "Þyrla" #: ../share/filters/filters.svg.h:636 msgid "" @@ -1592,19 +1595,19 @@ msgstr "" #: ../share/filters/filters.svg.h:646 msgid "Fill Background" -msgstr "" +msgstr "Fylltur bakgrunnur" #: ../share/filters/filters.svg.h:648 msgid "Adds a colorizable opaque background" -msgstr "" +msgstr "Bætir við lituðum ógegnsæum bakgrunni" #: ../share/filters/filters.svg.h:650 msgid "Flatten Transparency" -msgstr "" +msgstr "Fletja gegnsæi" #: ../share/filters/filters.svg.h:652 msgid "Adds a white opaque background" -msgstr "" +msgstr "Bætir við hvítum ógegnsæum bakgrunni" #: ../share/filters/filters.svg.h:654 msgid "Blur Double" @@ -1696,7 +1699,7 @@ msgstr "" #: ../share/filters/filters.svg.h:702 msgid "Duotone Turbulent" -msgstr "" +msgstr "Tvítóna hrært" #: ../share/filters/filters.svg.h:706 msgid "Light Eraser Cracked" @@ -1936,11 +1939,13 @@ msgstr "" #: ../share/filters/filters.svg.h:830 msgid "Simulate CMY" -msgstr "" +msgstr "Líkja eftir CMY" #: ../share/filters/filters.svg.h:832 msgid "Render Cyan, Magenta and Yellow channels with a colorizable background" msgstr "" +"Myndgera grænbláa (cyan), blárauða (magenta) og gular litrásir með lituðum " +"bakgrunni" #: ../share/filters/filters.svg.h:834 msgid "Contouring table" @@ -2108,7 +2113,7 @@ msgstr "Blágrænt (#008080)" #: ../share/palettes/palettes.h:23 msgctxt "Palette" msgid "Aqua (#00FFFF)" -msgstr "Sægrænt (#00FFFF)" +msgstr "Vatnsblár / Aqua (#00FFFF)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:24 @@ -2126,7 +2131,7 @@ msgstr "Blátt (#0000FF)" #: ../share/palettes/palettes.h:26 msgctxt "Palette" msgid "Purple (#800080)" -msgstr "Fjólublátt (#800080)" +msgstr "Purpurablátt (#800080)" #. Palette: ./inkscape.gpl #: ../share/palettes/palettes.h:27 @@ -2192,31 +2197,31 @@ msgstr "hvítt (#FFFFFF)" #: ../share/palettes/palettes.h:37 msgctxt "Palette" msgid "rosybrown (#BC8F8F)" -msgstr "" +msgstr "rósbrúnn (#BC8F8F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:38 msgctxt "Palette" msgid "indianred (#CD5C5C)" -msgstr "" +msgstr "indlandsrautt (#CD5C5C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:39 msgctxt "Palette" msgid "brown (#A52A2A)" -msgstr "" +msgstr "brúnt (#A52A2A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:40 msgctxt "Palette" msgid "firebrick (#B22222)" -msgstr "" +msgstr "múrsteins (#B22222)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:41 msgctxt "Palette" msgid "lightcoral (#F08080)" -msgstr "" +msgstr "ljóskórall (#F08080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:42 @@ -2228,7 +2233,7 @@ msgstr "ljósbrúnt (#800000)" #: ../share/palettes/palettes.h:43 msgctxt "Palette" msgid "darkred (#8B0000)" -msgstr "" +msgstr "dökkrautt (#8B0000)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:44 @@ -2246,187 +2251,187 @@ msgstr "snjór (#FFFAFA)" #: ../share/palettes/palettes.h:46 msgctxt "Palette" msgid "mistyrose (#FFE4E1)" -msgstr "" +msgstr "móðurós (#FFE4E1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:47 msgctxt "Palette" msgid "salmon (#FA8072)" -msgstr "" +msgstr "laxableikt (#FA8072)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:48 msgctxt "Palette" msgid "tomato (#FF6347)" -msgstr "" +msgstr "tómatur (#FF6347)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:49 msgctxt "Palette" msgid "darksalmon (#E9967A)" -msgstr "" +msgstr "dökklaxableikur (#E9967A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:50 msgctxt "Palette" msgid "coral (#FF7F50)" -msgstr "" +msgstr "kóral (#FF7F50)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:51 msgctxt "Palette" msgid "orangered (#FF4500)" -msgstr "" +msgstr "appelsínurautt (#FF4500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:52 msgctxt "Palette" msgid "lightsalmon (#FFA07A)" -msgstr "" +msgstr "ljóslaxableikt (#FFA07A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:53 msgctxt "Palette" msgid "sienna (#A0522D)" -msgstr "" +msgstr "sienna (#A0522D)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:54 msgctxt "Palette" msgid "seashell (#FFF5EE)" -msgstr "" +msgstr "skeljar (#FFF5EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:55 msgctxt "Palette" msgid "chocolate (#D2691E)" -msgstr "" +msgstr "súkkulaði (#D2691E)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:56 msgctxt "Palette" msgid "saddlebrown (#8B4513)" -msgstr "" +msgstr "leðurbrúnt (#8B4513)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:57 msgctxt "Palette" msgid "sandybrown (#F4A460)" -msgstr "" +msgstr "sandbrúnt (#F4A460)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:58 msgctxt "Palette" msgid "peachpuff (#FFDAB9)" -msgstr "" +msgstr "ferskjubleikt (#FFDAB9)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:59 msgctxt "Palette" msgid "peru (#CD853F)" -msgstr "" +msgstr "perubrúnt (#CD853F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:60 msgctxt "Palette" msgid "linen (#FAF0E6)" -msgstr "" +msgstr "línhvítt (#FAF0E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:61 msgctxt "Palette" msgid "bisque (#FFE4C4)" -msgstr "" +msgstr "súpa (#FFE4C4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:62 msgctxt "Palette" msgid "darkorange (#FF8C00)" -msgstr "" +msgstr "dökkappelsínugult (#FF8C00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:63 msgctxt "Palette" msgid "burlywood (#DEB887)" -msgstr "" +msgstr "spónarviður (#DEB887)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:64 msgctxt "Palette" msgid "tan (#D2B48C)" -msgstr "" +msgstr "brúnka (#D2B48C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:65 msgctxt "Palette" msgid "antiquewhite (#FAEBD7)" -msgstr "" +msgstr "antikhvítt (#FAEBD7)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:66 msgctxt "Palette" msgid "navajowhite (#FFDEAD)" -msgstr "" +msgstr "navajohvítt (#FFDEAD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:67 msgctxt "Palette" msgid "blanchedalmond (#FFEBCD)" -msgstr "" +msgstr "möndluhvítt (#FFEBCD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:68 msgctxt "Palette" msgid "papayawhip (#FFEFD5)" -msgstr "" +msgstr "papayaþeytingur (#FFEFD5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:69 msgctxt "Palette" msgid "moccasin (#FFE4B5)" -msgstr "" +msgstr "mokkasínugult (#FFE4B5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:70 msgctxt "Palette" msgid "orange (#FFA500)" -msgstr "" +msgstr "appelsínugult (#FFA500)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:71 msgctxt "Palette" msgid "wheat (#F5DEB3)" -msgstr "" +msgstr "hveiti (#F5DEB3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:72 msgctxt "Palette" msgid "oldlace (#FDF5E6)" -msgstr "" +msgstr "blúnduhvítt (#FDF5E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:73 msgctxt "Palette" msgid "floralwhite (#FFFAF0)" -msgstr "" +msgstr "blómhvítt (#FFFAF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:74 msgctxt "Palette" msgid "darkgoldenrod (#B8860B)" -msgstr "" +msgstr "dökkgyllt (#B8860B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:75 msgctxt "Palette" msgid "goldenrod (#DAA520)" -msgstr "" +msgstr "ljósgyllt (#DAA520)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:76 msgctxt "Palette" msgid "cornsilk (#FFF8DC)" -msgstr "" +msgstr "kornsilki (#FFF8DC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:77 @@ -2438,37 +2443,37 @@ msgstr "gyllt (#FFD700)" #: ../share/palettes/palettes.h:78 msgctxt "Palette" msgid "khaki (#F0E68C)" -msgstr "" +msgstr "kakí (#F0E68C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:79 msgctxt "Palette" msgid "lemonchiffon (#FFFACD)" -msgstr "" +msgstr "sítrónusiffon (#FFFACD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:80 msgctxt "Palette" msgid "palegoldenrod (#EEE8AA)" -msgstr "" +msgstr "fölgyllt (#EEE8AA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:81 msgctxt "Palette" msgid "darkkhaki (#BDB76B)" -msgstr "" +msgstr "dökkkakí (#BDB76B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:82 msgctxt "Palette" msgid "beige (#F5F5DC)" -msgstr "" +msgstr "beyki (#F5F5DC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:83 msgctxt "Palette" msgid "lightgoldenrodyellow (#FAFAD2)" -msgstr "" +msgstr "ljósgylltgult (#FAFAD2)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:84 @@ -2486,7 +2491,7 @@ msgstr "gult (#FFFF00)" #: ../share/palettes/palettes.h:86 msgctxt "Palette" msgid "lightyellow (#FFFFE0)" -msgstr "" +msgstr "ljósgult (#FFFFE0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:87 @@ -2498,73 +2503,73 @@ msgstr "fílabeinshvítt (#FFFFF0)" #: ../share/palettes/palettes.h:88 msgctxt "Palette" msgid "olivedrab (#6B8E23)" -msgstr "" +msgstr "ólífuhrafl (#6B8E23)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:89 msgctxt "Palette" msgid "yellowgreen (#9ACD32)" -msgstr "" +msgstr "gulgrænt (#9ACD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:90 msgctxt "Palette" msgid "darkolivegreen (#556B2F)" -msgstr "" +msgstr "dökkólífugrænt (#556B2F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:91 msgctxt "Palette" msgid "greenyellow (#ADFF2F)" -msgstr "" +msgstr "grængult (#ADFF2F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:92 msgctxt "Palette" msgid "chartreuse (#7FFF00)" -msgstr "" +msgstr "chartreusegrænt (#7FFF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:93 msgctxt "Palette" msgid "lawngreen (#7CFC00)" -msgstr "" +msgstr "grasgrænt (#7CFC00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:94 msgctxt "Palette" msgid "darkseagreen (#8FBC8F)" -msgstr "" +msgstr "dökksægrænt (#8FBC8F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:95 msgctxt "Palette" msgid "forestgreen (#228B22)" -msgstr "" +msgstr "skóggrænt (#228B22)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:96 msgctxt "Palette" msgid "limegreen (#32CD32)" -msgstr "" +msgstr "límónugrænt (#32CD32)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:97 msgctxt "Palette" msgid "lightgreen (#90EE90)" -msgstr "" +msgstr "ljósgrænt (#90EE90)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:98 msgctxt "Palette" msgid "palegreen (#98FB98)" -msgstr "" +msgstr "fölgrænt (#98FB98)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:99 msgctxt "Palette" msgid "darkgreen (#006400)" -msgstr "" +msgstr "dökkgrænt (#006400)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:100 @@ -2576,85 +2581,85 @@ msgstr "grænt (#008000)" #: ../share/palettes/palettes.h:101 msgctxt "Palette" msgid "lime (#00FF00)" -msgstr "límónugrænt (#00FF00)" +msgstr "límóna (#00FF00)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:102 msgctxt "Palette" msgid "honeydew (#F0FFF0)" -msgstr "" +msgstr "hunangsdögg (#F0FFF0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:103 msgctxt "Palette" msgid "seagreen (#2E8B57)" -msgstr "" +msgstr "sægrænt (#2E8B57)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:104 msgctxt "Palette" msgid "mediumseagreen (#3CB371)" -msgstr "" +msgstr "meðalsægrænt (#3CB371)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:105 msgctxt "Palette" msgid "springgreen (#00FF7F)" -msgstr "" +msgstr "vorgrænt (#00FF7F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:106 msgctxt "Palette" msgid "mintcream (#F5FFFA)" -msgstr "" +msgstr "rjómamynta (#F5FFFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:107 msgctxt "Palette" msgid "mediumspringgreen (#00FA9A)" -msgstr "" +msgstr "meðalvorgrænt (#00FA9A)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:108 msgctxt "Palette" msgid "mediumaquamarine (#66CDAA)" -msgstr "" +msgstr "meðalaquamarine (#66CDAA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:109 msgctxt "Palette" msgid "aquamarine (#7FFFD4)" -msgstr "" +msgstr "aquamarine (#7FFFD4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:110 msgctxt "Palette" msgid "turquoise (#40E0D0)" -msgstr "" +msgstr "túrkísgrænn (#40E0D0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:111 msgctxt "Palette" msgid "lightseagreen (#20B2AA)" -msgstr "" +msgstr "ljóssægrænt (#20B2AA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:112 msgctxt "Palette" msgid "mediumturquoise (#48D1CC)" -msgstr "" +msgstr "meðaltúrkísgrænt (#48D1CC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:113 msgctxt "Palette" msgid "darkslategray (#2F4F4F)" -msgstr "" +msgstr "dökkleirflögugrátt (#2F4F4F)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:114 msgctxt "Palette" msgid "paleturquoise (#AFEEEE)" -msgstr "" +msgstr "föltúrkísgrænt (#AFEEEE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:115 @@ -2666,127 +2671,127 @@ msgstr "blágrænt (#008080)" #: ../share/palettes/palettes.h:116 msgctxt "Palette" msgid "darkcyan (#008B8B)" -msgstr "" +msgstr "dökkgrænblátt (#008B8B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:117 msgctxt "Palette" msgid "cyan (#00FFFF)" -msgstr "" +msgstr "grænblátt/cyan (#00FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:118 msgctxt "Palette" msgid "lightcyan (#E0FFFF)" -msgstr "" +msgstr "ljósgrænblátt (#E0FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:119 msgctxt "Palette" msgid "azure (#F0FFFF)" -msgstr "" +msgstr "asúrlitur (#F0FFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:120 msgctxt "Palette" msgid "darkturquoise (#00CED1)" -msgstr "" +msgstr "dökktúrkísgrænt (#00CED1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:121 msgctxt "Palette" msgid "cadetblue (#5F9EA0)" -msgstr "" +msgstr "kadettblátt (#5F9EA0)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:122 msgctxt "Palette" msgid "powderblue (#B0E0E6)" -msgstr "" +msgstr "púðurblámi (#B0E0E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:123 msgctxt "Palette" msgid "lightblue (#ADD8E6)" -msgstr "" +msgstr "ljósblátt (#ADD8E6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:124 msgctxt "Palette" msgid "deepskyblue (#00BFFF)" -msgstr "" +msgstr "djúphiminblátt (#00BFFF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:125 msgctxt "Palette" msgid "skyblue (#87CEEB)" -msgstr "" +msgstr "himinblátt (#87CEEB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:126 msgctxt "Palette" msgid "lightskyblue (#87CEFA)" -msgstr "" +msgstr "ljóshiminblátt (#87CEFA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:127 msgctxt "Palette" msgid "steelblue (#4682B4)" -msgstr "" +msgstr "stálblátt (#4682B4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:128 msgctxt "Palette" msgid "aliceblue (#F0F8FF)" -msgstr "" +msgstr "bláhvítt (#F0F8FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:129 msgctxt "Palette" msgid "dodgerblue (#1E90FF)" -msgstr "" +msgstr "dodgerblátt (#1E90FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:130 msgctxt "Palette" msgid "slategray (#708090)" -msgstr "" +msgstr "leirflögugrátt (#708090)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:131 msgctxt "Palette" msgid "lightslategray (#778899)" -msgstr "" +msgstr "ljósleirflögugrátt (#778899)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:132 msgctxt "Palette" msgid "lightsteelblue (#B0C4DE)" -msgstr "" +msgstr "ljósstálblátt (#B0C4DE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:133 msgctxt "Palette" msgid "cornflowerblue (#6495ED)" -msgstr "" +msgstr "kornblómablár (#6495ED)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:134 msgctxt "Palette" msgid "royalblue (#4169E1)" -msgstr "" +msgstr "kóngablátt (#4169E1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:135 msgctxt "Palette" msgid "midnightblue (#191970)" -msgstr "" +msgstr "miðnæturblátt (#191970)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:136 msgctxt "Palette" msgid "lavender (#E6E6FA)" -msgstr "" +msgstr "lofnarblóm (#E6E6FA)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:137 @@ -2816,157 +2821,157 @@ msgstr "blátt (#0000FF)" #: ../share/palettes/palettes.h:141 msgctxt "Palette" msgid "ghostwhite (#F8F8FF)" -msgstr "" +msgstr "draughvítt (#F8F8FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:142 msgctxt "Palette" msgid "slateblue (#6A5ACD)" -msgstr "" +msgstr "leirflögublátt (#6A5ACD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:143 msgctxt "Palette" msgid "darkslateblue (#483D8B)" -msgstr "" +msgstr "dökkleirflögublátt (#483D8B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:144 msgctxt "Palette" msgid "mediumslateblue (#7B68EE)" -msgstr "" +msgstr "meðalleirflögublátt (#7B68EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:145 msgctxt "Palette" msgid "mediumpurple (#9370DB)" -msgstr "" +msgstr "meðalpurpurablátt (#9370DB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:146 msgctxt "Palette" msgid "blueviolet (#8A2BE2)" -msgstr "" +msgstr "bláfjólublátt (#8A2BE2)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:147 msgctxt "Palette" msgid "indigo (#4B0082)" -msgstr "" +msgstr "indígó (#4B0082)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:148 msgctxt "Palette" msgid "darkorchid (#9932CC)" -msgstr "" +msgstr "dökkorkídeu (#9932CC)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:149 msgctxt "Palette" msgid "darkviolet (#9400D3)" -msgstr "" +msgstr "dökkfjólublátt (#9400D3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:150 msgctxt "Palette" msgid "mediumorchid (#BA55D3)" -msgstr "" +msgstr "meðalorkídeu (#BA55D3)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:151 msgctxt "Palette" msgid "thistle (#D8BFD8)" -msgstr "" +msgstr "þistilbleikt (#D8BFD8)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:152 msgctxt "Palette" msgid "plum (#DDA0DD)" -msgstr "" +msgstr "plómubleikt (#DDA0DD)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:153 msgctxt "Palette" msgid "violet (#EE82EE)" -msgstr "" +msgstr "fjólublátt (#EE82EE)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:154 msgctxt "Palette" msgid "purple (#800080)" -msgstr "fjólublátt (#800080)" +msgstr "purpurablátt (#800080)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:155 msgctxt "Palette" msgid "darkmagenta (#8B008B)" -msgstr "" +msgstr "dökkblárautt (#8B008B)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:156 msgctxt "Palette" msgid "magenta (#FF00FF)" -msgstr "" +msgstr "blárautt/magenta (#FF00FF)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:157 msgctxt "Palette" msgid "orchid (#DA70D6)" -msgstr "" +msgstr "orkídea (#DA70D6)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:158 msgctxt "Palette" msgid "mediumvioletred (#C71585)" -msgstr "" +msgstr "millirauðfjólublár (#C71585)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:159 msgctxt "Palette" msgid "deeppink (#FF1493)" -msgstr "" +msgstr "djúpbleikt (#FF1493)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:160 msgctxt "Palette" msgid "hotpink (#FF69B4)" -msgstr "" +msgstr "heitbleikt (#FF69B4)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:161 msgctxt "Palette" msgid "lavenderblush (#FFF0F5)" -msgstr "" +msgstr "lavenderroði (#FFF0F5)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:162 msgctxt "Palette" msgid "palevioletred (#DB7093)" -msgstr "" +msgstr "fölfjólurautt (#DB7093)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:163 msgctxt "Palette" msgid "crimson (#DC143C)" -msgstr "" +msgstr "crimsonrautt (#DC143C)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:164 msgctxt "Palette" msgid "pink (#FFC0CB)" -msgstr "" +msgstr "bleikt (#FFC0CB)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:165 msgctxt "Palette" msgid "lightpink (#FFB6C1)" -msgstr "" +msgstr "ljósbleikt (#FFB6C1)" #. Palette: ./svg.gpl #: ../share/palettes/palettes.h:166 msgctxt "Palette" msgid "rebeccapurple (#663399)" -msgstr "" +msgstr "rebebekkupurpuri (#663399)" #. Palette: ./Tango-Palette.gpl #: ../share/palettes/palettes.h:167 @@ -3292,7 +3297,7 @@ msgstr "Felulitir" #: ../share/patterns/patterns.svg.h:1 msgid "Ermine" -msgstr "" +msgstr "Hreysiköttur" #: ../share/patterns/patterns.svg.h:1 msgid "Sand (bitmap)" @@ -3434,7 +3439,7 @@ msgstr "Snyrtingar" #: ../share/symbols/symbols.h:41 ../share/symbols/symbols.h:42 msgctxt "Symbol" msgid "Nursery" -msgstr "" +msgstr "Skiptiborð" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:43 ../share/symbols/symbols.h:44 @@ -3654,7 +3659,7 @@ msgstr "Hægri ör" #: ../share/symbols/symbols.h:113 ../share/symbols/symbols.h:114 msgctxt "Symbol" msgid "Forward and Right Arrow" -msgstr "" +msgstr "Áfram og hægri ör" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:115 ../share/symbols/symbols.h:116 @@ -3666,7 +3671,7 @@ msgstr "Ör upp" #: ../share/symbols/symbols.h:117 ../share/symbols/symbols.h:118 msgctxt "Symbol" msgid "Forward and Left Arrow" -msgstr "" +msgstr "Áfram og vinstri ör" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:119 ../share/symbols/symbols.h:120 @@ -3678,7 +3683,7 @@ msgstr "Vinstri ör" #: ../share/symbols/symbols.h:121 ../share/symbols/symbols.h:122 msgctxt "Symbol" msgid "Left and Down Arrow" -msgstr "" +msgstr "Vinstri og niður ör" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:123 ../share/symbols/symbols.h:124 @@ -3690,31 +3695,31 @@ msgstr "Ör niður" #: ../share/symbols/symbols.h:125 ../share/symbols/symbols.h:126 msgctxt "Symbol" msgid "Right and Down Arrow" -msgstr "" +msgstr "Hægri og niður ör" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:127 ../share/symbols/symbols.h:128 msgctxt "Symbol" msgid "NPS Wheelchair Accessible - 1996" -msgstr "" +msgstr "NPS Aðgengilegt í hjólastól - 1996" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:129 ../share/symbols/symbols.h:130 msgctxt "Symbol" msgid "NPS Wheelchair Accessible" -msgstr "" +msgstr "NPS Aðgengilegt í hjólastól" #. Symbols: ./AigaSymbols.svg #: ../share/symbols/symbols.h:131 ../share/symbols/symbols.h:132 msgctxt "Symbol" msgid "New Wheelchair Accessible" -msgstr "" +msgstr "Nýtt aðgengilegt í hjólastól" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:133 msgctxt "Symbol" msgid "Word Balloons" -msgstr "" +msgstr "Talblöðrur" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:134 @@ -3726,19 +3731,19 @@ msgstr "Hugsanablaðra" #: ../share/symbols/symbols.h:135 msgctxt "Symbol" msgid "Dream Speaking" -msgstr "" +msgstr "Talandi í draumi" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:136 msgctxt "Symbol" msgid "Rounded Balloon" -msgstr "" +msgstr "Rúnnuð plaðra" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:137 msgctxt "Symbol" msgid "Squared Balloon" -msgstr "" +msgstr "Köntuð blaðra" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:138 @@ -3750,19 +3755,19 @@ msgstr "Í símanum" #: ../share/symbols/symbols.h:139 msgctxt "Symbol" msgid "Hip Balloon" -msgstr "" +msgstr "Holblaðra" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:140 msgctxt "Symbol" msgid "Circle Balloon" -msgstr "" +msgstr "Hringlaga blaðra" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:141 msgctxt "Symbol" msgid "Exclaim Balloon" -msgstr "" +msgstr "Upphrópunarblaðra" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:142 @@ -3846,7 +3851,7 @@ msgstr "Afþjappa" #: ../share/symbols/symbols.h:155 msgctxt "Symbol" msgid "Terminal/Interrupt" -msgstr "" +msgstr "Endir/Ígrip" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:156 @@ -3858,13 +3863,13 @@ msgstr "Gataspjald" #: ../share/symbols/symbols.h:157 msgctxt "Symbol" msgid "Punch Tape" -msgstr "" +msgstr "Gataborði" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:158 msgctxt "Symbol" msgid "Online Storage" -msgstr "" +msgstr "Gagnahirsla á neti" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:159 @@ -3912,13 +3917,13 @@ msgstr "Raða saman" #: ../share/symbols/symbols.h:166 msgctxt "Symbol" msgid "Comment/Annotation" -msgstr "" +msgstr "Athugasemd/Glósa" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:167 msgctxt "Symbol" msgid "Core" -msgstr "" +msgstr "Kjarni" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:168 @@ -3930,31 +3935,31 @@ msgstr "Fyrirframskilgreind vinnsla" #: ../share/symbols/symbols.h:169 msgctxt "Symbol" msgid "Magnetic Disk (Database)" -msgstr "" +msgstr "Seguldiskur (gagnagrunnur)" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:170 msgctxt "Symbol" msgid "Magnetic Drum (Direct Access)" -msgstr "" +msgstr "Segultromla (beinn aðgangur)" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:171 msgctxt "Symbol" msgid "Offline Storage" -msgstr "" +msgstr "Ótengd gagnahirsla" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:172 msgctxt "Symbol" msgid "Logical Or" -msgstr "" +msgstr "Röklegt EÐA" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:173 msgctxt "Symbol" msgid "Logical And" -msgstr "" +msgstr "Röklegt OG" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:174 @@ -3966,55 +3971,55 @@ msgstr "Seinkun" #: ../share/symbols/symbols.h:175 msgctxt "Symbol" msgid "Loop Limit Begin" -msgstr "" +msgstr "Mörk lykkju byrja" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:176 msgctxt "Symbol" msgid "Loop Limit End" -msgstr "" +msgstr "Mörk lykkju enda" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:177 msgctxt "Symbol" msgid "Logic Symbols" -msgstr "Rökræn tákn" +msgstr "Rökleg tákn" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:178 msgctxt "Symbol" msgid "Xnor Gate" -msgstr "" +msgstr "XNOR hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:179 msgctxt "Symbol" msgid "Xor Gate" -msgstr "" +msgstr "XOR hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:180 msgctxt "Symbol" msgid "Nor Gate" -msgstr "" +msgstr "NOR hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:181 msgctxt "Symbol" msgid "Or Gate" -msgstr "" +msgstr "OR hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:182 msgctxt "Symbol" msgid "Nand Gate" -msgstr "" +msgstr "NAND hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:183 msgctxt "Symbol" msgid "And Gate" -msgstr "" +msgstr "AND hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:184 @@ -4026,19 +4031,19 @@ msgstr "Biðminni" #: ../share/symbols/symbols.h:185 msgctxt "Symbol" msgid "Not Gate" -msgstr "" +msgstr "NOT hlið" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:186 msgctxt "Symbol" msgid "Buffer Small" -msgstr "" +msgstr "Lítið biðminni" #. Symbols: ./LogicSymbols.svg #: ../share/symbols/symbols.h:187 msgctxt "Symbol" msgid "Not Gate Small" -msgstr "" +msgstr "Lítið NOT hlið" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:188 @@ -4056,7 +4061,7 @@ msgstr "Flugvöllur" #: ../share/symbols/symbols.h:191 ../share/symbols/symbols.h:192 msgctxt "Symbol" msgid "Amphitheatre" -msgstr "" +msgstr "Fyrirlestrasalur" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:193 ../share/symbols/symbols.h:194 @@ -4248,7 +4253,7 @@ msgstr "Siglingar" #: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 msgctxt "Symbol" msgid "Sanitary Disposal Station" -msgstr "" +msgstr "Stöð fyrir hreinlætisúrgang" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264 @@ -4314,7 +4319,7 @@ msgstr "Neyðarsími" #: ../share/symbols/symbols.h:285 ../share/symbols/symbols.h:286 msgctxt "Symbol" msgid "Trailhead" -msgstr "" +msgstr "Upphaf slóða" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:287 ../share/symbols/symbols.h:288 @@ -4340,11 +4345,11 @@ msgstr "CD miði 120mmx120mm " #: ../share/templates/templates.h:1 msgid "Simple CD Label template with disc's pattern." -msgstr "" +msgstr "Einfalt sniðmát fyrir CD-miða með útlínum disks." #: ../share/templates/templates.h:1 msgid "CD label 120x120 disc disk" -msgstr "" +msgstr "CD miði 120mmx120mm diskur" #: ../share/templates/templates.h:1 msgid "No Layers" @@ -4352,52 +4357,52 @@ msgstr "Engin lög" #: ../share/templates/templates.h:1 msgid "Empty sheet with no layers" -msgstr "" +msgstr "Autt blað með engum lögum" #: ../share/templates/templates.h:1 msgid "no layers empty" -msgstr "" +msgstr "engin lög auð" #: ../share/templates/templates.h:1 msgid "LaTeX Beamer" -msgstr "" +msgstr "LaTeX Beamer kynning" #: ../share/templates/templates.h:1 msgid "LaTeX beamer template with helping grid." -msgstr "" +msgstr "LaTeX Beamer kynningasniðmát með stoðlínum." #: ../share/templates/templates.h:1 msgid "LaTex LaTeX latex grid beamer" -msgstr "" +msgstr "LaTex LaTeX Beamer hnitamöskvi kynningar" #: ../share/templates/templates.h:1 msgid "Typography Canvas" -msgstr "" +msgstr "Myndflöt fyrir stafaframsetningu" #: ../share/templates/templates.h:1 msgid "Empty typography canvas with helping guidelines." -msgstr "" +msgstr "Auður myndflötur fyrir stafaframsetningu með stoðlínum." #: ../share/templates/templates.h:1 msgid "guidelines typography canvas" -msgstr "" +msgstr "stoðlínur myndflatar fyrir stafaframsetningu" #. 3D box -#: ../src/box3d.cpp:260 ../src/box3d.cpp:1314 +#: ../src/box3d.cpp:250 ../src/box3d.cpp:1304 #: ../src/ui/dialog/inkscape-preferences.cpp:407 msgid "3D Box" msgstr "Þrívíddarkassi" -#: ../src/color-profile.cpp:853 +#: ../src/color-profile.cpp:842 #, c-format msgid "Color profiles directory (%s) is unavailable." msgstr "Mappa fyrir litasnið (%s) er ekki tiltæk." -#: ../src/color-profile.cpp:912 ../src/color-profile.cpp:929 +#: ../src/color-profile.cpp:901 ../src/color-profile.cpp:918 msgid "(invalid UTF-8 string)" msgstr "(ógildur UTF-8-strengur)" -#: ../src/color-profile.cpp:914 +#: ../src/color-profile.cpp:903 msgctxt "Profile name" msgid "None" msgstr "Ekkert" @@ -4410,20 +4415,20 @@ msgstr "Núverandi lag er falið. Birtu það til að teikna á það." msgid "Current layer is locked. Unlock it to be able to draw on it." msgstr "Núverandi lag er læst. Opnaðu það til að teikna á það." -#: ../src/desktop-events.cpp:236 +#: ../src/desktop-events.cpp:242 msgid "Create guide" msgstr "Búa til stoðlínu" -#: ../src/desktop-events.cpp:492 +#: ../src/desktop-events.cpp:498 msgid "Move guide" msgstr "Færa stoðlínu" -#: ../src/desktop-events.cpp:499 ../src/desktop-events.cpp:557 +#: ../src/desktop-events.cpp:505 ../src/desktop-events.cpp:563 #: ../src/ui/dialog/guides.cpp:138 msgid "Delete guide" msgstr "Eyða stoðlínu" -#: ../src/desktop-events.cpp:537 +#: ../src/desktop-events.cpp:543 #, c-format msgid "Guideline: %s" msgstr "Stoðlína: %s" @@ -4436,92 +4441,92 @@ msgstr "Enginn fyrri aðdráttur." msgid "No next zoom." msgstr "Enginn næsti aðdráttur." -#: ../src/display/canvas-axonomgrid.cpp:353 ../src/display/canvas-grid.cpp:693 +#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 msgid "Grid _units:" msgstr "Einin_gar hnitanets:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 msgid "_Origin X:" msgstr "X uppha_f:" -#: ../src/display/canvas-axonomgrid.cpp:355 ../src/display/canvas-grid.cpp:695 +#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 #: ../src/ui/dialog/inkscape-preferences.cpp:746 #: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "X coordinate of grid origin" msgstr "X-hnit upphafspunkts hnitanets" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 msgid "O_rigin Y:" msgstr "Y upp_haf:" -#: ../src/display/canvas-axonomgrid.cpp:358 ../src/display/canvas-grid.cpp:698 +#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 #: ../src/ui/dialog/inkscape-preferences.cpp:747 #: ../src/ui/dialog/inkscape-preferences.cpp:772 msgid "Y coordinate of grid origin" msgstr "Y-hnit upphafspunkts hnitanets" -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:704 +#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 msgid "Spacing _Y:" msgstr "Millibil _Y:" -#: ../src/display/canvas-axonomgrid.cpp:361 +#: ../src/display/canvas-axonomgrid.cpp:369 #: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Base length of z-axis" msgstr "Grunnlengd Z-áss" -#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/display/canvas-axonomgrid.cpp:372 #: ../src/ui/dialog/inkscape-preferences.cpp:778 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Horn X:" -#: ../src/display/canvas-axonomgrid.cpp:364 +#: ../src/display/canvas-axonomgrid.cpp:372 #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "Horn X-áss" -#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/display/canvas-axonomgrid.cpp:374 #: ../src/ui/dialog/inkscape-preferences.cpp:779 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Horn Z:" -#: ../src/display/canvas-axonomgrid.cpp:366 +#: ../src/display/canvas-axonomgrid.cpp:374 #: ../src/ui/dialog/inkscape-preferences.cpp:779 msgid "Angle of z-axis" msgstr "Horn Z-áss" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 msgid "Minor grid line _color:" msgstr "_Litur á aukahnitalínu:" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 #: ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Minor grid line color" msgstr "Litur á aukahnitalínu" -#: ../src/display/canvas-axonomgrid.cpp:370 ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 msgid "Color of the minor grid lines" msgstr "Litur á minni hnitalínum" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 msgid "Ma_jor grid line color:" msgstr "Litur á _aðalásum hnitalínu:" -#: ../src/display/canvas-axonomgrid.cpp:375 ../src/display/canvas-grid.cpp:714 +#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 #: ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Major grid line color" msgstr "Litur á aðalásum hnitalínu" -#: ../src/display/canvas-axonomgrid.cpp:376 ../src/display/canvas-grid.cpp:715 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "Color of the major (highlighted) grid lines" msgstr "Litur á aðal hnitalínum (áherslulínum)" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 msgid "_Major grid line every:" msgstr "Aðal_hnitalínur hverja:" -#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 +#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 msgid "lines" msgstr "línur" @@ -4567,27 +4572,27 @@ msgid "" "to invisible grids." msgstr "" -#: ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-grid.cpp:709 msgid "Spacing _X:" msgstr "Millibil _X:" -#: ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-grid.cpp:709 #: ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "Distance between vertical grid lines" msgstr "Lóðrétt millibil hnitanetslína" -#: ../src/display/canvas-grid.cpp:704 +#: ../src/display/canvas-grid.cpp:712 #: ../src/ui/dialog/inkscape-preferences.cpp:753 msgid "Distance between horizontal grid lines" msgstr "Lárétt millibil hnitanetslína" -#: ../src/display/canvas-grid.cpp:736 +#: ../src/display/canvas-grid.cpp:744 msgid "_Show dots instead of lines" msgstr "_Sýna punkta í stað lína" -#: ../src/display/canvas-grid.cpp:737 +#: ../src/display/canvas-grid.cpp:745 msgid "If set, displays dots at gridpoints instead of gridlines" -msgstr "" +msgstr "Ef þetta er virkjað eru sýndir punktar í stað hnitalína" #. TRANSLATORS: undefined target for snapping #: ../src/display/snap-indicator.cpp:72 ../src/display/snap-indicator.cpp:75 @@ -4613,11 +4618,11 @@ msgstr "stoðlína" #: ../src/display/snap-indicator.cpp:91 msgid "guide intersection" -msgstr "" +msgstr "skurðpunktar stoðlína" #: ../src/display/snap-indicator.cpp:94 msgid "guide origin" -msgstr "" +msgstr "upphafspunktur stoðlínu" #: ../src/display/snap-indicator.cpp:97 msgid "guide (perpendicular)" @@ -4625,15 +4630,15 @@ msgstr "" #: ../src/display/snap-indicator.cpp:100 msgid "grid-guide intersection" -msgstr "" +msgstr "skurðpunktar stoðlína og hnitanets" #: ../src/display/snap-indicator.cpp:103 msgid "cusp node" -msgstr "" +msgstr "frjáls hnútur" #: ../src/display/snap-indicator.cpp:106 msgid "smooth node" -msgstr "" +msgstr "mjúkur hnútur" #: ../src/display/snap-indicator.cpp:109 msgid "path" @@ -4641,7 +4646,7 @@ msgstr "ferill" #: ../src/display/snap-indicator.cpp:112 msgid "path (perpendicular)" -msgstr "" +msgstr "ferill (hornrétt)" #: ../src/display/snap-indicator.cpp:115 msgid "path (tangential)" @@ -4649,11 +4654,11 @@ msgstr "" #: ../src/display/snap-indicator.cpp:118 msgid "path intersection" -msgstr "" +msgstr "skurðpunktar ferla" #: ../src/display/snap-indicator.cpp:121 msgid "guide-path intersection" -msgstr "" +msgstr "skurðpunktar stoðlína-ferils" #: ../src/display/snap-indicator.cpp:124 msgid "clip-path" @@ -4717,7 +4722,7 @@ msgstr "grunnlína texta" #: ../src/display/snap-indicator.cpp:170 msgid "constrained angle" -msgstr "" +msgstr "þrepaskipt horn" #: ../src/display/snap-indicator.cpp:173 msgid "constraint" @@ -4737,19 +4742,19 @@ msgstr "Miðpunktur á hlið umgjarðar" #: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 msgid "Smooth node" -msgstr "" +msgstr "Mjúkur hnútur" #: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 msgid "Cusp node" -msgstr "" +msgstr "Frjáls hnútur" #: ../src/display/snap-indicator.cpp:202 msgid "Line midpoint" -msgstr "" +msgstr "miðpunkt línu" #: ../src/display/snap-indicator.cpp:205 msgid "Object midpoint" -msgstr "" +msgstr "miðpunkt hlutar" #: ../src/display/snap-indicator.cpp:208 msgid "Object rotation center" @@ -4761,7 +4766,7 @@ msgstr "Haldfang" #: ../src/display/snap-indicator.cpp:215 msgid "Path intersection" -msgstr "" +msgstr "skurðpunktar ferla" #: ../src/display/snap-indicator.cpp:218 msgid "Guide" @@ -4769,7 +4774,7 @@ msgstr "Stoðlína" #: ../src/display/snap-indicator.cpp:221 msgid "Guide origin" -msgstr "" +msgstr "upphafspunktur stoðlínu" #: ../src/display/snap-indicator.cpp:224 msgid "Convex hull corner" @@ -4777,7 +4782,7 @@ msgstr "" #: ../src/display/snap-indicator.cpp:227 msgid "Quadrant point" -msgstr "" +msgstr "fjórðungspunkt" #: ../src/display/snap-indicator.cpp:231 msgid "Corner" @@ -4789,7 +4794,7 @@ msgstr "Textafesting" #: ../src/display/snap-indicator.cpp:237 msgid "Multiple of grid spacing" -msgstr "" +msgstr "Margfeldi af millibilum hnitanets" #: ../src/display/snap-indicator.cpp:268 msgid " to " @@ -4809,7 +4814,7 @@ msgstr "Skjal í minni %d" msgid "Memory document %1" msgstr "Skjal í minni %1" -#: ../src/document.cpp:839 +#: ../src/document.cpp:855 #, c-format msgid "Unnamed document %d" msgstr "Ónefnt skjal %d" @@ -4829,7 +4834,7 @@ msgstr "_Endurgera" #: ../src/extension/dependency.cpp:243 msgid "Dependency:" -msgstr "" +msgstr "Hæði:" #: ../src/extension/dependency.cpp:244 msgid " type: " @@ -4869,12 +4874,12 @@ msgstr "" #: ../src/extension/error-file.cpp:67 msgid "Show dialog on startup" -msgstr "" +msgstr "Birta glugga við ræsingu" #: ../src/extension/execution-env.cpp:144 #, c-format msgid "'%s' working, please wait..." -msgstr "" +msgstr "'%s' í vinnslu, bíddu aðeins..." #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; @@ -4886,7 +4891,7 @@ msgstr "" #: ../src/extension/extension.cpp:281 msgid "the extension is designed for Windows only." -msgstr "" +msgstr "viðbótin er einungis hönnuð fyrir Windows." #: ../src/extension/extension.cpp:286 msgid "an ID was not defined for it." @@ -4911,11 +4916,11 @@ msgstr "" #: ../src/extension/extension.cpp:325 msgid "Extension \"" -msgstr "" +msgstr "Viðbótin \"" #: ../src/extension/extension.cpp:325 msgid "\" failed to load because " -msgstr "" +msgstr "\" hlóðst ekki inn vegna " #: ../src/extension/extension.cpp:674 #, c-format @@ -5053,9 +5058,9 @@ msgstr "Bæta við suði" #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); #: ../src/extension/internal/bitmap/addNoise.cpp:47 -#: ../src/extension/internal/filter/color.h:426 -#: ../src/extension/internal/filter/color.h:1497 -#: ../src/extension/internal/filter/color.h:1585 +#: ../src/extension/internal/filter/color.h:501 +#: ../src/extension/internal/filter/color.h:1572 +#: ../src/extension/internal/filter/color.h:1660 #: ../src/extension/internal/filter/distort.h:69 #: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 #: ../src/ui/dialog/filter-effects-dialog.cpp:2842 @@ -5194,7 +5199,7 @@ msgid "Apply charcoal stylization to selected bitmap(s)" msgstr "" #: ../src/extension/internal/bitmap/colorize.cpp:50 -#: ../src/extension/internal/filter/color.h:317 +#: ../src/extension/internal/filter/color.h:392 msgid "Colorize" msgstr "Litþrykkja" @@ -5203,7 +5208,7 @@ msgid "Colorize selected bitmap(s) with specified color, using given opacity" msgstr "" #: ../src/extension/internal/bitmap/contrast.cpp:40 -#: ../src/extension/internal/filter/color.h:1114 +#: ../src/extension/internal/filter/color.h:1189 msgid "Contrast" msgstr "Birtuskil" @@ -5320,7 +5325,7 @@ msgid "Implode selected bitmap(s)" msgstr "" #: ../src/extension/internal/bitmap/level.cpp:41 -#: ../src/extension/internal/filter/color.h:742 +#: ../src/extension/internal/filter/color.h:817 #: ../src/extension/internal/filter/image.h:56 #: ../src/extension/internal/filter/morphology.h:66 #: ../src/extension/internal/filter/paint.h:345 @@ -5353,7 +5358,7 @@ msgid "Level (with Channel)" msgstr "" #: ../src/extension/internal/bitmap/levelChannel.cpp:54 -#: ../src/extension/internal/filter/color.h:636 +#: ../src/extension/internal/filter/color.h:711 msgid "Channel:" msgstr "Litrás:" @@ -5374,7 +5379,7 @@ msgstr "" #: ../src/extension/internal/bitmap/modulate.cpp:40 msgid "HSB Adjust" -msgstr "" +msgstr "Aðlaga HSB" #: ../src/extension/internal/bitmap/modulate.cpp:42 msgid "Hue:" @@ -5430,7 +5435,7 @@ msgstr "Ógegnsæi" #: ../src/extension/internal/bitmap/opacity.cpp:40 #: ../src/ui/dialog/filter-effects-dialog.cpp:2884 -#: ../src/ui/dialog/objects.cpp:1621 ../src/widgets/dropper-toolbar.cpp:83 +#: ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "Ógegnsæi:" @@ -5469,7 +5474,7 @@ msgstr "" #: ../src/extension/internal/bitmap/sample.cpp:39 msgid "Resample" -msgstr "" +msgstr "Endursafna" #: ../src/extension/internal/bitmap/sample.cpp:48 msgid "" @@ -5501,8 +5506,8 @@ msgid "Sharpen selected bitmap(s)" msgstr "" #: ../src/extension/internal/bitmap/solarize.cpp:39 -#: ../src/extension/internal/filter/color.h:1494 -#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1569 +#: ../src/extension/internal/filter/color.h:1573 msgid "Solarize" msgstr "Ofurlýsa" @@ -5658,13 +5663,13 @@ msgstr "Blaðsíðustærð frálags" #: ../src/extension/internal/cairo-ps-out.cpp:383 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:258 msgid "Use document's page size" -msgstr "" +msgstr "Nota blaðsíðusstærð skjalsins" #: ../src/extension/internal/cairo-ps-out.cpp:342 #: ../src/extension/internal/cairo-ps-out.cpp:384 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:259 msgid "Use exported object's size" -msgstr "" +msgstr "Nota stærð útflutta hlutarins" #: ../src/extension/internal/cairo-ps-out.cpp:344 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:261 @@ -5675,7 +5680,7 @@ msgstr "Blæðing/Spássía (mm):" #: ../src/extension/internal/cairo-ps-out.cpp:387 #: ../src/extension/internal/cairo-renderer-pdf-out.cpp:262 msgid "Limit export to the object with ID:" -msgstr "" +msgstr "Takmarka útflutning við hluti með auðkenni:" #: ../src/extension/internal/cairo-ps-out.cpp:349 #: ../share/extensions/ps_input.inx.h:2 @@ -5787,85 +5792,85 @@ msgstr "Corel DRAW Presentation Exchange skrár (*.cmx)" msgid "Open presentation exchange files saved in Corel DRAW" msgstr "Opna kynningaskiptiskrár vistaðar með Corel DRAW" -#: ../src/extension/internal/emf-inout.cpp:3553 +#: ../src/extension/internal/emf-inout.cpp:3562 msgid "EMF Input" msgstr "EMF ílag" -#: ../src/extension/internal/emf-inout.cpp:3558 +#: ../src/extension/internal/emf-inout.cpp:3567 msgid "Enhanced Metafiles (*.emf)" msgstr "Enhanced Metafiles (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3559 +#: ../src/extension/internal/emf-inout.cpp:3568 msgid "Enhanced Metafiles" msgstr "Enhanced Metafiles" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3576 msgid "EMF Output" msgstr "EMF frálag" -#: ../src/extension/internal/emf-inout.cpp:3569 -#: ../src/extension/internal/wmf-inout.cpp:3144 +#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/wmf-inout.cpp:3152 msgid "Convert texts to paths" msgstr "Umbreyta textum í ferla" -#: ../src/extension/internal/emf-inout.cpp:3570 -#: ../src/extension/internal/wmf-inout.cpp:3145 +#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/wmf-inout.cpp:3153 msgid "Map Unicode to Symbol font" -msgstr "" +msgstr "Varpa Unicode yfir á Symbol letur" -#: ../src/extension/internal/emf-inout.cpp:3571 -#: ../src/extension/internal/wmf-inout.cpp:3146 +#: ../src/extension/internal/emf-inout.cpp:3580 +#: ../src/extension/internal/wmf-inout.cpp:3154 msgid "Map Unicode to Wingdings" -msgstr "" +msgstr "Varpa Unicode yfir á Wingdings" -#: ../src/extension/internal/emf-inout.cpp:3572 -#: ../src/extension/internal/wmf-inout.cpp:3147 +#: ../src/extension/internal/emf-inout.cpp:3581 +#: ../src/extension/internal/wmf-inout.cpp:3155 msgid "Map Unicode to Zapf Dingbats" -msgstr "" +msgstr "Varpa Unicode yfir á Zapf Dingbats" -#: ../src/extension/internal/emf-inout.cpp:3573 -#: ../src/extension/internal/wmf-inout.cpp:3148 +#: ../src/extension/internal/emf-inout.cpp:3582 +#: ../src/extension/internal/wmf-inout.cpp:3156 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" -msgstr "" +msgstr "Nota MS Unicode PUA (0xF020-0xF0FF) fyrir umbreytta stafi" -#: ../src/extension/internal/emf-inout.cpp:3574 -#: ../src/extension/internal/wmf-inout.cpp:3149 +#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/wmf-inout.cpp:3157 msgid "Compensate for PPT font bug" -msgstr "" +msgstr "Bæta upp fyrir PPT leturgalla" -#: ../src/extension/internal/emf-inout.cpp:3575 -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/wmf-inout.cpp:3158 msgid "Convert dashed/dotted lines to single lines" -msgstr "" +msgstr "Umbreyta strikuðum/punktalínum í einfaldar línur" -#: ../src/extension/internal/emf-inout.cpp:3576 -#: ../src/extension/internal/wmf-inout.cpp:3151 +#: ../src/extension/internal/emf-inout.cpp:3585 +#: ../src/extension/internal/wmf-inout.cpp:3159 msgid "Convert gradients to colored polygon series" -msgstr "" +msgstr "Umbreyta litstiglum í runu litaðra marghyrninga" -#: ../src/extension/internal/emf-inout.cpp:3577 +#: ../src/extension/internal/emf-inout.cpp:3586 msgid "Use native rectangular linear gradients" -msgstr "" +msgstr "Nota innbyggða rétthyrnda línulega litstigla" -#: ../src/extension/internal/emf-inout.cpp:3578 +#: ../src/extension/internal/emf-inout.cpp:3587 msgid "Map all fill patterns to standard EMF hatches" -msgstr "" +msgstr "Varpa öllum fyllimynstrum yfir í staðlaðar EMF strikaskyggingar" -#: ../src/extension/internal/emf-inout.cpp:3579 +#: ../src/extension/internal/emf-inout.cpp:3588 msgid "Ignore image rotations" msgstr "Hunsa snúning mynda" -#: ../src/extension/internal/emf-inout.cpp:3583 +#: ../src/extension/internal/emf-inout.cpp:3592 msgid "Enhanced Metafile (*.emf)" -msgstr "" +msgstr "Enhanced Metafile (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3584 +#: ../src/extension/internal/emf-inout.cpp:3593 msgid "Enhanced Metafile" -msgstr "" +msgstr "EMF - Enhanced Metafile" #: ../src/extension/internal/filter/bevels.h:53 msgid "Diffuse Light" -msgstr "" +msgstr "Dreift ljós" #: ../src/extension/internal/filter/bevels.h:55 #: ../src/extension/internal/filter/bevels.h:135 @@ -5891,7 +5896,7 @@ msgstr "Áttarhorn (°)" #: ../src/extension/internal/filter/bevels.h:139 #: ../src/extension/internal/filter/bevels.h:223 msgid "Lighting color" -msgstr "" +msgstr "Litur lýsingar" #: ../src/extension/internal/filter/bevels.h:62 #: ../src/extension/internal/filter/bevels.h:143 @@ -5903,23 +5908,24 @@ msgstr "" #: ../src/extension/internal/filter/blurs.h:350 #: ../src/extension/internal/filter/bumps.h:141 #: ../src/extension/internal/filter/bumps.h:361 -#: ../src/extension/internal/filter/color.h:81 -#: ../src/extension/internal/filter/color.h:170 -#: ../src/extension/internal/filter/color.h:261 -#: ../src/extension/internal/filter/color.h:346 -#: ../src/extension/internal/filter/color.h:436 -#: ../src/extension/internal/filter/color.h:531 -#: ../src/extension/internal/filter/color.h:653 -#: ../src/extension/internal/filter/color.h:750 -#: ../src/extension/internal/filter/color.h:829 -#: ../src/extension/internal/filter/color.h:920 -#: ../src/extension/internal/filter/color.h:1048 -#: ../src/extension/internal/filter/color.h:1118 -#: ../src/extension/internal/filter/color.h:1211 -#: ../src/extension/internal/filter/color.h:1323 -#: ../src/extension/internal/filter/color.h:1428 -#: ../src/extension/internal/filter/color.h:1504 -#: ../src/extension/internal/filter/color.h:1615 +#: ../src/extension/internal/filter/color.h:82 +#: ../src/extension/internal/filter/color.h:171 +#: ../src/extension/internal/filter/color.h:282 +#: ../src/extension/internal/filter/color.h:336 +#: ../src/extension/internal/filter/color.h:421 +#: ../src/extension/internal/filter/color.h:511 +#: ../src/extension/internal/filter/color.h:606 +#: ../src/extension/internal/filter/color.h:728 +#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:904 +#: ../src/extension/internal/filter/color.h:995 +#: ../src/extension/internal/filter/color.h:1123 +#: ../src/extension/internal/filter/color.h:1193 +#: ../src/extension/internal/filter/color.h:1286 +#: ../src/extension/internal/filter/color.h:1398 +#: ../src/extension/internal/filter/color.h:1503 +#: ../src/extension/internal/filter/color.h:1579 +#: ../src/extension/internal/filter/color.h:1690 #: ../src/extension/internal/filter/distort.h:95 #: ../src/extension/internal/filter/distort.h:204 #: ../src/extension/internal/filter/filter-file.cpp:151 @@ -5959,7 +5965,7 @@ msgstr "Mattur búðingur" #: ../src/extension/internal/filter/bevels.h:136 #: ../src/extension/internal/filter/bevels.h:220 #: ../src/extension/internal/filter/blurs.h:187 -#: ../src/extension/internal/filter/color.h:74 +#: ../src/extension/internal/filter/color.h:75 msgid "Brightness" msgstr "Birtustig" @@ -5969,25 +5975,25 @@ msgstr "" #: ../src/extension/internal/filter/bevels.h:217 msgid "Specular Light" -msgstr "" +msgstr "Endurvarpsljós" #: ../src/extension/internal/filter/blurs.h:56 #: ../src/extension/internal/filter/blurs.h:189 #: ../src/extension/internal/filter/blurs.h:329 #: ../src/extension/internal/filter/distort.h:73 msgid "Horizontal blur" -msgstr "" +msgstr "Lárétt móðun" #: ../src/extension/internal/filter/blurs.h:57 #: ../src/extension/internal/filter/blurs.h:190 #: ../src/extension/internal/filter/blurs.h:330 #: ../src/extension/internal/filter/distort.h:74 msgid "Vertical blur" -msgstr "" +msgstr "Lóðrétt móðun" #: ../src/extension/internal/filter/blurs.h:58 msgid "Blur content only" -msgstr "" +msgstr "Einungis móða innihald" #: ../src/extension/internal/filter/blurs.h:66 msgid "Simple vertical and horizontal blur effect" @@ -5995,7 +6001,7 @@ msgstr "" #: ../src/extension/internal/filter/blurs.h:125 msgid "Clean Edges" -msgstr "" +msgstr "Hreinar brúnir" #: ../src/extension/internal/filter/blurs.h:127 #: ../src/extension/internal/filter/blurs.h:262 @@ -6013,7 +6019,7 @@ msgstr "" #: ../src/extension/internal/filter/blurs.h:185 msgid "Cross Blur" -msgstr "" +msgstr "Krossmóðun" #: ../src/extension/internal/filter/blurs.h:188 msgid "Fading" @@ -6029,11 +6035,11 @@ msgstr "Blanda:" #: ../src/extension/internal/filter/bumps.h:131 #: ../src/extension/internal/filter/bumps.h:337 #: ../src/extension/internal/filter/bumps.h:344 -#: ../src/extension/internal/filter/color.h:329 -#: ../src/extension/internal/filter/color.h:336 -#: ../src/extension/internal/filter/color.h:1423 -#: ../src/extension/internal/filter/color.h:1596 -#: ../src/extension/internal/filter/color.h:1602 +#: ../src/extension/internal/filter/color.h:404 +#: ../src/extension/internal/filter/color.h:411 +#: ../src/extension/internal/filter/color.h:1498 +#: ../src/extension/internal/filter/color.h:1671 +#: ../src/extension/internal/filter/color.h:1677 #: ../src/extension/internal/filter/paint.h:705 #: ../src/extension/internal/filter/transparency.h:63 #: ../src/filter-enums.cpp:55 @@ -6045,12 +6051,12 @@ msgstr "Dekkja" #: ../src/extension/internal/filter/bumps.h:132 #: ../src/extension/internal/filter/bumps.h:335 #: ../src/extension/internal/filter/bumps.h:342 -#: ../src/extension/internal/filter/color.h:327 -#: ../src/extension/internal/filter/color.h:332 -#: ../src/extension/internal/filter/color.h:647 -#: ../src/extension/internal/filter/color.h:1415 -#: ../src/extension/internal/filter/color.h:1420 -#: ../src/extension/internal/filter/color.h:1594 +#: ../src/extension/internal/filter/color.h:402 +#: ../src/extension/internal/filter/color.h:407 +#: ../src/extension/internal/filter/color.h:722 +#: ../src/extension/internal/filter/color.h:1490 +#: ../src/extension/internal/filter/color.h:1495 +#: ../src/extension/internal/filter/color.h:1669 #: ../src/extension/internal/filter/paint.h:703 #: ../src/extension/internal/filter/transparency.h:62 #: ../src/filter-enums.cpp:54 ../src/ui/dialog/input.cpp:382 @@ -6062,13 +6068,13 @@ msgstr "Skjár" #: ../src/extension/internal/filter/bumps.h:133 #: ../src/extension/internal/filter/bumps.h:338 #: ../src/extension/internal/filter/bumps.h:345 -#: ../src/extension/internal/filter/color.h:325 -#: ../src/extension/internal/filter/color.h:333 -#: ../src/extension/internal/filter/color.h:645 -#: ../src/extension/internal/filter/color.h:1414 -#: ../src/extension/internal/filter/color.h:1421 -#: ../src/extension/internal/filter/color.h:1595 -#: ../src/extension/internal/filter/color.h:1601 +#: ../src/extension/internal/filter/color.h:400 +#: ../src/extension/internal/filter/color.h:408 +#: ../src/extension/internal/filter/color.h:720 +#: ../src/extension/internal/filter/color.h:1489 +#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1670 +#: ../src/extension/internal/filter/color.h:1676 #: ../src/extension/internal/filter/paint.h:701 #: ../src/extension/internal/filter/transparency.h:60 #: ../src/filter-enums.cpp:53 @@ -6080,10 +6086,10 @@ msgstr "Margfalda" #: ../src/extension/internal/filter/bumps.h:134 #: ../src/extension/internal/filter/bumps.h:339 #: ../src/extension/internal/filter/bumps.h:346 -#: ../src/extension/internal/filter/color.h:328 -#: ../src/extension/internal/filter/color.h:335 -#: ../src/extension/internal/filter/color.h:1422 -#: ../src/extension/internal/filter/color.h:1593 +#: ../src/extension/internal/filter/color.h:403 +#: ../src/extension/internal/filter/color.h:410 +#: ../src/extension/internal/filter/color.h:1497 +#: ../src/extension/internal/filter/color.h:1668 #: ../src/extension/internal/filter/paint.h:704 #: ../src/extension/internal/filter/transparency.h:64 #: ../src/filter-enums.cpp:56 @@ -6092,7 +6098,7 @@ msgstr "Lýsa" #: ../src/extension/internal/filter/blurs.h:204 msgid "Combine vertical and horizontal blur" -msgstr "" +msgstr "Sameina lóðrétta og lárétta móðun" #: ../src/extension/internal/filter/blurs.h:260 msgid "Feather" @@ -6104,7 +6110,7 @@ msgstr "" #: ../src/extension/internal/filter/blurs.h:325 msgid "Out of Focus" -msgstr "" +msgstr "Úr fókus" #: ../src/extension/internal/filter/blurs.h:331 #: ../src/extension/internal/filter/distort.h:75 @@ -6128,28 +6134,28 @@ msgid "Erosion" msgstr "Veðrun" #: ../src/extension/internal/filter/blurs.h:336 -#: ../src/extension/internal/filter/color.h:1205 -#: ../src/extension/internal/filter/color.h:1317 -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/extension/internal/filter/color.h:1280 +#: ../src/extension/internal/filter/color.h:1392 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "Background color" msgstr "Bakgrunnslitur" #: ../src/extension/internal/filter/blurs.h:337 #: ../src/extension/internal/filter/bumps.h:129 msgid "Blend type:" -msgstr "" +msgstr "Tegund blöndunar:" #: ../src/extension/internal/filter/blurs.h:338 #: ../src/extension/internal/filter/bumps.h:130 #: ../src/extension/internal/filter/bumps.h:336 #: ../src/extension/internal/filter/bumps.h:343 -#: ../src/extension/internal/filter/color.h:326 -#: ../src/extension/internal/filter/color.h:334 -#: ../src/extension/internal/filter/color.h:646 -#: ../src/extension/internal/filter/color.h:1413 -#: ../src/extension/internal/filter/color.h:1419 -#: ../src/extension/internal/filter/color.h:1586 -#: ../src/extension/internal/filter/color.h:1600 +#: ../src/extension/internal/filter/color.h:401 +#: ../src/extension/internal/filter/color.h:409 +#: ../src/extension/internal/filter/color.h:721 +#: ../src/extension/internal/filter/color.h:1488 +#: ../src/extension/internal/filter/color.h:1494 +#: ../src/extension/internal/filter/color.h:1661 +#: ../src/extension/internal/filter/color.h:1675 #: ../src/extension/internal/filter/distort.h:78 #: ../src/extension/internal/filter/paint.h:702 #: ../src/extension/internal/filter/textures.h:77 @@ -6160,7 +6166,7 @@ msgstr "Venjulegt" #: ../src/extension/internal/filter/blurs.h:344 msgid "Blend to background" -msgstr "" +msgstr "Blanda við bakgrunn" #: ../src/extension/internal/filter/blurs.h:354 msgid "Blur eroded by white or transparency" @@ -6168,30 +6174,30 @@ msgstr "" #: ../src/extension/internal/filter/bumps.h:80 msgid "Bump" -msgstr "" +msgstr "Ójöfnur" #: ../src/extension/internal/filter/bumps.h:84 #: ../src/extension/internal/filter/bumps.h:313 msgid "Image simplification" -msgstr "" +msgstr "Einföldun myndar" #: ../src/extension/internal/filter/bumps.h:85 #: ../src/extension/internal/filter/bumps.h:314 msgid "Bump simplification" -msgstr "" +msgstr "Einföldun ójafna" #: ../src/extension/internal/filter/bumps.h:87 #: ../src/extension/internal/filter/bumps.h:316 msgid "Bump source" -msgstr "" +msgstr "Uppruni ójafna" #: ../src/extension/internal/filter/bumps.h:88 #: ../src/extension/internal/filter/bumps.h:317 -#: ../src/extension/internal/filter/color.h:157 -#: ../src/extension/internal/filter/color.h:637 -#: ../src/extension/internal/filter/color.h:821 +#: ../src/extension/internal/filter/color.h:158 +#: ../src/extension/internal/filter/color.h:712 +#: ../src/extension/internal/filter/color.h:896 #: ../src/extension/internal/filter/transparency.h:132 -#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:193 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:183 #: ../src/widgets/sp-color-icc-selector.cpp:330 #: ../src/widgets/sp-color-scales.cpp:415 #: ../src/widgets/sp-color-scales.cpp:416 @@ -6200,11 +6206,11 @@ msgstr "Rautt" #: ../src/extension/internal/filter/bumps.h:89 #: ../src/extension/internal/filter/bumps.h:318 -#: ../src/extension/internal/filter/color.h:158 -#: ../src/extension/internal/filter/color.h:638 -#: ../src/extension/internal/filter/color.h:822 +#: ../src/extension/internal/filter/color.h:159 +#: ../src/extension/internal/filter/color.h:713 +#: ../src/extension/internal/filter/color.h:897 #: ../src/extension/internal/filter/transparency.h:133 -#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:194 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:184 #: ../src/widgets/sp-color-icc-selector.cpp:331 #: ../src/widgets/sp-color-scales.cpp:418 #: ../src/widgets/sp-color-scales.cpp:419 @@ -6213,11 +6219,11 @@ msgstr "Grænt" #: ../src/extension/internal/filter/bumps.h:90 #: ../src/extension/internal/filter/bumps.h:319 -#: ../src/extension/internal/filter/color.h:159 -#: ../src/extension/internal/filter/color.h:639 -#: ../src/extension/internal/filter/color.h:823 +#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:714 +#: ../src/extension/internal/filter/color.h:898 #: ../src/extension/internal/filter/transparency.h:134 -#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:195 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:185 #: ../src/widgets/sp-color-icc-selector.cpp:332 #: ../src/widgets/sp-color-scales.cpp:421 #: ../src/widgets/sp-color-scales.cpp:422 @@ -6226,11 +6232,11 @@ msgstr "Blátt" #: ../src/extension/internal/filter/bumps.h:91 msgid "Bump from background" -msgstr "" +msgstr "Ójöfnur frá bakgrunni" #: ../src/extension/internal/filter/bumps.h:94 msgid "Lighting type:" -msgstr "" +msgstr "Tegund lýsingar:" #: ../src/extension/internal/filter/bumps.h:95 msgid "Specular" @@ -6243,26 +6249,26 @@ msgstr "Ljósdreifing" #: ../src/extension/internal/filter/bumps.h:98 #: ../src/extension/internal/filter/bumps.h:329 #: ../src/libgdl/gdl-dock-placeholder.c:175 ../src/libgdl/gdl-dock.c:199 -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 #: ../share/extensions/interp_att_g.inx.h:11 msgid "Height" msgstr "Hæð" #: ../src/extension/internal/filter/bumps.h:99 #: ../src/extension/internal/filter/bumps.h:330 -#: ../src/extension/internal/filter/color.h:76 -#: ../src/extension/internal/filter/color.h:824 -#: ../src/extension/internal/filter/color.h:1113 +#: ../src/extension/internal/filter/color.h:77 +#: ../src/extension/internal/filter/color.h:899 +#: ../src/extension/internal/filter/color.h:1188 #: ../src/extension/internal/filter/paint.h:86 #: ../src/extension/internal/filter/paint.h:592 #: ../src/extension/internal/filter/paint.h:707 -#: ../src/ui/tools/flood-tool.cpp:198 +#: ../src/ui/tools/flood-tool.cpp:188 #: ../src/widgets/sp-color-icc-selector.cpp:341 #: ../src/widgets/sp-color-scales.cpp:447 #: ../src/widgets/sp-color-scales.cpp:448 ../src/widgets/tweak-toolbar.cpp:318 #: ../share/extensions/color_randomize.inx.h:5 msgid "Lightness" -msgstr "Ljósleiki" +msgstr "Ljósleiki (L)" #: ../src/extension/internal/filter/bumps.h:100 #: ../src/extension/internal/filter/bumps.h:331 @@ -6343,7 +6349,7 @@ msgstr "Z-mark" #: ../src/extension/internal/filter/bumps.h:123 msgid "Specular exponent" -msgstr "" +msgstr "Veldisvísir endurkasts" #: ../src/extension/internal/filter/bumps.h:124 msgid "Cone angle" @@ -6351,19 +6357,19 @@ msgstr "Horn keilu" #: ../src/extension/internal/filter/bumps.h:127 msgid "Image color" -msgstr "" +msgstr "Litur myndar" #: ../src/extension/internal/filter/bumps.h:128 msgid "Color bump" -msgstr "" +msgstr "Litójafna" #: ../src/extension/internal/filter/bumps.h:145 msgid "All purposes bump filter" -msgstr "" +msgstr "Allrahanda ójöfnusía" #: ../src/extension/internal/filter/bumps.h:309 msgid "Wax Bump" -msgstr "" +msgstr "Vaxkennd ójafna" #: ../src/extension/internal/filter/bumps.h:320 msgid "Background:" @@ -6371,7 +6377,7 @@ msgstr "Bakgrunnur:" #: ../src/extension/internal/filter/bumps.h:322 #: ../src/extension/internal/filter/transparency.h:57 -#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:518 +#: ../src/filter-enums.cpp:30 ../src/sp-image.cpp:509 msgid "Image" msgstr "Mynd" @@ -6384,25 +6390,25 @@ msgid "Background opacity" msgstr "Ógegnsæi bakgrunns" #: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 +#: ../src/extension/internal/filter/color.h:1115 msgid "Lighting" msgstr "Lýsing" #: ../src/extension/internal/filter/bumps.h:334 msgid "Lighting blend:" -msgstr "" +msgstr "Blöndun lýsingar:" #: ../src/extension/internal/filter/bumps.h:341 msgid "Highlight blend:" -msgstr "" +msgstr "Blöndun hátóna:" #: ../src/extension/internal/filter/bumps.h:350 msgid "Bump color" -msgstr "" +msgstr "Litur ójöfnu" #: ../src/extension/internal/filter/bumps.h:351 msgid "Revert bump" -msgstr "" +msgstr "Afturkalla ójöfnu" #: ../src/extension/internal/filter/bumps.h:352 msgid "Transparency type:" @@ -6425,17 +6431,17 @@ msgstr "Inn" msgid "Turns an image to jelly" msgstr "Breytir mynd í búðing" -#: ../src/extension/internal/filter/color.h:72 +#: ../src/extension/internal/filter/color.h:73 msgid "Brilliance" msgstr "Gljái" -#: ../src/extension/internal/filter/color.h:75 -#: ../src/extension/internal/filter/color.h:1417 +#: ../src/extension/internal/filter/color.h:76 +#: ../src/extension/internal/filter/color.h:1492 msgid "Over-saturation" -msgstr "" +msgstr "Yfir-litmettun" -#: ../src/extension/internal/filter/color.h:77 -#: ../src/extension/internal/filter/color.h:161 +#: ../src/extension/internal/filter/color.h:78 +#: ../src/extension/internal/filter/color.h:162 #: ../src/extension/internal/filter/overlays.h:70 #: ../src/extension/internal/filter/paint.h:85 #: ../src/extension/internal/filter/paint.h:502 @@ -6444,170 +6450,214 @@ msgstr "" msgid "Inverted" msgstr "Viðsnúið" -#: ../src/extension/internal/filter/color.h:85 +#: ../src/extension/internal/filter/color.h:86 msgid "Brightness filter" -msgstr "" +msgstr "Birtustigssía" -#: ../src/extension/internal/filter/color.h:152 +#: ../src/extension/internal/filter/color.h:153 msgid "Channel Painting" -msgstr "" +msgstr "Málun litrása" -#: ../src/extension/internal/filter/color.h:156 -#: ../src/extension/internal/filter/color.h:257 +#: ../src/extension/internal/filter/color.h:157 +#: ../src/extension/internal/filter/color.h:332 #: ../src/extension/internal/filter/paint.h:87 ../src/filter-enums.cpp:66 #: ../src/ui/dialog/inkscape-preferences.cpp:952 -#: ../src/ui/tools/flood-tool.cpp:197 +#: ../src/ui/tools/flood-tool.cpp:187 #: ../src/widgets/sp-color-icc-selector.cpp:337 #: ../src/widgets/sp-color-icc-selector.cpp:342 #: ../src/widgets/sp-color-scales.cpp:444 #: ../src/widgets/sp-color-scales.cpp:445 ../src/widgets/tweak-toolbar.cpp:302 #: ../share/extensions/color_randomize.inx.h:4 msgid "Saturation" -msgstr "Litmettun" +msgstr "Litmettun (S)" -#: ../src/extension/internal/filter/color.h:160 +#: ../src/extension/internal/filter/color.h:161 #: ../src/extension/internal/filter/transparency.h:135 -#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:199 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:189 msgid "Alpha" msgstr "Alfa gegnsæi" -#: ../src/extension/internal/filter/color.h:174 +#: ../src/extension/internal/filter/color.h:175 msgid "Replace RGB by any color" -msgstr "" +msgstr "Skipta út RGB fyrir einhvern lit" #: ../src/extension/internal/filter/color.h:254 +msgid "Color Blindness" +msgstr "Litblinduhermir" + +#: ../src/extension/internal/filter/color.h:258 +msgid "Blindness type:" +msgstr "Tegund litblindu:" + +#: ../src/extension/internal/filter/color.h:259 +msgid "Rod monochromacy (atypical achromatopsia)" +msgstr "Einlita stafir (atypical achromatopsia)" + +#: ../src/extension/internal/filter/color.h:260 +msgid "Cone monochromacy (typical achromatopsia)" +msgstr "Einlita keilur (atypical achromatopsia)" + +#: ../src/extension/internal/filter/color.h:261 +msgid "Geen weak (deuteranomaly)" +msgstr "Græn hálfgerð (deuteranomaly)" + +#: ../src/extension/internal/filter/color.h:262 +msgid "Green blind (deuteranopia)" +msgstr "Græn blinda (deuteranopia)" + +#: ../src/extension/internal/filter/color.h:263 +msgid "Red weak (protanomaly)" +msgstr "Rauð hálfgerð (protanomaly)" + +#: ../src/extension/internal/filter/color.h:264 +msgid "Red blind (protanopia)" +msgstr "Rauð blinda (protanopia)" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Blue weak (tritanomaly)" +msgstr "Blá hálfgerð (tritanomaly)" + +#: ../src/extension/internal/filter/color.h:266 +msgid "Blue blind (tritanopia)" +msgstr "Blá blinda (tritanopia)" + +#: ../src/extension/internal/filter/color.h:286 +msgid "Simulate color blindness" +msgstr "Líkja eftir litblindu" + +#: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" -msgstr "" +msgstr "Hliðrun lita" -#: ../src/extension/internal/filter/color.h:256 +#: ../src/extension/internal/filter/color.h:331 msgid "Shift (°)" msgstr "Hnikun (°)" -#: ../src/extension/internal/filter/color.h:265 +#: ../src/extension/internal/filter/color.h:340 msgid "Rotate and desaturate hue" -msgstr "" +msgstr "Snúa litblæ og afmetta" -#: ../src/extension/internal/filter/color.h:321 +#: ../src/extension/internal/filter/color.h:396 msgid "Harsh light" -msgstr "" +msgstr "Hart ljós" -#: ../src/extension/internal/filter/color.h:322 +#: ../src/extension/internal/filter/color.h:397 msgid "Normal light" -msgstr "" +msgstr "Venjulegt ljós" -#: ../src/extension/internal/filter/color.h:323 +#: ../src/extension/internal/filter/color.h:398 msgid "Duotone" -msgstr "" +msgstr "Tvítóna (duo)" -#: ../src/extension/internal/filter/color.h:324 -#: ../src/extension/internal/filter/color.h:1412 +#: ../src/extension/internal/filter/color.h:399 +#: ../src/extension/internal/filter/color.h:1487 msgid "Blend 1:" msgstr "Blöndun 1:" -#: ../src/extension/internal/filter/color.h:331 -#: ../src/extension/internal/filter/color.h:1418 +#: ../src/extension/internal/filter/color.h:406 +#: ../src/extension/internal/filter/color.h:1493 msgid "Blend 2:" msgstr "Blöndun 2:" -#: ../src/extension/internal/filter/color.h:350 +#: ../src/extension/internal/filter/color.h:425 msgid "Blend image or object with a flood color" msgstr "" -#: ../src/extension/internal/filter/color.h:424 ../src/filter-enums.cpp:23 +#: ../src/extension/internal/filter/color.h:499 ../src/filter-enums.cpp:23 msgid "Component Transfer" msgstr "" -#: ../src/extension/internal/filter/color.h:427 ../src/filter-enums.cpp:110 +#: ../src/extension/internal/filter/color.h:502 ../src/filter-enums.cpp:110 msgid "Identity" msgstr "Auðkenni" -#: ../src/extension/internal/filter/color.h:428 +#: ../src/extension/internal/filter/color.h:503 #: ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 #: ../src/ui/dialog/filter-effects-dialog.cpp:1050 msgid "Table" msgstr "Tafla" -#: ../src/extension/internal/filter/color.h:429 +#: ../src/extension/internal/filter/color.h:504 #: ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 #: ../src/ui/dialog/filter-effects-dialog.cpp:1053 msgid "Discrete" msgstr "Óáberandi" -#: ../src/extension/internal/filter/color.h:430 ../src/filter-enums.cpp:113 +#: ../src/extension/internal/filter/color.h:505 ../src/filter-enums.cpp:113 #: ../src/live_effects/lpe-interpolate_points.cpp:25 #: ../src/live_effects/lpe-powerstroke.cpp:194 msgid "Linear" msgstr "Línulegt" -#: ../src/extension/internal/filter/color.h:431 ../src/filter-enums.cpp:114 +#: ../src/extension/internal/filter/color.h:506 ../src/filter-enums.cpp:114 msgid "Gamma" msgstr "Litróf (gamma)" -#: ../src/extension/internal/filter/color.h:440 +#: ../src/extension/internal/filter/color.h:515 msgid "Basic component transfer structure" msgstr "" -#: ../src/extension/internal/filter/color.h:509 +#: ../src/extension/internal/filter/color.h:584 msgid "Duochrome" -msgstr "" +msgstr "Tvílitað" -#: ../src/extension/internal/filter/color.h:513 +#: ../src/extension/internal/filter/color.h:588 msgid "Fluorescence level" -msgstr "" +msgstr "Styrkur flúrljómunar" -#: ../src/extension/internal/filter/color.h:514 +#: ../src/extension/internal/filter/color.h:589 msgid "Swap:" msgstr "Víxla:" -#: ../src/extension/internal/filter/color.h:515 +#: ../src/extension/internal/filter/color.h:590 msgid "No swap" msgstr "Ekki víxla" -#: ../src/extension/internal/filter/color.h:516 +#: ../src/extension/internal/filter/color.h:591 msgid "Color and alpha" msgstr "Lit og gegnsæi" -#: ../src/extension/internal/filter/color.h:517 +#: ../src/extension/internal/filter/color.h:592 msgid "Color only" msgstr "Bara lit" -#: ../src/extension/internal/filter/color.h:518 +#: ../src/extension/internal/filter/color.h:593 msgid "Alpha only" msgstr "Bara gegnsæi" -#: ../src/extension/internal/filter/color.h:522 +#: ../src/extension/internal/filter/color.h:597 msgid "Color 1" msgstr "Litur 1" -#: ../src/extension/internal/filter/color.h:525 +#: ../src/extension/internal/filter/color.h:600 msgid "Color 2" msgstr "Litur 2" -#: ../src/extension/internal/filter/color.h:535 +#: ../src/extension/internal/filter/color.h:610 msgid "Convert luminance values to a duochrome palette" -msgstr "" +msgstr "Umbreyta ljómagildum í tveggja lita litaspjald" -#: ../src/extension/internal/filter/color.h:634 +#: ../src/extension/internal/filter/color.h:709 msgid "Extract Channel" msgstr "Ná í litrás" -#: ../src/extension/internal/filter/color.h:640 +#: ../src/extension/internal/filter/color.h:715 #: ../src/widgets/sp-color-icc-selector.cpp:344 #: ../src/widgets/sp-color-icc-selector.cpp:349 #: ../src/widgets/sp-color-scales.cpp:469 #: ../src/widgets/sp-color-scales.cpp:470 msgid "Cyan" -msgstr "Blágrænt (Cyan)" +msgstr "Grænblátt (cyan)" -#: ../src/extension/internal/filter/color.h:641 +#: ../src/extension/internal/filter/color.h:716 #: ../src/widgets/sp-color-icc-selector.cpp:345 #: ../src/widgets/sp-color-icc-selector.cpp:350 #: ../src/widgets/sp-color-scales.cpp:472 #: ../src/widgets/sp-color-scales.cpp:473 msgid "Magenta" -msgstr "Blárautt (Magenta)" +msgstr "Blárautt (magenta)" -#: ../src/extension/internal/filter/color.h:642 +#: ../src/extension/internal/filter/color.h:717 #: ../src/widgets/sp-color-icc-selector.cpp:346 #: ../src/widgets/sp-color-icc-selector.cpp:351 #: ../src/widgets/sp-color-scales.cpp:475 @@ -6615,27 +6665,27 @@ msgstr "Blárautt (Magenta)" msgid "Yellow" msgstr "Gult" -#: ../src/extension/internal/filter/color.h:644 +#: ../src/extension/internal/filter/color.h:719 msgid "Background blend mode:" -msgstr "" +msgstr "Blöndunarhamur bakgrunns:" -#: ../src/extension/internal/filter/color.h:649 +#: ../src/extension/internal/filter/color.h:724 msgid "Channel to alpha" -msgstr "" +msgstr "Litrás í alfa" -#: ../src/extension/internal/filter/color.h:657 +#: ../src/extension/internal/filter/color.h:732 msgid "Extract color channel as a transparent image" -msgstr "" +msgstr "Ná út litrás sem gegnsærri mynd" -#: ../src/extension/internal/filter/color.h:740 +#: ../src/extension/internal/filter/color.h:815 msgid "Fade to Black or White" msgstr "Deyfa yfir í svart eða hvítt" -#: ../src/extension/internal/filter/color.h:743 +#: ../src/extension/internal/filter/color.h:818 msgid "Fade to:" msgstr "Deyfa í:" -#: ../src/extension/internal/filter/color.h:744 +#: ../src/extension/internal/filter/color.h:819 #: ../src/ui/widget/selected-style.cpp:274 #: ../src/widgets/sp-color-icc-selector.cpp:347 #: ../src/widgets/sp-color-scales.cpp:478 @@ -6643,240 +6693,244 @@ msgstr "Deyfa í:" msgid "Black" msgstr "Svart" -#: ../src/extension/internal/filter/color.h:745 +#: ../src/extension/internal/filter/color.h:820 #: ../src/ui/widget/selected-style.cpp:270 msgid "White" msgstr "Hvítt" -#: ../src/extension/internal/filter/color.h:754 +#: ../src/extension/internal/filter/color.h:829 msgid "Fade to black or white" msgstr "Deyfa yfir í svart eða hvítt" -#: ../src/extension/internal/filter/color.h:819 +#: ../src/extension/internal/filter/color.h:894 msgid "Greyscale" msgstr "Grátóna" -#: ../src/extension/internal/filter/color.h:825 +#: ../src/extension/internal/filter/color.h:900 #: ../src/extension/internal/filter/paint.h:83 #: ../src/extension/internal/filter/paint.h:239 msgid "Transparent" msgstr "Gegnsætt" -#: ../src/extension/internal/filter/color.h:833 +#: ../src/extension/internal/filter/color.h:908 msgid "Customize greyscale components" -msgstr "" +msgstr "Sérsníða grátóna einingar" -#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:980 #: ../src/ui/widget/selected-style.cpp:266 msgid "Invert" msgstr "Umhverfa" -#: ../src/extension/internal/filter/color.h:907 +#: ../src/extension/internal/filter/color.h:982 msgid "Invert channels:" -msgstr "" +msgstr "Umsnúa litrásum:" -#: ../src/extension/internal/filter/color.h:908 +#: ../src/extension/internal/filter/color.h:983 msgid "No inversion" -msgstr "" +msgstr "Enginn umsnúningur" -#: ../src/extension/internal/filter/color.h:909 +#: ../src/extension/internal/filter/color.h:984 msgid "Red and blue" -msgstr "" +msgstr "Rautt og blátt" -#: ../src/extension/internal/filter/color.h:910 +#: ../src/extension/internal/filter/color.h:985 msgid "Red and green" -msgstr "" +msgstr "Rautt og grænt" -#: ../src/extension/internal/filter/color.h:911 +#: ../src/extension/internal/filter/color.h:986 msgid "Green and blue" -msgstr "" +msgstr "Grænt og blátt" -#: ../src/extension/internal/filter/color.h:913 +#: ../src/extension/internal/filter/color.h:988 msgid "Light transparency" -msgstr "" +msgstr "Gegnsæi ljóss" -#: ../src/extension/internal/filter/color.h:914 +#: ../src/extension/internal/filter/color.h:989 msgid "Invert hue" msgstr "Umhverfa litblæ" -#: ../src/extension/internal/filter/color.h:915 +#: ../src/extension/internal/filter/color.h:990 msgid "Invert lightness" msgstr "Umsnúa ljósleika" -#: ../src/extension/internal/filter/color.h:916 +#: ../src/extension/internal/filter/color.h:991 msgid "Invert transparency" -msgstr "" +msgstr "Umsnúa gegnsæi" -#: ../src/extension/internal/filter/color.h:924 +#: ../src/extension/internal/filter/color.h:999 msgid "Manage hue, lightness and transparency inversions" -msgstr "" +msgstr "Sýsla með viðsnúning á litblæ, ljósleika og gegnsæi" -#: ../src/extension/internal/filter/color.h:1042 +#: ../src/extension/internal/filter/color.h:1117 msgid "Lights" msgstr "Ljós" -#: ../src/extension/internal/filter/color.h:1043 +#: ../src/extension/internal/filter/color.h:1118 msgid "Shadows" msgstr "Skuggar" -#: ../src/extension/internal/filter/color.h:1044 +#: ../src/extension/internal/filter/color.h:1119 #: ../src/extension/internal/filter/paint.h:356 ../src/filter-enums.cpp:33 #: ../src/live_effects/effect.cpp:110 #: ../src/ui/dialog/filter-effects-dialog.cpp:1047 -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 msgid "Offset" msgstr "Hliðrun" -#: ../src/extension/internal/filter/color.h:1052 +#: ../src/extension/internal/filter/color.h:1127 msgid "Modify lights and shadows separately" -msgstr "" +msgstr "Breyta ljósum og skuggum hvoru fyrir sig" -#: ../src/extension/internal/filter/color.h:1111 +#: ../src/extension/internal/filter/color.h:1186 msgid "Lightness-Contrast" msgstr "Ljósleiki-Birtuskil" -#: ../src/extension/internal/filter/color.h:1122 +#: ../src/extension/internal/filter/color.h:1197 msgid "Modify lightness and contrast separately" msgstr "Breyta ljósleika og birtuskilum hvoru fyrir sig" -#: ../src/extension/internal/filter/color.h:1190 +#: ../src/extension/internal/filter/color.h:1265 msgid "Nudge RGB" -msgstr "" +msgstr "Hnika til RGB" -#: ../src/extension/internal/filter/color.h:1194 +#: ../src/extension/internal/filter/color.h:1269 msgid "Red offset" -msgstr "" - -#: ../src/extension/internal/filter/color.h:1195 -#: ../src/extension/internal/filter/color.h:1198 -#: ../src/extension/internal/filter/color.h:1201 -#: ../src/extension/internal/filter/color.h:1307 -#: ../src/extension/internal/filter/color.h:1310 -#: ../src/extension/internal/filter/color.h:1313 +msgstr "Hliðrun rauðs" + +#: ../src/extension/internal/filter/color.h:1270 +#: ../src/extension/internal/filter/color.h:1273 +#: ../src/extension/internal/filter/color.h:1276 +#: ../src/extension/internal/filter/color.h:1382 +#: ../src/extension/internal/filter/color.h:1385 +#: ../src/extension/internal/filter/color.h:1388 #: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:917 msgid "X" msgstr "X" -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 +#: ../src/extension/internal/filter/color.h:1271 +#: ../src/extension/internal/filter/color.h:1274 +#: ../src/extension/internal/filter/color.h:1277 +#: ../src/extension/internal/filter/color.h:1383 +#: ../src/extension/internal/filter/color.h:1386 +#: ../src/extension/internal/filter/color.h:1389 #: ../src/ui/dialog/input.cpp:1616 msgid "Y" msgstr "Y" -#: ../src/extension/internal/filter/color.h:1197 +#: ../src/extension/internal/filter/color.h:1272 msgid "Green offset" -msgstr "" +msgstr "Hliðrun græns" -#: ../src/extension/internal/filter/color.h:1200 +#: ../src/extension/internal/filter/color.h:1275 msgid "Blue offset" -msgstr "" +msgstr "Hliðrun blás" -#: ../src/extension/internal/filter/color.h:1215 +#: ../src/extension/internal/filter/color.h:1290 msgid "" "Nudge RGB channels separately and blend them to different types of " "backgrounds" msgstr "" +"Hnika til RGB litrásunum, hverri fyrir sig og blanda þeim við mismunandi " +"tegundir bakgrunna" -#: ../src/extension/internal/filter/color.h:1302 +#: ../src/extension/internal/filter/color.h:1377 msgid "Nudge CMY" -msgstr "" +msgstr "Hnika til CMY" -#: ../src/extension/internal/filter/color.h:1306 +#: ../src/extension/internal/filter/color.h:1381 msgid "Cyan offset" -msgstr "" +msgstr "Hliðrun grænblás (cyan)" -#: ../src/extension/internal/filter/color.h:1309 +#: ../src/extension/internal/filter/color.h:1384 msgid "Magenta offset" -msgstr "" +msgstr "Hliðrun blárauðs (magenta)" -#: ../src/extension/internal/filter/color.h:1312 +#: ../src/extension/internal/filter/color.h:1387 msgid "Yellow offset" -msgstr "" +msgstr "Hliðrun guls" -#: ../src/extension/internal/filter/color.h:1327 +#: ../src/extension/internal/filter/color.h:1402 msgid "" "Nudge CMY channels separately and blend them to different types of " "backgrounds" msgstr "" +"Hnika til CMY litrásunum, hverri fyrir sig og blanda þeim við mismunandi " +"tegundir bakgrunna" -#: ../src/extension/internal/filter/color.h:1408 +#: ../src/extension/internal/filter/color.h:1483 msgid "Quadritone fantasy" -msgstr "" +msgstr "Fjórtóna fantasía" -#: ../src/extension/internal/filter/color.h:1410 +#: ../src/extension/internal/filter/color.h:1485 msgid "Hue distribution (°)" -msgstr "" +msgstr "Dreifing litblæs (°)" -#: ../src/extension/internal/filter/color.h:1411 +#: ../src/extension/internal/filter/color.h:1486 #: ../share/extensions/svgcalendar.inx.h:19 msgid "Colors" msgstr "Litir" -#: ../src/extension/internal/filter/color.h:1432 +#: ../src/extension/internal/filter/color.h:1507 msgid "Replace hue by two colors" -msgstr "" +msgstr "Skipta út litblæ fyrir tvo liti" -#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1571 msgid "Hue rotation (°)" -msgstr "" +msgstr "Snúningur litblæs (°)" -#: ../src/extension/internal/filter/color.h:1499 +#: ../src/extension/internal/filter/color.h:1574 msgid "Moonarize" msgstr "Mánalýsa" -#: ../src/extension/internal/filter/color.h:1508 +#: ../src/extension/internal/filter/color.h:1583 msgid "Classic photographic solarization effect" -msgstr "" +msgstr "Klassísk ofurlýsing (sólarisering) ljósmynda" -#: ../src/extension/internal/filter/color.h:1581 +#: ../src/extension/internal/filter/color.h:1656 msgid "Tritone" -msgstr "" +msgstr "Þrítóna" -#: ../src/extension/internal/filter/color.h:1587 +#: ../src/extension/internal/filter/color.h:1662 msgid "Enhance hue" -msgstr "" +msgstr "Bæta litblæ" -#: ../src/extension/internal/filter/color.h:1588 +#: ../src/extension/internal/filter/color.h:1663 msgid "Phosphorescence" -msgstr "" +msgstr "Fosfórljómi" -#: ../src/extension/internal/filter/color.h:1589 +#: ../src/extension/internal/filter/color.h:1664 msgid "Colored nights" -msgstr "" +msgstr "Litaðar nætur" -#: ../src/extension/internal/filter/color.h:1590 +#: ../src/extension/internal/filter/color.h:1665 msgid "Hue to background" -msgstr "" +msgstr "Litblær á bakgrunn" -#: ../src/extension/internal/filter/color.h:1592 +#: ../src/extension/internal/filter/color.h:1667 msgid "Global blend:" -msgstr "" +msgstr "Víðvær blöndun:" -#: ../src/extension/internal/filter/color.h:1598 +#: ../src/extension/internal/filter/color.h:1673 msgid "Glow" -msgstr "Glóð" +msgstr "Bjarmi" -#: ../src/extension/internal/filter/color.h:1599 +#: ../src/extension/internal/filter/color.h:1674 msgid "Glow blend:" -msgstr "" +msgstr "Blöndun bjarma" -#: ../src/extension/internal/filter/color.h:1604 +#: ../src/extension/internal/filter/color.h:1679 msgid "Local light" -msgstr "" +msgstr "Staðbundin lýsing" -#: ../src/extension/internal/filter/color.h:1605 +#: ../src/extension/internal/filter/color.h:1680 msgid "Global light" -msgstr "" +msgstr "Víðvær lýsing" -#: ../src/extension/internal/filter/color.h:1608 +#: ../src/extension/internal/filter/color.h:1683 msgid "Hue distribution (°):" -msgstr "" +msgstr "Dreifing litblæs (°):" -#: ../src/extension/internal/filter/color.h:1619 +#: ../src/extension/internal/filter/color.h:1694 msgid "" "Create a custom tritone palette with additional glow, blend modes and hue " "moving" @@ -7025,7 +7079,7 @@ msgstr "Snúa við litum" #: ../src/extension/internal/filter/image.h:65 msgid "Detect color edges in object" -msgstr "" +msgstr "Finna brúnir lita í hlut" #: ../src/extension/internal/filter/morphology.h:58 msgid "Cross-smooth" @@ -7047,7 +7101,7 @@ msgstr "Opna" #: ../src/extension/internal/filter/morphology.h:65 #: ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 -#: ../src/widgets/rect-toolbar.cpp:318 ../src/widgets/spray-toolbar.cpp:116 +#: ../src/widgets/rect-toolbar.cpp:317 ../src/widgets/spray-toolbar.cpp:116 #: ../src/widgets/tweak-toolbar.cpp:128 #: ../share/extensions/interp_att_g.inx.h:10 msgid "Width" @@ -7064,7 +7118,7 @@ msgstr "Móða innihald" #: ../src/extension/internal/filter/morphology.h:79 msgid "Smooth edges and angles of shapes" -msgstr "" +msgstr "Mýkja jaðra og horn á formum" #: ../src/extension/internal/filter/morphology.h:166 msgid "Outline" @@ -7148,15 +7202,15 @@ msgstr "Ógegnsæi útlínu:" #: ../src/extension/internal/filter/morphology.h:206 msgid "Adds a colorizable outline" -msgstr "" +msgstr "Bætir við litanlegri útlínu" #: ../src/extension/internal/filter/overlays.h:56 msgid "Noise Fill" -msgstr "" +msgstr "Suðfylling" #: ../src/extension/internal/filter/overlays.h:59 #: ../src/extension/internal/filter/paint.h:690 -#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:87 +#: ../src/extension/internal/filter/shadows.h:60 ../src/ui/dialog/find.cpp:88 #: ../src/ui/dialog/tracedialog.cpp:747 #: ../share/extensions/color_HSL_adjust.inx.h:2 #: ../share/extensions/color_custom.inx.h:2 @@ -7355,11 +7409,11 @@ msgstr "Línutegund:" #: ../src/extension/internal/filter/paint.h:587 msgid "Smoothed" -msgstr "" +msgstr "Mýkt" #: ../src/extension/internal/filter/paint.h:588 msgid "Contrasted" -msgstr "" +msgstr "Með auknum birtuskilum" #: ../src/extension/internal/filter/paint.h:591 #: ../src/live_effects/lpe-jointype.cpp:51 @@ -7402,7 +7456,7 @@ msgstr "" #: ../src/extension/internal/filter/paint.h:850 msgid "Poster Paint" -msgstr "" +msgstr "Veggspjaldamálning" #: ../src/extension/internal/filter/paint.h:856 msgid "Transfer type:" @@ -7426,11 +7480,11 @@ msgstr "" #: ../src/extension/internal/filter/paint.h:870 msgid "Pre-saturation" -msgstr "" +msgstr "For-litmettun" #: ../src/extension/internal/filter/paint.h:871 msgid "Post-saturation" -msgstr "" +msgstr "Eftir-litmettun" #: ../src/extension/internal/filter/paint.h:872 msgid "Simulate antialiasing" @@ -7454,7 +7508,7 @@ msgstr "Snjótoppur" #: ../src/extension/internal/filter/protrusions.h:50 msgid "Drift Size" -msgstr "" +msgstr "Stærð snjókorna" #: ../src/extension/internal/filter/protrusions.h:58 msgid "Snow has fallen on object" @@ -7478,7 +7532,7 @@ msgstr "Lóðrétt hliðrun (px)" #: ../src/extension/internal/filter/shadows.h:64 msgid "Shadow type:" -msgstr "Skuggagerð:" +msgstr "Gerð skugga:" #: ../src/extension/internal/filter/shadows.h:67 msgid "Outer cutout" @@ -7490,19 +7544,19 @@ msgstr "" #: ../src/extension/internal/filter/shadows.h:69 msgid "Shadow only" -msgstr "" +msgstr "Eingöngu skuggi" #: ../src/extension/internal/filter/shadows.h:72 msgid "Blur color" -msgstr "" +msgstr "Móðunarlitur" #: ../src/extension/internal/filter/shadows.h:74 msgid "Use object's color" -msgstr "" +msgstr "Nota lit hlutar" #: ../src/extension/internal/filter/shadows.h:84 msgid "Colorizable Drop shadow" -msgstr "" +msgstr "Litanlegur undirskuggi" #: ../src/extension/internal/filter/textures.h:62 msgid "Ink Blot" @@ -7582,15 +7636,15 @@ msgstr "Hamur:" #: ../src/extension/internal/filter/transparency.h:73 msgid "Blend objects with background images or with themselves" -msgstr "" +msgstr "Blanda hlutum við bakgrunnmyndir eða sjálfa sig" #: ../src/extension/internal/filter/transparency.h:130 msgid "Channel Transparency" -msgstr "" +msgstr "Gegnsæi litrásar" #: ../src/extension/internal/filter/transparency.h:144 msgid "Replace RGB with transparency" -msgstr "" +msgstr "Skipta út RGB með gegnsæi" #: ../src/extension/internal/filter/transparency.h:205 msgid "Light Eraser" @@ -7641,7 +7695,7 @@ msgstr "" msgid "Embed" msgstr "Ívefja" -#: ../src/extension/internal/gdkpixbuf-input.cpp:192 ../src/sp-anchor.cpp:119 +#: ../src/extension/internal/gdkpixbuf-input.cpp:192 ../src/sp-anchor.cpp:105 #: ../src/ui/dialog/inkscape-preferences.cpp:1456 msgid "Link" msgstr "Tengill" @@ -7765,9 +7819,9 @@ msgid "Render" msgstr "Myndgera" #: ../src/extension/internal/grid.cpp:223 -#: ../src/ui/dialog/document-properties.cpp:155 +#: ../src/ui/dialog/document-properties.cpp:162 #: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/widgets/toolbox.cpp:1825 +#: ../src/widgets/toolbox.cpp:1827 msgid "Grids" msgstr "Hnitanet" @@ -7819,28 +7873,28 @@ msgstr "OpenDocument teikningarskrá" #. more info: http://www.acrobatusers.com/tech_corners/javascript_corner/tips/2006/page_bounds/ #: ../src/extension/internal/pdfinput/pdf-input.cpp:71 msgid "media box" -msgstr "" +msgstr "media box" #: ../src/extension/internal/pdfinput/pdf-input.cpp:72 msgid "crop box" -msgstr "" +msgstr "crop box" #: ../src/extension/internal/pdfinput/pdf-input.cpp:73 msgid "trim box" -msgstr "" +msgstr "trim box" #: ../src/extension/internal/pdfinput/pdf-input.cpp:74 msgid "bleed box" -msgstr "" +msgstr "bleed box" #: ../src/extension/internal/pdfinput/pdf-input.cpp:75 msgid "art box" -msgstr "" +msgstr "art box" #. Crop settings #: ../src/extension/internal/pdfinput/pdf-input.cpp:112 msgid "Clip to:" -msgstr "" +msgstr "Afmarka við:" #: ../src/extension/internal/pdfinput/pdf-input.cpp:123 msgid "Page settings" @@ -7848,13 +7902,15 @@ msgstr "Stillingar blaðsíðu" #: ../src/extension/internal/pdfinput/pdf-input.cpp:124 msgid "Precision of approximating gradient meshes:" -msgstr "" +msgstr "Nákvæmni við nálgun á litstigulsmöskvum:" #: ../src/extension/internal/pdfinput/pdf-input.cpp:125 msgid "" "Note: setting the precision too high may result in a large SVG file " "and slow performance." msgstr "" +"Athugið: ef nákvæmni er sett of mikil getur af því leitt að SVG skráin " +"verði mjög stór og afköst tölvunnar minnki." #: ../src/extension/internal/pdfinput/pdf-input.cpp:128 msgid "import via Poppler" @@ -7876,7 +7932,7 @@ msgstr "Flytja texta inn sem texta" #: ../src/extension/internal/pdfinput/pdf-input.cpp:146 msgid "Replace PDF fonts by closest-named installed fonts" -msgstr "" +msgstr "Skipta út PDF-letri með því uppsetta letri sem heitir líkasta nafninu" #: ../src/extension/internal/pdfinput/pdf-input.cpp:149 msgid "Embed images" @@ -7916,11 +7972,11 @@ msgstr "PDF ílag" #: ../src/extension/internal/pdfinput/pdf-input.cpp:906 msgid "Adobe PDF (*.pdf)" -msgstr "" +msgstr "Adobe PDF (*.pdf)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:907 msgid "Adobe Portable Document Format" -msgstr "" +msgstr "Adobe Portable Document snið" #: ../src/extension/internal/pdfinput/pdf-input.cpp:914 msgid "AI Input" @@ -7928,7 +7984,7 @@ msgstr "AI ílag" #: ../src/extension/internal/pdfinput/pdf-input.cpp:919 msgid "Adobe Illustrator 9.0 and above (*.ai)" -msgstr "" +msgstr "Adobe Illustrator 9.0 og hærra (*.ai)" #: ../src/extension/internal/pdfinput/pdf-input.cpp:920 msgid "Open files saved in Adobe Illustrator 9.0 and newer versions" @@ -7940,7 +7996,7 @@ msgstr "PovRay frálag" #: ../src/extension/internal/pov-out.cpp:720 msgid "PovRay (*.pov) (paths and shapes only)" -msgstr "" +msgstr "PovRay (*.pov) (einungis ferlar og form)" #: ../src/extension/internal/pov-out.cpp:721 msgid "PovRay Raytracer File" @@ -7956,7 +8012,7 @@ msgstr "Scalable Vector Graphic vigurteikning (*.svg)" #: ../src/extension/internal/svg.cpp:106 msgid "Inkscape native file format and W3C standard" -msgstr "" +msgstr "Innbyggt snið fyrir Inkscape og staðall frá W3C" #: ../src/extension/internal/svg.cpp:114 msgid "SVG Output Inkscape" @@ -7980,7 +8036,7 @@ msgstr "Hreint SVG (*.svg)" #: ../src/extension/internal/svg.cpp:134 msgid "Scalable Vector Graphics format as defined by the W3C" -msgstr "" +msgstr "SVG vigurteikning eins og sniðið er skilgreint af W3C" #: ../src/extension/internal/svgz.cpp:46 msgid "SVGZ Input" @@ -7992,7 +8048,7 @@ msgstr "Þjappað Inkscape SVG (*.svgz)" #: ../src/extension/internal/svgz.cpp:53 msgid "SVG file format compressed with GZip" -msgstr "" +msgstr "SVG skráasnið þjappað með GZip" #: ../src/extension/internal/svgz.cpp:61 ../src/extension/internal/svgz.cpp:75 msgid "SVGZ Output" @@ -8000,7 +8056,7 @@ msgstr "SVGZ frálag" #: ../src/extension/internal/svgz.cpp:67 msgid "Inkscape's native file format compressed with GZip" -msgstr "" +msgstr "Innbyggt snið fyrir Inkscape, þjappað með GZip" #: ../src/extension/internal/svgz.cpp:80 msgid "Compressed plain SVG (*.svgz)" @@ -8008,7 +8064,7 @@ msgstr "Þjappað hreint SVG (*.svgz)" #: ../src/extension/internal/svgz.cpp:81 msgid "Scalable Vector Graphics format compressed with GZip" -msgstr "" +msgstr "SVG vigurteikningasnið þjappað með GZip" #: ../src/extension/internal/vsd-input.cpp:301 msgid "VSD Input" @@ -8020,7 +8076,7 @@ msgstr "Microsoft Visio skýringamynd (*.vsd)" #: ../src/extension/internal/vsd-input.cpp:307 msgid "File format used by Microsoft Visio 6 and later" -msgstr "" +msgstr "Skráasnið notað af Microsoft Visio 6 og síðar" #: ../src/extension/internal/vsd-input.cpp:314 msgid "VDX Input" @@ -8032,7 +8088,7 @@ msgstr "Microsoft Visio XML skýringamynd (*.vdx)" #: ../src/extension/internal/vsd-input.cpp:320 msgid "File format used by Microsoft Visio 2010 and later" -msgstr "" +msgstr "Skráasnið notað af Microsoft Visio 2010 og síðar" #: ../src/extension/internal/vsd-input.cpp:327 msgid "VSDM Input" @@ -8045,7 +8101,7 @@ msgstr "Microsoft Visio 2013 teikning (*.vsdm)" #: ../src/extension/internal/vsd-input.cpp:333 #: ../src/extension/internal/vsd-input.cpp:346 msgid "File format used by Microsoft Visio 2013 and later" -msgstr "" +msgstr "Skráasnið notað af Microsoft Visio 2013 og síðar" #: ../src/extension/internal/vsd-input.cpp:340 msgid "VSDX Input" @@ -8055,33 +8111,33 @@ msgstr "VSDX ílag" msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "Microsoft Visio 2013 teikning (*.vsdx)" -#: ../src/extension/internal/wmf-inout.cpp:3128 +#: ../src/extension/internal/wmf-inout.cpp:3136 msgid "WMF Input" msgstr "WMF ílag" -#: ../src/extension/internal/wmf-inout.cpp:3133 +#: ../src/extension/internal/wmf-inout.cpp:3141 msgid "Windows Metafiles (*.wmf)" msgstr "Windows Metafile (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3134 +#: ../src/extension/internal/wmf-inout.cpp:3142 msgid "Windows Metafiles" msgstr "Windows Metafile" -#: ../src/extension/internal/wmf-inout.cpp:3142 +#: ../src/extension/internal/wmf-inout.cpp:3150 msgid "WMF Output" msgstr "WMF frálag" -#: ../src/extension/internal/wmf-inout.cpp:3152 +#: ../src/extension/internal/wmf-inout.cpp:3160 msgid "Map all fill patterns to standard WMF hatches" -msgstr "" +msgstr "Varpa öllum fyllimynstrum yfir í staðlaðar WMF strikaskyggingar" -#: ../src/extension/internal/wmf-inout.cpp:3156 +#: ../src/extension/internal/wmf-inout.cpp:3164 #: ../share/extensions/wmf_input.inx.h:2 #: ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "Windows Metafile (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3157 +#: ../src/extension/internal/wmf-inout.cpp:3165 msgid "Windows Metafile" msgstr "Windows Metafile" @@ -8095,7 +8151,7 @@ msgstr "WordPerfect Graphics (*.wpg)" #: ../src/extension/internal/wpg-input.cpp:150 msgid "Vector graphics format used by Corel WordPerfect" -msgstr "" +msgstr "Vigurteikningasnið notað af Corel WordPerfect" #: ../src/extension/prefdialog.cpp:276 msgid "Live preview" @@ -8113,116 +8169,118 @@ msgstr "" msgid "default.svg" msgstr "sjálfgefið.svg" -#: ../src/file.cpp:322 +#: ../src/file.cpp:328 msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:333 ../src/file.cpp:1249 +#: ../src/file.cpp:339 ../src/file.cpp:1255 #, c-format msgid "Failed to load the requested file %s" msgstr "" -#: ../src/file.cpp:359 +#: ../src/file.cpp:365 msgid "Document not saved yet. Cannot revert." msgstr "" -#: ../src/file.cpp:365 +#: ../src/file.cpp:371 msgid "Changes will be lost! Are you sure you want to reload document %1?" msgstr "" -#: ../src/file.cpp:391 +#: ../src/file.cpp:397 msgid "Document reverted." msgstr "" -#: ../src/file.cpp:393 +#: ../src/file.cpp:399 msgid "Document not reverted." msgstr "" -#: ../src/file.cpp:543 +#: ../src/file.cpp:549 msgid "Select file to open" msgstr "Veldu skrá til að opna" -#: ../src/file.cpp:625 +#: ../src/file.cpp:631 msgid "Clean up document" msgstr "Hreinsa skjalið" -#: ../src/file.cpp:632 +#: ../src/file.cpp:638 #, c-format msgid "Removed %i unused definition in <defs>." msgid_plural "Removed %i unused definitions in <defs>." msgstr[0] "" msgstr[1] "" -#: ../src/file.cpp:637 +#: ../src/file.cpp:643 msgid "No unused definitions in <defs>." msgstr "" -#: ../src/file.cpp:669 +#: ../src/file.cpp:675 #, c-format msgid "" "No Inkscape extension found to save document (%s). This may have been " "caused by an unknown filename extension." msgstr "" +"Fann ekki Inkscape-viðbót til að vista skjalið (%s). Það gæti stafað af " +"óþekktri skráarendingu." -#: ../src/file.cpp:670 ../src/file.cpp:678 ../src/file.cpp:686 -#: ../src/file.cpp:692 ../src/file.cpp:697 +#: ../src/file.cpp:676 ../src/file.cpp:684 ../src/file.cpp:692 +#: ../src/file.cpp:698 ../src/file.cpp:703 msgid "Document not saved." msgstr "Skjalið ekki vistað." -#: ../src/file.cpp:677 +#: ../src/file.cpp:683 #, c-format msgid "" "File %s is write protected. Please remove write protection and try again." msgstr "Skráin %s er ritvarin. Taktu ritvörnina af og reyndu aftur." -#: ../src/file.cpp:685 +#: ../src/file.cpp:691 #, c-format msgid "File %s could not be saved." -msgstr "Ekki tókst að vista skrána %s" +msgstr "Ekki tókst að vista skrána %s." -#: ../src/file.cpp:715 ../src/file.cpp:717 +#: ../src/file.cpp:721 ../src/file.cpp:723 msgid "Document saved." msgstr "Skjalið vistað." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:860 ../src/file.cpp:1408 +#: ../src/file.cpp:866 ../src/file.cpp:1414 msgid "drawing" msgstr "teikning" -#: ../src/file.cpp:865 +#: ../src/file.cpp:871 msgid "drawing-%1" msgstr "teikning-%1" -#: ../src/file.cpp:882 +#: ../src/file.cpp:888 msgid "Select file to save a copy to" msgstr "Veldu skrá til að vista afrit í" -#: ../src/file.cpp:884 +#: ../src/file.cpp:890 msgid "Select file to save to" msgstr "Veldu skrá til að vista í" -#: ../src/file.cpp:989 ../src/file.cpp:991 +#: ../src/file.cpp:995 ../src/file.cpp:997 msgid "No changes need to be saved." msgstr "Engar breytingar þarf að vista." -#: ../src/file.cpp:1010 +#: ../src/file.cpp:1016 msgid "Saving document..." -msgstr "" +msgstr "Vista skjal..." -#: ../src/file.cpp:1246 ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/file.cpp:1252 ../src/ui/dialog/inkscape-preferences.cpp:1450 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Flytja inn" -#: ../src/file.cpp:1296 +#: ../src/file.cpp:1302 msgid "Select file to import" msgstr "Veldu skrá til að flytja inn" -#: ../src/file.cpp:1429 +#: ../src/file.cpp:1435 msgid "Select file to export to" msgstr "Veldu skrá til að flytja út í" -#: ../src/file.cpp:1682 +#: ../src/file.cpp:1688 msgid "Import Clip Art" msgstr "Flytja inn klippimynd" @@ -8315,14 +8373,14 @@ msgstr "Mismunur" msgid "Exclusion" msgstr "Útilokun" -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:196 +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:186 #: ../src/widgets/sp-color-icc-selector.cpp:336 #: ../src/widgets/sp-color-icc-selector.cpp:340 #: ../src/widgets/sp-color-scales.cpp:441 #: ../src/widgets/sp-color-scales.cpp:442 ../src/widgets/tweak-toolbar.cpp:286 #: ../share/extensions/color_randomize.inx.h:3 msgid "Hue" -msgstr "Litblær" +msgstr "Litblær (H)" #: ../src/filter-enums.cpp:68 msgid "Luminosity" @@ -8338,7 +8396,7 @@ msgstr "Metta" #: ../src/filter-enums.cpp:80 msgid "Hue Rotate" -msgstr "" +msgstr "Snúa litblæ" #: ../src/filter-enums.cpp:81 msgid "Luminance to Alpha" @@ -8432,53 +8490,53 @@ msgstr "" msgid "Reverse gradient" msgstr "" -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:227 +#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "" -#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:100 +#: ../src/gradient-drag.cpp:97 ../src/ui/tools/gradient-tool.cpp:90 msgid "Linear gradient start" -msgstr "" +msgstr "Upphaf línulegs litstiguls" #. POINT_LG_BEGIN -#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:101 +#: ../src/gradient-drag.cpp:98 ../src/ui/tools/gradient-tool.cpp:91 msgid "Linear gradient end" -msgstr "" +msgstr "Endir línulegs litstiguls" -#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:102 +#: ../src/gradient-drag.cpp:99 ../src/ui/tools/gradient-tool.cpp:92 msgid "Linear gradient mid stop" -msgstr "" +msgstr "Miðjumerki línulegs litstiguls" -#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:103 +#: ../src/gradient-drag.cpp:100 ../src/ui/tools/gradient-tool.cpp:93 msgid "Radial gradient center" -msgstr "" +msgstr "Miðja hringlaga litstiguls" #: ../src/gradient-drag.cpp:101 ../src/gradient-drag.cpp:102 -#: ../src/ui/tools/gradient-tool.cpp:104 ../src/ui/tools/gradient-tool.cpp:105 +#: ../src/ui/tools/gradient-tool.cpp:94 ../src/ui/tools/gradient-tool.cpp:95 msgid "Radial gradient radius" -msgstr "" +msgstr "Radíus hringlaga litstiguls" -#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:106 +#: ../src/gradient-drag.cpp:103 ../src/ui/tools/gradient-tool.cpp:96 msgid "Radial gradient focus" -msgstr "" +msgstr "Brennipunktur hringlaga litstiguls" #. POINT_RG_FOCUS #: ../src/gradient-drag.cpp:104 ../src/gradient-drag.cpp:105 -#: ../src/ui/tools/gradient-tool.cpp:107 ../src/ui/tools/gradient-tool.cpp:108 +#: ../src/ui/tools/gradient-tool.cpp:97 ../src/ui/tools/gradient-tool.cpp:98 msgid "Radial gradient mid stop" -msgstr "" +msgstr "Miðjumerki hringlaga litstiguls" -#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:103 +#: ../src/gradient-drag.cpp:106 ../src/ui/tools/mesh-tool.cpp:93 msgid "Mesh gradient corner" -msgstr "" +msgstr "Horn litstigulsmöskva" -#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:104 +#: ../src/gradient-drag.cpp:107 ../src/ui/tools/mesh-tool.cpp:94 msgid "Mesh gradient handle" -msgstr "" +msgstr "Haldfang litstigulsmöskva" -#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:105 +#: ../src/gradient-drag.cpp:108 ../src/ui/tools/mesh-tool.cpp:95 msgid "Mesh gradient tensor" -msgstr "" +msgstr "Strekkjari litstigulsmöskva" #: ../src/gradient-drag.cpp:567 msgid "Added patch row or column" @@ -8486,16 +8544,16 @@ msgstr "" #: ../src/gradient-drag.cpp:799 msgid "Merge gradient handles" -msgstr "" +msgstr "Sameina litstigulshaldföng" #. we did an undoable action #: ../src/gradient-drag.cpp:1105 msgid "Move gradient handle" -msgstr "" +msgstr "Færa litstigulshaldfang" #: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 msgid "Delete gradient stop" -msgstr "" +msgstr "Eyða stoppmerki í litstigli" #: ../src/gradient-drag.cpp:1427 #, c-format @@ -8534,15 +8592,15 @@ msgstr[1] "" #: ../src/gradient-drag.cpp:2378 msgid "Move gradient handle(s)" -msgstr "" +msgstr "Færa litstigulshaldföng" #: ../src/gradient-drag.cpp:2414 msgid "Move gradient mid stop(s)" -msgstr "" +msgstr "Færa miðjumerki litstiguls" #: ../src/gradient-drag.cpp:2703 msgid "Delete gradient stop(s)" -msgstr "" +msgstr "Eyða stoppmerkjum í litstigli" #: ../src/inkscape.cpp:246 msgid "Autosave failed! Cannot create directory %1." @@ -8559,11 +8617,12 @@ msgstr "Sjálfvirk vistun skjala..." #: ../src/inkscape.cpp:339 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" +"Sjálfvirk vistun mistókst! Fann ekki Inkscape-viðbót til að vista skjalið." #: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 #, c-format msgid "Autosave failed! File %s could not be saved." -msgstr "" +msgstr "Sjálfvirk vistun mistókst! Ekki tókst að vista skrána %s." #: ../src/inkscape.cpp:364 msgid "Autosave complete." @@ -8590,7 +8649,7 @@ msgstr "" #: ../src/knot.cpp:346 msgid "Node or handle drag canceled." -msgstr "" +msgstr "Hætt við drátt á haldfangi eða hnút." #: ../src/knotholder.cpp:170 msgid "Change handle" @@ -8611,7 +8670,7 @@ msgstr "" #: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 msgid "Rotate the pattern fill; with Ctrl to snap angle" -msgstr "" +msgstr "Snúa mynsturfyllingu; með Ctrl til að þrepa horn" #: ../src/libgdl/gdl-dock-bar.c:105 msgid "Master" @@ -8647,7 +8706,7 @@ msgid "Dockitem which 'owns' this grip" msgstr "" #. Name -#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:191 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 #: ../src/widgets/text-toolbar.cpp:1405 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 @@ -8778,7 +8837,7 @@ msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:132 #: ../src/ui/dialog/align-and-distribute.cpp:1002 -#: ../src/ui/dialog/document-properties.cpp:153 +#: ../src/ui/dialog/document-properties.cpp:160 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 #: ../src/widgets/desktop-widget.cpp:1992 #: ../share/extensions/empty_page.inx.h:1 @@ -8794,7 +8853,7 @@ msgstr "" #: ../src/live_effects/parameter/originalpatharray.cpp:86 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 #: ../src/ui/widget/page-sizer.cpp:258 -#: ../src/widgets/gradient-selector.cpp:140 +#: ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "Heiti" @@ -8805,7 +8864,7 @@ msgstr "" #: ../src/libgdl/gdl-dock-object.c:133 msgid "Long name" -msgstr "" +msgstr "Langt heiti" #: ../src/libgdl/gdl-dock-object.c:134 msgid "Human readable name for the dock object" @@ -8860,7 +8919,7 @@ msgid "" "Attempt to bind to %p an already bound dock object %p (current master: %p)" msgstr "" -#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:229 +#: ../src/libgdl/gdl-dock-paned.c:130 ../src/widgets/ruler.cpp:230 msgid "Position" msgstr "Staðsetning" @@ -8951,7 +9010,7 @@ msgstr "" #: ../src/libgdl/gdl-dock.c:176 ../src/ui/dialog/inkscape-preferences.cpp:642 #: ../src/ui/dialog/inkscape-preferences.cpp:685 msgid "Floating" -msgstr "" +msgstr "Fljótandi" #: ../src/libgdl/gdl-dock.c:177 msgid "Whether the dock is floating in its own window" @@ -9000,12 +9059,12 @@ msgstr "" #: ../src/live_effects/effect.cpp:100 msgid "Angle bisector" -msgstr "" +msgstr "Helmingalína horns" #. TRANSLATORS: boolean operations #: ../src/live_effects/effect.cpp:102 msgid "Boolops" -msgstr "" +msgstr "Bólskar lykkjur" #: ../src/live_effects/effect.cpp:103 msgid "Circle (by center and radius)" @@ -9017,15 +9076,15 @@ msgstr "Hringur af þremur punktum" #: ../src/live_effects/effect.cpp:105 msgid "Dynamic stroke" -msgstr "" +msgstr "Breytileg stroka" #: ../src/live_effects/effect.cpp:106 ../share/extensions/extrude.inx.h:1 msgid "Extrude" -msgstr "" +msgstr "Pressa út" #: ../src/live_effects/effect.cpp:107 msgid "Lattice Deformation" -msgstr "" +msgstr "Afmyndun grindar" #: ../src/live_effects/effect.cpp:108 msgid "Line Segment" @@ -9033,7 +9092,7 @@ msgstr "Línubútur" #: ../src/live_effects/effect.cpp:109 msgid "Mirror symmetry" -msgstr "" +msgstr "Samhverfa speglunar" #: ../src/live_effects/effect.cpp:111 msgid "Parallel" @@ -9041,36 +9100,36 @@ msgstr "Samhliða" #: ../src/live_effects/effect.cpp:112 msgid "Path length" -msgstr "" +msgstr "Lengd ferils" #: ../src/live_effects/effect.cpp:113 msgid "Perpendicular bisector" -msgstr "" +msgstr "Hornrétt helmingaskipting" #: ../src/live_effects/effect.cpp:114 msgid "Perspective path" -msgstr "" +msgstr "Fjarvíddarferill" #: ../src/live_effects/effect.cpp:115 msgid "Rotate copies" -msgstr "" +msgstr "Snúa afritum" #: ../src/live_effects/effect.cpp:116 msgid "Recursive skeleton" -msgstr "" +msgstr "Endurkvæm grind" #: ../src/live_effects/effect.cpp:117 msgid "Tangent to curve" -msgstr "" +msgstr "Tangens á feril" #: ../src/live_effects/effect.cpp:118 msgid "Text label" -msgstr "" +msgstr "Textalýsing" #. 0.46 #: ../src/live_effects/effect.cpp:121 msgid "Bend" -msgstr "" +msgstr "Beygja" #: ../src/live_effects/effect.cpp:122 msgid "Gears" @@ -9078,12 +9137,12 @@ msgstr "Gírhjól" #: ../src/live_effects/effect.cpp:123 msgid "Pattern Along Path" -msgstr "" +msgstr "Mynstur eftir ferli" #. for historic reasons, this effect is called skeletal(strokes) in Inkscape:SVG #: ../src/live_effects/effect.cpp:124 msgid "Stitch Sub-Paths" -msgstr "" +msgstr "Sauma saman undirferla" #. 0.47 #: ../src/live_effects/effect.cpp:126 @@ -9092,23 +9151,23 @@ msgstr "VonKoch" #: ../src/live_effects/effect.cpp:127 msgid "Knot" -msgstr "" +msgstr "Hnútur" #: ../src/live_effects/effect.cpp:128 msgid "Construct grid" -msgstr "" +msgstr "Stoðnet" #: ../src/live_effects/effect.cpp:129 msgid "Spiro spline" -msgstr "" +msgstr "Spiro-splína" #: ../src/live_effects/effect.cpp:130 msgid "Envelope Deformation" -msgstr "" +msgstr "Afmyndun umgjarðar" #: ../src/live_effects/effect.cpp:131 msgid "Interpolate Sub-Paths" -msgstr "" +msgstr "Brúun undirferla" #: ../src/live_effects/effect.cpp:132 msgid "Hatches (rough)" @@ -9158,7 +9217,7 @@ msgstr "" msgid "Fill between strokes" msgstr "" -#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2926 +#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2916 msgid "Fill between many" msgstr "" @@ -9176,7 +9235,7 @@ msgstr "" #: ../src/live_effects/effect.cpp:153 msgid "Perspective/Envelope" -msgstr "" +msgstr "Fjarvídd/Umgjörð" #: ../src/live_effects/effect.cpp:154 msgid "Fillet/Chamfer" @@ -9188,7 +9247,7 @@ msgstr "" #: ../src/live_effects/effect.cpp:362 msgid "Is visible?" -msgstr "" +msgstr "Sýnilegt?" #: ../src/live_effects/effect.cpp:362 msgid "" @@ -9198,7 +9257,7 @@ msgstr "" #: ../src/live_effects/effect.cpp:384 msgid "No effect" -msgstr "" +msgstr "Engin brella" #: ../src/live_effects/effect.cpp:492 #, c-format @@ -9208,7 +9267,7 @@ msgstr "" #: ../src/live_effects/effect.cpp:759 #, c-format msgid "Editing parameter %s." -msgstr "" +msgstr "Viðfang breytingar %s." #: ../src/live_effects/effect.cpp:764 msgid "None of the applied path effect's parameters can be edited on-canvas." @@ -9292,7 +9351,7 @@ msgstr "_Breidd:" #: ../src/live_effects/lpe-bendpath.cpp:54 msgid "Width of the path" -msgstr "" +msgstr "Breidd ferilsins" #: ../src/live_effects/lpe-bendpath.cpp:55 msgid "W_idth in units of length" @@ -9331,47 +9390,50 @@ msgstr "" msgid "Uses the visual bounding box" msgstr "Notar myndræna umgjörð" -#. initialise your parameters here: -#. testpointA(_("Test Point A"), _("Test A"), "ptA", &wr, this, -#. Geom::Point(100,100)), -#: ../src/live_effects/lpe-bspline.cpp:60 +#: ../src/live_effects/lpe-bspline.cpp:57 msgid "Steps with CTRL:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:60 +#: ../src/live_effects/lpe-bspline.cpp:57 msgid "Change number of steps with CTRL pressed" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-simplify.cpp:33 +msgid "Helper size:" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-simplify.cpp:33 +msgid "Helper size" +msgstr "" + +#: ../src/live_effects/lpe-bspline.cpp:59 msgid "Ignore cusp nodes" msgstr "Hunsa frjálsa hnúta" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:59 msgid "Change ignoring cusp nodes" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:62 +#: ../src/live_effects/lpe-bspline.cpp:60 #: ../src/live_effects/lpe-fillet-chamfer.cpp:57 msgid "Change only selected nodes" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:63 -msgid "Show helper paths" -msgstr "" - -#: ../src/live_effects/lpe-bspline.cpp:64 +#: ../src/live_effects/lpe-bspline.cpp:61 msgid "Change weight:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:64 +#: ../src/live_effects/lpe-bspline.cpp:61 msgid "Change weight of the effect" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:291 +#: ../src/live_effects/lpe-bspline.cpp:290 msgid "Default weight" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:296 +#: ../src/live_effects/lpe-bspline.cpp:295 msgid "Make cusp" msgstr "" @@ -9592,7 +9654,7 @@ msgstr "Mælieining:" #. initialise your parameters here: #: ../src/live_effects/lpe-fillet-chamfer.cpp:60 #: ../src/live_effects/lpe-roughen.cpp:39 ../src/live_effects/lpe-ruler.cpp:42 -#: ../src/widgets/ruler.cpp:201 +#: ../src/widgets/ruler.cpp:202 msgid "Unit" msgstr "Eining" @@ -9747,7 +9809,7 @@ msgstr "Hornskeyting" #: ../src/live_effects/lpe-jointype.cpp:34 #: ../src/live_effects/lpe-taperstroke.cpp:65 -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgid "Reflected" msgstr "Endurkastað" @@ -9892,202 +9954,294 @@ msgid "Control handle 0:" msgstr "Stjórnhaldfang 0:" #: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 0 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 0 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:48 msgid "Control handle 1:" msgstr "Stjórnhaldfang 1:" #: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 1 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 1 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:49 msgid "Control handle 2:" msgstr "Stjórnhaldfang 2:" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 2 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 2 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:50 msgid "Control handle 3:" msgstr "Stjórnhaldfang 3:" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 3 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 3 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:51 msgid "Control handle 4:" msgstr "Stjórnhaldfang 4:" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 4 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 4 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:52 msgid "Control handle 5:" msgstr "Stjórnhaldfang 5:" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 5 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 5 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:53 msgid "Control handle 6:" msgstr "Stjórnhaldfang 6:" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 6 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 6 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:54 msgid "Control handle 7:" msgstr "Stjórnhaldfang 7:" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 7 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Stjórnhaldfang 7 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:55 msgid "Control handle 8x9:" msgstr "Stjórnhaldfang 8x9:" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 8x9 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 8x9 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:56 msgid "Control handle 10x11:" msgstr "Stjórnhaldfang 10x11:" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 10x11 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 10x11 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:57 msgid "Control handle 12:" msgstr "Stjórnhaldfang 12:" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 12 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 12 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 12 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:58 msgid "Control handle 13:" msgstr "Stjórnhaldfang 13:" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 13 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 13 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 13 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:59 msgid "Control handle 14:" msgstr "Stjórnhaldfang 14:" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 14 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 14 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 14 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:60 msgid "Control handle 15:" msgstr "Stjórnhaldfang 15:" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 15 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 15 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 15 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:61 msgid "Control handle 16:" msgstr "Stjórnhaldfang 16:" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 16 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 16 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 16 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:62 msgid "Control handle 17:" msgstr "Stjórnhaldfang 17:" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 17 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 17 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 17 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:63 msgid "Control handle 18:" msgstr "Stjórnhaldfang 18:" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 18 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 18 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 18 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:64 msgid "Control handle 19:" msgstr "Stjórnhaldfang 19:" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 19 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 19 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 19 - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:65 msgid "Control handle 20x21:" msgstr "Stjórnhaldfang 20x21:" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 20x21 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 20x21 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:66 msgid "Control handle 22x23:" msgstr "Stjórnhaldfang 22x23:" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 22x23 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 22x23 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:67 msgid "Control handle 24x26:" msgstr "Stjórnhaldfang 24x26:" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 24x26 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 24x26 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:68 msgid "Control handle 25x27:" msgstr "Stjórnhaldfang 25x27:" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 25x27 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 25x27 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:69 msgid "Control handle 28x30:" msgstr "Stjórnhaldfang 28x30:" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 28x30 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 28x30 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:70 msgid "Control handle 29x31:" msgstr "Stjórnhaldfang 29x31:" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 29x31 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"Stjórnhaldfang 29x31 - Ctrl+Alt+Click: til að frumstilla, Ctrl: færa meðfram ásum" #: ../src/live_effects/lpe-lattice2.cpp:71 msgid "Control handle 32x33x34x35:" msgstr "Stjórnhaldfang 32x33x34x35:" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click to reset" -msgstr "Stjórnhaldfang 32x33x34x35 - Ctrl+Alt+Smella til að frumstilla" +msgid "" +"Control handle 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move " +"along axes" +msgstr "" +"Stjórnhaldfang 32x33x34x35 - Ctrl+Alt+Click: til að frumstilla, " +"Ctrl: færa meðfram ásum" -#: ../src/live_effects/lpe-lattice2.cpp:221 +#: ../src/live_effects/lpe-lattice2.cpp:224 msgid "Reset grid" msgstr "" @@ -10129,7 +10283,7 @@ msgstr "" #: ../src/live_effects/lpe-patternalongpath.cpp:62 msgid "Width of the pattern" -msgstr "" +msgstr "Breidd mynstursins" #: ../src/live_effects/lpe-patternalongpath.cpp:63 msgid "Wid_th in units of length" @@ -10191,7 +10345,7 @@ msgstr "Fjarvídd" #: ../src/live_effects/lpe-perspective-envelope.cpp:38 msgid "Envelope deformation" -msgstr "" +msgstr "Afmyndun umgjarðar" #. initialise your parameters here: #: ../src/live_effects/lpe-perspective-envelope.cpp:46 @@ -10200,43 +10354,51 @@ msgstr "Tegund" #: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Select the type of deformation" -msgstr "" +msgstr "Veldu tegund afmyndunar" #: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Left" msgstr "Uppi til vinstri" #: ../src/live_effects/lpe-perspective-envelope.cpp:47 -msgid "Top Left - Ctrl+Alt+Click to reset" -msgstr "Uppi til vinstri - Ctrl+Alt+Smella til að frumstilla" +msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Uppi til vinstri - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Top Right" msgstr "Uppi til hægri" #: ../src/live_effects/lpe-perspective-envelope.cpp:48 -msgid "Top Right - Ctrl+Alt+Click to reset" -msgstr "Uppi til hægri - Ctrl+Alt+Smella til að frumstilla" +msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Uppi til hægri - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Left" msgstr "Niðri til vinstri" #: ../src/live_effects/lpe-perspective-envelope.cpp:49 -msgid "Down Left - Ctrl+Alt+Click to reset" -msgstr "Niðri til vinstri - Ctrl+Alt+Smella til að frumstilla" +msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Niðri til vinstri - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 msgid "Down Right" msgstr "Niðri til hægri" #: ../src/live_effects/lpe-perspective-envelope.cpp:50 -msgid "Down Right - Ctrl+Alt+Click to reset" -msgstr "Niðri til hægri - Ctrl+Alt+Smella til að frumstilla" +msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"Niðri til hægri - Ctrl+Alt+Click: til að frumstilla, Ctrl: " +"færa meðfram ásum" #: ../src/live_effects/lpe-perspective-envelope.cpp:257 msgid "Handles:" -msgstr "" +msgstr "Haldföng:" #: ../src/live_effects/lpe-powerstroke.cpp:193 msgid "CubicBezierSmooth" @@ -10290,7 +10452,7 @@ msgstr "" #: ../src/live_effects/lpe-powerstroke.cpp:244 #: ../src/widgets/stroke-style.cpp:278 msgid "Maximum length of the miter (in units of stroke width)" -msgstr "" +msgstr "Hámarkslengd hornskeytingar (í einingum línubreiddar)" #: ../src/live_effects/lpe-powerstroke.cpp:245 msgid "End cap:" @@ -10486,7 +10648,7 @@ msgstr "Aðferð" #: ../src/live_effects/lpe-roughen.cpp:40 msgid "Division method" -msgstr "" +msgstr "Aðferð við deilingu" #: ../src/live_effects/lpe-roughen.cpp:42 msgid "Max. segment size" @@ -10629,7 +10791,7 @@ msgstr "" #: ../src/live_effects/lpe-show_handles.cpp:25 msgid "Show nodes" -msgstr "" +msgstr "Sýna hnúta" #: ../src/live_effects/lpe-show_handles.cpp:27 msgid "Show path" @@ -10651,55 +10813,55 @@ msgid "" "you are applying it to. If this is not what you want, click Cancel." msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:29 +#: ../src/live_effects/lpe-simplify.cpp:30 msgid "Steps:" msgstr "Þrep:" -#: ../src/live_effects/lpe-simplify.cpp:29 +#: ../src/live_effects/lpe-simplify.cpp:30 msgid "Change number of simplify steps " msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:30 +#: ../src/live_effects/lpe-simplify.cpp:31 msgid "Roughly threshold:" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:31 -msgid "Helper size:" +#: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Smooth angles:" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:31 -msgid "Helper size" +#: ../src/live_effects/lpe-simplify.cpp:32 +msgid "Max degree difference on handles to preform a smooth" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:32 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Helper nodes" -msgstr "" +msgstr "Hjálparhnútar" -#: ../src/live_effects/lpe-simplify.cpp:32 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Show helper nodes" -msgstr "" +msgstr "Sýna hjálparhnúta" -#: ../src/live_effects/lpe-simplify.cpp:34 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Helper handles" -msgstr "" +msgstr "Hjálparhaldföng" -#: ../src/live_effects/lpe-simplify.cpp:34 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Show helper handles" -msgstr "" +msgstr "Sýna hjálparhaldföng" -#: ../src/live_effects/lpe-simplify.cpp:36 +#: ../src/live_effects/lpe-simplify.cpp:38 msgid "Paths separately" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:36 +#: ../src/live_effects/lpe-simplify.cpp:38 msgid "Simplifying paths (separately)" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:40 msgid "Just coalesce" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:40 msgid "Simplify just coalesce" msgstr "" @@ -10996,7 +11158,7 @@ msgid "Select original" msgstr "Velja upprunalegt" #: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1202 +#: ../src/widgets/gradient-toolbar.cpp:1205 msgid "Reverse" msgstr "Snúa við" @@ -11011,12 +11173,12 @@ msgid "Remove Path" msgstr "Fjarlægja slóð" #: ../src/live_effects/parameter/originalpatharray.cpp:183 -#: ../src/ui/dialog/objects.cpp:1847 +#: ../src/ui/dialog/objects.cpp:1823 msgid "Move Down" msgstr "Færa niður" #: ../src/live_effects/parameter/originalpatharray.cpp:195 -#: ../src/ui/dialog/objects.cpp:1862 +#: ../src/ui/dialog/objects.cpp:1831 msgid "Move Up" msgstr "Færa upp" @@ -11056,8 +11218,7 @@ msgstr "" msgid "Paste path parameter" msgstr "" -#: ../src/live_effects/parameter/point.cpp:89 -#: ../src/live_effects/parameter/pointreseteable.cpp:103 +#: ../src/live_effects/parameter/point.cpp:103 msgid "Change point parameter" msgstr "" @@ -11223,14 +11384,16 @@ msgstr "" #: ../src/main.cpp:392 msgid "Export document to plain SVG file (no sodipodi or inkscape namespaces)" msgstr "" +"Flytja skjal út sem venjulega SVG-skrá (ekki sodipodi eða inkscape " +"nafnaskilgreiningar)" #: ../src/main.cpp:397 msgid "Export document to a PS file" -msgstr "" +msgstr "Flytja skjal út sem PS-skrá" #: ../src/main.cpp:402 msgid "Export document to an EPS file" -msgstr "" +msgstr "Flytja skjal út sem EPS-skrá" #: ../src/main.cpp:407 msgid "" @@ -11244,7 +11407,7 @@ msgstr "PS stig" #: ../src/main.cpp:413 msgid "Export document to a PDF file" -msgstr "" +msgstr "Flytja skjal út sem PDF-skrá" #. TRANSLATORS: "--export-pdf-version" is an Inkscape command line option; see "inkscape --help" #: ../src/main.cpp:419 @@ -11266,7 +11429,7 @@ msgstr "" #: ../src/main.cpp:429 msgid "Export document to an Enhanced Metafile (EMF) File" -msgstr "" +msgstr "Flytja skjal út sem Enhanced Metafile (EMF)" #: ../src/main.cpp:434 msgid "Export document to a Windows Metafile (WMF) File" @@ -11412,7 +11575,7 @@ msgstr "_Birtingarhamur" #. " \n" #: ../src/menus-skeleton.h:121 msgid "_Color display mode" -msgstr "" +msgstr "_Litbirtingarhamur" #. Better location in menu needs to be found #. " \n" @@ -11433,7 +11596,7 @@ msgstr "_Hlutur" #: ../src/menus-skeleton.h:189 msgid "Cli_p" -msgstr "_Klemma" +msgstr "_Afmarka" #: ../src/menus-skeleton.h:193 msgid "Mas_k" @@ -11447,7 +11610,7 @@ msgstr "_Mynstur" msgid "_Path" msgstr "_Ferill" -#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:77 +#: ../src/menus-skeleton.h:249 ../src/ui/dialog/find.cpp:78 #: ../src/ui/dialog/text-edit.cpp:71 msgid "_Text" msgstr "_Texti" @@ -11470,7 +11633,7 @@ msgstr "Leiðbeiningar" #: ../src/path-chemistry.cpp:54 msgid "Select object(s) to combine." -msgstr "Veldu hlut sem á að sameina." +msgstr "Veldu hluti sem á að sameina." #: ../src/path-chemistry.cpp:58 msgid "Combining paths..." @@ -11482,15 +11645,15 @@ msgstr "Sameina" #: ../src/path-chemistry.cpp:181 msgid "No path(s) to combine in the selection." -msgstr "" +msgstr "Engir ferlar í valinu til að sameina." #: ../src/path-chemistry.cpp:193 msgid "Select path(s) to break apart." -msgstr "" +msgstr "Veldu feril/ferla til að rjúfa í sundur." #: ../src/path-chemistry.cpp:197 msgid "Breaking apart paths..." -msgstr "" +msgstr "Sundra ferlum..." #: ../src/path-chemistry.cpp:287 msgid "Break apart" @@ -11498,11 +11661,11 @@ msgstr "Sundra" #: ../src/path-chemistry.cpp:289 msgid "No path(s) to break apart in the selection." -msgstr "" +msgstr "Engir ferlar í valinu til að rjúfa í sundur." #: ../src/path-chemistry.cpp:299 msgid "Select object(s) to convert to path." -msgstr "" +msgstr "Veldu hluti sem á að umbreyta í ferla." #: ../src/path-chemistry.cpp:305 msgid "Converting objects to paths..." @@ -11518,25 +11681,25 @@ msgstr "Engir hlutir í valinu sem hægt er að breyta í feril." #: ../src/path-chemistry.cpp:618 msgid "Select path(s) to reverse." -msgstr "" +msgstr "Veldu feril/ferla til að snúa við." #: ../src/path-chemistry.cpp:627 msgid "Reversing paths..." -msgstr "" +msgstr "Sný við ferlum..." #: ../src/path-chemistry.cpp:662 msgid "Reverse path" -msgstr "" +msgstr "Snúa við ferlum" #: ../src/path-chemistry.cpp:664 msgid "No paths to reverse in the selection." -msgstr "" +msgstr "Engir ferlar í valinu til að snúa við." -#: ../src/persp3d.cpp:333 +#: ../src/persp3d.cpp:323 msgid "Toggle vanishing point" msgstr "" -#: ../src/persp3d.cpp:344 +#: ../src/persp3d.cpp:334 msgid "Toggle multiple vanishing points" msgstr "" @@ -11562,7 +11725,7 @@ msgstr "Slettandi" #: ../src/preferences-skeleton.h:107 msgid "Tracing" -msgstr "" +msgstr "Línuteiknun" #: ../src/preferences.cpp:136 msgid "" @@ -11575,7 +11738,7 @@ msgstr "" #: ../src/preferences.cpp:151 #, c-format msgid "Cannot create profile directory %s." -msgstr "" +msgstr "Get ekki búið til sniðmöppu %s." #. The profile dir is not actually a directory #. _reportError(Glib::ustring::compose(_("%1 is not a valid directory."), @@ -11583,7 +11746,7 @@ msgstr "" #: ../src/preferences.cpp:169 #, c-format msgid "%s is not a valid directory." -msgstr "" +msgstr "%s er ekki gild mappa." #. The write failed. #. _reportError(Glib::ustring::compose(_("Failed to create the preferences file %1."), @@ -11591,7 +11754,7 @@ msgstr "" #: ../src/preferences.cpp:180 #, c-format msgid "Failed to create the preferences file %s." -msgstr "" +msgstr "Mistókst að búa til kjörstillingaskrána %s." #: ../src/preferences.cpp:216 #, c-format @@ -11649,8 +11812,10 @@ msgstr "FreeArt" msgid "Open Font License" msgstr "Open Font notkunarleyfi" +#. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/object-attributes.cpp:57 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1952 +#: ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "Titill:" @@ -11802,11 +11967,11 @@ msgstr "" #: ../src/selection-chemistry.cpp:433 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 -#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:974 +#: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 #: ../src/widgets/eraser-toolbar.cpp:93 -#: ../src/widgets/gradient-toolbar.cpp:1178 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1181 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-toolbar.cpp:1209 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "Eyða" @@ -11830,19 +11995,19 @@ msgstr "Hópur" #: ../src/selection-chemistry.cpp:801 msgid "Select a group to ungroup." -msgstr "" +msgstr "Veldu hóp til að skipta upp." #: ../src/selection-chemistry.cpp:816 msgid "No groups to ungroup in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:571 +#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:575 msgid "Ungroup" msgstr "Skipta upp hóp" #: ../src/selection-chemistry.cpp:956 msgid "Select object(s) to raise." -msgstr "" +msgstr "Veldu hluti sem á að hækka." #: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1019 #: ../src/selection-chemistry.cpp:1047 ../src/selection-chemistry.cpp:1109 @@ -11858,7 +12023,7 @@ msgstr "Hækka" #: ../src/selection-chemistry.cpp:1011 msgid "Select object(s) to raise to top." -msgstr "" +msgstr "Veldu hluti sem á að hækka efst." #: ../src/selection-chemistry.cpp:1034 msgid "Raise to top" @@ -11866,7 +12031,7 @@ msgstr "Setja efst" #: ../src/selection-chemistry.cpp:1041 msgid "Select object(s) to lower." -msgstr "" +msgstr "Veldu hluti sem á að lækka." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history #: ../src/selection-chemistry.cpp:1093 @@ -11876,7 +12041,7 @@ msgstr "Lækka" #: ../src/selection-chemistry.cpp:1101 msgid "Select object(s) to lower to bottom." -msgstr "" +msgstr "Veldu hluti sem á að lækka neðst." #: ../src/selection-chemistry.cpp:1136 msgid "Lower to bottom" @@ -11912,7 +12077,7 @@ msgstr "" #: ../src/selection-chemistry.cpp:1292 msgid "Select object(s) to remove filters from." -msgstr "" +msgstr "Veldu hluti sem á að fjarlægja síur af." #: ../src/selection-chemistry.cpp:1302 #: ../src/ui/dialog/filter-effects-dialog.cpp:1678 @@ -11927,274 +12092,275 @@ msgstr "Líma stærð" msgid "Paste size separately" msgstr "Líma stærð sér" -#: ../src/selection-chemistry.cpp:1330 +#: ../src/selection-chemistry.cpp:1349 msgid "Select object(s) to move to the layer above." -msgstr "" +msgstr "Veldu hluti sem á að færa á lagið fyrir ofan." -#: ../src/selection-chemistry.cpp:1356 +#: ../src/selection-chemistry.cpp:1376 msgid "Raise to next layer" msgstr "Hækka í næsta lag" -#: ../src/selection-chemistry.cpp:1363 +#: ../src/selection-chemistry.cpp:1383 msgid "No more layers above." -msgstr "" +msgstr "Engin fleiri lög fyrir ofan." -#: ../src/selection-chemistry.cpp:1375 +#: ../src/selection-chemistry.cpp:1395 msgid "Select object(s) to move to the layer below." -msgstr "" +msgstr "Veldu hluti sem á að færa á lagið fyrir neðan." -#: ../src/selection-chemistry.cpp:1401 +#: ../src/selection-chemistry.cpp:1422 msgid "Lower to previous layer" msgstr "Lækka í fyrra lag" -#: ../src/selection-chemistry.cpp:1408 +#: ../src/selection-chemistry.cpp:1429 msgid "No more layers below." -msgstr "" +msgstr "Engin fleiri lög fyrir neðan." -#: ../src/selection-chemistry.cpp:1420 +#: ../src/selection-chemistry.cpp:1441 msgid "Select object(s) to move." -msgstr "" +msgstr "Veldu hluti sem á að færa." -#: ../src/selection-chemistry.cpp:1437 ../src/verbs.cpp:2656 +#: ../src/selection-chemistry.cpp:1459 ../src/verbs.cpp:2656 msgid "Move selection to layer" -msgstr "" +msgstr "Flytja val á lagið" #. An SVG element cannot have a transform. We could change 'x' and 'y' in response #. to a translation... but leave that for another day. -#: ../src/selection-chemistry.cpp:1527 ../src/seltrans.cpp:388 +#: ../src/selection-chemistry.cpp:1549 ../src/seltrans.cpp:388 msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1698 +#: ../src/selection-chemistry.cpp:1720 msgid "Remove transform" msgstr "Fjarlægja ummyndun" -#: ../src/selection-chemistry.cpp:1805 +#: ../src/selection-chemistry.cpp:1827 msgid "Rotate 90° CCW" msgstr "Snúa 90° rangsælis" -#: ../src/selection-chemistry.cpp:1805 +#: ../src/selection-chemistry.cpp:1827 msgid "Rotate 90° CW" msgstr "Snúa 90° réttsælis" -#: ../src/selection-chemistry.cpp:1826 ../src/seltrans.cpp:483 +#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 #: ../src/ui/dialog/transformation.cpp:893 msgid "Rotate" msgstr "Snúa" -#: ../src/selection-chemistry.cpp:2214 +#: ../src/selection-chemistry.cpp:2204 msgid "Rotate by pixels" msgstr "Snúa eftir mynddílum" -#: ../src/selection-chemistry.cpp:2244 ../src/seltrans.cpp:480 +#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 #: ../src/ui/dialog/transformation.cpp:868 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "Kvarði" -#: ../src/selection-chemistry.cpp:2269 +#: ../src/selection-chemistry.cpp:2259 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2284 +#: ../src/selection-chemistry.cpp:2274 msgid "Move vertically" msgstr "Færa lóðrétt" -#: ../src/selection-chemistry.cpp:2287 +#: ../src/selection-chemistry.cpp:2277 msgid "Move horizontally" msgstr "Færa lárétt" -#: ../src/selection-chemistry.cpp:2290 ../src/selection-chemistry.cpp:2316 +#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 #: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 msgid "Move" msgstr "Færa" -#: ../src/selection-chemistry.cpp:2310 +#: ../src/selection-chemistry.cpp:2300 msgid "Move vertically by pixels" msgstr "Færa lóðrétt um mynddíla" -#: ../src/selection-chemistry.cpp:2313 +#: ../src/selection-chemistry.cpp:2303 msgid "Move horizontally by pixels" msgstr "Færa lárétt um mynddíla" -#: ../src/selection-chemistry.cpp:2445 +#: ../src/selection-chemistry.cpp:2435 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2617 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 msgid "Select an object to clone." msgstr "Veldu hlut sem á að klóna." -#: ../src/selection-chemistry.cpp:2653 +#: ../src/selection-chemistry.cpp:2643 msgctxt "Action" msgid "Clone" msgstr "Klóna" -#: ../src/selection-chemistry.cpp:2669 +#: ../src/selection-chemistry.cpp:2659 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2676 +#: ../src/selection-chemistry.cpp:2666 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2699 +#: ../src/selection-chemistry.cpp:2689 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2702 +#: ../src/selection-chemistry.cpp:2692 msgid "Relink clone" msgstr "Endurtengja klóna" -#: ../src/selection-chemistry.cpp:2716 +#: ../src/selection-chemistry.cpp:2706 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2772 +#: ../src/selection-chemistry.cpp:2762 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2776 +#: ../src/selection-chemistry.cpp:2766 msgid "Unlink clone" msgstr "Aftengja klón" -#: ../src/selection-chemistry.cpp:2789 +#: ../src/selection-chemistry.cpp:2779 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:2837 +#: ../src/selection-chemistry.cpp:2827 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2843 +#: ../src/selection-chemistry.cpp:2833 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" msgstr "" -#: ../src/selection-chemistry.cpp:2932 +#: ../src/selection-chemistry.cpp:2922 msgid "Select path(s) to fill." -msgstr "" +msgstr "Veldu feril/ferla til að fylla." -#: ../src/selection-chemistry.cpp:2950 +#: ../src/selection-chemistry.cpp:2940 msgid "Select object(s) to convert to marker." -msgstr "" +msgstr "Veldu hluti sem á að umbreyta í línumerki." -#: ../src/selection-chemistry.cpp:3025 +#: ../src/selection-chemistry.cpp:3015 msgid "Objects to marker" msgstr "Hlutir að merkipunktum" -#: ../src/selection-chemistry.cpp:3050 +#: ../src/selection-chemistry.cpp:3040 msgid "Select object(s) to convert to guides." -msgstr "Veldu hlut sem á að umbreyta í stoðlínur." +msgstr "Veldu hluti sem á að umbreyta í stoðlínur." -#: ../src/selection-chemistry.cpp:3073 +#: ../src/selection-chemistry.cpp:3063 msgid "Objects to guides" msgstr "Hlutir að stoðlínum" -#: ../src/selection-chemistry.cpp:3109 +#: ../src/selection-chemistry.cpp:3099 msgid "Select objects to convert to symbol." msgstr "Veldu hlut sem á að umbreyta í tákn." -#: ../src/selection-chemistry.cpp:3212 +#: ../src/selection-chemistry.cpp:3202 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3231 +#: ../src/selection-chemistry.cpp:3221 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3240 +#: ../src/selection-chemistry.cpp:3230 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3298 +#: ../src/selection-chemistry.cpp:3288 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3316 +#: ../src/selection-chemistry.cpp:3306 msgid "Select object(s) to convert to pattern." -msgstr "" +msgstr "Veldu hluti sem á að umbreyta í mynstur." -#: ../src/selection-chemistry.cpp:3415 +#: ../src/selection-chemistry.cpp:3405 msgid "Objects to pattern" msgstr "Hlutir að mynstri" -#: ../src/selection-chemistry.cpp:3431 +#: ../src/selection-chemistry.cpp:3421 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3492 +#: ../src/selection-chemistry.cpp:3482 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3495 +#: ../src/selection-chemistry.cpp:3485 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3586 +#: ../src/selection-chemistry.cpp:3576 msgid "Select object(s) to make a bitmap copy." -msgstr "" +msgstr "Veldu hluti sem á að gera afrit af sem bitamynd." -#: ../src/selection-chemistry.cpp:3590 +#: ../src/selection-chemistry.cpp:3580 msgid "Rendering bitmap..." msgstr "Myndgeri bitamynd..." -#: ../src/selection-chemistry.cpp:3777 +#: ../src/selection-chemistry.cpp:3767 msgid "Create bitmap" msgstr "Búa til bitamynd" -#: ../src/selection-chemistry.cpp:3802 ../src/selection-chemistry.cpp:3921 +#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 msgid "Select object(s) to create clippath or mask from." msgstr "" +"Veldu hluti þar sem á að búa til afmörkunarferlil eða laghulu úr." -#: ../src/selection-chemistry.cpp:3895 +#: ../src/selection-chemistry.cpp:3885 msgid "Create Clip Group" -msgstr "" +msgstr "Búa til afmarkandi hóp" -#: ../src/selection-chemistry.cpp:3924 +#: ../src/selection-chemistry.cpp:3914 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:4105 +#: ../src/selection-chemistry.cpp:4095 msgid "Set clipping path" msgstr "Setja afmörkunarferil" -#: ../src/selection-chemistry.cpp:4107 +#: ../src/selection-chemistry.cpp:4097 msgid "Set mask" msgstr "Setja hulu" -#: ../src/selection-chemistry.cpp:4122 +#: ../src/selection-chemistry.cpp:4112 msgid "Select object(s) to remove clippath or mask from." -msgstr "" +msgstr "Veldu hluti sem á að fjarlægja afmörkunarferla eða laghulur af." -#: ../src/selection-chemistry.cpp:4242 +#: ../src/selection-chemistry.cpp:4232 msgid "Release clipping path" msgstr "Sleppa afmörkunarferli" -#: ../src/selection-chemistry.cpp:4244 +#: ../src/selection-chemistry.cpp:4234 msgid "Release mask" msgstr "Sleppa hulu" -#: ../src/selection-chemistry.cpp:4263 +#: ../src/selection-chemistry.cpp:4253 msgid "Select object(s) to fit canvas to." -msgstr "" +msgstr "Veldu hluti sem á að aðlaga myndflöt að." #. Fit Page -#: ../src/selection-chemistry.cpp:4283 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 msgid "Fit Page to Selection" msgstr "Laga síðu að vali" -#: ../src/selection-chemistry.cpp:4312 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 msgid "Fit Page to Drawing" msgstr "Laga síðu að teikningu" -#: ../src/selection-chemistry.cpp:4333 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 msgid "Fit Page to Selection or Drawing" msgstr "Laga síðu að vali eða teikningu" @@ -12229,7 +12395,7 @@ msgstr " í %s" #: ../src/selection-describer.cpp:177 msgid " hidden in definitions" -msgstr "" +msgstr "falið í skilgreiningum" #: ../src/selection-describer.cpp:179 #, c-format @@ -12277,8 +12443,8 @@ msgstr "" #: ../src/selection-describer.cpp:236 #, c-format -msgid "%i objects selected of type %s" -msgid_plural "%i objects selected of types %s" +msgid "%1$i objects selected of type %2$s" +msgid_plural "%1$i objects selected of types %2$s" msgstr[0] "" msgstr[1] "" @@ -12345,14 +12511,14 @@ msgstr "" #: ../src/seltrans.cpp:1199 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" -msgstr "" +msgstr "Skekkja: %0.2f°; með Ctrl til að þrepa horn" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) #: ../src/seltrans.cpp:1274 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" -msgstr "" +msgstr "Snúa: %0.2f°; með Ctrl til að þrepa horn" #: ../src/seltrans.cpp:1311 #, c-format @@ -12378,38 +12544,38 @@ msgstr "Veldu skráarheiti til útflutnings" #: ../src/shortcuts.cpp:370 msgid "Select a file to import" -msgstr "" +msgstr "Veldu skrá til að flytja inn" -#: ../src/sp-anchor.cpp:125 +#: ../src/sp-anchor.cpp:111 #, c-format msgid "to %s" -msgstr "" +msgstr "í %s" -#: ../src/sp-anchor.cpp:129 +#: ../src/sp-anchor.cpp:115 msgid "without URI" -msgstr "" +msgstr "án URI-slóðar" -#: ../src/sp-ellipse.cpp:373 +#: ../src/sp-ellipse.cpp:344 msgid "Segment" msgstr "Hluti" -#: ../src/sp-ellipse.cpp:375 +#: ../src/sp-ellipse.cpp:346 msgid "Arc" msgstr "Bogi" #. Ellipse -#: ../src/sp-ellipse.cpp:378 ../src/sp-ellipse.cpp:385 +#: ../src/sp-ellipse.cpp:349 ../src/sp-ellipse.cpp:356 #: ../src/ui/dialog/inkscape-preferences.cpp:412 #: ../src/widgets/pencil-toolbar.cpp:163 msgid "Ellipse" msgstr "Sporbaugur" -#: ../src/sp-ellipse.cpp:382 +#: ../src/sp-ellipse.cpp:353 msgid "Circle" msgstr "Hringur" #. TRANSLATORS: "Flow region" is an area where text is allowed to flow -#: ../src/sp-flowregion.cpp:195 +#: ../src/sp-flowregion.cpp:181 msgid "Flow Region" msgstr "" @@ -12417,88 +12583,88 @@ 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:348 +#: ../src/sp-flowregion.cpp:334 msgid "Flow Excluded Region" msgstr "" -#: ../src/sp-flowtext.cpp:290 +#: ../src/sp-flowtext.cpp:280 msgid "Flowed Text" -msgstr "" +msgstr "Flæðitexti" -#: ../src/sp-flowtext.cpp:292 +#: ../src/sp-flowtext.cpp:282 msgid "Linked Flowed Text" -msgstr "" +msgstr "Tengdur flæðitexti" -#: ../src/sp-flowtext.cpp:298 ../src/sp-text.cpp:381 -#: ../src/ui/tools/text-tool.cpp:1566 +#: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 +#: ../src/ui/tools/text-tool.cpp:1557 msgid " [truncated]" -msgstr "" +msgstr " [afskorið]" -#: ../src/sp-flowtext.cpp:300 +#: ../src/sp-flowtext.cpp:290 #, c-format msgid "(%d character%s)" msgid_plural "(%d characters%s)" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "(%d stafur%s)" +msgstr[1] "(%d stafir%s)" -#: ../src/sp-guide.cpp:249 +#: ../src/sp-guide.cpp:246 msgid "Create Guides Around the Page" msgstr "Búa til stoðlínur í kringum síðu" -#: ../src/sp-guide.cpp:261 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2549 msgid "Delete All Guides" msgstr "Eyða öllum stoðlínum" #. Guide has probably been deleted and no longer has an attached namedview. -#: ../src/sp-guide.cpp:448 +#: ../src/sp-guide.cpp:445 msgid "Deleted" msgstr "Eytt" -#: ../src/sp-guide.cpp:457 +#: ../src/sp-guide.cpp:454 msgid "" "Shift+drag to rotate, Ctrl+drag to move origin, Del to " "delete" msgstr "" -#: ../src/sp-guide.cpp:461 +#: ../src/sp-guide.cpp:458 #, c-format msgid "vertical, at %s" -msgstr "" +msgstr "lóðrétt, við %s" -#: ../src/sp-guide.cpp:464 +#: ../src/sp-guide.cpp:461 #, c-format msgid "horizontal, at %s" -msgstr "" +msgstr "lárétt, við %s" -#: ../src/sp-guide.cpp:469 +#: ../src/sp-guide.cpp:466 #, c-format msgid "at %d degrees, through (%s,%s)" msgstr "við %d gráður, gegnum (%s,%s)" -#: ../src/sp-image.cpp:526 +#: ../src/sp-image.cpp:517 msgid "embedded" -msgstr "" +msgstr "ívafið" -#: ../src/sp-image.cpp:534 +#: ../src/sp-image.cpp:525 #, c-format msgid "[bad reference]: %s" -msgstr "" +msgstr "[gölluð tilvísun]: %s" -#: ../src/sp-image.cpp:535 +#: ../src/sp-image.cpp:526 #, c-format msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:332 +#: ../src/sp-item-group.cpp:322 msgid "Group" msgstr "Hópur" -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 #, c-format msgid "of %d object" msgstr "af %d hlut" -#: ../src/sp-item-group.cpp:338 ../src/sp-switch.cpp:82 +#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 #, c-format msgid "of %d objects" msgstr "af %d hlutum" @@ -12527,7 +12693,7 @@ msgstr "%s; síað (%s)" msgid "%s; filtered" msgstr "%s; síað" -#: ../src/sp-line.cpp:126 +#: ../src/sp-line.cpp:113 msgid "Line" msgstr "Lína" @@ -12535,101 +12701,101 @@ msgstr "Lína" msgid "An exception occurred during execution of the Path Effect." msgstr "" -#: ../src/sp-offset.cpp:339 +#: ../src/sp-offset.cpp:329 msgid "Linked Offset" msgstr "Tengd hliðrun" -#: ../src/sp-offset.cpp:341 +#: ../src/sp-offset.cpp:331 msgid "Dynamic Offset" msgstr "Breytileg hliðrun" #. TRANSLATORS COMMENT: %s is either "outset" or "inset" depending on sign -#: ../src/sp-offset.cpp:347 +#: ../src/sp-offset.cpp:337 #, c-format msgid "%s by %f pt" msgstr "%s um %f pt" -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:338 msgid "outset" msgstr "útsetja" -#: ../src/sp-offset.cpp:348 +#: ../src/sp-offset.cpp:338 msgid "inset" msgstr "innfella" -#: ../src/sp-path.cpp:70 +#: ../src/sp-path.cpp:60 msgid "Path" msgstr "Ferill" -#: ../src/sp-path.cpp:95 +#: ../src/sp-path.cpp:85 #, c-format msgid ", path effect: %s" -msgstr "" +msgstr ", ferilbrella: %s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:88 #, c-format msgid "%i node%s" -msgstr "" +msgstr "%i hnútur%s" -#: ../src/sp-path.cpp:98 +#: ../src/sp-path.cpp:88 #, c-format msgid "%i nodes%s" -msgstr "" +msgstr "%i hnútar%s" -#: ../src/sp-polygon.cpp:185 +#: ../src/sp-polygon.cpp:173 msgid "Polygon" msgstr "Marghyrningur" -#: ../src/sp-polyline.cpp:131 +#: ../src/sp-polyline.cpp:121 msgid "Polyline" msgstr "Fjöllína" #. Rectangle -#: ../src/sp-rect.cpp:163 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:153 ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Rectangle" msgstr "Rétthyrningur" #. Spiral -#: ../src/sp-spiral.cpp:230 ../src/ui/dialog/inkscape-preferences.cpp:420 +#: ../src/sp-spiral.cpp:220 ../src/ui/dialog/inkscape-preferences.cpp:420 #: ../share/extensions/gcodetools_area.inx.h:11 msgid "Spiral" msgstr "Spírall" #. TRANSLATORS: since turn count isn't an integer, please adjust the #. string as needed to deal with an localized plural forms. -#: ../src/sp-spiral.cpp:236 +#: ../src/sp-spiral.cpp:226 #, c-format msgid "with %3f turns" msgstr "með %3f beygjum" #. Star -#: ../src/sp-star.cpp:256 ../src/ui/dialog/inkscape-preferences.cpp:416 +#: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 #: ../src/widgets/star-toolbar.cpp:471 msgid "Star" msgstr "Stjarna" -#: ../src/sp-star.cpp:257 ../src/widgets/star-toolbar.cpp:464 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:464 msgid "Polygon" msgstr "Marghyrningur" #. while there will never be less than 3 vertices, we still need to #. make calls to ngettext because the pluralization may be different #. for various numbers >=3. The singular form is used as the index. -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertex" -msgstr "" +msgstr "með %d hlið" -#: ../src/sp-star.cpp:264 +#: ../src/sp-star.cpp:254 #, c-format msgid "with %d vertices" -msgstr "" +msgstr "með %d hliðum" -#: ../src/sp-switch.cpp:76 +#: ../src/sp-switch.cpp:62 msgid "Conditional Group" -msgstr "" +msgstr "Skilyrtur hópur" -#: ../src/sp-text.cpp:365 ../src/verbs.cpp:348 +#: ../src/sp-text.cpp:351 ../src/verbs.cpp:348 #: ../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 @@ -12644,56 +12810,56 @@ msgstr "" msgid "Text" msgstr "Texti" -#: ../src/sp-text.cpp:385 +#: ../src/sp-text.cpp:371 #, c-format msgid "on path%s (%s, %s)" msgstr "á ferli%s (%s, %s)" -#: ../src/sp-text.cpp:386 +#: ../src/sp-text.cpp:372 #, c-format msgid "%s (%s, %s)" msgstr "%s (%s, %s)" -#: ../src/sp-tref.cpp:230 +#: ../src/sp-tref.cpp:218 msgid "Cloned Character Data" msgstr "" -#: ../src/sp-tref.cpp:246 +#: ../src/sp-tref.cpp:234 msgid " from " msgstr " frá " -#: ../src/sp-tref.cpp:252 ../src/sp-use.cpp:281 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:269 msgid "[orphaned]" -msgstr "" +msgstr "[munaðarlaust]" -#: ../src/sp-tspan.cpp:218 +#: ../src/sp-tspan.cpp:203 msgid "Text Span" msgstr "" -#: ../src/sp-use.cpp:244 +#: ../src/sp-use.cpp:232 msgid "Symbol" msgstr "Tákn" -#: ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:234 msgid "Clone" msgstr "Klóni" -#: ../src/sp-use.cpp:254 ../src/sp-use.cpp:256 ../src/sp-use.cpp:258 +#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 #, c-format msgid "called %s" msgstr "kallað %s" -#: ../src/sp-use.cpp:258 +#: ../src/sp-use.cpp:246 msgid "Unnamed Symbol" msgstr "Ónefnt tákn" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:267 +#: ../src/sp-use.cpp:255 msgid "..." msgstr "..." -#: ../src/sp-use.cpp:276 +#: ../src/sp-use.cpp:264 #, c-format msgid "of: %s" msgstr "af: %s" @@ -12825,10 +12991,12 @@ msgstr "" #: ../src/text-chemistry.cpp:115 msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "" +"Flæðitextinn verður að vera sýnilegur svo hægt sé að setja hann á " +"feril." #: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2571 msgid "Put text on path" -msgstr "" +msgstr "Setja texta á feril" #: ../src/text-chemistry.cpp:197 msgid "Select a text on path to remove it from path." @@ -12840,7 +13008,7 @@ msgstr "" #: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 msgid "Remove text from path" -msgstr "" +msgstr "Fjarlægja texta af ferli" #: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 msgid "Select text(s) to remove kerns from." @@ -12870,19 +13038,20 @@ msgstr "" #: ../src/text-chemistry.cpp:484 msgid "Select flowed text(s) to convert." -msgstr "" +msgstr "Veldu flæðitexta til að umbreyta." #: ../src/text-chemistry.cpp:502 msgid "The flowed text(s) must be visible in order to be converted." msgstr "" +"Flæðitextinn verður að vera sýnilegur svo hægt sé að umbreyta honum." #: ../src/text-chemistry.cpp:530 msgid "Convert flowed text to text" -msgstr "" +msgstr "Umbreyta flæðitexta í venjulegan texta" #: ../src/text-chemistry.cpp:535 msgid "No flowed text(s) to convert in the selection." -msgstr "" +msgstr "Enginn flæðitexti í valinu sem hægt er að umbreyta." #: ../src/text-editing.cpp:44 msgid "You cannot edit cloned character data." @@ -12891,42 +13060,42 @@ msgstr "" #: ../src/trace/potrace/inkscape-potrace.cpp:512 #: ../src/trace/potrace/inkscape-potrace.cpp:575 msgid "Trace: %1. %2 nodes" -msgstr "" +msgstr "Línuteiknun: %1. %2 hnútar" #: ../src/trace/trace.cpp:59 ../src/trace/trace.cpp:124 #: ../src/trace/trace.cpp:132 ../src/trace/trace.cpp:225 #: ../src/ui/dialog/pixelartdialog.cpp:370 #: ../src/ui/dialog/pixelartdialog.cpp:402 msgid "Select an image to trace" -msgstr "Veldu mynd til að draga línur eftir (trace)" +msgstr "Veldu mynd til að draga línur eftir" #: ../src/trace/trace.cpp:94 msgid "Select only one image to trace" -msgstr "" +msgstr "Veldu aðeins eina mynd til að draga línur eftir" #: ../src/trace/trace.cpp:112 msgid "Select one image and one or more shapes above it" -msgstr "" +msgstr "Veldu eina mynd og eitt eða fleiri form fyrir ofan hana" #: ../src/trace/trace.cpp:216 msgid "Trace: No active desktop" -msgstr "" +msgstr "Línuteiknun: Ekkert virkt skjáborð" #: ../src/trace/trace.cpp:313 msgid "Invalid SIOX result" -msgstr "" +msgstr "Ógild SIOX útkoma" #: ../src/trace/trace.cpp:406 msgid "Trace: No active document" -msgstr "" +msgstr "Línuteiknun: Ekkert vikt skjal" #: ../src/trace/trace.cpp:438 msgid "Trace: Image has no bitmap data" -msgstr "" +msgstr "Línuteiknun: Myndin er ekki með nein bitamyndagögn" #: ../src/trace/trace.cpp:445 msgid "Trace: Starting trace..." -msgstr "" +msgstr "Línuteiknun: Hef rakningu..." #. ## inform the document, so we can undo #: ../src/trace/trace.cpp:548 @@ -12936,33 +13105,33 @@ msgstr "Línuteikna bitamynd" #: ../src/trace/trace.cpp:552 #, c-format msgid "Trace: Done. %ld nodes created" -msgstr "" +msgstr "Línuteiknun: Lokið. Gerði %ld hnúta" #. check whether something is selected #: ../src/ui/clipboard.cpp:262 msgid "Nothing was copied." -msgstr "" +msgstr "Ekkert var afritað." #: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 #: ../src/ui/clipboard.cpp:634 msgid "Nothing on the clipboard." -msgstr "" +msgstr "Ekkert á klippispjaldi." #: ../src/ui/clipboard.cpp:451 msgid "Select object(s) to paste style to." -msgstr "" +msgstr "Veldu hluti sem á að líma stíla á." #: ../src/ui/clipboard.cpp:462 ../src/ui/clipboard.cpp:479 msgid "No style on the clipboard." -msgstr "" +msgstr "Enginn stíll á klippispjaldi." #: ../src/ui/clipboard.cpp:504 msgid "Select object(s) to paste size to." -msgstr "" +msgstr "Veldu hluti sem á að líma stærð á." #: ../src/ui/clipboard.cpp:511 msgid "No size on the clipboard." -msgstr "" +msgstr "Engin stærð á klippispjaldi." #: ../src/ui/clipboard.cpp:567 msgid "Select object(s) to paste live path effect to." @@ -12971,11 +13140,11 @@ msgstr "" #. no_effect: #: ../src/ui/clipboard.cpp:592 msgid "No effect on the clipboard." -msgstr "" +msgstr "Engin brella á klippispjaldi." #: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 msgid "Clipboard does not contain a path." -msgstr "Klippiborðið inniheldur ekki nothæfan feril." +msgstr "Klippispjaldið inniheldur ekki nothæfan feril." #. * #. * Constructor @@ -13033,7 +13202,7 @@ msgstr "Dreifa" #: ../src/ui/dialog/align-and-distribute.cpp:420 msgid "Minimum horizontal gap (in px units) between bounding boxes" -msgstr "" +msgstr "Lágmarks lárétt millibil (í punktum) milli umgjarða" #. TRANSLATORS: "H:" stands for horizontal gap #: ../src/ui/dialog/align-and-distribute.cpp:422 @@ -13043,7 +13212,7 @@ msgstr "_H:" #: ../src/ui/dialog/align-and-distribute.cpp:430 msgid "Minimum vertical gap (in px units) between bounding boxes" -msgstr "" +msgstr "Lágmarks lóðrétt millibil (í punktum) milli umgjarða" #. TRANSLATORS: Vertical gap #: ../src/ui/dialog/align-and-distribute.cpp:432 @@ -13064,7 +13233,7 @@ msgstr "Laga til tengilínunet" #: ../src/ui/dialog/align-and-distribute.cpp:591 msgid "Exchange Positions" -msgstr "" +msgstr "Víxla staðsetningum" #: ../src/ui/dialog/align-and-distribute.cpp:625 msgid "Unclump" @@ -13087,7 +13256,7 @@ msgid "Rearrange" msgstr "Endurraða" #: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1727 +#: ../src/widgets/toolbox.cpp:1729 msgid "Nodes" msgstr "Hnútar" @@ -13103,52 +13272,52 @@ msgstr "_Meðhöndla valið sem : hóp" #: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 #: ../src/verbs.cpp:3025 msgid "Align right edges of objects to the left edge of the anchor" -msgstr "" +msgstr "Jafna hægri jaðra hluta við vinstri jaðar festipunktsins" #: ../src/ui/dialog/align-and-distribute.cpp:879 ../src/verbs.cpp:3026 #: ../src/verbs.cpp:3027 msgid "Align left edges" -msgstr "" +msgstr "Jafna vinstri jaðra" #: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 #: ../src/verbs.cpp:3029 msgid "Center on vertical axis" -msgstr "" +msgstr "Miðja á lóðréttum ás" #: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 #: ../src/verbs.cpp:3031 msgid "Align right sides" -msgstr "" +msgstr "Jafna hægri jaðra" #: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 #: ../src/verbs.cpp:3033 msgid "Align left edges of objects to the right edge of the anchor" -msgstr "" +msgstr "Jafna vinstri jaðra hluta við hægri jaðar festipunktsins" #: ../src/ui/dialog/align-and-distribute.cpp:891 ../src/verbs.cpp:3034 #: ../src/verbs.cpp:3035 msgid "Align bottom edges of objects to the top edge of the anchor" -msgstr "" +msgstr "Jafna neðri jaðra hluta við efri jaðar festipunktsins" #: ../src/ui/dialog/align-and-distribute.cpp:894 ../src/verbs.cpp:3036 #: ../src/verbs.cpp:3037 msgid "Align top edges" -msgstr "" +msgstr "Jafna efri jaðra" #: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 #: ../src/verbs.cpp:3039 msgid "Center on horizontal axis" -msgstr "" +msgstr "Miðja á láréttum ás" #: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 #: ../src/verbs.cpp:3041 msgid "Align bottom edges" -msgstr "" +msgstr "Jafna neðri jaðra" #: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 #: ../src/verbs.cpp:3043 msgid "Align top edges of objects to the bottom edge of the anchor" -msgstr "" +msgstr "Jafna efri jaðra hluta við neðri jaðar festipunktsins" #: ../src/ui/dialog/align-and-distribute.cpp:908 msgid "Align baseline anchors of texts horizontally" @@ -13160,35 +13329,35 @@ msgstr "Jafna grunnlínur texta" #: ../src/ui/dialog/align-and-distribute.cpp:916 msgid "Make horizontal gaps between objects equal" -msgstr "" +msgstr "Gera lárétt millibil hluta jöfn" #: ../src/ui/dialog/align-and-distribute.cpp:920 msgid "Distribute left edges equidistantly" -msgstr "" +msgstr "Dreifa vinstri jöðrum með jöfnu millibili" #: ../src/ui/dialog/align-and-distribute.cpp:923 msgid "Distribute centers equidistantly horizontally" -msgstr "" +msgstr "Dreifa miðjum með jöfnu millibili lárétt" #: ../src/ui/dialog/align-and-distribute.cpp:926 msgid "Distribute right edges equidistantly" -msgstr "" +msgstr "Dreifa hægri jöðrum með jöfnu millibili" #: ../src/ui/dialog/align-and-distribute.cpp:930 msgid "Make vertical gaps between objects equal" -msgstr "" +msgstr "Gera lóðrétt millibil hluta jöfn" #: ../src/ui/dialog/align-and-distribute.cpp:934 msgid "Distribute top edges equidistantly" -msgstr "" +msgstr "Dreifa efri jöðrum með jöfnu millibili" #: ../src/ui/dialog/align-and-distribute.cpp:937 msgid "Distribute centers equidistantly vertically" -msgstr "" +msgstr "Dreifa miðjum með jöfnu millibili lóðrétt" #: ../src/ui/dialog/align-and-distribute.cpp:940 msgid "Distribute bottom edges equidistantly" -msgstr "" +msgstr "Dreifa neðri jöðrum með jöfnu millibili" #: ../src/ui/dialog/align-and-distribute.cpp:945 msgid "Distribute baseline anchors of texts horizontally" @@ -13205,15 +13374,15 @@ msgstr "Laga fallega til valið tengilínunet" #: ../src/ui/dialog/align-and-distribute.cpp:957 msgid "Exchange positions of selected objects - selection order" -msgstr "" +msgstr "Víxla staðsetningum á völdum hlutum - röð vals" #: ../src/ui/dialog/align-and-distribute.cpp:960 msgid "Exchange positions of selected objects - stacking order" -msgstr "" +msgstr "Víxla staðsetningum á völdum hlutum - röð stöflunar" #: ../src/ui/dialog/align-and-distribute.cpp:963 msgid "Exchange positions of selected objects - clockwise rotate" -msgstr "" +msgstr "Víxla staðsetningum á völdum hlutum - snúið réttsælis" #: ../src/ui/dialog/align-and-distribute.cpp:968 msgid "Randomize centers in both dimensions" @@ -13221,21 +13390,22 @@ msgstr "Slembigera miðjur í báðar áttir" #: ../src/ui/dialog/align-and-distribute.cpp:971 msgid "Unclump objects: try to equalize edge-to-edge distances" -msgstr "" +msgstr "Afklumpa hluti: reyna að jafna út fjarlægðir jaðar-í-jaðar" #: ../src/ui/dialog/align-and-distribute.cpp:976 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" +"Færa hluti eins lítið og mögulegt er til að umgjarðir þeirra skarist ekki" #: ../src/ui/dialog/align-and-distribute.cpp:984 msgid "Align selected nodes to a common horizontal line" -msgstr "" +msgstr "Jafna valda hnúta á sameiginlega lárétta línu" #: ../src/ui/dialog/align-and-distribute.cpp:987 msgid "Align selected nodes to a common vertical line" -msgstr "" +msgstr "Jafna valda hnúta á sameiginlega lóðrétta línu" #: ../src/ui/dialog/align-and-distribute.cpp:990 msgid "Distribute selected nodes horizontally" @@ -13248,19 +13418,19 @@ msgstr "Dreifa völdum hnútum lóðrétt" #. Rest of the widgetry #: ../src/ui/dialog/align-and-distribute.cpp:998 msgid "Last selected" -msgstr "" +msgstr "Síðast valinn" #: ../src/ui/dialog/align-and-distribute.cpp:999 msgid "First selected" -msgstr "" +msgstr "Fyrst valinn" #: ../src/ui/dialog/align-and-distribute.cpp:1000 msgid "Biggest object" -msgstr "" +msgstr "Stærsta hlutinn" #: ../src/ui/dialog/align-and-distribute.cpp:1001 msgid "Smallest object" -msgstr "" +msgstr "Minnsta hlutinn" #: ../src/ui/dialog/align-and-distribute.cpp:1004 msgid "Selection Area" @@ -13660,7 +13830,7 @@ msgstr "Breyta litblæ flísar um þessa prósentu fyrir hverja röð" #: ../src/ui/dialog/clonetiler.cpp:692 msgid "Change the tile hue by this percentage for each column" -msgstr "Breyta libblæ flísar um þessa prósentu fyrir hvern dálk" +msgstr "Breyta litblæ flísar um þessa prósentu fyrir hvern dálk" #: ../src/ui/dialog/clonetiler.cpp:698 msgid "Randomize the tile hue by this percentage" @@ -13967,26 +14137,26 @@ msgid "" "If you want to clone several objects, group them and clone the " "group." msgstr "" -"Ef þú villt klóna marga hluti, hópaðu þá saman og klónaðu " -"hópinn." +"Ef þú villt klóna marga hluti, hópaðu þá saman og klónaðu hópinn." #: ../src/ui/dialog/clonetiler.cpp:2238 msgid "Creating tiled clones..." msgstr "Bý til tigluð klón..." -#: ../src/ui/dialog/clonetiler.cpp:2651 +#: ../src/ui/dialog/clonetiler.cpp:2654 msgid "Create tiled clones" msgstr "Búa til tiglaða klóna" -#: ../src/ui/dialog/clonetiler.cpp:2884 +#: ../src/ui/dialog/clonetiler.cpp:2887 msgid "Per row:" msgstr "Á röð:" -#: ../src/ui/dialog/clonetiler.cpp:2902 +#: ../src/ui/dialog/clonetiler.cpp:2905 msgid "Per column:" msgstr "Á dálk:" -#: ../src/ui/dialog/clonetiler.cpp:2910 +#: ../src/ui/dialog/clonetiler.cpp:2913 msgid "Randomize:" msgstr "Slembigert:" @@ -14043,287 +14213,287 @@ msgid "Release log messages" msgstr "Sleppa meldingum" #: ../src/ui/dialog/document-metadata.cpp:88 -#: ../src/ui/dialog/document-properties.cpp:159 +#: ../src/ui/dialog/document-properties.cpp:166 msgid "Metadata" msgstr "Lýsigögn" #: ../src/ui/dialog/document-metadata.cpp:89 -#: ../src/ui/dialog/document-properties.cpp:160 +#: ../src/ui/dialog/document-properties.cpp:167 msgid "License" msgstr "Notkunarleyfi" #: ../src/ui/dialog/document-metadata.cpp:126 -#: ../src/ui/dialog/document-properties.cpp:1007 +#: ../src/ui/dialog/document-properties.cpp:978 msgid "Dublin Core Entities" msgstr "Dublin Core einindi" #: ../src/ui/dialog/document-metadata.cpp:168 -#: ../src/ui/dialog/document-properties.cpp:1069 +#: ../src/ui/dialog/document-properties.cpp:1040 msgid "License" msgstr "Notkunarleyfi" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "Use antialiasing" msgstr "Nota afstöllun" -#: ../src/ui/dialog/document-properties.cpp:111 +#: ../src/ui/dialog/document-properties.cpp:118 msgid "If unset, no antialiasing will be done on the drawing" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:119 msgid "Show page _border" msgstr "Sýna _jaðar síðu" -#: ../src/ui/dialog/document-properties.cpp:112 +#: ../src/ui/dialog/document-properties.cpp:119 msgid "If set, rectangular page border is shown" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "Border on _top of drawing" msgstr "Jaðar ofan á _teikningu" -#: ../src/ui/dialog/document-properties.cpp:113 +#: ../src/ui/dialog/document-properties.cpp:120 msgid "If set, border is always on top of the drawing" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "_Show border shadow" msgstr "_Sýna skugga jaðars" -#: ../src/ui/dialog/document-properties.cpp:114 +#: ../src/ui/dialog/document-properties.cpp:121 msgid "If set, page border shows a shadow on its right and lower side" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "Back_ground color:" msgstr "Bak_grunnslitur:" -#: ../src/ui/dialog/document-properties.cpp:115 +#: ../src/ui/dialog/document-properties.cpp:122 msgid "" "Color of the page background. Note: transparency setting ignored while " "editing but used when exporting to bitmap." msgstr "" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Border _color:" msgstr "Lit_ur jaðars:" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Page border color" msgstr "Litur síðujaðra" -#: ../src/ui/dialog/document-properties.cpp:116 +#: ../src/ui/dialog/document-properties.cpp:123 msgid "Color of the page border" msgstr "Litur á jaðri síðu" -#: ../src/ui/dialog/document-properties.cpp:117 +#: ../src/ui/dialog/document-properties.cpp:124 msgid "Display _units:" -msgstr "" +msgstr "Sý_na einingar:" #. --------------------------------------------------------------- #. General snap options -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:128 msgid "Show _guides" msgstr "Sýna st_oðlínur" -#: ../src/ui/dialog/document-properties.cpp:121 +#: ../src/ui/dialog/document-properties.cpp:128 msgid "Show or hide guides" msgstr "Sýna eða fela stoðlínur" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Guide co_lor:" msgstr "_Litur stoðlínu:" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Guideline color" msgstr "Litur stoðlínu" -#: ../src/ui/dialog/document-properties.cpp:122 +#: ../src/ui/dialog/document-properties.cpp:129 msgid "Color of guidelines" msgstr "Litur stoðlína" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "_Highlight color:" msgstr "Litur á ljó_mun:" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Highlighted guideline color" -msgstr "" +msgstr "Litur stoðlínu við ljómun" -#: ../src/ui/dialog/document-properties.cpp:123 +#: ../src/ui/dialog/document-properties.cpp:130 msgid "Color of a guideline when it is under mouse" msgstr "Litur stoðlínu þegar hún er undir músarbendlinum" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:132 msgid "Snap _distance" msgstr "_Gripfjarlægð" -#: ../src/ui/dialog/document-properties.cpp:125 +#: ../src/ui/dialog/document-properties.cpp:132 msgid "Snap only when _closer than:" -msgstr "Grípa í þegar verið er nær en:" +msgstr "Aðeins _grípa í þegar verið er nær en:" -#: ../src/ui/dialog/document-properties.cpp:125 -#: ../src/ui/dialog/document-properties.cpp:130 -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:132 +#: ../src/ui/dialog/document-properties.cpp:137 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Always snap" msgstr "Alltaf grípa" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Snapping distance, in screen pixels, for snapping to objects" -msgstr "" +msgstr "Gripfjarlægð, í skjádílum, við grip í hluti" -#: ../src/ui/dialog/document-properties.cpp:126 +#: ../src/ui/dialog/document-properties.cpp:133 msgid "Always snap to objects, regardless of their distance" -msgstr "" +msgstr "Alltaf grípa í hluti, sama hver fjarlægðin er" -#: ../src/ui/dialog/document-properties.cpp:127 +#: ../src/ui/dialog/document-properties.cpp:134 msgid "" "If set, objects only snap to another object when it's within the range " "specified below" msgstr "" #. Options for snapping to grids -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:137 msgid "Snap d_istance" msgstr "Gri_pfjarlægð" -#: ../src/ui/dialog/document-properties.cpp:130 +#: ../src/ui/dialog/document-properties.cpp:137 msgid "Snap only when c_loser than:" -msgstr "G_rípa í þegar verið er nær en:" +msgstr "Aðeins grí_pa í þegar verið er nær en:" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Snapping distance, in screen pixels, for snapping to grid" -msgstr "" +msgstr "Gripfjarlægð, í skjádílum, við grip í hnitanet" -#: ../src/ui/dialog/document-properties.cpp:131 +#: ../src/ui/dialog/document-properties.cpp:138 msgid "Always snap to grids, regardless of the distance" -msgstr "" +msgstr "Alltaf grípa í hnitanet, sama hver fjarlægðin er" -#: ../src/ui/dialog/document-properties.cpp:132 +#: ../src/ui/dialog/document-properties.cpp:139 msgid "" "If set, objects only snap to a grid line when it's within the range " "specified below" msgstr "" #. Options for snapping to guides -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Snap dist_ance" msgstr "Grip_fjarlægð" -#: ../src/ui/dialog/document-properties.cpp:135 +#: ../src/ui/dialog/document-properties.cpp:142 msgid "Snap only when close_r than:" msgstr "Grípa í þegar verið er nær _en:" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Snapping distance, in screen pixels, for snapping to guides" -msgstr "" +msgstr "Gripfjarlægð, í skjádílum, við grip í stoðlínur" -#: ../src/ui/dialog/document-properties.cpp:136 +#: ../src/ui/dialog/document-properties.cpp:143 msgid "Always snap to guides, regardless of the distance" -msgstr "" +msgstr "Alltaf grípa í stoðlínur, sama hver fjarlægðin er" -#: ../src/ui/dialog/document-properties.cpp:137 +#: ../src/ui/dialog/document-properties.cpp:144 msgid "" "If set, objects only snap to a guide when it's within the range specified " "below" msgstr "" #. --------------------------------------------------------------- -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:147 msgid "Snap to clip paths" -msgstr "" +msgstr "Grípa í afmörkunarferla" -#: ../src/ui/dialog/document-properties.cpp:140 +#: ../src/ui/dialog/document-properties.cpp:147 msgid "When snapping to paths, then also try snapping to clip paths" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "Snap to mask paths" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:141 +#: ../src/ui/dialog/document-properties.cpp:148 msgid "When snapping to paths, then also try snapping to mask paths" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "Snap perpendicularly" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:142 +#: ../src/ui/dialog/document-properties.cpp:149 msgid "" "When snapping to paths or guides, then also try snapping perpendicularly" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "Snap tangentially" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:143 +#: ../src/ui/dialog/document-properties.cpp:150 msgid "When snapping to paths or guides, then also try snapping tangentially" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:153 msgctxt "Grid" msgid "_New" msgstr "_Nýtt" -#: ../src/ui/dialog/document-properties.cpp:146 +#: ../src/ui/dialog/document-properties.cpp:153 msgid "Create new grid." msgstr "Búa til nýtt hnitanet." -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:154 msgctxt "Grid" msgid "_Remove" msgstr "_Fjarlægja" -#: ../src/ui/dialog/document-properties.cpp:147 +#: ../src/ui/dialog/document-properties.cpp:154 msgid "Remove selected grid." msgstr "Fjarlægja valið hnitanet." -#: ../src/ui/dialog/document-properties.cpp:154 -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/ui/dialog/document-properties.cpp:161 +#: ../src/widgets/toolbox.cpp:1836 msgid "Guides" msgstr "Stoðlínur" -#: ../src/ui/dialog/document-properties.cpp:156 ../src/verbs.cpp:2827 +#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2827 msgid "Snap" msgstr "Grip" -#: ../src/ui/dialog/document-properties.cpp:158 +#: ../src/ui/dialog/document-properties.cpp:165 msgid "Scripting" msgstr "Skriftun" -#: ../src/ui/dialog/document-properties.cpp:322 +#: ../src/ui/dialog/document-properties.cpp:329 msgid "General" msgstr "Almennt" -#: ../src/ui/dialog/document-properties.cpp:324 +#: ../src/ui/dialog/document-properties.cpp:331 msgid "Page Size" msgstr "Blaðsíðustærð" -#: ../src/ui/dialog/document-properties.cpp:326 +#: ../src/ui/dialog/document-properties.cpp:333 msgid "Display" msgstr "Birting" -#: ../src/ui/dialog/document-properties.cpp:361 +#: ../src/ui/dialog/document-properties.cpp:368 msgid "Guides" msgstr "Stoðlínur" -#: ../src/ui/dialog/document-properties.cpp:379 +#: ../src/ui/dialog/document-properties.cpp:386 msgid "Snap to objects" msgstr "Grípa í hluti" -#: ../src/ui/dialog/document-properties.cpp:381 +#: ../src/ui/dialog/document-properties.cpp:388 msgid "Snap to grids" msgstr "Grípa í hnitanet" -#: ../src/ui/dialog/document-properties.cpp:383 +#: ../src/ui/dialog/document-properties.cpp:390 msgid "Snap to guides" msgstr "Grípa í stoðlínur" -#: ../src/ui/dialog/document-properties.cpp:385 +#: ../src/ui/dialog/document-properties.cpp:392 msgid "Miscellaneous" msgstr "Ýmislegt" @@ -14331,135 +14501,135 @@ msgstr "Ýmislegt" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:498 ../src/verbs.cpp:3008 +#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:3008 msgid "Link Color Profile" msgstr "Tengja litasnið" -#: ../src/ui/dialog/document-properties.cpp:599 +#: ../src/ui/dialog/document-properties.cpp:606 msgid "Remove linked color profile" msgstr "Fjarlægja tengt litasnið" -#: ../src/ui/dialog/document-properties.cpp:613 +#: ../src/ui/dialog/document-properties.cpp:620 msgid "Linked Color Profiles:" msgstr "Tengd litasnið:" -#: ../src/ui/dialog/document-properties.cpp:615 +#: ../src/ui/dialog/document-properties.cpp:622 msgid "Available Color Profiles:" msgstr "Tiltæk litasnið:" -#: ../src/ui/dialog/document-properties.cpp:617 +#: ../src/ui/dialog/document-properties.cpp:624 msgid "Link Profile" msgstr "Tengja litasnið" -#: ../src/ui/dialog/document-properties.cpp:626 +#: ../src/ui/dialog/document-properties.cpp:627 msgid "Unlink Profile" msgstr "Aftengja litasnið" -#: ../src/ui/dialog/document-properties.cpp:710 +#: ../src/ui/dialog/document-properties.cpp:705 msgid "Profile Name" msgstr "Heiti litasniðs" -#: ../src/ui/dialog/document-properties.cpp:746 +#: ../src/ui/dialog/document-properties.cpp:741 msgid "External scripts" msgstr "Ytri skriftuskrár" -#: ../src/ui/dialog/document-properties.cpp:747 +#: ../src/ui/dialog/document-properties.cpp:742 msgid "Embedded scripts" -msgstr "" +msgstr "ívafðar skriftur" -#: ../src/ui/dialog/document-properties.cpp:752 +#: ../src/ui/dialog/document-properties.cpp:747 msgid "External script files:" msgstr "Ytri skriftuskrár:" -#: ../src/ui/dialog/document-properties.cpp:754 +#: ../src/ui/dialog/document-properties.cpp:749 msgid "Add the current file name or browse for a file" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:763 -#: ../src/ui/dialog/document-properties.cpp:852 +#: ../src/ui/dialog/document-properties.cpp:752 +#: ../src/ui/dialog/document-properties.cpp:829 #: ../src/ui/widget/selected-style.cpp:356 msgid "Remove" msgstr "Fjarlægja" -#: ../src/ui/dialog/document-properties.cpp:833 +#: ../src/ui/dialog/document-properties.cpp:816 msgid "Filename" msgstr "Skráarheiti" -#: ../src/ui/dialog/document-properties.cpp:841 +#: ../src/ui/dialog/document-properties.cpp:824 msgid "Embedded script files:" -msgstr "" +msgstr "Ívafðar skriftuskrár:" -#: ../src/ui/dialog/document-properties.cpp:843 +#: ../src/ui/dialog/document-properties.cpp:826 msgid "New" msgstr "Nýtt" -#: ../src/ui/dialog/document-properties.cpp:922 +#: ../src/ui/dialog/document-properties.cpp:893 msgid "Script id" -msgstr "" +msgstr "Auðkenni skriftu" -#: ../src/ui/dialog/document-properties.cpp:928 +#: ../src/ui/dialog/document-properties.cpp:899 msgid "Content:" msgstr "Innihald:" -#: ../src/ui/dialog/document-properties.cpp:1045 +#: ../src/ui/dialog/document-properties.cpp:1016 msgid "_Save as default" msgstr "Vi_sta sem sjálfgefið" -#: ../src/ui/dialog/document-properties.cpp:1046 +#: ../src/ui/dialog/document-properties.cpp:1017 msgid "Save this metadata as the default metadata" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:1047 +#: ../src/ui/dialog/document-properties.cpp:1018 msgid "Use _default" msgstr "Nota _sjálfgefið" -#: ../src/ui/dialog/document-properties.cpp:1048 +#: ../src/ui/dialog/document-properties.cpp:1019 msgid "Use the previously saved default metadata here" msgstr "" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1121 +#: ../src/ui/dialog/document-properties.cpp:1092 msgid "Add external script..." msgstr "Bæta við ytri skriftuskrá..." -#: ../src/ui/dialog/document-properties.cpp:1160 +#: ../src/ui/dialog/document-properties.cpp:1131 msgid "Select a script to load" -msgstr "" +msgstr "Veldu skriftu til að hlaða inn" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1188 +#: ../src/ui/dialog/document-properties.cpp:1159 msgid "Add embedded script..." -msgstr "" +msgstr "Bæta við ívafinni skriftu..." #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1219 +#: ../src/ui/dialog/document-properties.cpp:1190 msgid "Remove external script" msgstr "Fjarlægja skriftuskrá" #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1249 +#: ../src/ui/dialog/document-properties.cpp:1220 msgid "Remove embedded script" -msgstr "" +msgstr "Fjarlægja ívafða skriftu" #. TODO repr->set_content(_EmbeddedContent.get_buffer()->get_text()); #. inform the document, so we can undo -#: ../src/ui/dialog/document-properties.cpp:1346 +#: ../src/ui/dialog/document-properties.cpp:1317 msgid "Edit embedded script" -msgstr "" +msgstr "Breyta ívafinni skriftu" -#: ../src/ui/dialog/document-properties.cpp:1434 +#: ../src/ui/dialog/document-properties.cpp:1405 msgid "Creation" msgstr "Útbúa" -#: ../src/ui/dialog/document-properties.cpp:1435 +#: ../src/ui/dialog/document-properties.cpp:1406 msgid "Defined grids" msgstr "Skilgreind hnitanet" -#: ../src/ui/dialog/document-properties.cpp:1682 +#: ../src/ui/dialog/document-properties.cpp:1653 msgid "Remove grid" msgstr "Fjarlægja hnitanet" -#: ../src/ui/dialog/document-properties.cpp:1770 +#: ../src/ui/dialog/document-properties.cpp:1741 msgid "Changed default display unit" msgstr "" @@ -14491,7 +14661,7 @@ msgstr "_Flytja út sem..." #: ../src/ui/dialog/export.cpp:174 msgid "B_atch export all selected objects" -msgstr "Magnflytja út alla valda hluti" +msgstr "_Magnflytja út alla valda hluti" #: ../src/ui/dialog/export.cpp:174 msgid "" @@ -14515,7 +14685,7 @@ msgstr "Loka þegar er búið" #: ../src/ui/dialog/export.cpp:177 msgid "Once the export completes, close this dialog" -msgstr "" +msgstr "Loka þessum skilaboðaglugga þegar útflutningi er lokið" #: ../src/ui/dialog/export.cpp:179 msgid "_Export" @@ -14585,8 +14755,8 @@ msgstr "Flytja út bitamyndarskrá með þessum stillingum" #, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" -msgstr[0] "Magnflytja út %d valinn hlut" -msgstr[1] "Magnflytja út %d valda hluti" +msgstr[0] "M_agnflytja út %d valinn hlut" +msgstr[1] "M_agnflytja út %d valda hluti" #: ../src/ui/dialog/export.cpp:927 msgid "Export in progress" @@ -14613,7 +14783,7 @@ msgstr "Gat ekki flutt út í skráarnafnið %s.\n" #: ../src/ui/dialog/export.cpp:1077 #, c-format msgid "Could not export to filename %s." -msgstr "" +msgstr "Gat ekki flutt út í skráarheitið %s." #: ../src/ui/dialog/export.cpp:1092 #, c-format @@ -14781,12 +14951,12 @@ msgstr "Allar bitamyndir" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1042 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1600 msgid "Append filename extension automatically" -msgstr "" +msgstr "Bæta skráarendingu við sjálfkrafa" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1215 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1468 msgid "Guess from extension" -msgstr "" +msgstr "Giska út frá endingu" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1487 msgid "Left edge of source" @@ -14822,10 +14992,12 @@ msgstr "" #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1495 msgid "Resolution (dots per inch)" -msgstr "" +msgstr "Upplausn (mynddílar á tommu - PÁT)" -#. #########################################. ## EXTRA WIDGET -- SOURCE SIDE -#. #########################################. ##### Export options buttons/spinners, etc +#. ######################################### +#. ## EXTRA WIDGET -- SOURCE SIDE +#. ######################################### +#. ##### Export options buttons/spinners, etc #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1533 msgid "Document" msgstr "Skjal" @@ -14863,7 +15035,7 @@ msgstr "Forskoða" #: ../src/ui/dialog/filedialogimpl-win32.cpp:744 msgid "No file selected" -msgstr "" +msgstr "Engin skrá valin" #: ../src/ui/dialog/fill-and-stroke.cpp:62 msgid "_Fill" @@ -14898,7 +15070,7 @@ msgstr "Myndskrá" #: ../src/ui/dialog/filter-effects-dialog.cpp:659 msgid "Selected SVG Element" -msgstr "" +msgstr "Valið SVG eigindi" #. TODO: any image, not just svg #: ../src/ui/dialog/filter-effects-dialog.cpp:729 @@ -14974,11 +15146,11 @@ msgstr "Z hnit" #: ../src/ui/dialog/filter-effects-dialog.cpp:1205 msgid "Points At" -msgstr "" +msgstr "Beinist að" #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Specular Exponent" -msgstr "" +msgstr "Veldisvísir endurkasts" #: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Exponent value controlling the focus for the light source" @@ -14998,7 +15170,7 @@ msgstr "" #: ../src/ui/dialog/filter-effects-dialog.cpp:1274 msgid "New light source" -msgstr "" +msgstr "Nýr ljósgjafi" #: ../src/ui/dialog/filter-effects-dialog.cpp:1325 msgid "_Duplicate" @@ -15034,7 +15206,7 @@ msgstr "" #: ../src/ui/dialog/filter-effects-dialog.cpp:1793 msgid "_Effect" -msgstr "Sjónbrella" +msgstr "Sjón_brella" #: ../src/ui/dialog/filter-effects-dialog.cpp:1803 msgid "Connections" @@ -15054,11 +15226,11 @@ msgstr "" #: ../src/ui/dialog/filter-effects-dialog.cpp:2729 msgid "Add Effect:" -msgstr "" +msgstr "Bæta við sjónhverfingu:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2730 msgid "No effect selected" -msgstr "" +msgstr "Engin brella valin" #: ../src/ui/dialog/filter-effects-dialog.cpp:2731 msgid "No filter selected" @@ -15066,7 +15238,7 @@ msgstr "Engin sía valin" #: ../src/ui/dialog/filter-effects-dialog.cpp:2776 msgid "Effect parameters" -msgstr "" +msgstr "Viðföng sjónbrellu" #: ../src/ui/dialog/filter-effects-dialog.cpp:2777 msgid "Filter General Settings" @@ -15094,11 +15266,11 @@ msgstr "Hlutföll:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2836 msgid "Width of filter effects region" -msgstr "" +msgstr "Breidd áhrifasvæðis síu" #: ../src/ui/dialog/filter-effects-dialog.cpp:2836 msgid "Height of filter effects region" -msgstr "" +msgstr "Hæð áhrifasvæðis síu" #: ../src/ui/dialog/filter-effects-dialog.cpp:2842 msgid "" @@ -15194,7 +15366,7 @@ msgstr "" #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) #: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "Kernel:" -msgstr "" +msgstr "Kjarni:" #: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "" @@ -15241,7 +15413,7 @@ msgstr "" #: ../src/ui/dialog/filter-effects-dialog.cpp:2868 msgid "Preserve Alpha" -msgstr "Varðveita Alfa" +msgstr "Varðveita alfa" #: ../src/ui/dialog/filter-effects-dialog.cpp:2868 msgid "If set, the alpha channel won't be altered by this filter primitive." @@ -15510,316 +15682,318 @@ msgstr "" msgid "Set filter primitive attribute" msgstr "" -#: ../src/ui/dialog/find.cpp:71 +#: ../src/ui/dialog/find.cpp:72 msgid "F_ind:" msgstr "F_inna:" -#: ../src/ui/dialog/find.cpp:71 +#: ../src/ui/dialog/find.cpp:72 msgid "Find objects by their content or properties (exact or partial match)" msgstr "" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:73 msgid "R_eplace:" -msgstr "Skipt_a út" +msgstr "Skipt_a út:" -#: ../src/ui/dialog/find.cpp:72 +#: ../src/ui/dialog/find.cpp:73 msgid "Replace match with this value" msgstr "" -#: ../src/ui/dialog/find.cpp:74 +#: ../src/ui/dialog/find.cpp:75 msgid "_All" msgstr "_Allt" -#: ../src/ui/dialog/find.cpp:74 +#: ../src/ui/dialog/find.cpp:75 msgid "Search in all layers" msgstr "" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:76 msgid "Current _layer" msgstr "Núverandi _lag" -#: ../src/ui/dialog/find.cpp:75 +#: ../src/ui/dialog/find.cpp:76 msgid "Limit search to the current layer" msgstr "Takmarka leit við núverandi lag" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:77 msgid "Sele_ction" msgstr "Myn_dval" -#: ../src/ui/dialog/find.cpp:76 +#: ../src/ui/dialog/find.cpp:77 msgid "Limit search to the current selection" -msgstr "" +msgstr "Takmarka leit við núverandi val" -#: ../src/ui/dialog/find.cpp:77 +#: ../src/ui/dialog/find.cpp:78 msgid "Search in text objects" msgstr "" -#: ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/find.cpp:79 msgid "_Properties" msgstr "_Eiginleikar" -#: ../src/ui/dialog/find.cpp:78 +#: ../src/ui/dialog/find.cpp:79 msgid "Search in object properties, styles, attributes and IDs" msgstr "" -#: ../src/ui/dialog/find.cpp:80 +#: ../src/ui/dialog/find.cpp:81 msgid "Search in" msgstr "Leita í" -#: ../src/ui/dialog/find.cpp:81 +#: ../src/ui/dialog/find.cpp:82 msgid "Scope" msgstr "Umfang" -#: ../src/ui/dialog/find.cpp:83 +#: ../src/ui/dialog/find.cpp:84 msgid "Case sensiti_ve" msgstr "_Næmt fyrir há og lágstöfum" -#: ../src/ui/dialog/find.cpp:83 +#: ../src/ui/dialog/find.cpp:84 msgid "Match upper/lower case" msgstr "Passa við stafstöðu" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:85 msgid "E_xact match" msgstr "Ná_kvæm samsvörun" -#: ../src/ui/dialog/find.cpp:84 +#: ../src/ui/dialog/find.cpp:85 msgid "Match whole objects only" msgstr "Passa eingöngu við heila hluti" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:86 msgid "Include _hidden" msgstr "Hafa með _falið" -#: ../src/ui/dialog/find.cpp:85 +#: ../src/ui/dialog/find.cpp:86 msgid "Include hidden objects in search" -msgstr "" +msgstr "Hafa falda hluti með í leit" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:87 msgid "Include loc_ked" msgstr "Hafa með _læst" -#: ../src/ui/dialog/find.cpp:86 +#: ../src/ui/dialog/find.cpp:87 msgid "Include locked objects in search" -msgstr "" +msgstr "Hafa læsta hluti með í leit" -#: ../src/ui/dialog/find.cpp:88 +#: ../src/ui/dialog/find.cpp:89 msgid "General" msgstr "Almennt" -#: ../src/ui/dialog/find.cpp:90 +#: ../src/ui/dialog/find.cpp:91 msgid "_ID" msgstr "Auðkenni (_ID)" -#: ../src/ui/dialog/find.cpp:90 +#: ../src/ui/dialog/find.cpp:91 msgid "Search id name" msgstr "" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:92 msgid "Attribute _name" msgstr "" -#: ../src/ui/dialog/find.cpp:91 +#: ../src/ui/dialog/find.cpp:92 msgid "Search attribute name" msgstr "" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:93 msgid "Attri_bute value" msgstr "" -#: ../src/ui/dialog/find.cpp:92 +#: ../src/ui/dialog/find.cpp:93 msgid "Search attribute value" msgstr "" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:94 msgid "_Style" msgstr "_Stíll" -#: ../src/ui/dialog/find.cpp:93 +#: ../src/ui/dialog/find.cpp:94 msgid "Search style" -msgstr "" +msgstr "Leita að stíl" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:95 msgid "F_ont" msgstr "_Letur" -#: ../src/ui/dialog/find.cpp:94 +#: ../src/ui/dialog/find.cpp:95 msgid "Search fonts" -msgstr "" +msgstr "Leita að letri" -#: ../src/ui/dialog/find.cpp:95 +#: ../src/ui/dialog/find.cpp:96 msgid "Properties" msgstr "Eiginleikar" -#: ../src/ui/dialog/find.cpp:97 +#: ../src/ui/dialog/find.cpp:98 msgid "All types" msgstr "Allar tegundir" -#: ../src/ui/dialog/find.cpp:97 +#: ../src/ui/dialog/find.cpp:98 msgid "Search all object types" msgstr "Leita í öllum tegundum hluta" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:99 msgid "Rectangles" msgstr "Rétthyrningar" -#: ../src/ui/dialog/find.cpp:98 +#: ../src/ui/dialog/find.cpp:99 msgid "Search rectangles" msgstr "Leita í rétthyrningum" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:100 msgid "Ellipses" msgstr "Sporbaugar" -#: ../src/ui/dialog/find.cpp:99 +#: ../src/ui/dialog/find.cpp:100 msgid "Search ellipses, arcs, circles" msgstr "Leita í sporbaugum, hringgeirum og hringum" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:101 msgid "Stars" msgstr "Stjörnur" -#: ../src/ui/dialog/find.cpp:100 +#: ../src/ui/dialog/find.cpp:101 msgid "Search stars and polygons" msgstr "Leita í stjörnum og marghyrningum" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:102 msgid "Spirals" msgstr "Spíralar" -#: ../src/ui/dialog/find.cpp:101 +#: ../src/ui/dialog/find.cpp:102 msgid "Search spirals" msgstr "Leita í spírölum" -#: ../src/ui/dialog/find.cpp:102 ../src/widgets/toolbox.cpp:1735 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 msgid "Paths" msgstr "Ferlar" -#: ../src/ui/dialog/find.cpp:102 +#: ../src/ui/dialog/find.cpp:103 msgid "Search paths, lines, polylines" msgstr "Leita í ferlum, línum og fjöllínum" -#: ../src/ui/dialog/find.cpp:103 +#: ../src/ui/dialog/find.cpp:104 msgid "Texts" msgstr "Textar" -#: ../src/ui/dialog/find.cpp:103 +#: ../src/ui/dialog/find.cpp:104 msgid "Search text objects" msgstr "Leita í textahlutum" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:105 msgid "Groups" msgstr "Hópar" -#: ../src/ui/dialog/find.cpp:104 +#: ../src/ui/dialog/find.cpp:105 msgid "Search groups" msgstr "Leita í hópum" #. TRANSLATORS: "Clones" is a noun indicating type of object to find -#: ../src/ui/dialog/find.cpp:107 +#: ../src/ui/dialog/find.cpp:108 msgctxt "Find dialog" msgid "Clones" msgstr "Klónar" -#: ../src/ui/dialog/find.cpp:107 +#: ../src/ui/dialog/find.cpp:108 msgid "Search clones" msgstr "Leita í klónum" -#: ../src/ui/dialog/find.cpp:109 ../share/extensions/embedimage.inx.h:3 +#: ../src/ui/dialog/find.cpp:110 ../share/extensions/embedimage.inx.h:3 #: ../share/extensions/extractimage.inx.h:5 msgid "Images" msgstr "Myndir" -#: ../src/ui/dialog/find.cpp:109 +#: ../src/ui/dialog/find.cpp:110 msgid "Search images" msgstr "Leita í myndum" -#: ../src/ui/dialog/find.cpp:110 +#: ../src/ui/dialog/find.cpp:111 msgid "Offsets" msgstr "Hliðranir" -#: ../src/ui/dialog/find.cpp:110 +#: ../src/ui/dialog/find.cpp:111 msgid "Search offset objects" msgstr "Leita í hliðruðum hlutum" -#: ../src/ui/dialog/find.cpp:111 +#: ../src/ui/dialog/find.cpp:112 msgid "Object types" msgstr "Tegundir hluta" -#: ../src/ui/dialog/find.cpp:114 +#: ../src/ui/dialog/find.cpp:115 msgid "_Find" msgstr "_Leita" -#: ../src/ui/dialog/find.cpp:114 +#: ../src/ui/dialog/find.cpp:115 msgid "Select all objects matching the selection criteria" -msgstr "" +msgstr "Velja alla hluti sem samsvara valskilyrðum" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:116 msgid "_Replace All" msgstr "S_kipta út öllu" -#: ../src/ui/dialog/find.cpp:115 +#: ../src/ui/dialog/find.cpp:116 msgid "Replace all matches" msgstr "Skipta út öllum samsvörunum" -#: ../src/ui/dialog/find.cpp:797 +#: ../src/ui/dialog/find.cpp:801 msgid "Nothing to replace" msgstr "Ekkert sem skipta má út" #. TRANSLATORS: "%s" is replaced with "exact" or "partial" when this string is displayed -#: ../src/ui/dialog/find.cpp:838 +#: ../src/ui/dialog/find.cpp:842 #, c-format msgid "%d object found (out of %d), %s match." msgid_plural "%d objects found (out of %d), %s match." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d hlutur fannst (af %d), %s samsvörun." +msgstr[1] "%d hlutir fundust (af %d), %s samsvörun." -#: ../src/ui/dialog/find.cpp:841 +#: ../src/ui/dialog/find.cpp:845 msgid "exact" msgstr "nákvæmlega" -#: ../src/ui/dialog/find.cpp:841 +#: ../src/ui/dialog/find.cpp:845 msgid "partial" msgstr "að hluta" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:844 +#: ../src/ui/dialog/find.cpp:848 msgid "%1 match replaced" msgid_plural "%1 matches replaced" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%1 samsvörun skipt út" +msgstr[1] "%1 samsvörunum skipt út" #. TRANSLATORS: "%1" is replaced with the number of matches -#: ../src/ui/dialog/find.cpp:848 +#: ../src/ui/dialog/find.cpp:852 msgid "%1 object found" msgid_plural "%1 objects found" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%1 hlutur fannst" +msgstr[1] "%1 hlutir fundust" -#: ../src/ui/dialog/find.cpp:862 +#: ../src/ui/dialog/find.cpp:866 msgid "Replace text or property" -msgstr "" +msgstr "Skipta út texta eða eiginleika" -#: ../src/ui/dialog/find.cpp:866 +#: ../src/ui/dialog/find.cpp:870 msgid "Nothing found" -msgstr "" +msgstr "Ekkert fannst" -#: ../src/ui/dialog/find.cpp:871 +#: ../src/ui/dialog/find.cpp:875 msgid "No objects found" msgstr "Engir hlutir fundust" -#: ../src/ui/dialog/find.cpp:892 +#: ../src/ui/dialog/find.cpp:896 msgid "Select an object type" -msgstr "" +msgstr "Veldu tegund hlutar" -#: ../src/ui/dialog/find.cpp:910 +#: ../src/ui/dialog/find.cpp:914 msgid "Select a property" -msgstr "" +msgstr "Veldu eiginleika" #: ../src/ui/dialog/font-substitution.cpp:87 msgid "" "\n" "Some fonts are not available and have been substituted." msgstr "" +"\n" +"Sumt letur er ekki tiltækt og hefur því verið skipt út." #: ../src/ui/dialog/font-substitution.cpp:90 msgid "Font substitution" @@ -15827,15 +16001,15 @@ msgstr "Útskipting á letri" #: ../src/ui/dialog/font-substitution.cpp:109 msgid "Select all the affected items" -msgstr "" +msgstr "Velja alla viðkomandi hluti" #: ../src/ui/dialog/font-substitution.cpp:114 msgid "Don't show this warning again" -msgstr "" +msgstr "Ekki birta þessa aðvörun aftur" #: ../src/ui/dialog/font-substitution.cpp:255 msgid "Font '%1' substituted with '%2'" -msgstr "" +msgstr "Letrinu '%1' skipt út fyrir '%2'" #: ../src/ui/dialog/glyphs.cpp:60 ../src/ui/dialog/glyphs.cpp:152 msgid "all" @@ -16604,7 +16778,8 @@ msgstr "Jöfn _hæð" 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:666 +#. #### Number of columns #### +#: ../src/ui/dialog/grid-arrange-tab.cpp:666 msgid "_Columns:" msgstr "_Dálkar:" @@ -16625,7 +16800,8 @@ msgstr "" msgid "Alignment:" msgstr "Jöfnun:" -#. #### Radio buttons to control spacing manually or to fit selection bbox ####: ../src/ui/dialog/grid-arrange-tab.cpp:709 +#. #### Radio buttons to control spacing manually or to fit selection bbox #### +#: ../src/ui/dialog/grid-arrange-tab.cpp:709 msgid "_Fit into selection box" msgstr "_Laga að valsvæði" @@ -16732,7 +16908,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:204 msgid "Ctrl+click _dot size:" -msgstr "Ctrl+smella punktstærð:" +msgstr "Ctrl+smella _punktstærð:" #: ../src/ui/dialog/inkscape-preferences.cpp:204 msgid "times current stroke width" @@ -16751,10 +16927,12 @@ msgid "" "More than one object selected. Cannot take style from multiple " "objects." msgstr "" +"Meira en einn hlutur valinn. Get ekki tekið við stíl frá mörgum " +"hlutum." #: ../src/ui/dialog/inkscape-preferences.cpp:265 msgid "Style of new objects" -msgstr "Stíll nýrra hlutaa" +msgstr "Stíll nýrra hluta" #: ../src/ui/dialog/inkscape-preferences.cpp:267 msgid "Last used style" @@ -16866,7 +17044,7 @@ msgstr "Hlutir" #: ../src/ui/dialog/inkscape-preferences.cpp:336 msgid "Show the actual objects when moving or transforming" -msgstr "" +msgstr "Birta raunverulega hluti við færslu eða umbreytingar" #: ../src/ui/dialog/inkscape-preferences.cpp:337 msgid "Box outline" @@ -16924,7 +17102,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:358 msgid "Always show outline" -msgstr "" +msgstr "Ávallt birta útlínu" #: ../src/ui/dialog/inkscape-preferences.cpp:359 msgid "Show outlines for all paths, not only invisible paths" @@ -16932,7 +17110,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:360 msgid "Update outline when dragging nodes" -msgstr "" +msgstr "Uppfæra útlínu við að draga hnúta" #: ../src/ui/dialog/inkscape-preferences.cpp:361 msgid "" @@ -16942,7 +17120,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:362 msgid "Update paths when dragging nodes" -msgstr "" +msgstr "Uppfæra ferla við að draga hnúta" #: ../src/ui/dialog/inkscape-preferences.cpp:363 msgid "" @@ -16952,7 +17130,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:364 msgid "Show path direction on outlines" -msgstr "" +msgstr "Birta stefnu ferils á útlínum" #: ../src/ui/dialog/inkscape-preferences.cpp:365 msgid "" @@ -16962,7 +17140,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:366 msgid "Show temporary path outline" -msgstr "" +msgstr "Birta bráðabirgðaútlínur ferla" #: ../src/ui/dialog/inkscape-preferences.cpp:367 msgid "When hovering over a path, briefly flash its outline" @@ -16970,11 +17148,11 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:368 msgid "Show temporary outline for selected paths" -msgstr "" +msgstr "Birta bráðabirgðaútlínur valinna ferla" #: ../src/ui/dialog/inkscape-preferences.cpp:369 msgid "Show temporary outline even when a path is selected for editing" -msgstr "" +msgstr "Birta bráðabirgðaútlínur jafnvel þegar ferill er valinn til breytinga" #: ../src/ui/dialog/inkscape-preferences.cpp:371 msgid "_Flash time:" @@ -16989,19 +17167,19 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:372 msgid "Editing preferences" -msgstr "" +msgstr "Kjörstillingar fyrir breytingar" #: ../src/ui/dialog/inkscape-preferences.cpp:373 msgid "Show transform handles for single nodes" -msgstr "" +msgstr "Sýna umbreytingarhaldföng fyrir staka hnúta" #: ../src/ui/dialog/inkscape-preferences.cpp:374 msgid "Show transform handles even when only a single node is selected" -msgstr "" +msgstr "Sýna umbreytingarhaldföng jafnvel þótt stakur hnútur sé valinn" #: ../src/ui/dialog/inkscape-preferences.cpp:375 msgid "Deleting nodes preserves shape" -msgstr "" +msgstr "Eyðing hnúta viðheldur lögun" #: ../src/ui/dialog/inkscape-preferences.cpp:376 msgid "" @@ -17163,14 +17341,14 @@ msgstr "Fötufylla" #. Gradient #: ../src/ui/dialog/inkscape-preferences.cpp:487 -#: ../src/widgets/gradient-selector.cpp:134 -#: ../src/widgets/gradient-selector.cpp:302 +#: ../src/widgets/gradient-selector.cpp:144 +#: ../src/widgets/gradient-selector.cpp:295 msgid "Gradient" msgstr "Litstigull" #: ../src/ui/dialog/inkscape-preferences.cpp:489 msgid "Prevent sharing of gradient definitions" -msgstr "" +msgstr "Hindra sameiginlegar skilgreiningar litstigla" #: ../src/ui/dialog/inkscape-preferences.cpp:491 msgid "" @@ -17216,7 +17394,7 @@ msgstr "" #. disabled, because the LPETool is not finished yet. #: ../src/ui/dialog/inkscape-preferences.cpp:515 msgid "LPE Tool" -msgstr "LPE verkfæri" +msgstr "LPE verkfæri (LivePathEffects)" #: ../src/ui/dialog/inkscape-preferences.cpp:522 msgid "Interface" @@ -17374,6 +17552,10 @@ msgstr "Ungverska (hu)" msgid "Indonesian (id)" msgstr "Indónesíska (id)" +#: ../src/ui/dialog/inkscape-preferences.cpp:532 +msgid "Icelandic (is)" +msgstr "Íslenska (is)" + #: ../src/ui/dialog/inkscape-preferences.cpp:532 msgid "Italian (it)" msgstr "Ítalska (it)" @@ -17526,7 +17708,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:580 msgid "Control bar icon size:" -msgstr "" +msgstr "Táknmyndastærð stjórnslár:" #: ../src/ui/dialog/inkscape-preferences.cpp:581 msgid "" @@ -17535,7 +17717,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:584 msgid "Secondary toolbar icon size:" -msgstr "" +msgstr "Stærð táknmynda á aukaverkfærastiku:" #: ../src/ui/dialog/inkscape-preferences.cpp:585 msgid "" @@ -17544,7 +17726,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:588 msgid "Work-around color sliders not drawing" -msgstr "" +msgstr "Hjáleið þegar litasleðar virka ekki" #: ../src/ui/dialog/inkscape-preferences.cpp:590 msgid "" @@ -17635,15 +17817,15 @@ msgstr "" #. Windows #: ../src/ui/dialog/inkscape-preferences.cpp:634 msgid "Save and restore window geometry for each document" -msgstr "" +msgstr "Vista og endurheimta stærð og stöðu glugga fyrir hvert skjal " #: ../src/ui/dialog/inkscape-preferences.cpp:635 msgid "Remember and use last window's geometry" -msgstr "" +msgstr "Geyma og nota síðustu stærð og stöðu glugga" #: ../src/ui/dialog/inkscape-preferences.cpp:636 msgid "Don't save window geometry" -msgstr "" +msgstr "Ekki vista stærðir glugga" #: ../src/ui/dialog/inkscape-preferences.cpp:638 msgid "Save and restore dialogs status" @@ -17669,7 +17851,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:648 msgid "Dialogs are hidden in taskbar" -msgstr "" +msgstr "Samskiptagluggar eru faldir í verkefnaslá" #: ../src/ui/dialog/inkscape-preferences.cpp:649 msgid "Save and restore documents viewport" @@ -17681,7 +17863,7 @@ msgstr "Breyta aðdrætti þegar stærð glugga breytist" #: ../src/ui/dialog/inkscape-preferences.cpp:651 msgid "Show close button on dialogs" -msgstr "" +msgstr "Birta lokunarhnapp á samskiptagluggum" #: ../src/ui/dialog/inkscape-preferences.cpp:652 msgctxt "Dialog on top" @@ -17690,7 +17872,7 @@ msgstr "Ekkert" #: ../src/ui/dialog/inkscape-preferences.cpp:654 msgid "Aggressive" -msgstr "" +msgstr "Ýkt" #: ../src/ui/dialog/inkscape-preferences.cpp:657 msgid "Maximized" @@ -17710,19 +17892,23 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:667 msgid "Let the window manager determine placement of all windows" -msgstr "" +msgstr "Láta gluggastjórann um að ákveða staðsetningar allra glugga" #: ../src/ui/dialog/inkscape-preferences.cpp:669 msgid "" "Remember and use the last window's geometry (saves geometry to user " "preferences)" msgstr "" +"Geyma og nota síðustu stærð og stöðu glugga (vistar upplýsingarnar í " +"kjörstillingar notandans)" #: ../src/ui/dialog/inkscape-preferences.cpp:671 msgid "" "Save and restore window geometry for each document (saves geometry in the " "document)" msgstr "" +"Vista og endurheimta stærð og stöðu glugga fyrir hvert skjal (vistar " +"upplýsingarnar í skjalið)" #: ../src/ui/dialog/inkscape-preferences.cpp:673 msgid "Saving dialogs status" @@ -17752,35 +17938,35 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:695 msgid "Dialogs on top:" -msgstr "" +msgstr "Samskiptagluggar ofan á:" #: ../src/ui/dialog/inkscape-preferences.cpp:698 msgid "Dialogs are treated as regular windows" -msgstr "" +msgstr "Samskiptagluggar eru meðhöndlaðir eins og venjulegir gluggar" #: ../src/ui/dialog/inkscape-preferences.cpp:700 msgid "Dialogs stay on top of document windows" -msgstr "" +msgstr "Samskiptagluggar haldast ofan á vinnugluggum" #: ../src/ui/dialog/inkscape-preferences.cpp:702 msgid "Same as Normal but may work better with some window managers" -msgstr "" +msgstr "Sama og venjulegt nema að það gæti virkað betur í sumum gluggastjórum" #: ../src/ui/dialog/inkscape-preferences.cpp:705 msgid "Dialog Transparency" -msgstr "" +msgstr "Gegnsæi samskiptaglugga" #: ../src/ui/dialog/inkscape-preferences.cpp:707 msgid "_Opacity when focused:" -msgstr "" +msgstr "Ó_gegnsæi þegar er virkt:" #: ../src/ui/dialog/inkscape-preferences.cpp:709 msgid "Opacity when _unfocused:" -msgstr "" +msgstr "Óg_egnsæi þegar er óvirkt:" #: ../src/ui/dialog/inkscape-preferences.cpp:711 msgid "_Time of opacity change animation:" -msgstr "" +msgstr "_Tími skiptingar við breytingu á gegnsæi:" #: ../src/ui/dialog/inkscape-preferences.cpp:714 msgid "Miscellaneous" @@ -17907,7 +18093,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:850 msgid "Add label comments to printing output" -msgstr "" +msgstr "Bæta skýringum á prentað úttak" #: ../src/ui/dialog/inkscape-preferences.cpp:852 msgid "" @@ -17957,11 +18143,11 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:867 msgid "_Handle size:" -msgstr "" +msgstr "Stærð _haldfangs:" #: ../src/ui/dialog/inkscape-preferences.cpp:868 msgid "Set the relative size of node handles" -msgstr "" +msgstr "Stilla afstæða stærð haldfanga á hnútum" #: ../src/ui/dialog/inkscape-preferences.cpp:870 msgid "Use pressure-sensitive tablet (requires restart)" @@ -18079,8 +18265,8 @@ msgid "" "The smallest number written to SVG is 10 to the power of this exponent; " "anything smaller is written as zero" msgstr "" -"Minnsta tala sem skrifuð er í SVG er 10 í þessu veldi; " -"allt sem er minna verður skrifað sem núll" +"Minnsta tala sem skrifuð er í SVG er 10 í þessu veldi; allt sem er minna " +"verður skrifað sem núll" #. Code to add controls for attribute checking options #. Add incorrect style properties options @@ -18210,6 +18396,8 @@ msgid "" "The ICC profile to use to calibrate display output.\n" "Searched directories:%s" msgstr "" +"ICC litasniðið sem nota á til að kvarða skjá.\n" +"Leitað í möppum: %s" #: ../src/ui/dialog/inkscape-preferences.cpp:971 msgid "Display profile:" @@ -18293,11 +18481,11 @@ msgstr "Varðveita svart" #: ../src/ui/dialog/inkscape-preferences.cpp:1030 msgid "(LittleCMS 1.15 or later required)" -msgstr "" +msgstr "(LittleCMS 1.15 eða nýrra er krafist)" #: ../src/ui/dialog/inkscape-preferences.cpp:1032 msgid "Preserve K channel in CMYK -> CMYK transforms" -msgstr "" +msgstr "Vernda K litrás í CMYK -> CMYK umbreytingum" #: ../src/ui/dialog/inkscape-preferences.cpp:1046 #: ../src/widgets/sp-color-icc-selector.cpp:449 @@ -18319,6 +18507,8 @@ msgid "" "Automatically save the current document(s) at a given interval, thus " "minimizing loss in case of a crash" msgstr "" +"Vista sjálfkrafa núverandi skjöl með ákveðnu millibili, og þannig minnka " +"líkurnar á gagnatapi við kerfishrun" #: ../src/ui/dialog/inkscape-preferences.cpp:1101 msgctxt "Filesystem" @@ -18366,34 +18556,36 @@ msgstr "Sjálfvirk vistun" #: ../src/ui/dialog/inkscape-preferences.cpp:1124 msgid "Open Clip Art Library _Server Name:" -msgstr "Vefþjónn myndaklippusafns (Open Clip Art Library):" +msgstr "Vefþjónn _klippimyndasafns (Open Clip Art Library):" #: ../src/ui/dialog/inkscape-preferences.cpp:1125 msgid "" "The server name of the Open Clip Art Library webdav server; it's used by the " "Import and Export to OCAL function" msgstr "" +"Nafn Open Clip Art Library webdav vefþjónsins; það er notað í inn- og " +"útflutningi fyrir OCAL aðgerðir" #: ../src/ui/dialog/inkscape-preferences.cpp:1127 msgid "Open Clip Art Library _Username:" -msgstr "Notandanafn myndaklippusafns:" +msgstr "_Notandanafn klippimyndasafns:" #: ../src/ui/dialog/inkscape-preferences.cpp:1128 msgid "The username used to log into Open Clip Art Library" msgstr "" -"Notandanafn til innskráningar á Open Clip Art Library myndaklippusafnið" +"Notandanafn til innskráningar á Open Clip Art Library klippimyndasafnið" #: ../src/ui/dialog/inkscape-preferences.cpp:1130 msgid "Open Clip Art Library _Password:" -msgstr "Lykilorð myndaklippusafns:" +msgstr "_Lykilorð klippimyndasafns:" #: ../src/ui/dialog/inkscape-preferences.cpp:1131 msgid "The password used to log into Open Clip Art Library" -msgstr "Lykilorð til innskráningar á Open Clip Art Library myndaklippusafnið" +msgstr "Lykilorð til innskráningar á Open Clip Art Library klippimyndasafnið" #: ../src/ui/dialog/inkscape-preferences.cpp:1132 msgid "Open Clip Art" -msgstr "Open Clip Art myndaklippusafn" +msgstr "Open Clip Art klippimyndasafn" #: ../src/ui/dialog/inkscape-preferences.cpp:1137 msgid "Behavior" @@ -18401,7 +18593,7 @@ msgstr "Hegðun" #: ../src/ui/dialog/inkscape-preferences.cpp:1141 msgid "_Simplification threshold:" -msgstr "" +msgstr "_Takmörk einföldunar:" #: ../src/ui/dialog/inkscape-preferences.cpp:1142 msgid "" @@ -18453,10 +18645,12 @@ msgid "" "Uncheck this to be able to keep the current objects selected when the " "current layer changes" msgstr "" +"Taka hakið úr þessu til að halda völdum hlutum áfram völdum eftir að skipt " +"eru um virkt lag" #: ../src/ui/dialog/inkscape-preferences.cpp:1159 msgid "Ctrl+A, Tab, Shift+Tab" -msgstr "" +msgstr "Ctrl+A, Tab, Shift+Tab" #: ../src/ui/dialog/inkscape-preferences.cpp:1161 msgid "Make keyboard selection commands work on objects in all layers" @@ -18465,12 +18659,15 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1163 msgid "Make keyboard selection commands work on objects in current layer only" msgstr "" +"Láta valskipanir með lyklaborði einungis virka á hluti innan núverandi lags" #: ../src/ui/dialog/inkscape-preferences.cpp:1165 msgid "" "Make keyboard selection commands work on objects in current layer and all " "its sublayers" msgstr "" +"Láta valskipanir með lyklaborði virka á hluti innan núverandi lags og í " +"undirlögum þess" #: ../src/ui/dialog/inkscape-preferences.cpp:1167 msgid "" @@ -18628,7 +18825,7 @@ msgstr "" #. #: ../src/ui/dialog/inkscape-preferences.cpp:1226 msgid "Mouse wheel zooms by default" -msgstr "" +msgstr "Músarhjól stýrir sjálfgefið aðdrætti" #: ../src/ui/dialog/inkscape-preferences.cpp:1228 msgid "" @@ -18651,7 +18848,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1237 msgid "_Delay (in ms):" -msgstr "Seinkun (í msek):" +msgstr "S_einkun (í msek):" #: ../src/ui/dialog/inkscape-preferences.cpp:1238 msgid "" @@ -18662,7 +18859,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1240 msgid "Only snap the node closest to the pointer" -msgstr "" +msgstr "Einungis grípa í hnútinn sem næstur er músarbendli" #: ../src/ui/dialog/inkscape-preferences.cpp:1242 msgid "" @@ -18682,7 +18879,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1248 msgid "Snap the mouse pointer when dragging a constrained knot" -msgstr "" +msgstr "Grípa í músarbendil þegar skilyrtur hnútur er dreginn" #: ../src/ui/dialog/inkscape-preferences.cpp:1250 msgid "" @@ -18767,7 +18964,7 @@ msgid "_Zoom in/out by:" msgstr "_Renna að/frá um:" #: ../src/ui/dialog/inkscape-preferences.cpp:1280 -#: ../src/ui/dialog/objects.cpp:1622 +#: ../src/ui/dialog/objects.cpp:1620 #: ../src/ui/widget/filter-effect-chooser.cpp:27 msgid "%" msgstr "%" @@ -18793,23 +18990,23 @@ msgstr "Haldast óhreyft" #: ../src/ui/dialog/inkscape-preferences.cpp:1289 msgid "Move according to transform" -msgstr "" +msgstr "Færast samkvæmt umbreytingu" #: ../src/ui/dialog/inkscape-preferences.cpp:1291 msgid "Are unlinked" -msgstr "" +msgstr "Þeir aftengdir" #: ../src/ui/dialog/inkscape-preferences.cpp:1293 msgid "Are deleted" -msgstr "" +msgstr "Verða eytt" #: ../src/ui/dialog/inkscape-preferences.cpp:1296 msgid "Moving original: clones and linked offsets" -msgstr "" +msgstr "Þegar upprunahlutur er færður, munu klónar hans og tengdar hliðranir" #: ../src/ui/dialog/inkscape-preferences.cpp:1298 msgid "Clones are translated by the same vector as their original" -msgstr "" +msgstr "Klónar eru færðir um sama vigur og upprunahlutur þeirra" #: ../src/ui/dialog/inkscape-preferences.cpp:1300 msgid "Clones preserve their positions when their original is moved" @@ -18827,11 +19024,11 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1305 msgid "Orphaned clones are converted to regular objects" -msgstr "" +msgstr "Munaðarlausum klónum er umbreytt í venjulega hluti" #: ../src/ui/dialog/inkscape-preferences.cpp:1307 msgid "Orphaned clones are deleted along with their original" -msgstr "" +msgstr "Munaðarlausum klónum er eytt ásamt upprunahlutum" #: ../src/ui/dialog/inkscape-preferences.cpp:1309 msgid "Duplicating original+clones/linked offset" @@ -18856,7 +19053,7 @@ msgstr "Klónar" #. Clip paths and masks options #: ../src/ui/dialog/inkscape-preferences.cpp:1319 msgid "When applying, use the topmost selected object as clippath/mask" -msgstr "" +msgstr "Við beitingu: nota efsta valda hlutinn sem afmörkun/hulu" #: ../src/ui/dialog/inkscape-preferences.cpp:1321 msgid "" @@ -18866,7 +19063,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1322 msgid "Remove clippath/mask object after applying" -msgstr "" +msgstr "Fjarlægja eftir aðgerðina hlutinn sem notaður var sem afmörkun/hula" #: ../src/ui/dialog/inkscape-preferences.cpp:1324 msgid "" @@ -18880,7 +19077,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1328 msgid "Do not group clipped/masked objects" -msgstr "" +msgstr "Ekki hópa afmarkaða/hulda hluti" #: ../src/ui/dialog/inkscape-preferences.cpp:1329 msgid "Put every clipped/masked object in its own group" @@ -18888,7 +19085,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1330 msgid "Put all clipped/masked objects into one group" -msgstr "" +msgstr "Setja alla afmarkaða/hulda hluti í einn hóp" #: ../src/ui/dialog/inkscape-preferences.cpp:1333 msgid "Apply clippath/mask to every object" @@ -18908,11 +19105,12 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1343 msgid "Ungroup automatically created groups" -msgstr "" +msgstr "Skipta upp sjálfvirkt útbúnum hópum" #: ../src/ui/dialog/inkscape-preferences.cpp:1345 msgid "Ungroup groups created when setting clip/mask" msgstr "" +"Skipta upp hópum sem búnir hafa verið til við að setja afmarkanir eða hulu" #: ../src/ui/dialog/inkscape-preferences.cpp:1347 msgid "Clippaths and masks" @@ -18936,12 +19134,12 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1361 msgid "Document cleanup" -msgstr "" +msgstr "Hreinsun á skjali" #: ../src/ui/dialog/inkscape-preferences.cpp:1362 #: ../src/ui/dialog/inkscape-preferences.cpp:1364 msgid "Remove unused swatches when doing a document cleanup" -msgstr "" +msgstr "Fjarlægja ónotaðar litaprufur við hreinsun á skjali" #. tooltip #: ../src/ui/dialog/inkscape-preferences.cpp:1365 @@ -19013,26 +19211,28 @@ msgid "" "Best quality, but display may be very slow at high zooms (bitmap export " "always uses best quality)" msgstr "" +"Bestu gæði, en birting gæti verið mjög hægvirk við mikinn aðdrátt " +"(útflutningur bitamynda notar alltaf bestu gæði)" #: ../src/ui/dialog/inkscape-preferences.cpp:1396 #: ../src/ui/dialog/inkscape-preferences.cpp:1420 msgid "Better quality, but slower display" -msgstr "" +msgstr "Betri gæði, en hægvirkari birting" #: ../src/ui/dialog/inkscape-preferences.cpp:1398 #: ../src/ui/dialog/inkscape-preferences.cpp:1422 msgid "Average quality, acceptable display speed" -msgstr "" +msgstr "Meðalgæði, ásættanlegur hraði birtingar" #: ../src/ui/dialog/inkscape-preferences.cpp:1400 #: ../src/ui/dialog/inkscape-preferences.cpp:1424 msgid "Lower quality (some artifacts), but display is faster" -msgstr "" +msgstr "Minni gæði (einhverjar truflanir), en birting er hraðari" #: ../src/ui/dialog/inkscape-preferences.cpp:1402 #: ../src/ui/dialog/inkscape-preferences.cpp:1426 msgid "Lowest quality (considerable artifacts), but display is fastest" -msgstr "" +msgstr "Lægstu gæði (umtalsverðar truflanir), en birting er hröðust" #: ../src/ui/dialog/inkscape-preferences.cpp:1416 msgid "Filter effects quality for display" @@ -19040,7 +19240,7 @@ msgstr "Gæði síuáhrifa sem birtast" #. build custom preferences tab #: ../src/ui/dialog/inkscape-preferences.cpp:1428 -#: ../src/ui/dialog/print.cpp:232 +#: ../src/ui/dialog/print.cpp:215 msgid "Rendering" msgstr "Myndgerð" @@ -19056,14 +19256,14 @@ msgstr "Endurhlaða bitamyndum sjálfkrafa" #: ../src/ui/dialog/inkscape-preferences.cpp:1437 msgid "Automatically reload linked images when file is changed on disk" -msgstr "" +msgstr "Endurhlaða tengdum bitamyndum sjálfkrafa þegar skrá er breytt á diski" #: ../src/ui/dialog/inkscape-preferences.cpp:1439 msgid "_Bitmap editor:" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1441 -#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:57 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "Flytja út" @@ -19075,9 +19275,11 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1444 msgid "Default bitmap resolution (in dots per inch) in the Export dialog" msgstr "" +"Sjálfgefin upplausn bitamynda (mynddílar á tommu - PÁT) í " +"útflutningsglugganum" #: ../src/ui/dialog/inkscape-preferences.cpp:1445 -#: ../src/ui/dialog/xml-tree.cpp:912 +#: ../src/ui/dialog/xml-tree.cpp:920 msgid "Create" msgstr "Búa til" @@ -19088,6 +19290,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1448 msgid "Resolution used by the Create Bitmap Copy command" msgstr "" +"Upplausn sem notuð er við að nota \"Búa til afrit af bitamynd\" skipunin" #: ../src/ui/dialog/inkscape-preferences.cpp:1451 msgid "Ask about linking and scaling when importing" @@ -19139,7 +19342,7 @@ msgstr "Bitamyndir" #: ../src/ui/dialog/inkscape-preferences.cpp:1494 msgid "" "Select a file of predefined shortcuts to use. Any customized shortcuts you " -"create will be added seperately to " +"create will be added separately to " msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1497 @@ -19206,7 +19409,7 @@ msgstr "Ekkert" #: ../src/ui/dialog/inkscape-preferences.cpp:1871 msgid "Set the main spell check language" -msgstr "" +msgstr "Stilla aðaltungumál fyrir stafsetningaryfirferð" #: ../src/ui/dialog/inkscape-preferences.cpp:1874 msgid "Second language:" @@ -19260,7 +19463,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1912 msgid "Pre-render named icons" -msgstr "" +msgstr "Forvinna nefndar táknmyndir" #: ../src/ui/dialog/inkscape-preferences.cpp:1914 msgid "" @@ -19270,7 +19473,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1922 msgid "System info" -msgstr "" +msgstr "Kerfisupplýsingar" #: ../src/ui/dialog/inkscape-preferences.cpp:1926 msgid "User config: " @@ -19282,7 +19485,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1930 msgid "User preferences: " -msgstr "Kjörstillingar notanda:" +msgstr "Kjörstillingar notanda: " #: ../src/ui/dialog/inkscape-preferences.cpp:1930 msgid "Location of the users preferences file" @@ -19290,7 +19493,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgid "User extensions: " -msgstr "Viðbætur notanda:" +msgstr "Viðbætur notanda: " #: ../src/ui/dialog/inkscape-preferences.cpp:1934 msgid "Location of the users extensions" @@ -19322,7 +19525,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1954 msgid "Inkscape extensions: " -msgstr "Inkscape viðbætur:" +msgstr "Inkscape viðbætur: " #: ../src/ui/dialog/inkscape-preferences.cpp:1954 msgid "Location of the Inkscape extensions" @@ -19330,7 +19533,7 @@ msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1963 msgid "System data: " -msgstr "" +msgstr "Kerfisgögn: " #: ../src/ui/dialog/inkscape-preferences.cpp:1963 msgid "Locations of system data" @@ -19405,7 +19608,7 @@ msgstr "Teiknitafla" #: ../src/ui/dialog/input.cpp:1039 ../src/ui/dialog/input.cpp:1928 msgid "pad" -msgstr "" +msgstr "platti" #: ../src/ui/dialog/input.cpp:1081 msgid "_Use pressure-sensitive tablet (requires restart)" @@ -19530,12 +19733,12 @@ msgstr "Læsa lagi" msgid "Unlock layer" msgstr "Aflæsa lagi" -#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:845 +#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 #: ../src/verbs.cpp:1438 msgid "Toggle layer solo" msgstr "" -#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:848 +#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 #: ../src/verbs.cpp:1462 msgid "Lock other layers" msgstr "" @@ -19573,73 +19776,73 @@ msgstr "Efst" msgid "Add Path Effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:109 +#: ../src/ui/dialog/livepatheffect-editor.cpp:119 msgid "Add path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:119 +#: ../src/ui/dialog/livepatheffect-editor.cpp:123 msgid "Delete current path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:129 +#: ../src/ui/dialog/livepatheffect-editor.cpp:127 msgid "Raise the current path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:139 +#: ../src/ui/dialog/livepatheffect-editor.cpp:131 msgid "Lower the current path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:312 +#: ../src/ui/dialog/livepatheffect-editor.cpp:298 msgid "Unknown effect is applied" -msgstr "" +msgstr "Óþekktri sjónbrellu er beitt" -#: ../src/ui/dialog/livepatheffect-editor.cpp:315 +#: ../src/ui/dialog/livepatheffect-editor.cpp:301 msgid "Click button to add an effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:330 +#: ../src/ui/dialog/livepatheffect-editor.cpp:316 msgid "Click add button to convert clone" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:335 -#: ../src/ui/dialog/livepatheffect-editor.cpp:339 -#: ../src/ui/dialog/livepatheffect-editor.cpp:348 +#: ../src/ui/dialog/livepatheffect-editor.cpp:321 +#: ../src/ui/dialog/livepatheffect-editor.cpp:325 +#: ../src/ui/dialog/livepatheffect-editor.cpp:334 msgid "Select a path or shape" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:344 +#: ../src/ui/dialog/livepatheffect-editor.cpp:330 msgid "Only one item can be selected" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:376 +#: ../src/ui/dialog/livepatheffect-editor.cpp:362 msgid "Unknown effect" -msgstr "" +msgstr "Óþekkt sjónbrella" -#: ../src/ui/dialog/livepatheffect-editor.cpp:452 +#: ../src/ui/dialog/livepatheffect-editor.cpp:438 msgid "Create and apply path effect" msgstr "Búa til og beita ferilbrellu" -#: ../src/ui/dialog/livepatheffect-editor.cpp:492 +#: ../src/ui/dialog/livepatheffect-editor.cpp:478 msgid "Create and apply Clone original path effect" msgstr "" -#: ../src/ui/dialog/livepatheffect-editor.cpp:514 +#: ../src/ui/dialog/livepatheffect-editor.cpp:500 msgid "Remove path effect" msgstr "Fjarlægja ferilbrellu" -#: ../src/ui/dialog/livepatheffect-editor.cpp:532 +#: ../src/ui/dialog/livepatheffect-editor.cpp:518 msgid "Move path effect up" msgstr "Færa ferilbrellu upp" -#: ../src/ui/dialog/livepatheffect-editor.cpp:549 +#: ../src/ui/dialog/livepatheffect-editor.cpp:535 msgid "Move path effect down" msgstr "Færa ferilbrellu niður" -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Activate path effect" msgstr "Virkja ferilbrellu" -#: ../src/ui/dialog/livepatheffect-editor.cpp:588 +#: ../src/ui/dialog/livepatheffect-editor.cpp:574 msgid "Deactivate path effect" msgstr "Gera ferilbrellu óvirka" @@ -19685,7 +19888,7 @@ msgstr "" #: ../src/ui/dialog/memory.cpp:96 msgid "Heap" -msgstr "" +msgstr "Stafli" #: ../src/ui/dialog/memory.cpp:97 msgid "In Use" @@ -19888,82 +20091,82 @@ msgstr "Fela hlut" msgid "Unhide object" msgstr "Birta hlut" -#: ../src/ui/dialog/objects.cpp:875 +#: ../src/ui/dialog/objects.cpp:873 msgid "Unhide objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:875 +#: ../src/ui/dialog/objects.cpp:873 msgid "Hide objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:895 +#: ../src/ui/dialog/objects.cpp:893 msgid "Lock objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:895 +#: ../src/ui/dialog/objects.cpp:893 msgid "Unlock objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:907 +#: ../src/ui/dialog/objects.cpp:905 msgid "Layer to group" msgstr "" -#: ../src/ui/dialog/objects.cpp:907 +#: ../src/ui/dialog/objects.cpp:905 msgid "Group to layer" msgstr "" -#: ../src/ui/dialog/objects.cpp:1105 +#: ../src/ui/dialog/objects.cpp:1103 msgid "Moved objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:1354 ../src/ui/dialog/tags.cpp:875 -#: ../src/ui/dialog/tags.cpp:882 +#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:856 +#: ../src/ui/dialog/tags.cpp:863 msgid "Rename object" msgstr "" -#: ../src/ui/dialog/objects.cpp:1461 +#: ../src/ui/dialog/objects.cpp:1459 msgid "Set object highlight color" msgstr "" -#: ../src/ui/dialog/objects.cpp:1471 +#: ../src/ui/dialog/objects.cpp:1469 msgid "Set object opacity" msgstr "" -#: ../src/ui/dialog/objects.cpp:1504 +#: ../src/ui/dialog/objects.cpp:1502 msgid "Set object blend mode" msgstr "" -#: ../src/ui/dialog/objects.cpp:1560 +#: ../src/ui/dialog/objects.cpp:1558 msgid "Set object blur" msgstr "" -#: ../src/ui/dialog/objects.cpp:1802 +#: ../src/ui/dialog/objects.cpp:1800 msgid "Add layer..." msgstr "Bæta við lagi..." -#: ../src/ui/dialog/objects.cpp:1817 +#: ../src/ui/dialog/objects.cpp:1807 msgid "Remove object" msgstr "Fjarlægja hlut" -#: ../src/ui/dialog/objects.cpp:1832 +#: ../src/ui/dialog/objects.cpp:1815 msgid "Move To Bottom" msgstr "" -#: ../src/ui/dialog/objects.cpp:1877 +#: ../src/ui/dialog/objects.cpp:1839 msgid "Move To Top" msgstr "" -#: ../src/ui/dialog/objects.cpp:1892 +#: ../src/ui/dialog/objects.cpp:1847 msgid "Collapse All" -msgstr "" +msgstr "Fella allt saman" -#: ../src/ui/dialog/objects.cpp:1974 +#: ../src/ui/dialog/objects.cpp:1922 msgid "Select Highlight Color" msgstr "" #: ../src/ui/dialog/ocaldialogs.cpp:715 msgid "Clipart found" -msgstr "" +msgstr "Klippimyndir fundust" #: ../src/ui/dialog/ocaldialogs.cpp:764 msgid "Downloading image..." @@ -19975,7 +20178,7 @@ msgstr "" #: ../src/ui/dialog/ocaldialogs.cpp:922 msgid "Clipart downloaded successfully" -msgstr "" +msgstr "Tókst að hala niður klippimyndum" #: ../src/ui/dialog/ocaldialogs.cpp:936 msgid "Could not download thumbnail file" @@ -19987,11 +20190,11 @@ msgstr "Engin lýsing" #: ../src/ui/dialog/ocaldialogs.cpp:1079 msgid "Searching clipart..." -msgstr "" +msgstr "Leita að klippimyndum..." #: ../src/ui/dialog/ocaldialogs.cpp:1099 ../src/ui/dialog/ocaldialogs.cpp:1120 msgid "Could not connect to the Open Clip Art Library" -msgstr "Gat ekki tengst myndaklippusafni (Open Clip Art Library)" +msgstr "Gat ekki tengst klippimyndasafni (Open Clip Art Library)" #: ../src/ui/dialog/ocaldialogs.cpp:1145 msgid "Could not parse search results" @@ -19999,7 +20202,7 @@ msgstr "" #: ../src/ui/dialog/ocaldialogs.cpp:1177 msgid "No clipart named %1 was found." -msgstr "" +msgstr "Engar klippimyndir með heitinu %1 fannst." #: ../src/ui/dialog/ocaldialogs.cpp:1179 msgid "" @@ -20113,7 +20316,7 @@ msgstr "" #: ../src/ui/dialog/pixelartdialog.cpp:499 msgid "Trace pixel art" -msgstr "" +msgstr "Línuteikna Pixel Art" #: ../src/ui/dialog/polar-arrange-tab.cpp:41 msgctxt "Polar arrange tab" @@ -20208,22 +20411,22 @@ msgstr "Raða upp á sporbaug" #: ../src/ui/dialog/print.cpp:111 msgid "Could not open temporary PNG for bitmap printing" -msgstr "" +msgstr "Gat ekki opnað PNG-bráðabirgðaskrá til að prenta bitamynd" -#: ../src/ui/dialog/print.cpp:155 +#: ../src/ui/dialog/print.cpp:138 msgid "Could not set up Document" -msgstr "" +msgstr "Gat ekki sett upp skjal" -#: ../src/ui/dialog/print.cpp:159 +#: ../src/ui/dialog/print.cpp:142 msgid "Failed to set CairoRenderContext" msgstr "" #. set up dialog title, based on document name -#: ../src/ui/dialog/print.cpp:197 +#: ../src/ui/dialog/print.cpp:180 msgid "SVG Document" msgstr "SVG skjal" -#: ../src/ui/dialog/print.cpp:198 +#: ../src/ui/dialog/print.cpp:181 msgid "Print" msgstr "Prenta" @@ -20257,7 +20460,7 @@ msgstr "Tillögur:" #: ../src/ui/dialog/spellcheck.cpp:124 msgid "Accept the chosen suggestion" -msgstr "" +msgstr "Samþykkja valda tillögu" #: ../src/ui/dialog/spellcheck.cpp:125 msgid "Ignore this word only once" @@ -20269,24 +20472,24 @@ msgstr "Hunsa þetta orð í þessari setu" #: ../src/ui/dialog/spellcheck.cpp:127 msgid "Add this word to the chosen dictionary" -msgstr "" +msgstr "Bæta orði við valið orðasafn" #: ../src/ui/dialog/spellcheck.cpp:141 msgid "Stop the check" -msgstr "" +msgstr "Stöðva yfirferð" #: ../src/ui/dialog/spellcheck.cpp:142 msgid "Start the check" -msgstr "" +msgstr "Hefja yfirferð" #: ../src/ui/dialog/spellcheck.cpp:460 #, c-format msgid "Finished, %d words added to dictionary" -msgstr "" +msgstr "Lokið, %d orðum bætt við orðasafn" #: ../src/ui/dialog/spellcheck.cpp:462 msgid "Finished, nothing suspicious found" -msgstr "" +msgstr "Lokið, ekkert aðfinnsluvert fannst" #: ../src/ui/dialog/spellcheck.cpp:578 #, c-format @@ -20445,7 +20648,7 @@ msgstr "_Letur" #: ../src/ui/dialog/svg-fonts-dialog.cpp:921 msgid "_Global Settings" -msgstr "Víðværar stillingar" +msgstr "_Víðværar stillingar" #: ../src/ui/dialog/svg-fonts-dialog.cpp:922 msgid "_Glyphs" @@ -20464,11 +20667,11 @@ msgstr "Textadæmi" msgid "Preview Text:" msgstr "Forskoða texta:" -#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:370 -#: ../src/ui/tools/gradient-tool.cpp:468 +#: ../src/ui/dialog/swatches.cpp:202 ../src/ui/tools/gradient-tool.cpp:360 +#: ../src/ui/tools/gradient-tool.cpp:458 #: ../src/widgets/gradient-vector.cpp:794 msgid "Add gradient stop" -msgstr "" +msgstr "Bæta við stoppmerki í litstigul" #. TRANSLATORS: An item in context menu on a colour in the swatches #: ../src/ui/dialog/swatches.cpp:257 @@ -20491,7 +20694,7 @@ msgstr "Umbreyta" #: ../src/ui/dialog/swatches.cpp:542 #, c-format msgid "Palettes directory (%s) is unavailable." -msgstr "" +msgstr "Mappa fyrir litaspjöld (%s) er ekki tiltæk." #. ******************* Symbol Sets ************************ #: ../src/ui/dialog/symbols.cpp:139 @@ -20535,28 +20738,28 @@ msgstr "" msgid "Unnamed Symbols" msgstr "Ónefnd tákn" -#: ../src/ui/dialog/tags.cpp:293 ../src/ui/dialog/tags.cpp:591 -#: ../src/ui/dialog/tags.cpp:705 +#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:572 +#: ../src/ui/dialog/tags.cpp:686 msgid "Remove from selection set" msgstr "" -#: ../src/ui/dialog/tags.cpp:449 +#: ../src/ui/dialog/tags.cpp:430 msgid "Items" msgstr "Atriði" -#: ../src/ui/dialog/tags.cpp:688 +#: ../src/ui/dialog/tags.cpp:669 msgid "Add selection to set" msgstr "" -#: ../src/ui/dialog/tags.cpp:846 +#: ../src/ui/dialog/tags.cpp:827 msgid "Moved sets" msgstr "" -#: ../src/ui/dialog/tags.cpp:1016 +#: ../src/ui/dialog/tags.cpp:997 msgid "Add a new selection set" msgstr "" -#: ../src/ui/dialog/tags.cpp:1025 +#: ../src/ui/dialog/tags.cpp:1006 msgid "Remove Item/Set" msgstr "" @@ -20574,7 +20777,7 @@ msgstr "Ferill: " #: ../src/ui/dialog/template-widget.cpp:126 msgid "Description: " -msgstr "Lýsing:" +msgstr "Lýsing: " #: ../src/ui/dialog/template-widget.cpp:128 msgid "Keywords: " @@ -20610,7 +20813,7 @@ msgstr "Jafna til hægri" #: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 msgid "Justify (only flowed text)" -msgstr "Hliðjafna (aðeins texta með skriði)" +msgstr "Hliðjafna (aðeins flæðitexti)" #. Direction buttons #: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 @@ -20630,7 +20833,7 @@ msgid "Text path offset" msgstr "" #: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 -#: ../src/ui/tools/text-tool.cpp:1455 +#: ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "Setja textastíl" @@ -20660,7 +20863,7 @@ msgstr "Raða völdum hlutum" #. brightness #: ../src/ui/dialog/tracedialog.cpp:508 msgid "_Brightness cutoff" -msgstr "" +msgstr "_Birtustigsfall" #: ../src/ui/dialog/tracedialog.cpp:512 msgid "Trace by a given brightness level" @@ -20668,11 +20871,11 @@ msgstr "Linuteikna eftir tilteknu birtustigi" #: ../src/ui/dialog/tracedialog.cpp:519 msgid "Brightness cutoff for black/white" -msgstr "" +msgstr "Birtustigsfall fyrir svart/hvítt" #: ../src/ui/dialog/tracedialog.cpp:529 msgid "Single scan: creates a path" -msgstr "" +msgstr "Einföld umferð: útbýr feril" #. canny edge detection #. TRANSLATORS: "Canny" is the name of the inventor of this edge detection method @@ -20682,11 +20885,11 @@ msgstr "Gr_eining brúna" #: ../src/ui/dialog/tracedialog.cpp:538 msgid "Trace with optimal edge detection by J. Canny's algorithm" -msgstr "" +msgstr "Línuteiknun með bestaðri greiningu brúna eftir reikniriti J. Canny" #: ../src/ui/dialog/tracedialog.cpp:556 msgid "Brightness cutoff for adjacent pixels (determines edge thickness)" -msgstr "" +msgstr "Birtustigsfall milli samliggjandi mynddíla (ákvarðar þykkt jaðars)" #: ../src/ui/dialog/tracedialog.cpp:559 msgid "T_hreshold:" @@ -20698,15 +20901,15 @@ msgstr "Litmör_k:" #. colors and then re-applying this reduced set to the original image. #: ../src/ui/dialog/tracedialog.cpp:571 msgid "Color _quantization" -msgstr "" +msgstr "_Fjöldi lita" #: ../src/ui/dialog/tracedialog.cpp:575 msgid "Trace along the boundaries of reduced colors" -msgstr "" +msgstr "Línuteiknun meðfram mörkum fækkaðra lita" #: ../src/ui/dialog/tracedialog.cpp:583 msgid "The number of reduced colors" -msgstr "" +msgstr "Fjöldi fækkaðra lita" #: ../src/ui/dialog/tracedialog.cpp:586 msgid "_Colors:" @@ -20715,7 +20918,7 @@ msgstr "_Litir:" #. swap black and white #: ../src/ui/dialog/tracedialog.cpp:594 msgid "_Invert image" -msgstr "" +msgstr "Snúa við l_itum myndar" #: ../src/ui/dialog/tracedialog.cpp:599 msgid "Invert black and white regions" @@ -20725,19 +20928,19 @@ msgstr "Víxla svörtum og hvítum svæðum" #. # begin multiple scan #: ../src/ui/dialog/tracedialog.cpp:609 msgid "B_rightness steps" -msgstr "" +msgstr "Bi_rtustigsþrep" #: ../src/ui/dialog/tracedialog.cpp:613 msgid "Trace the given number of brightness levels" -msgstr "" +msgstr "Linuteikna eftir tilteknum fjölda birtustiga" #: ../src/ui/dialog/tracedialog.cpp:621 msgid "Sc_ans:" -msgstr "" +msgstr "_Umferðir:" #: ../src/ui/dialog/tracedialog.cpp:625 msgid "The desired number of scans" -msgstr "" +msgstr "Umbeðinn fjöldi umferða" #: ../src/ui/dialog/tracedialog.cpp:630 msgid "Co_lors" @@ -20745,7 +20948,7 @@ msgstr "_Litir" #: ../src/ui/dialog/tracedialog.cpp:634 msgid "Trace the given number of reduced colors" -msgstr "" +msgstr "Línuteiknun ákveðins fjölda fækkaðra lita" #: ../src/ui/dialog/tracedialog.cpp:639 msgid "_Grays" @@ -20753,7 +20956,7 @@ msgstr "_Grátónar" #: ../src/ui/dialog/tracedialog.cpp:643 msgid "Same as Colors, but the result is converted to grayscale" -msgstr "" +msgstr "Sama og fyrir liti, en útkomunni er umbreytt í í grátóna" #. TRANSLATORS: "Smooth" is a verb here #: ../src/ui/dialog/tracedialog.cpp:649 @@ -20762,31 +20965,33 @@ msgstr "_Mýking" #: ../src/ui/dialog/tracedialog.cpp:653 msgid "Apply Gaussian blur to the bitmap before tracing" -msgstr "" +msgstr "Beita Gaussískri afskerpingu á bitamynd áður en hún er línuteiknuð" #. TRANSLATORS: "Stack" is a verb here #: ../src/ui/dialog/tracedialog.cpp:657 msgid "Stac_k scans" -msgstr "" +msgstr "Sta_fla umferðum" #: ../src/ui/dialog/tracedialog.cpp:661 msgid "" "Stack scans on top of one another (no gaps) instead of tiling (usually with " "gaps)" msgstr "" +"Staflar umferðum hverri ofan á aðra (án bila) í stað þess að flísaleggja " +"(venjulega með bilum)" #: ../src/ui/dialog/tracedialog.cpp:665 msgid "Remo_ve background" -msgstr "" +msgstr "Fjarlægja bakgrunn" #. TRANSLATORS: "Layer" refers to one of the stacked paths in the multiscan #: ../src/ui/dialog/tracedialog.cpp:670 msgid "Remove bottom (background) layer when done" -msgstr "" +msgstr "Fjarlægja neðsta lagið (bakgrunn) þegar ferli er lokið" #: ../src/ui/dialog/tracedialog.cpp:675 msgid "Multiple scans: creates a group of paths" -msgstr "" +msgstr "Margþrepa: útbýr hópa af ferlum" #. # end multiple scan #. ## end mode page @@ -20818,7 +21023,7 @@ msgstr "Mýkja _horn" #: ../src/ui/dialog/tracedialog.cpp:710 msgid "Smooth out sharp corners of the trace" -msgstr "" +msgstr "Mýkja skörp horn línuteikningarinnar" #: ../src/ui/dialog/tracedialog.cpp:719 msgid "Increase this to smooth corners more" @@ -20830,13 +21035,13 @@ msgstr "_Besta ferla" #: ../src/ui/dialog/tracedialog.cpp:729 msgid "Try to optimize paths by joining adjacent Bezier curve segments" -msgstr "" +msgstr "Reyna að besta ferla með því að sameina samliggjandi Bezier-ferilbúta" #: ../src/ui/dialog/tracedialog.cpp:737 msgid "" "Increase this to reduce the number of nodes in the trace by more aggressive " "optimization" -msgstr "" +msgstr "Auka þetta til að fækka hnútum í línurakningunni með ákveðnari bestun" #: ../src/ui/dialog/tracedialog.cpp:739 msgid "To_lerance:" @@ -20870,11 +21075,11 @@ msgstr "Framlög" #. ## SIOX #: ../src/ui/dialog/tracedialog.cpp:774 msgid "SIOX _foreground selection" -msgstr "" +msgstr "SIOX _forgrunnsval" #: ../src/ui/dialog/tracedialog.cpp:777 msgid "Cover the area you want to select as the foreground" -msgstr "" +msgstr "Hyldu svæðið sem þú vilt velja sem forgrunn" #: ../src/ui/dialog/tracedialog.cpp:782 msgid "Live Preview" @@ -20890,6 +21095,8 @@ msgid "" "Preview the intermediate bitmap with the current settings, without actual " "tracing" msgstr "" +"Forskoða útkomu bitamyndarinnar með núverandi stillingum, án þess þó að " +"framkvæma línurakninguna" #: ../src/ui/dialog/tracedialog.cpp:800 msgid "Preview" @@ -20902,7 +21109,7 @@ msgstr "_Lárétt:" #: ../src/ui/dialog/transformation.cpp:74 msgid "Horizontal displacement (relative) or position (absolute)" -msgstr "" +msgstr "Lárétt færsla (afstæð) eða staðsetning (algild)" #: ../src/ui/dialog/transformation.cpp:76 #: ../src/ui/dialog/transformation.cpp:86 @@ -20911,15 +21118,15 @@ msgstr "Lóð_rétt:" #: ../src/ui/dialog/transformation.cpp:76 msgid "Vertical displacement (relative) or position (absolute)" -msgstr "" +msgstr "Lóðrétt færsla (afstæð) eða staðsetning (algild)" #: ../src/ui/dialog/transformation.cpp:78 msgid "Horizontal size (absolute or percentage of current)" -msgstr "" +msgstr "Lárétt stærð (algild eða í prósentuhlutfalli við núverandi stærð)" #: ../src/ui/dialog/transformation.cpp:80 msgid "Vertical size (absolute or percentage of current)" -msgstr "" +msgstr "Lóðrétt stærð (algild eða í prósentuhlutfalli við núverandi stærð)" #: ../src/ui/dialog/transformation.cpp:82 msgid "A_ngle:" @@ -20935,12 +21142,16 @@ msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" msgstr "" +"Láðrétt skekkingarhorn (jákvætt = rangsælis), eða algild tilfærsla eða " +"tilfærsla í prósentuhlutfalli" #: ../src/ui/dialog/transformation.cpp:86 msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" msgstr "" +"Lóðrétt skekkingarhorn (jákvætt = rangsælis), eða algild tilfærsla eða " +"tilfærsla í prósentuhlutfalli" #: ../src/ui/dialog/transformation.cpp:89 msgid "Transformation matrix element A" @@ -21026,15 +21237,15 @@ msgstr "Frumstilla gildin á þessum flipa á sjálfgefin gildi" #: ../src/ui/dialog/transformation.cpp:155 msgid "Apply transformation to selection" -msgstr "" +msgstr "Beita umbreytingu á valið" #: ../src/ui/dialog/transformation.cpp:331 msgid "Rotate in a counterclockwise direction" -msgstr "" +msgstr "Snúa rangsælis" #: ../src/ui/dialog/transformation.cpp:337 msgid "Rotate in a clockwise direction" -msgstr "" +msgstr "Snúa réttsælis" #: ../src/ui/dialog/transformation.cpp:907 #: ../src/ui/dialog/transformation.cpp:918 @@ -21056,104 +21267,106 @@ msgstr "Snúningshorn (jákvætt = réttsælis)" #: ../src/ui/dialog/xml-tree.cpp:70 ../src/ui/dialog/xml-tree.cpp:126 msgid "New element node" -msgstr "" +msgstr "Nýr stakliður" #: ../src/ui/dialog/xml-tree.cpp:71 ../src/ui/dialog/xml-tree.cpp:132 msgid "New text node" -msgstr "" +msgstr "Nýr textaliður" #: ../src/ui/dialog/xml-tree.cpp:72 ../src/ui/dialog/xml-tree.cpp:146 msgid "nodeAsInXMLdialogTooltip|Delete node" -msgstr "" +msgstr "Eyða lið" #: ../src/ui/dialog/xml-tree.cpp:73 ../src/ui/dialog/xml-tree.cpp:138 -#: ../src/ui/dialog/xml-tree.cpp:977 +#: ../src/ui/dialog/xml-tree.cpp:985 msgid "Duplicate node" -msgstr "Tvöfalda hnút" +msgstr "Tvöfalda lið" -#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:191 -#: ../src/ui/dialog/xml-tree.cpp:1013 +#: ../src/ui/dialog/xml-tree.cpp:79 ../src/ui/dialog/xml-tree.cpp:199 +#: ../src/ui/dialog/xml-tree.cpp:1021 msgid "Delete attribute" -msgstr "" +msgstr "Eyða eigindi" #: ../src/ui/dialog/xml-tree.cpp:87 msgid "Set" -msgstr "Stilla" +msgstr "Setja" #: ../src/ui/dialog/xml-tree.cpp:121 msgid "Drag to reorder nodes" -msgstr "" +msgstr "Draga til að endurraða liðum" -#: ../src/ui/dialog/xml-tree.cpp:152 ../src/ui/dialog/xml-tree.cpp:153 -#: ../src/ui/dialog/xml-tree.cpp:1135 +#: ../src/ui/dialog/xml-tree.cpp:154 ../src/ui/dialog/xml-tree.cpp:155 +#: ../src/ui/dialog/xml-tree.cpp:1143 msgid "Unindent node" -msgstr "" +msgstr "Fjarlægja inndrátt liðar" -#: ../src/ui/dialog/xml-tree.cpp:157 ../src/ui/dialog/xml-tree.cpp:158 -#: ../src/ui/dialog/xml-tree.cpp:1113 +#: ../src/ui/dialog/xml-tree.cpp:161 ../src/ui/dialog/xml-tree.cpp:162 +#: ../src/ui/dialog/xml-tree.cpp:1121 msgid "Indent node" -msgstr "" +msgstr "Draga inn lið" -#: ../src/ui/dialog/xml-tree.cpp:162 ../src/ui/dialog/xml-tree.cpp:163 -#: ../src/ui/dialog/xml-tree.cpp:1064 +#: ../src/ui/dialog/xml-tree.cpp:168 ../src/ui/dialog/xml-tree.cpp:169 +#: ../src/ui/dialog/xml-tree.cpp:1072 msgid "Raise node" -msgstr "" +msgstr "Hækka lið" -#: ../src/ui/dialog/xml-tree.cpp:167 ../src/ui/dialog/xml-tree.cpp:168 -#: ../src/ui/dialog/xml-tree.cpp:1082 +#: ../src/ui/dialog/xml-tree.cpp:175 ../src/ui/dialog/xml-tree.cpp:176 +#: ../src/ui/dialog/xml-tree.cpp:1090 msgid "Lower node" -msgstr "" +msgstr "Lækka lið" -#: ../src/ui/dialog/xml-tree.cpp:208 +#: ../src/ui/dialog/xml-tree.cpp:216 msgid "Attribute name" -msgstr "" +msgstr "Heiti á eigindi" -#: ../src/ui/dialog/xml-tree.cpp:223 +#: ../src/ui/dialog/xml-tree.cpp:231 msgid "Attribute value" -msgstr "" +msgstr "Gildi eigindis" -#: ../src/ui/dialog/xml-tree.cpp:311 +#: ../src/ui/dialog/xml-tree.cpp:319 msgid "Click to select nodes, drag to rearrange." -msgstr "" +msgstr "Smelltu til að velja liði, dragðu til að endurraða." -#: ../src/ui/dialog/xml-tree.cpp:322 +#: ../src/ui/dialog/xml-tree.cpp:330 msgid "Click attribute to edit." -msgstr "" +msgstr "Smelltu á eigindi til að breyta." -#: ../src/ui/dialog/xml-tree.cpp:326 +#: ../src/ui/dialog/xml-tree.cpp:334 #, c-format msgid "" "Attribute %s selected. Press Ctrl+Enter when done editing to " "commit changes." msgstr "" +"Eigindið %s valið. Ýttu á Ctrl+Enter þegar breytingum er lokið " +"til að staðfesta breytingar." -#: ../src/ui/dialog/xml-tree.cpp:566 +#: ../src/ui/dialog/xml-tree.cpp:574 msgid "Drag XML subtree" -msgstr "" +msgstr "Draga XML undirgreinar" -#: ../src/ui/dialog/xml-tree.cpp:868 +#: ../src/ui/dialog/xml-tree.cpp:876 msgid "New element node..." -msgstr "" +msgstr "Nýr stakliður..." -#: ../src/ui/dialog/xml-tree.cpp:906 +#: ../src/ui/dialog/xml-tree.cpp:914 msgid "Cancel" msgstr "Hætta við" -#: ../src/ui/dialog/xml-tree.cpp:943 +#: ../src/ui/dialog/xml-tree.cpp:951 msgid "Create new element node" -msgstr "" +msgstr "Búa til nýjan staklið" -#: ../src/ui/dialog/xml-tree.cpp:959 +#: ../src/ui/dialog/xml-tree.cpp:967 msgid "Create new text node" -msgstr "" +msgstr "Búa til nýjan textalið" -#: ../src/ui/dialog/xml-tree.cpp:994 +#: ../src/ui/dialog/xml-tree.cpp:1002 msgid "nodeAsInXMLinHistoryDialog|Delete node" -msgstr "" +msgstr "Eyða lið" -#: ../src/ui/dialog/xml-tree.cpp:1038 +#: ../src/ui/dialog/xml-tree.cpp:1046 msgid "Change attribute" -msgstr "" +msgstr "Breyta eigindi" #: ../src/ui/interface.cpp:748 msgctxt "Interface setup" @@ -21162,7 +21375,7 @@ msgstr "Sjálfgefið" #: ../src/ui/interface.cpp:748 msgid "Default interface setup" -msgstr "" +msgstr "Uppsetning sjálfgefins viðmóts" #: ../src/ui/interface.cpp:749 msgctxt "Interface setup" @@ -21171,7 +21384,7 @@ msgstr "Sérsniðið" #: ../src/ui/interface.cpp:749 msgid "Setup for custom task" -msgstr "" +msgstr "Stilla fyrir sérsniðið verk" #: ../src/ui/interface.cpp:750 msgctxt "Interface setup" @@ -21185,7 +21398,7 @@ msgstr "Setja upp fyrir vinnu á breiðskjá" #: ../src/ui/interface.cpp:862 #, c-format msgid "Verb \"%s\" Unknown" -msgstr "" +msgstr "Sögnin \"%s\" óþekkt" #: ../src/ui/interface.cpp:901 msgid "Open _Recent" @@ -21194,27 +21407,27 @@ msgstr "O_pna nýlegt" #: ../src/ui/interface.cpp:1009 ../src/ui/interface.cpp:1095 #: ../src/ui/interface.cpp:1198 ../src/ui/widget/selected-style.cpp:544 msgid "Drop color" -msgstr "" +msgstr "Sleppa lit" #: ../src/ui/interface.cpp:1048 ../src/ui/interface.cpp:1158 msgid "Drop color on gradient" -msgstr "" +msgstr "Sleppa lit á litstigul" #: ../src/ui/interface.cpp:1211 msgid "Could not parse SVG data" -msgstr "" +msgstr "Gat ekki þáttað SVG-gögn" #: ../src/ui/interface.cpp:1250 msgid "Drop SVG" -msgstr "" +msgstr "Sleppa SVG" #: ../src/ui/interface.cpp:1263 msgid "Drop Symbol" -msgstr "" +msgstr "Sleppa tákni" #: ../src/ui/interface.cpp:1294 msgid "Drop bitmap image" -msgstr "" +msgstr "Sleppa bitamynd" #: ../src/ui/interface.cpp:1386 #, c-format @@ -21224,6 +21437,11 @@ msgid "" "\n" "The file already exists in \"%s\". Replacing it will overwrite its contents." msgstr "" +"Skrá með heitinu \"%s\" er þegar til. " +"Viltu skipta henni út?\n" +"\n" +"Skráin er þegar til í \"%s\". Verði henni skipt út verður skrifað yfir " +"innihaldið." #: ../src/ui/interface.cpp:1393 ../share/extensions/web-set-att.inx.h:21 #: ../share/extensions/web-transmit-att.inx.h:19 @@ -21232,7 +21450,7 @@ msgstr "Skipta út" #: ../src/ui/interface.cpp:1464 msgid "Go to parent" -msgstr "" +msgstr "Fara í forvera" #. TRANSLATORS: #%1 is the id of the group e.g. , not a number. #: ../src/ui/interface.cpp:1505 @@ -21364,7 +21582,7 @@ msgstr "Línu_teikna bitamynd..." #. Trace Pixel Art #: ../src/ui/interface.cpp:1999 msgid "Trace Pixel Art" -msgstr "" +msgstr "Línuteikna Pixel Art" #: ../src/ui/interface.cpp:2009 msgctxt "Context menu" @@ -21393,96 +21611,121 @@ msgstr "_Texti og letur..." msgid "Check Spellin_g..." msgstr "_Yfirfara stafsetningu..." -#: ../src/ui/object-edit.cpp:456 +#: ../src/ui/object-edit.cpp:464 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" msgstr "" +"Aðlaga radíus láréttrar rúnnunar; með Ctrl má láta lóðréttan " +"radíus vera þann sama" -#: ../src/ui/object-edit.cpp:461 +#: ../src/ui/object-edit.cpp:469 msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" msgstr "" +"Aðlaga radíus lóðréttrar rúnnunar; með Ctrl má láta láréttan " +"radíus vera þann sama" -#: ../src/ui/object-edit.cpp:466 ../src/ui/object-edit.cpp:471 +#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 msgid "" "Adjust the width and height of the rectangle; with Ctrl to " "lock ratio or stretch in one dimension only" msgstr "" +"Aðlaga breidd og hæð rétthyrningsins; með Ctrl til að læsa " +"hlutföllum eða teygja einungis í eina átt" -#: ../src/ui/object-edit.cpp:718 ../src/ui/object-edit.cpp:722 #: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 +#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 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 "" +"Breyta stærð kassa í X/Y stefnu; með Shift eftir Z ás; með Ctrl til að skilyrða í stefnur jaðra eða skálína" -#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 #: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 +#: ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 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 "" +"Breyta stærð kassa eftir Z ás; með Shift í X/Y stefnu; með Ctrl til að skilyrða í stefnur jaðra eða skálína" -#: ../src/ui/object-edit.cpp:750 +#: ../src/ui/object-edit.cpp:758 msgid "Move the box in perspective" -msgstr "" +msgstr "Færa kassa í fjarvídd" -#: ../src/ui/object-edit.cpp:989 +#: ../src/ui/object-edit.cpp:997 msgid "Adjust ellipse width, with Ctrl to make circle" -msgstr "" +msgstr "Aðlaga breidd sporöskju, með Ctrl til að gera hring" -#: ../src/ui/object-edit.cpp:993 +#: ../src/ui/object-edit.cpp:1001 msgid "Adjust ellipse height, with Ctrl to make circle" -msgstr "" +msgstr "Aðlaga hæð sporöskju, með Ctrl til að gera hring" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:1005 msgid "" "Position the start point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" +"Staðsettu upphafspunkt boglínu eða geira; með Ctrl til að " +"þrepa hornin; dragðu innan í til að breyta sporbaugnum í boglínu, " +"utan við til að mynda geira/sneið" -#: ../src/ui/object-edit.cpp:1002 +#: ../src/ui/object-edit.cpp:1010 msgid "" "Position the end point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " "segment" msgstr "" +"Staðsettu endapunkt boglínu eða geira; með Ctrl til að þrepa " +"hornin; dragðu innan í til að breyta sporbaugnum í boglínu, utan " +"við til að mynda geira/sneið" -#: ../src/ui/object-edit.cpp:1148 +#: ../src/ui/object-edit.cpp:1156 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" msgstr "" +"Fínstilla radíus odds á stjörnu eða marghyrningi; með Shift " +"til að rúnna; með Alt til að slembigera" -#: ../src/ui/object-edit.cpp:1156 +#: ../src/ui/object-edit.cpp:1164 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 "" +"Fínstilla grunnradíus stjörnu; með Ctrl til að halda geislum " +"stjörnu miðlægum (engin skekkja); með Shift til að rúnna; með Alt til að slembigera" -#: ../src/ui/object-edit.cpp:1351 +#: ../src/ui/object-edit.cpp:1359 msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" msgstr "" +"Vinda/afvinda spíral að innan; með Ctrl til að þrepa horn; með " +"Alt til að leita inn/út" -#: ../src/ui/object-edit.cpp:1355 +#: ../src/ui/object-edit.cpp:1363 msgid "" "Roll/unroll the spiral from outside; with Ctrl to snap angle; " "with Shift to scale/rotate; with Alt to lock radius" msgstr "" +"Vinda/afvinda spíral að utan; með Ctrl til að þrepa horn; með <" +"b>Shift til að kvarða/snúa; með Alt til að læsa radíus" -#: ../src/ui/object-edit.cpp:1402 +#: ../src/ui/object-edit.cpp:1410 msgid "Adjust the offset distance" -msgstr "" +msgstr "Laga vegalengd hliðrunar" -#: ../src/ui/object-edit.cpp:1439 +#: ../src/ui/object-edit.cpp:1447 msgid "Drag to resize the flowed text frame" -msgstr "" +msgstr "Dragðu til að breyta stærð ramma með flæðitexta" #: ../src/ui/tool/curve-drag-point.cpp:119 msgid "Drag curve" @@ -21495,12 +21738,12 @@ msgstr "Bæta við hnút" #: ../src/ui/tool/curve-drag-point.cpp:186 msgctxt "Path segment tip" msgid "Shift: click to toggle segment selection" -msgstr "" +msgstr "Shift: smella til að víxla vali búta" #: ../src/ui/tool/curve-drag-point.cpp:190 msgctxt "Path segment tip" msgid "Ctrl+Alt: click to insert a node" -msgstr "" +msgstr "Ctrl+Alt: Smella til að setja inn hnút" #: ../src/ui/tool/curve-drag-point.cpp:194 msgctxt "Path segment tip" @@ -21508,6 +21751,8 @@ msgid "" "Linear segment: drag to convert to a Bezier segment, doubleclick to " "insert node, click to select (more: Shift, Ctrl+Alt)" msgstr "" +"Línulegur bútur: draga til að umbreyta í Bezier bút, tvísmella til að " +"setja inn hnút, smella til að velja (meira: Shift, Ctrl+Alt)" #: ../src/ui/tool/curve-drag-point.cpp:198 msgctxt "Path segment tip" @@ -21515,14 +21760,16 @@ msgid "" "Bezier segment: drag to shape the segment, doubleclick to insert " "node, click to select (more: Shift, Ctrl+Alt)" msgstr "" +"Bezier bútur: draga til að forma bútinn, tvísmella til að setja inn " +"hnút, smella til að velja (meira: Shift, Ctrl+Alt)" #: ../src/ui/tool/multi-path-manipulator.cpp:315 msgid "Retract handles" -msgstr "" +msgstr "Draga inn haldföng" #: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 msgid "Change node type" -msgstr "" +msgstr "Breyta tegund hnúts" #: ../src/ui/tool/multi-path-manipulator.cpp:323 msgid "Straighten segments" @@ -21605,34 +21852,34 @@ msgstr "Spegla hnútum lóðrétt" #: ../src/ui/tool/node.cpp:271 msgid "Cusp node handle" -msgstr "" +msgstr "Haldfang á frjálsum hnút" #: ../src/ui/tool/node.cpp:272 msgid "Smooth node handle" -msgstr "" +msgstr "Haldfang á mjúkum hnút" #: ../src/ui/tool/node.cpp:273 msgid "Symmetric node handle" -msgstr "" +msgstr "Haldfang á samhverfum hnút" #: ../src/ui/tool/node.cpp:274 msgid "Auto-smooth node handle" -msgstr "" +msgstr "Haldfang á sjálfvirkt mýktum hnút" #: ../src/ui/tool/node.cpp:493 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" -msgstr "" +msgstr "meira: Shift, Ctrl, Alt" #: ../src/ui/tool/node.cpp:495 msgctxt "Path handle tip" msgid "more: Ctrl" -msgstr "" +msgstr "meira: Ctrl" #: ../src/ui/tool/node.cpp:497 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" -msgstr "" +msgstr "meira: Ctrl, Alt" #: ../src/ui/tool/node.cpp:503 #, c-format @@ -21641,23 +21888,25 @@ msgid "" "Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° " "increments while rotating both handles" msgstr "" +"Shift+Ctrl+Alt: vernda lengd haldfangs, þrepa snúningshorn í %g° " +"bilum og snúa báðum haldföngum" #: ../src/ui/tool/node.cpp:508 #, c-format msgctxt "Path handle tip" msgid "" "Ctrl+Alt: preserve length and snap rotation angle to %g° increments" -msgstr "" +msgstr "Ctrl+Alt: vernda lengd og þrepa snúningshorn í %g° bilum" #: ../src/ui/tool/node.cpp:514 msgctxt "Path handle tip" msgid "Shift+Alt: preserve handle length and rotate both handles" -msgstr "" +msgstr "Shift+Alt: vernda lengd haldfangs og snúa báðum haldföngum" #: ../src/ui/tool/node.cpp:517 msgctxt "Path handle tip" msgid "Alt: preserve handle length while dragging" -msgstr "" +msgstr "Alt: vernda lengd haldfangs við að draga" #: ../src/ui/tool/node.cpp:524 #, c-format @@ -21666,76 +21915,80 @@ msgid "" "Shift+Ctrl: snap rotation angle to %g° increments and rotate both " "handles" msgstr "" +"Shift+Ctrl: þrepa snúningshorn í %g° bilum og snúa báðum haldföngum" #: ../src/ui/tool/node.cpp:528 msgctxt "Path handle tip" msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" -msgstr "" +msgstr "Ctrl: Færa haldfang um eigin þrep í BSpline Live Effect" #: ../src/ui/tool/node.cpp:531 #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" -msgstr "" +msgstr "Ctrl: þrepa snúningshorn í %g° bilum, smella til að draga inn" #: ../src/ui/tool/node.cpp:536 msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" -msgstr "" +msgstr "Shift: snúa báðum haldföngum um sama horn" #: ../src/ui/tool/node.cpp:539 msgctxt "Path hande tip" msgid "Shift: move handle" -msgstr "" +msgstr "Shift: færa haldfang" #: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" msgstr "" +"Haldfang á sjálfvirkum hnút: draga til að umbreyta í mýktan hnút (%s)" #: ../src/ui/tool/node.cpp:553 #, c-format msgctxt "Path handle tip" msgid "BSpline node handle: Shift to drag, double click to reset (%s)" msgstr "" +"Haldfang BSplínu hnúts: Shift til að draga, tvísmella til að " +"frumstilla (%s)" #: ../src/ui/tool/node.cpp:573 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" -msgstr "" +msgstr "Færa haldfang um %s, %s; horn %.2f°, lengd %s" #: ../src/ui/tool/node.cpp:1447 msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" -msgstr "" +msgstr "Shift: draga út haldfang, smella til að víxla vali" #: ../src/ui/tool/node.cpp:1449 msgctxt "Path node tip" msgid "Shift: click to toggle selection" -msgstr "" +msgstr "Shift: smella til að víxla vali" #: ../src/ui/tool/node.cpp:1454 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" -msgstr "" +msgstr "Ctrl+Alt: færa eftir línum haldfanga, smella til að eyða hnút" #: ../src/ui/tool/node.cpp:1457 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" -msgstr "" +msgstr "Ctrl: færa eftir ásum, smella til að skipta um tegund hnúts" #: ../src/ui/tool/node.cpp:1461 msgctxt "Path node tip" msgid "Alt: sculpt nodes" -msgstr "" +msgstr "Alt: forma hnúta" #: ../src/ui/tool/node.cpp:1469 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" -msgstr "" +msgstr "%s: draga til að forma ferilinn (meira: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1472 #, c-format @@ -21744,6 +21997,8 @@ msgid "" "BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, " "Alt)" msgstr "" +"BSplínu hnútur: %g sverleiki, draga til að forma ferilinn (meira: " +"Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1475 #, c-format @@ -21752,6 +22007,8 @@ msgid "" "%s: drag to shape the path, click to toggle scale/rotation handles " "(more: Shift, Ctrl, Alt)" msgstr "" +"%s: draga til að forma ferilinn, smella til að víxla á milli " +"kvörðunar-/snúnings-haldfanga (meira: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1479 #, c-format @@ -21760,6 +22017,8 @@ msgid "" "%s: drag to shape the path, click to select only this node (more: " "Shift, Ctrl, Alt)" msgstr "" +"%s: draga til að forma ferilinn, smella til að velja einungis þennan " +"hnút (meira: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1482 msgctxt "Path node tip" @@ -21767,20 +22026,22 @@ msgid "" "BSpline node: drag to shape the path, click to select only this node " "(more: Shift, Ctrl, Alt)" msgstr "" +"BSplínu hnútur: draga til að forma ferilinn, smella til að velja " +"einungis þennan hnút (meira: Shift, Ctrl, Alt)" #: ../src/ui/tool/node.cpp:1495 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" -msgstr "" +msgstr "Flytja hnút um %s, %s" #: ../src/ui/tool/node.cpp:1506 msgid "Symmetric node" -msgstr "" +msgstr "Samhverfur hnútur" #: ../src/ui/tool/node.cpp:1507 msgid "Auto-smooth node" -msgstr "" +msgstr "Sjálfvirkt mýktur hnútur" #: ../src/ui/tool/path-manipulator.cpp:836 msgid "Scale handle" @@ -21794,11 +22055,11 @@ msgstr "Snúa haldfangi" #: ../src/ui/tool/path-manipulator.cpp:1524 #: ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" -msgstr "" +msgstr "Eyða hnút" #: ../src/ui/tool/path-manipulator.cpp:1532 msgid "Cycle node type" -msgstr "" +msgstr "Fletta í gegnum tegundir hnúta" #: ../src/ui/tool/path-manipulator.cpp:1547 msgid "Drag handle" @@ -21811,33 +22072,33 @@ msgstr "Draga haldfang inn" #: ../src/ui/tool/transform-handle-set.cpp:195 msgctxt "Transform handle tip" msgid "Shift+Ctrl: scale uniformly about the rotation center" -msgstr "" +msgstr "Shift+Ctrl: kvarða jafnt um snúningsmiðjuna" #: ../src/ui/tool/transform-handle-set.cpp:197 msgctxt "Transform handle tip" msgid "Ctrl: scale uniformly" -msgstr "" +msgstr "Ctrl: kvarða jafnt" #: ../src/ui/tool/transform-handle-set.cpp:202 msgctxt "Transform handle tip" msgid "" "Shift+Alt: scale using an integer ratio about the rotation center" -msgstr "" +msgstr "Shift+Alt: kvarða með heiltöluhlutfalli um snúningsmiðjuna" #: ../src/ui/tool/transform-handle-set.cpp:204 msgctxt "Transform handle tip" msgid "Shift: scale from the rotation center" -msgstr "" +msgstr "Shift: kvarða frá snúningsmiðjunni" #: ../src/ui/tool/transform-handle-set.cpp:207 msgctxt "Transform handle tip" msgid "Alt: scale using an integer ratio" -msgstr "" +msgstr "Alt: kvarða með heiltöluhlutfalli" #: ../src/ui/tool/transform-handle-set.cpp:209 msgctxt "Transform handle tip" msgid "Scale handle: drag to scale the selection" -msgstr "" +msgstr "Kvörðunarhaldfang: dragðu til að kvarða valið" #: ../src/ui/tool/transform-handle-set.cpp:214 #, c-format @@ -21852,17 +22113,18 @@ msgid "" "Shift+Ctrl: rotate around the opposite corner and snap angle to %f° " "increments" msgstr "" +"Shift+Ctrl: snúa um gagnstætt horn og þrepa snúningshorn í %f° bilum" #: ../src/ui/tool/transform-handle-set.cpp:441 msgctxt "Transform handle tip" msgid "Shift: rotate around the opposite corner" -msgstr "" +msgstr "Shift: snúa um gagnstætt horn" #: ../src/ui/tool/transform-handle-set.cpp:445 #, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap angle to %f° increments" -msgstr "" +msgstr "Ctrl: þrepa horn í %f° bilum" #: ../src/ui/tool/transform-handle-set.cpp:447 msgctxt "Transform handle tip" @@ -21870,6 +22132,7 @@ msgid "" "Rotation handle: drag to rotate the selection around the rotation " "center" msgstr "" +"Snúninghaldfang: dragðu til að snúa valinu í kringum snúningsmiðju" #. event #: ../src/ui/tool/transform-handle-set.cpp:452 @@ -21885,97 +22148,118 @@ msgid "" "Shift+Ctrl: skew about the rotation center with snapping to %f° " "increments" msgstr "" +"Shift+Ctrl: skekkja um snúningsmiðjuna og þrepa horn í %f° bilum" #: ../src/ui/tool/transform-handle-set.cpp:581 msgctxt "Transform handle tip" msgid "Shift: skew about the rotation center" -msgstr "" +msgstr "Shift: skekkja um snúningsmiðjuna" #: ../src/ui/tool/transform-handle-set.cpp:585 #, c-format msgctxt "Transform handle tip" msgid "Ctrl: snap skew angle to %f° increments" -msgstr "" +msgstr "Ctrl: þrepa skekkingarhorn í %f° bilum" #: ../src/ui/tool/transform-handle-set.cpp:588 msgctxt "Transform handle tip" msgid "" "Skew handle: drag to skew (shear) selection about the opposite handle" msgstr "" +"Skekkingarhaldfang: dragðu til að skekkja valið (horn-í-horn) um " +"mótstætt haldfang" #: ../src/ui/tool/transform-handle-set.cpp:594 #, c-format msgctxt "Transform handle tip" msgid "Skew horizontally by %.2f°" -msgstr "" +msgstr "Skew horizontally by %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:597 #, c-format msgctxt "Transform handle tip" msgid "Skew vertically by %.2f°" -msgstr "" +msgstr "Skew vertically by %.2f°" #: ../src/ui/tool/transform-handle-set.cpp:656 msgctxt "Transform handle tip" msgid "Rotation center: drag to change the origin of transforms" -msgstr "" +msgstr "Snúningsmiðja: draga til að breyta upphafspunkti ummyndana" #: ../src/ui/tools-switch.cpp:95 msgid "" "Click to Select and Transform objects, Drag to select many " "objects." msgstr "" +"Smelltu til að velja og umbreyta hlutum, Dragðu til að velja " +"marga hluti." #: ../src/ui/tools-switch.cpp:96 msgid "Modify selected path points (nodes) directly." -msgstr "" +msgstr "Breyta völdum ferilhnútum beint." #: ../src/ui/tools-switch.cpp:97 msgid "To tweak a path by pushing, select it and drag over it." msgstr "" -"Til að aflaga feril með því að ýta honum, veldu hann og dragðu bendilinn yfir." +"Til að aflaga feril með því að ýta honum, veldu hann og dragðu bendilinn " +"yfir." #: ../src/ui/tools-switch.cpp:98 msgid "" "Drag, click or click and scroll to spray the selected " "objects." msgstr "" +"Dragðu, smelltu eða smelltu og skrunaðu til að sprauta " +"valda hluti." #: ../src/ui/tools-switch.cpp:99 msgid "" "Drag to create a rectangle. Drag controls to round corners and " "resize. Click to select." msgstr "" +"Dragðu til að búa til ferhyrning. Dragðu haldföng til að rúnna " +"horn og breyta stærðum. Smelltu til að velja." #: ../src/ui/tools-switch.cpp:100 msgid "" "Drag to create a 3D box. Drag controls to resize in " "perspective. Click to select (with Ctrl+Alt for single faces)." msgstr "" +"Dragðu til að búa til þrívíddarkassa. Dragðu haldföng til að " +"breyta stærðum í fjarvídd. Smelltu til að velja (með Ctrl+Alt " +"fyrir staka hliðfleti)." #: ../src/ui/tools-switch.cpp:101 msgid "" "Drag to create an ellipse. Drag controls to make an arc or " "segment. Click to select." msgstr "" +"Dragðu til að búa til sporbaug. Dragðu haldföng til að gera " +"boga eða hringhluta. Smelltu til að velja." #: ../src/ui/tools-switch.cpp:102 msgid "" "Drag to create a star. Drag controls to edit the star shape. " "Click to select." msgstr "" +"Dragðu til að búa til stjörnu. Dragðu haldföng til að breyta " +"löguninni. Smelltu til að velja." #: ../src/ui/tools-switch.cpp:103 msgid "" "Drag to create a spiral. Drag controls to edit the spiral " "shape. Click to select." msgstr "" +"Dragðu til að búa til spíral. Dragðu haldföng til að breyta " +"löguninni. Smelltu til að velja." #: ../src/ui/tools-switch.cpp:104 msgid "" "Drag to create a freehand line. Shift appends to selected " "path, Alt activates sketch mode." msgstr "" +"Dragðu til að búa til fríhendislínu. Shift bætir við valinn " +"feril, Alt virkjar skissuham." #: ../src/ui/tools-switch.cpp:105 msgid "" @@ -21983,47 +22267,65 @@ msgid "" "append to selected path. Ctrl+click to create single dots (straight " "line modes only)." msgstr "" +"Smelltu eða smelltu og dragðu til að byrja á ferli; með " +"Shift til að bæta við valinn feril. Ctrl+click til að búa til " +"staka punkta (eingöngu í beinlínuham)." #: ../src/ui/tools-switch.cpp:106 msgid "" "Drag to draw a calligraphic stroke; with Ctrl to track a guide " "path. Arrow keys adjust width (left/right) and angle (up/down)." msgstr "" +"Dragðu til að draga skrautskriftarstroku; með Ctrl til að " +"fylgja stuðningsferli. Örvalyklar aðlaga breidd (vinstri/hægri) og " +"halla (upp/niður)." -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1593 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1584 msgid "" "Click to select or create text, drag to create flowed text; " "then type." msgstr "" +"Smelltu til að velja eða búa til texta, dragðu til að búa til " +"flæðitexta; skrifaðu síðan." #: ../src/ui/tools-switch.cpp:108 msgid "" "Drag or double click to create a gradient on selected objects, " "drag handles to adjust gradients." msgstr "" +"Dragðu eða tvísmelltu til að búa til litstigul á völdum " +"hlutum, dragðu haldföng til að laga litstigla." #: ../src/ui/tools-switch.cpp:109 msgid "" "Drag or double click to create a mesh on selected objects, " "drag handles to adjust meshes." msgstr "" +"Dragðu eða tvísmelltu til að búa til möskva á völdum hlutum, " +"dragðu haldföng til að laga möskva." #: ../src/ui/tools-switch.cpp:110 msgid "" "Click or drag around an area to zoom in, Shift+click to " "zoom out." msgstr "" +"Smelltu eða dragðu utan um svæði til að renna að, Shift" +"+click til að renna út." #: ../src/ui/tools-switch.cpp:111 msgid "Drag to measure the dimensions of objects." -msgstr "" +msgstr "Dragðu til að mæla stærðir hluta." -#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/ui/tools-switch.cpp:112 ../src/ui/tools/dropper-tool.cpp:275 msgid "" "Click to set fill, Shift+click to set stroke; drag to " "average color in area; with Alt to pick inverse color; Ctrl+C " "to copy the color under mouse to clipboard" msgstr "" +"Smelltu til að setja fyllingu, Shift+smelltu til að setja " +"útlínulit; dragðu til að taka meðaltalslit svæðis; með Alt " +"tila að plokka andstæðan lit; Ctrl+C til að afrita litinn undir " +"bendlinum á klippispjaldið" #: ../src/ui/tools-switch.cpp:113 msgid "Click and drag between shapes to create a connector." @@ -22035,6 +22337,9 @@ msgid "" "fill with the current selection, Ctrl+click to change the clicked " "object's fill and stroke to the current setting." msgstr "" +"Smelltu til að fylla afmarkað svæði, Shift+smella til að " +"sameina nýju fyllinguna því sem valið er fyrir, Ctrl+smella til að " +"breyta fyllingu og útlínu valda hlutarins á núverandi stillingar." #: ../src/ui/tools-switch.cpp:115 msgid "Drag to erase." @@ -22042,20 +22347,20 @@ msgstr "Dragðu til að stroka út." #: ../src/ui/tools-switch.cpp:116 msgid "Choose a subtool from the toolbar" -msgstr "" +msgstr "Veldu aukaverkfæri af verkfærastikunni" -#: ../src/ui/tools/arc-tool.cpp:252 +#: ../src/ui/tools/arc-tool.cpp:242 msgid "" "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" "Ctrl: gera hring eða heiltölu-hlutfalls sporbaug, grípa í boga/horn á " "bút" -#: ../src/ui/tools/arc-tool.cpp:253 ../src/ui/tools/rect-tool.cpp:289 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:279 msgid "Shift: draw around the starting point" msgstr "Shift: teikna hring í kringum upphafspunkt" -#: ../src/ui/tools/arc-tool.cpp:422 +#: ../src/ui/tools/arc-tool.cpp:412 #, c-format msgid "" "Ellipse: %s × %s (constrained to ratio %d:%d); with Shift " @@ -22064,7 +22369,7 @@ msgstr "" "Sporbaugur: %s × %s (takmarkað að hlutfallinu %d:%d); með " "Shift til að teikna umhverfis upphafspunkt" -#: ../src/ui/tools/arc-tool.cpp:424 +#: ../src/ui/tools/arc-tool.cpp:414 #, c-format msgid "" "Ellipse: %s × %s; with Ctrl to make square or integer-" @@ -22074,152 +22379,152 @@ msgstr "" "heiltölu-hlutfalls sporbaug; með Shift til að teikna umhverfis " "upphafspunkt" -#: ../src/ui/tools/arc-tool.cpp:447 +#: ../src/ui/tools/arc-tool.cpp:437 msgid "Create ellipse" msgstr "Útbúa sporbaug" -#: ../src/ui/tools/box3d-tool.cpp:370 ../src/ui/tools/box3d-tool.cpp:377 -#: ../src/ui/tools/box3d-tool.cpp:384 ../src/ui/tools/box3d-tool.cpp:391 -#: ../src/ui/tools/box3d-tool.cpp:398 ../src/ui/tools/box3d-tool.cpp:405 +#: ../src/ui/tools/box3d-tool.cpp:360 ../src/ui/tools/box3d-tool.cpp:367 +#: ../src/ui/tools/box3d-tool.cpp:374 ../src/ui/tools/box3d-tool.cpp:381 +#: ../src/ui/tools/box3d-tool.cpp:388 ../src/ui/tools/box3d-tool.cpp:395 msgid "Change perspective (angle of PLs)" msgstr "Breyta fjarvídd (horn hjálparlína)" #. status text -#: ../src/ui/tools/box3d-tool.cpp:583 +#: ../src/ui/tools/box3d-tool.cpp:573 msgid "3D Box; with Shift to extrude along the Z axis" msgstr "3D kassi; með Shift til að stækka eftir Z ás" -#: ../src/ui/tools/box3d-tool.cpp:609 +#: ../src/ui/tools/box3d-tool.cpp:599 msgid "Create 3D box" msgstr "Búa til 3D kassa" -#: ../src/ui/tools/calligraphic-tool.cpp:536 +#: ../src/ui/tools/calligraphic-tool.cpp:526 msgid "" "Guide path selected; start drawing along the guide with Ctrl" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:538 +#: ../src/ui/tools/calligraphic-tool.cpp:528 msgid "Select a guide path to track with Ctrl" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:663 msgid "Tracking: connection to guide path lost!" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:673 +#: ../src/ui/tools/calligraphic-tool.cpp:663 msgid "Tracking a guide path" msgstr "" -#: ../src/ui/tools/calligraphic-tool.cpp:676 +#: ../src/ui/tools/calligraphic-tool.cpp:666 msgid "Drawing a calligraphic stroke" -msgstr "" +msgstr "Teikna skrautskriftardrátt" -#: ../src/ui/tools/calligraphic-tool.cpp:977 +#: ../src/ui/tools/calligraphic-tool.cpp:967 msgid "Draw calligraphic stroke" msgstr "Teikna skrautskriftardrætti" -#: ../src/ui/tools/connector-tool.cpp:499 +#: ../src/ui/tools/connector-tool.cpp:489 msgid "Creating new connector" msgstr "Búa til nýja tengilínu" -#: ../src/ui/tools/connector-tool.cpp:740 +#: ../src/ui/tools/connector-tool.cpp:730 msgid "Connector endpoint drag cancelled." msgstr "Hætt við drátt endapunkts tengilínu." -#: ../src/ui/tools/connector-tool.cpp:783 +#: ../src/ui/tools/connector-tool.cpp:773 msgid "Reroute connector" msgstr "Endurtengja tengi" -#: ../src/ui/tools/connector-tool.cpp:936 +#: ../src/ui/tools/connector-tool.cpp:926 msgid "Create connector" msgstr "Búa til tengilínu" -#: ../src/ui/tools/connector-tool.cpp:953 +#: ../src/ui/tools/connector-tool.cpp:943 msgid "Finishing connector" msgstr "Enda tengilínu" -#: ../src/ui/tools/connector-tool.cpp:1191 +#: ../src/ui/tools/connector-tool.cpp:1181 msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" "Tengiendapunktur: dragðu til að endurtengja eða tengja við ný form" -#: ../src/ui/tools/connector-tool.cpp:1336 +#: ../src/ui/tools/connector-tool.cpp:1326 msgid "Select at least one non-connector object." msgstr "Veldu að minnsta kosti einn hlut sem er ekki tengilína." -#: ../src/ui/tools/connector-tool.cpp:1341 +#: ../src/ui/tools/connector-tool.cpp:1331 #: ../src/widgets/connector-toolbar.cpp:314 msgid "Make connectors avoid selected objects" msgstr "Láta tengilínur forðast valda hluti" -#: ../src/ui/tools/connector-tool.cpp:1342 +#: ../src/ui/tools/connector-tool.cpp:1332 #: ../src/widgets/connector-toolbar.cpp:324 msgid "Make connectors ignore selected objects" msgstr "Láta tengilínur hundsa valda hluti" #. alpha of color under cursor, to show in the statusbar #. locale-sensitive printf is OK, since this goes to the UI, not into SVG -#: ../src/ui/tools/dropper-tool.cpp:281 +#: ../src/ui/tools/dropper-tool.cpp:271 #, c-format msgid " alpha %.3g" msgstr " alfa %.3g" #. where the color is picked, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:273 #, c-format msgid ", averaged with radius %d" -msgstr "" +msgstr ", meðaltal með radíus %d" -#: ../src/ui/tools/dropper-tool.cpp:283 +#: ../src/ui/tools/dropper-tool.cpp:273 msgid " under cursor" msgstr " undir bendli" #. message, to show in the statusbar -#: ../src/ui/tools/dropper-tool.cpp:285 +#: ../src/ui/tools/dropper-tool.cpp:275 msgid "Release mouse to set color." -msgstr "" +msgstr "Sleppa músarhnapp til að stilla lit." -#: ../src/ui/tools/dropper-tool.cpp:333 +#: ../src/ui/tools/dropper-tool.cpp:323 msgid "Set picked color" -msgstr "" +msgstr "Stilla plokkaðan lit" -#: ../src/ui/tools/eraser-tool.cpp:437 +#: ../src/ui/tools/eraser-tool.cpp:427 msgid "Drawing an eraser stroke" msgstr "Teikna útstrokunardrátt" -#: ../src/ui/tools/eraser-tool.cpp:770 +#: ../src/ui/tools/eraser-tool.cpp:760 msgid "Draw eraser stroke" msgstr "Teikna útstrokunardrætti" -#: ../src/ui/tools/flood-tool.cpp:192 +#: ../src/ui/tools/flood-tool.cpp:182 msgid "Visible Colors" msgstr "Sýnilegir litir" -#: ../src/ui/tools/flood-tool.cpp:210 +#: ../src/ui/tools/flood-tool.cpp:200 msgctxt "Flood autogap" msgid "None" msgstr "Ekkert" -#: ../src/ui/tools/flood-tool.cpp:211 +#: ../src/ui/tools/flood-tool.cpp:201 msgctxt "Flood autogap" msgid "Small" msgstr "Lítið" -#: ../src/ui/tools/flood-tool.cpp:212 +#: ../src/ui/tools/flood-tool.cpp:202 msgctxt "Flood autogap" msgid "Medium" msgstr "Miðlungs" -#: ../src/ui/tools/flood-tool.cpp:213 +#: ../src/ui/tools/flood-tool.cpp:203 msgctxt "Flood autogap" msgid "Large" msgstr "Stórt" -#: ../src/ui/tools/flood-tool.cpp:435 +#: ../src/ui/tools/flood-tool.cpp:425 msgid "Too much inset, the result is empty." msgstr "" -#: ../src/ui/tools/flood-tool.cpp:476 +#: ../src/ui/tools/flood-tool.cpp:466 #, c-format msgid "" "Area filled, path with %d node created and unioned with selection." @@ -22228,44 +22533,46 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/flood-tool.cpp:482 +#: ../src/ui/tools/flood-tool.cpp:472 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/flood-tool.cpp:750 ../src/ui/tools/flood-tool.cpp:1060 +#: ../src/ui/tools/flood-tool.cpp:740 ../src/ui/tools/flood-tool.cpp:1050 msgid "Area is not bounded, cannot fill." -msgstr "" +msgstr "Svæði er ekki afmarkað, get ekki fyllt." -#: ../src/ui/tools/flood-tool.cpp:1065 +#: ../src/ui/tools/flood-tool.cpp:1055 msgid "" "Only the visible part of the bounded area was filled. If you want to " "fill all of the area, undo, zoom out, and fill again." msgstr "" -#: ../src/ui/tools/flood-tool.cpp:1083 ../src/ui/tools/flood-tool.cpp:1234 +#: ../src/ui/tools/flood-tool.cpp:1073 ../src/ui/tools/flood-tool.cpp:1224 msgid "Fill bounded area" msgstr "Fylla afmarkað svæði" -#: ../src/ui/tools/flood-tool.cpp:1099 +#: ../src/ui/tools/flood-tool.cpp:1089 msgid "Set style on object" -msgstr "" +msgstr "Setja stíl á hlut" -#: ../src/ui/tools/flood-tool.cpp:1159 +#: ../src/ui/tools/flood-tool.cpp:1149 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" +"Draga yfir svæði til að bæta við fyllingu, halda niðri Alt " +"fyrir snertifyllingu" #. We hit green anchor, closing Green-Blue-Red #: ../src/ui/tools/freehand-base.cpp:557 msgid "Path is closed." -msgstr "" +msgstr "Ferill er lokaður." #. We hit bot start and end of single curve, closing paths #: ../src/ui/tools/freehand-base.cpp:572 msgid "Closing path." -msgstr "" +msgstr "Loka ferli." #: ../src/ui/tools/freehand-base.cpp:709 msgid "Draw path" @@ -22273,38 +22580,38 @@ msgstr "Teikna feril" #: ../src/ui/tools/freehand-base.cpp:862 msgid "Creating single dot" -msgstr "" +msgstr "Bý til einn punkt" #: ../src/ui/tools/freehand-base.cpp:863 msgid "Create single dot" -msgstr "" +msgstr "Búa til stakan punkt" #. TRANSLATORS: %s will be substituted with the point name (see previous messages); This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:131 ../src/ui/tools/mesh-tool.cpp:130 +#: ../src/ui/tools/gradient-tool.cpp:121 ../src/ui/tools/mesh-tool.cpp:120 #, c-format msgid "%s selected" msgstr "%s valið" #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:133 ../src/ui/tools/gradient-tool.cpp:142 +#: ../src/ui/tools/gradient-tool.cpp:123 ../src/ui/tools/gradient-tool.cpp:132 #, c-format msgid " out of %d gradient handle" msgid_plural " out of %d gradient handles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] " af %d litstigulshaldfangi" +msgstr[1] " af %d litstigulshaldföngum" #. TRANSLATORS: Mind the space in front. (Refers to gradient handles selected). This is part of a compound message -#: ../src/ui/tools/gradient-tool.cpp:134 ../src/ui/tools/gradient-tool.cpp:143 -#: ../src/ui/tools/gradient-tool.cpp:150 ../src/ui/tools/mesh-tool.cpp:133 -#: ../src/ui/tools/mesh-tool.cpp:144 ../src/ui/tools/mesh-tool.cpp:152 +#: ../src/ui/tools/gradient-tool.cpp:124 ../src/ui/tools/gradient-tool.cpp:133 +#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:123 +#: ../src/ui/tools/mesh-tool.cpp:134 ../src/ui/tools/mesh-tool.cpp:142 #, c-format msgid " on %d selected object" msgid_plural " on %d selected objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] " á %d valinn hlut" +msgstr[1] " á %d valda hluti" #. TRANSLATORS: This is a part of a compound message (out of two more indicating: grandint handle count & object count) -#: ../src/ui/tools/gradient-tool.cpp:140 ../src/ui/tools/mesh-tool.cpp:140 +#: ../src/ui/tools/gradient-tool.cpp:130 ../src/ui/tools/mesh-tool.cpp:130 #, c-format msgid "" "One handle merging %d stop (drag with Shift to separate) selected" @@ -22314,312 +22621,328 @@ msgstr[0] "" msgstr[1] "" #. TRANSLATORS: The plural refers to number of selected gradient handles. This is part of a compound message (part two indicates selected object count) -#: ../src/ui/tools/gradient-tool.cpp:148 +#: ../src/ui/tools/gradient-tool.cpp:138 #, c-format msgid "%d gradient handle selected out of %d" msgid_plural "%d gradient handles selected out of %d" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d litstigulshaldfang valið af %d" +msgstr[1] "%d litstigulshaldföng valin af %d" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/gradient-tool.cpp:155 +#: ../src/ui/tools/gradient-tool.cpp:145 #, c-format msgid "No gradient handles selected out of %d on %d selected object" msgid_plural "" "No gradient handles selected out of %d on %d selected objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Engin litstigulshaldföng valin af %d á %d völdum hlut" +msgstr[1] "Engin litstigulshaldföng valin af %d á %d völdum hlutum" -#: ../src/ui/tools/gradient-tool.cpp:443 +#: ../src/ui/tools/gradient-tool.cpp:433 msgid "Simplify gradient" msgstr "Einfalda litstigul" -#: ../src/ui/tools/gradient-tool.cpp:519 +#: ../src/ui/tools/gradient-tool.cpp:509 msgid "Create default gradient" msgstr "Búa til sjálfgefinn litstigul" -#: ../src/ui/tools/gradient-tool.cpp:578 ../src/ui/tools/mesh-tool.cpp:570 +#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:560 msgid "Draw around handles to select them" -msgstr "" +msgstr "Dragðu í hringum haldföng til að velja þau" -#: ../src/ui/tools/gradient-tool.cpp:701 +#: ../src/ui/tools/gradient-tool.cpp:691 msgid "Ctrl: snap gradient angle" -msgstr "" +msgstr "Ctrl: þrepa horn litstiguls" -#: ../src/ui/tools/gradient-tool.cpp:702 +#: ../src/ui/tools/gradient-tool.cpp:692 msgid "Shift: draw gradient around the starting point" -msgstr "" +msgstr "Shift: teikna litstigul í kringum upphafspunkt" -#: ../src/ui/tools/gradient-tool.cpp:956 ../src/ui/tools/mesh-tool.cpp:993 +#: ../src/ui/tools/gradient-tool.cpp:946 ../src/ui/tools/mesh-tool.cpp:983 #, 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] "" +msgstr[0] "Litstigull á %d hlut; með Ctrl til að þrepa horn" +msgstr[1] "Litstigull á %d hluti; með Ctrl til að þrepa horn" -#: ../src/ui/tools/gradient-tool.cpp:960 ../src/ui/tools/mesh-tool.cpp:997 +#: ../src/ui/tools/gradient-tool.cpp:950 ../src/ui/tools/mesh-tool.cpp:987 msgid "Select objects on which to create gradient." -msgstr "" +msgstr "Veldu hluti þar sem á að gera litstigul." -#: ../src/ui/tools/lpe-tool.cpp:206 +#: ../src/ui/tools/lpe-tool.cpp:195 msgid "Choose a construction tool from the toolbar." -msgstr "" +msgstr "Veldu uppbyggingarverkfæri af verkfærastikunni." #. TRANSLATORS: Mind the space in front. This is part of a compound message -#: ../src/ui/tools/mesh-tool.cpp:132 ../src/ui/tools/mesh-tool.cpp:143 +#: ../src/ui/tools/mesh-tool.cpp:122 ../src/ui/tools/mesh-tool.cpp:133 #, c-format msgid " out of %d mesh handle" msgid_plural " out of %d mesh handles" -msgstr[0] "" -msgstr[1] "" +msgstr[0] " af %d möskvahaldfangi" +msgstr[1] " af %d möskvahaldföngum" -#: ../src/ui/tools/mesh-tool.cpp:150 +#: ../src/ui/tools/mesh-tool.cpp:140 #, c-format msgid "%d mesh handle selected out of %d" msgid_plural "%d mesh handles selected out of %d" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d möskvahaldfang valið af %d" +msgstr[1] "%d möskvahaldföng valin af %d" #. TRANSLATORS: The plural refers to number of selected objects -#: ../src/ui/tools/mesh-tool.cpp:157 +#: ../src/ui/tools/mesh-tool.cpp:147 #, c-format msgid "No mesh handles selected out of %d on %d selected object" msgid_plural "No mesh handles selected out of %d on %d selected objects" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Engin möskvahaldföng valin af %d á %d völdum hlut" +msgstr[1] "Engin möskvahaldföng valin af %d á %d völdum hlutum" -#: ../src/ui/tools/mesh-tool.cpp:321 +#: ../src/ui/tools/mesh-tool.cpp:311 msgid "Split mesh row/column" -msgstr "" +msgstr "Kljúfa röð/dálk möskva" -#: ../src/ui/tools/mesh-tool.cpp:407 +#: ../src/ui/tools/mesh-tool.cpp:397 msgid "Toggled mesh path type." -msgstr "" +msgstr "Víxlaði tegund möskvaferils." -#: ../src/ui/tools/mesh-tool.cpp:411 +#: ../src/ui/tools/mesh-tool.cpp:401 msgid "Approximated arc for mesh side." -msgstr "" +msgstr "Nálgaður bogi fyrir hlið möskva." -#: ../src/ui/tools/mesh-tool.cpp:415 +#: ../src/ui/tools/mesh-tool.cpp:405 msgid "Toggled mesh tensors." -msgstr "" +msgstr "Víxlaði möskvastrekkjurum." -#: ../src/ui/tools/mesh-tool.cpp:419 +#: ../src/ui/tools/mesh-tool.cpp:409 msgid "Smoothed mesh corner color." -msgstr "" +msgstr "Litur horns á mýktum möskva." -#: ../src/ui/tools/mesh-tool.cpp:423 +#: ../src/ui/tools/mesh-tool.cpp:413 msgid "Picked mesh corner color." -msgstr "" +msgstr "Plokkaði lit úr möskvahorni." -#: ../src/ui/tools/mesh-tool.cpp:498 +#: ../src/ui/tools/mesh-tool.cpp:488 msgid "Create default mesh" -msgstr "" +msgstr "Búa til sjálfgefna möskva" -#: ../src/ui/tools/mesh-tool.cpp:718 +#: ../src/ui/tools/mesh-tool.cpp:708 msgid "FIXMECtrl: snap mesh angle" -msgstr "" +msgstr "LAGACtrl: þrepa horn möskva" -#: ../src/ui/tools/mesh-tool.cpp:719 +#: ../src/ui/tools/mesh-tool.cpp:709 msgid "FIXMEShift: draw mesh around the starting point" -msgstr "" +msgstr "LAGAShift: draga möskva í kringum upphafspunkt" -#: ../src/ui/tools/node-tool.cpp:612 +#: ../src/ui/tools/node-tool.cpp:602 msgctxt "Node tool tip" msgid "" "Shift: drag to add nodes to the selection, click to toggle object " "selection" msgstr "" +"Shift: draga til að bæta hnútum við valið, smella til að víxla vali" -#: ../src/ui/tools/node-tool.cpp:616 +#: ../src/ui/tools/node-tool.cpp:606 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" -msgstr "" +msgstr "Shift: draga til að bæta hnútum við valið" -#: ../src/ui/tools/node-tool.cpp:628 +#: ../src/ui/tools/node-tool.cpp:618 #, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%u af %u hnút valinn." +msgstr[1] "%u af %u hnútum valið." -#: ../src/ui/tools/node-tool.cpp:634 +#: ../src/ui/tools/node-tool.cpp:624 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" msgstr "" +"%s Dragðu til að velja hnúta, smelltu til að breyta einungis þessum hlut " +"(meira: Shift)" -#: ../src/ui/tools/node-tool.cpp:640 +#: ../src/ui/tools/node-tool.cpp:630 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" -msgstr "" +msgstr "%s Dragðu til að velja hnúta, smelltu til að hreinsa val" -#: ../src/ui/tools/node-tool.cpp:649 +#: ../src/ui/tools/node-tool.cpp:639 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" -msgstr "" +msgstr "Dragðu til að velja hnúta, smelltu til að breyta einungis þessum hlut" -#: ../src/ui/tools/node-tool.cpp:652 +#: ../src/ui/tools/node-tool.cpp:642 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" -msgstr "" +msgstr "Dragðu til að velja hnúta, smelltu til að hreinsa val" -#: ../src/ui/tools/node-tool.cpp:657 +#: ../src/ui/tools/node-tool.cpp:647 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" +"Dragðu til að velja hluti sem á að breyta, smelltu til að breyta þessum hlut " +"(meira: Shift)" -#: ../src/ui/tools/node-tool.cpp:660 +#: ../src/ui/tools/node-tool.cpp:650 msgctxt "Node tool tip" msgid "Drag to select objects to edit" -msgstr "" +msgstr "Dragðu til að velja hluti sem á að breyta" -#: ../src/ui/tools/pen-tool.cpp:233 ../src/ui/tools/pencil-tool.cpp:466 +#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:457 msgid "Drawing cancelled" -msgstr "" +msgstr "Hætt við teikningu" -#: ../src/ui/tools/pen-tool.cpp:469 ../src/ui/tools/pencil-tool.cpp:204 +#: ../src/ui/tools/pen-tool.cpp:460 ../src/ui/tools/pencil-tool.cpp:195 msgid "Continuing selected path" -msgstr "" +msgstr "Held áfram með valinn feril" -#: ../src/ui/tools/pen-tool.cpp:479 ../src/ui/tools/pencil-tool.cpp:212 +#: ../src/ui/tools/pen-tool.cpp:470 ../src/ui/tools/pencil-tool.cpp:203 msgid "Creating new path" -msgstr "" +msgstr "Bý til nýjan feril" -#: ../src/ui/tools/pen-tool.cpp:481 ../src/ui/tools/pencil-tool.cpp:215 +#: ../src/ui/tools/pen-tool.cpp:472 ../src/ui/tools/pencil-tool.cpp:206 msgid "Appending to selected path" -msgstr "" +msgstr "Bæti við valinn feril" -#: ../src/ui/tools/pen-tool.cpp:646 +#: ../src/ui/tools/pen-tool.cpp:637 msgid "Click or click and drag to close and finish the path." msgstr "" +"Smella eða smella og draga til að ljúka og loka ferlinum." -#: ../src/ui/tools/pen-tool.cpp:648 +#: ../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:660 +#: ../src/ui/tools/pen-tool.cpp:651 msgid "" "Click or click and drag to continue the path from this point." msgstr "" +"Smella eða smella og draga til að halda áfram með ferilinn frá " +"þessum punkti." -#: ../src/ui/tools/pen-tool.cpp:662 +#: ../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:2036 +#: ../src/ui/tools/pen-tool.cpp:2027 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Ctrl to " "snap angle, Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:2037 +#: ../src/ui/tools/pen-tool.cpp:2028 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Ctrl to " "snap angle, Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:2040 +#: ../src/ui/tools/pen-tool.cpp:2031 #, c-format msgid "" "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:2041 +#: ../src/ui/tools/pen-tool.cpp:2032 #, c-format msgid "" "Line segment: angle %3.2f°, distance %s; with Shift+Click " "make a cusp node, Enter to finish the path" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:2058 +#: ../src/ui/tools/pen-tool.cpp:2049 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle" msgstr "" +"Haldfang boglínu: horn %3.2f°, lengd %s; með Ctrl til að " +"þrepa horn" -#: ../src/ui/tools/pen-tool.cpp:2082 +#: ../src/ui/tools/pen-tool.cpp:2073 #, c-format msgid "" "Curve handle, symmetric: angle %3.2f°, length %s; with Ctrl to snap angle, with Shift to move this handle only" msgstr "" +"Haldfang boglínu, samhverft: horn %3.2f°, lengd %s; með Ctrl til að þrepa horn, með Shift til að færa einungis þetta haldfang" -#: ../src/ui/tools/pen-tool.cpp:2083 +#: ../src/ui/tools/pen-tool.cpp:2074 #, c-format msgid "" "Curve handle: angle %3.2f°, length %s; with Ctrl to snap " "angle, with Shift to move this handle only" msgstr "" +"Haldfang boglínu: horn %3.2f°, lengd %s; með Ctrl til að " +"þrepa horn, með Shift til að færa einungis þetta haldfang" -#: ../src/ui/tools/pen-tool.cpp:2217 +#: ../src/ui/tools/pen-tool.cpp:2208 msgid "Drawing finished" -msgstr "" +msgstr "Teikningu lokið" -#: ../src/ui/tools/pencil-tool.cpp:316 +#: ../src/ui/tools/pencil-tool.cpp:307 msgid "Release here to close and finish the path." -msgstr "" +msgstr "Slepptu hér til að ljúka og loka ferlinum." -#: ../src/ui/tools/pencil-tool.cpp:322 +#: ../src/ui/tools/pencil-tool.cpp:313 msgid "Drawing a freehand path" -msgstr "" +msgstr "Teikna fríhendisferil" -#: ../src/ui/tools/pencil-tool.cpp:327 +#: ../src/ui/tools/pencil-tool.cpp:318 msgid "Drag to continue the path from this point." -msgstr "" +msgstr "Draga til að halda áfram með ferilinn frá þessum punkti." #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:412 +#: ../src/ui/tools/pencil-tool.cpp:403 msgid "Finishing freehand" -msgstr "" +msgstr "Ljúka fríhendisferli" -#: ../src/ui/tools/pencil-tool.cpp:515 +#: ../src/ui/tools/pencil-tool.cpp:506 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." msgstr "" +"Skissuhamur: með því að halda Alt er skotist á milli skissaðra " +"ferla. Sleppa Alt til að ljúka." -#: ../src/ui/tools/pencil-tool.cpp:542 +#: ../src/ui/tools/pencil-tool.cpp:533 msgid "Finishing freehand sketch" -msgstr "" +msgstr "Klára fríhendisskissu" -#: ../src/ui/tools/rect-tool.cpp:288 +#: ../src/ui/tools/rect-tool.cpp:278 msgid "" "Ctrl: make square or integer-ratio rect, lock a rounded corner " "circular" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:449 +#: ../src/ui/tools/rect-tool.cpp:439 #, 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:452 +#: ../src/ui/tools/rect-tool.cpp:442 #, 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:454 +#: ../src/ui/tools/rect-tool.cpp:444 #, 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:458 +#: ../src/ui/tools/rect-tool.cpp:448 #, c-format msgid "" "Rectangle: %s × %s; with Ctrl to make square or integer-" @@ -22629,269 +22952,275 @@ msgstr "" "heiltölu-hlutfalls rétthyrning; með Shift til að teikna umhverfis " "upphafspunkt" -#: ../src/ui/tools/rect-tool.cpp:481 +#: ../src/ui/tools/rect-tool.cpp:471 msgid "Create rectangle" msgstr "Búa til rétthyrning" -#: ../src/ui/tools/select-tool.cpp:169 +#: ../src/ui/tools/select-tool.cpp:160 msgid "Click selection to toggle scale/rotation handles" msgstr "Smelltu á valið til að víxla á milli kvörðunar-/snúnings-haldfanga" -#: ../src/ui/tools/select-tool.cpp:170 +#: ../src/ui/tools/select-tool.cpp:161 msgid "" "No objects selected. Click, Shift+click, Alt+scroll mouse on top of objects, " "or drag around objects to select." msgstr "" -"Engir hlutir valdir. Smella, Shift+smella, Alt+snúa músarhjóli efst á hlutum, " -"eða draga í kringum hluti til að velja." +"Engir hlutir valdir. Smella, Shift+smella, Alt+snúa músarhjóli efst á " +"hlutum, eða draga í kringum hluti til að velja." -#: ../src/ui/tools/select-tool.cpp:223 +#: ../src/ui/tools/select-tool.cpp:214 msgid "Move canceled." msgstr "Hætt við færslu." -#: ../src/ui/tools/select-tool.cpp:231 +#: ../src/ui/tools/select-tool.cpp:222 msgid "Selection canceled." -msgstr "" +msgstr "Hætt við val." -#: ../src/ui/tools/select-tool.cpp:653 +#: ../src/ui/tools/select-tool.cpp:644 msgid "" "Draw over objects to select them; release Alt to switch to " "rubberband selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:655 +#: ../src/ui/tools/select-tool.cpp:646 msgid "" "Drag around objects to select them; press Alt to switch to " "touch selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:950 +#: ../src/ui/tools/select-tool.cpp:941 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" -#: ../src/ui/tools/select-tool.cpp:951 +#: ../src/ui/tools/select-tool.cpp:942 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:952 +#: ../src/ui/tools/select-tool.cpp:943 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:1160 +#: ../src/ui/tools/select-tool.cpp:1151 msgid "Selected object is not a group. Cannot enter." msgstr "" -#: ../src/ui/tools/spiral-tool.cpp:259 +#: ../src/ui/tools/spiral-tool.cpp:249 msgid "Ctrl: snap angle" -msgstr "" +msgstr "Ctrl: þrepa horn" -#: ../src/ui/tools/spiral-tool.cpp:261 +#: ../src/ui/tools/spiral-tool.cpp:251 msgid "Alt: lock spiral radius" -msgstr "" +msgstr "Alt: læsa radíus spírals" -#: ../src/ui/tools/spiral-tool.cpp:400 +#: ../src/ui/tools/spiral-tool.cpp:390 #, c-format msgid "" "Spiral: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" +"Spírall: radíus %s, horn %5g°; með Ctrl til að þrepa horn" -#: ../src/ui/tools/spiral-tool.cpp:421 +#: ../src/ui/tools/spiral-tool.cpp:411 msgid "Create spiral" msgstr "Búa til spíral" -#: ../src/ui/tools/spray-tool.cpp:192 ../src/ui/tools/tweak-tool.cpp:167 +#: ../src/ui/tools/spray-tool.cpp:182 ../src/ui/tools/tweak-tool.cpp:157 #, c-format msgid "%i object selected" msgid_plural "%i objects selected" msgstr[0] "%i hlutur valinn" msgstr[1] "%i hlutir valdir" -#: ../src/ui/tools/spray-tool.cpp:194 ../src/ui/tools/tweak-tool.cpp:169 +#: ../src/ui/tools/spray-tool.cpp:184 ../src/ui/tools/tweak-tool.cpp:159 msgid "Nothing selected" msgstr "Ekkert valið" -#: ../src/ui/tools/spray-tool.cpp:199 +#: ../src/ui/tools/spray-tool.cpp:189 #, c-format msgid "" "%s. Drag, click or click and scroll to spray copies of the initial " "selection." msgstr "" -#: ../src/ui/tools/spray-tool.cpp:202 +#: ../src/ui/tools/spray-tool.cpp:192 #, c-format msgid "" "%s. Drag, click or click and scroll to spray clones of the initial " "selection." msgstr "" -#: ../src/ui/tools/spray-tool.cpp:205 +#: ../src/ui/tools/spray-tool.cpp:195 #, c-format msgid "" "%s. Drag, click or click and scroll to spray in a single path of the " "initial selection." msgstr "" -#: ../src/ui/tools/spray-tool.cpp:664 +#: ../src/ui/tools/spray-tool.cpp:654 msgid "Nothing selected! Select objects to spray." -msgstr "Ekkert valið! Veldu hluti til að sprauta." -#: ../src/ui/tools/spray-tool.cpp:739 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:729 ../src/widgets/spray-toolbar.cpp:166 msgid "Spray with copies" msgstr "Sprauta með afritum" -#: ../src/ui/tools/spray-tool.cpp:743 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:733 ../src/widgets/spray-toolbar.cpp:173 msgid "Spray with clones" msgstr "Sprauta með klónum" -#: ../src/ui/tools/spray-tool.cpp:747 +#: ../src/ui/tools/spray-tool.cpp:737 msgid "Spray in single path" msgstr "Sprauta á einum ferli" -#: ../src/ui/tools/star-tool.cpp:271 +#: ../src/ui/tools/star-tool.cpp:261 msgid "Ctrl: snap angle; keep rays radial" msgstr "" -#: ../src/ui/tools/star-tool.cpp:417 +#: ../src/ui/tools/star-tool.cpp:407 #, c-format msgid "" "Polygon: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" -"Marghyrningur: radíus %s, horn %5g°; með Ctrl til að þrepa " -"horn" +"Marghyrningur: radíus %s, horn %5g°; með Ctrl til að " +"þrepa horn" -#: ../src/ui/tools/star-tool.cpp:418 +#: ../src/ui/tools/star-tool.cpp:408 #, c-format msgid "Star: radius %s, angle %5g°; with Ctrl to snap angle" msgstr "" +"Stjarna: radíus %s, horn %5g°; með Ctrl til að þrepa horn" -#: ../src/ui/tools/star-tool.cpp:446 +#: ../src/ui/tools/star-tool.cpp:436 msgid "Create star" msgstr "Búa til stjörnu" -#: ../src/ui/tools/text-tool.cpp:379 +#: ../src/ui/tools/text-tool.cpp:370 msgid "Click to edit the text, drag to select part of the text." msgstr "" +"Smelltu til að breyta textanum, dragðu til að velja hluta " +"textans." -#: ../src/ui/tools/text-tool.cpp:381 +#: ../src/ui/tools/text-tool.cpp:372 msgid "" "Click to edit the flowed text, drag to select part of the text." msgstr "" +"Smelltu til að breyta flæðitextanum, dragðu til að velja hluta " +"textans." -#: ../src/ui/tools/text-tool.cpp:435 +#: ../src/ui/tools/text-tool.cpp:426 msgid "Create text" msgstr "Búa til texta" -#: ../src/ui/tools/text-tool.cpp:460 +#: ../src/ui/tools/text-tool.cpp:451 msgid "Non-printable character" msgstr "Óprentanlegt tákn" -#: ../src/ui/tools/text-tool.cpp:475 +#: ../src/ui/tools/text-tool.cpp:466 msgid "Insert Unicode character" msgstr "Setja inn Unicode-tákn" -#: ../src/ui/tools/text-tool.cpp:510 +#: ../src/ui/tools/text-tool.cpp:501 #, c-format msgid "Unicode (Enter to finish): %s: %s" -msgstr "" +msgstr "Unicode (Enter til að ljúka): %s: %s" -#: ../src/ui/tools/text-tool.cpp:512 ../src/ui/tools/text-tool.cpp:817 +#: ../src/ui/tools/text-tool.cpp:503 ../src/ui/tools/text-tool.cpp:808 msgid "Unicode (Enter to finish): " -msgstr "" +msgstr "Unicode (Enter til að ljúka): " -#: ../src/ui/tools/text-tool.cpp:595 +#: ../src/ui/tools/text-tool.cpp:586 #, c-format msgid "Flowed text frame: %s × %s" -msgstr "" +msgstr "Rammi með flæðitexta: %s × %s" -#: ../src/ui/tools/text-tool.cpp:653 +#: ../src/ui/tools/text-tool.cpp:644 msgid "Type text; Enter to start new line." -msgstr "" +msgstr "Skrifaðu texta; Enter til að byrja nýja línu." -#: ../src/ui/tools/text-tool.cpp:664 +#: ../src/ui/tools/text-tool.cpp:655 msgid "Flowed text is created." -msgstr "" +msgstr "Bjó til flæðitexta." -#: ../src/ui/tools/text-tool.cpp:665 +#: ../src/ui/tools/text-tool.cpp:656 msgid "Create flowed text" msgstr "Búa til flæðitexta" -#: ../src/ui/tools/text-tool.cpp:667 +#: ../src/ui/tools/text-tool.cpp:658 msgid "" "The frame is too small for the current font size. Flowed text not " "created." msgstr "" -#: ../src/ui/tools/text-tool.cpp:803 +#: ../src/ui/tools/text-tool.cpp:794 msgid "No-break space" msgstr "Órjúfanlegt bil" -#: ../src/ui/tools/text-tool.cpp:804 +#: ../src/ui/tools/text-tool.cpp:795 msgid "Insert no-break space" msgstr "Setja inn órjúfanlegt bil" -#: ../src/ui/tools/text-tool.cpp:840 +#: ../src/ui/tools/text-tool.cpp:831 msgid "Make bold" msgstr "Gera feitletrað" -#: ../src/ui/tools/text-tool.cpp:857 +#: ../src/ui/tools/text-tool.cpp:848 msgid "Make italic" msgstr "Gera skáletrað" -#: ../src/ui/tools/text-tool.cpp:895 +#: ../src/ui/tools/text-tool.cpp:886 msgid "New line" msgstr "Ný lína" -#: ../src/ui/tools/text-tool.cpp:936 +#: ../src/ui/tools/text-tool.cpp:927 msgid "Backspace" msgstr "Baklykill (backspace)" -#: ../src/ui/tools/text-tool.cpp:990 +#: ../src/ui/tools/text-tool.cpp:981 msgid "Kern to the left" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1014 +#: ../src/ui/tools/text-tool.cpp:1005 msgid "Kern to the right" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1038 +#: ../src/ui/tools/text-tool.cpp:1029 msgid "Kern up" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1062 +#: ../src/ui/tools/text-tool.cpp:1053 msgid "Kern down" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1137 +#: ../src/ui/tools/text-tool.cpp:1128 msgid "Rotate counterclockwise" msgstr "Snúa rangsælis" -#: ../src/ui/tools/text-tool.cpp:1157 +#: ../src/ui/tools/text-tool.cpp:1148 msgid "Rotate clockwise" msgstr "Snúa réttsælis" -#: ../src/ui/tools/text-tool.cpp:1173 +#: ../src/ui/tools/text-tool.cpp:1164 msgid "Contract line spacing" -msgstr "" +msgstr "Minnka línubil" -#: ../src/ui/tools/text-tool.cpp:1179 +#: ../src/ui/tools/text-tool.cpp:1170 msgid "Contract letter spacing" -msgstr "" +msgstr "Minnka stafabil" -#: ../src/ui/tools/text-tool.cpp:1196 +#: ../src/ui/tools/text-tool.cpp:1187 msgid "Expand line spacing" -msgstr "" +msgstr "Auka línubil" -#: ../src/ui/tools/text-tool.cpp:1202 +#: ../src/ui/tools/text-tool.cpp:1193 msgid "Expand letter spacing" -msgstr "" +msgstr "Auka stafabil" -#: ../src/ui/tools/text-tool.cpp:1332 +#: ../src/ui/tools/text-tool.cpp:1323 msgid "Paste text" msgstr "Líma texta" -#: ../src/ui/tools/text-tool.cpp:1583 +#: ../src/ui/tools/text-tool.cpp:1574 #, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " @@ -22900,48 +23229,56 @@ msgid_plural "" "Type or edit flowed text (%d characters%s); Enter to start new " "paragraph." msgstr[0] "" +"Skrifaðu eða breyttu flæðitexta (%d stafur%s); Enter til að byrja nýja " +"málsgrein." msgstr[1] "" +"Skrifaðu eða breyttu flæðitexta (%d stafir%s); Enter til að byrja " +"nýja málsgrein." -#: ../src/ui/tools/text-tool.cpp:1585 +#: ../src/ui/tools/text-tool.cpp:1576 #, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" "Type or edit text (%d characters%s); Enter to start new line." msgstr[0] "" +"Skrifaðu eða breyttu texta (%d stafur%s); Enter til að byrja nýja " +"málsgrein." msgstr[1] "" +"Skrifaðu eða breyttu texta (%d stafir%s); Enter til að byrja " +"nýja málsgrein." -#: ../src/ui/tools/text-tool.cpp:1695 +#: ../src/ui/tools/text-tool.cpp:1686 msgid "Type text" -msgstr "" +msgstr "Sláðu inn texta" #: ../src/ui/tools/tool-base.cpp:705 msgid "Space+mouse move to pan canvas" -msgstr "" +msgstr "Bilslá+bendilhreyfing til að hliðra myndfleti" -#: ../src/ui/tools/tweak-tool.cpp:174 +#: ../src/ui/tools/tweak-tool.cpp:164 #, c-format msgid "%s. Drag to move." -msgstr "" +msgstr "%s. Draga til að flytja." -#: ../src/ui/tools/tweak-tool.cpp:178 +#: ../src/ui/tools/tweak-tool.cpp:168 #, c-format msgid "%s. Drag or click to move in; with Shift to move out." msgstr "" "%s. Draga eða smella til að færa inn; með Shift til að færa út." -#: ../src/ui/tools/tweak-tool.cpp:186 +#: ../src/ui/tools/tweak-tool.cpp:176 #, c-format msgid "%s. Drag or click to move randomly." -msgstr "" +msgstr "%s. Draga eða smella til að færa slembið." -#: ../src/ui/tools/tweak-tool.cpp:190 +#: ../src/ui/tools/tweak-tool.cpp:180 #, c-format msgid "%s. Drag or click to scale down; with Shift to scale up." msgstr "" "%s. Draga eða smella til að kvarða niður; með Shift til að kvarða " "upp." -#: ../src/ui/tools/tweak-tool.cpp:198 +#: ../src/ui/tools/tweak-tool.cpp:188 #, c-format msgid "" "%s. Drag or click to rotate clockwise; with Shift, " @@ -22950,107 +23287,107 @@ msgstr "" "%s. Draga eða smella til að snúa réttsælis; með Shift til að snúa " "rangsælis." -#: ../src/ui/tools/tweak-tool.cpp:206 +#: ../src/ui/tools/tweak-tool.cpp:196 #, c-format msgid "%s. Drag or click to duplicate; with Shift, delete." msgstr "" "%s. Draga eða smella til að tvöfalda; með Shift til að eyða." -#: ../src/ui/tools/tweak-tool.cpp:214 +#: ../src/ui/tools/tweak-tool.cpp:204 #, c-format msgid "%s. Drag to push paths." -msgstr "" +msgstr "%s. Draga eða smella til að ýta ferlum." -#: ../src/ui/tools/tweak-tool.cpp:218 +#: ../src/ui/tools/tweak-tool.cpp:208 #, c-format msgid "%s. Drag or click to inset paths; with Shift to outset." msgstr "" -"%s. Draga eða smella til að innfella ferla; með Shift til að " -"útsetja." +"%s. Draga eða smella til að innfella ferla; með Shift til að " +"útsetja." -#: ../src/ui/tools/tweak-tool.cpp:226 +#: ../src/ui/tools/tweak-tool.cpp:216 #, c-format msgid "%s. Drag or click to attract paths; with Shift to repel." msgstr "" "%s. Draga eða smella til að draga að ferla; með Shift til að ýta " "frá." -#: ../src/ui/tools/tweak-tool.cpp:234 +#: ../src/ui/tools/tweak-tool.cpp:224 #, c-format msgid "%s. Drag or click to roughen paths." msgstr "%s. Draga eða smella til að ýfa ferla." -#: ../src/ui/tools/tweak-tool.cpp:238 +#: ../src/ui/tools/tweak-tool.cpp:228 #, c-format msgid "%s. Drag or click to paint objects with color." -msgstr "" +msgstr "%s. Draga eða smella til að mála hluti með lit." -#: ../src/ui/tools/tweak-tool.cpp:242 +#: ../src/ui/tools/tweak-tool.cpp:232 #, c-format msgid "%s. Drag or click to randomize colors." msgstr "%s. Draga eða smella til að slembigera liti." -#: ../src/ui/tools/tweak-tool.cpp:246 +#: ../src/ui/tools/tweak-tool.cpp:236 #, c-format msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -"%s. Draga eða smella til að auka afskerpingu; með Shift til að " -"minnka afskerpingu." +"%s. Draga eða smella til að auka afskerpingu; með Shift til að " +"minnka afskerpingu." -#: ../src/ui/tools/tweak-tool.cpp:1205 +#: ../src/ui/tools/tweak-tool.cpp:1195 msgid "Nothing selected! Select objects to tweak." msgstr "Ekkert valið! Veldu hluti til að aflaga." -#: ../src/ui/tools/tweak-tool.cpp:1239 +#: ../src/ui/tools/tweak-tool.cpp:1229 msgid "Move tweak" msgstr "Aflögun færslu" -#: ../src/ui/tools/tweak-tool.cpp:1243 +#: ../src/ui/tools/tweak-tool.cpp:1233 msgid "Move in/out tweak" msgstr "Aflögun færslu inn/út" -#: ../src/ui/tools/tweak-tool.cpp:1247 +#: ../src/ui/tools/tweak-tool.cpp:1237 msgid "Move jitter tweak" msgstr "Aflögun flökts á færslu" -#: ../src/ui/tools/tweak-tool.cpp:1251 +#: ../src/ui/tools/tweak-tool.cpp:1241 msgid "Scale tweak" msgstr "Aflögun kvarða" -#: ../src/ui/tools/tweak-tool.cpp:1255 +#: ../src/ui/tools/tweak-tool.cpp:1245 msgid "Rotate tweak" msgstr "Aflögun snúnings" -#: ../src/ui/tools/tweak-tool.cpp:1259 +#: ../src/ui/tools/tweak-tool.cpp:1249 msgid "Duplicate/delete tweak" msgstr "Aflögun við tvöföldun/eyðingu" -#: ../src/ui/tools/tweak-tool.cpp:1263 +#: ../src/ui/tools/tweak-tool.cpp:1253 msgid "Push path tweak" msgstr "Aflögun ýtingar á ferli" -#: ../src/ui/tools/tweak-tool.cpp:1267 +#: ../src/ui/tools/tweak-tool.cpp:1257 msgid "Shrink/grow path tweak" msgstr "Aflögun vaxtar/minnkunar á ferli" -#: ../src/ui/tools/tweak-tool.cpp:1271 +#: ../src/ui/tools/tweak-tool.cpp:1261 msgid "Attract/repel path tweak" msgstr "Aflögun aðdráttar/fráhrindingar á ferli" -#: ../src/ui/tools/tweak-tool.cpp:1275 +#: ../src/ui/tools/tweak-tool.cpp:1265 msgid "Roughen path tweak" msgstr "Aflögun ýfingar á ferli" -#: ../src/ui/tools/tweak-tool.cpp:1279 +#: ../src/ui/tools/tweak-tool.cpp:1269 msgid "Color paint tweak" msgstr "Aflögun litmálunar" -#: ../src/ui/tools/tweak-tool.cpp:1283 +#: ../src/ui/tools/tweak-tool.cpp:1273 msgid "Color jitter tweak" msgstr "Aflögun flökts á litum" -#: ../src/ui/tools/tweak-tool.cpp:1287 +#: ../src/ui/tools/tweak-tool.cpp:1277 msgid "Blur tweak" msgstr "Aflögun afskerpingar" @@ -23086,6 +23423,10 @@ msgstr "Séreignarhugbúnaður" msgid "MetadataLicence|Other" msgstr "Annað" +#: ../src/ui/widget/licensor.cpp:72 +msgid "Document license updated" +msgstr "" + #: ../src/ui/widget/object-composite-settings.cpp:47 #: ../src/ui/widget/selected-style.cpp:1119 #: ../src/ui/widget/selected-style.cpp:1120 @@ -23176,6 +23517,7 @@ msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" msgstr "" +"Aðlaga síðuna að því sem nú er valið eða að teikningu ef ekkert er valið" #: ../src/ui/widget/page-sizer.cpp:489 msgid "Set page size" @@ -23303,7 +23645,7 @@ msgstr "Valkostir bitamynda" #: ../src/ui/widget/rendering-options.cpp:38 msgid "Preferred resolution of rendering, in dots per inch." -msgstr "" +msgstr "Kjörupplausn við myndgerð, í mynddílum á tommu - PÁT." #: ../src/ui/widget/rendering-options.cpp:47 msgid "" @@ -23374,7 +23716,7 @@ msgstr "Mynsturfylla" #: ../src/ui/widget/selected-style.cpp:195 #: ../src/ui/widget/style-swatch.cpp:302 msgid "Pattern stroke" -msgstr "" +msgstr "Mynstur á útlínu" #: ../src/ui/widget/selected-style.cpp:197 msgid "L" @@ -23383,12 +23725,12 @@ msgstr "L" #: ../src/ui/widget/selected-style.cpp:200 #: ../src/ui/widget/style-swatch.cpp:294 msgid "Linear gradient fill" -msgstr "" +msgstr "Línuleg litstigulsfylling" #: ../src/ui/widget/selected-style.cpp:200 #: ../src/ui/widget/style-swatch.cpp:294 msgid "Linear gradient stroke" -msgstr "" +msgstr "Línuleg litstigulsútlína" #: ../src/ui/widget/selected-style.cpp:207 msgid "R" @@ -23397,12 +23739,12 @@ msgstr "R" #: ../src/ui/widget/selected-style.cpp:210 #: ../src/ui/widget/style-swatch.cpp:298 msgid "Radial gradient fill" -msgstr "" +msgstr "Hringlaga litstigulsfylling" #: ../src/ui/widget/selected-style.cpp:210 #: ../src/ui/widget/style-swatch.cpp:298 msgid "Radial gradient stroke" -msgstr "" +msgstr "Hringlaga litstigulsstroka" #: ../src/ui/widget/selected-style.cpp:218 msgid "M" @@ -23410,23 +23752,23 @@ msgstr "M" #: ../src/ui/widget/selected-style.cpp:221 msgid "Mesh gradient fill" -msgstr "" +msgstr "Litstigulsfylling möskva" #: ../src/ui/widget/selected-style.cpp:221 msgid "Mesh gradient stroke" -msgstr "" +msgstr "Litstigulsútlína möskva" #: ../src/ui/widget/selected-style.cpp:229 msgid "Different" -msgstr "" +msgstr "Mismunandi" #: ../src/ui/widget/selected-style.cpp:232 msgid "Different fills" -msgstr "" +msgstr "Mismunandi fyllingar" #: ../src/ui/widget/selected-style.cpp:232 msgid "Different strokes" -msgstr "" +msgstr "Mismunandi útlínur" #: ../src/ui/widget/selected-style.cpp:234 #: ../src/ui/widget/style-swatch.cpp:324 @@ -23446,7 +23788,7 @@ msgstr "Afstilla fyllingu" #: ../src/ui/widget/selected-style.cpp:591 #: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:709 msgid "Unset stroke" -msgstr "" +msgstr "Afstilla útlínu" #: ../src/ui/widget/selected-style.cpp:240 msgid "Flat color fill" @@ -23492,11 +23834,11 @@ msgstr "Breyta útlínu..." #: ../src/ui/widget/selected-style.cpp:258 msgid "Last set color" -msgstr "" +msgstr "Síðast stillti litur" #: ../src/ui/widget/selected-style.cpp:262 msgid "Last selected color" -msgstr "" +msgstr "Síðast valinn litur" #: ../src/ui/widget/selected-style.cpp:278 msgid "Copy color" @@ -23549,19 +23891,19 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:681 msgid "Invert fill" -msgstr "" +msgstr "Umhverfa fyllingu" #: ../src/ui/widget/selected-style.cpp:705 msgid "Invert stroke" -msgstr "" +msgstr "Umhverfa útlínu" #: ../src/ui/widget/selected-style.cpp:717 msgid "White fill" -msgstr "" +msgstr "Hvít fylling" #: ../src/ui/widget/selected-style.cpp:729 msgid "White stroke" -msgstr "" +msgstr "Hvít útlína" #: ../src/ui/widget/selected-style.cpp:741 msgid "Black fill" @@ -23581,11 +23923,11 @@ msgstr "Líma útlínu" #: ../src/ui/widget/selected-style.cpp:970 msgid "Change stroke width" -msgstr "" +msgstr "Breyta breidd útlínu" #: ../src/ui/widget/selected-style.cpp:1073 msgid ", drag to adjust" -msgstr "" +msgstr ", draga til að aðlaga" #: ../src/ui/widget/selected-style.cpp:1158 #, c-format @@ -23618,7 +23960,7 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:1392 msgid "Adjust saturation" -msgstr "" +msgstr "Breyta litmettun" #: ../src/ui/widget/selected-style.cpp:1394 #, c-format @@ -23630,7 +23972,7 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:1398 msgid "Adjust lightness" -msgstr "" +msgstr "Breyta ljósleika" #: ../src/ui/widget/selected-style.cpp:1400 #, c-format @@ -23642,7 +23984,7 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:1404 msgid "Adjust hue" -msgstr "" +msgstr "Breyta litblæ" #: ../src/ui/widget/selected-style.cpp:1406 #, c-format @@ -23655,7 +23997,7 @@ msgstr "" #: ../src/ui/widget/selected-style.cpp:1524 #: ../src/ui/widget/selected-style.cpp:1538 msgid "Adjust stroke width" -msgstr "" +msgstr "Aðlaga breidd útlínu" #: ../src/ui/widget/selected-style.cpp:1525 #, c-format @@ -23743,8 +24085,8 @@ msgstr[1] "" msgid "" "shared by %d box; drag with Shift to separate selected box(es)" msgid_plural "" -"shared by %d boxes; drag with Shift to separate selected box" -"(es)" +"shared by %d boxes; drag with Shift to separate selected " +"box(es)" msgstr[0] "" msgstr[1] "" @@ -23841,7 +24183,7 @@ msgstr "Tvöfalda lag" #. TRANSLATORS: this means "The layer has been duplicated." #: ../src/verbs.cpp:1391 msgid "Duplicated layer." -msgstr "Tvöfaldað lag" +msgstr "Tvöfaldað lag." #: ../src/verbs.cpp:1424 msgid "Delete layer" @@ -23997,7 +24339,7 @@ msgstr "Vista a_frit..." #: ../src/verbs.cpp:2442 msgid "Save a copy of the document under a new name" -msgstr "" +msgstr "Vista afrit af skjalinu með nýju heiti" #: ../src/verbs.cpp:2443 msgid "_Print..." @@ -24033,7 +24375,7 @@ msgstr "Flytja inn klippimynd..." #: ../src/verbs.cpp:2452 msgid "Import clipart from Open Clip Art Library" -msgstr "Flytja inn úr Open Clip Art myndaklippusafninu" +msgstr "Flytja inn úr Open Clip Art klippimyndasafninu" #. 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:2454 @@ -24106,7 +24448,8 @@ msgstr "_Líma" #: ../src/verbs.cpp:2474 msgid "Paste objects from clipboard to mouse point, or paste text" -msgstr "Líma hluti af klippiborði á staðsetningu músarbendils, eða líma texta" +msgstr "" +"Líma hluti af klippispjaldi á staðsetningu músarbendils, eða líma texta" #: ../src/verbs.cpp:2475 msgid "Paste _Style" @@ -24170,7 +24513,7 @@ msgstr "Líma á st_aðnum" #: ../src/verbs.cpp:2490 msgid "Paste objects from clipboard to the original location" -msgstr "Líma hluti af klippiborði á upprunalega staðsetningu" +msgstr "Líma hluti af klippispjaldi á upprunalega staðsetningu" #: ../src/verbs.cpp:2491 msgid "Paste Path _Effect" @@ -24202,7 +24545,7 @@ msgstr "_Eyða" #: ../src/verbs.cpp:2498 msgid "Delete selection" -msgstr "_Eyða vali" +msgstr "Eyða vali" #: ../src/verbs.cpp:2499 msgid "Duplic_ate" @@ -24250,7 +24593,7 @@ msgstr "" #: ../src/verbs.cpp:2509 msgid "Clone original path (LPE)" -msgstr "" +msgstr "Klóna upprunalegan feril (LPE)" #: ../src/verbs.cpp:2510 msgid "" @@ -24369,7 +24712,7 @@ msgstr "" #: ../src/verbs.cpp:2537 msgid "_Object Type" -msgstr "Tegund _hlutar:" +msgstr "Tegund _hlutar" #: ../src/verbs.cpp:2538 msgid "" @@ -24561,7 +24904,7 @@ msgstr "Útsetja valda ferla" #: ../src/verbs.cpp:2599 msgid "O_utset Path by 1 px" -msgstr "Útsetja feril um 1 px" +msgstr "Ú_tsetja feril um 1 px" #: ../src/verbs.cpp:2600 msgid "Outset selected paths by 1 px" @@ -24569,7 +24912,7 @@ msgstr "Útsetja valda ferla um 1 px" #: ../src/verbs.cpp:2602 msgid "O_utset Path by 10 px" -msgstr "Útsetja feril um 10 px" +msgstr "Ú_tsetja feril um 10 px" #: ../src/verbs.cpp:2603 msgid "Outset selected paths by 10 px" @@ -24620,7 +24963,7 @@ msgstr "" #: ../src/verbs.cpp:2621 msgid "_Stroke to Path" -msgstr "Útlína í feril" +msgstr "Út_lína í feril" #: ../src/verbs.cpp:2622 msgid "Convert selected object's stroke to paths" @@ -24640,7 +24983,7 @@ msgstr "_Snúa við" #: ../src/verbs.cpp:2626 msgid "Reverse the direction of selected paths (useful for flipping markers)" -msgstr "" +msgstr "Snúa við stefnu valinna ferla (nýtist til að snúa við merkjum ferla)" #: ../src/verbs.cpp:2629 msgid "Create one or more paths from a bitmap by tracing it" @@ -24648,11 +24991,13 @@ msgstr "" #: ../src/verbs.cpp:2630 msgid "Trace Pixel Art..." -msgstr "" +msgstr "Línuteikna Pixel Art..." #: ../src/verbs.cpp:2631 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" +"Útbúa ferla með Kopf-Lischinski reikniritinu til að vigurgera pixel art " +"myndir" #: ../src/verbs.cpp:2632 msgid "Make a _Bitmap Copy" @@ -24678,7 +25023,7 @@ msgstr "_Sundra" #: ../src/verbs.cpp:2639 msgid "Break selected paths into subpaths" -msgstr "" +msgstr "Rjúfa valda ferla í undirferla" #: ../src/verbs.cpp:2640 msgid "_Arrange..." @@ -24703,7 +25048,7 @@ msgstr "Endur_nefna lag..." #: ../src/verbs.cpp:2646 msgid "Rename the current layer" -msgstr "" +msgstr "Endurnefna núverandi lag" #: ../src/verbs.cpp:2647 msgid "Switch to Layer Abov_e" @@ -24728,7 +25073,7 @@ msgstr "Flytja val á næsta lag fyrir _ofan" #: ../src/verbs.cpp:2652 msgid "Move selection to the layer above the current" -msgstr "" +msgstr "Flytja val á næsta lag fyrir ofan lagið sem þú ert að vinna á núna" #: ../src/verbs.cpp:2653 msgid "Move Selection to Layer Bel_ow" @@ -24736,11 +25081,11 @@ msgstr "Flytja val á næsta lag fyrir _neðan" #: ../src/verbs.cpp:2654 msgid "Move selection to the layer below the current" -msgstr "" +msgstr "Flytja val á næsta lag fyrir neðan lagið sem þú ert að vinna á núna" #: ../src/verbs.cpp:2655 msgid "Move Selection to Layer..." -msgstr "" +msgstr "Flytja val á lagið..." #: ../src/verbs.cpp:2657 msgid "Layer to _Top" @@ -24748,7 +25093,7 @@ msgstr "Færa lag efs_t" #: ../src/verbs.cpp:2658 msgid "Raise the current layer to the top" -msgstr "" +msgstr "Hækka núverandi lag efst" #: ../src/verbs.cpp:2659 msgid "Layer to _Bottom" @@ -24756,7 +25101,7 @@ msgstr "Færa lag _neðst" #: ../src/verbs.cpp:2660 msgid "Lower the current layer to the bottom" -msgstr "" +msgstr "Lækka núverandi lag neðst" #: ../src/verbs.cpp:2661 msgid "_Raise Layer" @@ -24824,7 +25169,7 @@ msgstr "Læsa öllum lögunum" #: ../src/verbs.cpp:2677 msgid "Lock/Unlock _other layers" -msgstr "Læsa/Aflæsa öðrum lögum" +msgstr "Læsa/Aflæsa öðru_m lögum" #: ../src/verbs.cpp:2678 msgid "Lock all the other layers" @@ -24848,7 +25193,7 @@ msgstr "Víxla læsingu þessa lags" #: ../src/verbs.cpp:2683 msgid "_Show/hide Current Layer" -msgstr "" +msgstr "_Sýna/Fela núverandi lag" #: ../src/verbs.cpp:2684 msgid "Toggle visibility of current layer" @@ -24877,7 +25222,7 @@ msgstr "Snúa völdu 90° rangsælis" #: ../src/verbs.cpp:2695 msgid "Remove _Transformations" -msgstr "Fjarlægja umbreytingar" +msgstr "F_jarlægja umbreytingar" #: ../src/verbs.cpp:2696 msgid "Remove transformations from object" @@ -24956,7 +25301,7 @@ msgstr "" #: ../src/verbs.cpp:2719 msgid "Create Cl_ip Group" -msgstr "" +msgstr "Búa til afma_rkandi hóp" #: ../src/verbs.cpp:2720 msgid "Creates a clip group using the selected objects as a base" @@ -25144,7 +25489,7 @@ msgstr "Fylla afmörkuð svæði" #: ../src/verbs.cpp:2769 msgctxt "ContextVerb" msgid "LPE Edit" -msgstr "" +msgstr "LPE breyting" #: ../src/verbs.cpp:2770 msgid "Edit Path Effect parameters" @@ -25166,7 +25511,7 @@ msgstr "LPE verkfæri" #: ../src/verbs.cpp:2774 msgid "Do geometric constructions" -msgstr "" +msgstr "Gera rúmfræðilega byggingu" #. Tool prefs #: ../src/verbs.cpp:2776 @@ -25179,7 +25524,7 @@ msgstr "Opna stillingar fyrir valverkfærið" #: ../src/verbs.cpp:2778 msgid "Node Tool Preferences" -msgstr "" +msgstr "Kjörstillingar hnútaverkfæris" #: ../src/verbs.cpp:2779 msgid "Open Preferences for the Node tool" @@ -25187,7 +25532,7 @@ msgstr "Opna stillingar fyrir hnútaverkfærið" #: ../src/verbs.cpp:2780 msgid "Tweak Tool Preferences" -msgstr "Kjörstillingar aflögunarverkfæris" +msgstr "Kjörstillingar aflögunar" #: ../src/verbs.cpp:2781 msgid "Open Preferences for the Tweak tool" @@ -25195,7 +25540,7 @@ msgstr "Opna stillingar fyrir aflögunarverkfærið" #: ../src/verbs.cpp:2782 msgid "Spray Tool Preferences" -msgstr "Kjörstillingar sprautuverkfæris" +msgstr "Kjörstillingar sprautunar" #: ../src/verbs.cpp:2783 msgid "Open Preferences for the Spray tool" @@ -25219,7 +25564,7 @@ msgstr "Opna stillingar fyrir þrívíddarkassaverkfærið" #: ../src/verbs.cpp:2788 msgid "Ellipse Preferences" -msgstr "" +msgstr "Kjörstillingar sporbaugs" #: ../src/verbs.cpp:2789 msgid "Open Preferences for the Ellipse tool" @@ -25227,7 +25572,7 @@ msgstr "Opna stillingar fyrir sporbaugsverkfærið" #: ../src/verbs.cpp:2790 msgid "Star Preferences" -msgstr "" +msgstr "Kjörstillingar stjörnu" #: ../src/verbs.cpp:2791 msgid "Open Preferences for the Star tool" @@ -25259,7 +25604,7 @@ msgstr "Opna stillingar fyrir pennaverkfærið" #: ../src/verbs.cpp:2798 msgid "Calligraphic Preferences" -msgstr "" +msgstr "Kjörstillingar skrautskriftar" #: ../src/verbs.cpp:2799 msgid "Open Preferences for the Calligraphy tool" @@ -25267,7 +25612,7 @@ msgstr "Opna stillingar fyrir skrautskriftarverkfærið" #: ../src/verbs.cpp:2800 msgid "Text Preferences" -msgstr "" +msgstr "Kjörstillingar texta" #: ../src/verbs.cpp:2801 msgid "Open Preferences for the Text tool" @@ -25275,7 +25620,7 @@ msgstr "Opna stillingar fyrir pennaverkfærið" #: ../src/verbs.cpp:2802 msgid "Gradient Preferences" -msgstr "" +msgstr "Kjörstillingar litstiguls" #: ../src/verbs.cpp:2803 msgid "Open Preferences for the Gradient tool" @@ -25283,15 +25628,15 @@ msgstr "Opna stillingar fyrir litstiglaverkfærið" #: ../src/verbs.cpp:2804 msgid "Mesh Preferences" -msgstr "" +msgstr "Kjörstillingar möskva" #: ../src/verbs.cpp:2805 msgid "Open Preferences for the Mesh tool" -msgstr "" +msgstr "Opna stillingar fyrir möskvaverkfærið" #: ../src/verbs.cpp:2806 msgid "Zoom Preferences" -msgstr "" +msgstr "Kjörstillingar aðdráttar" #: ../src/verbs.cpp:2807 msgid "Open Preferences for the Zoom tool" @@ -25299,15 +25644,15 @@ msgstr "Opna stillingar fyrir aðdráttarverkfærið" #: ../src/verbs.cpp:2808 msgid "Measure Preferences" -msgstr "" +msgstr "Kjörstillingar málbands" #: ../src/verbs.cpp:2809 msgid "Open Preferences for the Measure tool" -msgstr "" +msgstr "Opna stillingar fyrir málbandið" #: ../src/verbs.cpp:2810 msgid "Dropper Preferences" -msgstr "" +msgstr "Kjörstillingar litplokkara" #: ../src/verbs.cpp:2811 msgid "Open Preferences for the Dropper tool" @@ -25323,7 +25668,7 @@ msgstr "Opna stillingar fyrir tengilínuverkfærið" #: ../src/verbs.cpp:2814 msgid "Paint Bucket Preferences" -msgstr "" +msgstr "Kjörstillingar fötufyllingar" #: ../src/verbs.cpp:2815 msgid "Open Preferences for the Paint Bucket tool" @@ -25339,7 +25684,7 @@ msgstr "Opna stillingar fyrir strokleðurverkfærið" #: ../src/verbs.cpp:2818 msgid "LPE Tool Preferences" -msgstr "" +msgstr "Kjörstillingar LPE-verkfæris" #: ../src/verbs.cpp:2819 msgid "Open Preferences for the LPETool tool" @@ -25368,15 +25713,15 @@ msgstr "_Mælistikur" #: ../src/verbs.cpp:2823 msgid "Show or hide the canvas rulers" -msgstr "" +msgstr "Birta eða fela mælistikur myndflatar" #: ../src/verbs.cpp:2824 msgid "Scroll_bars" -msgstr "Skrunstikur" +msgstr "S_krunstikur" #: ../src/verbs.cpp:2824 msgid "Show or hide the canvas scrollbars" -msgstr "" +msgstr "Birta eða fela skrunstikur myndflatar" #: ../src/verbs.cpp:2825 msgid "Page _Grid" @@ -25384,7 +25729,7 @@ msgstr "_Hnitanet síðu" #: ../src/verbs.cpp:2825 msgid "Show or hide the page grid" -msgstr "" +msgstr "Birta eða fela hnitanet síðu" #: ../src/verbs.cpp:2826 msgid "G_uides" @@ -25404,7 +25749,7 @@ msgstr "Ski_panaslá" #: ../src/verbs.cpp:2828 msgid "Show or hide the Commands bar (under the menu)" -msgstr "" +msgstr "Birta eða fela skipanaslána (undir valmyndinni)" #: ../src/verbs.cpp:2829 msgid "Sn_ap Controls Bar" @@ -25412,11 +25757,11 @@ msgstr "_Gripstýrislá" #: ../src/verbs.cpp:2829 msgid "Show or hide the snapping controls" -msgstr "" +msgstr "Birta eða fela stjórntæki fyrir grip" #: ../src/verbs.cpp:2830 msgid "T_ool Controls Bar" -msgstr "Verkfærastýrislá" +msgstr "Ver_kfærastýrislá" #: ../src/verbs.cpp:2830 msgid "Show or hide the Tool Controls bar" @@ -25436,7 +25781,7 @@ msgstr "_Litaspjald" #: ../src/verbs.cpp:2832 msgid "Show or hide the color palette" -msgstr "" +msgstr "Birta eða fela litaspjaldið" #: ../src/verbs.cpp:2833 msgid "_Statusbar" @@ -25444,7 +25789,7 @@ msgstr "_Stöðustika" #: ../src/verbs.cpp:2833 msgid "Show or hide the statusbar (at the bottom of the window)" -msgstr "" +msgstr "Birta eða fela stöðustikuna (neðst í þessum glugga)" #: ../src/verbs.cpp:2834 msgid "Nex_t Zoom" @@ -25496,15 +25841,15 @@ msgstr "Skoða þennan vinnuglugga á öllum skjánum" #: ../src/verbs.cpp:2847 msgid "Fullscreen & Focus Mode" -msgstr "" +msgstr "Skjáfylli & Áhersluhamur" #: ../src/verbs.cpp:2850 msgid "Toggle _Focus Mode" -msgstr "" +msgstr "Ví_xla áhersluham" #: ../src/verbs.cpp:2850 msgid "Remove excess toolbars to focus on drawing" -msgstr "" +msgstr "Fjarlægja umfram verkfærastikur þegar áhersla er á teikningu" #: ../src/verbs.cpp:2852 msgid "Duplic_ate Window" @@ -25555,11 +25900,11 @@ msgstr "Ví_xla" #: ../src/verbs.cpp:2864 msgid "Toggle between normal and outline display modes" -msgstr "" +msgstr "Víxla milli venjulegs og útlínubirtingarhams" #: ../src/verbs.cpp:2866 msgid "Switch to normal color display mode" -msgstr "" +msgstr "Fara í venjulegan litbirtingarham" #: ../src/verbs.cpp:2867 msgid "_Grayscale" @@ -25567,11 +25912,11 @@ msgstr "_Grátóna" #: ../src/verbs.cpp:2868 msgid "Switch to grayscale display mode" -msgstr "" +msgstr "Fara í grátóna birtingarham" #: ../src/verbs.cpp:2872 msgid "Toggle between normal and grayscale color display modes" -msgstr "" +msgstr "Víxla milli venjulegs og grátónabirtingarhams" #: ../src/verbs.cpp:2874 msgid "Color-managed view" @@ -25583,7 +25928,7 @@ msgstr "Víxla af/á litstýrðri sýn í þessum vinnuglugga" #: ../src/verbs.cpp:2877 msgid "Ico_n Preview..." -msgstr "Táknmyndaforskoðun..." +msgstr "Ták_nmyndaforskoðun..." #: ../src/verbs.cpp:2878 msgid "Open a window to preview objects at different icon resolutions" @@ -25629,7 +25974,7 @@ msgstr "Breyta eiginleikum þessa skjals (til vistunar með skjalinu)" #: ../src/verbs.cpp:2893 msgid "Document _Metadata..." -msgstr "Lýsigögn skjals" +msgstr "Lýsi_gögn skjals..." #: ../src/verbs.cpp:2894 msgid "Edit document metadata (to be saved with the document)" @@ -25640,6 +25985,8 @@ msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." msgstr "" +"Breyta litum hlutar, litstiglum, línubreidd, örvum, og öðrum eiginleikum " +"fyllingar og útlínu..." #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon #: ../src/verbs.cpp:2898 @@ -25714,19 +26061,19 @@ msgstr "Skoða og breyta XML-greinum skjalsins" #: ../src/verbs.cpp:2918 msgid "_Find/Replace..." -msgstr "" +msgstr "_Finna og skipta út..." #: ../src/verbs.cpp:2919 msgid "Find objects in document" -msgstr "" +msgstr "Leita að hlutum í skjali" #: ../src/verbs.cpp:2920 msgid "Find and _Replace Text..." -msgstr "" +msgstr "Finna og skipta út te_xta..." #: ../src/verbs.cpp:2921 msgid "Find and replace text in document" -msgstr "" +msgstr "Finna og skipta út texta í skjali" #: ../src/verbs.cpp:2923 msgid "Check spelling of text in document" @@ -25746,7 +26093,7 @@ msgstr "Sýna/Fela samskipta_glugga" #: ../src/verbs.cpp:2927 msgid "Show or hide all open dialogs" -msgstr "" +msgstr "Birta eða fela alla opna glugga" #: ../src/verbs.cpp:2928 msgid "Create Tiled Clones..." @@ -25760,15 +26107,16 @@ msgstr "Búa til marga klóna afvöldum hlut, raða þeim upp í mynstur eða dr #: ../src/verbs.cpp:2930 msgid "_Object attributes..." -msgstr "" +msgstr "_Eigindi hlutar..." #: ../src/verbs.cpp:2931 msgid "Edit the object attributes..." -msgstr "" +msgstr "Breyta eigindum hlutar..." #: ../src/verbs.cpp:2933 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" +"Breyttu auðkenni, stöðu læsinga og sýnileika, ásamt öðrum eiginleikum hlutar" #: ../src/verbs.cpp:2934 msgid "_Input Devices..." @@ -25776,7 +26124,7 @@ msgstr "_Inntakstæki..." #: ../src/verbs.cpp:2935 msgid "Configure extended input devices, such as a graphics tablet" -msgstr "" +msgstr "Stilla aukaleg inntakstæki, eins og teiknitöflur" #: ../src/verbs.cpp:2936 msgid "_Extensions..." @@ -25784,7 +26132,7 @@ msgstr "_Viðbætur..." #: ../src/verbs.cpp:2937 msgid "Query information about extensions" -msgstr "" +msgstr "Nálgast upplýsingar um viðbætur" #: ../src/verbs.cpp:2938 msgid "Layer_s..." @@ -25800,23 +26148,23 @@ msgstr "_Hlutir..." #: ../src/verbs.cpp:2941 msgid "View Objects" -msgstr "" +msgstr "Skoða hluti" #: ../src/verbs.cpp:2942 msgid "Selection se_ts..." -msgstr "" +msgstr "Myndvalsse_tt..." #: ../src/verbs.cpp:2943 msgid "View Tags" -msgstr "" +msgstr "Skoða merki" #: ../src/verbs.cpp:2944 msgid "Path E_ffects ..." -msgstr "" +msgstr "_Ferilbrellur ..." #: ../src/verbs.cpp:2945 msgid "Manage, edit, and apply path effects" -msgstr "" +msgstr "Sýsla með, breyta og beita ferilbrellum" #: ../src/verbs.cpp:2946 msgid "Filter _Editor..." @@ -25824,7 +26172,7 @@ msgstr "Sí_uritill..." #: ../src/verbs.cpp:2947 msgid "Manage, edit, and apply SVG filters" -msgstr "" +msgstr "Sýsla með, breyta og beita SVG-síum" #: ../src/verbs.cpp:2948 msgid "SVG Font Editor..." @@ -25836,7 +26184,7 @@ msgstr "Breyta SVG letri" #: ../src/verbs.cpp:2950 msgid "Print Colors..." -msgstr "" +msgstr "Prentlitir..." #: ../src/verbs.cpp:2951 msgid "" @@ -25849,7 +26197,7 @@ msgstr "_Flytja út PNG mynd..." #: ../src/verbs.cpp:2953 msgid "Export this document or a selection as a PNG image" -msgstr "" +msgstr "Flytja þetta skjal út eða valin atriði sem PNG bitamynd" #. Help #: ../src/verbs.cpp:2955 @@ -25874,58 +26222,58 @@ msgstr "_Um Inkscape" #: ../src/verbs.cpp:2960 msgid "Inkscape version, authors, license" -msgstr "" +msgstr "Inkscape útgáfa, höfundar, notkunarskilmálar" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials #: ../src/verbs.cpp:2965 msgid "Inkscape: _Basic" -msgstr "" +msgstr "Inkscape: _Grunnur" #: ../src/verbs.cpp:2966 msgid "Getting started with Inkscape" -msgstr "" +msgstr "Til að komast í gang með Inkscape" #. "tutorial_basic" #: ../src/verbs.cpp:2967 msgid "Inkscape: _Shapes" -msgstr "" +msgstr "Inkscape: _Lögun" #: ../src/verbs.cpp:2968 msgid "Using shape tools to create and edit shapes" -msgstr "" +msgstr "Notkun umbreytingartóla til að búa til og breyta formum" #: ../src/verbs.cpp:2969 msgid "Inkscape: _Advanced" -msgstr "" +msgstr "Inkscape: Í_tarlegt" #: ../src/verbs.cpp:2970 msgid "Advanced Inkscape topics" -msgstr "" +msgstr "Fyrir lengra komna í Inkcape" #. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) #: ../src/verbs.cpp:2972 msgid "Inkscape: T_racing" -msgstr "" +msgstr "Inkscape: Línu_rakning" #: ../src/verbs.cpp:2973 msgid "Using bitmap tracing" -msgstr "" +msgstr "Línuteiknun bitamynda, breyta svæðum bitamynda í ferla" #. "tutorial_tracing" #: ../src/verbs.cpp:2974 msgid "Inkscape: Tracing Pixel Art" -msgstr "" +msgstr "Inkscape: Línurakning Pixel Art mynda" #: ../src/verbs.cpp:2975 msgid "Using Trace Pixel Art dialog" -msgstr "" +msgstr "Nota Trace Pixel Art línuteikningargluggann" #: ../src/verbs.cpp:2976 msgid "Inkscape: _Calligraphy" -msgstr "" +msgstr "Inkscape: _Skrautskrift" #: ../src/verbs.cpp:2977 msgid "Using the Calligraphy pen tool" @@ -25933,20 +26281,20 @@ msgstr "Nota skrautskriftarverkfærið" #: ../src/verbs.cpp:2978 msgid "Inkscape: _Interpolate" -msgstr "" +msgstr "Inkscape: _Brúun" #: ../src/verbs.cpp:2979 msgid "Using the interpolate extension" -msgstr "" +msgstr "Notkun brúunarviðbótarinnar (interpolate)" #. "tutorial_interpolate" #: ../src/verbs.cpp:2980 msgid "_Elements of Design" -msgstr "" +msgstr "Grunnþættir _hönnunar" #: ../src/verbs.cpp:2981 msgid "Principles of design in the tutorial form" -msgstr "" +msgstr "Kennsla um grunnþætti hönnunar" #. "tutorial_design" #: ../src/verbs.cpp:2982 @@ -25955,7 +26303,7 @@ msgstr "Á_bendingar og góð ráð" #: ../src/verbs.cpp:2983 msgid "Miscellaneous tips and tricks" -msgstr "" +msgstr "Ýmsar ábendingar og góð ráð" #. "tutorial_tips" #. Effect -- renamed Extension @@ -25965,7 +26313,7 @@ msgstr "Síðasta _viðbót" #: ../src/verbs.cpp:2987 msgid "Repeat the last extension with the same settings" -msgstr "" +msgstr "Keyra aftur síðustu viðbót með sömu stillingum og áður" #: ../src/verbs.cpp:2988 msgid "_Previous Extension Settings..." @@ -25973,20 +26321,21 @@ msgstr "Stillin_gar síðustu viðbótar..." #: ../src/verbs.cpp:2989 msgid "Repeat the last extension with new settings" -msgstr "" +msgstr "Keyra aftur síðustu viðbót með nýjum stillingum" #: ../src/verbs.cpp:2993 msgid "Fit the page to the current selection" -msgstr "" +msgstr "Aðlaga síðuna að því sem nú er valið" #: ../src/verbs.cpp:2995 msgid "Fit the page to the drawing" -msgstr "" +msgstr "Aðlaga síðuna að teikningu" #: ../src/verbs.cpp:2997 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" +"Aðlaga síðuna að því sem nú er valið eða að teikningu ef ekkert er valið" #. LockAndHide #: ../src/verbs.cpp:2999 @@ -26019,58 +26368,58 @@ msgstr "Fjarlægja tengt ICC litasnið" #: ../src/verbs.cpp:3014 msgid "Add External Script" -msgstr "" +msgstr "Bæta við ytri skriftu" #: ../src/verbs.cpp:3014 msgid "Add an external script" -msgstr "" +msgstr "Bæta við ytri skriftus" #: ../src/verbs.cpp:3016 msgid "Add Embedded Script" -msgstr "" +msgstr "Bæta við ívafinni skriftu" #: ../src/verbs.cpp:3016 msgid "Add an embedded script" -msgstr "" +msgstr "Bæta við ívafinni skriftu" #: ../src/verbs.cpp:3018 msgid "Edit Embedded Script" -msgstr "" +msgstr "Breyta ívafinni skriftu" #: ../src/verbs.cpp:3018 msgid "Edit an embedded script" -msgstr "" +msgstr "Breyta ívafinni skriftu" #: ../src/verbs.cpp:3020 msgid "Remove External Script" -msgstr "" +msgstr "Fjarlægja ytri skriftu" #: ../src/verbs.cpp:3020 msgid "Remove an external script" -msgstr "" +msgstr "Fjarlægja ytri skriftu" #: ../src/verbs.cpp:3022 msgid "Remove Embedded Script" -msgstr "" +msgstr "Fjarlægja ívafða skriftu" #: ../src/verbs.cpp:3022 msgid "Remove an embedded script" -msgstr "" +msgstr "Fjarlægja ívafða skriftu" #: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 msgid "Center on horizontal and vertical axis" -msgstr "" +msgstr "Miðja á láréttum og lóðréttum ásum" #: ../src/widgets/arc-toolbar.cpp:132 msgid "Arc: Change start/end" -msgstr "" +msgstr "Bogi: Breyta upphafi/enda" #: ../src/widgets/arc-toolbar.cpp:198 msgid "Arc: Change open/closed" -msgstr "" +msgstr "Bogi: Víxla opinn/lokaður" #: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 -#: ../src/widgets/rect-toolbar.cpp:261 ../src/widgets/rect-toolbar.cpp:300 +#: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 #: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 #: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 msgid "New:" @@ -26079,7 +26428,7 @@ msgstr "Nýtt:" #. FIXME: implement averaging of all parameters for multiple selected #. gtk_label_set_markup(GTK_LABEL(l), _("Average:")); #: ../src/widgets/arc-toolbar.cpp:292 ../src/widgets/arc-toolbar.cpp:303 -#: ../src/widgets/rect-toolbar.cpp:269 ../src/widgets/rect-toolbar.cpp:287 +#: ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 #: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 #: ../src/widgets/star-toolbar.cpp:386 msgid "Change:" @@ -26103,7 +26452,7 @@ msgstr "Hornið (í gráðum) frá láréttri stöðu að enda bogans" #: ../src/widgets/arc-toolbar.cpp:358 msgid "Closed arc" -msgstr "" +msgstr "Lokaður bogi" #: ../src/widgets/arc-toolbar.cpp:359 msgid "Switch to segment (closed shape with two radii)" @@ -26111,7 +26460,7 @@ msgstr "Skipta yfir í búta (lokað form með tveimur geirum)" #: ../src/widgets/arc-toolbar.cpp:365 msgid "Open Arc" -msgstr "" +msgstr "Opinn bogi" #: ../src/widgets/arc-toolbar.cpp:366 msgid "Switch to arc (unclosed shape)" @@ -26119,7 +26468,7 @@ msgstr "Skipta yfir í boga (ólokað form)" #: ../src/widgets/arc-toolbar.cpp:389 msgid "Make whole" -msgstr "" +msgstr "Gera heilt" #: ../src/widgets/arc-toolbar.cpp:390 msgid "Make the shape a whole ellipse, not arc or segment" @@ -26142,7 +26491,7 @@ msgstr "Horn hjálparlína í X-stefnu" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:326 msgid "State of VP in X direction" -msgstr "" +msgstr "Staða hvarfpunkts í X-stefnu" #: ../src/widgets/box3d-toolbar.cpp:327 msgid "Toggle VP in X direction between 'finite' and 'infinite' (=parallel)" @@ -26164,7 +26513,7 @@ msgstr "Horn hjálparlína í Y-stefnu" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:365 msgid "State of VP in Y direction" -msgstr "" +msgstr "Staða hvarfpunkts í Y-stefnu" #: ../src/widgets/box3d-toolbar.cpp:366 msgid "Toggle VP in Y direction between 'finite' and 'infinite' (=parallel)" @@ -26182,7 +26531,7 @@ msgstr "Horn hjálparlína í Z-stefnu" #. Translators: VP is short for 'vanishing point' #: ../src/widgets/box3d-toolbar.cpp:404 msgid "State of VP in Z direction" -msgstr "" +msgstr "Staða hvarfpunkts í Z-stefnu" #: ../src/widgets/box3d-toolbar.cpp:405 msgid "Toggle VP in Z direction between 'finite' and 'infinite' (=parallel)" @@ -26199,7 +26548,7 @@ msgstr "Engin forstilling" #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/eraser-toolbar.cpp:125 msgid "(hairline)" -msgstr "" +msgstr "(hárlína)" #. Mean #. Rotation @@ -26218,7 +26567,7 @@ msgstr "(sjálfgefið)" #: ../src/widgets/calligraphy-toolbar.cpp:427 #: ../src/widgets/eraser-toolbar.cpp:125 msgid "(broad stroke)" -msgstr "" +msgstr "(breið útlína)" #: ../src/widgets/calligraphy-toolbar.cpp:430 #: ../src/widgets/eraser-toolbar.cpp:128 @@ -26232,11 +26581,11 @@ msgstr "Breidd skrautskriftaroddsins (miðað við sýnilegan myndflöt)" #. Thinning #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(speed blows up stroke)" -msgstr "" +msgstr "(hraði sprengir upp útlínu)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(slight widening)" -msgstr "" +msgstr "(örlítil breikkun)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(constant width)" @@ -26248,7 +26597,7 @@ msgstr "(örlítil þynning, sjálfgefið)" #: ../src/widgets/calligraphy-toolbar.cpp:444 msgid "(speed deflates stroke)" -msgstr "" +msgstr "(hraði minnkar útlínu)" #: ../src/widgets/calligraphy-toolbar.cpp:447 msgid "Stroke Thinning" @@ -26263,13 +26612,13 @@ msgid "" "How much velocity thins the stroke (> 0 makes fast strokes thinner, < 0 " "makes them broader, 0 makes width independent of velocity)" msgstr "" -"Hve mikið hraði þynnir strokuna (> 0 gerir hraðar strokur þynnri, < 0 " -"gerir þær breiðari, 0 gerir þær óháðar hraða)" +"Hve mikið hraði þynnir strokuna (> 0 gerir hraðar strokur þynnri, < 0 gerir " +"þær breiðari, 0 gerir þær óháðar hraða)" #. Angle #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(left edge up)" -msgstr "" +msgstr "(vinstri jaðar upp)" #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(horizontal)" @@ -26277,7 +26626,7 @@ msgstr "(lárétt)" #: ../src/widgets/calligraphy-toolbar.cpp:460 msgid "(right edge up)" -msgstr "" +msgstr "(hægri jaðar upp)" #: ../src/widgets/calligraphy-toolbar.cpp:463 msgid "Pen Angle" @@ -26321,8 +26670,7 @@ msgid "" "Angle behavior (0 = nib always perpendicular to stroke direction, 100 = " "fixed angle)" msgstr "" -"Hegðun horns (0 = oddur alltaf hornrétt á stefnu stroku, 100 = " -"fast horn)" +"Hegðun horns (0 = oddur alltaf hornrétt á stefnu stroku, 100 = fast horn)" #. Cap Rounding #: ../src/widgets/calligraphy-toolbar.cpp:494 @@ -26331,11 +26679,11 @@ msgstr "(sljóir endar, sjálfgefið)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(slightly bulging)" -msgstr "" +msgstr "(örlítil bunga)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(approximately round)" -msgstr "" +msgstr "(um það bil rúnnað)" #: ../src/widgets/calligraphy-toolbar.cpp:494 msgid "(long protruding caps)" @@ -26343,7 +26691,7 @@ msgstr "(langir útskagandi endar)" #: ../src/widgets/calligraphy-toolbar.cpp:498 msgid "Cap rounding" -msgstr "" +msgstr "Rúnnun enda" #: ../src/widgets/calligraphy-toolbar.cpp:498 msgid "Caps:" @@ -26359,7 +26707,7 @@ msgstr "" #. Tremor #: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(smooth line)" -msgstr "" +msgstr "(mýkt lína)" #: ../src/widgets/calligraphy-toolbar.cpp:511 msgid "(slight tremor)" @@ -26392,11 +26740,11 @@ msgstr "(ekkert vagg)" #: ../src/widgets/calligraphy-toolbar.cpp:529 msgid "(slight deviation)" -msgstr "" +msgstr "(örlítið frávik)" #: ../src/widgets/calligraphy-toolbar.cpp:529 msgid "(wild waves and curls)" -msgstr "" +msgstr "(villtar bylgjur og krullur)" #: ../src/widgets/calligraphy-toolbar.cpp:532 msgid "Pen Wiggle" @@ -26413,19 +26761,19 @@ msgstr "Auka til að láta penna vagga og velta" #. Mass #: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(no inertia)" -msgstr "" +msgstr "(enginn skriðþungi)" #: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(slight smoothing, default)" -msgstr "" +msgstr "(örlítil mýking, sjálfgefið)" #: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(noticeable lagging)" -msgstr "" +msgstr "(sjáanlegur dráttur)" #: ../src/widgets/calligraphy-toolbar.cpp:546 msgid "(maximum inertia)" -msgstr "" +msgstr "(hámarks skriðþungi)" #: ../src/widgets/calligraphy-toolbar.cpp:549 msgid "Pen Mass" @@ -26470,11 +26818,11 @@ msgstr "Veldu forstillingu" #: ../src/widgets/calligraphy-toolbar.cpp:622 msgid "Add/Edit Profile" -msgstr "" +msgstr "Bæta við eða breyta sniði" #: ../src/widgets/calligraphy-toolbar.cpp:623 msgid "Add or edit calligraphic profile" -msgstr "" +msgstr "Bæta við eða breyta skrautskriftarsniði" #: ../src/widgets/connector-toolbar.cpp:120 msgid "Set connector type: orthogonal" @@ -26535,7 +26883,7 @@ msgstr "" #: ../src/widgets/connector-toolbar.cpp:372 msgid "Graph" -msgstr "" +msgstr "Graf" #: ../src/widgets/connector-toolbar.cpp:382 msgid "Connector Length" @@ -26571,7 +26919,7 @@ msgstr "Hliðrun mynsturs" #: ../src/widgets/desktop-widget.cpp:466 msgid "Zoom drawing if window size changes" -msgstr "" +msgstr "Breyta aðdrætti myndar þegar stærð glugga breytist" #: ../src/widgets/desktop-widget.cpp:665 msgid "Cursor coordinates" @@ -26660,6 +27008,10 @@ msgid "" "\n" "If you close without saving, your changes will be discarded." msgstr "" +"Viltu vista breytingar á skjalinu \"%s" +"\" áður en þú lokar því?\n" +"\n" +"Ef þú lokar án þess að vista, munu breytingar sem þú gerðir tapast." #: ../src/widgets/desktop-widget.cpp:1118 #: ../src/widgets/desktop-widget.cpp:1177 @@ -26674,6 +27026,10 @@ msgid "" "\n" "Do you want to save this file as Inkscape SVG?" msgstr "" +"Skráin \"%s\" var vistuð á skráasniði " +"sem gæti valdið gagnatapi!\n" +"\n" +"Viltu vista þessa skrá sem Inkscape SVG?" #: ../src/widgets/desktop-widget.cpp:1179 msgid "_Save as Inkscape SVG" @@ -26685,7 +27041,7 @@ msgstr "Athugið:" #: ../src/widgets/dropper-toolbar.cpp:90 msgid "Pick opacity" -msgstr "" +msgstr "Plokka ógegnsæi" #: ../src/widgets/dropper-toolbar.cpp:91 msgid "" @@ -26740,7 +27096,7 @@ msgstr "Setja fyllingu" #: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 msgid "Set stroke color" -msgstr "" +msgstr "Setja útlínulit" #: ../src/widgets/fill-style.cpp:622 msgid "Set gradient on fill" @@ -26748,7 +27104,7 @@ msgstr "Setja litstigul í fyllingu" #: ../src/widgets/fill-style.cpp:622 msgid "Set gradient on stroke" -msgstr "" +msgstr "Setja litstigul í útlínu" #: ../src/widgets/fill-style.cpp:682 msgid "Set pattern on fill" @@ -26782,129 +27138,129 @@ msgstr "Leturgerð" msgid "Font size:" msgstr "Leturstærð:" -#: ../src/widgets/gradient-selector.cpp:196 +#: ../src/widgets/gradient-selector.cpp:201 msgid "Create a duplicate gradient" -msgstr "" +msgstr "Búa til tvítekningu litstiguls" #: ../src/widgets/gradient-selector.cpp:212 msgid "Edit gradient" msgstr "Breyta litstigli" -#: ../src/widgets/gradient-selector.cpp:288 +#: ../src/widgets/gradient-selector.cpp:281 #: ../src/widgets/paint-selector.cpp:236 msgid "Swatch" msgstr "Litaprufa" -#: ../src/widgets/gradient-selector.cpp:338 +#: ../src/widgets/gradient-selector.cpp:331 msgid "Rename gradient" -msgstr "" +msgstr "Endurnefna litstigul" #: ../src/widgets/gradient-toolbar.cpp:156 #: ../src/widgets/gradient-toolbar.cpp:169 -#: ../src/widgets/gradient-toolbar.cpp:756 -#: ../src/widgets/gradient-toolbar.cpp:1094 +#: ../src/widgets/gradient-toolbar.cpp:758 +#: ../src/widgets/gradient-toolbar.cpp:1097 msgid "No gradient" msgstr "Engir litstiglar" -#: ../src/widgets/gradient-toolbar.cpp:175 +#: ../src/widgets/gradient-toolbar.cpp:176 msgid "Multiple gradients" msgstr "Margir litstiglar" -#: ../src/widgets/gradient-toolbar.cpp:676 +#: ../src/widgets/gradient-toolbar.cpp:678 msgid "Multiple stops" msgstr "Mörg stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:774 +#: ../src/widgets/gradient-toolbar.cpp:776 #: ../src/widgets/gradient-vector.cpp:609 msgid "No stops in gradient" msgstr "Engin stoppmerki í litstigli" -#: ../src/widgets/gradient-toolbar.cpp:927 +#: ../src/widgets/gradient-toolbar.cpp:930 msgid "Assign gradient to object" -msgstr "" +msgstr "Úthluta litstigli á hlut" -#: ../src/widgets/gradient-toolbar.cpp:949 +#: ../src/widgets/gradient-toolbar.cpp:952 msgid "Set gradient repeat" -msgstr "" +msgstr "Setja endurtekningu litstiguls" -#: ../src/widgets/gradient-toolbar.cpp:987 +#: ../src/widgets/gradient-toolbar.cpp:990 #: ../src/widgets/gradient-vector.cpp:720 msgid "Change gradient stop offset" -msgstr "" +msgstr "Breyta hliðrun á stoppmerki litstiguls" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "linear" msgstr "línulegt" -#: ../src/widgets/gradient-toolbar.cpp:1034 +#: ../src/widgets/gradient-toolbar.cpp:1037 msgid "Create linear gradient" msgstr "Búa til línulegan litstigul" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "radial" msgstr "frá miðju" -#: ../src/widgets/gradient-toolbar.cpp:1038 +#: ../src/widgets/gradient-toolbar.cpp:1041 msgid "Create radial (elliptic or circular) gradient" msgstr "Búa til hringlaga (sporaskja eða geisli) litstigul" -#: ../src/widgets/gradient-toolbar.cpp:1041 -#: ../src/widgets/mesh-toolbar.cpp:207 +#: ../src/widgets/gradient-toolbar.cpp:1044 +#: ../src/widgets/mesh-toolbar.cpp:341 msgid "New:" msgstr "Nýtt:" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 msgid "fill" msgstr "fylling" -#: ../src/widgets/gradient-toolbar.cpp:1064 -#: ../src/widgets/mesh-toolbar.cpp:230 +#: ../src/widgets/gradient-toolbar.cpp:1067 +#: ../src/widgets/mesh-toolbar.cpp:364 msgid "Create gradient in the fill" msgstr "Búa til litstigul í fyllingu" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 msgid "stroke" msgstr "útlína" -#: ../src/widgets/gradient-toolbar.cpp:1068 -#: ../src/widgets/mesh-toolbar.cpp:234 +#: ../src/widgets/gradient-toolbar.cpp:1071 +#: ../src/widgets/mesh-toolbar.cpp:368 msgid "Create gradient in the stroke" msgstr "Búa til litstigul í útlínu" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:237 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:371 msgid "on:" msgstr "á:" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Select" msgstr "Velja" -#: ../src/widgets/gradient-toolbar.cpp:1096 +#: ../src/widgets/gradient-toolbar.cpp:1099 msgid "Choose a gradient" msgstr "Veldu litstigul" -#: ../src/widgets/gradient-toolbar.cpp:1097 +#: ../src/widgets/gradient-toolbar.cpp:1100 msgid "Select:" msgstr "Velja:" -#: ../src/widgets/gradient-toolbar.cpp:1112 +#: ../src/widgets/gradient-toolbar.cpp:1115 msgctxt "Gradient repeat type" msgid "None" msgstr "Ekkert" -#: ../src/widgets/gradient-toolbar.cpp:1118 +#: ../src/widgets/gradient-toolbar.cpp:1121 msgid "Direct" msgstr "Beint" -#: ../src/widgets/gradient-toolbar.cpp:1120 +#: ../src/widgets/gradient-toolbar.cpp:1123 msgid "Repeat" msgstr "Endurtaka" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/pservers.html#LinearGradientSpreadMethodAttribute -#: ../src/widgets/gradient-toolbar.cpp:1122 +#: ../src/widgets/gradient-toolbar.cpp:1125 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -26912,59 +27268,59 @@ msgid "" "directions (spreadMethod=\"reflect\")" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1127 +#: ../src/widgets/gradient-toolbar.cpp:1130 msgid "Repeat:" msgstr "Endurtaka:" -#: ../src/widgets/gradient-toolbar.cpp:1141 +#: ../src/widgets/gradient-toolbar.cpp:1144 msgid "No stops" msgstr "Engin stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Stops" msgstr "Stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:1143 +#: ../src/widgets/gradient-toolbar.cpp:1146 msgid "Select a stop for the current gradient" msgstr "Veldu stoppmerki fyrir þennan litstigul" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "Stops:" msgstr "Stoppmerki:" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 #: ../src/widgets/gradient-vector.cpp:906 msgctxt "Gradient" msgid "Offset:" msgstr "Hliðrun:" -#: ../src/widgets/gradient-toolbar.cpp:1156 +#: ../src/widgets/gradient-toolbar.cpp:1159 msgid "Offset of selected stop" msgstr "Hliðrun á völdu stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:1174 -#: ../src/widgets/gradient-toolbar.cpp:1175 +#: ../src/widgets/gradient-toolbar.cpp:1177 +#: ../src/widgets/gradient-toolbar.cpp:1178 msgid "Insert new stop" msgstr "Setja inn nýtt stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:1188 -#: ../src/widgets/gradient-toolbar.cpp:1189 +#: ../src/widgets/gradient-toolbar.cpp:1191 +#: ../src/widgets/gradient-toolbar.cpp:1192 #: ../src/widgets/gradient-vector.cpp:888 msgid "Delete stop" msgstr "Eyða stoppmerki" -#: ../src/widgets/gradient-toolbar.cpp:1203 +#: ../src/widgets/gradient-toolbar.cpp:1206 msgid "Reverse the direction of the gradient" -msgstr "" +msgstr "Snúa við stefnu litstiguls" -#: ../src/widgets/gradient-toolbar.cpp:1217 +#: ../src/widgets/gradient-toolbar.cpp:1220 msgid "Link gradients" -msgstr "" +msgstr "Tengja litstigla" -#: ../src/widgets/gradient-toolbar.cpp:1218 +#: ../src/widgets/gradient-toolbar.cpp:1221 msgid "Link gradients to change all related gradients" -msgstr "" +msgstr "Tengja litstigla þannig að hægt sé að breyta öllum tengdum litstiglum" #: ../src/widgets/gradient-vector.cpp:312 #: ../src/widgets/paint-selector.cpp:947 @@ -26987,11 +27343,11 @@ msgstr "Bæta við stoppmerki" #: ../src/widgets/gradient-vector.cpp:886 msgid "Add another control stop to gradient" -msgstr "" +msgstr "Bæta við öðru stoppmerki í litstigul" #: ../src/widgets/gradient-vector.cpp:891 msgid "Delete current control stop from gradient" -msgstr "" +msgstr "Eyða þessu stoppmerki úr litstigli" #. TRANSLATORS: "Stop" means: a "phase" of a gradient #: ../src/widgets/gradient-vector.cpp:959 @@ -27004,7 +27360,7 @@ msgstr "Litstiglaritill" #: ../src/widgets/gradient-vector.cpp:1324 msgid "Change gradient stop color" -msgstr "" +msgstr "Breyta stopplit litstiguls" #: ../src/widgets/lpe-toolbar.cpp:233 msgid "Closed" @@ -27032,11 +27388,11 @@ msgstr "" #: ../src/widgets/lpe-toolbar.cpp:335 msgid "Show limiting bounding box" -msgstr "" +msgstr "Sýna takmarkandi umgjörð" #: ../src/widgets/lpe-toolbar.cpp:336 msgid "Show bounding box (used to cut infinite lines)" -msgstr "" +msgstr "Sýna umgjörð (notað til að skera óendanlegar línur)" #: ../src/widgets/lpe-toolbar.cpp:347 msgid "Get limiting bounding box from selection" @@ -27054,26 +27410,26 @@ msgstr "Veldu gerð línubúts" #: ../src/widgets/lpe-toolbar.cpp:376 msgid "Display measuring info" -msgstr "" +msgstr "Birta mælingaupplýsingar" #: ../src/widgets/lpe-toolbar.cpp:377 msgid "Display measuring info for selected items" -msgstr "" +msgstr "Birta mælingaupplýsingar fyrir valda hluti" #. Add the units menu. #: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 #: ../src/widgets/paintbucket-toolbar.cpp:168 -#: ../src/widgets/rect-toolbar.cpp:379 ../src/widgets/select-toolbar.cpp:538 +#: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 msgid "Units" msgstr "Einingar" #: ../src/widgets/lpe-toolbar.cpp:397 msgid "Open LPE dialog" -msgstr "" +msgstr "Opna LPE glugga" #: ../src/widgets/lpe-toolbar.cpp:398 msgid "Open LPE dialog (to adapt parameters numerically)" -msgstr "" +msgstr "Opna LPE glugga (til að setja inn tölulegar stærðir)" #: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 msgid "Font Size" @@ -27085,80 +27441,109 @@ msgstr "Leturstærð:" #: ../src/widgets/measure-toolbar.cpp:87 msgid "The font size to be used in the measurement labels" -msgstr "" +msgstr "Leturstærð sem á að nota í málsetningum" #: ../src/widgets/measure-toolbar.cpp:99 #: ../src/widgets/measure-toolbar.cpp:107 msgid "The units to be used for the measurements" -msgstr "" +msgstr "Einingar sem á að nota í málsetningum" -#: ../src/widgets/mesh-toolbar.cpp:200 +#: ../src/widgets/mesh-toolbar.cpp:311 +msgid "Set mesh type" +msgstr "Settu gerð möskva" + +#: ../src/widgets/mesh-toolbar.cpp:334 msgid "normal" msgstr "venjulegt" -#: ../src/widgets/mesh-toolbar.cpp:200 +#: ../src/widgets/mesh-toolbar.cpp:334 msgid "Create mesh gradient" -msgstr "" +msgstr "Búa til litstigul möskva" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/mesh-toolbar.cpp:338 msgid "conical" msgstr "keilulaga" -#: ../src/widgets/mesh-toolbar.cpp:204 +#: ../src/widgets/mesh-toolbar.cpp:338 msgid "Create conical gradient" -msgstr "" +msgstr "Búa til keilulaga litstigul" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 msgid "Rows" msgstr "Raðir" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 #: ../share/extensions/guides_creator.inx.h:5 #: ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "Raðir:" -#: ../src/widgets/mesh-toolbar.cpp:259 +#: ../src/widgets/mesh-toolbar.cpp:393 msgid "Number of rows in new mesh" -msgstr "" +msgstr "Fjöldi raða í nýju möskvaneti" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 msgid "Columns" msgstr "Dálkar" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Dálkar:" -#: ../src/widgets/mesh-toolbar.cpp:275 +#: ../src/widgets/mesh-toolbar.cpp:409 msgid "Number of columns in new mesh" -msgstr "" +msgstr "Fjöldi dálka í nýju möskvaneti" -#: ../src/widgets/mesh-toolbar.cpp:289 +#: ../src/widgets/mesh-toolbar.cpp:423 msgid "Edit Fill" msgstr "Breyta fyllingu" -#: ../src/widgets/mesh-toolbar.cpp:290 +#: ../src/widgets/mesh-toolbar.cpp:424 msgid "Edit fill mesh" -msgstr "" +msgstr "Breyta möskvafyllingu" -#: ../src/widgets/mesh-toolbar.cpp:301 +#: ../src/widgets/mesh-toolbar.cpp:435 msgid "Edit Stroke" msgstr "Breyta útlínu" -#: ../src/widgets/mesh-toolbar.cpp:302 +#: ../src/widgets/mesh-toolbar.cpp:436 msgid "Edit stroke mesh" -msgstr "" +msgstr "Breyta möskvaútlínu" -#: ../src/widgets/mesh-toolbar.cpp:313 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "Sýna haldföng" -#: ../src/widgets/mesh-toolbar.cpp:314 +#: ../src/widgets/mesh-toolbar.cpp:448 msgid "Show side and tensor handles" +msgstr "Sýna haldföng hliða og strekkjara" + +#: ../src/widgets/mesh-toolbar.cpp:463 +msgid "WARNING: Mesh SVG Syntax Subject to Change" +msgstr "AÐVÖRUN: SVG möskvaframsetning (Mesh SVG Syntax) gæti breyst" + +#: ../src/widgets/mesh-toolbar.cpp:473 +msgctxt "Type" +msgid "Coons" +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:476 +msgid "Bicubic" +msgstr "Býkúpu" + +#: ../src/widgets/mesh-toolbar.cpp:478 +msgid "Coons" msgstr "" +#: ../src/widgets/mesh-toolbar.cpp:479 +msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." +msgstr "" + +#: ../src/widgets/mesh-toolbar.cpp:481 ../src/widgets/pencil-toolbar.cpp:278 +msgid "Smoothing:" +msgstr "Mýking:" + #: ../src/widgets/node-toolbar.cpp:341 msgid "Insert node" msgstr "Setja inn hnút" @@ -27369,11 +27754,11 @@ msgstr "Hringlaga litstigull" #: ../src/widgets/paint-selector.cpp:231 msgid "Mesh gradient" -msgstr "" +msgstr "Litstigull möskva" #: ../src/widgets/paint-selector.cpp:238 msgid "Unset paint (make it undefined so it can be inherited)" -msgstr "" +msgstr "Afstilla lit (gera hann óskilgreindan svo hann geti erfst)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:255 @@ -27381,12 +27766,15 @@ msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" msgstr "" +"Allar skaranir ferils við sjálfan sig eða undirferlar munu gera holu í " +"fyllingu (fylliregla: sléttodda)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty #: ../src/widgets/paint-selector.cpp:266 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" +"Fylling er gegnheil nema ef undirferill er gagnstæður (fylliregla: ekkinúll)" #: ../src/widgets/paint-selector.cpp:600 msgid "No objects" @@ -27419,7 +27807,7 @@ msgstr "Hringlaga litstigull" #: ../src/widgets/paint-selector.cpp:781 msgid "Mesh gradient" -msgstr "" +msgstr "Litstigull möskva" #: ../src/widgets/paint-selector.cpp:1080 msgid "" @@ -27453,8 +27841,8 @@ msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" msgstr "" -"Hámark leyfðs mismunar milli mynddíls sem smellt er á og nágrannadílanna, svo " -"þeir séu taldir með í fyllingunni" +"Hámark leyfðs mismunar milli mynddíls sem smellt er á og nágrannadílanna, " +"svo þeir séu taldir með í fyllingunni" #: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "Grow/shrink by" @@ -27468,7 +27856,8 @@ msgstr "Vaxa/minnka um:" msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" -"Magnið sem fyllti ferillinn getur vaxið um (jákvætt) eða minnkað um (neikvætt)" +"Magnið sem fyllti ferillinn getur vaxið um (jákvætt) eða minnkað um " +"(neikvætt)" #: ../src/widgets/paintbucket-toolbar.cpp:202 msgid "Close gaps" @@ -27563,15 +27952,11 @@ msgstr "(margir hnútar, gróft)" #: ../src/widgets/pencil-toolbar.cpp:275 msgid "(few nodes, smooth)" -msgstr "" - -#: ../src/widgets/pencil-toolbar.cpp:278 -msgid "Smoothing:" -msgstr "Mýking:" +msgstr "(fáir hnútar, mjúkt)" #: ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing: " -msgstr "Mýking:" +msgstr "Mýking: " #: ../src/widgets/pencil-toolbar.cpp:279 msgid "How much smoothing (simplifying) is applied to the line" @@ -27589,91 +27974,91 @@ msgstr "" msgid "Change rectangle" msgstr "Breyta rétthyrning" -#: ../src/widgets/rect-toolbar.cpp:318 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "W:" msgstr "B:" -#: ../src/widgets/rect-toolbar.cpp:318 +#: ../src/widgets/rect-toolbar.cpp:317 msgid "Width of rectangle" msgstr "Breidd rétthyrnings" -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "H:" msgstr "H:" -#: ../src/widgets/rect-toolbar.cpp:335 +#: ../src/widgets/rect-toolbar.cpp:334 msgid "Height of rectangle" msgstr "Hæð rétthyrnings" -#: ../src/widgets/rect-toolbar.cpp:349 ../src/widgets/rect-toolbar.cpp:364 +#: ../src/widgets/rect-toolbar.cpp:348 ../src/widgets/rect-toolbar.cpp:363 msgid "not rounded" msgstr "ekki rúnnað" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius" msgstr "" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Rx:" msgstr "Rx:" -#: ../src/widgets/rect-toolbar.cpp:352 +#: ../src/widgets/rect-toolbar.cpp:351 msgid "Horizontal radius of rounded corners" msgstr "Láréttur radíus rúnnaðra horna" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius" msgstr "" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Ry:" msgstr "Ry:" -#: ../src/widgets/rect-toolbar.cpp:367 +#: ../src/widgets/rect-toolbar.cpp:366 msgid "Vertical radius of rounded corners" msgstr "Lóðréttur radíus rúnnaðra horna" -#: ../src/widgets/rect-toolbar.cpp:386 +#: ../src/widgets/rect-toolbar.cpp:385 msgid "Not rounded" msgstr "Ekki rúnnað" -#: ../src/widgets/rect-toolbar.cpp:387 +#: ../src/widgets/rect-toolbar.cpp:386 msgid "Make corners sharp" msgstr "Gera horn hvöss" -#: ../src/widgets/ruler.cpp:192 +#: ../src/widgets/ruler.cpp:193 msgid "The orientation of the ruler" msgstr "Stefna mælistikunnar" -#: ../src/widgets/ruler.cpp:202 +#: ../src/widgets/ruler.cpp:203 msgid "Unit of the ruler" msgstr "Einingar mælistikunnar" -#: ../src/widgets/ruler.cpp:209 +#: ../src/widgets/ruler.cpp:210 msgid "Lower" msgstr "Neðri" -#: ../src/widgets/ruler.cpp:210 +#: ../src/widgets/ruler.cpp:211 msgid "Lower limit of ruler" msgstr "Neðri mörk mælistiku" -#: ../src/widgets/ruler.cpp:219 +#: ../src/widgets/ruler.cpp:220 msgid "Upper" msgstr "Efri" -#: ../src/widgets/ruler.cpp:220 +#: ../src/widgets/ruler.cpp:221 msgid "Upper limit of ruler" msgstr "Efri mörk mælistiku" -#: ../src/widgets/ruler.cpp:230 +#: ../src/widgets/ruler.cpp:231 msgid "Position of mark on the ruler" msgstr "Staða merkis á mælistikunni" -#: ../src/widgets/ruler.cpp:239 +#: ../src/widgets/ruler.cpp:240 msgid "Max Size" msgstr "Hámarksstærð" -#: ../src/widgets/ruler.cpp:240 +#: ../src/widgets/ruler.cpp:241 msgid "Maximum size of the ruler" msgstr "Mesta stærð mælistikunnar" @@ -27881,7 +28266,7 @@ msgstr "Laga" #: ../src/widgets/sp-color-icc-selector.cpp:433 msgid "Fix RGB fallback to match icc-color() value." -msgstr "Laga varaleið samsvörunar RGB við ICC-litgildi (icc-color() )" +msgstr "Laga varaleið samsvörunar RGB við ICC-litgildi [icc-color()]." #. Label #: ../src/widgets/sp-color-icc-selector.cpp:536 @@ -27948,7 +28333,7 @@ msgstr "Gildi" #: ../src/widgets/sp-xmlview-content.cpp:151 msgid "Type text in a text node" -msgstr "" +msgstr "Settu inn texta á textahnút" #: ../src/widgets/spiral-toolbar.cpp:100 msgid "Change spiral" @@ -28039,8 +28424,8 @@ msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" msgstr "" -"Frumstilla formstillingar á sjálfgefin gildi (notaðu Kjörstillingar Inkscape >" -" Verkfæri til að breyta sjálfgefnu gildunum)" +"Frumstilla formstillingar á sjálfgefin gildi (notaðu Kjörstillingar Inkscape " +"> Verkfæri til að breyta sjálfgefnu gildunum)" #. Width #: ../src/widgets/spray-toolbar.cpp:113 @@ -28383,7 +28768,7 @@ msgstr "Hornskeyting" #: ../src/widgets/stroke-style.cpp:280 msgid "Miter _limit:" -msgstr "Mörk hornskeytingar:" +msgstr "Mörk _hornskeytingar:" #. Cap type #. TRANSLATORS: cap type specifies the shape for the ends of lines @@ -28424,17 +28809,19 @@ msgstr "" #: ../src/widgets/stroke-style.cpp:358 msgid "Start Markers are drawn on the first node of a path or shape" -msgstr "" +msgstr "Upphafsmerki eru teiknuð á fyrsta hnút ferils eða forms" #: ../src/widgets/stroke-style.cpp:367 msgid "" "Mid Markers are drawn on every node of a path or shape except the first and " "last nodes" msgstr "" +"Miðjuamerki eru teiknuð á alla hnúta ferils eða forms nema þann fyrsta og " +"þann síðasta" #: ../src/widgets/stroke-style.cpp:376 msgid "End Markers are drawn on the last node of a path or shape" -msgstr "" +msgstr "Endamerki eru teiknuð á síðasta hnút ferils eða forms" #: ../src/widgets/stroke-style.cpp:494 msgid "Set markers" @@ -28466,39 +28853,39 @@ msgstr "Texti: Breyta leturstíl" #: ../src/widgets/text-toolbar.cpp:347 msgid "Text: Change superscript or subscript" -msgstr "" +msgstr "Texti: Breyta í háletur/lágletur" #: ../src/widgets/text-toolbar.cpp:489 msgid "Text: Change alignment" -msgstr "" +msgstr "Texti: Breyta jöfnun" #: ../src/widgets/text-toolbar.cpp:532 msgid "Text: Change line-height" -msgstr "" +msgstr "Texti: Breyta hæð línu" #: ../src/widgets/text-toolbar.cpp:580 msgid "Text: Change word-spacing" -msgstr "" +msgstr "Texti: Breyta orðabili" #: ../src/widgets/text-toolbar.cpp:620 msgid "Text: Change letter-spacing" -msgstr "" +msgstr "Texti: Breyta stafabili" #: ../src/widgets/text-toolbar.cpp:658 msgid "Text: Change dx (kern)" -msgstr "" +msgstr "Texti: Breyta dx (hnikun)" #: ../src/widgets/text-toolbar.cpp:692 msgid "Text: Change dy" -msgstr "" +msgstr "Texti: Breyta dy (hnikun)" #: ../src/widgets/text-toolbar.cpp:727 msgid "Text: Change rotate" -msgstr "" +msgstr "Texti: Breyta snúningi" #: ../src/widgets/text-toolbar.cpp:774 msgid "Text: Change orientation" -msgstr "" +msgstr "Texti: Breyta stefnu" #: ../src/widgets/text-toolbar.cpp:1210 msgid "Font Family" @@ -28665,7 +29052,7 @@ msgstr "Lóðrétt hliðrun" #. label #: ../src/widgets/text-toolbar.cpp:1559 msgid "Vert:" -msgstr "" +msgstr "Lóðr:" #. short label #: ../src/widgets/text-toolbar.cpp:1560 @@ -28729,133 +29116,135 @@ msgstr "" #: ../src/widgets/toolbox.cpp:219 msgid "Style of Paint Bucket fill objects" -msgstr "" +msgstr "Stíll fötyfyllingarhluta" -#: ../src/widgets/toolbox.cpp:1681 +#: ../src/widgets/toolbox.cpp:1683 msgid "Bounding box" msgstr "Umgjörð" -#: ../src/widgets/toolbox.cpp:1681 +#: ../src/widgets/toolbox.cpp:1683 msgid "Snap bounding boxes" msgstr "Grípa í umgjarðir" -#: ../src/widgets/toolbox.cpp:1690 +#: ../src/widgets/toolbox.cpp:1692 msgid "Bounding box edges" msgstr "Hliðar umgjarða" -#: ../src/widgets/toolbox.cpp:1690 +#: ../src/widgets/toolbox.cpp:1692 msgid "Snap to edges of a bounding box" msgstr "Grípa í hliðar umgjarðar" -#: ../src/widgets/toolbox.cpp:1699 +#: ../src/widgets/toolbox.cpp:1701 msgid "Bounding box corners" msgstr "Horn umgjarðar" -#: ../src/widgets/toolbox.cpp:1699 +#: ../src/widgets/toolbox.cpp:1701 msgid "Snap bounding box corners" msgstr "Grípa í horn umgjarðar" -#: ../src/widgets/toolbox.cpp:1708 +#: ../src/widgets/toolbox.cpp:1710 msgid "BBox Edge Midpoints" msgstr "Miðpunktar á hliðum umgjarðar" -#: ../src/widgets/toolbox.cpp:1708 +#: ../src/widgets/toolbox.cpp:1710 msgid "Snap midpoints of bounding box edges" msgstr "Grípa í miðpunkta á hliðum umgjarðar" -#: ../src/widgets/toolbox.cpp:1718 +#: ../src/widgets/toolbox.cpp:1720 msgid "BBox Centers" msgstr "Miðjur umgjarða" -#: ../src/widgets/toolbox.cpp:1718 +#: ../src/widgets/toolbox.cpp:1720 msgid "Snapping centers of bounding boxes" msgstr "Grípa í miðjur umgjarða" -#: ../src/widgets/toolbox.cpp:1727 +#: ../src/widgets/toolbox.cpp:1729 msgid "Snap nodes, paths, and handles" msgstr "Grípa í hnúta, ferla og haldföng" -#: ../src/widgets/toolbox.cpp:1735 +#: ../src/widgets/toolbox.cpp:1737 msgid "Snap to paths" msgstr "Grípa í ferla" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1746 msgid "Path intersections" msgstr "Skaranir ferla" -#: ../src/widgets/toolbox.cpp:1744 +#: ../src/widgets/toolbox.cpp:1746 msgid "Snap to path intersections" msgstr "Grípa í skaranir ferla" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1755 msgid "To nodes" msgstr "Í hnúta" -#: ../src/widgets/toolbox.cpp:1753 +#: ../src/widgets/toolbox.cpp:1755 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1764 msgid "Smooth nodes" msgstr "Mýkja hnúta" -#: ../src/widgets/toolbox.cpp:1762 +#: ../src/widgets/toolbox.cpp:1764 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:1771 +#: ../src/widgets/toolbox.cpp:1773 msgid "Line Midpoints" msgstr "Miðpunktar á línum" -#: ../src/widgets/toolbox.cpp:1771 +#: ../src/widgets/toolbox.cpp:1773 msgid "Snap midpoints of line segments" msgstr "Grípa í miðpunkta á línubútum" -#: ../src/widgets/toolbox.cpp:1780 +#: ../src/widgets/toolbox.cpp:1782 msgid "Others" msgstr "Annað" -#: ../src/widgets/toolbox.cpp:1780 +#: ../src/widgets/toolbox.cpp:1782 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" +"Grípa í aðra punkta (miðjur, upphafspunkta stoðlína, litstigulshaldföng, o.s." +"frv.)" -#: ../src/widgets/toolbox.cpp:1788 +#: ../src/widgets/toolbox.cpp:1790 msgid "Object Centers" msgstr "Miðjur hluta" -#: ../src/widgets/toolbox.cpp:1788 +#: ../src/widgets/toolbox.cpp:1790 msgid "Snap centers of objects" msgstr "Grípa í miðjur hluta" -#: ../src/widgets/toolbox.cpp:1797 +#: ../src/widgets/toolbox.cpp:1799 msgid "Rotation Centers" msgstr "Snúningsmiðjur" -#: ../src/widgets/toolbox.cpp:1797 +#: ../src/widgets/toolbox.cpp:1799 msgid "Snap an item's rotation center" msgstr "Grípa í snúningsmiðjur hlutar" -#: ../src/widgets/toolbox.cpp:1806 +#: ../src/widgets/toolbox.cpp:1808 msgid "Text baseline" msgstr "Grunnlína texta" -#: ../src/widgets/toolbox.cpp:1806 +#: ../src/widgets/toolbox.cpp:1808 msgid "Snap text anchors and baselines" msgstr "Grípa í festingar og grunnlínur texta" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1818 msgid "Page border" msgstr "Jaðar síðu" -#: ../src/widgets/toolbox.cpp:1816 +#: ../src/widgets/toolbox.cpp:1818 msgid "Snap to the page border" msgstr "Grípa í jaðar síðu" -#: ../src/widgets/toolbox.cpp:1825 +#: ../src/widgets/toolbox.cpp:1827 msgid "Snap to grids" msgstr "Grípa í hnitanet" -#: ../src/widgets/toolbox.cpp:1834 +#: ../src/widgets/toolbox.cpp:1836 msgid "Snap guides" msgstr "Grípa í stoðlínur" @@ -29044,7 +29433,7 @@ msgstr "(úfið, einfaldað)" #: ../src/widgets/tweak-toolbar.cpp:350 msgid "(fine, but many nodes)" -msgstr "" +msgstr "(fínlegt, en margir hnútar)" #: ../src/widgets/tweak-toolbar.cpp:353 msgid "Fidelity" @@ -29066,7 +29455,7 @@ msgstr "" msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "Notaðu þrýsting frá inntakstæki til að breyta krafti aðgerðar" -#: ../share/extensions/convert2dashes.py:93 +#: ../share/extensions/convert2dashes.py:100 msgid "" "The selected object is not a path.\n" "Try using the procedure Path->Object to Path." @@ -29074,7 +29463,7 @@ msgstr "" #: ../share/extensions/dimension.py:109 msgid "Please select an object." -msgstr "Veldu einhvern hlut:" +msgstr "Veldu einhvern hlut." #: ../share/extensions/dimension.py:134 msgid "Unable to process this object. Try changing it into a path first." @@ -29126,13 +29515,13 @@ msgid "" "required by this extension. Please install them and try again." msgstr "" -#: ../share/extensions/dxf_outlines.py:300 +#: ../share/extensions/dxf_outlines.py:299 msgid "" "Error: Field 'Layer match name' must be filled when using 'By name match' " "option" msgstr "" -#: ../share/extensions/dxf_outlines.py:341 +#: ../share/extensions/dxf_outlines.py:340 #, python-format msgid "Warning: Layer '%s' not found!" msgstr "Aðvörun: Lagið '%s' fannst ekki!" @@ -29175,11 +29564,14 @@ msgid "Need at least 2 paths selected" msgstr "" #: ../share/extensions/funcplot.py:48 -msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" +msgid "" +"x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" msgstr "" #: ../share/extensions/funcplot.py:60 -msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" +msgid "" +"y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " +"value of rectangle's bottom'" msgstr "" #: ../share/extensions/funcplot.py:315 @@ -29409,14 +29801,18 @@ msgid "Please select an object" msgstr "Veldu hlut" #: ../share/extensions/gimp_xcf.py:39 -msgid "Gimp must be installed and set in your path variable." +msgid "Inkscape must be installed and set in your path variable." msgstr "" #: ../share/extensions/gimp_xcf.py:43 +msgid "Gimp must be installed and set in your path variable." +msgstr "" + +#: ../share/extensions/gimp_xcf.py:47 msgid "An error occurred while processing the XCF file." msgstr "" -#: ../share/extensions/gimp_xcf.py:177 +#: ../share/extensions/gimp_xcf.py:185 msgid "This extension requires at least one non empty layer." msgstr "" @@ -29429,8 +29825,8 @@ msgid "Movements" msgstr "Hreyfingar" #: ../share/extensions/hpgl_decoder.py:44 -msgid "Pen #" -msgstr "Penni #" +msgid "Pen " +msgstr "" #. issue error if no hpgl data found #: ../share/extensions/hpgl_input.py:58 @@ -29507,6 +29903,8 @@ msgid "" "To assign an effect, please select an object.\n" "\n" msgstr "" +"Til að úthluta brellu, veldu einhvern hlut.\n" +"\n" #: ../share/extensions/jessyInk_autoTexts.py:54 msgid "" @@ -29591,12 +29989,16 @@ msgid "" "\n" "{0}Initial effect (order number {1}):" msgstr "" +"\n" +"{0}Upprunasjónbrella (röð númer {1}):" #: ../share/extensions/jessyInk_summary.py:170 msgid "" "\n" "{0}Effect {1!s} (order number {2}):" msgstr "" +"\n" +"{0}Sjónbrella {1!s} (röð númer {2}):" #: ../share/extensions/jessyInk_summary.py:174 msgid "{0}\tView will be set according to object \"{1}\"" @@ -29616,7 +30018,7 @@ msgstr " mun hverfa" #: ../share/extensions/jessyInk_summary.py:184 msgid " using effect \"{0}\"" -msgstr "" +msgstr " notar sjónbrellu \"{0}\"" #: ../share/extensions/jessyInk_summary.py:187 msgid " in {0!s} s" @@ -29741,16 +30143,16 @@ msgid "" msgstr "" #. issue error if no paths found -#: ../share/extensions/plotter.py:66 +#: ../share/extensions/plotter.py:67 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/plotter.py:143 +#: ../share/extensions/plotter.py:144 msgid "pySerial is not installed." msgstr "" -#: ../share/extensions/plotter.py:163 +#: ../share/extensions/plotter.py:164 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." @@ -29867,7 +30269,7 @@ msgstr "" #: ../share/extensions/svg_and_media_zip_output.py:128 #, python-format msgid "Could not locate file: %s" -msgstr "" +msgstr "Gat ekki staðsett skrá: %s" #: ../share/extensions/svgcalendar.py:266 #: ../share/extensions/svgcalendar.py:288 @@ -30059,7 +30461,7 @@ msgstr "Opna kynningaskiptiskrár vistaðar með Corel DRAW (UC)" #: ../share/extensions/color_HSL_adjust.inx.h:1 msgid "HSL Adjust" -msgstr "" +msgstr "Aðlaga HSL" #: ../share/extensions/color_HSL_adjust.inx.h:3 msgid "Hue (°)" @@ -30160,27 +30562,27 @@ msgstr "Grátóna" #: ../share/extensions/color_lesshue.inx.h:1 msgid "Less Hue" -msgstr "" +msgstr "Minni litblær" #: ../share/extensions/color_lesslight.inx.h:1 msgid "Less Light" -msgstr "" +msgstr "Minni ljósleiki" #: ../share/extensions/color_lesssaturation.inx.h:1 msgid "Less Saturation" -msgstr "" +msgstr "Minni litmettun" #: ../share/extensions/color_morehue.inx.h:1 msgid "More Hue" -msgstr "" +msgstr "Meiri litblær" #: ../share/extensions/color_morelight.inx.h:1 msgid "More Light" -msgstr "" +msgstr "Meiri ljósleiki" #: ../share/extensions/color_moresaturation.inx.h:1 msgid "More Saturation" -msgstr "" +msgstr "Meiri litmettun" #: ../share/extensions/color_negative.inx.h:1 msgid "Negative" @@ -30235,7 +30637,7 @@ msgstr "" #: ../share/extensions/convert2dashes.inx.h:1 msgid "Convert to Dashes" -msgstr "" +msgstr "Umbreyta í strik" #: ../share/extensions/dhw_input.inx.h:1 msgid "DHW file input" @@ -30268,11 +30670,11 @@ msgstr "" #: ../share/extensions/dia.inx.h:4 msgid "Dia Diagram (*.dia)" -msgstr "" +msgstr "Dia skýringamynd (*.dia)" #: ../share/extensions/dia.inx.h:5 msgid "A diagram created with the program Dia" -msgstr "" +msgstr "Skýringamynd sem búin er til með Dia-forritinu" #: ../share/extensions/dimension.inx.h:1 msgid "Dimensions" @@ -30709,7 +31111,7 @@ msgstr "" #: ../share/extensions/edge3d.inx.h:4 msgid "Only black and white:" -msgstr "Aðeins svarthvítt" +msgstr "Aðeins svarthvítt:" #: ../share/extensions/edge3d.inx.h:6 msgid "Blur stdDeviation:" @@ -30915,7 +31317,7 @@ msgstr "Bæta við stoðlínum" #: ../share/extensions/fractalize.inx.h:1 msgid "Fractalize" -msgstr "" +msgstr "Brotamyndgera" #: ../share/extensions/fractalize.inx.h:2 msgid "Subdivisions:" @@ -31421,15 +31823,15 @@ msgstr "" #: ../share/extensions/gcodetools_dxf_points.inx.h:1 msgid "DXF Points" -msgstr "" +msgstr "DXF punktar" #: ../share/extensions/gcodetools_dxf_points.inx.h:2 msgid "DXF points" -msgstr "" +msgstr "DXF punktar" #: ../share/extensions/gcodetools_dxf_points.inx.h:3 msgid "Convert selection:" -msgstr "" +msgstr "Umbreyta vali:" #: ../share/extensions/gcodetools_dxf_points.inx.h:4 msgid "" @@ -31453,7 +31855,7 @@ msgstr "" #: ../share/extensions/gcodetools_engraving.inx.h:1 msgid "Engraving" -msgstr "" +msgstr "Myndrista" #: ../share/extensions/gcodetools_engraving.inx.h:2 msgid "Smooth convex corners between this value and 180 degrees:" @@ -32112,7 +32514,7 @@ msgstr "Texti:" #: ../share/extensions/hershey.inx.h:4 msgid "Action: " -msgstr "Aðgerð:" +msgstr "Aðgerð: " #: ../share/extensions/hershey.inx.h:5 msgid "Font face: " @@ -32258,13 +32660,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:3 #: ../share/extensions/hpgl_output.inx.h:4 -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:25 msgid "Resolution X (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:4 #: ../share/extensions/hpgl_output.inx.h:5 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:26 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -32272,13 +32674,13 @@ msgstr "" #: ../share/extensions/hpgl_input.inx.h:5 #: ../share/extensions/hpgl_output.inx.h:6 -#: ../share/extensions/plotter.inx.h:25 +#: ../share/extensions/plotter.inx.h:27 msgid "Resolution Y (dpi):" msgstr "" #: ../share/extensions/hpgl_input.inx.h:6 #: ../share/extensions/hpgl_output.inx.h:7 -#: ../share/extensions/plotter.inx.h:26 +#: ../share/extensions/plotter.inx.h:28 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -32313,34 +32715,34 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:24 msgid "Plotter Settings " msgstr "Plotterstillingar " #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:27 +#: ../share/extensions/plotter.inx.h:29 msgid "Pen number:" msgstr "Penni númer:" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:28 +#: ../share/extensions/plotter.inx.h:30 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:31 msgid "Pen force (g):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:32 msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/plotter.inx.h:33 msgid "Pen speed (cm/s or mm/s):" msgstr "" @@ -32356,101 +32758,101 @@ msgid "Rotation (°, Clockwise):" msgstr "Snúningur (°, réttsælis):" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:36 msgid "Rotation of the drawing (Default: 0°)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:37 msgid "Mirror X axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:38 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/plotter.inx.h:39 msgid "Mirror Y axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:40 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/plotter.inx.h:41 msgid "Center zero point" msgstr "" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:42 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/plotter.inx.h:43 msgid "Plot Features " msgstr "" #: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/plotter.inx.h:44 msgid "Overcut (mm):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/plotter.inx.h:45 msgid "" "The distance in mm that will be cut over the starting point of the path to " "prevent open paths, set to 0.0 to omit command (Default: 1.00)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/plotter.inx.h:46 msgid "Tool offset (mm):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/plotter.inx.h:47 msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/plotter.inx.h:48 msgid "Use precut" msgstr "" #: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/plotter.inx.h:49 msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" msgstr "" #: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/plotter.inx.h:50 msgid "Curve flatness:" msgstr "" #: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/plotter.inx.h:51 msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" msgstr "" #: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/plotter.inx.h:52 msgid "Auto align" msgstr "Sjálfvirk jöfnun" #: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/plotter.inx.h:53 msgid "" "Check this to auto align the drawing to the zero point (Plus the tool offset " "if used). If unchecked you have to make sure that all parts of your drawing " @@ -32458,7 +32860,7 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:56 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." @@ -32555,15 +32957,15 @@ msgstr "Aðferð við brúun:" #: ../share/extensions/interp.inx.h:5 msgid "Duplicate endpaths" -msgstr "" +msgstr "Tvöfalda endaferla" #: ../share/extensions/interp.inx.h:6 msgid "Interpolate style" -msgstr "" +msgstr "Stíll brúunar" #: ../share/extensions/interp_att_g.inx.h:1 msgid "Interpolate Attribute in a group" -msgstr "" +msgstr "Skjóta inn eigindi í hóp" #: ../share/extensions/interp_att_g.inx.h:3 msgid "Attribute to Interpolate:" @@ -32591,11 +32993,11 @@ msgstr "Lokagildi:" #: ../share/extensions/interp_att_g.inx.h:13 msgid "Translate X" -msgstr "" +msgstr "Hliðra X" #: ../share/extensions/interp_att_g.inx.h:14 msgid "Translate Y" -msgstr "" +msgstr "Hliðra Y" #: ../share/extensions/interp_att_g.inx.h:15 #: ../share/extensions/markers_strokepaint.inx.h:9 @@ -32683,6 +33085,9 @@ msgid "" "JessyInk presentation. Please see code.google.com/p/jessyink for more " "details." msgstr "" +"Þessi viðbót gerir þér kleift að setja upp, uppfæra eða fjarlægja sjálfvirka " +"texta í JessyInk glærukynningu. Skoðaðu code.google.com/p/jessyink fyrir " +"nánari upplýsingar." #: ../share/extensions/jessyInk_autoTexts.inx.h:10 #: ../share/extensions/jessyInk_effects.inx.h:15 @@ -32696,7 +33101,7 @@ msgstr "" #: ../share/extensions/jessyInk_video.inx.h:4 #: ../share/extensions/jessyInk_view.inx.h:9 msgid "JessyInk" -msgstr "" +msgstr "JessyInk kynning" #: ../share/extensions/jessyInk_effects.inx.h:1 msgid "Effects" @@ -32710,7 +33115,7 @@ msgstr "Tímalengd í sekúndum:" #: ../share/extensions/jessyInk_effects.inx.h:6 msgid "Build-in effect" -msgstr "" +msgstr "Byggja-inn sjónbrella" #: ../share/extensions/jessyInk_effects.inx.h:7 msgid "None (default)" @@ -32719,20 +33124,20 @@ msgstr "Ekkert (sjálfgefið)" #: ../share/extensions/jessyInk_effects.inx.h:8 #: ../share/extensions/jessyInk_transitions.inx.h:8 msgid "Appear" -msgstr "Birtist" +msgstr "Birtast" #: ../share/extensions/jessyInk_effects.inx.h:9 msgid "Fade in" -msgstr "" +msgstr "Dofna inn" #: ../share/extensions/jessyInk_effects.inx.h:10 #: ../share/extensions/jessyInk_transitions.inx.h:10 msgid "Pop" -msgstr "" +msgstr "Spretta upp" #: ../share/extensions/jessyInk_effects.inx.h:11 msgid "Build-out effect" -msgstr "" +msgstr "Byggja-út sjónbrella" #: ../share/extensions/jessyInk_effects.inx.h:12 msgid "Fade out" @@ -32744,10 +33149,13 @@ msgid "" "JessyInk presentation. Please see code.google.com/p/jessyink for more " "details." msgstr "" +"Þessi viðbót gerir þér kleift að setja upp, uppfæra eða fjarlægja brellur " +"hluta í JessyInk glærukynningu. Skoðaðu code.google.com/p/jessyink fyrir " +"nánari upplýsingar." #: ../share/extensions/jessyInk_export.inx.h:1 msgid "JessyInk zipped pdf or png output" -msgstr "" +msgstr "ZIP-þjappað JessyInk PDF eða PNG úttak" #: ../share/extensions/jessyInk_export.inx.h:4 msgid "Resolution:" @@ -32767,20 +33175,25 @@ msgid "" "an export layer in your browser. Please see code.google.com/p/jessyink for " "more details." msgstr "" +"Þessi viðbót gerir þér kleift að flytja út JessyInk glærukynningar, eftir að " +"hafa búið til útflutningslag í vafranum þínum. Skoðaðu code.google.com/p/" +"jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_export.inx.h:9 msgid "JessyInk zipped pdf or png output (*.zip)" -msgstr "" +msgstr "ZIP-þjappað JessyInk PDF eða PNG úttak (*.zip)" #: ../share/extensions/jessyInk_export.inx.h:10 msgid "" "Creates a zip file containing pdfs or pngs of all slides of a JessyInk " "presentation." msgstr "" +"Býr til ZIP-skrá með öllum PDF eða PNG-skrám allra skyggna úr JessyInk " +"glærukynningu." #: ../share/extensions/jessyInk_install.inx.h:1 msgid "Install/update" -msgstr "" +msgstr "Setja inn/uppfærsla" #: ../share/extensions/jessyInk_install.inx.h:3 msgid "" @@ -32788,6 +33201,9 @@ msgid "" "to turn your SVG file into a presentation. Please see code.google.com/p/" "jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að setja upp eða uppfæra JessyInk skriftuna, " +"sem notuð er til þess að breyta SVG-skrám í glærukynningar. Skoðaðu code." +"google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_keyBindings.inx.h:1 msgid "Key bindings" @@ -32795,35 +33211,35 @@ msgstr "Lyklabindingar" #: ../share/extensions/jessyInk_keyBindings.inx.h:2 msgid "Slide mode" -msgstr "" +msgstr "Skyggnuhamur" #: ../share/extensions/jessyInk_keyBindings.inx.h:3 msgid "Back (with effects):" -msgstr "" +msgstr "Til baka (með brellum):" #: ../share/extensions/jessyInk_keyBindings.inx.h:4 msgid "Next (with effects):" -msgstr "" +msgstr "Næsta (með brellum):" #: ../share/extensions/jessyInk_keyBindings.inx.h:5 msgid "Back (without effects):" -msgstr "" +msgstr "Til baka (án brellna):" #: ../share/extensions/jessyInk_keyBindings.inx.h:6 msgid "Next (without effects):" -msgstr "" +msgstr "Næsta (án brellna):" #: ../share/extensions/jessyInk_keyBindings.inx.h:7 msgid "First slide:" -msgstr "" +msgstr "Fyrsta skyggna:" #: ../share/extensions/jessyInk_keyBindings.inx.h:8 msgid "Last slide:" -msgstr "" +msgstr "Seinasta skyggna:" #: ../share/extensions/jessyInk_keyBindings.inx.h:9 msgid "Switch to index mode:" -msgstr "" +msgstr "Skipta yfir í yfirlitsham:" #: ../share/extensions/jessyInk_keyBindings.inx.h:10 msgid "Switch to drawing mode:" @@ -32831,11 +33247,11 @@ msgstr "Skipta yfir í teikniham:" #: ../share/extensions/jessyInk_keyBindings.inx.h:11 msgid "Set duration:" -msgstr "" +msgstr "Setja tímalengd:" #: ../share/extensions/jessyInk_keyBindings.inx.h:12 msgid "Add slide:" -msgstr "" +msgstr "Bæta við skyggnu:" #: ../share/extensions/jessyInk_keyBindings.inx.h:13 msgid "Toggle progress bar:" @@ -32851,7 +33267,7 @@ msgstr "Flytja kynningu út:" #: ../share/extensions/jessyInk_keyBindings.inx.h:17 msgid "Switch to slide mode:" -msgstr "" +msgstr "Skipta yfir í skyggnuham:" #: ../share/extensions/jessyInk_keyBindings.inx.h:18 msgid "Set path width to default:" @@ -32883,7 +33299,7 @@ msgstr "Setja lit ferils sem bláan:" #: ../share/extensions/jessyInk_keyBindings.inx.h:25 msgid "Set path color to cyan:" -msgstr "Setja lit ferils sem blágrænan:" +msgstr "Setja lit ferils sem grænbláan:" #: ../share/extensions/jessyInk_keyBindings.inx.h:26 msgid "Set path color to green:" @@ -32919,23 +33335,23 @@ msgstr "Afturkalla síðasta línubút:" #: ../share/extensions/jessyInk_keyBindings.inx.h:34 msgid "Index mode" -msgstr "" +msgstr "Yfirlitshamur" #: ../share/extensions/jessyInk_keyBindings.inx.h:35 msgid "Select the slide to the left:" -msgstr "" +msgstr "Velja skyggnuna til vinstri:" #: ../share/extensions/jessyInk_keyBindings.inx.h:36 msgid "Select the slide to the right:" -msgstr "" +msgstr "Velja skyggnuna til hægri:" #: ../share/extensions/jessyInk_keyBindings.inx.h:37 msgid "Select the slide above:" -msgstr "" +msgstr "Velja skyggnuna fyrir ofan:" #: ../share/extensions/jessyInk_keyBindings.inx.h:38 msgid "Select the slide below:" -msgstr "" +msgstr "Velja skyggnuna fyrir neðan:" #: ../share/extensions/jessyInk_keyBindings.inx.h:39 msgid "Previous page:" @@ -32947,7 +33363,7 @@ msgstr "Næsta síða:" #: ../share/extensions/jessyInk_keyBindings.inx.h:41 msgid "Decrease number of columns:" -msgstr "" +msgstr "Minnka fjölda dálka:" #: ../share/extensions/jessyInk_keyBindings.inx.h:42 msgid "Increase number of columns:" @@ -32955,36 +33371,40 @@ msgstr "Auka fjölda dálka:" #: ../share/extensions/jessyInk_keyBindings.inx.h:43 msgid "Set number of columns to default:" -msgstr "" +msgstr "Setja fjölda dálka á sjálfgefið:" #: ../share/extensions/jessyInk_keyBindings.inx.h:45 msgid "" "This extension allows you customise the key bindings JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að sérsníða lyklabindingarnar sem JessyInk " +"notar. Skoðaðu code.google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_masterSlide.inx.h:1 msgid "Master slide" -msgstr "" +msgstr "Yfirskyggna" #: ../share/extensions/jessyInk_masterSlide.inx.h:3 #: ../share/extensions/jessyInk_transitions.inx.h:3 msgid "Name of layer:" -msgstr "" +msgstr "Heiti lags:" #: ../share/extensions/jessyInk_masterSlide.inx.h:4 msgid "If no layer name is supplied, the master slide is unset." -msgstr "" +msgstr "Ef ekkert heiti á lagi er tilgreint, verður yfirskyggna óstillt." #: ../share/extensions/jessyInk_masterSlide.inx.h:6 msgid "" "This extension allows you to change the master slide JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að breyta yfirskyggnunni sem JessyInk notar. " +"Skoðaðu code.google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_mouseHandler.inx.h:1 msgid "Mouse handler" -msgstr "" +msgstr "Músameðhöndlari" #: ../share/extensions/jessyInk_mouseHandler.inx.h:2 msgid "Mouse settings:" @@ -32992,17 +33412,19 @@ msgstr "Stillingar músar:" #: ../share/extensions/jessyInk_mouseHandler.inx.h:4 msgid "No-click" -msgstr "" +msgstr "Ekki-smella" #: ../share/extensions/jessyInk_mouseHandler.inx.h:5 msgid "Dragging/zoom" -msgstr "" +msgstr "Draga/Aðdráttur" #: ../share/extensions/jessyInk_mouseHandler.inx.h:7 msgid "" "This extension allows you customise the mouse handler JessyInk uses. Please " "see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að sérsníða músarmeðhöndlunina sem JessyInk " +"notar. Skoðaðu code.google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_summary.inx.h:1 msgid "Summary" @@ -33014,6 +33436,9 @@ msgid "" "effects and transitions contained in this SVG file. Please see code.google." "com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að skoða upplýsingar um JessyInk skriftuna, " +"brellurnar og millifærslur sem þessi SVG-skrá inniheldur. Skoðaðu code." +"google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_transitions.inx.h:1 msgid "Transitions" @@ -33021,7 +33446,7 @@ msgstr "Millifærslur" #: ../share/extensions/jessyInk_transitions.inx.h:6 msgid "Transition in effect" -msgstr "" +msgstr "Millifærslubrella inn" #: ../share/extensions/jessyInk_transitions.inx.h:9 msgid "Fade" @@ -33029,41 +33454,43 @@ msgstr "Deyfing" #: ../share/extensions/jessyInk_transitions.inx.h:11 msgid "Transition out effect" -msgstr "" +msgstr "Millifærslubrella út" #: ../share/extensions/jessyInk_transitions.inx.h:13 msgid "" "This extension allows you to change the transition JessyInk uses for the " "selected layer. Please see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að breyta millifærslunni sem JessyInk notar á " +"völdu lagi. Skoðaðu code.google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_uninstall.inx.h:1 msgid "Uninstall/remove" -msgstr "" +msgstr "Fjarlægja/Henda út" #: ../share/extensions/jessyInk_uninstall.inx.h:3 msgid "Remove script" -msgstr "" +msgstr "Fjarlægja skriftu" #: ../share/extensions/jessyInk_uninstall.inx.h:4 msgid "Remove effects" -msgstr "" +msgstr "Fjarlægja brellur" #: ../share/extensions/jessyInk_uninstall.inx.h:5 msgid "Remove master slide assignment" -msgstr "" +msgstr "Fjarlægja úthlutun yfirskyggnu" #: ../share/extensions/jessyInk_uninstall.inx.h:6 msgid "Remove transitions" -msgstr "" +msgstr "Fjarlægja millifærslur" #: ../share/extensions/jessyInk_uninstall.inx.h:7 msgid "Remove auto-texts" -msgstr "" +msgstr "Fjarlægja sjálfvirka texta" #: ../share/extensions/jessyInk_uninstall.inx.h:8 msgid "Remove views" -msgstr "" +msgstr "Fjarlægja sýnir" #: ../share/extensions/jessyInk_uninstall.inx.h:9 msgid "Please select the parts of JessyInk you want to uninstall/remove." @@ -33074,6 +33501,8 @@ msgid "" "This extension allows you to uninstall the JessyInk script. Please see code." "google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að fjarlægja JessyInk skriftuna. Skoðaðu code." +"google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_video.inx.h:1 msgid "Video" @@ -33085,6 +33514,9 @@ msgid "" "This element allows you to integrate a video into your JessyInk " "presentation. Please see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót setur myndskeiðseiningu inn í núverandi skyggnu (lag). Sú " +"eining gerir þér síðan kleift að setja myndskeið inn í JessyInk " +"glærukynningu. Skoðaðu code.google.com/p/jessyink fyrir nánari upplýsingar." #: ../share/extensions/jessyInk_view.inx.h:5 msgid "Remove view" @@ -33099,6 +33531,9 @@ msgid "" "This extension allows you to set, update and remove views for a JessyInk " "presentation. Please see code.google.com/p/jessyink for more details." msgstr "" +"Þessi viðbót gerir þér kleift að setja upp, uppfæra eða fjarlægja " +"fjartengdar sýnir fyrir JessyInk glærukynningu. Skoðaðu code.google.com/p/" +"jessyink fyrir nánari upplýsingar." #: ../share/extensions/layers2svgfont.inx.h:1 msgid "3 - Convert Glyph Layers to SVG Font" @@ -33229,7 +33664,7 @@ msgstr "" #: ../share/extensions/lindenmayer.inx.h:2 msgid "Axiom and rules" -msgstr "" +msgstr "Forsendur og reglur" #: ../share/extensions/lindenmayer.inx.h:3 msgid "Axiom:" @@ -33524,20 +33959,20 @@ msgstr "" #: ../share/extensions/pathalongpath.inx.h:1 msgid "Pattern along Path" -msgstr "" +msgstr "Mynstur eftir ferli" #: ../share/extensions/pathalongpath.inx.h:3 msgid "Copies of the pattern:" -msgstr "" +msgstr "Afrit af mynstrinu:" #: ../share/extensions/pathalongpath.inx.h:4 msgid "Deformation type:" -msgstr "" +msgstr "Tegund aflögunar:" #: ../share/extensions/pathalongpath.inx.h:5 #: ../share/extensions/pathscatter.inx.h:5 msgid "Space between copies:" -msgstr "" +msgstr "Bil á milli eintaka:" #: ../share/extensions/pathalongpath.inx.h:6 #: ../share/extensions/pathscatter.inx.h:6 @@ -33623,7 +34058,7 @@ msgstr "" #: ../share/extensions/perfectboundcover.inx.h:1 msgid "Perfect-Bound Cover Template" -msgstr "" +msgstr "Sniðmát kápu fyrir límdan kjöl (Perfect-Bound)" #: ../share/extensions/perfectboundcover.inx.h:2 msgid "Book Properties" @@ -33692,16 +34127,20 @@ msgstr "Blæðing (tommur):" #: ../share/extensions/perfectboundcover.inx.h:18 msgid "Note: Bond Weight # calculations are a best-guess estimate." msgstr "" +"Athugaðu: útreikningar á þykkt bindis eru aldrei nema nálgun við raunverulega " +"þykkt." #: ../share/extensions/pixelsnap.inx.h:1 msgid "PixelSnap" -msgstr "" +msgstr "Grípa í mynddíla" #: ../share/extensions/pixelsnap.inx.h:2 msgid "" "Snap all paths in selection to pixels. Snaps borders to half-points and " "fills to full points." msgstr "" +"Lætur alla valda ferla grípa í mynddíla. Jaðrar grípa í hálfa díla og fylling " +"að heilum dílum." #: ../share/extensions/plotter.inx.h:1 msgid "Plot" @@ -33753,66 +34192,76 @@ msgid "The command language to use (Default: HPGL)" msgstr "Skipanamálið sem á að nota (sjálfgefið: HPGL)" #: ../share/extensions/plotter.inx.h:12 +msgid "Initialization commands:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:13 +msgid "" +"Commands that will be sent to the plotter before the main data stream, only " +"use this if you know what you are doing! (Default: Empty)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 msgid "Software (XON/XOFF)" msgstr "Hugbúnaður (XON/XOFF)" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:15 msgid "Hardware (RTS/CTS)" msgstr "Vélbúnaður (RTS/CTS)" -#: ../share/extensions/plotter.inx.h:14 +#: ../share/extensions/plotter.inx.h:16 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "Vélbúnaður (DSR/DTR + RTS/CTS)" -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:17 msgctxt "Flow control" msgid "None" msgstr "Ekkert" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:18 msgid "HPGL" msgstr "HPGL" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:19 msgid "DMPL" msgstr "DMPL" -#: ../share/extensions/plotter.inx.h:18 -msgid "KNK Zing (HPGL variant)" -msgstr "KNK Zing (HPGL tilbrigði)" +#: ../share/extensions/plotter.inx.h:20 +msgid "KNK Plotter (HPGL variant)" +msgstr "" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:21 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" msgstr "" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:22 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." msgstr "" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:23 msgid "Parallel (LPT) connections are not supported." msgstr "" -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:34 msgid "" "The speed the pen will move with in centimeters or millimeters per second " "(depending on your plotter model), set to 0 to omit command. Most plotters " "ignore this command. (Default: 0)" msgstr "" -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/plotter.inx.h:35 msgid "Rotation (°, clockwise):" msgstr "Snúningur (°, réttsælis):" -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/plotter.inx.h:54 msgid "Show debug information" msgstr "Birta villuleitarupplýsingar" -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/plotter.inx.h:55 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" @@ -33837,7 +34286,7 @@ msgstr "AutoCAD Plot frálag" #: ../share/extensions/plt_output.inx.h:3 msgid "Save a file for plotters" -msgstr "" +msgstr "Vista skrá fyrir plottara" #: ../share/extensions/polyhedron_3d.inx.h:1 msgid "3D Polyhedron" @@ -33845,7 +34294,7 @@ msgstr "3D margflötungur" #: ../share/extensions/polyhedron_3d.inx.h:2 msgid "Model file" -msgstr "" +msgstr "Módelskrá" #: ../share/extensions/polyhedron_3d.inx.h:3 msgid "Object:" @@ -33861,7 +34310,7 @@ msgstr "Tegund hlutar:" #: ../share/extensions/polyhedron_3d.inx.h:6 msgid "Clockwise wound object" -msgstr "" +msgstr "Réttsælis undinn hlutur" #: ../share/extensions/polyhedron_3d.inx.h:7 msgid "Cube" @@ -33921,11 +34370,11 @@ msgstr "" #: ../share/extensions/polyhedron_3d.inx.h:21 msgid "Great Dodecahedron" -msgstr "" +msgstr "Stóri tólfflötungur" #: ../share/extensions/polyhedron_3d.inx.h:22 msgid "Great Stellated Dodecahedron" -msgstr "" +msgstr "Stóri stjörnulaga tólfflötungur" #: ../share/extensions/polyhedron_3d.inx.h:23 msgid "Load from file" @@ -33933,11 +34382,11 @@ msgstr "Hlaða inn úr skrá" #: ../share/extensions/polyhedron_3d.inx.h:24 msgid "Face-Specified" -msgstr "" +msgstr "Tilgreint-með-hliðfleti" #: ../share/extensions/polyhedron_3d.inx.h:25 msgid "Edge-Specified" -msgstr "" +msgstr "Tilgreint-með-brún" #: ../share/extensions/polyhedron_3d.inx.h:27 msgid "Rotate around:" @@ -34041,15 +34490,15 @@ msgstr "Lágmark" #: ../share/extensions/polyhedron_3d.inx.h:55 msgid "Mean" -msgstr "Meðaltal" +msgstr "Miðgildi" #: ../share/extensions/previous_glyph_layer.inx.h:1 msgid "View Previous Glyph" -msgstr "" +msgstr "Skoða fyrra staftákn" #: ../share/extensions/print_win32_vector.inx.h:1 msgid "Win32 Vector Print" -msgstr "" +msgstr "Win32 vigurprentun" #: ../share/extensions/printing_marks.inx.h:1 msgid "Printing Marks" @@ -34105,11 +34554,11 @@ msgstr "Flökta hnútum" #: ../share/extensions/radiusrand.inx.h:3 msgid "Maximum displacement in X (px):" -msgstr "" +msgstr "Hámark tilfærslu í X (px):" #: ../share/extensions/radiusrand.inx.h:4 msgid "Maximum displacement in Y (px):" -msgstr "" +msgstr "Hámark tilfærslu í Y (px):" #: ../share/extensions/radiusrand.inx.h:7 msgid "Use normal distribution" @@ -34245,15 +34694,15 @@ msgstr "" #: ../share/extensions/replace_font.inx.h:1 msgid "Replace font" -msgstr "" +msgstr "Skipta út letri" #: ../share/extensions/replace_font.inx.h:2 msgid "Find and Replace font" -msgstr "" +msgstr "Finna og skipta út letri" #: ../share/extensions/replace_font.inx.h:3 msgid "Find font: " -msgstr "" +msgstr "Finna letur: " #: ../share/extensions/replace_font.inx.h:4 msgid "Replace with: " @@ -34261,28 +34710,29 @@ msgstr "Skipta út með: " #: ../share/extensions/replace_font.inx.h:5 msgid "Replace all fonts with: " -msgstr "" +msgstr "Skipta öllu letri með: " #: ../share/extensions/replace_font.inx.h:6 msgid "List all fonts" -msgstr "" +msgstr "Telja upp allt letur" #: ../share/extensions/replace_font.inx.h:7 msgid "" "Choose this tab if you would like to see a list of the fonts used/found." msgstr "" +"Lokaðu þessum flipa ef þú vilt sjá lista yfir allt letur sem fannst/er notað." #: ../share/extensions/replace_font.inx.h:8 msgid "Work on:" -msgstr "" +msgstr "Vinna með:" #: ../share/extensions/replace_font.inx.h:9 msgid "Entire drawing" -msgstr "" +msgstr "Alla teikninguna" #: ../share/extensions/replace_font.inx.h:10 msgid "Selected objects only" -msgstr "" +msgstr "Aðeins valda hluti" #: ../share/extensions/restack.inx.h:1 msgid "Restack" @@ -34310,11 +34760,11 @@ msgstr "Ofan og niður (270)" #: ../share/extensions/restack.inx.h:7 msgid "Radial Outward" -msgstr "" +msgstr "Út frá miðju" #: ../share/extensions/restack.inx.h:8 msgid "Radial Inward" -msgstr "" +msgstr "Inn að miðju" #: ../share/extensions/restack.inx.h:9 msgid "Arbitrary Angle" @@ -34382,39 +34832,39 @@ msgstr "Bestað SVG frálag" #: ../share/extensions/scour.inx.h:3 msgid "Shorten color values" -msgstr "" +msgstr "Stytta litagildi" #: ../share/extensions/scour.inx.h:4 msgid "Convert CSS attributes to XML attributes" -msgstr "" +msgstr "Umbreyta CSS eigindum í XML eigindi" #: ../share/extensions/scour.inx.h:5 msgid "Group collapsing" -msgstr "" +msgstr "Innfelling hópa" #: ../share/extensions/scour.inx.h:6 msgid "Create groups for similar attributes" -msgstr "" +msgstr "Búa til hópa fyrir svipuð eigindi" #: ../share/extensions/scour.inx.h:7 msgid "Embed rasters" -msgstr "" +msgstr "Ívefja rasta" #: ../share/extensions/scour.inx.h:8 msgid "Keep editor data" -msgstr "" +msgstr "Halda gögnum ritils" #: ../share/extensions/scour.inx.h:9 msgid "Remove metadata" -msgstr "" +msgstr "Fjarlægja lýsigögn" #: ../share/extensions/scour.inx.h:10 msgid "Remove comments" -msgstr "" +msgstr "Fjarlægja athugasemdir" #: ../share/extensions/scour.inx.h:11 msgid "Work around renderer bugs" -msgstr "" +msgstr "Fara hjáleiðir framhjá myndgerðarvillum" #: ../share/extensions/scour.inx.h:12 msgid "Enable viewboxing" @@ -34422,15 +34872,15 @@ msgstr "" #: ../share/extensions/scour.inx.h:13 msgid "Remove the xml declaration" -msgstr "" +msgstr "Fjarlægja XML-skilgreiningu" #: ../share/extensions/scour.inx.h:14 msgid "Number of significant digits for coords:" -msgstr "" +msgstr "Fjöldi marktækra tölustafa í hnitum:" #: ../share/extensions/scour.inx.h:15 msgid "XML indentation (pretty-printing):" -msgstr "" +msgstr "Inndráttur XML (áferðarfalleg prentun):" #: ../share/extensions/scour.inx.h:16 msgid "Space" @@ -34455,7 +34905,7 @@ msgstr "" #: ../share/extensions/scour.inx.h:21 msgid "Shorten IDs" -msgstr "" +msgstr "Stytta auðkenni" #: ../share/extensions/scour.inx.h:22 msgid "Preserve manually created ID names not ending with digits" @@ -34507,7 +34957,7 @@ msgstr "" #: ../share/extensions/scour.inx.h:40 msgid "Help (Ids)" -msgstr "" +msgstr "Hjálp (Ids)" #: ../share/extensions/scour.inx.h:41 msgid "" @@ -34538,76 +34988,70 @@ msgstr "SVG vigurteikningar (Scalable Vector Graphics)" #: ../share/extensions/seamless_pattern.inx.h:1 msgid "Seamless Pattern" -msgstr "" +msgstr "Saumlaust mynstur" #: ../share/extensions/seamless_pattern.inx.h:2 +#: ../share/extensions/seamless_pattern_procedural.inx.h:2 msgid "Custom Width (px):" -msgstr "" +msgstr "Sérsniðin breidd (px):" #: ../share/extensions/seamless_pattern.inx.h:3 +#: ../share/extensions/seamless_pattern_procedural.inx.h:3 msgid "Custom Height (px):" -msgstr "" +msgstr "Sérsniðin hæð (px):" #: ../share/extensions/seamless_pattern.inx.h:4 msgid "This extension overwrite current document" -msgstr "" +msgstr "Þessi viðbót skrifar yfir núverandi skjal" #: ../share/extensions/seamless_pattern_procedural.inx.h:1 msgid "Seamless Pattern Procedural" -msgstr "" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:2 -msgid "Custom Width (px.):" -msgstr "" - -#: ../share/extensions/seamless_pattern_procedural.inx.h:3 -msgid "Custom Height (px.):" -msgstr "" +msgstr "Aðferð fyrir saumlaust mynstur" #: ../share/extensions/setup_typography_canvas.inx.h:1 msgid "1 - Setup Typography Canvas" -msgstr "" +msgstr "1 - Setja upp myndflöt fyrir stafaframsetningu" #: ../share/extensions/setup_typography_canvas.inx.h:2 msgid "Em-size:" -msgstr "" +msgstr "Em-stærð:" #: ../share/extensions/setup_typography_canvas.inx.h:3 msgid "Ascender:" -msgstr "" +msgstr "Hálína:" #: ../share/extensions/setup_typography_canvas.inx.h:4 msgid "Caps Height:" -msgstr "" +msgstr "Hástafalína:" #: ../share/extensions/setup_typography_canvas.inx.h:5 msgid "X-Height:" -msgstr "" +msgstr "X-stafhæð:" #: ../share/extensions/setup_typography_canvas.inx.h:6 msgid "Descender:" -msgstr "" +msgstr "Láglína:" #: ../share/extensions/sk1_input.inx.h:1 msgid "sK1 vector graphics files input" -msgstr "" +msgstr "Ílag frá sK1 vigurteikningaskrám" #: ../share/extensions/sk1_input.inx.h:2 #: ../share/extensions/sk1_output.inx.h:2 msgid "sK1 vector graphics files (*.sk1)" -msgstr "" +msgstr "sK1 vigurteikningaskrár (*.sk1)" #: ../share/extensions/sk1_input.inx.h:3 msgid "Open files saved in sK1 vector graphics editor" -msgstr "" +msgstr "Opna skrár sem vistaðar hafa verið í sK1 vigurteikniforritinu" #: ../share/extensions/sk1_output.inx.h:1 msgid "sK1 vector graphics files output" -msgstr "" +msgstr "Frálag frá sK1 vigurteikningaskrám" #: ../share/extensions/sk1_output.inx.h:3 msgid "File format for use in sK1 vector graphics editor" -msgstr "" +msgstr "Skráasnið til notkunar í sK1 vigurteikniforritinu" #: ../share/extensions/sk_input.inx.h:1 msgid "Sketch Input" @@ -34619,11 +35063,11 @@ msgstr "Sketch skýringamynd (*.sk)" #: ../share/extensions/sk_input.inx.h:3 msgid "A diagram created with the program Sketch" -msgstr "" +msgstr "Skýringamynd sem búin er til með Sketch-forritinu" #: ../share/extensions/spirograph.inx.h:1 msgid "Spirograph" -msgstr "" +msgstr "Spirograph hjólferlar" #: ../share/extensions/spirograph.inx.h:2 msgid "R - Ring Radius (px):" @@ -34682,7 +35126,7 @@ msgstr "Stafir" #: ../share/extensions/split.inx.h:9 msgid "This effect splits texts into different lines, words or letters." -msgstr "" +msgstr "Þessi brella skiptir texta upp í mismunandi línur, orð eða stafi." #: ../share/extensions/straightseg.inx.h:1 msgid "Straighten Segments" @@ -34698,7 +35142,7 @@ msgstr "Hegðun:" #: ../share/extensions/summersnight.inx.h:1 msgid "Envelope" -msgstr "Umslag" +msgstr "Umgjörð" #: ../share/extensions/svg2fxg.inx.h:1 msgid "FXG Output" @@ -34734,7 +35178,7 @@ msgstr "Þjappað Inkscape SVG með myndskrám" #: ../share/extensions/svg_and_media_zip_output.inx.h:2 msgid "Image zip directory:" -msgstr "Þjöppunarmappa fyrir myndir" +msgstr "Þjöppunarmappa fyrir myndir:" #: ../share/extensions/svg_and_media_zip_output.inx.h:3 msgid "Add font list" @@ -34894,14 +35338,16 @@ msgid "" "Select your system encoding. More information at http://docs.python.org/" "library/codecs.html#standard-encodings." msgstr "" +"Veldu stafatöflu kerfisins. Meiri upplýsingar fást á http://docs.python.org/" +"library/codecs.html#standard-encodings." #: ../share/extensions/svgfont2layers.inx.h:1 msgid "Convert SVG Font to Glyph Layers" -msgstr "" +msgstr "Umbreyta SVG letri í staftáknalög (glyph layers)" #: ../share/extensions/svgfont2layers.inx.h:2 msgid "Load only the first 30 glyphs (Recommended)" -msgstr "" +msgstr "Hlaða aðeins inn 30 fyrstu staftáknunum (mælt með þessu)" #: ../share/extensions/synfig_output.inx.h:1 msgid "Synfig Output" @@ -34909,25 +35355,27 @@ msgstr "Synfig frálag" #: ../share/extensions/synfig_output.inx.h:2 msgid "Synfig Animation (*.sif)" -msgstr "" +msgstr "Synfig teiknimynd (*.sif)" #: ../share/extensions/synfig_output.inx.h:3 msgid "Synfig Animation written using the sif-file exporter extension" -msgstr "" +msgstr "Synfig teiknimynd skrifuð með sif-skráaútflutningsviðbótinni" #: ../share/extensions/tar_layers.inx.h:1 msgid "Collection of SVG files One per root layer" -msgstr "" +msgstr "Safn SVG-skráa, ein á hvert grunnlag (root layer)" #: ../share/extensions/tar_layers.inx.h:2 msgid "Layers as Separate SVG (*.tar)" -msgstr "" +msgstr "Lög sem aðskilin SVG (*.tar)" #: ../share/extensions/tar_layers.inx.h:3 msgid "" "Each layer split into it's own svg file and collected as a tape archive (tar " "file)" msgstr "" +"Hverju lagi skipt í sína eigin SVG-skrá og öllu pakkað saman í eina tar-" +"safnskrá" #: ../share/extensions/text_braille.inx.h:1 msgid "Convert to Braille" @@ -35060,15 +35508,15 @@ msgstr "Frá hlið c og hornum a, b" #: ../share/extensions/voronoi2svg.inx.h:1 msgid "Voronoi Diagram" -msgstr "" +msgstr "Voronoi skýringamynd" #: ../share/extensions/voronoi2svg.inx.h:3 msgid "Type of diagram:" -msgstr "" +msgstr "Tegund skýringamyndar:" #: ../share/extensions/voronoi2svg.inx.h:4 msgid "Bounding box of the diagram:" -msgstr "" +msgstr "Umgjörð skýringamyndarinnar:" #: ../share/extensions/voronoi2svg.inx.h:5 msgid "Show the bounding box" @@ -35076,7 +35524,7 @@ msgstr "Sýna umgjörð" #: ../share/extensions/voronoi2svg.inx.h:6 msgid "Delaunay Triangulation" -msgstr "" +msgstr "Delaunay þríhyrningamæling" #: ../share/extensions/voronoi2svg.inx.h:7 msgid "Voronoi and Delaunay" @@ -35084,11 +35532,11 @@ msgstr "Voronoi og Delaunay" #: ../share/extensions/voronoi2svg.inx.h:8 msgid "Options for Voronoi diagram" -msgstr "" +msgstr "Valkostir fyrir Voronoi skýringamynd" #: ../share/extensions/voronoi2svg.inx.h:10 msgid "Automatic from selected objects" -msgstr "" +msgstr "Sjálfvirkt út frá völdum hlutum" #: ../share/extensions/voronoi2svg.inx.h:12 msgid "" @@ -35102,15 +35550,15 @@ msgstr "Setja eigindi" #: ../share/extensions/web-set-att.inx.h:3 msgid "Attribute to set:" -msgstr "" +msgstr "Eigindi sem á að setja:" #: ../share/extensions/web-set-att.inx.h:4 msgid "When should the set be done:" -msgstr "" +msgstr "Hvenær á að setja þau:" #: ../share/extensions/web-set-att.inx.h:5 msgid "Value to set:" -msgstr "" +msgstr "Gildi sem á að setja:" #: ../share/extensions/web-set-att.inx.h:6 #: ../share/extensions/web-transmit-att.inx.h:5 @@ -35119,7 +35567,7 @@ msgstr "" #: ../share/extensions/web-set-att.inx.h:7 msgid "Source and destination of setting:" -msgstr "" +msgstr "Uppruni og áfangastaður fyrir stillinguna:" #: ../share/extensions/web-set-att.inx.h:8 #: ../share/extensions/web-transmit-att.inx.h:7 @@ -35227,27 +35675,27 @@ msgstr "Vefur" #: ../share/extensions/web-transmit-att.inx.h:1 msgid "Transmit Attributes" -msgstr "" +msgstr "Miðla eigindum" #: ../share/extensions/web-transmit-att.inx.h:3 msgid "Attribute to transmit:" -msgstr "" +msgstr "Eigindi sem á að miðla:" #: ../share/extensions/web-transmit-att.inx.h:4 msgid "When to transmit:" -msgstr "" +msgstr "Hvenær á að miðla:" #: ../share/extensions/web-transmit-att.inx.h:6 msgid "Source and destination of transmitting:" -msgstr "" +msgstr "Uppruni og áfangastaður miðlunar:" #: ../share/extensions/web-transmit-att.inx.h:21 msgid "All selected ones transmit to the last one" -msgstr "" +msgstr "Allt valið miðlar til þess síðasta" #: ../share/extensions/web-transmit-att.inx.h:22 msgid "The first selected transmits to all others" -msgstr "" +msgstr "Sá fyrsti miðlar til allra hinna" #: ../share/extensions/web-transmit-att.inx.h:25 msgid "" @@ -35263,17 +35711,17 @@ msgstr "" #: ../share/extensions/webslicer_create_group.inx.h:1 msgid "Set a layout group" -msgstr "" +msgstr "Stilltu framsetningarhóp" #: ../share/extensions/webslicer_create_group.inx.h:3 #: ../share/extensions/webslicer_create_rect.inx.h:18 msgid "HTML id attribute:" -msgstr "" +msgstr "HTML auðkenniseigindi:" #: ../share/extensions/webslicer_create_group.inx.h:4 #: ../share/extensions/webslicer_create_rect.inx.h:19 msgid "HTML class attribute:" -msgstr "" +msgstr "HTML klassaeigindi:" #: ../share/extensions/webslicer_create_group.inx.h:5 msgid "Width unit:" @@ -35294,25 +35742,28 @@ msgstr "Mynddíll (fast)" #: ../share/extensions/webslicer_create_group.inx.h:9 msgid "Percent (relative to parent size)" -msgstr "" +msgstr "Prósent (miðað við stærð forvera)" #: ../share/extensions/webslicer_create_group.inx.h:10 msgid "Undefined (relative to non-floating content size)" -msgstr "" +msgstr "Óskilgreint (miðað við stærð ekki-fljótandi innihalds)" #: ../share/extensions/webslicer_create_group.inx.h:12 msgid "" "Layout Group is only about to help a better code generation (if you need " "it). To use this, you must to select some \"Slicer rectangles\" first." msgstr "" +"Framsetningarhópur er aðeins til aðstoðar við að útbúa betri kóða (ef þess " +"þarf). Til að nota slíkt þarftu að velja nokkra \"sneiðingarétthyrninga\" " +"fyrst." #: ../share/extensions/webslicer_create_group.inx.h:14 msgid "Slicer" -msgstr "" +msgstr "Sneiðari" #: ../share/extensions/webslicer_create_rect.inx.h:1 msgid "Create a slicer rectangle" -msgstr "" +msgstr "Búa til rétthyrning til sneiðinga" #: ../share/extensions/webslicer_create_rect.inx.h:4 msgid "DPI:" @@ -35325,11 +35776,11 @@ msgstr "Þvinga stærðir:" #. i18n. Description duplicated in a fake value attribute in order to make it translatable #: ../share/extensions/webslicer_create_rect.inx.h:7 msgid "Force Dimension must be set as x" -msgstr "" +msgstr "Þvinga stærðir verður að vera stillt sem x" #: ../share/extensions/webslicer_create_rect.inx.h:8 msgid "If set, this will replace DPI." -msgstr "" +msgstr "Ef stillt, mun þetta koma í stað PÁT." #: ../share/extensions/webslicer_create_rect.inx.h:10 msgid "JPG specific options" @@ -35344,6 +35795,8 @@ msgid "" "0 is the lowest image quality and highest compression, and 100 is the best " "quality but least effective compression" msgstr "" +"0 eru minnstu myndgæði og mesta þjöppun, og 100 eru mestu myndgæði en " +"minnsta virka þjöppun" #: ../share/extensions/webslicer_create_rect.inx.h:13 msgid "GIF specific options" @@ -35363,43 +35816,43 @@ msgstr "Valkostir fyrir HTML-útflutning" #: ../share/extensions/webslicer_create_rect.inx.h:21 msgid "Layout disposition:" -msgstr "" +msgstr "Framsetning:" #: ../share/extensions/webslicer_create_rect.inx.h:22 msgid "Positioned html block element with the image as Background" -msgstr "" +msgstr "Staðsett HTML blokkareining með myndina sem bakgrunn" #: ../share/extensions/webslicer_create_rect.inx.h:23 msgid "Tiled Background (on parent group)" -msgstr "" +msgstr "Flísalagður bakgrunnur (á yfirhóp)" #: ../share/extensions/webslicer_create_rect.inx.h:24 msgid "Background — repeat horizontally (on parent group)" -msgstr "" +msgstr "Bakgrunnur — endurtaka lárétt (á yfirhóp)" #: ../share/extensions/webslicer_create_rect.inx.h:25 msgid "Background — repeat vertically (on parent group)" -msgstr "" +msgstr "Bakgrunnur — endurtaka lóðrétt (á yfirhóp)" #: ../share/extensions/webslicer_create_rect.inx.h:26 msgid "Background — no repeat (on parent group)" -msgstr "" +msgstr "Bakgrunnur — engin endurtekning (á yfirhóp)" #: ../share/extensions/webslicer_create_rect.inx.h:27 msgid "Positioned Image" -msgstr "" +msgstr "Staðsett mynd" #: ../share/extensions/webslicer_create_rect.inx.h:28 msgid "Non Positioned Image" -msgstr "" +msgstr "Óstaðsett mynd" #: ../share/extensions/webslicer_create_rect.inx.h:29 msgid "Left Floated Image" -msgstr "" +msgstr "Vinstri fljótandi mynd" #: ../share/extensions/webslicer_create_rect.inx.h:30 msgid "Right Floated Image" -msgstr "" +msgstr "Hægri fljótandi mynd" #: ../share/extensions/webslicer_create_rect.inx.h:31 msgid "Position anchor:" @@ -35443,11 +35896,11 @@ msgstr "Neðst til hægri" #: ../share/extensions/webslicer_export.inx.h:1 msgid "Export layout pieces and HTML+CSS code" -msgstr "" +msgstr "Flytja út uppsett stykki og HTML+CSS kóða" #: ../share/extensions/webslicer_export.inx.h:3 msgid "Directory path to export:" -msgstr "" +msgstr "Slóð möppu til að flytja út í:" #: ../share/extensions/webslicer_export.inx.h:4 msgid "Create directory, if it does not exists" @@ -35462,6 +35915,8 @@ msgid "" "All sliced images, and optionally - code, will be generated as you had " "configured and saved to one directory." msgstr "" +"Allar myndir sneiddar, og valkvætt - kóði, verður útbúið eins og þú stilltir " +"þetta og vistað í eina möppu." #: ../share/extensions/whirl.inx.h:1 msgid "Whirl" @@ -35481,11 +35936,11 @@ msgstr "Víravirkishnöttur" #: ../share/extensions/wireframe_sphere.inx.h:2 msgid "Lines of latitude:" -msgstr "" +msgstr "Línur á breiddargráðum:" #: ../share/extensions/wireframe_sphere.inx.h:3 msgid "Lines of longitude:" -msgstr "" +msgstr "Línur á lengdargráðum:" #: ../share/extensions/wireframe_sphere.inx.h:4 msgid "Tilt (deg):" @@ -35493,7 +35948,7 @@ msgstr "Halli (gráður):" #: ../share/extensions/wireframe_sphere.inx.h:7 msgid "Hide lines behind the sphere" -msgstr "" +msgstr "Fela línur á bak við hnöttinn" #: ../share/extensions/wmf_input.inx.h:1 #: ../share/extensions/wmf_output.inx.h:1 -- cgit v1.2.3 From 4734a666fc4fa6eb3bacb8d2243a2cfb603a08d8 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 2 May 2015 16:23:11 +0200 Subject: cmake: add support for librevenge-based input formats (WPG, Visio, CDR) (bzr r14093) --- CMakeLists.txt | 4 +- CMakeScripts/DefineDependsandFlags.cmake | 36 ++++++++++++++++- CMakeScripts/Modules/FindLibCDR.cmake | 56 ++++++++++++++++++++++++++ CMakeScripts/Modules/FindLibRevenge.cmake | 41 +++++++++++++++++++ CMakeScripts/Modules/FindLibVisio.cmake | 56 ++++++++++++++++++++++++++ CMakeScripts/Modules/FindLibWPG.cmake | 65 ++++++++++++++++++------------- config.h.cmake | 21 ++++++++++ 7 files changed, 250 insertions(+), 29 deletions(-) create mode 100644 CMakeScripts/Modules/FindLibCDR.cmake create mode 100644 CMakeScripts/Modules/FindLibRevenge.cmake create mode 100644 CMakeScripts/Modules/FindLibVisio.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b3ba36b4..7f1726b2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,9 +71,11 @@ option(WITH_GNOME_VFS "Compile with support for Gnome VFS" ON) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling option(WITH_GTKSPELL "Compile with support for GTK spelling widget" ON) -option(WITH_LIBWPG "Compile with support of libpoppler-cairo for WordPerfect Graphics" ON) option(ENABLE_POPPLER "Compile with support of libpoppler" ON) option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON) +option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON) +option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON) +option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON) include(CMakeScripts/ConfigPaths.cmake) # Installation Paths include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 27802ad92..e96609d34 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -149,8 +149,9 @@ add_definitions(${POPPLER_DEFINITIONS}) if(WITH_LIBWPG) find_package(LibWPG) if(LIBWPG_FOUND) - set(WITH_LIBWPG-0.1 ${LIBWPG-0.1_FOUND}) - set(WITH_LIBWPG-0.2 ${LIBWPG-0.2_FOUND}) + set(WITH_LIBWPG01 ${LIBWPG-0.1_FOUND}) + set(WITH_LIBWPG02 ${LIBWPG-0.2_FOUND}) + set(WITH_LIBWPG03 ${LIBWPG-0.3_FOUND}) list(APPEND INKSCAPE_INCS_SYS ${LIBWPG_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${LIBWPG_LIBRARIES}) add_definitions(${LIBWPG_DEFINITIONS}) @@ -159,6 +160,32 @@ if(WITH_LIBWPG) endif() endif() +if(WITH_LIBVISIO) + find_package(LibVisio) + if(LIBVISIO_FOUND) + set(WITH_LIBVISIO00 ${LIBVISIO-0.0_FOUND}) + set(WITH_LIBVISIO01 ${LIBVISIO-0.1_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBVISIO_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBVISIO_LIBRARIES}) + add_definitions(${LIBVISIO_DEFINITIONS}) + else() + set(WITH_LIBVISIO OFF) + endif() +endif() + +if(WITH_LIBCDR) + find_package(LibCDR) + if(LIBCDR_FOUND) + set(WITH_LIBCDR00 ${LIBVISIO-0.0_FOUND}) + set(WITH_LIBCDR01 ${LIBVISIO-0.1_FOUND}) + list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES}) + add_definitions(${LIBCDR_DEFINITIONS}) + else() + set(WITH_LIBCDR OFF) + endif() +endif() + FIND_PACKAGE(JPEG REQUIRED) #IF(JPEG_FOUND) #INCLUDE_DIRECTORIES(${JPEG_INCLUDE_DIR}) @@ -301,6 +328,11 @@ if(ImageMagick_FOUND) list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' + # TODO: Cmake's ImageMagick module misses required defines for newer + # versions of ImageMagick. See also: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 + #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) + #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) diff --git a/CMakeScripts/Modules/FindLibCDR.cmake b/CMakeScripts/Modules/FindLibCDR.cmake new file mode 100644 index 000000000..57a04807e --- /dev/null +++ b/CMakeScripts/Modules/FindLibCDR.cmake @@ -0,0 +1,56 @@ +# - Try to find LibCDR +# Once done this will define +# +# LIBCDR_FOUND - system has LibCDR +# LIBCDR_INCLUDE_DIRS - the LibCDR include directory +# LIBCDR_LIBRARIES - Link these to use LibCDR +# LIBCDR_DEFINITIONS - Compiler switches required for using LibCDR +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + # in cache already + set(LIBCDR_FOUND TRUE) +else (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBCDR-0.1 libcdr-0.1 0 libcdr/libcdr.h libcdr-0.1 cdr-0.1) + if (LIBCDR-0.1_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBCDR-0.1_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBCDR-0.1_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBREVENGE_LIBRARIES}) + set(LIBCDR01_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBCDR-0.0 libcdr-0.0 0 libcdr/libcdr.h libcdr-0.0 cdr-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBCDR-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBCDR-0.0_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBCDR-0.0_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBCDR_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBCDR_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBCDR00_FOUND TRUE) + endif (LIBCDR-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBCDR-0.1_FOUND) + if (LIBCDR-0.1_FOUND OR LIBCDR-0.0_FOUND) + set(LIBCDR_FOUND TRUE) + endif (LIBCDR-0.1_FOUND OR LIBCDR-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBCDR_LIBRARIES AND LIBCDR_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibRevenge.cmake b/CMakeScripts/Modules/FindLibRevenge.cmake new file mode 100644 index 000000000..90d1ecf06 --- /dev/null +++ b/CMakeScripts/Modules/FindLibRevenge.cmake @@ -0,0 +1,41 @@ +# - Try to find LibRevenge +# Once done this will define +# +# LIBREVENGE_FOUND - system has LibRevenge +# LIBREVENGE_INCLUDE_DIRS - the LibRevenge include directory +# LIBREVENGE_LIBRARIES - Link these to use LibRevenge +# LIBREVENGE_DEFINITIONS - Compiler switches required for using LibRevenge +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + # in cache already + set(LIBREVENGE_FOUND TRUE) +else (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBREVENGE-0.0 librevenge-0.0 0 librevenge/librevenge.h librevenge-0.0 revenge-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBREVENGE-STREAM-0.0 librevenge-stream-0.0 0 librevenge-0.0/librevenge-stream/librevenge-stream.h librevenge-stream-0.0 revenge-stream-0.0) + if (LIBREVENGE-0.0_FOUND AND LIBREVENGE-STREAM-0.0_FOUND) + list(APPEND LIBREVENGE_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) + list(APPEND LIBREVENGE_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + list(APPEND LIBREVENGE_INCLUDE_DIRS ${LIBREVENGE-STREAM-0.0_INCLUDE_DIRS}) + list(APPEND LIBREVENGE_LIBRARIES ${LIBREVENGE-STREAM-0.0_LIBRARIES}) + set(LIBREVENGE00_FOUND TRUE) + endif (LIBREVENGE-0.0_FOUND AND LIBREVENGE-STREAM-0.0_FOUND) + if (LIBREVENGE-0.0_FOUND) + set(LIBREVENGE_FOUND TRUE) + endif (LIBREVENGE-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBREVENGE_LIBRARIES AND LIBREVENGE_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibVisio.cmake b/CMakeScripts/Modules/FindLibVisio.cmake new file mode 100644 index 000000000..a4e88aeaa --- /dev/null +++ b/CMakeScripts/Modules/FindLibVisio.cmake @@ -0,0 +1,56 @@ +# - Try to find LibVisio +# Once done this will define +# +# LIBVISIO_FOUND - system has LibVisio +# LIBVISIO_INCLUDE_DIRS - the LibVisio include directory +# LIBVISIO_LIBRARIES - Link these to use LibVisio +# LIBVISIO_DEFINITIONS - Compiler switches required for using LibVisio +# +# Copyright (c) 2008 Joshua L. Blocher +# Copyright (c) 2015 su_v +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +include(${CMAKE_CURRENT_LIST_DIR}/../HelperMacros.cmake) + +if (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + # in cache already + set(LIBVISIO_FOUND TRUE) +else (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBVISIO-0.1 libvisio-0.1 0 libvisio/libvisio.h libvisio-0.1 visio-0.1) + if (LIBVISIO-0.1_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBVISIO-0.1_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBVISIO-0.1_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBREVENGE_LIBRARIES}) + set(LIBVISIO01_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBVISIO-0.0 libvisio-0.0 0 libvisio/libvisio.h libvisio-0.0 visio-0.0) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBVISIO-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBVISIO-0.0_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBVISIO-0.0_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBVISIO_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBVISIO_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBVISIO00_FOUND TRUE) + endif (LIBVISIO-0.0_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBVISIO-0.1_FOUND) + if (LIBVISIO-0.1_FOUND OR LIBVISIO-0.0_FOUND) + set(LIBVISIO_FOUND TRUE) + endif (LIBVISIO-0.1_FOUND OR LIBVISIO-0.0_FOUND) + endif (PKG_CONFIG_FOUND) +endif (LIBVISIO_LIBRARIES AND LIBVISIO_INCLUDE_DIRS) + diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 136267070..0eaf8f102 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -23,32 +23,45 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) # in the FIND_PATH() and FIND_LIBRARY() calls find_package(PkgConfig) if (PKG_CONFIG_FOUND) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.1 libwpg-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-0.1) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-STREAM-0.1 libwpg-stream-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-stream-0.1) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.8 libwpd-0.8 0 libwpd/libwpd.h libwpd-0.8 wpd-0.8) - if (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.1_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.1_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-STREAM-0.1_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-STREAM-0.1_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.8_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.8_LIBRARIES}) - set(LIBWPG01_FOUND TRUE) - endif (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) - INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) - INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) - if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) - set(LIBWPG02_FOUND TRUE) - endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) - if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.3 libwpg-0.3 0 libwpg/libwpg.h libwpg-0.3 wpg-0.3) + if (LIBWPG-0.3_FOUND) + find_package(LibRevenge) + if (LIBREVENGE_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.3_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.3_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + set(LIBWPG03_FOUND TRUE) + endif (LIBREVENGE_FOUND) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.2 libwpg-0.2 0 libwpg/libwpg.h libwpg-0.2 wpg-0.2) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.9 libwpd-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-0.9) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-STREAM-0.9 libwpd-stream-0.9 0 libwpd/libwpd.h libwpd-0.9 wpd-stream-0.9) + if (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.2_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.2_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.9_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.9_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-STREAM-0.9_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-STREAM-0.9_LIBRARIES}) + set(LIBWPG02_FOUND TRUE) + else() + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-0.1 libwpg-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-0.1) + INKSCAPE_PKG_CONFIG_FIND(LIBWPG-STREAM-0.1 libwpg-stream-0.1 0 libwpg/libwpg.h libwpg-0.1 wpg-stream-0.1) + INKSCAPE_PKG_CONFIG_FIND(LIBWPD-0.8 libwpd-0.8 0 libwpd/libwpd.h libwpd-0.8 wpd-0.8) + if (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.1_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.1_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-STREAM-0.1_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPG-STREAM-0.1_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPD-0.8_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBWPD-0.8_LIBRARIES}) + set(LIBWPG01_FOUND TRUE) + endif (LIBWPG-0.1_FOUND AND LIBWPG-STREAM-0.1_FOUND AND LIBWPD-0.8_FOUND) + endif (LIBWPG-0.2_FOUND AND LIBWPD-STREAM-0.9_FOUND AND LIBWPD-0.9_FOUND) + endif (LIBWPG-0.3_FOUND) + if (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND OR LIBWPG-0.3_FOUND) set(LIBWPG_FOUND TRUE) - endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND) + endif (LIBWPG-0.1_FOUND OR LIBWPG-0.2_FOUND OR LIBWPG-0.3_FOUND) endif (PKG_CONFIG_FOUND) endif (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) diff --git a/config.h.cmake b/config.h.cmake index 81712be63..3bd7837bd 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -295,6 +295,24 @@ /* enable openoffice files (SVG jars) */ #cmakedefine WITH_INKJAR 1 +/* Build in libcdr */ +#cmakedefine WITH_LIBCDR 1 + +/* Build using libcdr 0.0.x */ +#cmakedefine WITH_LIBCDR00 1 + +/* Build using libcdr 0.1.x */ +#cmakedefine WITH_LIBCDR01 1 + +/* Build in libvisio */ +#cmakedefine WITH_LIBVISIO 1 + +/* Build using libvisio 0.0.x */ +#cmakedefine WITH_LIBVISIO00 1 + +/* Build using libvisio 0.1.x */ +#cmakedefine WITH_LIBVISIO01 1 + /* Build in libwpg */ #cmakedefine WITH_LIBWPG 1 @@ -304,6 +322,9 @@ /* Build in libwpg-0.2 */ #cmakedefine WITH_LIBWPG02 1 +/* Build in libwpg-0.3 */ +#cmakedefine WITH_LIBWPG03 1 + /* Use MMX optimizations, if CPU supports it */ #cmakedefine WITH_MMX 1 -- cgit v1.2.3 From f893425c4e9d23a438fb34b9f4bccd409650d484 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 2 May 2015 21:48:52 +0200 Subject: fix crash when setting clip (bzr r14094) --- src/selection-chemistry.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 68adf5381..f444f4217 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3884,17 +3884,18 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_select.push_back(*i); } } else { - GSList *i = NULL; - for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { - apply_to_items = g_slist_prepend(apply_to_items, *i); - items_to_select.push_back(*i); + SPItem *i = NULL; + for (std::vector::const_iterator j=items.begin();j!=items.end();j++) { + i=*j; + apply_to_items = g_slist_prepend(apply_to_items, i); + items_to_select.push_back(i); } - Inkscape::XML::Node *dup = SP_OBJECT(i->data)->getRepr()->duplicate(xml_doc); + Inkscape::XML::Node *dup = SP_OBJECT(i)->getRepr()->duplicate(xml_doc); mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { - SPObject *item = reinterpret_cast(i->data); + SPObject *item = reinterpret_cast(i); items_to_delete = g_slist_prepend(items_to_delete, item); } } -- cgit v1.2.3 From a0ed5b5138836e368e409b9ced656f970b225b38 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 3 May 2015 18:58:35 +0200 Subject: First batch (bzr r14095) --- src/conditions.cpp | 4 +- src/display/canvas-grid.cpp | 3 + src/libcroco/cr-statement.c | 1 + src/live_effects/lpe-taperstroke.cpp | 4 +- src/style-enums.h | 137 +++++++++++++++++++++++++++++++++++ src/style.cpp | 8 ++ src/style.h | 18 +++++ 7 files changed, 171 insertions(+), 4 deletions(-) diff --git a/src/conditions.cpp b/src/conditions.cpp index 9b233a74f..39ab16ba8 100644 --- a/src/conditions.cpp +++ b/src/conditions.cpp @@ -77,7 +77,7 @@ static gchar *preprocessLanguageCode(gchar *lngcode) { static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { if ( NULL == value ) return true; - + std::cout << "evaluateSystemLanguage: " << value << std::endl; std::set language_codes; gchar *str = NULL; gchar **strlist = g_strsplit( value, ",", 0); @@ -105,7 +105,7 @@ static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { SPDocument *document = item->document; Glib::ustring document_language = document->getLanguage(); - + std::cout << "language: |" << document_language << "|" << std::endl; if (document_language.size() == 0) return false; diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 4eda9b194..8285f7e64 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -916,12 +916,14 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) _empcolor = empcolor; } + std::cout << "CanvasXYGrid::Render: " << no_emp_when_zoomed_out << " " << empspacing << " " << _empcolor << " " << scaled << std::endl; cairo_save(buf->ct); cairo_translate(buf->ct, -buf->rect.left(), -buf->rect.top()); cairo_set_line_width(buf->ct, 1.0); cairo_set_line_cap(buf->ct, CAIRO_LINE_CAP_SQUARE); if (!render_dotted) { + // Render lines gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { @@ -944,6 +946,7 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) } } } else { + // Render dots gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { diff --git a/src/libcroco/cr-statement.c b/src/libcroco/cr-statement.c index 4666f26ec..5fb2dd2fd 100644 --- a/src/libcroco/cr-statement.c +++ b/src/libcroco/cr-statement.c @@ -1678,6 +1678,7 @@ CRStatement * cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet, CRDeclaration * a_font_decls) { + printf("cr_statement_new_at_font_face_rule\n"); CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement)); if (!result) { diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 2c74af6d6..1888bc3f0 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -275,7 +275,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; real_path.append(throwaway_path); @@ -304,7 +304,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); pwd2 = Piecewise >(); - pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; if (!Geom::are_near(real_path.finalPoint(), throwaway_path.initialPoint()) && real_path.size() >= 1) { diff --git a/src/style-enums.h b/src/style-enums.h index f52752018..f235b6699 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -72,6 +72,72 @@ enum SPCSSFontStretch { SP_CSS_FONT_STRETCH_WIDER }; +// Can select more than one +enum SPCSSFontVariantLigatures { + SP_CSS_FONT_VARIANT_LIGATURES_NORMAL, + SP_CSS_FONT_VARIANT_LIGATURES_NONE, + SP_CSS_FONT_VARIANT_LIGATURES_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL +}; + +enum SPCSSFontVariantPosition { + SP_CSS_FONT_VARIANT_POSITION_NORMAL, + SP_CSS_FONT_VARIANT_POSITION_SUB, + SP_CSS_FONT_VARIANT_POSITION_SUPER +}; + +enum SPCSSFontVariantCaps { + SP_CSS_FONT_VARIANT_CAPS_NORMAL, + SP_CSS_FONT_VARIANT_CAPS_SMALL, + SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL, + SP_CSS_FONT_VARIANT_CAPS_PETITE, + SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE, + SP_CSS_FONT_VARIANT_CAPS_UNICASE, + SP_CSS_FONT_VARIANT_CAPS_TITLING, +}; + +enum SPCSSFontVariantNumeric { + SP_CSS_FONT_VARIANT_NUMERIC_NORMAL, + SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL, + SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO +}; + +enum SPCSSFontVariantAlternates { + SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL, + SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET, + SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT, + SP_CSS_FONT_VARIANT_ALTERNATES_SWASH, + SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS, + SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION +}; + +enum SPCSSFontVariantEastAsian { + SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04, + SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED, + SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY +}; + enum SPCSSTextAlign { SP_CSS_TEXT_ALIGN_START, SP_CSS_TEXT_ALIGN_END, @@ -309,6 +375,77 @@ static SPStyleEnum const enum_font_stretch[] = { {NULL, -1} }; +static SPStyleEnum const enum_font_variant_ligatures[] = { + {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL}, + {"none", SP_CSS_FONT_VARIANT_LIGATURES_NONE}, + {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON}, + {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON}, + {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, + {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY}, + {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, + {"nohistorical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL}, + {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, + {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_position[] = { + {"normal", SP_CSS_FONT_VARIANT_POSITION_NORMAL}, + {"sub", SP_CSS_FONT_VARIANT_POSITION_SUB}, + {"super", SP_CSS_FONT_VARIANT_POSITION_SUPER}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_caps[] = { + {"normal", SP_CSS_FONT_VARIANT_CAPS_NORMAL}, + {"small-caps", SP_CSS_FONT_VARIANT_CAPS_SMALL}, + {"all-small-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL}, + {"petite-caps", SP_CSS_FONT_VARIANT_CAPS_PETITE}, + {"all_petite-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE}, + {"unicase", SP_CSS_FONT_VARIANT_CAPS_UNICASE}, + {"titling", SP_CSS_FONT_VARIANT_CAPS_TITLING}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_numeric[] = { + {"normal", SP_CSS_FONT_VARIANT_NUMERIC_NORMAL}, + {"lining-nums", SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS}, + {"oldstyle-nums", SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS}, + {"proportional-nums", SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS}, + {"tabular-nums", SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS}, + {"diagonal-fractions", SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS}, + {"stacked-fractions", SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS}, + {"ordinal", SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL}, + {"slashed-zero", SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_alternates[] = { + {"normal", SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL}, + {"historical-forms", SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS}, + {"stylistic", SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC}, + {"styleset", SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET}, + {"character_variant", SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT}, + {"swash", SP_CSS_FONT_VARIANT_ALTERNATES_SWASH}, + {"ornaments", SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS}, + {"annotation", SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_east_asian[] = { + {"normal", SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL}, + {"jis78", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78}, + {"jis83", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83}, + {"jis90", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90}, + {"jis04", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04}, + {"simplified", SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED}, + {"traditional", SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL}, + {"full-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH}, + {"proportional-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH}, + {"ruby", SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY}, + {NULL, -1} +}; + static SPStyleEnum const enum_text_align[] = { {"start", SP_CSS_TEXT_ALIGN_START}, {"end", SP_CSS_TEXT_ALIGN_END}, diff --git a/src/style.cpp b/src/style.cpp index b65bff53f..943a12f3b 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -118,6 +118,14 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : font(), // SPIFont font_specification( "-inkscape-font-specification" ), // SPIString + // Font variants + font_variant_ligatures( "font-variant-ligatures", enum_font_variant_ligatures, SP_CSS_FONT_VARIANT_LIGATURES_NORMAL ), + font_variant_position( "font-variant-position", enum_font_variant_position, SP_CSS_FONT_VARIANT_POSITION_NORMAL ), + font_variant_caps( "font-variant-caps", enum_font_variant_caps, SP_CSS_FONT_VARIANT_CAPS_NORMAL ), + font_variant_numeric( "font-variant-numeric", enum_font_variant_numeric, SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ), + font_variant_alternates("font-variant-alternates", enum_font_variant_alternates, SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL ), + font_variant_east_asian("font-variant-east_asian", enum_font_variant_east_asian, SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL ), + // Text related properties text_indent( "text-indent", 0.0 ), // SPILength text_align( "text-align", enum_text_align, SP_CSS_TEXT_ALIGN_START ), diff --git a/src/style.h b/src/style.h index ab34476b3..f52c14d89 100644 --- a/src/style.h +++ b/src/style.h @@ -111,6 +111,24 @@ public: /** Full font name, as font_factory::ConstructFontSpecification would give, for internal use. */ SPIString font_specification; + /* Font variants -------------------- */ + /** Font variant ligatures */ + SPIEnum font_variant_ligatures; + /** Font variant position (subscript/superscript) */ + SPIEnum font_variant_position; + /** Font variant caps (small caps) */ + SPIEnum font_variant_caps; + /** Font variant numeric (numerical formatting) */ + SPIEnum font_variant_numeric; + /** Font variant alternates (alternates/swatches) */ + SPIEnum font_variant_alternates; + /** Font variant East Asian */ + SPIEnum font_variant_east_asian; + /** Font variant shorthand (Redefines CSS 2.1 value) */ + // ? font_variant; + /** Font feature settings */ + // ? font_feature_settings; + /* Text ----------------------------- */ /** First line indent of paragraphs (css2 16.1) */ -- cgit v1.2.3 From c7ce360901e191572b207df27dd3e972bff3929f Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 3 May 2015 19:01:45 +0200 Subject: Revert bad commit (commited to wrong branch). (bzr r14096) --- src/conditions.cpp | 4 +- src/display/canvas-grid.cpp | 3 - src/libcroco/cr-statement.c | 1 - src/live_effects/lpe-taperstroke.cpp | 4 +- src/style-enums.h | 137 ----------------------------------- src/style.cpp | 8 -- src/style.h | 18 ----- 7 files changed, 4 insertions(+), 171 deletions(-) diff --git a/src/conditions.cpp b/src/conditions.cpp index 39ab16ba8..9b233a74f 100644 --- a/src/conditions.cpp +++ b/src/conditions.cpp @@ -77,7 +77,7 @@ static gchar *preprocessLanguageCode(gchar *lngcode) { static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { if ( NULL == value ) return true; - std::cout << "evaluateSystemLanguage: " << value << std::endl; + std::set language_codes; gchar *str = NULL; gchar **strlist = g_strsplit( value, ",", 0); @@ -105,7 +105,7 @@ static bool evaluateSystemLanguage(SPItem const *item, gchar const *value) { SPDocument *document = item->document; Glib::ustring document_language = document->getLanguage(); - std::cout << "language: |" << document_language << "|" << std::endl; + if (document_language.size() == 0) return false; diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 8285f7e64..4eda9b194 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -916,14 +916,12 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) _empcolor = empcolor; } - std::cout << "CanvasXYGrid::Render: " << no_emp_when_zoomed_out << " " << empspacing << " " << _empcolor << " " << scaled << std::endl; cairo_save(buf->ct); cairo_translate(buf->ct, -buf->rect.left(), -buf->rect.top()); cairo_set_line_width(buf->ct, 1.0); cairo_set_line_cap(buf->ct, CAIRO_LINE_CAP_SQUARE); if (!render_dotted) { - // Render lines gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { @@ -946,7 +944,6 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) } } } else { - // Render dots gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { diff --git a/src/libcroco/cr-statement.c b/src/libcroco/cr-statement.c index 5fb2dd2fd..4666f26ec 100644 --- a/src/libcroco/cr-statement.c +++ b/src/libcroco/cr-statement.c @@ -1678,7 +1678,6 @@ CRStatement * cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet, CRDeclaration * a_font_decls) { - printf("cr_statement_new_at_font_face_rule\n"); CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement)); if (!result) { diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 1888bc3f0..2c74af6d6 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -275,7 +275,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_str << "M 1,0 C " << 1 - (double)smoothing << ",0 0,0.5 0,0.5 0,0.5 " << 1 - (double)smoothing << ",1 1,1"; pat_vec = sp_svg_read_pathv(pat_str.str().c_str()); - pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[0].toPwSb(), pat_vec[0], -fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; real_path.append(throwaway_path); @@ -304,7 +304,7 @@ Geom::PathVector LPETaperStroke::doEffect_path(Geom::PathVector const& path_in) pat_vec = sp_svg_read_pathv(pat_str_1.str().c_str()); pwd2 = Piecewise >(); - pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], fabs(line_width))); + pwd2.concat(stretch_along(pathv_out[2].toPwSb(), pat_vec[0], -fabs(line_width))); throwaway_path = Geom::path_from_piecewise(pwd2, LPE_CONVERSION_TOLERANCE)[0]; if (!Geom::are_near(real_path.finalPoint(), throwaway_path.initialPoint()) && real_path.size() >= 1) { diff --git a/src/style-enums.h b/src/style-enums.h index f235b6699..f52752018 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -72,72 +72,6 @@ enum SPCSSFontStretch { SP_CSS_FONT_STRETCH_WIDER }; -// Can select more than one -enum SPCSSFontVariantLigatures { - SP_CSS_FONT_VARIANT_LIGATURES_NORMAL, - SP_CSS_FONT_VARIANT_LIGATURES_NONE, - SP_CSS_FONT_VARIANT_LIGATURES_COMMON, - SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON, - SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY, - SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY, - SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL, - SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL, - SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL, - SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL -}; - -enum SPCSSFontVariantPosition { - SP_CSS_FONT_VARIANT_POSITION_NORMAL, - SP_CSS_FONT_VARIANT_POSITION_SUB, - SP_CSS_FONT_VARIANT_POSITION_SUPER -}; - -enum SPCSSFontVariantCaps { - SP_CSS_FONT_VARIANT_CAPS_NORMAL, - SP_CSS_FONT_VARIANT_CAPS_SMALL, - SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL, - SP_CSS_FONT_VARIANT_CAPS_PETITE, - SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE, - SP_CSS_FONT_VARIANT_CAPS_UNICASE, - SP_CSS_FONT_VARIANT_CAPS_TITLING, -}; - -enum SPCSSFontVariantNumeric { - SP_CSS_FONT_VARIANT_NUMERIC_NORMAL, - SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS, - SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS, - SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS, - SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS, - SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS, - SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS, - SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL, - SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO -}; - -enum SPCSSFontVariantAlternates { - SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL, - SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS, - SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC, - SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET, - SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT, - SP_CSS_FONT_VARIANT_ALTERNATES_SWASH, - SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS, - SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION -}; - -enum SPCSSFontVariantEastAsian { - SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL, - SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78, - SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83, - SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90, - SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04, - SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED, - SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL, - SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH, - SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH, - SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY -}; - enum SPCSSTextAlign { SP_CSS_TEXT_ALIGN_START, SP_CSS_TEXT_ALIGN_END, @@ -375,77 +309,6 @@ static SPStyleEnum const enum_font_stretch[] = { {NULL, -1} }; -static SPStyleEnum const enum_font_variant_ligatures[] = { - {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL}, - {"none", SP_CSS_FONT_VARIANT_LIGATURES_NONE}, - {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON}, - {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON}, - {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, - {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY}, - {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, - {"nohistorical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL}, - {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, - {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL}, - {NULL, -1} -}; - -static SPStyleEnum const enum_font_variant_position[] = { - {"normal", SP_CSS_FONT_VARIANT_POSITION_NORMAL}, - {"sub", SP_CSS_FONT_VARIANT_POSITION_SUB}, - {"super", SP_CSS_FONT_VARIANT_POSITION_SUPER}, - {NULL, -1} -}; - -static SPStyleEnum const enum_font_variant_caps[] = { - {"normal", SP_CSS_FONT_VARIANT_CAPS_NORMAL}, - {"small-caps", SP_CSS_FONT_VARIANT_CAPS_SMALL}, - {"all-small-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL}, - {"petite-caps", SP_CSS_FONT_VARIANT_CAPS_PETITE}, - {"all_petite-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE}, - {"unicase", SP_CSS_FONT_VARIANT_CAPS_UNICASE}, - {"titling", SP_CSS_FONT_VARIANT_CAPS_TITLING}, - {NULL, -1} -}; - -static SPStyleEnum const enum_font_variant_numeric[] = { - {"normal", SP_CSS_FONT_VARIANT_NUMERIC_NORMAL}, - {"lining-nums", SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS}, - {"oldstyle-nums", SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS}, - {"proportional-nums", SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS}, - {"tabular-nums", SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS}, - {"diagonal-fractions", SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS}, - {"stacked-fractions", SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS}, - {"ordinal", SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL}, - {"slashed-zero", SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO}, - {NULL, -1} -}; - -static SPStyleEnum const enum_font_variant_alternates[] = { - {"normal", SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL}, - {"historical-forms", SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS}, - {"stylistic", SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC}, - {"styleset", SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET}, - {"character_variant", SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT}, - {"swash", SP_CSS_FONT_VARIANT_ALTERNATES_SWASH}, - {"ornaments", SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS}, - {"annotation", SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION}, - {NULL, -1} -}; - -static SPStyleEnum const enum_font_variant_east_asian[] = { - {"normal", SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL}, - {"jis78", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78}, - {"jis83", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83}, - {"jis90", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90}, - {"jis04", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04}, - {"simplified", SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED}, - {"traditional", SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL}, - {"full-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH}, - {"proportional-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH}, - {"ruby", SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY}, - {NULL, -1} -}; - static SPStyleEnum const enum_text_align[] = { {"start", SP_CSS_TEXT_ALIGN_START}, {"end", SP_CSS_TEXT_ALIGN_END}, diff --git a/src/style.cpp b/src/style.cpp index 943a12f3b..b65bff53f 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -118,14 +118,6 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : font(), // SPIFont font_specification( "-inkscape-font-specification" ), // SPIString - // Font variants - font_variant_ligatures( "font-variant-ligatures", enum_font_variant_ligatures, SP_CSS_FONT_VARIANT_LIGATURES_NORMAL ), - font_variant_position( "font-variant-position", enum_font_variant_position, SP_CSS_FONT_VARIANT_POSITION_NORMAL ), - font_variant_caps( "font-variant-caps", enum_font_variant_caps, SP_CSS_FONT_VARIANT_CAPS_NORMAL ), - font_variant_numeric( "font-variant-numeric", enum_font_variant_numeric, SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ), - font_variant_alternates("font-variant-alternates", enum_font_variant_alternates, SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL ), - font_variant_east_asian("font-variant-east_asian", enum_font_variant_east_asian, SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL ), - // Text related properties text_indent( "text-indent", 0.0 ), // SPILength text_align( "text-align", enum_text_align, SP_CSS_TEXT_ALIGN_START ), diff --git a/src/style.h b/src/style.h index f52c14d89..ab34476b3 100644 --- a/src/style.h +++ b/src/style.h @@ -111,24 +111,6 @@ public: /** Full font name, as font_factory::ConstructFontSpecification would give, for internal use. */ SPIString font_specification; - /* Font variants -------------------- */ - /** Font variant ligatures */ - SPIEnum font_variant_ligatures; - /** Font variant position (subscript/superscript) */ - SPIEnum font_variant_position; - /** Font variant caps (small caps) */ - SPIEnum font_variant_caps; - /** Font variant numeric (numerical formatting) */ - SPIEnum font_variant_numeric; - /** Font variant alternates (alternates/swatches) */ - SPIEnum font_variant_alternates; - /** Font variant East Asian */ - SPIEnum font_variant_east_asian; - /** Font variant shorthand (Redefines CSS 2.1 value) */ - // ? font_variant; - /** Font feature settings */ - // ? font_feature_settings; - /* Text ----------------------------- */ /** First line indent of paragraphs (css2 16.1) */ -- cgit v1.2.3 From a3a21be8fe3eda83fb74a2392bd67c895e2ff08b Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 3 May 2015 20:17:20 +0200 Subject: cmake: wpg-0.3 - fix librevenge paths (bzr r14097) --- CMakeScripts/Modules/FindLibWPG.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeScripts/Modules/FindLibWPG.cmake b/CMakeScripts/Modules/FindLibWPG.cmake index 0eaf8f102..ea241a570 100644 --- a/CMakeScripts/Modules/FindLibWPG.cmake +++ b/CMakeScripts/Modules/FindLibWPG.cmake @@ -29,8 +29,8 @@ else (LIBWPG_LIBRARIES AND LIBWPG_INCLUDE_DIRS) if (LIBREVENGE_FOUND) list(APPEND LIBWPG_INCLUDE_DIRS ${LIBWPG-0.3_INCLUDE_DIRS}) list(APPEND LIBWPG_LIBRARIES ${LIBWPG-0.3_LIBRARIES}) - list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE-0.0_INCLUDE_DIRS}) - list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE-0.0_LIBRARIES}) + list(APPEND LIBWPG_INCLUDE_DIRS ${LIBREVENGE_INCLUDE_DIRS}) + list(APPEND LIBWPG_LIBRARIES ${LIBREVENGE_LIBRARIES}) set(LIBWPG03_FOUND TRUE) endif (LIBREVENGE_FOUND) else() -- cgit v1.2.3 From e5d2b25011292d4df0297939c30357ac23fac856 Mon Sep 17 00:00:00 2001 From: su_v Date: Sun, 3 May 2015 20:57:08 +0200 Subject: cmake: use cmake modules for iconv and inlt (bzr r14098) --- CMakeScripts/DefineDependsandFlags.cmake | 21 +++-- CMakeScripts/Modules/FindIconv.cmake | 60 +++++++++++++++ CMakeScripts/Modules/FindIntl.cmake | 127 +++++++++++++++++++++++++++++++ 3 files changed, 197 insertions(+), 11 deletions(-) create mode 100644 CMakeScripts/Modules/FindIconv.cmake create mode 100644 CMakeScripts/Modules/FindIntl.cmake diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index e96609d34..71bb042bc 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -19,7 +19,6 @@ list(APPEND INKSCAPE_INCS_SYS ${GSL_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${GSL_LIBRARIES}) if (WIN32) list(APPEND INKSCAPE_LIBS "-L$ENV{DEVLIBS_PATH}/lib") # FIXME - list(APPEND INKSCAPE_LIBS "-lintl.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0.dll") # FIXME list(APPEND INKSCAPE_LIBS "-lpangowin32-1.0.dll") # FIXME @@ -31,23 +30,13 @@ elseif(APPLE) # Cmake then can rely on the hard-coded paths in its modules. # Only prepend search path if $CMAKE_PREFIX_PATH is defined: list(APPEND INKSCAPE_LIBS "-L$ENV{CMAKE_PREFIX_PATH}/lib") # FIXME - # TODO: verify whether linking the next two libs explicitly is always - # required, or only if MacPorts is installed in custom prefix: - list(APPEND INKSCAPE_LIBS "-liconv") # FIXME - list(APPEND INKSCAPE_LIBS "-lintl") # FIXME endif() list(APPEND INKSCAPE_LIBS "-lpangocairo-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lpangoft2-1.0") # FIXME list(APPEND INKSCAPE_LIBS "-lfontconfig") # FIXME - # GTK+ backend if(${GTK+_2.0_TARGET} MATCHES "x11") # only link X11 if using X11 backend of GTK2 list(APPEND INKSCAPE_LIBS "-lX11") # FIXME - elseif(${GTK+_2.0_TARGET} MATCHES "quartz") - # TODO: gtk-mac-integration (currently only useful for osxmenu branch) - # 1) add configure option (ON/OFF) for gtk-mac-integration - # 2) add checks (GTK+ backend must be "quartz") - # 3) link relevant lib(s) endif() else() list(APPEND INKSCAPE_LIBS "-ldl") # FIXME @@ -93,6 +82,11 @@ if(ENABLE_LCMS) endif() endif() +find_package(Iconv REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${ICONV_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${ICONV_LIBRARIES}) +add_definitions(${ICONV_DEFINITIONS}) + find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) @@ -268,6 +262,11 @@ list(APPEND INKSCAPE_LIBS ) +find_package(Intl REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) +add_definitions(${Intl_DEFINITIONS}) + find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) diff --git a/CMakeScripts/Modules/FindIconv.cmake b/CMakeScripts/Modules/FindIconv.cmake new file mode 100644 index 000000000..338d17d05 --- /dev/null +++ b/CMakeScripts/Modules/FindIconv.cmake @@ -0,0 +1,60 @@ +# - Try to find Iconv +# Once done this will define +# +# ICONV_FOUND - system has Iconv +# ICONV_INCLUDE_DIR - the Iconv include directory +# ICONV_LIBRARIES - Link these to use Iconv +# ICONV_SECOND_ARGUMENT_IS_CONST - the second argument for iconv() is const +# +include(CheckCXXSourceCompiles) + +IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + # Already in cache, be silent + SET(ICONV_FIND_QUIETLY TRUE) +ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +FIND_PATH(ICONV_INCLUDE_DIR iconv.h) + +FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c) + +IF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + SET(ICONV_FOUND TRUE) +ENDIF(ICONV_INCLUDE_DIR AND ICONV_LIBRARIES) + +set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR}) +set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES}) +IF(ICONV_FOUND) + check_cxx_source_compiles(" + #include + int main(){ + iconv_t conv = 0; + const char* in = 0; + size_t ilen = 0; + char* out = 0; + size_t olen = 0; + iconv(conv, &in, &ilen, &out, &olen); + return 0; + } +" ICONV_SECOND_ARGUMENT_IS_CONST ) + IF(ICONV_SECOND_ARGUMENT_IS_CONST) + SET(ICONV_CONST "const") + ENDIF(ICONV_SECOND_ARGUMENT_IS_CONST) +ENDIF(ICONV_FOUND) +set(CMAKE_REQUIRED_INCLUDES) +set(CMAKE_REQUIRED_LIBRARIES) + +IF(ICONV_FOUND) + IF(NOT ICONV_FIND_QUIETLY) + MESSAGE(STATUS "Found Iconv: ${ICONV_LIBRARIES}") + ENDIF(NOT ICONV_FIND_QUIETLY) +ELSE(ICONV_FOUND) + IF(Iconv_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find Iconv") + ENDIF(Iconv_FIND_REQUIRED) +ENDIF(ICONV_FOUND) + +MARK_AS_ADVANCED( + ICONV_INCLUDE_DIR + ICONV_LIBRARIES + ICONV_SECOND_ARGUMENT_IS_CONST +) diff --git a/CMakeScripts/Modules/FindIntl.cmake b/CMakeScripts/Modules/FindIntl.cmake new file mode 100644 index 000000000..e6c5f6d0c --- /dev/null +++ b/CMakeScripts/Modules/FindIntl.cmake @@ -0,0 +1,127 @@ +#.rst: +# FindIntl +# -------- +# +# Find the Gettext libintl headers and libraries. +# +# This module reports information about the Gettext libintl +# installation in several variables. General variables:: +# +# Intl_FOUND - true if the libintl headers and libraries were found +# Intl_INCLUDE_DIRS - the directory containing the libintl headers +# Intl_LIBRARIES - libintl libraries to be linked +# +# The following cache variables may also be set:: +# +# Intl_INCLUDE_DIR - the directory containing the libintl headers +# Intl_LIBRARY - the libintl library (if any) +# +# .. note:: +# On some platforms, such as Linux with GNU libc, the gettext +# functions are present in the C standard library and libintl +# is not required. ``Intl_LIBRARIES`` will be empty in this +# case. +# +# .. note:: +# If you wish to use the Gettext tools (``msgmerge``, +# ``msgfmt``, etc.), use :module:`FindGettext`. + + +# Written by Roger Leigh + +#============================================================================= +# Copyright 2014 Roger Leigh +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. + +# CMake - Cross Platform Makefile Generator +# Copyright 2000-2015 Kitware, Inc. +# Copyright 2000-2011 Insight Software Consortium +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the names of Kitware, Inc., the Insight Software Consortium, +# nor the names of their contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# ------------------------------------------------------------------------------ +# +# The above copyright and license notice applies to distributions of +# CMake in source and binary form. Some source files contain additional +# notices of original copyright by their contributors; see each source +# for details. Third-party software packages supplied with CMake under +# compatible licenses provide their own copyright notices documented in +# corresponding subdirectories. +# +# ------------------------------------------------------------------------------ +# +# CMake was initially developed by Kitware with the following sponsorship: +# +# * National Library of Medicine at the National Institutes of Health +# as part of the Insight Segmentation and Registration Toolkit (ITK). +# +# * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel +# Visualization Initiative. +# +# * National Alliance for Medical Image Computing (NAMIC) is funded by the +# National Institutes of Health through the NIH Roadmap for Medical Research, +# Grant U54 EB005149. +# +# * Kitware, Inc. + +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +# Find include directory +find_path(Intl_INCLUDE_DIR + NAMES "libintl.h" + DOC "libintl include directory") +mark_as_advanced(Intl_INCLUDE_DIR) + +# Find all Intl libraries +find_library(Intl_LIBRARY "intl" + DOC "libintl libraries (if not in the C library)") +mark_as_advanced(Intl_LIBRARY) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Intl + FOUND_VAR Intl_FOUND + REQUIRED_VARS Intl_INCLUDE_DIR + FAIL_MESSAGE "Failed to find Gettext libintl") + +if(Intl_FOUND) + set(Intl_INCLUDE_DIRS "${Intl_INCLUDE_DIR}") + if(Intl_LIBRARY) + set(Intl_LIBRARIES "${Intl_LIBRARY}") + else() + unset(Intl_LIBRARIES) + endif() +endif() -- cgit v1.2.3 From fe043be9888e82f4d199099629824d7e62da3dfa Mon Sep 17 00:00:00 2001 From: su_v Date: Sun, 3 May 2015 22:30:56 +0200 Subject: cmake: move Intl check to 'Files we include' section Because the FindIntl module was only recently added to Cmake, I added a copy to Inkscape's Modules dir in r14098 but forgot to properly reflect this in CMakeScripts/DefineDependsandFlags.cmake. (bzr r14099) --- CMakeScripts/DefineDependsandFlags.cmake | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 71bb042bc..f7c371bae 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -87,6 +87,11 @@ list(APPEND INKSCAPE_INCS_SYS ${ICONV_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ICONV_LIBRARIES}) add_definitions(${ICONV_DEFINITIONS}) +find_package(Intl REQUIRED) +list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) +list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) +add_definitions(${Intl_DEFINITIONS}) + find_package(BoehmGC REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${BOEHMGC_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${BOEHMGC_LIBRARIES}) @@ -262,11 +267,6 @@ list(APPEND INKSCAPE_LIBS ) -find_package(Intl REQUIRED) -list(APPEND INKSCAPE_INCS_SYS ${Intl_INCLUDE_DIRS}) -list(APPEND INKSCAPE_LIBS ${Intl_LIBRARIES}) -add_definitions(${Intl_DEFINITIONS}) - find_package(Freetype REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${FREETYPE_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${FREETYPE_LIBRARIES}) -- cgit v1.2.3 From 20f22e56999d2b90ec2b7a77149748b0c9740dc1 Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 3 May 2015 16:05:14 -0700 Subject: Added base unit test source utilizing Google Test and corresponding CMake support. (bzr r14100) --- CMakeLists.txt | 20 ++ CMakeScripts/DefineDependsandFlags.cmake | 8 + test/CMakeLists.txt | 474 +++++++++++++++++++++++++++++++ test/unittest.cpp | 41 +++ 4 files changed, 543 insertions(+) create mode 100644 test/CMakeLists.txt create mode 100644 test/unittest.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 7f1726b2d..aa998319f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,16 @@ endif(APPLE) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "" FORCE ) set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "" FORCE ) +# ----------------------------------------------------------------------------- +# +# ----------------------------------------------------------------------------- +set(GMOCK_DIR "${CMAKE_SOURCE_DIR}/gtest/gmock-1.7.0" + CACHE PATH "The path to the GoogleMock test framework.") + +if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") + set(GMOCK_PRESENT ON) +endif() + # ----------------------------------------------------------------------------- # Options # ----------------------------------------------------------------------------- @@ -67,6 +77,7 @@ option(WITH_DBUS "Compile with support for DBus interface" OFF) option(ENABLE_LCMS "Compile with LCMS support" ON) option(WITH_GNOME_VFS "Compile with support for Gnome VFS" ON) #option(WITH_INKJAR "Enable support for openoffice files (SVG jars)" ON) +option(WITH_GTEST "Compile with Google Test support" ${GMOCK_PRESENT}) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling @@ -166,3 +177,12 @@ if(UNIX) else() # TODO, WIN32/APPLE endif() + +#----------------------------------------------------------------------------- + +add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}) + +if (WITH_GTEST) + enable_testing() + add_subdirectory(test EXCLUDE_FROM_ALL) +endif() diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index f7c371bae..abad73a4d 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -213,6 +213,14 @@ if(WITH_DBUS) endif() endif() +if(WITH_GTEST) + if(EXISTS "${GMOCK_DIR}" AND IS_DIRECTORY "${GMOCK_DIR}") + + else() + set(WITH_GTEST off) + endif() +endif() + # ---------------------------------------------------------------------------- # CMake's builtin # ---------------------------------------------------------------------------- diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 000000000..09201ba4a --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,474 @@ +# ----------------------------------------------------------------------------- +# +# ----------------------------------------------------------------------------- + +set(CMAKE_CTEST_COMMAND ctest -V) + +add_subdirectory(${GMOCK_DIR} ${CMAKE_BINARY_DIR}/gmock) + +include_directories(SYSTEM ${GMOCK_DIR}/gtest/include + ${GMOCK_DIR}/include) + +# copied from ../src/CMakeLists.txt +# TODO resolve to shared definition +set(sp_SRC + ../src/attribute-rel-css.cpp + ../src/attribute-rel-svg.cpp + ../src/attribute-rel-util.cpp + ../src/sp-anchor.cpp + ../src/sp-clippath.cpp + ../src/sp-conn-end-pair.cpp + ../src/sp-conn-end.cpp + ../src/sp-cursor.cpp + ../src/sp-defs.cpp + ../src/sp-desc.cpp + ../src/sp-ellipse.cpp + ../src/sp-factory.cpp + ../src/sp-filter-primitive.cpp + ../src/sp-filter-reference.cpp + ../src/sp-filter.cpp + ../src/sp-flowdiv.cpp + ../src/sp-flowregion.cpp + ../src/sp-flowtext.cpp + ../src/sp-font-face.cpp + ../src/sp-font.cpp + ../src/sp-glyph-kerning.cpp + ../src/sp-glyph.cpp + ../src/sp-gradient-reference.cpp + ../src/sp-gradient.cpp + ../src/sp-guide.cpp + ../src/sp-hatch-path.cpp + ../src/sp-hatch.cpp + ../src/sp-image.cpp + ../src/sp-item-group.cpp + ../src/sp-item-notify-moveto.cpp + ../src/sp-item-rm-unsatisfied-cns.cpp + ../src/sp-item-transform.cpp + ../src/sp-item-update-cns.cpp + ../src/sp-item.cpp + ../src/sp-line.cpp + ../src/sp-linear-gradient.cpp + ../src/sp-lpe-item.cpp + ../src/sp-marker.cpp + ../src/sp-mask.cpp + ../src/sp-mesh-array.cpp + ../src/sp-mesh-patch.cpp + ../src/sp-mesh-row.cpp + ../src/sp-mesh.cpp + ../src/sp-metadata.cpp + ../src/sp-missing-glyph.cpp + ../src/sp-namedview.cpp + ../src/sp-object-group.cpp + ../src/sp-object.cpp + ../src/sp-offset.cpp + ../src/sp-paint-server.cpp + ../src/sp-path.cpp + ../src/sp-pattern.cpp + ../src/sp-polygon.cpp + ../src/sp-polyline.cpp + ../src/sp-radial-gradient.cpp + ../src/sp-rect.cpp + ../src/sp-root.cpp + ../src/sp-script.cpp + ../src/sp-shape.cpp + ../src/sp-solid-color.cpp + ../src/sp-spiral.cpp + ../src/sp-star.cpp + ../src/sp-stop.cpp + ../src/sp-string.cpp + ../src/sp-style-elem.cpp + ../src/sp-switch.cpp + ../src/sp-symbol.cpp + ../src/sp-tag-use-reference.cpp + ../src/sp-tag-use.cpp + ../src/sp-tag.cpp + ../src/sp-text.cpp + ../src/sp-title.cpp + ../src/sp-tref-reference.cpp + ../src/sp-tref.cpp + ../src/sp-tspan.cpp + ../src/sp-use-reference.cpp + ../src/sp-use.cpp + ../src/splivarot.cpp + ../src/viewbox.cpp + + # ------- + # Headers + ../src/attribute-rel-css.h + ../src/attribute-rel-svg.h + ../src/attribute-rel-util.h + ../src/sp-anchor.h + ../src/sp-clippath.h + ../src/sp-conn-end-pair.h + ../src/sp-conn-end.h + ../src/sp-cursor.h + ../src/sp-defs.h + ../src/sp-desc.h + ../src/sp-ellipse.h + ../src/sp-factory.h + ../src/sp-filter-primitive.h + ../src/sp-filter-reference.h + ../src/sp-filter-units.h + ../src/sp-filter.h + ../src/sp-flowdiv.h + ../src/sp-flowregion.h + ../src/sp-flowtext.h + ../src/sp-font-face.h + ../src/sp-font.h + ../src/sp-glyph-kerning.h + ../src/sp-glyph.h + ../src/sp-gradient-reference.h + ../src/sp-gradient-spread.h + ../src/sp-gradient-test.h + ../src/sp-gradient-units.h + ../src/sp-gradient-vector.h + ../src/sp-gradient.h + ../src/sp-guide-attachment.h + ../src/sp-guide-constraint.h + ../src/sp-guide.h + ../src/sp-hatch-path.h + ../src/sp-hatch.h + ../src/sp-image.h + ../src/sp-item-group.h + ../src/sp-item-notify-moveto.h + ../src/sp-item-rm-unsatisfied-cns.h + ../src/sp-item-transform.h + ../src/sp-item-update-cns.h + ../src/sp-item.h + ../src/sp-line.h + ../src/sp-linear-gradient.h + ../src/sp-lpe-item.h + ../src/sp-marker-loc.h + ../src/sp-marker.h + ../src/sp-mask.h + ../src/sp-mesh-array.h + ../src/sp-mesh-patch.h + ../src/sp-mesh-row.h + ../src/sp-mesh.h + ../src/sp-metadata.h + ../src/sp-missing-glyph.h + ../src/sp-namedview.h + ../src/sp-object-group.h + ../src/sp-object.h + ../src/sp-offset.h + ../src/sp-paint-server-reference.h + ../src/sp-paint-server.h + ../src/sp-path.h + ../src/sp-pattern.h + ../src/sp-polygon.h + ../src/sp-polyline.h + ../src/sp-radial-gradient.h + ../src/sp-rect.h + ../src/sp-root.h + ../src/sp-script.h + ../src/sp-shape.h + ../src/sp-solid-color.h + ../src/sp-spiral.h + ../src/sp-star.h + ../src/sp-stop.h + ../src/sp-string.h + ../src/sp-style-elem-test.h + ../src/sp-style-elem.h + ../src/sp-switch.h + ../src/sp-symbol.h + ../src/sp-text.h + ../src/sp-textpath.h + ../src/sp-title.h + ../src/sp-tref-reference.h + ../src/sp-tref.h + ../src/sp-tspan.h + ../src/sp-use-reference.h + ../src/sp-use.h + ../src/viewbox.h +) + +# copied from ../src/CMakeLists.txt +# TODO resolve to shared definition +set(inkscape_SRC + ../src/attributes.cpp + ../src/axis-manip.cpp + ../src/box3d-side.cpp + ../src/box3d.cpp + ../src/color-profile.cpp + ../src/color.cpp + ../src/composite-undo-stack-observer.cpp + ../src/conditions.cpp + ../src/conn-avoid-ref.cpp + ../src/console-output-undo-observer.cpp + ../src/context-fns.cpp + ../src/desktop-events.cpp + ../src/desktop-style.cpp + ../src/desktop.cpp + ../src/device-manager.cpp + ../src/dir-util.cpp + ../src/document-subset.cpp + ../src/document-undo.cpp + ../src/document.cpp + ../src/ege-color-prof-tracker.cpp + ../src/event-log.cpp + ../src/extract-uri.cpp + ../src/file.cpp + ../src/filter-chemistry.cpp + ../src/filter-enums.cpp + ../src/gc-anchored.cpp + ../src/gc-finalized.cpp + ../src/gradient-chemistry.cpp + ../src/gradient-drag.cpp + ../src/graphlayout.cpp + ../src/guide-snapper.cpp + ../src/help.cpp + ../src/id-clash.cpp + ../src/inkscape.cpp + ../src/knot-holder-entity.cpp + ../src/knot-ptr.cpp + ../src/knot.cpp + ../src/knotholder.cpp + ../src/layer-fns.cpp + ../src/layer-manager.cpp + ../src/layer-model.cpp + ../src/line-geometry.cpp + ../src/line-snapper.cpp + ../src/main-cmdlineact.cpp + ../src/media.cpp + ../src/message-context.cpp + ../src/message-stack.cpp + ../src/mod360.cpp + ../src/object-hierarchy.cpp + ../src/object-snapper.cpp + ../src/path-chemistry.cpp + ../src/persp3d-reference.cpp + ../src/persp3d.cpp + ../src/perspective-line.cpp + ../src/preferences.cpp + ../src/prefix.cpp + ../src/print.cpp + ../src/profile-manager.cpp + ../src/proj_pt.cpp + ../src/rdf.cpp + ../src/removeoverlap.cpp + ../src/resource-manager.cpp + ../src/rubberband.cpp + ../src/satisfied-guide-cns.cpp + ../src/selcue.cpp + ../src/selection-chemistry.cpp + ../src/selection-describer.cpp + ../src/selection.cpp + ../src/seltrans-handles.cpp + ../src/seltrans.cpp + ../src/shortcuts.cpp + ../src/snap-preferences.cpp + ../src/snap.cpp + ../src/snapped-curve.cpp + ../src/snapped-line.cpp + ../src/snapped-point.cpp + ../src/snapper.cpp + ../src/style-internal.cpp + ../src/style.cpp + ../src/svg-view-widget.cpp + ../src/svg-view.cpp + ../src/text-chemistry.cpp + ../src/text-editing.cpp + ../src/transf_mat_3x4.cpp + ../src/unclump.cpp + ../src/unicoderange.cpp + ../src/uri-references.cpp + ../src/uri.cpp + ../src/vanishing-point.cpp + ../src/verbs.cpp + ../src/version.cpp + + # ------- + # Headers + ../src/MultiPrinter.h + ../src/PylogFormatter.h + ../src/TRPIFormatter.h + ../src/attributes-test.h + ../src/attributes.h + ../src/axis-manip.h + ../src/bad-uri-exception.h + ../src/box3d-side.h + ../src/box3d.h + ../src/cms-color-types.h + ../src/cms-system.h + ../src/color-profile-cms-fns.h + ../src/color-profile-test.h + ../src/color-profile.h + ../src/color-rgba.h + ../src/color.h + ../src/colorspace.h + ../src/composite-undo-stack-observer.h + ../src/conditions.h + ../src/conn-avoid-ref.h + ../src/console-output-undo-observer.h + ../src/context-fns.h + ../src/decimal-round.h + ../src/desktop-events.h + ../src/desktop-style.h + ../src/desktop.h + ../src/device-manager.h + ../src/dir-util-test.h + ../src/dir-util.h + ../src/document-private.h + ../src/document-subset.h + ../src/document-undo.h + ../src/document.h + ../src/ege-color-prof-tracker.h + ../src/enums.h + ../src/event-log.h + ../src/event.h + ../src/extract-uri-test.h + ../src/extract-uri.h + ../src/file.h + ../src/fill-or-stroke.h + ../src/filter-chemistry.h + ../src/filter-enums.h + ../src/gc-anchored.h + ../src/gc-finalized.h + ../src/gradient-chemistry.h + ../src/gradient-drag.h + ../src/graphlayout.h + ../src/guide-snapper.h + ../src/help.h + ../src/helper-fns.h + ../src/icon-size.h + ../src/id-clash.h + ../src/inkscape-version.h + ../src/inkscape.h + ../src/isinf.h + ../src/knot-enums.h + ../src/knot-holder-entity.h + ../src/knot-ptr.h + ../src/knot.h + ../src/knotholder.h + ../src/layer-fns.h + ../src/layer-manager.h + ../src/layer-model.h + ../src/line-geometry.h + ../src/line-snapper.h + ../src/macros.h + ../src/main-cmdlineact.h + ../src/marker-test.h + ../src/media.h + ../src/menus-skeleton.h + ../src/message-context.h + ../src/message-stack.h + ../src/message.h + ../src/mod360-test.h + ../src/mod360.h + ../src/number-opt-number.h + ../src/object-hierarchy.h + ../src/object-snapper.h + ../src/object-test.h + ../src/path-chemistry.h + ../src/path-prefix.h + ../src/persp3d-reference.h + ../src/persp3d.h + ../src/perspective-line.h + ../src/preferences-skeleton.h + ../src/preferences-test.h + ../src/preferences.h + ../src/prefix.h + ../src/print.h + ../src/profile-manager.h + ../src/proj_pt.h + ../src/rdf.h + ../src/remove-last.h + ../src/removeoverlap.h + ../src/require-config.h + ../src/resource-manager.h + ../src/round-test.h + ../src/round.h + ../src/rubberband.h + ../src/satisfied-guide-cns.h + ../src/selcue.h + ../src/selection-chemistry.h + ../src/selection-describer.h + ../src/selection.h + ../src/seltrans-handles.h + ../src/seltrans.h + ../src/shortcuts.h + ../src/snap-candidate.h + ../src/snap-enums.h + ../src/snap-preferences.h + ../src/snap.h + ../src/snapped-curve.h + ../src/snapped-line.h + ../src/snapped-point.h + ../src/snapper.h + ../src/splivarot.h + ../src/streq.h + ../src/strneq.h + ../src/style-enums.h + ../src/style-internal.h + ../src/style-test.h + ../src/style.h + ../src/svg-profile.h + ../src/svg-view-widget.h + ../src/svg-view.h + ../src/syseq.h + ../src/test-helpers.h + ../src/text-chemistry.h + ../src/text-editing.h + ../src/text-tag-attributes.h + ../src/transf_mat_3x4.h + ../src/unclump.h + ../src/undo-stack-observer.h + ../src/unicoderange.h + ../src/uri-references.h + ../src/uri-test.h + ../src/uri.h + ../src/vanishing-point.h + ../src/verbs-test.h + ../src/verbs.h + ../src/version.h +) + +get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC) + +set_source_files_properties( + ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp + PROPERTIES GENERATED TRUE) + +include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) + +add_executable(unittest + unittest.cpp + ${inkscape_SRC} + ${sp_SRC} + ${inkscape_global_SRC} + ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp +) + +add_dependencies(unittest inkscape_version) + +target_link_libraries(unittest + gmock_main + + # order from automake + #sp_LIB + nrtype_LIB + + #inkscape_LIB + #sp_LIB # annoying, we need both! + nrtype_LIB # annoying, we need both! + + croco_LIB + avoid_LIB + gdl_LIB + cola_LIB + vpsc_LIB + livarot_LIB + uemf_LIB + 2geom_LIB + depixelize_LIB + util_LIB + gc_LIB + + ${INKSCAPE_LIBS} +) + +add_test(BaseTest ${EXECUTABLE_OUTPUT_PATH}/unittest) + +add_dependencies(check unittest) + +# diff --git a/test/unittest.cpp b/test/unittest.cpp new file mode 100644 index 000000000..f95c67d9c --- /dev/null +++ b/test/unittest.cpp @@ -0,0 +1,41 @@ +/* + * Unit test main. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "gtest/gtest.h" + +namespace { + +// Ensure that a known positive test works +TEST(PreTest, WorldIsSane) +{ + EXPECT_EQ(4, 2 + 2); +} + +// Example of type casting to avoid compile warnings. + + +} // namespace + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3 From 278957c893c5626bd39da7e91429a7c5674d11fa Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 3 May 2015 16:07:45 -0700 Subject: Added unit tests for attributes. Corresponds-to/replaces the CxxTest file src/attributes-test.h (bzr r14101) --- test/CMakeLists.txt | 1 + test/src/attributes-test.cpp | 618 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 619 insertions(+) create mode 100644 test/src/attributes-test.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 09201ba4a..5ae403686 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -433,6 +433,7 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) add_executable(unittest unittest.cpp + src/attributes-test.cpp ${inkscape_SRC} ${sp_SRC} ${inkscape_global_SRC} diff --git a/test/src/attributes-test.cpp b/test/src/attributes-test.cpp new file mode 100644 index 000000000..ab1c3cec6 --- /dev/null +++ b/test/src/attributes-test.cpp @@ -0,0 +1,618 @@ +/* + * Unit tests for attributes. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include +#include + +#include "gtest/gtest.h" + +#include "attributes.h" + +namespace { + +static const unsigned int FIRST_VALID_ID = 1; + +class AttributeInfo +{ +public: + AttributeInfo(std::string const &attr, bool supported) : + attr(attr), + supported(supported) + { + } + + std::string attr; + bool supported; +}; + +typedef std::vector::iterator AttrItr; + +std::vector getKnownAttrs() +{ +/* Extracted mechanically from http://www.w3.org/TR/SVG11/attindex.html: + + tidy -wrap 999 -asxml < attindex.html 2>/dev/null | + tr -d \\n | + sed 's,,@,g' | + tr @ \\n | + sed 's,.*,,;s,^,,;1,/^%/d;/^%/d;s,^, {",;s/$/", false},/' | + uniq + + attindex.html lacks attributeName, begin, additive, font, marker; + I've added these manually. + + SVG 2: white-space, shape-inside, shape-outside, shape-padding, shape-margin +*/ + AttributeInfo all_attrs[] = { + AttributeInfo("attributeName", true), + AttributeInfo("begin", true), + AttributeInfo("additive", true), + AttributeInfo("font", true), + AttributeInfo("-inkscape-font-specification", true), // TODO look into this attribute's name + AttributeInfo("marker", true), + AttributeInfo("line-height", true), + + AttributeInfo("accent-height", true), + AttributeInfo("accumulate", true), + AttributeInfo("alignment-baseline", true), + AttributeInfo("alphabetic", true), + AttributeInfo("amplitude", true), + AttributeInfo("animate", false), + AttributeInfo("arabic-form", true), + AttributeInfo("ascent", true), + AttributeInfo("attributeType", true), + AttributeInfo("azimuth", true), + AttributeInfo("baseFrequency", true), + AttributeInfo("baseline-shift", true), + AttributeInfo("baseProfile", false), + AttributeInfo("bbox", true), + AttributeInfo("bias", true), + AttributeInfo("block-progression", true), + AttributeInfo("by", true), + AttributeInfo("calcMode", true), + AttributeInfo("cap-height", true), + AttributeInfo("class", false), + AttributeInfo("clip", true), + AttributeInfo("clip-path", true), + AttributeInfo("clip-rule", true), + AttributeInfo("clipPathUnits", true), + AttributeInfo("color", true), + AttributeInfo("color-interpolation", true), + AttributeInfo("color-interpolation-filters", true), + AttributeInfo("color-profile", true), + AttributeInfo("color-rendering", true), + AttributeInfo("contentScriptType", false), + AttributeInfo("contentStyleType", false), + AttributeInfo("cursor", true), + AttributeInfo("cx", true), + AttributeInfo("cy", true), + AttributeInfo("d", true), + AttributeInfo("descent", true), + AttributeInfo("diffuseConstant", true), + AttributeInfo("direction", true), + AttributeInfo("display", true), + AttributeInfo("divisor", true), + AttributeInfo("dominant-baseline", true), + AttributeInfo("dur", true), + AttributeInfo("dx", true), + AttributeInfo("dy", true), + AttributeInfo("edgeMode", true), + AttributeInfo("elevation", true), + AttributeInfo("enable-background", true), + AttributeInfo("end", true), + AttributeInfo("exponent", true), + AttributeInfo("externalResourcesRequired", false), + AttributeInfo("feBlend", false), + AttributeInfo("feColorMatrix", false), + AttributeInfo("feComponentTransfer", false), + AttributeInfo("feComposite", false), + AttributeInfo("feConvolveMatrix", false), + AttributeInfo("feDiffuseLighting", false), + AttributeInfo("feDisplacementMap", false), + AttributeInfo("feFlood", false), + AttributeInfo("feGaussianBlur", false), + AttributeInfo("feImage", false), + AttributeInfo("feMerge", false), + AttributeInfo("feMorphology", false), + AttributeInfo("feOffset", false), + AttributeInfo("feSpecularLighting", false), + AttributeInfo("feTile", false), + AttributeInfo("fill", true), + AttributeInfo("fill-opacity", true), + AttributeInfo("fill-rule", true), + AttributeInfo("filter", true), + AttributeInfo("filterRes", true), + AttributeInfo("filterUnits", true), + AttributeInfo("flood-color", true), + AttributeInfo("flood-opacity", true), + AttributeInfo("font-family", true), + AttributeInfo("font-size", true), + AttributeInfo("font-size-adjust", true), + AttributeInfo("font-stretch", true), + AttributeInfo("font-style", true), + AttributeInfo("font-variant", true), + AttributeInfo("font-weight", true), + AttributeInfo("format", false), + AttributeInfo("from", true), + AttributeInfo("fx", true), + AttributeInfo("fy", true), + AttributeInfo("g1", true), + AttributeInfo("g2", true), + AttributeInfo("glyph-name", true), + AttributeInfo("glyph-orientation-horizontal", true), + AttributeInfo("glyph-orientation-vertical", true), + AttributeInfo("glyphRef", false), + AttributeInfo("gradientTransform", true), + AttributeInfo("gradientUnits", true), + AttributeInfo("hanging", true), + AttributeInfo("hatchContentUnits", true), // SVG 2.0 + AttributeInfo("hatchTransform", true), // SVG 2.0 TODO renamed to transform + AttributeInfo("hatchUnits", true), // SVG 2.0 + AttributeInfo("height", true), + AttributeInfo("horiz-adv-x", true), + AttributeInfo("horiz-origin-x", true), + AttributeInfo("horiz-origin-y", true), + AttributeInfo("ideographic", true), + AttributeInfo("image-rendering", true), + AttributeInfo("in", true), + AttributeInfo("in2", true), + AttributeInfo("intercept", true), + AttributeInfo("isolation", true), + AttributeInfo("k", true), + AttributeInfo("k1", true), + AttributeInfo("k2", true), + AttributeInfo("k3", true), + AttributeInfo("k4", true), + AttributeInfo("kernelMatrix", true), + AttributeInfo("kernelUnitLength", true), + AttributeInfo("kerning", true), + AttributeInfo("keyPoints", false), + AttributeInfo("keySplines", true), + AttributeInfo("keyTimes", true), + AttributeInfo("lang", true), + AttributeInfo("lengthAdjust", true), + AttributeInfo("letter-spacing", true), + AttributeInfo("lighting-color", true), + AttributeInfo("limitingConeAngle", true), + AttributeInfo("local", true), + AttributeInfo("marker-end", true), + AttributeInfo("marker-mid", true), + AttributeInfo("marker-start", true), + AttributeInfo("markerHeight", true), + AttributeInfo("markerUnits", true), + AttributeInfo("markerWidth", true), + AttributeInfo("mask", true), + AttributeInfo("maskContentUnits", true), + AttributeInfo("maskUnits", true), + AttributeInfo("mathematical", true), + AttributeInfo("max", true), + AttributeInfo("media", false), + AttributeInfo("method", false), + AttributeInfo("min", true), + AttributeInfo("mix-blend-mode", true), + AttributeInfo("mode", true), + AttributeInfo("name", true), + AttributeInfo("numOctaves", true), + AttributeInfo("offset", true), + AttributeInfo("onabort", false), + AttributeInfo("onactivate", false), + AttributeInfo("onbegin", false), + AttributeInfo("onclick", false), + AttributeInfo("onend", false), + AttributeInfo("onerror", false), + AttributeInfo("onfocusin", false), + AttributeInfo("onfocusout", false), + AttributeInfo("onload", true), + AttributeInfo("onmousedown", false), + AttributeInfo("onmousemove", false), + AttributeInfo("onmouseout", false), + AttributeInfo("onmouseover", false), + AttributeInfo("onmouseup", false), + AttributeInfo("onrepeat", false), + AttributeInfo("onresize", false), + AttributeInfo("onscroll", false), + AttributeInfo("onunload", false), + AttributeInfo("onzoom", false), + AttributeInfo("opacity", true), + AttributeInfo("operator", true), + AttributeInfo("order", true), + AttributeInfo("orient", true), + AttributeInfo("orientation", true), + AttributeInfo("origin", false), + AttributeInfo("overflow", true), + AttributeInfo("overline-position", true), + AttributeInfo("overline-thickness", true), + AttributeInfo("paint-order", true), + AttributeInfo("panose-1", true), + AttributeInfo("path", true), + AttributeInfo("pathLength", false), + AttributeInfo("patternContentUnits", true), + AttributeInfo("patternTransform", true), + AttributeInfo("patternUnits", true), + AttributeInfo("pitch", true), // SVG 2.- + AttributeInfo("pointer-events", true), + AttributeInfo("points", true), + AttributeInfo("pointsAtX", true), + AttributeInfo("pointsAtY", true), + AttributeInfo("pointsAtZ", true), + AttributeInfo("preserveAlpha", true), + AttributeInfo("preserveAspectRatio", true), + AttributeInfo("primitiveUnits", true), + AttributeInfo("r", true), + AttributeInfo("radius", true), + AttributeInfo("refX", true), + AttributeInfo("refY", true), + AttributeInfo("rendering-intent", true), + AttributeInfo("repeatCount", true), + AttributeInfo("repeatDur", true), + AttributeInfo("requiredFeatures", true), + AttributeInfo("requiredExtensions", true), + AttributeInfo("restart", true), + AttributeInfo("result", true), + AttributeInfo("rotate", true), + AttributeInfo("rx", true), + AttributeInfo("ry", true), + AttributeInfo("scale", true), + AttributeInfo("seed", true), + AttributeInfo("shape-inside", true), + AttributeInfo("shape-margin", true), + AttributeInfo("shape-outside", true), + AttributeInfo("shape-padding", true), + AttributeInfo("shape-rendering", true), + AttributeInfo("slope", true), + AttributeInfo("solid-color", true), // SVG 2.0 + AttributeInfo("solid-opacity", true), // SVG 2.0 + AttributeInfo("spacing", false), + AttributeInfo("specularConstant", true), + AttributeInfo("specularExponent", true), + AttributeInfo("spreadMethod", true), + AttributeInfo("startOffset", true), + AttributeInfo("stdDeviation", true), + AttributeInfo("stemh", true), + AttributeInfo("stemv", true), + AttributeInfo("stitchTiles", true), + AttributeInfo("stop-color", true), + AttributeInfo("stop-opacity", true), + AttributeInfo("strikethrough-position", true), + AttributeInfo("strikethrough-thickness", true), + AttributeInfo("stroke", true), + AttributeInfo("stroke-dasharray", true), + AttributeInfo("stroke-dashoffset", true), + AttributeInfo("stroke-linecap", true), + AttributeInfo("stroke-linejoin", true), + AttributeInfo("stroke-miterlimit", true), + AttributeInfo("stroke-opacity", true), + AttributeInfo("stroke-width", true), + AttributeInfo("style", true), + AttributeInfo("surfaceScale", true), + AttributeInfo("systemLanguage", true), + AttributeInfo("tableValues", true), + AttributeInfo("target", true), + AttributeInfo("targetX", true), + AttributeInfo("targetY", true), + AttributeInfo("text-align", true), + AttributeInfo("text-anchor", true), + AttributeInfo("text-decoration", true), + AttributeInfo("text-decoration-color", true), + AttributeInfo("text-decoration-line", true), + AttributeInfo("text-decoration-style", true), + AttributeInfo("text-indent", true), + AttributeInfo("text-rendering", true), + AttributeInfo("text-transform", true), + AttributeInfo("textLength", true), + AttributeInfo("title", false), + AttributeInfo("to", true), + AttributeInfo("transform", true), + AttributeInfo("type", true), + AttributeInfo("u1", true), + AttributeInfo("u2", true), + AttributeInfo("underline-position", true), + AttributeInfo("underline-thickness", true), + AttributeInfo("unicode", true), + AttributeInfo("unicode-bidi", true), + AttributeInfo("unicode-range", true), + AttributeInfo("units-per-em", true), + AttributeInfo("v-alphabetic", true), + AttributeInfo("v-hanging", true), + AttributeInfo("v-ideographic", true), + AttributeInfo("v-mathematical", true), + AttributeInfo("values", true), + AttributeInfo("version", true), + AttributeInfo("vert-adv-y", true), + AttributeInfo("vert-origin-x", true), + AttributeInfo("vert-origin-y", true), + AttributeInfo("viewBox", true), + AttributeInfo("viewTarget", false), + AttributeInfo("visibility", true), + AttributeInfo("white-space", true), + AttributeInfo("width", true), + AttributeInfo("widths", true), + AttributeInfo("word-spacing", true), + AttributeInfo("writing-mode", true), + AttributeInfo("x", true), + AttributeInfo("x-height", true), + AttributeInfo("x1", true), + AttributeInfo("x2", true), + AttributeInfo("xChannelSelector", true), + AttributeInfo("xlink:actuate", true), + AttributeInfo("xlink:arcrole", true), + AttributeInfo("xlink:href", true), + AttributeInfo("xlink:role", true), + AttributeInfo("xlink:show", true), + AttributeInfo("xlink:title", true), + AttributeInfo("xlink:type", true), + AttributeInfo("xml:base", false), + AttributeInfo("xml:space", true), + AttributeInfo("xmlns", false), + AttributeInfo("xmlns:xlink", false), + AttributeInfo("y", true), + AttributeInfo("y1", true), + AttributeInfo("y2", true), + AttributeInfo("yChannelSelector", true), + AttributeInfo("z", true), + AttributeInfo("zoomAndPan", false), + + // Extra attributes. + AttributeInfo("id", true), + AttributeInfo("inkscape:bbox-nodes", true), + AttributeInfo("inkscape:bbox-paths", true), + AttributeInfo("inkscape:box3dsidetype", true), + AttributeInfo("inkscape:collect", true), + AttributeInfo("inkscape:connection-end", true), + AttributeInfo("inkscape:connection-end-point", true), + AttributeInfo("inkscape:connection-points", true), + AttributeInfo("inkscape:connection-start", true), + AttributeInfo("inkscape:connection-start-point", true), + AttributeInfo("inkscape:connector-avoid", true), + AttributeInfo("inkscape:connector-curvature", true), + AttributeInfo("inkscape:connector-spacing", true), + AttributeInfo("inkscape:connector-type", true), + AttributeInfo("inkscape:corner0", true), + AttributeInfo("inkscape:corner7", true), + AttributeInfo("inkscape:current-layer", true), + AttributeInfo("inkscape:cx", true), + AttributeInfo("inkscape:cy", true), + AttributeInfo("inkscape:document-units", true), + AttributeInfo("inkscape:dstBox", true), + AttributeInfo("inkscape:dstColumn", true), + AttributeInfo("inkscape:dstPath", true), + AttributeInfo("inkscape:dstShape", true), + AttributeInfo("inkscape:excludeShape", true), + AttributeInfo("inkscape:expanded", true), + AttributeInfo("inkscape:flatsided", true), + AttributeInfo("inkscape:groupmode", true), + AttributeInfo("inkscape:highlight-color", true), + AttributeInfo("inkscape:href", true), + AttributeInfo("inkscape:label", true), + AttributeInfo("inkscape:layoutOptions", true), + AttributeInfo("inkscape:object-nodes", true), + AttributeInfo("inkscape:object-paths", true), + AttributeInfo("inkscape:original", true), + AttributeInfo("inkscape:original-d", true), + AttributeInfo("inkscape:pageopacity", true), + AttributeInfo("inkscape:pageshadow", true), + AttributeInfo("inkscape:path-effect", true), + AttributeInfo("inkscape:persp3d", true), + AttributeInfo("inkscape:persp3d-origin", true), + AttributeInfo("inkscape:perspectiveID", true), + AttributeInfo("inkscape:radius", true), + AttributeInfo("inkscape:randomized", true), + AttributeInfo("inkscape:rounded", true), + AttributeInfo("inkscape:snap-bbox", true), + AttributeInfo("inkscape:snap-bbox-edge-midpoints", true), + AttributeInfo("inkscape:snap-bbox-midpoints", true), + AttributeInfo("inkscape:snap-center", true), + AttributeInfo("inkscape:snap-global", true), + AttributeInfo("inkscape:snap-grids", true), + AttributeInfo("inkscape:snap-intersection-paths", true), + AttributeInfo("inkscape:snap-midpoints", true), + AttributeInfo("inkscape:snap-nodes", true), + AttributeInfo("inkscape:snap-object-midpoints", true), + AttributeInfo("inkscape:snap-others", true), + AttributeInfo("inkscape:snap-page", true), + AttributeInfo("inkscape:snap-path-clip", true), + AttributeInfo("inkscape:snap-path-mask", true), + AttributeInfo("inkscape:snap-perpendicular", true), + AttributeInfo("inkscape:snap-smooth-nodes", true), + AttributeInfo("inkscape:snap-tangential", true), + AttributeInfo("inkscape:snap-text-baseline", true), + AttributeInfo("inkscape:snap-to-guides", true), + AttributeInfo("inkscape:srcNoMarkup", true), + AttributeInfo("inkscape:srcPango", true), + AttributeInfo("inkscape:transform-center-x", true), + AttributeInfo("inkscape:transform-center-y", true), + AttributeInfo("inkscape:version", true), + AttributeInfo("inkscape:vp_x", true), + AttributeInfo("inkscape:vp_y", true), + AttributeInfo("inkscape:vp_z", true), + AttributeInfo("inkscape:window-height", true), + AttributeInfo("inkscape:window-maximized", true), + AttributeInfo("inkscape:window-width", true), + AttributeInfo("inkscape:window-x", true), + AttributeInfo("inkscape:window-y", true), + AttributeInfo("inkscape:zoom", true), + AttributeInfo("osb:paint", true), + AttributeInfo("sodipodi:arg1", true), + AttributeInfo("sodipodi:arg2", true), + AttributeInfo("sodipodi:argument", true), + AttributeInfo("sodipodi:cx", true), + AttributeInfo("sodipodi:cy", true), + AttributeInfo("sodipodi:end", true), + AttributeInfo("sodipodi:expansion", true), + AttributeInfo("sodipodi:insensitive", true), + AttributeInfo("sodipodi:linespacing", true), + AttributeInfo("sodipodi:nonprintable", true), + AttributeInfo("sodipodi:open", true), + AttributeInfo("sodipodi:original", true), + AttributeInfo("sodipodi:r1", true), + AttributeInfo("sodipodi:r2", true), + AttributeInfo("sodipodi:radius", true), + AttributeInfo("sodipodi:revolution", true), + AttributeInfo("sodipodi:role", true), + AttributeInfo("sodipodi:rx", true), + AttributeInfo("sodipodi:ry", true), + AttributeInfo("sodipodi:sides", true), + AttributeInfo("sodipodi:start", true), + AttributeInfo("sodipodi:t0", true), + AttributeInfo("sodipodi:version", false), + + // SPMeshPatch + AttributeInfo("tensor", true), + + // SPNamedView + AttributeInfo("fit-margin-top", true), + AttributeInfo("fit-margin-left", true), + AttributeInfo("fit-margin-right", true), + AttributeInfo("fit-margin-bottom", true), + AttributeInfo("units", true), + AttributeInfo("viewonly", true), + AttributeInfo("showgrid", true), +// AttributeInfo("gridtype", true), + AttributeInfo("showguides", true), + AttributeInfo("gridtolerance", true), + AttributeInfo("guidetolerance", true), + AttributeInfo("objecttolerance", true), +/* AttributeInfo("gridoriginx", true), + AttributeInfo("gridoriginy", true), + AttributeInfo("gridspacingx", true), + AttributeInfo("gridspacingy", true), + AttributeInfo("gridanglex", true), + AttributeInfo("gridanglez", true), + AttributeInfo("gridcolor", true), + AttributeInfo("gridopacity", true), + AttributeInfo("gridempcolor", true), + AttributeInfo("gridempopacity", true), + AttributeInfo("gridempspacing", true), */ + AttributeInfo("guidecolor", true), + AttributeInfo("guideopacity", true), + AttributeInfo("guidehicolor", true), + AttributeInfo("guidehiopacity", true), + AttributeInfo("showborder", true), + AttributeInfo("inkscape:showpageshadow", true), + AttributeInfo("borderlayer", true), + AttributeInfo("bordercolor", true), + AttributeInfo("borderopacity", true), + AttributeInfo("pagecolor", true), + + // SPGuide + AttributeInfo("position", true) + }; + + size_t count = sizeof(all_attrs) / sizeof(all_attrs[0]); + std::vector vect(all_attrs, all_attrs + count); + EXPECT_GT(vect.size(), size_t(100)); // should be more than + return vect; +} + +/** + * Returns a vector with counts for all IDs up to the highest known value. + * + * The index is the ID, and the value is the number of times that ID is seen. + */ +std::vector getIdIds() +{ + std::vector ids; + std::vector all_attrs = getKnownAttrs(); + ids.reserve(all_attrs.size()); // minimize memory thrashing + for (AttrItr it(all_attrs.begin()); it != all_attrs.end(); ++it) { + unsigned int id = sp_attribute_lookup(it->attr.c_str()); + if (id >= ids.size()) { + ids.resize(id + 1); + } + ids[id]++; + } + + return ids; +} + +// Ensure 'supported' value for each known attribute is correct. +TEST(AttributesTest, SupportedKnown) +{ + std::vector all_attrs = getKnownAttrs(); + for (AttrItr it(all_attrs.begin()); it != all_attrs.end(); ++it) { + unsigned int id = sp_attribute_lookup(it->attr.c_str()); + EXPECT_EQ(it->supported, id != 0u) << "Matching for attribute '" << it->attr << "'"; + } +} + +// Ensure names of known attributes are preserved when converted to id and back. +TEST(AttributesTest, NameRoundTrip) +{ + std::vector all_attrs = getKnownAttrs(); + for (AttrItr it(all_attrs.begin()); it != all_attrs.end(); ++it) { + if (it->supported) { + unsigned int id = sp_attribute_lookup(it->attr.c_str()); + char const *redoneName = reinterpret_cast(sp_attribute_name(id)); + EXPECT_TRUE(redoneName != NULL) << "For attribute '" << it->attr << "'"; + if (redoneName) { + EXPECT_EQ(it->attr, redoneName); + } + } + } +} + +/* Test for any attributes that this test program doesn't know about. + * + * If any are found, then: + * + * If it is in the `inkscape:' namespace then simply add it to all_attrs with + * `true' as the second field (`supported'). + * + * If it is in the `sodipodi:' namespace then check the spelling against sodipodi + * sources. If you don't have sodipodi sources, then don't add it: leave to someone + * else. + * + * Otherwise, it's probably a bug: ~all SVG 1.1 attributes should already be + * in the all_attrs table. However, the comment above all_attrs does mention + * some things missing from attindex.html, so there may be more. Check the SVG + * spec. Another possibility is that the attribute is new in SVG 1.2. In this case, + * check the spelling against the [draft] SVG 1.2 spec before adding to all_attrs. + * (If you can't be bothered checking the spec, then don't update all_attrs.) + * + * If the attribute isn't in either SVG 1.1 or 1.2 then it's probably a mistake + * for it not to be in the inkscape namespace. (Not sure about attributes used only + * on elements in the inkscape namespace though.) + * + * In any case, make sure that the attribute's source is documented accordingly. + */ +TEST(AttributesTest, ValuesAreKnown) +{ + std::vector ids = getIdIds(); + for (size_t i = FIRST_VALID_ID; i < ids.size(); ++i) { + if (!ids[i]) { + unsigned char const *name = sp_attribute_name(i); + EXPECT_TRUE(ids[i] > 0) << "Attribute string with enum " << i << " {" << name << "} not handled"; + } + } +} + +// Ensure two different names aren't mapped to the same enum value. +TEST(AttributesTest, ValuesUnique) +{ + std::vector ids = getIdIds(); + for (size_t i = FIRST_VALID_ID; i < ids.size(); ++i) { + EXPECT_LE(ids[i], size_t(1)) << "Attribute enum " << i << " used for multiple strings" + << " including {" << sp_attribute_name(i) << "}"; + } +} + +} // namespace + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3 From fb173e93270726a750d8928cc3adc540deb88267 Mon Sep 17 00:00:00 2001 From: su_v Date: Mon, 4 May 2015 03:04:21 +0200 Subject: cmake: add configuration option for ImageMagick Usage of ImageMagick for raster extensions and detection of image import resolution is optional; allow compiling without it. Fix failure to correctly detect ImageMagick component include dirs and libraries on linux as reported on irc: use variables which list all include dirs and libraries instead. (bzr r14102) --- CMakeLists.txt | 1 + CMakeScripts/DefineDependsandFlags.cmake | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aa998319f..97b7a664c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -84,6 +84,7 @@ option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker option(WITH_GTKSPELL "Compile with support for GTK spelling widget" ON) option(ENABLE_POPPLER "Compile with support of libpoppler" ON) option(ENABLE_POPPLER_CAIRO "Compile with support of libpoppler-cairo for rendering PDF preview (depends on ENABLE_POPPLER)" ON) +option(WITH_IMAGE_MAGICK "Compile with support of ImageMagick for raster extensions and image import resolution" ON) option(WITH_LIBCDR "Compile with support of libcdr for CorelDRAW Diagrams" ON) option(WITH_LIBVISIO "Compile with support of libvisio for Microsoft Visio Diagrams" ON) option(WITH_LIBWPG "Compile with support of libwpg for WordPerfect Graphics" ON) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index abad73a4d..854701145 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -330,16 +330,22 @@ find_package(ZLIB REQUIRED) list(APPEND INKSCAPE_INCS_SYS ${ZLIB_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${ZLIB_LIBRARIES}) -find_package(ImageMagick COMPONENTS MagickCore Magick++) -if(ImageMagick_FOUND) - list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_MagickCore_INCLUDE_DIR}) - list(APPEND INKSCAPE_LIBS ${ImageMagick_Magick++_LIBRARY}) - set(WITH_IMAGE_MAGICK ON) # enable 'Extensions > Raster' - # TODO: Cmake's ImageMagick module misses required defines for newer - # versions of ImageMagick. See also: - # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 - #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) - #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) +if(WITH_IMAGE_MAGICK) + find_package(ImageMagick COMPONENTS MagickCore Magick++) + if(ImageMagick_FOUND) + # the component-specific paths apparently fail to get detected correctly + # on some linux distros (or with older Cmake versions). + # Use variables which list all include dirs and libraries instead: + list(APPEND INKSCAPE_INCS_SYS ${ImageMagick_INCLUDE_DIRS}) + list(APPEND INKSCAPE_LIBS ${ImageMagick_LIBRARIES}) + # TODO: Cmake's ImageMagick module misses required defines for newer + # versions of ImageMagick. See also: + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776832 + #add_definitions(-DMAGICKCORE_HDRI_ENABLE=0) # FIXME (version check?) + #add_definitions(-DMAGICKCORE_QUANTUM_DEPTH=16) # FIXME (version check?) + else() + set(WITH_IMAGE_MAGICK OFF) # enable 'Extensions > Raster' + endif() endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) -- cgit v1.2.3 From 2495bd800225461079ed3b893a55dd4f73ec4d03 Mon Sep 17 00:00:00 2001 From: Ken Moffat <> Date: Mon, 4 May 2015 03:35:42 +0200 Subject: cmake: fix WITH_GTKSPELL configuration option (bzr r14103) --- CMakeScripts/DefineDependsandFlags.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 854701145..2ce7ffce9 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -297,8 +297,9 @@ if(WITH_GTKSPELL) list(APPEND INKSCAPE_INCS_SYS ${GTKSPELL_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${GTKSPELL_LIBRARIES}) add_definitions(${GTKSPELL_DEFINITIONS}) + else() + set(WITH_GTKSPELL OFF) endif() - set(WITH_GTKSPELL ${GTKSPELL_FOUND}) endif() #find_package(OpenSSL) -- cgit v1.2.3 From 3ea82abd61e068d826ff6b7b68a76cb18db5377c Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Sun, 3 May 2015 23:39:41 -0700 Subject: Initialized unit test with gtkmm/glib setup. (bzr r14104) --- test/unittest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/unittest.cpp b/test/unittest.cpp index f95c67d9c..0ec8f0383 100644 --- a/test/unittest.cpp +++ b/test/unittest.cpp @@ -11,6 +11,11 @@ #include "gtest/gtest.h" +#include + +#include "inkgc/gc-core.h" +#include "inkscape.h" + namespace { // Ensure that a known positive test works @@ -25,6 +30,18 @@ TEST(PreTest, WorldIsSane) } // namespace int main(int argc, char **argv) { + + // setup general environment +#if !GLIB_CHECK_VERSION(2,36,0) + g_type_init(); +#endif + int tmpArgc = 1; + char const *tmp[] = {"foo", ""}; + char **tmpArgv = const_cast(tmp); + Gtk::Main(tmpArgc, tmpArgv); + + Inkscape::GC::init(); + ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } -- cgit v1.2.3 From c4c82bf875072c6a7796adcd67add5694fdd2cdd Mon Sep 17 00:00:00 2001 From: houz Date: Mon, 4 May 2015 11:29:57 +0200 Subject: cmake: fix copy&paste error in LibCDR check (bzr r14105) --- CMakeScripts/DefineDependsandFlags.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 2ce7ffce9..321bf63bc 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -175,8 +175,8 @@ endif() if(WITH_LIBCDR) find_package(LibCDR) if(LIBCDR_FOUND) - set(WITH_LIBCDR00 ${LIBVISIO-0.0_FOUND}) - set(WITH_LIBCDR01 ${LIBVISIO-0.1_FOUND}) + set(WITH_LIBCDR00 ${LIBCDR-0.0_FOUND}) + set(WITH_LIBCDR01 ${LIBCDR-0.1_FOUND}) list(APPEND INKSCAPE_INCS_SYS ${LIBCDR_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${LIBCDR_LIBRARIES}) add_definitions(${LIBCDR_DEFINITIONS}) -- cgit v1.2.3 From 2eab6fad30c9c838902d9113c7e0d41b34ce79ea Mon Sep 17 00:00:00 2001 From: houz Date: Mon, 4 May 2015 12:39:09 +0200 Subject: cmake: shorter linker list (remove duplicates) (bzr r14106) --- CMakeScripts/DefineDependsandFlags.cmake | 2 ++ src/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 321bf63bc..dceed9560 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -352,6 +352,8 @@ endif() include(${CMAKE_CURRENT_LIST_DIR}/IncludeJava.cmake) # end Dependencies +list(REMOVE_DUPLICATES INKSCAPE_LIBS) +list(REMOVE_DUPLICATES INKSCAPE_INCS_SYS) # C/C++ Flags include_directories(${INKSCAPE_INCS}) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 27c5e49db..efb604aca 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -519,7 +519,7 @@ add_dependencies(inkscape inkscape_version) target_link_libraries(inkscape # order from automake #sp_LIB - nrtype_LIB + #nrtype_LIB #inkscape_LIB #sp_LIB # annoying, we need both! -- cgit v1.2.3 From 7e3aabae24c09340fd06cb69b0678158abb4a375 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 4 May 2015 12:57:06 +0200 Subject: Shorthands are not allowed as presentation attributes. (bzr r14107) --- src/style.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/style.cpp b/src/style.cpp index b65bff53f..8b41bbbd7 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -573,7 +573,15 @@ SPStyle::read( SPObject *object, Inkscape::XML::Node *repr ) { /* 3 Presentation attributes */ // std::cout << " MERGING PRESENTATION ATTRIBUTES" << std::endl; for(std::vector::size_type i = 0; i != _properties.size(); ++i) { - _properties[i]->readAttribute( repr ); + + // Shorthands are not allowed as presentation properites. + // Note: text-decoration is converted to a shorthand in CSS 3 but can still be + // read as a non-shorthand so it should not be in this list. + // We could add a flag to SPIBase to avoid string comparison. + if( _properties[i]->name.compare( "font" ) != 0 && + _properties[i]->name.compare( "marker" ) != 0 ) { + _properties[i]->readAttribute( repr ); + } } // for(SPPropMap::iterator i = _propmap.begin(); i != _propmap.end(); ++i ) { // (this->*(i->second)).readAttribute( repr ); -- cgit v1.2.3 From f9afd4f6cdee501fcfd5ae6185643796e9ec646d Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Mon, 4 May 2015 13:09:20 +0200 Subject: Fix crash in PDF export introduced in r14074 (bzr r14108) --- src/extension/internal/cairo-renderer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 49e145de0..5a5553e97 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -296,7 +296,7 @@ static void sp_group_render(SPGroup *group, CairoRenderContext *ctx) std::vector l(group->childList(false)); for(std::vector::const_iterator x = l.begin(); x!= l.end(); x++){ - SPItem *item = static_cast(*x); + SPItem *item = dynamic_cast(*x); if (item) { renderer->renderItem(ctx, item); } -- cgit v1.2.3 From abe296168df89e7f62e9d670602ffea62ad78a22 Mon Sep 17 00:00:00 2001 From: Raphael Rosch Date: Mon, 4 May 2015 12:17:58 -0400 Subject: going from swatch to flat color should start with previous swatch color Fixed bugs: - https://launchpad.net/bugs/1450112 (bzr r14109) --- src/widgets/paint-selector.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 740ce2b0e..221344296 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -35,6 +35,7 @@ #include "sp-linear-gradient.h" #include "sp-radial-gradient.h" #include "sp-mesh.h" +#include "sp-stop.h" /* fixme: Move it from dialogs to here */ #include "gradient-selector.h" #include @@ -658,6 +659,20 @@ sp_paint_selector_color_changed(SPColorSelector *csel, SPPaintSelector *psel) static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelector::Mode /*mode*/) { GtkWidget *csel; + + SPColor newcolor = psel->color; + float newalpha = psel->alpha; + + if ((psel->mode == SPPaintSelector::MODE_SWATCH) + || (psel->mode == SPPaintSelector::MODE_GRADIENT_LINEAR) + || (psel->mode == SPPaintSelector::MODE_GRADIENT_RADIAL) ) { + SPGradientSelector *gsel = getGradientFromData(psel); + if (gsel) { + SPGradient *gradient = gsel->getVector(); + newcolor = gradient->getFirstStop()->specified_color; + newalpha = gradient->getFirstStop()->opacity; + } + } sp_paint_selector_set_style_buttons(psel, psel->solid); gtk_widget_set_sensitive(psel->style, TRUE); @@ -693,8 +708,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec psel->selector = vb; /* Set color */ - SP_COLOR_SELECTOR( csel )->base->setColorAlpha( psel->color, psel->alpha ); - + SP_COLOR_SELECTOR( csel )->base->setColorAlpha( newcolor, newalpha ); } gtk_label_set_markup(GTK_LABEL(psel->label), _("Flat color")); -- cgit v1.2.3 From 0868588547bdfce731d348882f7a09374b7e7c6c Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Tue, 5 May 2015 05:41:46 -0700 Subject: Added color profile test and supporting fixture. Added conversion of color profile tests, and a test fixture that sets up a shared SPDocument for all tests in a single test case. (bzr r14110) --- test/CMakeLists.txt | 2 + test/doc-per-case-test.cpp | 52 +++++++++++++++++ test/doc-per-case-test.h | 43 ++++++++++++++ test/src/color-profile-test.cpp | 126 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 223 insertions(+) create mode 100644 test/doc-per-case-test.cpp create mode 100644 test/doc-per-case-test.h create mode 100644 test/src/color-profile-test.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 5ae403686..750b658ee 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -433,7 +433,9 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR}/__/src) add_executable(unittest unittest.cpp + doc-per-case-test.cpp src/attributes-test.cpp + src/color-profile-test.cpp ${inkscape_SRC} ${sp_SRC} ${inkscape_global_SRC} diff --git a/test/doc-per-case-test.cpp b/test/doc-per-case-test.cpp new file mode 100644 index 000000000..da75b1e65 --- /dev/null +++ b/test/doc-per-case-test.cpp @@ -0,0 +1,52 @@ +/* + * Test fixture with SPDocument per entire test case. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "doc-per-case-test.h" + +#include "inkscape.h" + +SPDocument *DocPerCaseTest::_doc = 0; + +DocPerCaseTest::DocPerCaseTest() : + ::testing::Test() +{ +} + +void DocPerCaseTest::SetUpTestCase() +{ + if ( !Inkscape::Application::exists() ) + { + // Create the global inkscape object. + Inkscape::Application::create("", false); + } + + _doc = SPDocument::createNewDoc( NULL, TRUE, true ); + ASSERT_TRUE( _doc != NULL ); +} + +void DocPerCaseTest::TearDownTestCase() +{ + if (_doc) { + _doc->doUnref(); + _doc = NULL; + } +} + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/test/doc-per-case-test.h b/test/doc-per-case-test.h new file mode 100644 index 000000000..b6f01403a --- /dev/null +++ b/test/doc-per-case-test.h @@ -0,0 +1,43 @@ +/* + * Test fixture with SPDocument per entire test case. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "gtest/gtest.h" + +#include "document.h" + + +/** + * Simple fixture that creates a single SPDocument to be shared between all tests + * in this test case. + */ +class DocPerCaseTest : public ::testing::Test +{ +public: + DocPerCaseTest(); + +protected: + static void SetUpTestCase(); + + static void TearDownTestCase(); + + static SPDocument *_doc; +}; + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/test/src/color-profile-test.cpp b/test/src/color-profile-test.cpp new file mode 100644 index 000000000..365be687a --- /dev/null +++ b/test/src/color-profile-test.cpp @@ -0,0 +1,126 @@ +/* + * Unit tests for color profile. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "gtest/gtest.h" + +#include "attributes.h" +#include "cms-system.h" +#include "color-profile.h" +#include "doc-per-case-test.h" + +namespace { + +/** + * Test fixture to inherit a shared doc and create a color profile instance per test. + */ +class ProfTest : public DocPerCaseTest +{ +public: + ProfTest() : + DocPerCaseTest(), + _prof(0) + { + } + +protected: + virtual void SetUp() + { + DocPerCaseTest::SetUp(); + _prof = new Inkscape::ColorProfile(); + ASSERT_TRUE( _prof != NULL ); + _prof->document = _doc; + } + + virtual void TearDown() + { + if (_prof) { + delete _prof; + _prof = NULL; + } + DocPerCaseTest::TearDown(); + } + + Inkscape::ColorProfile *_prof; +}; + +typedef ProfTest ColorProfileTest; + +TEST_F(ColorProfileTest, SetRenderingIntent) +{ + struct { + gchar const *attr; + guint intVal; + } + const cases[] = { + {"auto", (guint)Inkscape::RENDERING_INTENT_AUTO}, + {"perceptual", (guint)Inkscape::RENDERING_INTENT_PERCEPTUAL}, + {"relative-colorimetric", (guint)Inkscape::RENDERING_INTENT_RELATIVE_COLORIMETRIC}, + {"saturation", (guint)Inkscape::RENDERING_INTENT_SATURATION}, + {"absolute-colorimetric", (guint)Inkscape::RENDERING_INTENT_ABSOLUTE_COLORIMETRIC}, + {"something-else", (guint)Inkscape::RENDERING_INTENT_UNKNOWN}, + {"auto2", (guint)Inkscape::RENDERING_INTENT_UNKNOWN}, + }; + + for ( size_t i = 0; i < G_N_ELEMENTS( cases ); i++ ) { + _prof->setKeyValue( SP_ATTR_RENDERING_INTENT, cases[i].attr); + ASSERT_EQ( (guint)cases[i].intVal, _prof->rendering_intent ) << cases[i].attr; + } +} + +TEST_F(ColorProfileTest, SetLocal) +{ + gchar const* cases[] = { + "local", + "something", + }; + + for ( size_t i = 0; i < G_N_ELEMENTS( cases ); i++ ) { + _prof->setKeyValue( SP_ATTR_LOCAL, cases[i]); + ASSERT_TRUE( _prof->local != NULL ); + if ( _prof->local ) { + ASSERT_EQ( std::string(cases[i]), _prof->local ); + } + } + _prof->setKeyValue( SP_ATTR_LOCAL, NULL); + ASSERT_EQ( (gchar*)0, _prof->local ); +} + +TEST_F(ColorProfileTest, SetName) +{ + gchar const* cases[] = { + "name", + "something", + }; + + for ( size_t i = 0; i < G_N_ELEMENTS( cases ); i++ ) { + _prof->setKeyValue( SP_ATTR_NAME, cases[i]); + ASSERT_TRUE( _prof->name != NULL ); + if ( _prof->name ) { + ASSERT_EQ( std::string(cases[i]), _prof->name ); + } + } + _prof->setKeyValue( SP_ATTR_NAME, NULL ); + ASSERT_EQ( (gchar*)0, _prof->name ); +} + + +} // namespace + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3 From 5af8924e1de466080dc116b47edd7c8d8591652b Mon Sep 17 00:00:00 2001 From: Raphael Rosch Date: Tue, 5 May 2015 13:26:20 -0400 Subject: show filter usage count Fixed bugs: - https://launchpad.net/bugs/1169123 (bzr r14111) --- src/sp-filter.cpp | 10 ++++++++++ src/sp-filter.h | 3 +++ src/style.cpp | 2 ++ src/ui/dialog/filter-effects-dialog.cpp | 31 +++++++++++++++++++++++++------ src/ui/dialog/filter-effects-dialog.h | 4 ++++ 5 files changed, 44 insertions(+), 6 deletions(-) diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index 2bf1b11a6..1bde69dd1 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -79,6 +79,7 @@ void SPFilter::build(SPDocument *document, Inkscape::XML::Node *repr) { this->readAttr( "height" ); this->readAttr( "filterRes" ); this->readAttr( "xlink:href" ); + this->_refcount = 0; SPObject::build(document, repr); @@ -190,6 +191,15 @@ void SPFilter::set(unsigned int key, gchar const *value) { } } + +/** + * Returns the number of references to the filter. + */ +guint SPFilter::getRefCount() { + // NOTE: this is currently updated by sp_style_filter_ref_changed() in style.cpp + return _refcount; +} + /** * Receives update notifications. */ diff --git a/src/sp-filter.h b/src/sp-filter.h index e6318c569..1c214c6b7 100644 --- a/src/sp-filter.h +++ b/src/sp-filter.h @@ -54,6 +54,9 @@ public: NumberOptNumber filterRes; SPFilterReference *href; sigc::connection modified_connection; + + guint getRefCount(); + guint _refcount; Inkscape::Filters::Filter *_renderer; diff --git a/src/style.cpp b/src/style.cpp index 8b41bbbd7..fa8aed68e 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -1177,10 +1177,12 @@ void sp_style_filter_ref_changed(SPObject *old_ref, SPObject *ref, SPStyle *style) { if (old_ref) { + (dynamic_cast( old_ref ))->_refcount--; style->filter_modified_connection.disconnect(); } if ( SP_IS_FILTER(ref)) { + (dynamic_cast( ref ))->_refcount++; style->filter_modified_connection = ref->connectModified(sigc::bind(sigc::ptr_fun(&sp_style_filter_ref_modified), style)); } diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index f81519ed1..1ff9e4a1b 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -8,6 +8,7 @@ * Felipe C. da S. Sanches * Jon A. Cruz * Abhishek Sharma + * insaner * * Copyright (C) 2007 Authors * @@ -1360,8 +1361,15 @@ FilterEffectsDialog::FilterModifier::FilterModifier(FilterEffectsDialog& d) ((Gtk::CellRendererText*)_list.get_column(1)->get_first_cell())-> signal_edited().connect(sigc::mem_fun(*this, &FilterEffectsDialog::FilterModifier::on_name_edited)); + _list.append_column("#", _columns.count); + _list.get_column(2)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE); + _list.get_column(2)->set_expand(false); + sw->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); _list.get_column(1)->set_resizable(true); + _list.get_column(1)->set_sizing(Gtk::TREE_VIEW_COLUMN_AUTOSIZE); + _list.get_column(1)->set_expand(true); + _list.set_reorderable(true); _list.enable_model_drag_dest (Gdk::ACTION_MOVE); @@ -1494,6 +1502,7 @@ void FilterEffectsDialog::FilterModifier::update_selection(Selection *sel) (*iter)[_columns.sel] = 0; } } + update_counts(); } void FilterEffectsDialog::FilterModifier::on_filter_selection_changed() @@ -1565,6 +1574,15 @@ void FilterEffectsDialog::FilterModifier::on_selection_toggled(const Glib::ustri } } + +void FilterEffectsDialog::FilterModifier::update_counts() +{ + for(Gtk::TreeModel::iterator i = _model->children().begin(); i != _model->children().end(); ++i) { + SPFilter* f = SP_FILTER((*i)[_columns.filter]); + (*i)[_columns.count] = f->getRefCount(); + } +} + /* Add all filters in the document to the combobox. Keeps the same selection if possible, otherwise selects the first element */ void FilterEffectsDialog::FilterModifier::update_filters() @@ -2419,7 +2437,7 @@ bool FilterEffectsDialog::PrimitiveList::on_motion_notify_event(GdkEventMotion* get_visible_rect(vis); int vis_x, vis_y; - int vis_x2, vis_y2; // NOTE: insaner added -- necessary to get the scrolling while dragging to work + int vis_x2, vis_y2; convert_widget_to_tree_coords(vis.get_x(), vis.get_y(), vis_x2, vis_y2); convert_tree_to_widget_coords(vis.get_x(), vis.get_y(), vis_x, vis_y); @@ -2439,7 +2457,6 @@ bool FilterEffectsDialog::PrimitiveList::on_motion_notify_event(GdkEventMotion* else _autoscroll_y = 0; - // NOTE: insaner added -- necessary to get the scrolling while dragging to work double e2 = ( e->x - vis_x2/2); // horizontal scrolling if(e2 < vis_x) @@ -2752,20 +2769,22 @@ FilterEffectsDialog::FilterEffectsDialog() Gtk::ScrolledWindow* sw_infobox = Gtk::manage(new Gtk::ScrolledWindow); Gtk::HBox* infobox = Gtk::manage(new Gtk::HBox(/*homogeneous:*/false, /*spacing:*/4)); Gtk::HBox* hb_prims = Gtk::manage(new Gtk::HBox); + Gtk::VBox* vb_prims = Gtk::manage(new Gtk::VBox); _getContents()->add(*hpaned); hpaned->pack1(_filter_modifier); hpaned->pack2(_primitive_box); _primitive_box.pack_start(*sw_prims); - _primitive_box.pack_start(*hb_prims, false, false); _primitive_box.pack_start(*sw_infobox, false, false); sw_prims->add(_primitive_list); - sw_infobox->add(*infobox); + sw_infobox->add(*vb_prims); infobox->pack_start(_infobox_icon, false, false); infobox->pack_start(_infobox_desc, false, false); _infobox_desc.set_line_wrap(true); - _infobox_desc.set_size_request(200, -1); + _infobox_desc.set_size_request(250, -1); + vb_prims->pack_start(*hb_prims); + vb_prims->pack_start(*infobox); hb_prims->pack_start(_add_primitive, false, false); hb_prims->pack_start(_add_primitive_type, false, false); @@ -2781,7 +2800,7 @@ FilterEffectsDialog::FilterEffectsDialog() _add_primitive_type.signal_changed().connect( sigc::mem_fun(*this, &FilterEffectsDialog::update_primitive_infobox)); - sw_prims->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); /* NOTE: insaner -- SCROLL the connections panel thing!!! */ + sw_prims->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC); sw_prims->set_shadow_type(Gtk::SHADOW_IN); sw_infobox->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_NEVER); diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h index 3fc19e7de..a067cd70c 100644 --- a/src/ui/dialog/filter-effects-dialog.h +++ b/src/ui/dialog/filter-effects-dialog.h @@ -4,6 +4,7 @@ /* Authors: * Nicholas Bishop * Rodrigo Kumpera + * insaner * * Copyright (C) 2007 Authors * @@ -69,11 +70,13 @@ private: add(filter); add(label); add(sel); + add(count); } Gtk::TreeModelColumn filter; Gtk::TreeModelColumn label; Gtk::TreeModelColumn sel; + Gtk::TreeModelColumn count; }; void setTargetDesktop(SPDesktop *desktop); @@ -89,6 +92,7 @@ private: bool on_filter_move(const Glib::RefPtr& /*context*/, int x, int y, guint /*time*/); void on_selection_toggled(const Glib::ustring&); + void update_counts(); void update_filters(); void filter_list_button_release(GdkEventButton*); void add_filter(); -- cgit v1.2.3 From 6957740e11e8604b8439c3ef331cf3c44400d1fb Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Wed, 6 May 2015 01:48:53 -0700 Subject: Changed return type to be consistent with other calls and to make header stand-alone. (bzr r14112) --- src/dir-util.cpp | 2 +- src/dir-util.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dir-util.cpp b/src/dir-util.cpp index c9b88b007..64f7ab7e7 100644 --- a/src/dir-util.cpp +++ b/src/dir-util.cpp @@ -217,7 +217,7 @@ erange: return (NULL); } -gchar *prepend_current_dir_if_relative(gchar const *uri) +char *prepend_current_dir_if_relative(gchar const *uri) { if (!uri) { return NULL; diff --git a/src/dir-util.h b/src/dir-util.h index e78cad6a6..327e1ad5f 100644 --- a/src/dir-util.h +++ b/src/dir-util.h @@ -12,7 +12,7 @@ #include #include -/** +/** * Returns a form of \a path relative to \a base if that is easy to construct (eg if \a path * appears to be in the directory specified by \a base), otherwise returns \a path. * @@ -49,7 +49,7 @@ char *inkscape_rel2abs(char const *path, char const *base, char *result, size_t char *inkscape_abs2rel(char const *path, char const *base, char *result, size_t const size); -gchar *prepend_current_dir_if_relative(char const *filename); +char *prepend_current_dir_if_relative(char const *filename); #endif // !SEEN_DIR_UTIL_H -- cgit v1.2.3 From f2a97ac662d344badaec74c0e70844b5dedf167c Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Wed, 6 May 2015 01:54:02 -0700 Subject: Converted unit test fr dir-util for Google Test. (bzr r14113) --- test/CMakeLists.txt | 1 + test/src/dir-util-test.cpp | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 test/src/dir-util-test.cpp diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 750b658ee..0b9584631 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -436,6 +436,7 @@ add_executable(unittest doc-per-case-test.cpp src/attributes-test.cpp src/color-profile-test.cpp + src/dir-util-test.cpp ${inkscape_SRC} ${sp_SRC} ${inkscape_global_SRC} diff --git a/test/src/dir-util-test.cpp b/test/src/dir-util-test.cpp new file mode 100644 index 000000000..32b3fce74 --- /dev/null +++ b/test/src/dir-util-test.cpp @@ -0,0 +1,63 @@ +/* + * Unit tests for dir utils. + * + * Author: + * Jon A. Cruz + * + * Copyright (C) 2015 Authors + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#include "gtest/gtest.h" + +#include + +#include "dir-util.h" + +namespace { + + +TEST(DirUtilTest, Base) +{ + char const* cases[][3] = { +#if defined(WIN32) || defined(__WIN32__) + {"\\foo\\bar", "\\foo", "bar"}, + {"\\foo\\barney", "\\foo\\bar", "\\foo\\barney"}, + {"\\foo\\bar\\baz", "\\foo\\", "bar\\baz"}, + {"\\foo\\bar\\baz", "\\", "foo\\bar\\baz"}, + {"\\foo\\bar\\baz", "\\foo\\qux", "\\foo\\bar\\baz"}, +#else + {"/foo/bar", "/foo", "bar"}, + {"/foo/barney", "/foo/bar", "/foo/barney"}, + {"/foo/bar/baz", "/foo/", "bar/baz"}, + {"/foo/bar/baz", "/", "foo/bar/baz"}, + {"/foo/bar/baz", "/foo/qux", "/foo/bar/baz"}, +#endif + }; + + for ( size_t i = 0; i < G_N_ELEMENTS(cases); i++ ) + { + if ( cases[i][0] && cases[i][1] ) { // std::string can't use null. + std::string result = sp_relative_path_from_path( cases[i][0], cases[i][1] ); + ASSERT_FALSE( result.empty() ); + if ( !result.empty() ) + { + ASSERT_EQ( std::string(cases[i][2]), result ); + } + } + } +} + +} // namespace + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3 From 12fb2762bc936c08538f041be261c79f43ee80e0 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 6 May 2015 13:55:31 +0200 Subject: Compromise solution for dot grid visibilty. See bug #1357611. (bzr r14114) --- src/display/canvas-grid.cpp | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 4eda9b194..decf93626 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -906,7 +906,7 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) gdouble const syg = floor ((buf->rect.top() - ow[Geom::Y]) / sw[Geom::Y]) * sw[Geom::Y] + ow[Geom::Y]; gint const ylinestart = round((syg - ow[Geom::Y]) / sw[Geom::Y]); - //set correct coloring, depending preference (when zoomed out, always major coloring or minor coloring) + // no_emphasize_when_zoomedout determines color (minor or major) when only major grid lines/dots shown. Inkscape::Preferences *prefs = Inkscape::Preferences::get(); guint32 _empcolor; bool no_emp_when_zoomed_out = prefs->getBool("/options/grids/no_emphasize_when_zoomedout", false); @@ -922,6 +922,7 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) cairo_set_line_cap(buf->ct, CAIRO_LINE_CAP_SQUARE); if (!render_dotted) { + // Line grid gint ylinenum; gdouble y; for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { @@ -944,8 +945,23 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) } } } else { + // Dotted grid gint ylinenum; gdouble y; + + // alpha needs to be larger than in the line case to maintain a similar visual impact but + // setting it to the maximal value makes the dots dominant in some cases. Solution, + // increase the alpha by a factor of 4. This then allows some user adjustment. + guint32 _empdot = (_empcolor & 0xff) << 2; + if (_empdot > 0xff) + _empdot = 0xff; + _empdot += (_empcolor & 0xffffff00); + + guint32 _colordot = (color & 0xff) << 2; + if (_colordot > 0xff) + _colordot = 0xff; + _colordot += (color & 0xffffff00); + for (y = syg, ylinenum = ylinestart; y < buf->rect.bottom(); y += sw[Geom::Y], ylinenum++) { gint const iy = round(y); @@ -957,13 +973,15 @@ CanvasXYGrid::Render (SPCanvasBuf *buf) || (!scaled[Geom::Y] && (ylinenum % empspacing) != 0) || ((scaled[Geom::X] || scaled[Geom::Y]) && no_emp_when_zoomed_out) ) { - grid_dot (buf, ix, iy, color | (guint32)0x000000FF); // put alpha to max value + // Minor point: dot only + grid_dot (buf, ix, iy, _colordot); // | (guint32)0x000000FF); // put alpha to max value } else { + // Major point: small cross gint const pitch = 1; grid_dot (buf, ix-pitch, iy, _empcolor); grid_dot (buf, ix+pitch, iy, _empcolor); - grid_dot (buf, ix, iy, _empcolor | (guint32)0x000000FF); // put alpha to max value + grid_dot (buf, ix, iy, _empdot ); // | (guint32)0x000000FF); // put alpha to max value grid_dot (buf, ix, iy-pitch, _empcolor); grid_dot (buf, ix, iy+pitch, _empcolor); -- cgit v1.2.3 From d71254cf07e2258ab3f8b80fc09b565e4a90f422 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 6 May 2015 15:44:14 +0200 Subject: Start of implementing CSS 3 font variants (access to OpenType features). (bzr r14115) --- src/attributes.cpp | 24 ++++++++-- src/attributes.h | 23 +++++++-- src/style-enums.h | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/style.cpp | 57 ++++++++++++++++++++-- src/style.h | 18 ++++++- 5 files changed, 245 insertions(+), 14 deletions(-) diff --git a/src/attributes.cpp b/src/attributes.cpp index 568f0528a..af19360c1 100644 --- a/src/attributes.cpp +++ b/src/attributes.cpp @@ -419,6 +419,16 @@ static SPStyleProp const props[] = { {SP_PROP_FONT_STYLE, "font-style"}, {SP_PROP_FONT_VARIANT, "font-variant"}, {SP_PROP_FONT_WEIGHT, "font-weight"}, + + /* Font Variants CSS 3 */ + {SP_PROP_FONT_VARIANT_LIGATURES, "font-variant-ligatures"}, + {SP_PROP_FONT_VARIANT_POSITION, "font-variant-position"}, + {SP_PROP_FONT_VARIANT_CAPS, "font-variant-caps"}, + {SP_PROP_FONT_VARIANT_NUMERIC, "font-variant-numeric"}, + {SP_PROP_FONT_VARIANT_ALTERNATES, "font-variant-alternates"}, + {SP_PROP_FONT_VARIANT_EAST_ASIAN, "font-variant-east-asian"}, + {SP_PROP_FONT_FEATURE_SETTINGS, "font-feature-settings"}, + /* Text */ {SP_PROP_TEXT_INDENT, "text-indent"}, {SP_PROP_TEXT_ALIGN, "text-align"}, @@ -426,6 +436,7 @@ static SPStyleProp const props[] = { {SP_PROP_LETTER_SPACING, "letter-spacing"}, {SP_PROP_WORD_SPACING, "word-spacing"}, {SP_PROP_TEXT_TRANSFORM, "text-transform"}, + /* Text (css3) */ {SP_PROP_DIRECTION, "direction"}, {SP_PROP_BLOCK_PROGRESSION, "block-progression"}, @@ -439,16 +450,21 @@ static SPStyleProp const props[] = { {SP_PROP_KERNING, "kerning"}, {SP_PROP_TEXT_ANCHOR, "text-anchor"}, {SP_PROP_WHITE_SPACE, "white-space"}, + /* SVG 2 Text Wrapping */ {SP_PROP_SHAPE_INSIDE, "shape-inside"}, {SP_PROP_SHAPE_OUTSIDE, "shape-outside"}, {SP_PROP_SHAPE_PADDING, "shape-padding"}, {SP_PROP_SHAPE_MARGIN, "shape-margin"}, + /* Text Decoration */ - {SP_PROP_TEXT_DECORATION, "text-decoration"}, - {SP_PROP_TEXT_DECORATION_LINE, "text-decoration-line"}, - {SP_PROP_TEXT_DECORATION_STYLE,"text-decoration-style"}, - {SP_PROP_TEXT_DECORATION_COLOR,"text-decoration-color"}, + {SP_PROP_TEXT_DECORATION, "text-decoration"}, + {SP_PROP_TEXT_DECORATION_LINE, "text-decoration-line"}, + {SP_PROP_TEXT_DECORATION_STYLE, "text-decoration-style"}, + {SP_PROP_TEXT_DECORATION_COLOR, "text-decoration-color"}, + {SP_PROP_TEXT_DECORATION_FILL, "text-decoration-fill"}, + {SP_PROP_TEXT_DECORATION_STROKE,"text-decoration-stroke"}, + /* Misc */ {SP_PROP_CLIP, "clip"}, {SP_PROP_COLOR, "color"}, diff --git a/src/attributes.h b/src/attributes.h index 91c8868f9..7d6ea70a0 100644 --- a/src/attributes.h +++ b/src/attributes.h @@ -424,6 +424,15 @@ enum SPAttributeEnum { SP_PROP_FONT_VARIANT, SP_PROP_FONT_WEIGHT, + /* Font Variants CSS 3 */ + SP_PROP_FONT_VARIANT_LIGATURES, + SP_PROP_FONT_VARIANT_POSITION, + SP_PROP_FONT_VARIANT_CAPS, + SP_PROP_FONT_VARIANT_NUMERIC, + SP_PROP_FONT_VARIANT_ALTERNATES, + SP_PROP_FONT_VARIANT_EAST_ASIAN, + SP_PROP_FONT_FEATURE_SETTINGS, + /* Text Layout */ SP_PROP_TEXT_INDENT, SP_PROP_TEXT_ALIGN, @@ -446,16 +455,20 @@ enum SPAttributeEnum { SP_PROP_TEXT_ANCHOR, SP_PROP_WHITE_SPACE, + /* SVG 2 Text Wrapping */ SP_PROP_SHAPE_INSIDE, SP_PROP_SHAPE_OUTSIDE, SP_PROP_SHAPE_PADDING, SP_PROP_SHAPE_MARGIN, - /* Text Decoration */ - SP_PROP_TEXT_DECORATION, /* SVG 1 underline etc.( no color or style) OR SVG2 with _LINE, _STYLE, _COLOR values */ - SP_PROP_TEXT_DECORATION_LINE, /* SVG 2 underline etc. */ - SP_PROP_TEXT_DECORATION_STYLE, /* SVG 2 proposed solid [SVG 1], dotted, etc.)*/ - SP_PROP_TEXT_DECORATION_COLOR, /* SVG 2 proposed same as text [SVG 1], specified*/ + /* Text Decoration CSS 2/CSS 3 Shorthand */ + SP_PROP_TEXT_DECORATION, + /* Text Decoration CSS 3/SVG 2 */ + SP_PROP_TEXT_DECORATION_LINE, + SP_PROP_TEXT_DECORATION_STYLE, + SP_PROP_TEXT_DECORATION_COLOR, + SP_PROP_TEXT_DECORATION_FILL, + SP_PROP_TEXT_DECORATION_STROKE, /* Misc */ SP_PROP_CLIP, diff --git a/src/style-enums.h b/src/style-enums.h index f52752018..f235b6699 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -72,6 +72,72 @@ enum SPCSSFontStretch { SP_CSS_FONT_STRETCH_WIDER }; +// Can select more than one +enum SPCSSFontVariantLigatures { + SP_CSS_FONT_VARIANT_LIGATURES_NORMAL, + SP_CSS_FONT_VARIANT_LIGATURES_NONE, + SP_CSS_FONT_VARIANT_LIGATURES_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON, + SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY, + SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL, + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL, + SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL +}; + +enum SPCSSFontVariantPosition { + SP_CSS_FONT_VARIANT_POSITION_NORMAL, + SP_CSS_FONT_VARIANT_POSITION_SUB, + SP_CSS_FONT_VARIANT_POSITION_SUPER +}; + +enum SPCSSFontVariantCaps { + SP_CSS_FONT_VARIANT_CAPS_NORMAL, + SP_CSS_FONT_VARIANT_CAPS_SMALL, + SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL, + SP_CSS_FONT_VARIANT_CAPS_PETITE, + SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE, + SP_CSS_FONT_VARIANT_CAPS_UNICASE, + SP_CSS_FONT_VARIANT_CAPS_TITLING, +}; + +enum SPCSSFontVariantNumeric { + SP_CSS_FONT_VARIANT_NUMERIC_NORMAL, + SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS, + SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS, + SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL, + SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO +}; + +enum SPCSSFontVariantAlternates { + SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL, + SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC, + SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET, + SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT, + SP_CSS_FONT_VARIANT_ALTERNATES_SWASH, + SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS, + SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION +}; + +enum SPCSSFontVariantEastAsian { + SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90, + SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04, + SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED, + SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL, + SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH, + SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY +}; + enum SPCSSTextAlign { SP_CSS_TEXT_ALIGN_START, SP_CSS_TEXT_ALIGN_END, @@ -309,6 +375,77 @@ static SPStyleEnum const enum_font_stretch[] = { {NULL, -1} }; +static SPStyleEnum const enum_font_variant_ligatures[] = { + {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL}, + {"none", SP_CSS_FONT_VARIANT_LIGATURES_NONE}, + {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON}, + {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_COMMON}, + {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, + {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_DISCRETIONARY}, + {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, + {"nohistorical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NO_HISTORICAL}, + {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, + {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NO_CONTEXTUAL}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_position[] = { + {"normal", SP_CSS_FONT_VARIANT_POSITION_NORMAL}, + {"sub", SP_CSS_FONT_VARIANT_POSITION_SUB}, + {"super", SP_CSS_FONT_VARIANT_POSITION_SUPER}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_caps[] = { + {"normal", SP_CSS_FONT_VARIANT_CAPS_NORMAL}, + {"small-caps", SP_CSS_FONT_VARIANT_CAPS_SMALL}, + {"all-small-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL}, + {"petite-caps", SP_CSS_FONT_VARIANT_CAPS_PETITE}, + {"all_petite-caps", SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE}, + {"unicase", SP_CSS_FONT_VARIANT_CAPS_UNICASE}, + {"titling", SP_CSS_FONT_VARIANT_CAPS_TITLING}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_numeric[] = { + {"normal", SP_CSS_FONT_VARIANT_NUMERIC_NORMAL}, + {"lining-nums", SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS}, + {"oldstyle-nums", SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS}, + {"proportional-nums", SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS}, + {"tabular-nums", SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS}, + {"diagonal-fractions", SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS}, + {"stacked-fractions", SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS}, + {"ordinal", SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL}, + {"slashed-zero", SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_alternates[] = { + {"normal", SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL}, + {"historical-forms", SP_CSS_FONT_VARIANT_ALTERNATES_HISTORICAL_FORMS}, + {"stylistic", SP_CSS_FONT_VARIANT_ALTERNATES_STYLISTIC}, + {"styleset", SP_CSS_FONT_VARIANT_ALTERNATES_STYLESET}, + {"character_variant", SP_CSS_FONT_VARIANT_ALTERNATES_CHARACTER_VARIANT}, + {"swash", SP_CSS_FONT_VARIANT_ALTERNATES_SWASH}, + {"ornaments", SP_CSS_FONT_VARIANT_ALTERNATES_ORNAMENTS}, + {"annotation", SP_CSS_FONT_VARIANT_ALTERNATES_ANNOTATION}, + {NULL, -1} +}; + +static SPStyleEnum const enum_font_variant_east_asian[] = { + {"normal", SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL}, + {"jis78", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS78}, + {"jis83", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS83}, + {"jis90", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS90}, + {"jis04", SP_CSS_FONT_VARIANT_EAST_ASIAN_JIS04}, + {"simplified", SP_CSS_FONT_VARIANT_EAST_ASIAN_SIMPLIFIED}, + {"traditional", SP_CSS_FONT_VARIANT_EAST_ASIAN_TRADITIONAL}, + {"full-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_FULL_WIDTH}, + {"proportional-width", SP_CSS_FONT_VARIANT_EAST_ASIAN_PROPORTIONAL_WIDTH}, + {"ruby", SP_CSS_FONT_VARIANT_EAST_ASIAN_RUBY}, + {NULL, -1} +}; + static SPStyleEnum const enum_text_align[] = { {"start", SP_CSS_TEXT_ALIGN_START}, {"end", SP_CSS_TEXT_ALIGN_END}, diff --git a/src/style.cpp b/src/style.cpp index fa8aed68e..49a13604b 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -14,7 +14,7 @@ * Copyright (C) 2001 Ximian, Inc. * Copyright (C) 2005 Monash University * Copyright (C) 2012 Kris De Gussem - * Copyright (C) 2014 Tavmjong Bah + * Copyright (C) 2014-2015 Tavmjong Bah * * Released under GNU GPL, read the file 'COPYING' for more information */ @@ -118,6 +118,15 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : font(), // SPIFont font_specification( "-inkscape-font-specification" ), // SPIString + // Font variants + font_variant_ligatures( "font-variant-ligatures", enum_font_variant_ligatures, SP_CSS_FONT_VARIANT_LIGATURES_NORMAL ), + font_variant_position( "font-variant-position", enum_font_variant_position, SP_CSS_FONT_VARIANT_POSITION_NORMAL ), + font_variant_caps( "font-variant-caps", enum_font_variant_caps, SP_CSS_FONT_VARIANT_CAPS_NORMAL ), + font_variant_numeric( "font-variant-numeric", enum_font_variant_numeric, SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ), + font_variant_alternates("font-variant-alternates", enum_font_variant_alternates, SP_CSS_FONT_VARIANT_ALTERNATES_NORMAL ), + font_variant_east_asian("font-variant-east_asian", enum_font_variant_east_asian, SP_CSS_FONT_VARIANT_EAST_ASIAN_NORMAL ), + font_feature_settings( "font-feature-settings", "normal" ), + // Text related properties text_indent( "text-indent", 0.0 ), // SPILength text_align( "text-align", enum_text_align, SP_CSS_TEXT_ALIGN_START ), @@ -288,6 +297,15 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : _properties.push_back( &font ); _properties.push_back( &font_specification ); + // Font variants + _properties.push_back( &font_variant_ligatures ); + _properties.push_back( &font_variant_position ); + _properties.push_back( &font_variant_caps ); + _properties.push_back( &font_variant_numeric ); + _properties.push_back( &font_variant_alternates ); + _properties.push_back( &font_variant_east_asian ); + _properties.push_back( &font_feature_settings ); + _properties.push_back( &text_indent ); _properties.push_back( &text_align ); @@ -374,6 +392,14 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : // _propmap.insert( std::make_pair( font.name, reinterpret_cast(&SPStyle::font ) ) ); // _propmap.insert( std::make_pair( font_specification.name, reinterpret_cast(&SPStyle::font_specification ) ) ); + // font_variant_ligatures ); + // font_variant_position ); + // font_variant_caps ); + // font_variant_numeric ); + // font_variant_alternates ); + // font_variant_east_asian ); + // font_feature_settings ); + // _propmap.insert( std::make_pair( text_indent.name, reinterpret_cast(&SPStyle::text_indent ) ) ); // _propmap.insert( std::make_pair( text_align.name, reinterpret_cast(&SPStyle::text_align ) ) ); @@ -574,9 +600,9 @@ SPStyle::read( SPObject *object, Inkscape::XML::Node *repr ) { // std::cout << " MERGING PRESENTATION ATTRIBUTES" << std::endl; for(std::vector::size_type i = 0; i != _properties.size(); ++i) { - // Shorthands are not allowed as presentation properites. - // Note: text-decoration is converted to a shorthand in CSS 3 but can still be - // read as a non-shorthand so it should not be in this list. + // Shorthands are not allowed as presentation properites. Note: text-decoration and + // font-variant are converted to shorthands in CSS 3 but can still be read as a + // non-shorthand for compatability with older renders, so they should not be in this list. // We could add a flag to SPIBase to avoid string comparison. if( _properties[i]->name.compare( "font" ) != 0 && _properties[i]->name.compare( "marker" ) != 0 ) { @@ -694,6 +720,29 @@ SPStyle::readIfUnset( gint id, gchar const *val ) { font.readIfUnset( val ); break; + /* Font Variants CSS 3 */ + case SP_PROP_FONT_VARIANT_LIGATURES: + font_variant_ligatures.readIfUnset( val ); + break; + case SP_PROP_FONT_VARIANT_POSITION: + font_variant_position.readIfUnset( val ); + break; + case SP_PROP_FONT_VARIANT_CAPS: + font_variant_caps.readIfUnset( val ); + break; + case SP_PROP_FONT_VARIANT_NUMERIC: + font_variant_numeric.readIfUnset( val ); + break; + case SP_PROP_FONT_VARIANT_ALTERNATES: + font_variant_alternates.readIfUnset( val ); + break; + case SP_PROP_FONT_VARIANT_EAST_ASIAN: + font_variant_east_asian.readIfUnset( val ); + break; + case SP_PROP_FONT_FEATURE_SETTINGS: + font_feature_settings.readIfUnset( val ); + break; + /* Text */ case SP_PROP_TEXT_INDENT: text_indent.readIfUnset( val ); diff --git a/src/style.h b/src/style.h index ab34476b3..2618662f5 100644 --- a/src/style.h +++ b/src/style.h @@ -94,7 +94,7 @@ public: /** Font style */ SPIEnum font_style; - /** Which substyle of the font */ + /** Which substyle of the font (CSS 2. CSS 3 redefines as shorthand) */ SPIEnum font_variant; /** Weight of the font */ SPIEnum font_weight; @@ -111,6 +111,22 @@ public: /** Full font name, as font_factory::ConstructFontSpecification would give, for internal use. */ SPIString font_specification; + /* Font variants -------------------- */ + /** Font variant ligatures */ + SPIEnum font_variant_ligatures; + /** Font variant position (subscript/superscript) */ + SPIEnum font_variant_position; + /** Font variant caps (small caps) */ + SPIEnum font_variant_caps; + /** Font variant numeric (numerical formatting) */ + SPIEnum font_variant_numeric; + /** Font variant alternates (alternates/swatches) */ + SPIEnum font_variant_alternates; + /** Font variant East Asian */ + SPIEnum font_variant_east_asian; + /** Font feature settings (Low level access to TrueType tables) */ + SPIString font_feature_settings; + /* Text ----------------------------- */ /** First line indent of paragraphs (css2 16.1) */ -- cgit v1.2.3 From 9c2dcd93aa8c7e2975bda72f92603fcd0a343a95 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Wed, 6 May 2015 17:21:03 +0200 Subject: UI. Fix for Bug #1450877 (GUI glitch in Object Properties) Fixed bugs: - https://launchpad.net/bugs/1450877 (bzr r14116) --- src/ui/dialog/object-properties.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index dfe211e94..fc21a30d4 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -467,14 +467,14 @@ void ObjectProperties::_labelChanged() gchar *id = g_strdup(_entry_id.get_text().c_str()); g_strcanon(id, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.:", '_'); if (strcmp(id, item->getId()) == 0) { - _label_id.set_markup_with_mnemonic(_("_ID:")); + _label_id.set_markup_with_mnemonic(_("_ID:") + Glib::ustring(" ")); } else if (!*id || !isalnum (*id)) { _label_id.set_text(_("Id invalid! ")); } else if (SP_ACTIVE_DOCUMENT->getObjectById(id) != NULL) { _label_id.set_text(_("Id exists! ")); } else { SPException ex; - _label_id.set_markup_with_mnemonic(_("_ID:")); + _label_id.set_markup_with_mnemonic(_("_ID:") + Glib::ustring(" ")); SP_EXCEPTION_INIT(&ex); item->setAttribute("id", id, &ex); DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM, _("Set object ID")); -- cgit v1.2.3 From 8c3f982781088c386acb4105119b19d9c7160502 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 7 May 2015 00:10:23 +0200 Subject: fix crash due to logic error in Selection::_removeObjectDescendants (bzr r14117) --- src/selection.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/selection.cpp b/src/selection.cpp index 53772c381..f728f3381 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -481,17 +481,21 @@ std::vector Selection::getSnapPoints(SnapPreferenc } void Selection::_removeObjectDescendants(SPObject *obj) { + std::vector toremove; for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { SPObject *sel_obj= *iter; SPObject *parent = sel_obj->parent; while (parent) { if ( parent == obj ) { - _remove(sel_obj); + toremove.push_back(sel_obj); break; } parent = parent->parent; } } + for ( std::vector::const_iterator iter=toremove.begin();iter!=toremove.end();iter++ ) { + _remove(*iter); + } } void Selection::_removeObjectAncestors(SPObject *obj) { -- cgit v1.2.3 From fe6f8f1b7976197de20964be02e594d058aead84 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 7 May 2015 00:39:26 +0200 Subject: "select same..." no longer returns groups. (bzr r14118) --- src/selection-chemistry.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index f444f4217..7a5c2c2d5 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1837,6 +1837,15 @@ void sp_select_same_fill_stroke_style(SPDesktop *desktop, gboolean fill, gboolea Inkscape::Selection *selection = desktop->getSelection(); std::vector items = selection->itemList(); + + std::vector tmp; + for (std::vector::const_iterator iter=all_list.begin();iter!=all_list.end();iter++) { + if(!SP_IS_GROUP(*iter)){ + tmp.push_back(*iter); + } + } + all_list=tmp; + for (std::vector::const_iterator sel_iter=items.begin();sel_iter!=items.end();sel_iter++) { SPItem *sel = *sel_iter; std::vector matches = all_list; -- cgit v1.2.3 From c8aad8eba683cd12ddfde4acca3870e859216f21 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Thu, 7 May 2015 01:18:59 +0200 Subject: fix sorts (bzr r14119) --- src/selection-chemistry.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 7a5c2c2d5..8bc62d4b9 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -927,7 +927,7 @@ static SPObject *prev_sibling(SPObject *child) return prev; } -int sp_item_repr_compare_position_obj(SPObject const *first, SPObject const *second) +bool sp_item_repr_compare_position_bool(SPObject const *first, SPObject const *second) { return sp_repr_compare_position(((SPItem*)first)->getRepr(), ((SPItem*)second)->getRepr())<0; @@ -952,7 +952,7 @@ sp_selection_raise(Inkscape::Selection *selection, SPDesktop *desktop) /* Construct reverse-ordered list of selected children. */ std::vector rev(items); - sort(rev.begin(),rev.end(),sp_item_repr_compare_position); + sort(rev.begin(),rev.end(),sp_item_repr_compare_position_bool); // Determine the common bbox of the selected items. Geom::OptRect selected = enclose_items(items); @@ -1034,7 +1034,7 @@ void sp_selection_lower(Inkscape::Selection *selection, SPDesktop *desktop) /* Construct direct-ordered list of selected children. */ std::vector rev(items); - sort(rev.begin(),rev.end(),sp_item_repr_compare_position); + sort(rev.begin(),rev.end(),sp_item_repr_compare_position_bool); // Iterate over all objects in the selection (starting from top). if (selected) { @@ -3518,7 +3518,7 @@ void sp_selection_create_bitmap_copy(SPDesktop *desktop) std::vector items(selection->itemList()); // Sort items so that the topmost comes last - sort(items.begin(),items.end(),sp_item_repr_compare_position); + sort(items.begin(),items.end(),sp_item_repr_compare_position_bool); // Generate a random value from the current time (you may create bitmap from the same object(s) // multiple times, and this is done so that they don't clash) -- cgit v1.2.3 From 3e3607e37584c4688dcaf35bac415a409893adef Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Thu, 7 May 2015 17:42:37 +0200 Subject: Exporting. Fix for Bug #1452560 (Rectangles missing from saved SIF). Fixed bugs: - https://launchpad.net/bugs/1452560 (bzr r14120) --- share/extensions/synfig_prepare.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/extensions/synfig_prepare.py b/share/extensions/synfig_prepare.py index c6ad48c97..ebc50fd8e 100755 --- a/share/extensions/synfig_prepare.py +++ b/share/extensions/synfig_prepare.py @@ -86,7 +86,7 @@ class InkscapeActionGroup(object): def select_id(self, object_id): """Select object with given id""" - self.command += "--select='%s' " % (object_id) + self.command += "--select=%s " % (object_id) if not self.has_selection: self.has_selection = True -- cgit v1.2.3 From a06c4852edb10e38fce19fd2df3833c03b6a15e4 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 00:12:09 +0200 Subject: fix crash when converting a group of objects to path (bzr r14121) --- src/path-chemistry.cpp | 8 ++++++-- src/selection-chemistry.cpp | 16 ++++++++++++---- src/ui/tools/eraser-tool.cpp | 4 +++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 8d2695b85..98148b916 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -388,7 +388,9 @@ sp_item_list_to_curves(const std::vector &items, std::vector& if (repr) { to_select.insert(to_select.begin(),repr); did = true; - selected.erase(find(selected.begin(),selected.end(),item)); + std::vector::iterator element=find(selected.begin(),selected.end(),item); + if(element != selected.end()) + selected.erase(find(selected.begin(),selected.end(),item)); } continue; @@ -413,7 +415,9 @@ sp_item_list_to_curves(const std::vector &items, std::vector& continue; did = true; - selected.erase(find(selected.begin(),selected.end(),item)); + std::vector::iterator element=find(selected.begin(),selected.end(),item); + if(element != selected.end()) + selected.erase(element); // remember the position of the item gint pos = item->getRepr()->position(); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 8bc62d4b9..3a68b03e5 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3922,7 +3922,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { reprs_to_group.push_back(static_cast(i->data)->getRepr()); - items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),static_cast(i->data))); + std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),static_cast(i->data)); + if(element != items_to_select.end()) + items_to_select.erase(element); } sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); @@ -3972,7 +3974,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *spnew = current->duplicate(xml_doc); gint position = current->position(); - items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),item)); + std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),item); + if(element != items_to_select.end()) + items_to_select.erase(element); current->parent()->appendChild(group); sp_repr_unparent(current); group->appendChild(spnew); @@ -3996,7 +4000,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = items_to_delete; NULL != i; i = i->next) { SPObject *item = reinterpret_cast(i->data); item->deleteObject(false); - items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),item)); + std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),item); + if(element != items_to_select.end()) + items_to_select.erase(element); } g_slist_free(items_to_delete); @@ -4121,7 +4127,9 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (GSList *i = items_to_ungroup ; NULL != i ; i = i->next) { SPGroup *group = dynamic_cast(static_cast(i->data)); if (group) { - items_to_select.erase(find(items_to_select.begin(),items_to_select.end(),group)); + std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),group); + if(element != items_to_select.end()) + items_to_select.erase(element); std::vector children; sp_item_group_ungroup(group, children, false); items_to_select.insert(items_to_select.end(),children.rbegin(),children.rend()); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 01b75fdb4..0af347bef 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -674,7 +674,9 @@ void EraserTool::set_to_accumulated() { Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); toWorkOn = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); } - toWorkOn.erase(find(toWorkOn.begin(),toWorkOn.end(),acid)); + std::vector::iterator element = find(toWorkOn.begin(),toWorkOn.end(),acid); + if(element != toWorkOn.end()) + toWorkOn.erase(element); } else { toWorkOn= selection->itemList(); wasSelection = true; -- cgit v1.2.3 From fbe59eb1913a779115d9c4769a4066d08e30ff44 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 00:25:20 +0200 Subject: better fix, using std::remove instead of std::erase (bzr r14122) --- src/path-chemistry.cpp | 8 ++------ src/selection-chemistry.cpp | 16 ++++------------ src/ui/tools/eraser-tool.cpp | 4 +--- 3 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index 98148b916..ff307cd66 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -388,9 +388,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& if (repr) { to_select.insert(to_select.begin(),repr); did = true; - std::vector::iterator element=find(selected.begin(),selected.end(),item); - if(element != selected.end()) - selected.erase(find(selected.begin(),selected.end(),item)); + remove(selected.begin(),selected.end(),item); } continue; @@ -415,9 +413,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& continue; did = true; - std::vector::iterator element=find(selected.begin(),selected.end(),item); - if(element != selected.end()) - selected.erase(element); + remove(selected.begin(),selected.end(),item); // remember the position of the item gint pos = item->getRepr()->position(); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 3a68b03e5..1e3afc6a8 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3922,9 +3922,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { reprs_to_group.push_back(static_cast(i->data)->getRepr()); - std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),static_cast(i->data)); - if(element != items_to_select.end()) - items_to_select.erase(element); + remove(items_to_select.begin(),items_to_select.end(),static_cast(i->data)); } sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); @@ -3974,9 +3972,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *spnew = current->duplicate(xml_doc); gint position = current->position(); - std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),item); - if(element != items_to_select.end()) - items_to_select.erase(element); + remove(items_to_select.begin(),items_to_select.end(),item); current->parent()->appendChild(group); sp_repr_unparent(current); group->appendChild(spnew); @@ -4000,9 +3996,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = items_to_delete; NULL != i; i = i->next) { SPObject *item = reinterpret_cast(i->data); item->deleteObject(false); - std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),item); - if(element != items_to_select.end()) - items_to_select.erase(element); + remove(items_to_select.begin(),items_to_select.end(),item); } g_slist_free(items_to_delete); @@ -4127,9 +4121,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (GSList *i = items_to_ungroup ; NULL != i ; i = i->next) { SPGroup *group = dynamic_cast(static_cast(i->data)); if (group) { - std::vector::iterator element = find(items_to_select.begin(),items_to_select.end(),group); - if(element != items_to_select.end()) - items_to_select.erase(element); + remove(items_to_select.begin(),items_to_select.end(),group); std::vector children; sp_item_group_ungroup(group, children, false); items_to_select.insert(items_to_select.end(),children.rbegin(),children.rend()); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 0af347bef..8a9db6c72 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -674,9 +674,7 @@ void EraserTool::set_to_accumulated() { Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); toWorkOn = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); } - std::vector::iterator element = find(toWorkOn.begin(),toWorkOn.end(),acid); - if(element != toWorkOn.end()) - toWorkOn.erase(element); + std::remove(toWorkOn.begin(),toWorkOn.end(),acid); } else { toWorkOn= selection->itemList(); wasSelection = true; -- cgit v1.2.3 From 57808dd1abe86ae0088a74bd88041321f5df5fb8 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 00:45:15 +0200 Subject: fix for stl "remove" (bzr r14123) --- src/path-chemistry.cpp | 4 ++-- src/selection-chemistry.cpp | 8 ++++---- src/ui/tools/eraser-tool.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/path-chemistry.cpp b/src/path-chemistry.cpp index ff307cd66..7bd5b6298 100644 --- a/src/path-chemistry.cpp +++ b/src/path-chemistry.cpp @@ -388,7 +388,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& if (repr) { to_select.insert(to_select.begin(),repr); did = true; - remove(selected.begin(),selected.end(),item); + selected.erase(remove(selected.begin(), selected.end(), item), selected.end()); } continue; @@ -413,7 +413,7 @@ sp_item_list_to_curves(const std::vector &items, std::vector& continue; did = true; - remove(selected.begin(),selected.end(),item); + selected.erase(remove(selected.begin(), selected.end(), item), selected.end()); // remember the position of the item gint pos = item->getRepr()->position(); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 1e3afc6a8..2cd4f6b4e 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3922,7 +3922,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = apply_to_items ; NULL != i ; i = i->next) { reprs_to_group.push_back(static_cast(i->data)->getRepr()); - remove(items_to_select.begin(),items_to_select.end(),static_cast(i->data)); + items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), static_cast(i->data)), items_to_select.end()); } sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); @@ -3972,7 +3972,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::XML::Node *spnew = current->duplicate(xml_doc); gint position = current->position(); - remove(items_to_select.begin(),items_to_select.end(),item); + items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), item), items_to_select.end()); current->parent()->appendChild(group); sp_repr_unparent(current); group->appendChild(spnew); @@ -3996,7 +3996,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ for (GSList *i = items_to_delete; NULL != i; i = i->next) { SPObject *item = reinterpret_cast(i->data); item->deleteObject(false); - remove(items_to_select.begin(),items_to_select.end(),item); + items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), item), items_to_select.end()); } g_slist_free(items_to_delete); @@ -4121,7 +4121,7 @@ void sp_selection_unset_mask(SPDesktop *desktop, bool apply_clip_path) { for (GSList *i = items_to_ungroup ; NULL != i ; i = i->next) { SPGroup *group = dynamic_cast(static_cast(i->data)); if (group) { - remove(items_to_select.begin(),items_to_select.end(),group); + items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), group), items_to_select.end()); std::vector children; sp_item_group_ungroup(group, children, false); items_to_select.insert(items_to_select.end(),children.rbegin(),children.rend()); diff --git a/src/ui/tools/eraser-tool.cpp b/src/ui/tools/eraser-tool.cpp index 8a9db6c72..10f8c8694 100644 --- a/src/ui/tools/eraser-tool.cpp +++ b/src/ui/tools/eraser-tool.cpp @@ -674,7 +674,7 @@ void EraserTool::set_to_accumulated() { Inkscape::Rubberband *r = Inkscape::Rubberband::get(desktop); toWorkOn = desktop->getDocument()->getItemsAtPoints(desktop->dkey, r->getPoints()); } - std::remove(toWorkOn.begin(),toWorkOn.end(),acid); + toWorkOn.erase(std::remove(toWorkOn.begin(), toWorkOn.end(), acid), toWorkOn.end()); } else { toWorkOn= selection->itemList(); wasSelection = true; -- cgit v1.2.3 From 0f23d91bdb4d8fca7be0c695e65a10b205fee1fc Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 02:49:43 +0200 Subject: Fixed the layer blends (bzr r14124) --- src/ui/widget/object-composite-settings.cpp | 4 ++-- src/ui/widget/style-subject.cpp | 24 ++++++++++++------------ src/ui/widget/style-subject.h | 10 +++------- 3 files changed, 17 insertions(+), 21 deletions(-) diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index 598a90e95..8acf083d0 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -125,8 +125,8 @@ ObjectCompositeSettings::_blendBlurValueChanged() const Glib::ustring blendmode = _fe_cb.get_blend_mode(); //apply created filter to every selected item - std::vector sel=_subject->getDesktop()->getSelection()->itemList(); - for (std::vector::const_iterator i = sel.begin() ; i != sel.end() ; ++i ) { + std::vector sel=_subject->list(); + for (std::vector::const_iterator i = sel.begin() ; i != sel.end() ; ++i ) { if (!SP_IS_ITEM(*i)) { continue; } diff --git a/src/ui/widget/style-subject.cpp b/src/ui/widget/style-subject.cpp index 95b89bf5f..da3bbcd20 100644 --- a/src/ui/widget/style-subject.cpp +++ b/src/ui/widget/style-subject.cpp @@ -54,15 +54,13 @@ Inkscape::Selection *StyleSubject::Selection::_getSelection() const { return NULL; } } -/* -StyleSubject::iterator StyleSubject::Selection::begin() { + +std::vector StyleSubject::Selection::list(){ Inkscape::Selection *selection = _getSelection(); - if (selection) { - return iterator(selection->list()); - } else { - return iterator(NULL); - } -}*/ + if(selection) + return selection->list(); + else return std::vector(); +} Geom::OptRect StyleSubject::Selection::getBounds(SPItem::BBoxType type) { Inkscape::Selection *selection = _getSelection(); @@ -133,10 +131,12 @@ SPObject *StyleSubject::CurrentLayer::_getLayerSList() const { return _element; } -/* -StyleSubject::iterator StyleSubject::CurrentLayer::begin() { - return iterator(_getLayerSList()); -}*/ + +std::vector StyleSubject::CurrentLayer::list(){ + std::vector list; + list.push_back(_element); + return list; +} Geom::OptRect StyleSubject::CurrentLayer::getBounds(SPItem::BBoxType type) { SPObject *layer = _getLayer(); diff --git a/src/ui/widget/style-subject.h b/src/ui/widget/style-subject.h index 60f979eb0..15a072f44 100644 --- a/src/ui/widget/style-subject.h +++ b/src/ui/widget/style-subject.h @@ -10,7 +10,6 @@ #ifndef SEEN_INKSCAPE_UI_WIDGET_STYLE_SUBJECT_H #define SEEN_INKSCAPE_UI_WIDGET_STYLE_SUBJECT_H -#include "util/glib-list-iterators.h" #include #include <2geom/rect.h> #include "sp-item.h" @@ -35,8 +34,6 @@ public: class Selection; class CurrentLayer; - //typedef Util::GSListConstIterator iterator; - typedef std::list::iterator iterator; StyleSubject(); virtual ~StyleSubject(); @@ -44,11 +41,10 @@ public: void setDesktop(SPDesktop *desktop); SPDesktop *getDesktop() const { return _desktop; } -// virtual iterator begin() = 0; -// virtual iterator end() { return iterator(NULL); } virtual Geom::OptRect getBounds(SPItem::BBoxType type) = 0; virtual int queryStyle(SPStyle *query, int property) = 0; virtual void setCSS(SPCSSAttr *css) = 0; + virtual std::vector list(){return std::vector();}; sigc::connection connectChanged(sigc::signal::slot_type slot) { return _changed_signal.connect(slot); @@ -68,10 +64,10 @@ public: Selection(); ~Selection(); -// virtual iterator begin(); virtual Geom::OptRect getBounds(SPItem::BBoxType type); virtual int queryStyle(SPStyle *query, int property); virtual void setCSS(SPCSSAttr *css); + virtual std::vector list(); protected: virtual void _afterDesktopSwitch(SPDesktop *desktop); @@ -89,10 +85,10 @@ public: CurrentLayer(); ~CurrentLayer(); -// virtual iterator begin(); virtual Geom::OptRect getBounds(SPItem::BBoxType type); virtual int queryStyle(SPStyle *query, int property); virtual void setCSS(SPCSSAttr *css); + virtual std::vector list(); protected: virtual void _afterDesktopSwitch(SPDesktop *desktop); -- cgit v1.2.3 From 9102ee49b968e55e93a7f6ccfb563c8571bf458c Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 03:22:12 +0200 Subject: forgotten dynamic cast (bzr r14125) --- src/extension/internal/latex-text-renderer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index ab863f8b1..1026f51ad 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -230,7 +230,7 @@ void LaTeXTextRenderer::sp_group_render(SPGroup *group) { std::vector l = (group->childList(false)); for(std::vector::const_iterator x = l.begin(); x != l.end(); x++){ - SPItem *item = static_cast(*x); + SPItem *item = dynamic_cast(*x); if (item) { renderItem(item); } -- cgit v1.2.3 From 48e0423afcb02fe4a0f705d828a0dbdb3106b397 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 15:46:25 +0200 Subject: fixes a few of jenkins warnings (bzr r14126) --- src/desktop.cpp | 1 - src/display/canvas-arena.cpp | 2 +- src/document.cpp | 2 +- src/extension/implementation/script.cpp | 16 ++++++++++------ src/extension/internal/cairo-render-context.cpp | 1 + src/extension/internal/wmf-inout.cpp | 6 ++---- src/file.cpp | 6 +++--- src/gradient-drag.cpp | 2 +- src/helper-fns.h | 2 +- src/helper/geom.cpp | 9 ++------- src/inkview.cpp | 2 +- src/libavoid/connector.cpp | 6 +----- src/libavoid/graph.cpp | 4 +++- src/libavoid/orthogonal.cpp | 1 - src/live_effects/lpe-gears.cpp | 2 +- src/live_effects/lpe-taperstroke.cpp | 4 ---- src/live_effects/parameter/filletchamferpointarray.cpp | 1 - src/selection.cpp | 3 ++- src/sp-item-transform.cpp | 6 +++--- src/trace/siox.cpp | 2 +- src/ui/dialog/document-properties.cpp | 4 ++-- src/ui/dialog/floating-behavior.cpp | 2 +- src/ui/dialog/grid-arrange-tab.cpp | 1 - src/ui/dialog/icon-preview.cpp | 2 +- src/ui/interface.cpp | 2 +- src/ui/tools/box3d-tool.cpp | 2 +- src/ui/tools/flood-tool.cpp | 2 +- src/ui/tools/pen-tool.cpp | 15 ++++----------- src/ui/tools/pencil-tool.cpp | 3 --- src/ui/tools/rect-tool.cpp | 1 - src/ui/tools/select-tool.cpp | 1 - src/util/ziptool.cpp | 2 +- src/widgets/desktop-widget.cpp | 4 +++- src/widgets/ege-adjustment-action.cpp | 2 +- src/widgets/gradient-vector.cpp | 1 + 35 files changed, 51 insertions(+), 71 deletions(-) diff --git a/src/desktop.cpp b/src/desktop.cpp index 5a1558b0f..02df50c6b 100644 --- a/src/desktop.cpp +++ b/src/desktop.cpp @@ -947,7 +947,6 @@ void SPDesktop::zoom_quick(bool enable) if (!zoomed) { zoom_relative(_quick_zoom_stored_area.midpoint()[Geom::X], _quick_zoom_stored_area.midpoint()[Geom::Y], 2.0); - zoomed = true; } } else { set_display_area(_quick_zoom_stored_area, false); diff --git a/src/display/canvas-arena.cpp b/src/display/canvas-arena.cpp index 8738b93e4..ec99eca9a 100644 --- a/src/display/canvas-arena.cpp +++ b/src/display/canvas-arena.cpp @@ -290,7 +290,7 @@ sp_canvas_arena_event (SPCanvasItem *item, GdkEvent *event) ret = sp_canvas_arena_send_event (arena, (GdkEvent *) &ec); } } - ret = sp_canvas_arena_send_event (arena, event); + ret = ret || sp_canvas_arena_send_event (arena, event); break; case GDK_SCROLL: { diff --git a/src/document.cpp b/src/document.cpp index f06953e34..741e7c812 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1591,7 +1591,7 @@ static void vacuum_document_recursive(SPObject *obj) unsigned int SPDocument::vacuumDocument() { unsigned int start = objects_in_document(this); - unsigned int end = start; + unsigned int end; unsigned int newend = start; unsigned int iterations = 0; diff --git a/src/extension/implementation/script.cpp b/src/extension/implementation/script.cpp index 5cab3a2b2..e07a3963c 100644 --- a/src/extension/implementation/script.cpp +++ b/src/extension/implementation/script.cpp @@ -812,6 +812,12 @@ void Script::copy_doc (Inkscape::XML::Node * oldroot, Inkscape::XML::Node * newr } } + if(!oldroot_namedview) + { + g_warning("Error on copy_doc: No namedview on destination document."); + return; + } + // Unparent (delete) for (unsigned int i = 0; i < delete_list.size(); i++) { sp_repr_unparent(delete_list[i]); @@ -823,12 +829,10 @@ void Script::copy_doc (Inkscape::XML::Node * oldroot, Inkscape::XML::Node * newr child = child->next()) { if (!strcmp("sodipodi:namedview", child->name())) { newroot_namedview = child; - if (oldroot_namedview != NULL) { - for (Inkscape::XML::Node * newroot_namedview_child = child->firstChild(); - newroot_namedview_child != NULL; - newroot_namedview_child = newroot_namedview_child->next()) { - oldroot_namedview->appendChild(newroot_namedview_child->duplicate(oldroot->document())); - } + for (Inkscape::XML::Node * newroot_namedview_child = child->firstChild(); + newroot_namedview_child != NULL; + newroot_namedview_child = newroot_namedview_child->next()) { + oldroot_namedview->appendChild(newroot_namedview_child->duplicate(oldroot->document())); } } else { oldroot->appendChild(child->duplicate(oldroot->document())); diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 2d6619e1e..27e34dbcf 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1393,6 +1393,7 @@ CairoRenderContext::_setStrokeStyle(SPStyle const *style, Geom::OptRect const &p dashes[i] = style->stroke_dasharray.values[i]; } cairo_set_dash(_cr, dashes, ndashes, style->stroke_dashoffset.value); + free(dashes); } else { cairo_set_dash(_cr, NULL, 0, 0.0); // disable dashing } diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp index 3ab7a4e89..f76fa16b4 100644 --- a/src/extension/internal/wmf-inout.cpp +++ b/src/extension/internal/wmf-inout.cpp @@ -95,7 +95,6 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename) SPPrintContext context; const gchar *oldconst; gchar *oldoutput; - unsigned int ret; doc->ensureUpToDate(); @@ -114,13 +113,12 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename) mod->root = mod->base->invoke_show(drawing, mod->dkey, SP_ITEM_SHOW_DISPLAY); drawing.setRoot(mod->root); /* Print document */ - ret = mod->begin(doc); - if (ret) { + if (mod->begin(doc)) { g_free(oldoutput); throw Inkscape::Extension::Output::save_failed(); } mod->base->invoke_print(&context); - ret = mod->finish(); + mod->finish(); /* Release arena */ mod->base->invoke_hide(mod->dkey); mod->base = NULL; diff --git a/src/file.cpp b/src/file.cpp index d1dd2bcd6..984bf7e08 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -769,7 +769,7 @@ file_save_remote(SPDocument */*doc*/, return false; } - result = gnome_vfs_create (&to_handle, uri_local, GNOME_VFS_OPEN_WRITE, FALSE, GNOME_VFS_PERM_USER_ALL); + gnome_vfs_create (&to_handle, uri_local, GNOME_VFS_OPEN_WRITE, FALSE, GNOME_VFS_PERM_USER_ALL); result = gnome_vfs_open (&to_handle, uri_local, GNOME_VFS_OPEN_WRITE); if (result != GNOME_VFS_OK) { @@ -782,8 +782,8 @@ file_save_remote(SPDocument */*doc*/, result = gnome_vfs_read (from_handle, buffer, 8192, &bytes_read); if ((result == GNOME_VFS_ERROR_EOF) &&(!bytes_read)){ - result = gnome_vfs_close (from_handle); - result = gnome_vfs_close (to_handle); + gnome_vfs_close (from_handle); + gnome_vfs_close (to_handle); return true; } diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 169710114..b22714959 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -1155,7 +1155,7 @@ static void gr_knot_clicked_handler(SPKnot */*knot*/, guint state, gpointer data break; default: - break; + return; } diff --git a/src/helper-fns.h b/src/helper-fns.h index 2f1829c37..79771a001 100644 --- a/src/helper-fns.h +++ b/src/helper-fns.h @@ -78,7 +78,7 @@ inline std::vector helperfns_read_vector(const gchar* value){ g_warning("helper-fns::helperfns_read_vector() Unable to convert \"%s\" to number", beg); // We could leave this out, too. If strtod can't convert // anything, it will return zero. - ret = 0; + // ret = 0; break; } v.push_back(ret); diff --git a/src/helper/geom.cpp b/src/helper/geom.cpp index 91689375f..77cba4736 100644 --- a/src/helper/geom.cpp +++ b/src/helper/geom.cpp @@ -266,14 +266,13 @@ geom_cubic_bbox_wind_distance (Geom::Coord x000, Geom::Coord y000, Geom::Coord tolerance) { Geom::Coord x0, y0, x1, y1, len2; - int needdist, needwind, needline; + int needdist, needwind; const Geom::Coord Px = pt[X]; const Geom::Coord Py = pt[Y]; needdist = 0; needwind = 0; - needline = 0; if (bbox) cubic_bbox (x000, y000, x001, y001, x011, y011, x111, y111, *bbox); @@ -303,8 +302,6 @@ geom_cubic_bbox_wind_distance (Geom::Coord x000, Geom::Coord y000, /* fixme: (Lauris) */ if (((y1 - y0) > 5.0) || ((x1 - x0) > 5.0)) { needdist = 1; - } else { - needline = 1; } } } @@ -315,8 +312,6 @@ geom_cubic_bbox_wind_distance (Geom::Coord x000, Geom::Coord y000, /* fixme: (Lauris) */ if (((y1 - y0) > 5.0) || ((x1 - x0) > 5.0)) { needwind = 1; - } else { - needline = 1; } } } @@ -345,7 +340,7 @@ geom_cubic_bbox_wind_distance (Geom::Coord x000, Geom::Coord y000, geom_cubic_bbox_wind_distance (x000, y000, x00t, y00t, x0tt, y0tt, xttt, yttt, pt, NULL, wind, best, tolerance); geom_cubic_bbox_wind_distance (xttt, yttt, x1tt, y1tt, x11t, y11t, x111, y111, pt, NULL, wind, best, tolerance); - } else if (1 || needline) { + } else { geom_line_wind_distance (x000, y000, x111, y111, pt, wind, best); } } diff --git a/src/inkview.cpp b/src/inkview.cpp index 2c667237e..8b7492798 100644 --- a/src/inkview.cpp +++ b/src/inkview.cpp @@ -274,7 +274,7 @@ main (int argc, const char **argv) gchar *last_filename = jar_file_reader.get_last_filename(); if (ss.doc) { ss.slides[ss.length++] = strdup (last_filename); - (ss.doc)->setUri (strdup(last_filename)); + (ss.doc)->setUri (last_filename); } g_byte_array_free(gba, TRUE); g_free(last_filename); diff --git a/src/libavoid/connector.cpp b/src/libavoid/connector.cpp index 40ded7498..36892c668 100644 --- a/src/libavoid/connector.cpp +++ b/src/libavoid/connector.cpp @@ -1476,7 +1476,6 @@ CrossingsInfoPair countRealCrossings(Avoid::Polygon& poly, int prevTurnDir = -1; int startCornerSide = 1; int endCornerSide = 1; - bool reversed = false; if (!front_same) { // If there is a divergence at the beginning, @@ -1485,7 +1484,6 @@ CrossingsInfoPair countRealCrossings(Avoid::Polygon& poly, startCornerSide = Avoid::cornerSide(*c_path[0], *c_path[1], *c_path[2], *p_path[0]) * segDir(*c_path[1], *c_path[2]); - reversed = (startCornerSide != -prevTurnDir); } if (!back_same) { @@ -1497,7 +1495,6 @@ CrossingsInfoPair countRealCrossings(Avoid::Polygon& poly, *c_path[size - 2], *c_path[size - 1], *p_path[size - 1]) * segDir(*c_path[size - 3], *c_path[size - 2]); - reversed = (endCornerSide != -prevTurnDir); } else { @@ -1578,10 +1575,9 @@ CrossingsInfoPair countRealCrossings(Avoid::Polygon& poly, } } #endif - prevTurnDir = 0; if (pointOrders) { - reversed = false; + bool reversed = false; size_t startPt = (front_same) ? 0 : 1; // Orthogonal should always have at least one segment. diff --git a/src/libavoid/graph.cpp b/src/libavoid/graph.cpp index 728f8c085..5b617f123 100644 --- a/src/libavoid/graph.cpp +++ b/src/libavoid/graph.cpp @@ -129,7 +129,9 @@ static inline int orthogTurnOrder(const Point& a, const Point& b, // Note: This method assumes the two Edges that share a common point. bool EdgeInf::rotationLessThan(const VertInf *lastV, const EdgeInf *rhs) const { - if ((_v1 == rhs->_v1) && (_v2 == rhs->_v2)) + assert(_v1 == rhs->_v1 || _v1 == rhs->_v2 || _v2 == rhs->_v1 || _v2 == rhs->_v2 ); + + if ((_v1 == rhs->_v1) && (_v2 == rhs->_v2)) { // Effectively the same visibility edge, so they are equal. return false; diff --git a/src/libavoid/orthogonal.cpp b/src/libavoid/orthogonal.cpp index b5ef8d7e8..466d1dd58 100644 --- a/src/libavoid/orthogonal.cpp +++ b/src/libavoid/orthogonal.cpp @@ -1548,7 +1548,6 @@ extern void generateStaticOrthogonalVisGraph(Router *router) // Process the horizontal sweep thisPos = (totalEvents > 0) ? events[0]->pos : 0; posStartIndex = 0; - posFinishIndex = 0; for (unsigned i = 0; i <= totalEvents; ++i) { // If we have finished the current scanline or all events, then we diff --git a/src/live_effects/lpe-gears.cpp b/src/live_effects/lpe-gears.cpp index 003e22567..fafe143b5 100644 --- a/src/live_effects/lpe-gears.cpp +++ b/src/live_effects/lpe-gears.cpp @@ -168,7 +168,7 @@ Geom::Path Gear::path() { D2 root = _arc(cursor, cursor+root_advance, root_radius()); makeContinuous(root, prev); pb.append(SBasisCurve(root)); - cursor += root_advance; + //cursor += root_advance; prev = root.at1(); if (base_radius() > root_radius()) { diff --git a/src/live_effects/lpe-taperstroke.cpp b/src/live_effects/lpe-taperstroke.cpp index 2c74af6d6..451810d04 100644 --- a/src/live_effects/lpe-taperstroke.cpp +++ b/src/live_effects/lpe-taperstroke.cpp @@ -389,13 +389,9 @@ Piecewise > stretch_along(Piecewise > pwd2_in, Geom::Path x0 -= pattBndsX->min(); y0 -= pattBndsY->middle(); - double xspace = 0; double noffset = 0; double toffset = 0; // Prevent more than 90% overlap... - if (xspace < -pattBndsX->extent()*.9) { - xspace = -pattBndsX->extent()*.9; - } y0+=noffset; diff --git a/src/live_effects/parameter/filletchamferpointarray.cpp b/src/live_effects/parameter/filletchamferpointarray.cpp index e9d375b93..f05f401e4 100644 --- a/src/live_effects/parameter/filletchamferpointarray.cpp +++ b/src/live_effects/parameter/filletchamferpointarray.cpp @@ -506,7 +506,6 @@ std::vector FilletChamferPointArrayParam::get_times(int index, std::vect time_it1 = 0; } double resultLenght = 0; - time_it1_B = 1; if (subpaths[positions.first].closed() && last) { time_it2 = modf(to_time(index - positions.second , _vector[index - positions.second ][X]), &intpart); resultLenght = it1_length + to_len(index - positions.second, _vector[index - positions.second ][X]); diff --git a/src/selection.cpp b/src/selection.cpp index f728f3381..7979b5d61 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -178,6 +178,7 @@ void Selection::_add(SPObject *obj) { // (to prevent double-selection) _removeObjectDescendants(obj); _removeObjectAncestors(obj); + g_return_if_fail(SP_IS_OBJECT(obj)); _objs.push_front(obj); _objs_set.insert(obj); @@ -483,7 +484,7 @@ std::vector Selection::getSnapPoints(SnapPreferenc void Selection::_removeObjectDescendants(SPObject *obj) { std::vector toremove; for ( std::list::const_iterator iter=_objs.begin();iter!=_objs.end();iter++ ) { - SPObject *sel_obj= *iter; + SPObject *sel_obj= dynamic_cast(*iter); SPObject *parent = sel_obj->parent; while (parent) { if ( parent == obj ) { diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp index 767f0ed91..f1c69cdf6 100644 --- a/src/sp-item-transform.cpp +++ b/src/sp-item-transform.cpp @@ -152,7 +152,7 @@ Geom::Affine get_scale_transform_for_uniform_stroke(Geom::Rect const &bbox_visua gdouble scale_x = 1; gdouble scale_y = 1; - gdouble r1 = r0; + gdouble r1; if ((fabs(w0 - stroke_x) < 1e-6) || w1 == 0) { // We have a vertical line at hand scale_y = h1/h0; @@ -310,8 +310,8 @@ Geom::Affine get_scale_transform_for_variable_stroke(Geom::Rect const &bbox_visu gdouble scale_x = 1; gdouble scale_y = 1; - gdouble r1h = r0h; - gdouble r1w = r0w; + gdouble r1h; + gdouble r1w; if ((fabs(w0 - r0w) < 1e-6) || w1 == 0) { // We have a vertical line at hand scale_y = h1/h0; diff --git a/src/trace/siox.cpp b/src/trace/siox.cpp index 065e891ed..9df4e561c 100644 --- a/src/trace/siox.cpp +++ b/src/trace/siox.cpp @@ -682,7 +682,7 @@ GdkPixbuf *SioxImage::getGdkPixbuf() } row += rowstride; } - + free(pixdata); return buf; } diff --git a/src/ui/dialog/document-properties.cpp b/src/ui/dialog/document-properties.cpp index c381ed755..b04e8ecc1 100644 --- a/src/ui/dialog/document-properties.cpp +++ b/src/ui/dialog/document-properties.cpp @@ -1672,10 +1672,10 @@ void DocumentProperties::onDocUnitChange() Inkscape::XML::Node *repr = getDesktop()->getNamedView()->getRepr(); - Inkscape::Util::Unit const *old_doc_unit = unit_table.getUnit("px"); + /*Inkscape::Util::Unit const *old_doc_unit = unit_table.getUnit("px"); if(repr->attribute("inkscape:document-units")) { old_doc_unit = unit_table.getUnit(repr->attribute("inkscape:document-units")); - } + }*/ Inkscape::Util::Unit const *doc_unit = _rum_deflt.getUnit(); // Set document unit diff --git a/src/ui/dialog/floating-behavior.cpp b/src/ui/dialog/floating-behavior.cpp index 740acd989..55ef0c5bb 100644 --- a/src/ui/dialog/floating-behavior.cpp +++ b/src/ui/dialog/floating-behavior.cpp @@ -112,7 +112,7 @@ bool FloatingBehavior::_trans_timer (void) { } float goal, current; - goal = current = _d->get_opacity(); + current = _d->get_opacity(); if (_dialog_active.get_value()) { goal = _trans_focus; diff --git a/src/ui/dialog/grid-arrange-tab.cpp b/src/ui/dialog/grid-arrange-tab.cpp index 4465d73a9..c44f66a4d 100644 --- a/src/ui/dialog/grid-arrange-tab.cpp +++ b/src/ui/dialog/grid-arrange-tab.cpp @@ -170,7 +170,6 @@ void GridArrangeTab::arrange() Inkscape::Selection *selection = desktop->getSelection(); const std::vector items = selection ? selection->itemList() : std::vector(); - cnt=0; for(std::vector::const_iterator i = items.begin();i!=items.end();i++){ SPItem *item = *i; Geom::OptRect b = item->documentVisualBounds(); diff --git a/src/ui/dialog/icon-preview.cpp b/src/ui/dialog/icon-preview.cpp index 7dc55c95c..77f120e1a 100644 --- a/src/ui/dialog/icon-preview.cpp +++ b/src/ui/dialog/icon-preview.cpp @@ -312,7 +312,7 @@ void IconPreviewPanel::setDesktop( SPDesktop* desktop ) if ( this->desktop ) { docReplacedConn = this->desktop->connectDocumentReplaced(sigc::hide<0>(sigc::mem_fun(this, &IconPreviewPanel::setDocument))); if ( this->desktop->selection && Inkscape::Preferences::get()->getBool("/iconpreview/autoRefresh", true) ) { - selChangedConn = desktop->selection->connectChanged(sigc::hide(sigc::mem_fun(this, &IconPreviewPanel::queueRefresh))); + selChangedConn = this->desktop->selection->connectChanged(sigc::hide(sigc::mem_fun(this, &IconPreviewPanel::queueRefresh))); } } } diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 760d19e89..a129d4b92 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -439,7 +439,7 @@ sp_ui_dialog_title_string(Inkscape::Verb *verb, gchar *c) gchar* key = sp_shortcut_get_label(shortcut); s = g_stpcpy(s, " ("); s = g_stpcpy(s, key); - s = g_stpcpy(s, ")"); + g_stpcpy(s, ")"); g_free(key); } } diff --git a/src/ui/tools/box3d-tool.cpp b/src/ui/tools/box3d-tool.cpp index 538e0c7e2..27e755add 100644 --- a/src/ui/tools/box3d-tool.cpp +++ b/src/ui/tools/box3d-tool.cpp @@ -165,7 +165,7 @@ bool Box3dTool::item_handler(SPItem* item, GdkEvent* event) { case GDK_BUTTON_PRESS: if ( event->button.button == 1 && !this->space_panning) { Inkscape::setup_for_drag_start(desktop, this, event); - ret = TRUE; + //ret = TRUE; } break; // motion and release are always on root (why?) diff --git a/src/ui/tools/flood-tool.cpp b/src/ui/tools/flood-tool.cpp index ffd41d97d..748c82717 100644 --- a/src/ui/tools/flood-tool.cpp +++ b/src/ui/tools/flood-tool.cpp @@ -932,7 +932,7 @@ static void sp_flood_do_flood_fill(ToolBase *event_context, GdkEvent *event, boo std::deque::iterator start_sort = fill_queue.begin(); std::deque::iterator end_sort = fill_queue.begin(); unsigned int sort_y = (unsigned int)cp[Geom::Y]; - unsigned int current_y = sort_y; + unsigned int current_y; for (std::deque::iterator i = fill_queue.begin(); i != fill_queue.end(); ++i) { Geom::Point current = *i; diff --git a/src/ui/tools/pen-tool.cpp b/src/ui/tools/pen-tool.cpp index daffc7032..be6156fa2 100644 --- a/src/ui/tools/pen-tool.cpp +++ b/src/ui/tools/pen-tool.cpp @@ -762,14 +762,12 @@ bool PenTool::_handleButtonRelease(GdkEventButton const &revent) { } } this->state = PenTool::CONTROL; - ret = true; break; case PenTool::CONTROL: // End current segment this->_endpointSnap(p, revent.state); this->_finishSegment(p, revent.state); this->state = PenTool::POINT; - ret = true; break; case PenTool::CLOSE: // End current segment @@ -783,12 +781,10 @@ bool PenTool::_handleButtonRelease(GdkEventButton const &revent) { } this->_finish(true); this->state = PenTool::POINT; - ret = true; break; case PenTool::STOP: // This is allowed, if we just canceled curve this->state = PenTool::POINT; - ret = true; break; default: break; @@ -823,7 +819,6 @@ bool PenTool::_handleButtonRelease(GdkEventButton const &revent) { break; } this->state = PenTool::POINT; - ret = true; break; default: break; @@ -1432,8 +1427,7 @@ void PenTool::_bsplineSpiroStartAnchorOn() { using Geom::X; using Geom::Y; - SPCurve *tmp_curve = new SPCurve(); - tmp_curve = this->sa->curve->copy(); + SPCurve *tmp_curve = this->sa->curve->copy(); if(this->sa->start) tmp_curve = tmp_curve ->create_reverse(); Geom::CubicBezier const * cubic = dynamic_cast(&*tmp_curve ->last_segment()); @@ -1465,8 +1459,7 @@ void PenTool::_bsplineSpiroStartAnchorOn() void PenTool::_bsplineSpiroStartAnchorOff() { - SPCurve *tmp_curve = new SPCurve(); - tmp_curve = this->sa->curve->copy(); + SPCurve *tmp_curve = this->sa->curve->copy(); if(this->sa->start) tmp_curve = tmp_curve ->create_reverse(); Geom::CubicBezier const * cubic = dynamic_cast(&*tmp_curve ->last_segment()); @@ -1564,7 +1557,7 @@ void PenTool::_bsplineSpiroEndAnchorOn() using Geom::Y; this->p[2] = this->p[3] + (1./3)*(this->p[0] - this->p[3]); this->p[2] = Geom::Point(this->p[2][X] + HANDLE_CUBIC_GAP,this->p[2][Y] + HANDLE_CUBIC_GAP); - SPCurve *tmp_curve = new SPCurve(); + SPCurve *tmp_curve; SPCurve *last_segment = new SPCurve(); Geom::Point point_c(0,0); bool reverse = false; @@ -1621,7 +1614,7 @@ void PenTool::_bsplineSpiroEndAnchorOn() void PenTool::_bsplineSpiroEndAnchorOff() { - SPCurve *tmp_curve = new SPCurve(); + SPCurve *tmp_curve; SPCurve *last_segment = new SPCurve(); bool reverse = false; this->p[2] = this->p[3]; diff --git a/src/ui/tools/pencil-tool.cpp b/src/ui/tools/pencil-tool.cpp index 008804162..ba103fa8e 100644 --- a/src/ui/tools/pencil-tool.cpp +++ b/src/ui/tools/pencil-tool.cpp @@ -357,7 +357,6 @@ bool PencilTool::_handleButtonRelease(GdkEventButton const &revent) { // Ctrl+click creates a single point so only set context in ADDLINE mode when Ctrl isn't pressed this->state = SP_PENCIL_CONTEXT_ADDLINE; } - ret = true; break; case SP_PENCIL_CONTEXT_ADDLINE: /* Finish segment now */ @@ -371,7 +370,6 @@ bool PencilTool::_handleButtonRelease(GdkEventButton const &revent) { this->_finishEndpoint(); this->state = SP_PENCIL_CONTEXT_IDLE; sp_event_context_discard_delayed_snap_event(this); - ret = true; break; case SP_PENCIL_CONTEXT_FREEHAND: if (revent.state & GDK_MOD1_MASK) { @@ -413,7 +411,6 @@ bool PencilTool::_handleButtonRelease(GdkEventButton const &revent) { // reset sketch mode too this->sketch_n = 0; } - ret = true; break; case SP_PENCIL_CONTEXT_SKETCH: default: diff --git a/src/ui/tools/rect-tool.cpp b/src/ui/tools/rect-tool.cpp index 62a9006ea..844965c4d 100644 --- a/src/ui/tools/rect-tool.cpp +++ b/src/ui/tools/rect-tool.cpp @@ -143,7 +143,6 @@ bool RectTool::item_handler(SPItem* item, GdkEvent* event) { case GDK_BUTTON_PRESS: if ( event->button.button == 1 && !this->space_panning) { Inkscape::setup_for_drag_start(desktop, this, event); - ret = TRUE; } break; // motion and release are always on root (why?) diff --git a/src/ui/tools/select-tool.cpp b/src/ui/tools/select-tool.cpp index f8375a1bb..f06b03d91 100644 --- a/src/ui/tools/select-tool.cpp +++ b/src/ui/tools/select-tool.cpp @@ -777,7 +777,6 @@ bool SelectTool::root_handler(GdkEvent* event) { } rb_escaped = 0; - ret = TRUE; } } } diff --git a/src/util/ziptool.cpp b/src/util/ziptool.cpp index cf024008f..2eb516b2e 100644 --- a/src/util/ziptool.cpp +++ b/src/util/ziptool.cpp @@ -2605,7 +2605,7 @@ bool ZipFile::readFileData() if (gpBitFlag & 0x8)//bit 3 was set. means we dont know compressed size { unsigned char c1, c2, c3, c4; - c1 = c2 = c3 = c4 = 0; + c2 = c3 = c4 = 0; while (true) { unsigned char ch; diff --git a/src/widgets/desktop-widget.cpp b/src/widgets/desktop-widget.cpp index fd3756220..e19f56e48 100644 --- a/src/widgets/desktop-widget.cpp +++ b/src/widgets/desktop-widget.cpp @@ -1433,8 +1433,10 @@ sp_desktop_widget_maximize(SPDesktopWidget *dtw) if (!dtw->desktop->is_iconified() && !dtw->desktop->is_fullscreen()) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - gint w, h, x, y; + gint w = -1; + gint h, x, y; dtw->getWindowGeometry(x, y, w, h); + g_assert(w != -1); prefs->setInt("/desktop/geometry/width", w); prefs->setInt("/desktop/geometry/height", h); prefs->setInt("/desktop/geometry/x", x); diff --git a/src/widgets/ege-adjustment-action.cpp b/src/widgets/ege-adjustment-action.cpp index d89a6e3f1..a91149f4c 100644 --- a/src/widgets/ege-adjustment-action.cpp +++ b/src/widgets/ege-adjustment-action.cpp @@ -742,7 +742,7 @@ static GtkWidget* create_popup_number_menu( EgeAdjustmentAction* act ) if ( act->private_data->descriptions ) { gdouble value = ((EgeAdjustmentDescr*)act->private_data->descriptions->data)->value; - addOns = flush_explicit_items( addOns, G_CALLBACK(process_menu_action), BUMP_CUSTOM, menu, act, &single, &group, value ); + flush_explicit_items( addOns, G_CALLBACK(process_menu_action), BUMP_CUSTOM, menu, act, &single, &group, value ); } return menu; diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index d2c46ffec..10d1cc107 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -548,6 +548,7 @@ static void verify_grad(SPGradient *gradient) child->setAttribute("style", os.str().c_str()); gradient->getRepr()->addChild(child, NULL); Inkscape::GC::release(child); + return; } if (i < 2) { sp_repr_set_css_double(stop->getRepr(), "offset", 0.0); -- cgit v1.2.3 From 72d3556428cd68013cb604a708f27d3de0f60855 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 17:19:23 +0200 Subject: fix for bug 1391374. apparently, libnrtype drastically misses unit tests. Fixed bugs: - https://launchpad.net/bugs/1391374 (bzr r14127) --- src/libnrtype/Layout-TNG-OutIter.cpp | 4 ++-- src/libnrtype/Layout-TNG.h | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/libnrtype/Layout-TNG-OutIter.cpp b/src/libnrtype/Layout-TNG-OutIter.cpp index c9c318960..707897f50 100644 --- a/src/libnrtype/Layout-TNG-OutIter.cpp +++ b/src/libnrtype/Layout-TNG-OutIter.cpp @@ -788,12 +788,12 @@ bool Layout::iterator::prevLineCursor(int n) { if (!_cursor_moving_vertically) beginCursorUpDown(); - unsigned line_index; + int line_index; if (_char_index == _parent_layout->_characters.size()) line_index = _parent_layout->_lines.size() - 1; else line_index = _parent_layout->_characters[_char_index].chunk(_parent_layout).in_line; - if (line_index == 0) + if (line_index <= 0) return false; // nowhere to go else n = MIN (n, static_cast(line_index)); diff --git a/src/libnrtype/Layout-TNG.h b/src/libnrtype/Layout-TNG.h index e91c32ebe..26db1fad9 100644 --- a/src/libnrtype/Layout-TNG.h +++ b/src/libnrtype/Layout-TNG.h @@ -701,7 +701,11 @@ private: /** The overall block-progression of the whole flow. */ inline Direction _blockProgression() const - {return static_cast(_input_stream.front())->styleGetBlockProgression();} + { + if(!_input_stream.empty()) + return static_cast(_input_stream.front())->styleGetBlockProgression(); + return TOP_TO_BOTTOM; + } /** so that LEFT_TO_RIGHT == RIGHT_TO_LEFT but != TOP_TO_BOTTOM */ static bool _directions_are_orthogonal(Direction d1, Direction d2); -- cgit v1.2.3 From c24270d14aad415c4b771138407a23e1239aa8f8 Mon Sep 17 00:00:00 2001 From: houz Date: Fri, 8 May 2015 19:10:46 +0200 Subject: cmake: Bring cmake installation in line with autotools (bug #1451481) Fixed bugs: - https://launchpad.net/bugs/1451481 (bzr r14128) --- CMakeLists.txt | 25 +++--------------- CMakeScripts/ConfigPaths.cmake | 8 +++++- share/CMakeLists.txt | 17 +++++++++++++ share/attributes/CMakeLists.txt | 2 ++ share/branding/CMakeLists.txt | 2 ++ share/examples/CMakeLists.txt | 2 ++ share/extensions/CMakeLists.txt | 46 ++++++++++++++++++++++++++++++++++ share/filters/CMakeLists.txt | 10 ++++++++ share/fonts/CMakeLists.txt | 1 + share/gradients/CMakeLists.txt | 1 + share/icons/CMakeLists.txt | 6 +++++ share/icons/application/CMakeLists.txt | 9 +++++++ share/keys/CMakeLists.txt | 2 ++ share/markers/CMakeLists.txt | 2 ++ share/palettes/CMakeLists.txt | 13 ++++++++++ share/patterns/CMakeLists.txt | 10 ++++++++ share/screens/CMakeLists.txt | 2 ++ share/symbols/CMakeLists.txt | 11 ++++++++ share/templates/CMakeLists.txt | 11 ++++++++ share/tutorials/CMakeLists.txt | 2 ++ share/ui/CMakeLists.txt | 3 +++ 21 files changed, 162 insertions(+), 23 deletions(-) create mode 100644 share/CMakeLists.txt create mode 100644 share/attributes/CMakeLists.txt create mode 100644 share/branding/CMakeLists.txt create mode 100644 share/examples/CMakeLists.txt create mode 100644 share/extensions/CMakeLists.txt create mode 100644 share/filters/CMakeLists.txt create mode 100644 share/fonts/CMakeLists.txt create mode 100644 share/gradients/CMakeLists.txt create mode 100644 share/icons/CMakeLists.txt create mode 100644 share/icons/application/CMakeLists.txt create mode 100644 share/keys/CMakeLists.txt create mode 100644 share/markers/CMakeLists.txt create mode 100644 share/palettes/CMakeLists.txt create mode 100644 share/patterns/CMakeLists.txt create mode 100644 share/screens/CMakeLists.txt create mode 100644 share/symbols/CMakeLists.txt create mode 100644 share/templates/CMakeLists.txt create mode 100644 share/tutorials/CMakeLists.txt create mode 100644 share/ui/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 97b7a664c..23dd58708 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,30 +150,11 @@ if(UNIX) install( FILES ${CMAKE_BINARY_DIR}/inkscape.desktop - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications + DESTINATION ${SHARE_INSTALL}/applications ) - install( - DIRECTORY - ${CMAKE_SOURCE_DIR}/share/attributes - ${CMAKE_SOURCE_DIR}/share/branding - ${CMAKE_SOURCE_DIR}/share/examples - ${CMAKE_SOURCE_DIR}/share/extensions - ${CMAKE_SOURCE_DIR}/share/filters - ${CMAKE_SOURCE_DIR}/share/fonts - ${CMAKE_SOURCE_DIR}/share/gradients - ${CMAKE_SOURCE_DIR}/share/icons - ${CMAKE_SOURCE_DIR}/share/keys - ${CMAKE_SOURCE_DIR}/share/markers - ${CMAKE_SOURCE_DIR}/share/palettes - ${CMAKE_SOURCE_DIR}/share/patterns - ${CMAKE_SOURCE_DIR}/share/screens - ${CMAKE_SOURCE_DIR}/share/symbols - ${CMAKE_SOURCE_DIR}/share/templates - ${CMAKE_SOURCE_DIR}/share/tutorials - ${CMAKE_SOURCE_DIR}/share/ui - DESTINATION ${CMAKE_INSTALL_PREFIX}/share/inkscape - ) + # this should probably be done no matter what the platform is, just set SHARE_INSTALL first + add_subdirectory(share) else() # TODO, WIN32/APPLE diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index af0a7d50c..770e0c6ad 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -2,9 +2,15 @@ MESSAGE(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") IF(WIN32) SET(PACKAGE_LOCALE_DIR "locale") -ELSEIF(WIN32) + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") +ELSE(WIN32) # TODO: check and change this to correct value: SET(PACKAGE_LOCALE_DIR "locale") + + if(NOT SHARE_INSTALL) + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + endif(NOT SHARE_INSTALL) + mark_as_advanced(SHARE_INSTALL) ENDIF(WIN32) #SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib) diff --git a/share/CMakeLists.txt b/share/CMakeLists.txt new file mode 100644 index 000000000..b34875502 --- /dev/null +++ b/share/CMakeLists.txt @@ -0,0 +1,17 @@ +add_subdirectory(attributes) +add_subdirectory(branding) +add_subdirectory(examples) +add_subdirectory(extensions) +add_subdirectory(filters) +add_subdirectory(fonts) +add_subdirectory(gradients) +add_subdirectory(icons) +add_subdirectory(keys) +add_subdirectory(markers) +add_subdirectory(palettes) +add_subdirectory(patterns) +add_subdirectory(screens) +add_subdirectory(symbols) +add_subdirectory(templates) +add_subdirectory(tutorials) +add_subdirectory(ui) \ No newline at end of file diff --git a/share/attributes/CMakeLists.txt b/share/attributes/CMakeLists.txt new file mode 100644 index 000000000..9b6b0de0a --- /dev/null +++ b/share/attributes/CMakeLists.txt @@ -0,0 +1,2 @@ +set(_FILES "svgprops" "cssprops" "css_defaults" "README") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/attributes) diff --git a/share/branding/CMakeLists.txt b/share/branding/CMakeLists.txt new file mode 100644 index 000000000..ff12059ca --- /dev/null +++ b/share/branding/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "README" "*.svg") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/branding) diff --git a/share/examples/CMakeLists.txt b/share/examples/CMakeLists.txt new file mode 100644 index 000000000..be73c5a87 --- /dev/null +++ b/share/examples/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "README" "*.svg" "*.svgz" "*.pov") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/examples) diff --git a/share/extensions/CMakeLists.txt b/share/extensions/CMakeLists.txt new file mode 100644 index 000000000..c167a156a --- /dev/null +++ b/share/extensions/CMakeLists.txt @@ -0,0 +1,46 @@ +file(GLOB _FILES + "README" + "fontfix.conf" + "inkweb.js" + "jessyInk.js" + "jessyInk_core_mouseHandler_noclick.js" + "jessyInk_core_mouseHandler_zoomControl.js" + "aisvg.xslt" + "colors.xml" + "jessyInk_video.svg" + "seamless_pattern.svg" + "svg2fxg.xsl" + "svg2xaml.xsl" + "xaml2svg.xsl" + "inkscape.extension.rng" + "*.py" + "*.pl" + "*.sh" + "*.rb" + "*.inx" + ) +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions) + +file(GLOB _FILES "alphabet_soup/*.svg") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/alphabet_soup) + +file(GLOB _FILES "Barcode/*.py") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/Barcode) + +file(GLOB _FILES "Poly3DObjects/*.obj") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/Poly3DObjects) + +# file(GLOB _FILES +# "test/*.svg" +# "test/*.sh" +# "test/*.py" +# "test/*.js" +# "test/run-all-extension-tests" +# ) +# install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/test) + +file(GLOB _FILES "ink2canvas/*.py") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/ink2canvas) + +file(GLOB _FILES "xaml2svg/*.xsl") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/extensions/xaml2svg) diff --git a/share/filters/CMakeLists.txt b/share/filters/CMakeLists.txt new file mode 100644 index 000000000..6b5356e53 --- /dev/null +++ b/share/filters/CMakeLists.txt @@ -0,0 +1,10 @@ +add_custom_command( + OUTPUT filters.svg.h + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg > ${CMAKE_CURRENT_BINARY_DIR}/filters.svg.h + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/filters.svg + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py +) +add_custom_target(filters.svg.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/filters.svg.h) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/filters.svg.h DESTINATION ${SHARE_INSTALL}/inkscape/filters) +install(FILES "filters.svg" "README" DESTINATION ${SHARE_INSTALL}/inkscape/filters) diff --git a/share/fonts/CMakeLists.txt b/share/fonts/CMakeLists.txt new file mode 100644 index 000000000..d8d9e3684 --- /dev/null +++ b/share/fonts/CMakeLists.txt @@ -0,0 +1 @@ +install(FILES "README" DESTINATION ${SHARE_INSTALL}/inkscape/fonts) diff --git a/share/gradients/CMakeLists.txt b/share/gradients/CMakeLists.txt new file mode 100644 index 000000000..ec5e388af --- /dev/null +++ b/share/gradients/CMakeLists.txt @@ -0,0 +1 @@ +install(FILES "README" DESTINATION ${SHARE_INSTALL}/inkscape/gradients) diff --git a/share/icons/CMakeLists.txt b/share/icons/CMakeLists.txt new file mode 100644 index 000000000..d4994a694 --- /dev/null +++ b/share/icons/CMakeLists.txt @@ -0,0 +1,6 @@ +add_subdirectory(application) + +file(GLOB _FILES "*.svg" "*.jpg" "*.png" "README") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/icons) + +install(FILES ../branding/inkscape.svg DESTINATION ${SHARE_INSTALL}/inkscape/icons) diff --git a/share/icons/application/CMakeLists.txt b/share/icons/application/CMakeLists.txt new file mode 100644 index 000000000..f93b4068e --- /dev/null +++ b/share/icons/application/CMakeLists.txt @@ -0,0 +1,9 @@ +set(PIXMAP_SIZES "16x16" "22x22" "24x24" "32x32" "48x48" "256x256") +set(THEME hicolor) +foreach(pixmap_size ${PIXMAP_SIZES}) + FILE(GLOB PIXMAP_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${pixmap_size}/*.png ${CMAKE_CURRENT_SOURCE_DIR}/${pixmap_size}/*.svg) + install(FILES ${PIXMAP_FILES} DESTINATION ${SHARE_INSTALL}/icons/${THEME}/${pixmap_size}/apps) +endforeach(pixmap_size) + +# I hope that this is actually run after installing the files. +install(CODE "execute_process(COMMAND gtk-update-icon-cache -f -t ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/icons/${THEME})") \ No newline at end of file diff --git a/share/keys/CMakeLists.txt b/share/keys/CMakeLists.txt new file mode 100644 index 000000000..e968007dc --- /dev/null +++ b/share/keys/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "*.xml") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/keys) diff --git a/share/markers/CMakeLists.txt b/share/markers/CMakeLists.txt new file mode 100644 index 000000000..410df1cf4 --- /dev/null +++ b/share/markers/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "*.svg") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/markers) diff --git a/share/palettes/CMakeLists.txt b/share/palettes/CMakeLists.txt new file mode 100644 index 000000000..77b4b2a37 --- /dev/null +++ b/share/palettes/CMakeLists.txt @@ -0,0 +1,13 @@ +set(I18N_FILES "inkscape.gpl" "svg.gpl" "Tango-Palette.gpl") + +add_custom_command( + OUTPUT palettes.h + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${I18N_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/palettes.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${I18N_FILES} +) +add_custom_target(palettes.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/palettes.h) + +file(GLOB _FILES "*.gpl") + +install(FILES ${_FILES} "README" ${CMAKE_CURRENT_BINARY_DIR}/palettes.h DESTINATION ${SHARE_INSTALL}/inkscape/palettes) diff --git a/share/patterns/CMakeLists.txt b/share/patterns/CMakeLists.txt new file mode 100644 index 000000000..98415b225 --- /dev/null +++ b/share/patterns/CMakeLists.txt @@ -0,0 +1,10 @@ +add_custom_command( + OUTPUT patterns.svg.h + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg > ${CMAKE_CURRENT_BINARY_DIR}/patterns.svg.h + MAIN_DEPENDENCY ${CMAKE_CURRENT_SOURCE_DIR}/patterns.svg + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py +) +add_custom_target(patterns.svg.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/patterns.svg.h) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/patterns.svg.h DESTINATION ${SHARE_INSTALL}/inkscape/patterns) +install(FILES "patterns.svg" "README" DESTINATION ${SHARE_INSTALL}/inkscape/patterns) \ No newline at end of file diff --git a/share/screens/CMakeLists.txt b/share/screens/CMakeLists.txt new file mode 100644 index 000000000..b8b848708 --- /dev/null +++ b/share/screens/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "README" "*.svg") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/screens) diff --git a/share/symbols/CMakeLists.txt b/share/symbols/CMakeLists.txt new file mode 100644 index 000000000..ef44c89e4 --- /dev/null +++ b/share/symbols/CMakeLists.txt @@ -0,0 +1,11 @@ +file(GLOB _FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg") + +add_custom_command( + OUTPUT symbols.h + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/symbols.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} +) +add_custom_target(symbols.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/symbols.h) + +install(FILES ${_FILES} "README" ${CMAKE_CURRENT_BINARY_DIR}/symbols.h DESTINATION ${SHARE_INSTALL}/inkscape/symbols) diff --git a/share/templates/CMakeLists.txt b/share/templates/CMakeLists.txt new file mode 100644 index 000000000..eee5b4458 --- /dev/null +++ b/share/templates/CMakeLists.txt @@ -0,0 +1,11 @@ +file(GLOB _FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.svg") + +add_custom_command( + OUTPUT templates.h + COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} > ${CMAKE_CURRENT_BINARY_DIR}/templates.h + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/i18n.py ${_FILES} +) +add_custom_target(templates.h ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/templates.h) + +install(FILES ${_FILES} "README" ${CMAKE_CURRENT_BINARY_DIR}/templates.h DESTINATION ${SHARE_INSTALL}/inkscape/templates) diff --git a/share/tutorials/CMakeLists.txt b/share/tutorials/CMakeLists.txt new file mode 100644 index 000000000..f8491bf32 --- /dev/null +++ b/share/tutorials/CMakeLists.txt @@ -0,0 +1,2 @@ +file(GLOB _FILES "README" "*.svg" "*.jpg" "*.png") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/tutorials) diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt new file mode 100644 index 000000000..89b9f9b0f --- /dev/null +++ b/share/ui/CMakeLists.txt @@ -0,0 +1,3 @@ +file(GLOB _FILES "*.xml" "*.rc") +install(FILES ${_FILES} DESTINATION ${SHARE_INSTALL}/inkscape/ui) + -- cgit v1.2.3