From dcce4eae31bf798949a7991cac165bcd6d0a0eef Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Wed, 21 May 2014 18:03:59 +0200 Subject: SPColorSlider c++-sification: added ColorSlider class (bzr r13341.6.1) --- src/widgets/sp-color-scales.cpp | 4 +- src/widgets/sp-color-scales.h | 8 ++ src/widgets/sp-color-slider.cpp | 202 ++++++++++++++++++++++++++++++-- src/widgets/sp-color-slider.h | 81 ++++++++++++- src/widgets/sp-color-wheel-selector.cpp | 4 +- src/widgets/sp-color-wheel-selector.h | 8 ++ 6 files changed, 294 insertions(+), 13 deletions(-) diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index c3f9d511c..a7d458561 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -5,11 +5,13 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif + +#include "sp-color-scales.h" + #include #include #include #include "../dialogs/dialog-events.h" -#include "sp-color-scales.h" #include "svg/svg-icc-color.h" #define CSC_CHANNEL_R (1 << 0) diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h index 3b11bc05e..cd3900f85 100644 --- a/src/widgets/sp-color-scales.h +++ b/src/widgets/sp-color-scales.h @@ -1,6 +1,14 @@ #ifndef SEEN_SP_COLOR_SCALES_H #define SEEN_SP_COLOR_SCALES_H +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include #include diff --git a/src/widgets/sp-color-slider.cpp b/src/widgets/sp-color-slider.cpp index 9b13ba1c5..07e1d79fb 100644 --- a/src/widgets/sp-color-slider.cpp +++ b/src/widgets/sp-color-slider.cpp @@ -1,7 +1,8 @@ -/* - * A slider with colored background - * - * Author: +/** + * @file + * A slider with colored background - implementation. + */ +/* Author: * Lauris Kaplinski * bulia byak * @@ -10,13 +11,200 @@ * This code is in public domain */ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "sp-color-slider.h" + #include +#include +#include +#include + #include "sp-color-scales.h" #include "preferences.h" -#define SLIDER_WIDTH 96 -#define SLIDER_HEIGHT 8 -#define ARROW_SIZE 7 +static const gint SLIDER_WIDTH = 96; +static const gint SLIDER_HEIGHT = 8; +static const gint ARROW_SIZE = 7; + + +ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) + : _dragging(false) + , _adjustment(NULL) + , _value(0.0) + , _oldvalue(0.0) + , _mapsize(0) + , _map(NULL) +{ + _c0[0] = 0x00; + _c0[1] = 0x00; + _c0[2] = 0x00; + _c0[3] = 0xff; + + _cm[0] = 0xff; + _cm[1] = 0x00; + _cm[2] = 0x00; + _cm[3] = 0xff; + + _c0[0] = 0xff; + _c0[1] = 0xff; + _c0[2] = 0xff; + _c0[3] = 0xff; + + _b0 = 0x5f; + _b1 = 0xa0; + _bmask = 0x08; + + set_adjustment(adjustment); +} + +ColorSlider::~ColorSlider() { + if (_adjustment) { + //TODO: disconnect all connections + delete _adjustment; + _adjustment = NULL; + } +} + +void ColorSlider::on_realize() { + set_realized(); + + if(!_refGdkWindow) + { + GdkWindowAttr attributes; + gint attributes_mask; + Gtk::Allocation allocation = get_allocation(); + + memset(&attributes, 0, sizeof(attributes)); + attributes.x = allocation.get_x(); + attributes.y = allocation.get_y(); + attributes.width = allocation.get_width(); + attributes.height = allocation.get_height(); + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); +#if !GTK_CHECK_VERSION(3,0,0) + attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); +#endif + attributes.event_mask = get_events (); + attributes.event_mask |= (Gdk::EXPOSURE_MASK | + Gdk::BUTTON_PRESS_MASK | + Gdk::BUTTON_RELEASE_MASK | + Gdk::POINTER_MOTION_MASK | + Gdk::ENTER_NOTIFY_MASK | + Gdk::LEAVE_NOTIFY_MASK); + +#if GTK_CHECK_VERSION(3,0,0) + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; +#else + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; +#endif + + _refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, + attributes_mask); + set_window(_refGdkWindow); + _refGdkWindow->set_user_data(gobj()); + + style_attach(); + } +} + +void ColorSlider::on_unrealize() { + _refGdkWindow.reset(); + + Gtk::Widget::on_unrealize(); +} + +void ColorSlider::on_size_request(Gtk::Requisition* requisition) { + GtkStyle *style = gtk_widget_get_style(gobj()); + requisition->width = SLIDER_WIDTH + style->xthickness * 2; + requisition->height = SLIDER_HEIGHT + style->ythickness * 2; +} + +//TODO: GTK3 prefferred width/height + +void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { + if (get_realized()) { + _refGdkWindow->move_resize(allocation.get_x(), allocation.get_y(), + allocation.get_width(), allocation.get_height()); + } +} + +//TODO: if not GTK3 +bool ColorSlider::on_expose_event(GdkEventExpose* event) { + bool result = false; + + if (get_is_drawable()) { + Cairo::RefPtr cr = _refGdkWindow->create_cairo_context(); + result = on_draw(cr); + } + return result; +} + +bool ColorSlider::on_button_press_event(GdkEventButton *event) { + //TODO: implementation + return false; +} + +bool ColorSlider::on_button_release_event(GdkEventButton *event) { + //TODO: implementation + return false; +} + +bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { + //TODO: implementation + return false; +} + +void ColorSlider::set_adjustment(Gtk::Adjustment* /*adjustment*/) { + //TODO: implementation +} + +void ColorSlider::set_colors(guint32 start, guint32 min, guint32 end) { + +} + +void ColorSlider::set_map(const guchar *map) { + +} + +void ColorSlider::set_background(guint dark, guint light, guint size) { + +} + +bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { + return false; +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + enum { GRABBED, diff --git a/src/widgets/sp-color-slider.h b/src/widgets/sp-color-slider.h index 591d8368a..6821c8fe4 100644 --- a/src/widgets/sp-color-slider.h +++ b/src/widgets/sp-color-slider.h @@ -1,10 +1,7 @@ #ifndef __SP_COLOR_SLIDER_H__ #define __SP_COLOR_SLIDER_H__ -/* - * A slider with colored background - * - * Author: +/* Author: * Lauris Kaplinski * * Copyright (C) 2001-2002 Lauris Kaplinski @@ -12,6 +9,82 @@ * This code is in public domain */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include + +#include + + +/* + * A slider with colored background + */ +class ColorSlider: public Gtk::Widget { +public: + //if GTK2 + ColorSlider(Gtk::Adjustment *adjustment); + ~ColorSlider(); + + void set_adjustment(Gtk::Adjustment *adjustment); + + void set_colors(guint32 start, guint32 mid, guint32 end); + + void set_map(const guchar* map); + + void set_background(guint dark, guint light, guint size); + + sigc::signal signal_grabbed; + sigc::signal signal_dragged; + sigc::signal signal_released; + sigc::signal signal_value_changed; + +protected: + void on_size_allocate(Gtk::Allocation& allocation); + void on_realize(); + void on_unrealize(); + bool on_button_press_event(GdkEventButton *event); + bool on_button_release_event(GdkEventButton *event); + bool on_motion_notify_event(GdkEventMotion *event); + + //if GTK2 + void on_size_request(Gtk::Requisition* requisition); + bool on_expose_event(GdkEventExpose* event); + //if GTK3 + //request mode, get preffered width/height vfunc + //endif + + bool on_draw(const Cairo::RefPtr& cr); + + //TODO: on_adjustment_changed method + //TODO: on_adjustment value changed method + connection + +private: + bool _dragging; + + Gtk::Adjustment *_adjustment; + + gfloat _value; + gfloat _oldvalue; + guchar _c0[4], _cm[4], _c1[4]; + guchar _b0, _b1; + guchar _bmask; + + gint _mapsize; + guchar *_map; + + Glib::RefPtr _refGdkWindow; +}; + + + + + #include #include diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index 7c8bb1df7..1cc2e06d6 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -1,11 +1,13 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif + +#include "sp-color-wheel-selector.h" + #include #include #include #include "../dialogs/dialog-events.h" -#include "sp-color-wheel-selector.h" #include "sp-color-scales.h" #include "sp-color-icc-selector.h" #include "../svg/svg-icc-color.h" diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index bbd377422..6f45b6bba 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -1,6 +1,14 @@ #ifndef SEEN_SP_COLOR_WHEEL_SELECTOR_H #define SEEN_SP_COLOR_WHEEL_SELECTOR_H +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include #include -- cgit v1.2.3 From a06f51f786230bfd26ddd34d27be438d4bebbd04 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 23 May 2014 11:09:05 +0200 Subject: moved widgets/sp-color-slider to ui/widget/color-slider (bzr r13341.6.2) --- src/ui/CMakeLists.txt | 2 + src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-slider.cpp | 961 ++++++++++++++++++++++++++++++++ src/ui/widget/color-slider.h | 146 +++++ src/widgets/CMakeLists.txt | 2 - src/widgets/Makefile_insert | 2 - src/widgets/sp-color-icc-selector.cpp | 2 +- src/widgets/sp-color-scales.cpp | 1 + src/widgets/sp-color-scales.h | 3 +- src/widgets/sp-color-slider.cpp | 959 ------------------------------- src/widgets/sp-color-slider.h | 140 ----- src/widgets/sp-color-wheel-selector.cpp | 1 + src/widgets/sp-color-wheel-selector.h | 4 +- 13 files changed, 1117 insertions(+), 1108 deletions(-) create mode 100644 src/ui/widget/color-slider.cpp create mode 100644 src/ui/widget/color-slider.h delete mode 100644 src/widgets/sp-color-slider.cpp delete mode 100644 src/widgets/sp-color-slider.h diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 7d80f1e36..883ba3427 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -109,6 +109,7 @@ set(ui_SRC widget/button.cpp widget/color-picker.cpp widget/color-preview.cpp + widget/color-slider.cpp widget/dock-item.cpp widget/dock.cpp widget/entity-entry.cpp @@ -270,6 +271,7 @@ set(ui_SRC widget/button.h widget/color-picker.h widget/color-preview.h + widget/color-slider.h widget/combo-enums.h widget/dock-item.h widget/dock.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index 608dd5334..6deaf6671 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -10,6 +10,8 @@ ink_common_sources += \ ui/widget/color-picker.h \ ui/widget/color-preview.cpp \ ui/widget/color-preview.h \ + ui/widget/color-slider.cpp \ + ui/widget/color-slider.h \ ui/widget/combo-enums.h \ ui/widget/dock.h \ ui/widget/dock.cpp \ diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp new file mode 100644 index 000000000..430239f00 --- /dev/null +++ b/src/ui/widget/color-slider.cpp @@ -0,0 +1,961 @@ +/** + * @file + * A slider with colored background - implementation. + */ +/* Author: + * Lauris Kaplinski + * bulia byak + * + * Copyright (C) 2001-2002 Lauris Kaplinski + * + * This code is in public domain + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "color-slider.h" + +#include +#include +#include +#include + +#include "widgets/sp-color-scales.h" +#include "preferences.h" + +static const gint SLIDER_WIDTH = 96; +static const gint SLIDER_HEIGHT = 8; +static const gint ARROW_SIZE = 7; + +namespace Inkscape { +namespace UI { +namespace Widget { + +ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) + : _dragging(false) + , _adjustment(NULL) + , _value(0.0) + , _oldvalue(0.0) + , _mapsize(0) + , _map(NULL) +{ + _c0[0] = 0x00; + _c0[1] = 0x00; + _c0[2] = 0x00; + _c0[3] = 0xff; + + _cm[0] = 0xff; + _cm[1] = 0x00; + _cm[2] = 0x00; + _cm[3] = 0xff; + + _c0[0] = 0xff; + _c0[1] = 0xff; + _c0[2] = 0xff; + _c0[3] = 0xff; + + _b0 = 0x5f; + _b1 = 0xa0; + _bmask = 0x08; + + set_adjustment(adjustment); +} + +ColorSlider::~ColorSlider() { + if (_adjustment) { + //TODO: disconnect all connections + delete _adjustment; + _adjustment = NULL; + } +} + +void ColorSlider::on_realize() { + set_realized(); + + if(!_refGdkWindow) + { + GdkWindowAttr attributes; + gint attributes_mask; + Gtk::Allocation allocation = get_allocation(); + + memset(&attributes, 0, sizeof(attributes)); + attributes.x = allocation.get_x(); + attributes.y = allocation.get_y(); + attributes.width = allocation.get_width(); + attributes.height = allocation.get_height(); + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); +#if !GTK_CHECK_VERSION(3,0,0) + attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); +#endif + attributes.event_mask = get_events (); + attributes.event_mask |= (Gdk::EXPOSURE_MASK | + Gdk::BUTTON_PRESS_MASK | + Gdk::BUTTON_RELEASE_MASK | + Gdk::POINTER_MOTION_MASK | + Gdk::ENTER_NOTIFY_MASK | + Gdk::LEAVE_NOTIFY_MASK); + +#if GTK_CHECK_VERSION(3,0,0) + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; +#else + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; +#endif + + _refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, + attributes_mask); + set_window(_refGdkWindow); + _refGdkWindow->set_user_data(gobj()); + + style_attach(); + } +} + +void ColorSlider::on_unrealize() { + _refGdkWindow.reset(); + + Gtk::Widget::on_unrealize(); +} + +void ColorSlider::on_size_request(Gtk::Requisition* requisition) { + GtkStyle *style = gtk_widget_get_style(gobj()); + requisition->width = SLIDER_WIDTH + style->xthickness * 2; + requisition->height = SLIDER_HEIGHT + style->ythickness * 2; +} + +//TODO: GTK3 prefferred width/height + +void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { + if (get_realized()) { + _refGdkWindow->move_resize(allocation.get_x(), allocation.get_y(), + allocation.get_width(), allocation.get_height()); + } +} + +//TODO: if not GTK3 +bool ColorSlider::on_expose_event(GdkEventExpose* event) { + bool result = false; + + if (get_is_drawable()) { + Cairo::RefPtr cr = _refGdkWindow->create_cairo_context(); + result = on_draw(cr); + } + return result; +} + +bool ColorSlider::on_button_press_event(GdkEventButton *event) { + //TODO: implementation + return false; +} + +bool ColorSlider::on_button_release_event(GdkEventButton *event) { + //TODO: implementation + return false; +} + +bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { + //TODO: implementation + return false; +} + +void ColorSlider::set_adjustment(Gtk::Adjustment* /*adjustment*/) { + //TODO: implementation +} + +void ColorSlider::set_colors(guint32 start, guint32 min, guint32 end) { + +} + +void ColorSlider::set_map(const guchar *map) { + +} + +void ColorSlider::set_background(guint dark, guint light, guint size) { + +} + +bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { + return false; +} + +}//namespace Widget +}//namespace UI +}//namespace Inkscape + + + + + + + + + + + + + + + + + + + + + + + + +enum { + GRABBED, + DRAGGED, + RELEASED, + CHANGED, + LAST_SIGNAL +}; + +static void sp_color_slider_class_init (SPColorSliderClass *klass); +static void sp_color_slider_init (SPColorSlider *slider); +static void sp_color_slider_dispose(GObject *object); + +static void sp_color_slider_realize (GtkWidget *widget); +static void sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition); + +#if GTK_CHECK_VERSION(3,0,0) +static void sp_color_slider_get_preferred_width(GtkWidget *widget, + gint *minimal_width, + gint *natural_width); + +static void sp_color_slider_get_preferred_height(GtkWidget *widget, + gint *minimal_height, + gint *natural_height); +#else +static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose *event); +#endif + +static void sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation); + +static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr); + +static gint sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event); +static gint sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event); +static gint sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event); + +static void sp_color_slider_adjustment_changed (GtkAdjustment *adjustment, SPColorSlider *slider); +static void sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider); + +static const guchar *sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, + gint c[], gint dc[], guint b0, guint b1, guint mask); +static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, + guchar *map, gint start, gint step, guint b0, guint b1, guint mask); + +static GtkWidgetClass *parent_class; +static guint slider_signals[LAST_SIGNAL] = {0}; + +GType +sp_color_slider_get_type (void) +{ + static GType type = 0; + if (!type) { + GTypeInfo info = { + sizeof (SPColorSliderClass), + NULL, NULL, + (GClassInitFunc) sp_color_slider_class_init, + NULL, NULL, + sizeof (SPColorSlider), + 0, + (GInstanceInitFunc) sp_color_slider_init, + NULL + }; + type = g_type_register_static (GTK_TYPE_WIDGET, "SPColorSlider", &info, (GTypeFlags)0); + } + return type; +} + +static void sp_color_slider_class_init(SPColorSliderClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS(klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); + + parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent(klass)); + + slider_signals[GRABBED] = g_signal_new ("grabbed", + G_TYPE_FROM_CLASS(object_class), + (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), + G_STRUCT_OFFSET (SPColorSliderClass, grabbed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + slider_signals[DRAGGED] = g_signal_new ("dragged", + G_TYPE_FROM_CLASS(object_class), + (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), + G_STRUCT_OFFSET (SPColorSliderClass, dragged), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + slider_signals[RELEASED] = g_signal_new ("released", + G_TYPE_FROM_CLASS(object_class), + (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), + G_STRUCT_OFFSET (SPColorSliderClass, released), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + slider_signals[CHANGED] = g_signal_new ("changed", + G_TYPE_FROM_CLASS(object_class), + (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), + G_STRUCT_OFFSET (SPColorSliderClass, changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + + object_class->dispose = sp_color_slider_dispose; + + widget_class->realize = sp_color_slider_realize; +#if GTK_CHECK_VERSION(3,0,0) + widget_class->get_preferred_width = sp_color_slider_get_preferred_width; + widget_class->get_preferred_height = sp_color_slider_get_preferred_height; + widget_class->draw = sp_color_slider_draw; +#else + widget_class->size_request = sp_color_slider_size_request; + widget_class->expose_event = sp_color_slider_expose; +#endif + widget_class->size_allocate = sp_color_slider_size_allocate; +/* widget_class->draw_focus = sp_color_slider_draw_focus; */ +/* widget_class->draw_default = sp_color_slider_draw_default; */ + + widget_class->button_press_event = sp_color_slider_button_press; + widget_class->button_release_event = sp_color_slider_button_release; + widget_class->motion_notify_event = sp_color_slider_motion_notify; +} + +static void +sp_color_slider_init (SPColorSlider *slider) +{ + /* We are widget with window */ + gtk_widget_set_has_window (GTK_WIDGET(slider), TRUE); + + slider->dragging = FALSE; + + slider->adjustment = NULL; + slider->value = 0.0; + + slider->c0[0] = 0x00; + slider->c0[1] = 0x00; + slider->c0[2] = 0x00; + slider->c0[3] = 0xff; + + slider->cm[0] = 0xff; + slider->cm[1] = 0x00; + slider->cm[2] = 0x00; + slider->cm[3] = 0xff; + + slider->c1[0] = 0xff; + slider->c1[1] = 0xff; + slider->c1[2] = 0xff; + slider->c1[3] = 0xff; + + slider->b0 = 0x5f; + slider->b1 = 0xa0; + slider->bmask = 0x08; + + slider->map = NULL; +} + +static void sp_color_slider_dispose(GObject *object) +{ + SPColorSlider *slider = SP_COLOR_SLIDER (object); + + if (slider->adjustment) { + g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); + g_object_unref (slider->adjustment); + slider->adjustment = NULL; + } + + if ((G_OBJECT_CLASS(parent_class))->dispose) + (* (G_OBJECT_CLASS(parent_class))->dispose) (object); +} + +static void +sp_color_slider_realize (GtkWidget *widget) +{ + GdkWindowAttr attributes; + gint attributes_mask; + GtkAllocation allocation; + + gtk_widget_get_allocation(widget, &allocation); + gtk_widget_set_realized (widget, TRUE); + + attributes.window_type = GDK_WINDOW_CHILD; + attributes.x = allocation.x; + attributes.y = allocation.y; + attributes.width = allocation.width; + attributes.height = allocation.height; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); + +#if !GTK_CHECK_VERSION(3,0,0) + attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); +#endif + + attributes.event_mask = gtk_widget_get_events (widget); + attributes.event_mask |= (GDK_EXPOSURE_MASK | + GDK_BUTTON_PRESS_MASK | + GDK_BUTTON_RELEASE_MASK | + GDK_POINTER_MOTION_MASK | + GDK_ENTER_NOTIFY_MASK | + GDK_LEAVE_NOTIFY_MASK); +#if GTK_CHECK_VERSION(3,0,0) + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; +#else + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; +#endif + + gtk_widget_set_window(widget, + gdk_window_new(gtk_widget_get_parent_window(widget), + &attributes, attributes_mask)); + + gdk_window_set_user_data(gtk_widget_get_window(widget), widget); + +#if !GTK_CHECK_VERSION(3,0,0) + // This doesn't do anything in GTK+ 3 + gtk_widget_set_style(widget, + gtk_style_attach(gtk_widget_get_style(widget), + gtk_widget_get_window(widget))); +#endif +} + +static void +sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition) +{ + GtkStyle *style = gtk_widget_get_style(widget); + requisition->width = SLIDER_WIDTH + style->xthickness * 2; + requisition->height = SLIDER_HEIGHT + style->ythickness * 2; +} + +#if GTK_CHECK_VERSION(3,0,0) +static void sp_color_slider_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) +{ + GtkRequisition requisition; + sp_color_slider_size_request(widget, &requisition); + *minimal_width = *natural_width = requisition.width; +} + +static void sp_color_slider_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height) +{ + GtkRequisition requisition; + sp_color_slider_size_request(widget, &requisition); + *minimal_height = *natural_height = requisition.height; +} +#endif + +static void +sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation) +{ + gtk_widget_set_allocation(widget, allocation); + + if (gtk_widget_get_realized (widget)) { + /* Resize GdkWindow */ + gdk_window_move_resize(gtk_widget_get_window(widget), + allocation->x, allocation->y, + allocation->width, allocation->height); + } +} + +#if !GTK_CHECK_VERSION(3,0,0) +static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose * /*event*/) +{ + gboolean result = FALSE; + + if (gtk_widget_is_drawable(widget)) { + GdkWindow *window = gtk_widget_get_window(widget); + cairo_t *cr = gdk_cairo_create(window); + result = sp_color_slider_draw(widget, cr); + cairo_destroy(cr); + } + + return result; +} +#endif + +static gint +sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event) +{ + SPColorSlider *slider; + + slider = SP_COLOR_SLIDER (widget); + + if (event->button == 1) { + GtkAllocation allocation; + gtk_widget_get_allocation(widget, &allocation); + gint cx, cw; + cx = gtk_widget_get_style(widget)->xthickness; + cw = allocation.width - 2 * cx; + g_signal_emit (G_OBJECT (slider), slider_signals[GRABBED], 0); + slider->dragging = TRUE; + slider->oldvalue = slider->value; + ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); + +#if GTK_CHECK_VERSION(3,0,0) + gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), + gtk_widget_get_window(widget), + GDK_OWNERSHIP_NONE, + FALSE, + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), + NULL, + event->time); +#else + gdk_pointer_grab(gtk_widget_get_window(widget), FALSE, + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), + NULL, NULL, event->time); +#endif + } + + return FALSE; +} + +static gint +sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event) +{ + SPColorSlider *slider; + + slider = SP_COLOR_SLIDER (widget); + + if (event->button == 1) { + +#if GTK_CHECK_VERSION(3,0,0) + gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), + gdk_event_get_time(reinterpret_cast(event))); +#else + gdk_pointer_ungrab (event->time); +#endif + + slider->dragging = FALSE; + g_signal_emit (G_OBJECT (slider), slider_signals[RELEASED], 0); + if (slider->value != slider->oldvalue) g_signal_emit (G_OBJECT (slider), slider_signals[CHANGED], 0); + } + + return FALSE; +} + +static gint +sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event) +{ + SPColorSlider *slider; + + slider = SP_COLOR_SLIDER (widget); + + if (slider->dragging) { + gint cx, cw; + GtkAllocation allocation; + gtk_widget_get_allocation(widget, &allocation); + cx = gtk_widget_get_style(widget)->xthickness; + cw = allocation.width - 2 * cx; + ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); + } + + return FALSE; +} + +GtkWidget *sp_color_slider_new(GtkAdjustment *adjustment) +{ + SPColorSlider *slider = SP_COLOR_SLIDER(g_object_new(SP_TYPE_COLOR_SLIDER, NULL)); + + sp_color_slider_set_adjustment (slider, adjustment); + + return GTK_WIDGET (slider); +} + +void sp_color_slider_set_adjustment(SPColorSlider *slider, GtkAdjustment *adjustment) +{ + g_return_if_fail (slider != NULL); + g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); + + if (!adjustment) { + adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); + } else { + gtk_adjustment_set_page_increment(adjustment, 0.0); + gtk_adjustment_set_page_size(adjustment, 0.0); + } + + if (slider->adjustment != adjustment) { + if (slider->adjustment) { + g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); + g_object_unref (slider->adjustment); + } + + slider->adjustment = adjustment; + g_object_ref (adjustment); + g_object_ref_sink (adjustment); + + g_signal_connect (G_OBJECT (adjustment), "changed", + G_CALLBACK (sp_color_slider_adjustment_changed), slider); + g_signal_connect (G_OBJECT (adjustment), "value_changed", + G_CALLBACK (sp_color_slider_adjustment_value_changed), slider); + + slider->value = ColorScales::getScaled( adjustment ); + + sp_color_slider_adjustment_changed (adjustment, slider); + } +} + +void +sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end) +{ + g_return_if_fail (slider != NULL); + g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); + + // Remove any map, if set + slider->map = 0; + + slider->c0[0] = start >> 24; + slider->c0[1] = (start >> 16) & 0xff; + slider->c0[2] = (start >> 8) & 0xff; + slider->c0[3] = start & 0xff; + + slider->cm[0] = mid >> 24; + slider->cm[1] = (mid >> 16) & 0xff; + slider->cm[2] = (mid >> 8) & 0xff; + slider->cm[3] = mid & 0xff; + + slider->c1[0] = end >> 24; + slider->c1[1] = (end >> 16) & 0xff; + slider->c1[2] = (end >> 8) & 0xff; + slider->c1[3] = end & 0xff; + + gtk_widget_queue_draw (GTK_WIDGET (slider)); +} + +void +sp_color_slider_set_map (SPColorSlider *slider, const guchar *map) +{ + g_return_if_fail (slider != NULL); + g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); + + slider->map = const_cast(map); + + gtk_widget_queue_draw (GTK_WIDGET (slider)); +} + +void +sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size) +{ + g_return_if_fail (slider != NULL); + g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); + + slider->b0 = dark; + slider->b1 = light; + slider->bmask = size; + + gtk_widget_queue_draw (GTK_WIDGET (slider)); +} + +static void +sp_color_slider_adjustment_changed (GtkAdjustment */*adjustment*/, SPColorSlider *slider) +{ + gtk_widget_queue_draw (GTK_WIDGET (slider)); +} + +static void +sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider) +{ + GtkWidget *widget; + + widget = GTK_WIDGET (slider); + + if (slider->value != ColorScales::getScaled( adjustment )) { + gint cx, cy, cw, ch; + GtkStyle *style = gtk_widget_get_style(widget); + GtkAllocation allocation; + gtk_widget_get_allocation(widget, &allocation); + cx = style->xthickness; + cy = style->ythickness; + cw = allocation.width - 2 * cx; + ch = allocation.height - 2 * cy; + if ((gint) (ColorScales::getScaled( adjustment ) * cw) != (gint) (slider->value * cw)) { + gint ax, ay; + gfloat value; + value = slider->value; + slider->value = ColorScales::getScaled( adjustment ); + ax = (int)(cx + value * cw - ARROW_SIZE / 2 - 2); + ay = cy; + gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); + ax = (int)(cx + slider->value * cw - ARROW_SIZE / 2 - 2); + ay = cy; + gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); + } else { + slider->value = ColorScales::getScaled( adjustment ); + } + } +} + +static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr) +{ + SPColorSlider *slider = SP_COLOR_SLIDER(widget); + + gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); + + GtkAllocation allocation; + gtk_widget_get_allocation(widget, &allocation); + +#if GTK_CHECK_VERSION(3,0,0) + GtkStyleContext *context = gtk_widget_get_style_context(widget); +#else + GdkWindow *window = gtk_widget_get_window(widget); + GtkStyle *style = gtk_widget_get_style(widget); +#endif + + // Draw shadow + if (colorsOnTop) { +#if GTK_CHECK_VERSION(3,0,0) + gtk_render_frame(context, + cr, + 0, 0, + allocation.width, allocation.height); +#else + gtk_paint_shadow( style, window, + gtk_widget_get_state(widget), GTK_SHADOW_IN, + NULL, widget, "colorslider", + 0, 0, + allocation.width, allocation.height); +#endif + } + + /* Paintable part of color gradient area */ + GdkRectangle carea; + +#if GTK_CHECK_VERSION(3,0,0) + GtkBorder padding; + + gtk_style_context_get_padding(context, + gtk_widget_get_state_flags(widget), + &padding); + + carea.x = padding.left; + carea.y = padding.top; +#else + carea.x = style->xthickness; + carea.y = style->ythickness; +#endif + + carea.width = allocation.width - 2 * carea.x; + carea.height = allocation.height - 2 * carea.y; + + if (slider->map) { + /* Render map pixelstore */ + gint d = (1024 << 16) / carea.width; + gint s = 0; + + const guchar *b = sp_color_slider_render_map(0, 0, carea.width, carea.height, + slider->map, s, d, + slider->b0, slider->b1, slider->bmask); + + if (b != NULL && carea.width > 0) { + GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, + 0, 8, carea.width, carea.height, carea.width * 3, NULL, NULL); + + gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); + cairo_paint(cr); + g_object_unref(pb); + } + + } else { + gint c[4], dc[4]; + + /* Render gradient */ + + // part 1: from c0 to cm + if (carea.width > 0) { + for (gint i = 0; i < 4; i++) { + c[i] = slider->c0[i] << 16; + dc[i] = ((slider->cm[i] << 16) - c[i]) / (carea.width/2); + } + guint wi = carea.width/2; + const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.height, + c, dc, slider->b0, slider->b1, slider->bmask); + + /* Draw pixelstore 1 */ + if (b != NULL && wi > 0) { + GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, + 0, 8, wi, carea.height, wi * 3, NULL, NULL); + + gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); + cairo_paint(cr); + g_object_unref(pb); + } + } + + // part 2: from cm to c1 + if (carea.width > 0) { + for (gint i = 0; i < 4; i++) { + c[i] = slider->cm[i] << 16; + dc[i] = ((slider->c1[i] << 16) - c[i]) / (carea.width/2); + } + guint wi = carea.width/2; + const guchar *b = sp_color_slider_render_gradient(carea.width/2, 0, wi, carea.height, + c, dc, + slider->b0, slider->b1, slider->bmask); + + /* Draw pixelstore 2 */ + if (b != NULL && wi > 0) { + GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, + 0, 8, wi, carea.height, wi * 3, NULL, NULL); + + gdk_cairo_set_source_pixbuf(cr, pb, carea.width/2 + carea.x, carea.y); + cairo_paint(cr); + + g_object_unref(pb); + } + } + } + + /* Draw shadow */ + if (!colorsOnTop) { +#if GTK_CHECK_VERSION(3,0,0) + gtk_render_frame(context, + cr, + 0, 0, + allocation.width, allocation.height); +#else + gtk_paint_shadow( style, window, + gtk_widget_get_state(widget), GTK_SHADOW_IN, + NULL, widget, "colorslider", + 0, 0, + allocation.width, allocation.height); +#endif + } + + /* Draw arrow */ + gint x = (int)(slider->value * (carea.width - 1) - ARROW_SIZE / 2 + carea.x); + gint y1 = carea.y; + gint y2 = carea.y + carea.height - 1; + cairo_set_line_width(cr, 1.0); + + // Define top arrow + cairo_move_to(cr, x - 0.5, y1 + 0.5); + cairo_line_to(cr, x + ARROW_SIZE - 0.5, y1 + 0.5); + cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y1 + ARROW_SIZE/2.0 + 0.5); + cairo_line_to(cr, x - 0.5, y1 + 0.5); + + // Define bottom arrow + cairo_move_to(cr, x - 0.5, y2 + 0.5); + cairo_line_to(cr, x + ARROW_SIZE - 0.5, y2 + 0.5); + cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y2 - ARROW_SIZE/2.0 + 0.5); + cairo_line_to(cr, x - 0.5, y2 + 0.5); + + // Render both arrows + cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); + cairo_stroke_preserve(cr); + cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); + cairo_fill(cr); + + return FALSE; +} + +/* Colors are << 16 */ + +static const guchar * +sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, + gint c[], gint dc[], guint b0, guint b1, guint mask) +{ + static guchar *buf = NULL; + static gint bs = 0; + guchar *dp; + gint x, y; + guint r, g, b, a; + + if (buf && (bs < width * height)) { + g_free (buf); + buf = NULL; + } + if (!buf) { + buf = g_new (guchar, width * height * 3); + bs = width * height; + } + + dp = buf; + r = c[0]; + g = c[1]; + b = c[2]; + a = c[3]; + for (x = x0; x < x0 + width; x++) { + gint cr, cg, cb, ca; + guchar *d; + cr = r >> 16; + cg = g >> 16; + cb = b >> 16; + ca = a >> 16; + d = dp; + for (y = y0; y < y0 + height; y++) { + guint bg, fc; + /* Background value */ + bg = ((x & mask) ^ (y & mask)) ? b0 : b1; + fc = (cr - bg) * ca; + d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cg - bg) * ca; + d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cb - bg) * ca; + d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + d += 3 * width; + } + r += dc[0]; + g += dc[1]; + b += dc[2]; + a += dc[3]; + dp += 3; + } + + return buf; +} + +/* Positions are << 16 */ + +static const guchar * +sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, + guchar *map, gint start, gint step, guint b0, guint b1, guint mask) +{ + static guchar *buf = NULL; + static gint bs = 0; + guchar *dp; + gint x, y; + + if (buf && (bs < width * height)) { + g_free (buf); + buf = NULL; + } + if (!buf) { + buf = g_new (guchar, width * height * 3); + bs = width * height; + } + + dp = buf; + for (x = x0; x < x0 + width; x++) { + gint cr, cg, cb, ca; + guchar *d = dp; + guchar *sp = map + 4 * (start >> 16); + cr = *sp++; + cg = *sp++; + cb = *sp++; + ca = *sp++; + for (y = y0; y < y0 + height; y++) { + guint bg, fc; + /* Background value */ + bg = ((x & mask) ^ (y & mask)) ? b0 : b1; + fc = (cr - bg) * ca; + d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cg - bg) * ca; + d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cb - bg) * ca; + d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + d += 3 * width; + } + dp += 3; + start += step; + } + + return buf; +} + diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h new file mode 100644 index 000000000..d8be7d111 --- /dev/null +++ b/src/ui/widget/color-slider.h @@ -0,0 +1,146 @@ +#ifndef __SP_COLOR_SLIDER_H__ +#define __SP_COLOR_SLIDER_H__ + +/* Author: + * Lauris Kaplinski + * + * Copyright (C) 2001-2002 Lauris Kaplinski + * + * This code is in public domain + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include + +namespace Inkscape +{ +namespace UI +{ +namespace Widget +{ + +/* + * A slider with colored background + */ +class ColorSlider: public Gtk::Widget { +public: + //if GTK2 + ColorSlider(Gtk::Adjustment *adjustment); + ~ColorSlider(); + + void set_adjustment(Gtk::Adjustment *adjustment); + + void set_colors(guint32 start, guint32 mid, guint32 end); + + void set_map(const guchar* map); + + void set_background(guint dark, guint light, guint size); + + sigc::signal signal_grabbed; + sigc::signal signal_dragged; + sigc::signal signal_released; + sigc::signal signal_value_changed; + +protected: + void on_size_allocate(Gtk::Allocation& allocation); + void on_realize(); + void on_unrealize(); + bool on_button_press_event(GdkEventButton *event); + bool on_button_release_event(GdkEventButton *event); + bool on_motion_notify_event(GdkEventMotion *event); + + //if GTK2 + void on_size_request(Gtk::Requisition* requisition); + bool on_expose_event(GdkEventExpose* event); + //if GTK3 + //request mode, get preffered width/height vfunc + //endif + + bool on_draw(const Cairo::RefPtr& cr); + + //TODO: on_adjustment_changed method + //TODO: on_adjustment value changed method + connection + +private: + bool _dragging; + + Gtk::Adjustment *_adjustment; + + gfloat _value; + gfloat _oldvalue; + guchar _c0[4], _cm[4], _c1[4]; + guchar _b0, _b1; + guchar _bmask; + + gint _mapsize; + guchar *_map; + + Glib::RefPtr _refGdkWindow; +}; + +}//namespace Widget +}//namespace UI +}//namespace Inkscape + + +#include + +#include + + + +struct SPColorSlider; +struct SPColorSliderClass; + +#define SP_TYPE_COLOR_SLIDER (sp_color_slider_get_type ()) +#define SP_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_SLIDER, SPColorSlider)) +#define SP_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_SLIDER, SPColorSliderClass)) +#define SP_IS_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_SLIDER)) +#define SP_IS_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_SLIDER)) + +struct SPColorSlider { + GtkWidget widget; + + guint dragging : 1; + + GtkAdjustment *adjustment; + + gfloat value; + gfloat oldvalue; + guchar c0[4], cm[4], c1[4]; + guchar b0, b1; + guchar bmask; + + gint mapsize; + guchar *map; +}; + +struct SPColorSliderClass { + GtkWidgetClass parent_class; + + void (* grabbed) (SPColorSlider *slider); + void (* dragged) (SPColorSlider *slider); + void (* released) (SPColorSlider *slider); + void (* changed) (SPColorSlider *slider); +}; + +GType sp_color_slider_get_type (void); + +GtkWidget *sp_color_slider_new (GtkAdjustment *adjustment); + +void sp_color_slider_set_adjustment (SPColorSlider *slider, GtkAdjustment *adjustment); +void sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end); +void sp_color_slider_set_map (SPColorSlider *slider, const guchar *map); +void sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size); + + + +#endif diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index fe4433153..b65e0b1db 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -40,7 +40,6 @@ set(widgets_SRC sp-color-notebook.cpp sp-color-scales.cpp sp-color-selector.cpp - sp-color-slider.cpp sp-color-wheel-selector.cpp sp-widget.cpp sp-xmlview-attr-list.cpp @@ -97,7 +96,6 @@ set(widgets_SRC sp-color-notebook.h sp-color-scales.h sp-color-selector.h - sp-color-slider.h sp-color-wheel-selector.h sp-widget.h sp-xmlview-attr-list.h diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index 97713cbee..a4a3bb61b 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -74,8 +74,6 @@ ink_common_sources += \ widgets/sp-color-scales.h \ widgets/sp-color-selector.cpp \ widgets/sp-color-selector.h \ - widgets/sp-color-slider.cpp \ - widgets/sp-color-slider.h \ widgets/sp-color-wheel-selector.cpp \ widgets/sp-color-wheel-selector.h \ widgets/spinbutton-events.cpp \ diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 53e73dd57..baed7e3b6 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -13,7 +13,7 @@ #include "../dialogs/dialog-events.h" #include "sp-color-icc-selector.h" #include "sp-color-scales.h" -#include "sp-color-slider.h" +#include "ui/widget/color-slider.h" #include "svg/svg-icc-color.h" #include "colorspace.h" #include "document.h" diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index a7d458561..7d5874506 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -13,6 +13,7 @@ #include #include "../dialogs/dialog-events.h" #include "svg/svg-icc-color.h" +#include "ui/widget/color-slider.h" #define CSC_CHANNEL_R (1 << 0) #define CSC_CHANNEL_G (1 << 1) diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h index cd3900f85..65925fecb 100644 --- a/src/widgets/sp-color-scales.h +++ b/src/widgets/sp-color-scales.h @@ -13,12 +13,13 @@ #include #include -#include #include struct SPColorScales; struct SPColorScalesClass; +struct SPColorSlider; + typedef enum { SP_COLOR_SCALES_MODE_NONE = 0, diff --git a/src/widgets/sp-color-slider.cpp b/src/widgets/sp-color-slider.cpp deleted file mode 100644 index 07e1d79fb..000000000 --- a/src/widgets/sp-color-slider.cpp +++ /dev/null @@ -1,959 +0,0 @@ -/** - * @file - * A slider with colored background - implementation. - */ -/* Author: - * Lauris Kaplinski - * bulia byak - * - * Copyright (C) 2001-2002 Lauris Kaplinski - * - * This code is in public domain - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "sp-color-slider.h" - -#include -#include -#include -#include - -#include "sp-color-scales.h" -#include "preferences.h" - -static const gint SLIDER_WIDTH = 96; -static const gint SLIDER_HEIGHT = 8; -static const gint ARROW_SIZE = 7; - - -ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) - : _dragging(false) - , _adjustment(NULL) - , _value(0.0) - , _oldvalue(0.0) - , _mapsize(0) - , _map(NULL) -{ - _c0[0] = 0x00; - _c0[1] = 0x00; - _c0[2] = 0x00; - _c0[3] = 0xff; - - _cm[0] = 0xff; - _cm[1] = 0x00; - _cm[2] = 0x00; - _cm[3] = 0xff; - - _c0[0] = 0xff; - _c0[1] = 0xff; - _c0[2] = 0xff; - _c0[3] = 0xff; - - _b0 = 0x5f; - _b1 = 0xa0; - _bmask = 0x08; - - set_adjustment(adjustment); -} - -ColorSlider::~ColorSlider() { - if (_adjustment) { - //TODO: disconnect all connections - delete _adjustment; - _adjustment = NULL; - } -} - -void ColorSlider::on_realize() { - set_realized(); - - if(!_refGdkWindow) - { - GdkWindowAttr attributes; - gint attributes_mask; - Gtk::Allocation allocation = get_allocation(); - - memset(&attributes, 0, sizeof(attributes)); - attributes.x = allocation.get_x(); - attributes.y = allocation.get_y(); - attributes.width = allocation.get_width(); - attributes.height = allocation.get_height(); - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); -#if !GTK_CHECK_VERSION(3,0,0) - attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); -#endif - attributes.event_mask = get_events (); - attributes.event_mask |= (Gdk::EXPOSURE_MASK | - Gdk::BUTTON_PRESS_MASK | - Gdk::BUTTON_RELEASE_MASK | - Gdk::POINTER_MOTION_MASK | - Gdk::ENTER_NOTIFY_MASK | - Gdk::LEAVE_NOTIFY_MASK); - -#if GTK_CHECK_VERSION(3,0,0) - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#else - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; -#endif - - _refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, - attributes_mask); - set_window(_refGdkWindow); - _refGdkWindow->set_user_data(gobj()); - - style_attach(); - } -} - -void ColorSlider::on_unrealize() { - _refGdkWindow.reset(); - - Gtk::Widget::on_unrealize(); -} - -void ColorSlider::on_size_request(Gtk::Requisition* requisition) { - GtkStyle *style = gtk_widget_get_style(gobj()); - requisition->width = SLIDER_WIDTH + style->xthickness * 2; - requisition->height = SLIDER_HEIGHT + style->ythickness * 2; -} - -//TODO: GTK3 prefferred width/height - -void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { - if (get_realized()) { - _refGdkWindow->move_resize(allocation.get_x(), allocation.get_y(), - allocation.get_width(), allocation.get_height()); - } -} - -//TODO: if not GTK3 -bool ColorSlider::on_expose_event(GdkEventExpose* event) { - bool result = false; - - if (get_is_drawable()) { - Cairo::RefPtr cr = _refGdkWindow->create_cairo_context(); - result = on_draw(cr); - } - return result; -} - -bool ColorSlider::on_button_press_event(GdkEventButton *event) { - //TODO: implementation - return false; -} - -bool ColorSlider::on_button_release_event(GdkEventButton *event) { - //TODO: implementation - return false; -} - -bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { - //TODO: implementation - return false; -} - -void ColorSlider::set_adjustment(Gtk::Adjustment* /*adjustment*/) { - //TODO: implementation -} - -void ColorSlider::set_colors(guint32 start, guint32 min, guint32 end) { - -} - -void ColorSlider::set_map(const guchar *map) { - -} - -void ColorSlider::set_background(guint dark, guint light, guint size) { - -} - -bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { - return false; -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -enum { - GRABBED, - DRAGGED, - RELEASED, - CHANGED, - LAST_SIGNAL -}; - -static void sp_color_slider_class_init (SPColorSliderClass *klass); -static void sp_color_slider_init (SPColorSlider *slider); -static void sp_color_slider_dispose(GObject *object); - -static void sp_color_slider_realize (GtkWidget *widget); -static void sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition); - -#if GTK_CHECK_VERSION(3,0,0) -static void sp_color_slider_get_preferred_width(GtkWidget *widget, - gint *minimal_width, - gint *natural_width); - -static void sp_color_slider_get_preferred_height(GtkWidget *widget, - gint *minimal_height, - gint *natural_height); -#else -static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose *event); -#endif - -static void sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation); - -static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr); - -static gint sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event); -static gint sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event); -static gint sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event); - -static void sp_color_slider_adjustment_changed (GtkAdjustment *adjustment, SPColorSlider *slider); -static void sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider); - -static const guchar *sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, - gint c[], gint dc[], guint b0, guint b1, guint mask); -static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, - guchar *map, gint start, gint step, guint b0, guint b1, guint mask); - -static GtkWidgetClass *parent_class; -static guint slider_signals[LAST_SIGNAL] = {0}; - -GType -sp_color_slider_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof (SPColorSliderClass), - NULL, NULL, - (GClassInitFunc) sp_color_slider_class_init, - NULL, NULL, - sizeof (SPColorSlider), - 0, - (GInstanceInitFunc) sp_color_slider_init, - NULL - }; - type = g_type_register_static (GTK_TYPE_WIDGET, "SPColorSlider", &info, (GTypeFlags)0); - } - return type; -} - -static void sp_color_slider_class_init(SPColorSliderClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - - parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent(klass)); - - slider_signals[GRABBED] = g_signal_new ("grabbed", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, grabbed), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[DRAGGED] = g_signal_new ("dragged", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, dragged), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[RELEASED] = g_signal_new ("released", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, released), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[CHANGED] = g_signal_new ("changed", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, changed), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - object_class->dispose = sp_color_slider_dispose; - - widget_class->realize = sp_color_slider_realize; -#if GTK_CHECK_VERSION(3,0,0) - widget_class->get_preferred_width = sp_color_slider_get_preferred_width; - widget_class->get_preferred_height = sp_color_slider_get_preferred_height; - widget_class->draw = sp_color_slider_draw; -#else - widget_class->size_request = sp_color_slider_size_request; - widget_class->expose_event = sp_color_slider_expose; -#endif - widget_class->size_allocate = sp_color_slider_size_allocate; -/* widget_class->draw_focus = sp_color_slider_draw_focus; */ -/* widget_class->draw_default = sp_color_slider_draw_default; */ - - widget_class->button_press_event = sp_color_slider_button_press; - widget_class->button_release_event = sp_color_slider_button_release; - widget_class->motion_notify_event = sp_color_slider_motion_notify; -} - -static void -sp_color_slider_init (SPColorSlider *slider) -{ - /* We are widget with window */ - gtk_widget_set_has_window (GTK_WIDGET(slider), TRUE); - - slider->dragging = FALSE; - - slider->adjustment = NULL; - slider->value = 0.0; - - slider->c0[0] = 0x00; - slider->c0[1] = 0x00; - slider->c0[2] = 0x00; - slider->c0[3] = 0xff; - - slider->cm[0] = 0xff; - slider->cm[1] = 0x00; - slider->cm[2] = 0x00; - slider->cm[3] = 0xff; - - slider->c1[0] = 0xff; - slider->c1[1] = 0xff; - slider->c1[2] = 0xff; - slider->c1[3] = 0xff; - - slider->b0 = 0x5f; - slider->b1 = 0xa0; - slider->bmask = 0x08; - - slider->map = NULL; -} - -static void sp_color_slider_dispose(GObject *object) -{ - SPColorSlider *slider = SP_COLOR_SLIDER (object); - - if (slider->adjustment) { - g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); - g_object_unref (slider->adjustment); - slider->adjustment = NULL; - } - - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_slider_realize (GtkWidget *widget) -{ - GdkWindowAttr attributes; - gint attributes_mask; - GtkAllocation allocation; - - gtk_widget_get_allocation(widget, &allocation); - gtk_widget_set_realized (widget, TRUE); - - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); - -#if !GTK_CHECK_VERSION(3,0,0) - attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); -#endif - - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= (GDK_EXPOSURE_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_ENTER_NOTIFY_MASK | - GDK_LEAVE_NOTIFY_MASK); -#if GTK_CHECK_VERSION(3,0,0) - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#else - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; -#endif - - gtk_widget_set_window(widget, - gdk_window_new(gtk_widget_get_parent_window(widget), - &attributes, attributes_mask)); - - gdk_window_set_user_data(gtk_widget_get_window(widget), widget); - -#if !GTK_CHECK_VERSION(3,0,0) - // This doesn't do anything in GTK+ 3 - gtk_widget_set_style(widget, - gtk_style_attach(gtk_widget_get_style(widget), - gtk_widget_get_window(widget))); -#endif -} - -static void -sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition) -{ - GtkStyle *style = gtk_widget_get_style(widget); - requisition->width = SLIDER_WIDTH + style->xthickness * 2; - requisition->height = SLIDER_HEIGHT + style->ythickness * 2; -} - -#if GTK_CHECK_VERSION(3,0,0) -static void sp_color_slider_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) -{ - GtkRequisition requisition; - sp_color_slider_size_request(widget, &requisition); - *minimal_width = *natural_width = requisition.width; -} - -static void sp_color_slider_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height) -{ - GtkRequisition requisition; - sp_color_slider_size_request(widget, &requisition); - *minimal_height = *natural_height = requisition.height; -} -#endif - -static void -sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation) -{ - gtk_widget_set_allocation(widget, allocation); - - if (gtk_widget_get_realized (widget)) { - /* Resize GdkWindow */ - gdk_window_move_resize(gtk_widget_get_window(widget), - allocation->x, allocation->y, - allocation->width, allocation->height); - } -} - -#if !GTK_CHECK_VERSION(3,0,0) -static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose * /*event*/) -{ - gboolean result = FALSE; - - if (gtk_widget_is_drawable(widget)) { - GdkWindow *window = gtk_widget_get_window(widget); - cairo_t *cr = gdk_cairo_create(window); - result = sp_color_slider_draw(widget, cr); - cairo_destroy(cr); - } - - return result; -} -#endif - -static gint -sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (event->button == 1) { - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - gint cx, cw; - cx = gtk_widget_get_style(widget)->xthickness; - cw = allocation.width - 2 * cx; - g_signal_emit (G_OBJECT (slider), slider_signals[GRABBED], 0); - slider->dragging = TRUE; - slider->oldvalue = slider->value; - ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); - g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); - -#if GTK_CHECK_VERSION(3,0,0) - gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), - gtk_widget_get_window(widget), - GDK_OWNERSHIP_NONE, - FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, - event->time); -#else - gdk_pointer_grab(gtk_widget_get_window(widget), FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, NULL, event->time); -#endif - } - - return FALSE; -} - -static gint -sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (event->button == 1) { - -#if GTK_CHECK_VERSION(3,0,0) - gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), - gdk_event_get_time(reinterpret_cast(event))); -#else - gdk_pointer_ungrab (event->time); -#endif - - slider->dragging = FALSE; - g_signal_emit (G_OBJECT (slider), slider_signals[RELEASED], 0); - if (slider->value != slider->oldvalue) g_signal_emit (G_OBJECT (slider), slider_signals[CHANGED], 0); - } - - return FALSE; -} - -static gint -sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (slider->dragging) { - gint cx, cw; - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - cx = gtk_widget_get_style(widget)->xthickness; - cw = allocation.width - 2 * cx; - ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); - g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); - } - - return FALSE; -} - -GtkWidget *sp_color_slider_new(GtkAdjustment *adjustment) -{ - SPColorSlider *slider = SP_COLOR_SLIDER(g_object_new(SP_TYPE_COLOR_SLIDER, NULL)); - - sp_color_slider_set_adjustment (slider, adjustment); - - return GTK_WIDGET (slider); -} - -void sp_color_slider_set_adjustment(SPColorSlider *slider, GtkAdjustment *adjustment) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - if (!adjustment) { - adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); - } else { - gtk_adjustment_set_page_increment(adjustment, 0.0); - gtk_adjustment_set_page_size(adjustment, 0.0); - } - - if (slider->adjustment != adjustment) { - if (slider->adjustment) { - g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); - g_object_unref (slider->adjustment); - } - - slider->adjustment = adjustment; - g_object_ref (adjustment); - g_object_ref_sink (adjustment); - - g_signal_connect (G_OBJECT (adjustment), "changed", - G_CALLBACK (sp_color_slider_adjustment_changed), slider); - g_signal_connect (G_OBJECT (adjustment), "value_changed", - G_CALLBACK (sp_color_slider_adjustment_value_changed), slider); - - slider->value = ColorScales::getScaled( adjustment ); - - sp_color_slider_adjustment_changed (adjustment, slider); - } -} - -void -sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - // Remove any map, if set - slider->map = 0; - - slider->c0[0] = start >> 24; - slider->c0[1] = (start >> 16) & 0xff; - slider->c0[2] = (start >> 8) & 0xff; - slider->c0[3] = start & 0xff; - - slider->cm[0] = mid >> 24; - slider->cm[1] = (mid >> 16) & 0xff; - slider->cm[2] = (mid >> 8) & 0xff; - slider->cm[3] = mid & 0xff; - - slider->c1[0] = end >> 24; - slider->c1[1] = (end >> 16) & 0xff; - slider->c1[2] = (end >> 8) & 0xff; - slider->c1[3] = end & 0xff; - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -void -sp_color_slider_set_map (SPColorSlider *slider, const guchar *map) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - slider->map = const_cast(map); - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -void -sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - slider->b0 = dark; - slider->b1 = light; - slider->bmask = size; - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -static void -sp_color_slider_adjustment_changed (GtkAdjustment */*adjustment*/, SPColorSlider *slider) -{ - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -static void -sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider) -{ - GtkWidget *widget; - - widget = GTK_WIDGET (slider); - - if (slider->value != ColorScales::getScaled( adjustment )) { - gint cx, cy, cw, ch; - GtkStyle *style = gtk_widget_get_style(widget); - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - cx = style->xthickness; - cy = style->ythickness; - cw = allocation.width - 2 * cx; - ch = allocation.height - 2 * cy; - if ((gint) (ColorScales::getScaled( adjustment ) * cw) != (gint) (slider->value * cw)) { - gint ax, ay; - gfloat value; - value = slider->value; - slider->value = ColorScales::getScaled( adjustment ); - ax = (int)(cx + value * cw - ARROW_SIZE / 2 - 2); - ay = cy; - gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); - ax = (int)(cx + slider->value * cw - ARROW_SIZE / 2 - 2); - ay = cy; - gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); - } else { - slider->value = ColorScales::getScaled( adjustment ); - } - } -} - -static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr) -{ - SPColorSlider *slider = SP_COLOR_SLIDER(widget); - - gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); - - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - -#if GTK_CHECK_VERSION(3,0,0) - GtkStyleContext *context = gtk_widget_get_style_context(widget); -#else - GdkWindow *window = gtk_widget_get_window(widget); - GtkStyle *style = gtk_widget_get_style(widget); -#endif - - // Draw shadow - if (colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - gtk_render_frame(context, - cr, - 0, 0, - allocation.width, allocation.height); -#else - gtk_paint_shadow( style, window, - gtk_widget_get_state(widget), GTK_SHADOW_IN, - NULL, widget, "colorslider", - 0, 0, - allocation.width, allocation.height); -#endif - } - - /* Paintable part of color gradient area */ - GdkRectangle carea; - -#if GTK_CHECK_VERSION(3,0,0) - GtkBorder padding; - - gtk_style_context_get_padding(context, - gtk_widget_get_state_flags(widget), - &padding); - - carea.x = padding.left; - carea.y = padding.top; -#else - carea.x = style->xthickness; - carea.y = style->ythickness; -#endif - - carea.width = allocation.width - 2 * carea.x; - carea.height = allocation.height - 2 * carea.y; - - if (slider->map) { - /* Render map pixelstore */ - gint d = (1024 << 16) / carea.width; - gint s = 0; - - const guchar *b = sp_color_slider_render_map(0, 0, carea.width, carea.height, - slider->map, s, d, - slider->b0, slider->b1, slider->bmask); - - if (b != NULL && carea.width > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, carea.width, carea.height, carea.width * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); - cairo_paint(cr); - g_object_unref(pb); - } - - } else { - gint c[4], dc[4]; - - /* Render gradient */ - - // part 1: from c0 to cm - if (carea.width > 0) { - for (gint i = 0; i < 4; i++) { - c[i] = slider->c0[i] << 16; - dc[i] = ((slider->cm[i] << 16) - c[i]) / (carea.width/2); - } - guint wi = carea.width/2; - const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.height, - c, dc, slider->b0, slider->b1, slider->bmask); - - /* Draw pixelstore 1 */ - if (b != NULL && wi > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, wi, carea.height, wi * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); - cairo_paint(cr); - g_object_unref(pb); - } - } - - // part 2: from cm to c1 - if (carea.width > 0) { - for (gint i = 0; i < 4; i++) { - c[i] = slider->cm[i] << 16; - dc[i] = ((slider->c1[i] << 16) - c[i]) / (carea.width/2); - } - guint wi = carea.width/2; - const guchar *b = sp_color_slider_render_gradient(carea.width/2, 0, wi, carea.height, - c, dc, - slider->b0, slider->b1, slider->bmask); - - /* Draw pixelstore 2 */ - if (b != NULL && wi > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, wi, carea.height, wi * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.width/2 + carea.x, carea.y); - cairo_paint(cr); - - g_object_unref(pb); - } - } - } - - /* Draw shadow */ - if (!colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - gtk_render_frame(context, - cr, - 0, 0, - allocation.width, allocation.height); -#else - gtk_paint_shadow( style, window, - gtk_widget_get_state(widget), GTK_SHADOW_IN, - NULL, widget, "colorslider", - 0, 0, - allocation.width, allocation.height); -#endif - } - - /* Draw arrow */ - gint x = (int)(slider->value * (carea.width - 1) - ARROW_SIZE / 2 + carea.x); - gint y1 = carea.y; - gint y2 = carea.y + carea.height - 1; - cairo_set_line_width(cr, 1.0); - - // Define top arrow - cairo_move_to(cr, x - 0.5, y1 + 0.5); - cairo_line_to(cr, x + ARROW_SIZE - 0.5, y1 + 0.5); - cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y1 + ARROW_SIZE/2.0 + 0.5); - cairo_line_to(cr, x - 0.5, y1 + 0.5); - - // Define bottom arrow - cairo_move_to(cr, x - 0.5, y2 + 0.5); - cairo_line_to(cr, x + ARROW_SIZE - 0.5, y2 + 0.5); - cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y2 - ARROW_SIZE/2.0 + 0.5); - cairo_line_to(cr, x - 0.5, y2 + 0.5); - - // Render both arrows - cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); - cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); - cairo_fill(cr); - - return FALSE; -} - -/* Colors are << 16 */ - -static const guchar * -sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, - gint c[], gint dc[], guint b0, guint b1, guint mask) -{ - static guchar *buf = NULL; - static gint bs = 0; - guchar *dp; - gint x, y; - guint r, g, b, a; - - if (buf && (bs < width * height)) { - g_free (buf); - buf = NULL; - } - if (!buf) { - buf = g_new (guchar, width * height * 3); - bs = width * height; - } - - dp = buf; - r = c[0]; - g = c[1]; - b = c[2]; - a = c[3]; - for (x = x0; x < x0 + width; x++) { - gint cr, cg, cb, ca; - guchar *d; - cr = r >> 16; - cg = g >> 16; - cb = b >> 16; - ca = a >> 16; - d = dp; - for (y = y0; y < y0 + height; y++) { - guint bg, fc; - /* Background value */ - bg = ((x & mask) ^ (y & mask)) ? b0 : b1; - fc = (cr - bg) * ca; - d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cg - bg) * ca; - d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cb - bg) * ca; - d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - d += 3 * width; - } - r += dc[0]; - g += dc[1]; - b += dc[2]; - a += dc[3]; - dp += 3; - } - - return buf; -} - -/* Positions are << 16 */ - -static const guchar * -sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, - guchar *map, gint start, gint step, guint b0, guint b1, guint mask) -{ - static guchar *buf = NULL; - static gint bs = 0; - guchar *dp; - gint x, y; - - if (buf && (bs < width * height)) { - g_free (buf); - buf = NULL; - } - if (!buf) { - buf = g_new (guchar, width * height * 3); - bs = width * height; - } - - dp = buf; - for (x = x0; x < x0 + width; x++) { - gint cr, cg, cb, ca; - guchar *d = dp; - guchar *sp = map + 4 * (start >> 16); - cr = *sp++; - cg = *sp++; - cb = *sp++; - ca = *sp++; - for (y = y0; y < y0 + height; y++) { - guint bg, fc; - /* Background value */ - bg = ((x & mask) ^ (y & mask)) ? b0 : b1; - fc = (cr - bg) * ca; - d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cg - bg) * ca; - d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cb - bg) * ca; - d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - d += 3 * width; - } - dp += 3; - start += step; - } - - return buf; -} - diff --git a/src/widgets/sp-color-slider.h b/src/widgets/sp-color-slider.h deleted file mode 100644 index 6821c8fe4..000000000 --- a/src/widgets/sp-color-slider.h +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef __SP_COLOR_SLIDER_H__ -#define __SP_COLOR_SLIDER_H__ - -/* Author: - * Lauris Kaplinski - * - * Copyright (C) 2001-2002 Lauris Kaplinski - * - * This code is in public domain - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include - -#include - - -/* - * A slider with colored background - */ -class ColorSlider: public Gtk::Widget { -public: - //if GTK2 - ColorSlider(Gtk::Adjustment *adjustment); - ~ColorSlider(); - - void set_adjustment(Gtk::Adjustment *adjustment); - - void set_colors(guint32 start, guint32 mid, guint32 end); - - void set_map(const guchar* map); - - void set_background(guint dark, guint light, guint size); - - sigc::signal signal_grabbed; - sigc::signal signal_dragged; - sigc::signal signal_released; - sigc::signal signal_value_changed; - -protected: - void on_size_allocate(Gtk::Allocation& allocation); - void on_realize(); - void on_unrealize(); - bool on_button_press_event(GdkEventButton *event); - bool on_button_release_event(GdkEventButton *event); - bool on_motion_notify_event(GdkEventMotion *event); - - //if GTK2 - void on_size_request(Gtk::Requisition* requisition); - bool on_expose_event(GdkEventExpose* event); - //if GTK3 - //request mode, get preffered width/height vfunc - //endif - - bool on_draw(const Cairo::RefPtr& cr); - - //TODO: on_adjustment_changed method - //TODO: on_adjustment value changed method + connection - -private: - bool _dragging; - - Gtk::Adjustment *_adjustment; - - gfloat _value; - gfloat _oldvalue; - guchar _c0[4], _cm[4], _c1[4]; - guchar _b0, _b1; - guchar _bmask; - - gint _mapsize; - guchar *_map; - - Glib::RefPtr _refGdkWindow; -}; - - - - - -#include - -#include - - - -struct SPColorSlider; -struct SPColorSliderClass; - -#define SP_TYPE_COLOR_SLIDER (sp_color_slider_get_type ()) -#define SP_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_SLIDER, SPColorSlider)) -#define SP_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_SLIDER, SPColorSliderClass)) -#define SP_IS_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_SLIDER)) -#define SP_IS_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_SLIDER)) - -struct SPColorSlider { - GtkWidget widget; - - guint dragging : 1; - - GtkAdjustment *adjustment; - - gfloat value; - gfloat oldvalue; - guchar c0[4], cm[4], c1[4]; - guchar b0, b1; - guchar bmask; - - gint mapsize; - guchar *map; -}; - -struct SPColorSliderClass { - GtkWidgetClass parent_class; - - void (* grabbed) (SPColorSlider *slider); - void (* dragged) (SPColorSlider *slider); - void (* released) (SPColorSlider *slider); - void (* changed) (SPColorSlider *slider); -}; - -GType sp_color_slider_get_type (void); - -GtkWidget *sp_color_slider_new (GtkAdjustment *adjustment); - -void sp_color_slider_set_adjustment (SPColorSlider *slider, GtkAdjustment *adjustment); -void sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end); -void sp_color_slider_set_map (SPColorSlider *slider, const guchar *map); -void sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size); - - - -#endif diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index 1cc2e06d6..de2d030d4 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -11,6 +11,7 @@ #include "sp-color-scales.h" #include "sp-color-icc-selector.h" #include "../svg/svg-icc-color.h" +#include "ui/widget/color-slider.h" #include "ui/widget/gimpcolorwheel.h" G_BEGIN_DECLS diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index 6f45b6bba..b7b86438c 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -12,14 +12,12 @@ #include #include -#include "sp-color-slider.h" #include "sp-color-selector.h" - - typedef struct _GimpColorWheel GimpColorWheel; struct SPColorWheelSelector; struct SPColorWheelSelectorClass; +struct SPColorSlider; class ColorWheelSelector: public ColorSelector { -- cgit v1.2.3 From fe272ea3f531111c3ab361ca31ded84b1e7106df Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 23 May 2014 11:59:24 +0200 Subject: SPColorWheelSelector uses refactored ColorSlider class (bzr r13341.6.3) --- src/widgets/sp-color-wheel-selector.cpp | 92 ++++++++++++++------------------- src/widgets/sp-color-wheel-selector.h | 21 ++++++-- 2 files changed, 56 insertions(+), 57 deletions(-) diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index de2d030d4..0ef669aca 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include "../dialogs/dialog-events.h" #include "sp-color-scales.h" #include "sp-color-icc-selector.h" @@ -160,28 +161,26 @@ void ColorWheelSelector::init() _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); /* Slider */ - _slider = sp_color_slider_new (_adj); - gtk_widget_set_tooltip_text (_slider, _("Alpha (opacity)")); - gtk_widget_show (_slider); + _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj))); + _slider->set_tooltip_text(_("Alpha (opacity)")); + _slider->show(); #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_slider, XPAD); - gtk_widget_set_margin_right(_slider, XPAD); - gtk_widget_set_margin_top(_slider, YPAD); - gtk_widget_set_margin_bottom(_slider, YPAD); - gtk_widget_set_hexpand(_slider, TRUE); - gtk_widget_set_halign(_slider, GTK_ALIGN_FILL); - gtk_widget_set_valign(_slider, GTK_ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _slider, 1, row, 1, 1); + _slider->set_margin_left(XPAD); + _slider->set_margin_right(XPAD); + _slider->set_margin_top(YPAD); + _slider->set_margin_bottom(YPAD); + _slider->set_hexpand(true); + _slider->set_halign(Gtk::ALIGN_FILL); + _slider->set_valign(Gtk::ALIGN_FILL); + gtk_grid_attach(GTK_GRID(t), _slider->gobj(), 1, row, 1, 1); #else - gtk_table_attach(GTK_TABLE (t), _slider, 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); + gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); #endif - sp_color_slider_set_colors (SP_COLOR_SLIDER (_slider), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); - + _slider->set_colors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); /* Spinbutton */ _sbtn = gtk_spin_button_new (GTK_ADJUSTMENT (_adj), 1.0, 0); @@ -206,12 +205,9 @@ void ColorWheelSelector::init() g_signal_connect (G_OBJECT (_adj), "value_changed", G_CALLBACK (_adjustmentChanged), _csel); - g_signal_connect (G_OBJECT (_slider), "grabbed", - G_CALLBACK (_sliderGrabbed), _csel); - g_signal_connect (G_OBJECT (_slider), "released", - G_CALLBACK (_sliderReleased), _csel); - g_signal_connect (G_OBJECT (_slider), "changed", - G_CALLBACK (_sliderChanged), _csel); + _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); + _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); + _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); g_signal_connect( G_OBJECT(_wheel), "changed", G_CALLBACK (_wheelChanged), _csel ); @@ -243,9 +239,8 @@ GtkWidget *sp_color_wheel_selector_new() /* Helpers for setting color value */ -static void preserve_icc(SPColor *color, SPColorWheelSelector *cs){ - ColorSelector* selector = static_cast(SP_COLOR_SELECTOR(cs)->base); - color->icc = selector->getColor().icc ? new SVGICCColor(*selector->getColor().icc) : 0; +void ColorWheelSelector::_preserve_icc(SPColor *color) const { + color->icc = getColor().icc ? new SVGICCColor(*getColor().icc) : 0; } void ColorWheelSelector::_colorChanged() @@ -264,7 +259,7 @@ void ColorWheelSelector::_colorChanged() guint32 mid = _color.toRGBA32( 0x7f ); guint32 end = _color.toRGBA32( 0xff ); - sp_color_slider_set_colors(SP_COLOR_SLIDER(_slider), start, mid, end); + _slider->set_colors(start, mid, end); ColorScales::setScaled(_adj, _alpha); @@ -287,45 +282,38 @@ void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorW wheelSelector->_updating = TRUE; - preserve_icc(&wheelSelector->_color, cs); + wheelSelector->_preserve_icc(&wheelSelector->_color); wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); wheelSelector->_updating = FALSE; } -void ColorWheelSelector::_sliderGrabbed( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderGrabbed() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (!wheelSelector->_dragging) { - wheelSelector->_dragging = TRUE; - wheelSelector->_grabbed(); + if (!_dragging) { + _dragging = TRUE; + _grabbed(); - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } } -void ColorWheelSelector::_sliderReleased( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderReleased() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (wheelSelector->_dragging) { - wheelSelector->_dragging = FALSE; - wheelSelector->_released(); + if (_dragging) { + _dragging = FALSE; + _released(); - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } } -void ColorWheelSelector::_sliderChanged( SPColorSlider *slider, SPColorWheelSelector *cs ) +void ColorWheelSelector::_sliderChanged() { - (void)slider; - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - - preserve_icc(&wheelSelector->_color, cs); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); } void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ) @@ -346,9 +334,9 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec guint32 mid = color.toRGBA32( 0x7f ); guint32 end = color.toRGBA32( 0xff ); - sp_color_slider_set_colors (SP_COLOR_SLIDER(wheelSelector->_slider), start, mid, end); + wheelSelector->_slider->set_colors(start, mid, end); - preserve_icc(&color, cs); + wheelSelector->_preserve_icc(&color); wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); } diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index b7b86438c..bb6078906 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -17,7 +17,16 @@ typedef struct _GimpColorWheel GimpColorWheel; struct SPColorWheelSelector; struct SPColorWheelSelectorClass; -struct SPColorSlider; + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorSlider; + +} +} +} class ColorWheelSelector: public ColorSelector { @@ -32,9 +41,9 @@ protected: static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorWheelSelector *cs ); - static void _sliderGrabbed( SPColorSlider *slider, SPColorWheelSelector *cs ); - static void _sliderReleased( SPColorSlider *slider, SPColorWheelSelector *cs ); - static void _sliderChanged( SPColorSlider *slider, SPColorWheelSelector *cs ); + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); static void _wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ); static void _fooChanged( GtkWidget foo, SPColorWheelSelector *cs ); @@ -45,7 +54,7 @@ protected: gboolean _dragging : 1; GtkAdjustment* _adj; // Channel adjustment GtkWidget* _wheel; - GtkWidget* _slider; + Inkscape::UI::Widget::ColorSlider* _slider; GtkWidget* _sbtn; // Spinbutton GtkWidget* _label; // Label @@ -53,6 +62,8 @@ private: // By default, disallow copy constructor and assignment operator ColorWheelSelector( const ColorWheelSelector& obj ); ColorWheelSelector& operator=( const ColorWheelSelector& obj ); + + void _preserve_icc(SPColor *color) const; }; -- cgit v1.2.3 From 07ce2371a81e1393032c2ce4e0c0373282df204b Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 23 May 2014 12:53:33 +0200 Subject: ported draw method (bzr r13341.6.4) --- src/ui/widget/color-slider.cpp | 173 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 167 insertions(+), 6 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 430239f00..d927a7f67 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -29,6 +29,11 @@ static const gint SLIDER_WIDTH = 96; static const gint SLIDER_HEIGHT = 8; static const gint ARROW_SIZE = 7; +static const guchar *sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, + gint c[], gint dc[], guint b0, guint b1, guint mask); +static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, + guchar *map, gint start, gint step, guint b0, guint b1, guint mask); + namespace Inkscape { namespace UI { namespace Widget { @@ -165,8 +170,26 @@ void ColorSlider::set_adjustment(Gtk::Adjustment* /*adjustment*/) { //TODO: implementation } -void ColorSlider::set_colors(guint32 start, guint32 min, guint32 end) { +void ColorSlider::set_colors(guint32 start, guint32 mid, guint32 end) { + // Remove any map, if set + _map = 0; + + _c0[0] = start >> 24; + _c0[1] = (start >> 16) & 0xff; + _c0[2] = (start >> 8) & 0xff; + _c0[3] = start & 0xff; + _cm[0] = mid >> 24; + _cm[1] = (mid >> 16) & 0xff; + _cm[2] = (mid >> 8) & 0xff; + _cm[3] = mid & 0xff; + + _c1[0] = end >> 24; + _c1[1] = (end >> 16) & 0xff; + _c1[2] = (end >> 8) & 0xff; + _c1[3] = end & 0xff; + + queue_draw(); } void ColorSlider::set_map(const guchar *map) { @@ -178,6 +201,149 @@ void ColorSlider::set_background(guint dark, guint light, guint size) { } bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { + gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); + + Gtk::Allocation allocation = get_allocation(); + +#if GTK_CHECK_VERSION(3,0,0) + Glib::RefPtr context = get_style_context(); +#else + Glib::RefPtr window = get_window(); + Glib::RefPtr style = get_style(); +#endif + + // Draw shadow + if (colorsOnTop) { +#if GTK_CHECK_VERSION(3,0,0) + context->render_frame(cr, 0, 0, + allocation.get_width(), allocation.get_height()); +#else + style->paint_shadow(window, get_state(), Gtk::SHADOW_IN, + Gdk::Rectangle(), *this, "colorslider", + 0, 0, + allocation.get_width(), allocation.get_height()); +#endif + } + + /* Paintable part of color gradient area */ + Gdk::Rectangle carea; + +#if GTK_CHECK_VERSION(3,0,0) + Gtk::Border padding; + + padding = style_context->get_padding(get_state_flags()); + + carea.set_x(padding.get_left()); + carea.set_y(padding.get_top());; +#else + carea.set_x(style->get_xthickness()); + carea.set_y(style->get_ythickness()); +#endif + + carea.set_width(allocation.get_width() - 2 * carea.get_x()); + carea.set_height(allocation.get_height() - 2 * carea.get_y()); + + if (_map) { + /* Render map pixelstore */ + gint d = (1024 << 16) / carea.get_width(); + gint s = 0; + + const guchar *b = sp_color_slider_render_map(0, 0, carea.get_width(), carea.get_height(), + _map, s, d, + _b0, _b1, _bmask); + + if (b != NULL && carea.get_width() > 0) { + Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, + false, 8, carea.get_width(), carea.get_height(), carea.get_width() * 3); + + Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_x(), carea.get_y()); + cr->paint(); + } + + } else { + gint c[4], dc[4]; + + /* Render gradient */ + + // part 1: from c0 to cm + if (carea.get_width() > 0) { + for (gint i = 0; i < 4; i++) { + c[i] = _c0[i] << 16; + dc[i] = ((_cm[i] << 16) - c[i]) / (carea.get_width()/2); + } + guint wi = carea.get_width()/2; + const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.get_height(), + c, dc, _b0, _b1, _bmask); + + /* Draw pixelstore 1 */ + if (b != NULL && wi > 0) { + Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, + false, 8, wi, carea.get_height(), carea.get_width() * 3); + + Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_x(), carea.get_y()); + cr->paint(); + } + } + + // part 2: from cm to c1 + if (carea.get_width() > 0) { + for (gint i = 0; i < 4; i++) { + c[i] = _cm[i] << 16; + dc[i] = ((_c1[i] << 16) - c[i]) / (carea.get_width()/2); + } + guint wi = carea.get_width()/2; + const guchar *b = sp_color_slider_render_gradient(carea.get_width()/2, 0, wi, carea.get_height(), + c, dc, + _b0, _b1, _bmask); + + /* Draw pixelstore 2 */ + if (b != NULL && wi > 0) { + Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, + false, 8, wi, carea.get_height(), carea.get_width() * 3); + + Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_width()/2 + carea.get_x(), carea.get_y()); + cr->paint(); + } + } + } + + /* Draw shadow */ + if (!colorsOnTop) { +#if GTK_CHECK_VERSION(3,0,0) + context->render_frame(cr, 0, 0, + allocation.get_width(), allocation.get_height()); +#else + style->paint_shadow(window, get_state(), Gtk::SHADOW_IN, + Gdk::Rectangle(), *this, "colorslider", + 0, 0, + allocation.get_width(), allocation.get_height()); +#endif + } + + /* Draw arrow */ + gint x = (int)(_value * (carea.get_width() - 1) - ARROW_SIZE / 2 + carea.get_x()); + gint y1 = carea.get_y(); + gint y2 = carea.get_y() + carea.get_height() - 1; + cr->set_line_width(1.0); + + // Define top arrow + cr->move_to(x - 0.5, y1 + 0.5); + cr->line_to(x + ARROW_SIZE - 0.5, y1 + 0.5); + cr->line_to(x + (ARROW_SIZE-1)/2.0, y1 + ARROW_SIZE/2.0 + 0.5); + cr->line_to(x - 0.5, y1 + 0.5); + + // Define bottom arrow + cr->move_to(x - 0.5, y2 + 0.5); + cr->line_to(x + ARROW_SIZE - 0.5, y2 + 0.5); + cr->line_to(x + (ARROW_SIZE-1)/2.0, y2 - ARROW_SIZE/2.0 + 0.5); + cr->line_to(x - 0.5, y2 + 0.5); + + // Render both arrows + cr->set_source_rgb(1.0, 1.0, 1.0); + cr->stroke_preserve(); + cr->set_source_rgb(0.0, 0.0, 0.0); + cr->fill(); + return false; } @@ -246,11 +412,6 @@ static gint sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *ev static void sp_color_slider_adjustment_changed (GtkAdjustment *adjustment, SPColorSlider *slider); static void sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider); -static const guchar *sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, - gint c[], gint dc[], guint b0, guint b1, guint mask); -static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, - guchar *map, gint start, gint step, guint b0, guint b1, guint mask); - static GtkWidgetClass *parent_class; static guint slider_signals[LAST_SIGNAL] = {0}; -- cgit v1.2.3 From 837f710ed9947b30a77a990ae27beed10449f977 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 01:32:04 +0200 Subject: SPColorSlider c++-sification: ported drawing (bzr r13341.6.5) --- src/ui/widget/color-slider.cpp | 79 ++++++++++++++++++++++++++++++++++++++---- src/ui/widget/color-slider.h | 6 ++++ 2 files changed, 78 insertions(+), 7 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index d927a7f67..82eafdcf8 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -70,8 +70,9 @@ ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) ColorSlider::~ColorSlider() { if (_adjustment) { - //TODO: disconnect all connections - delete _adjustment; + _adjustment_changed_connection.disconnect(); + _adjustment_value_changed_connection.disconnect(); + _adjustment->unreference(); _adjustment = NULL; } } @@ -134,6 +135,8 @@ void ColorSlider::on_size_request(Gtk::Requisition* requisition) { //TODO: GTK3 prefferred width/height void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { + set_allocation(allocation); + if (get_realized()) { _refGdkWindow->move_resize(allocation.get_x(), allocation.get_y(), allocation.get_width(), allocation.get_height()); @@ -166,8 +169,64 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { return false; } -void ColorSlider::set_adjustment(Gtk::Adjustment* /*adjustment*/) { - //TODO: implementation +void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { + if (!adjustment) { + _adjustment = Gtk::manage(new Gtk::Adjustment(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); + } else { + adjustment->set_page_increment(0.0); + adjustment->set_page_size(0.0); + } + + if (_adjustment != adjustment) { + if (_adjustment) { + _adjustment_changed_connection.disconnect(); + _adjustment_value_changed_connection.disconnect(); + //if GTK2 + _adjustment->unreference(); + } + + _adjustment = adjustment; + _adjustment->reference(); + + _adjustment_changed_connection = _adjustment->signal_changed().connect( + sigc::mem_fun(this, &ColorSlider::on_adjustment_changed)); + _adjustment_value_changed_connection = _adjustment->signal_value_changed().connect( + sigc::mem_fun(this, &ColorSlider::on_adjustment_value_changed)); + + _value = ColorScales::getScaled(_adjustment->gobj()); + + on_adjustment_changed(); + } +} + +void ColorSlider::on_adjustment_changed() { + queue_draw(); +} + +void ColorSlider::on_adjustment_value_changed() { + if (_value != ColorScales::getScaled( _adjustment->gobj() )) { + gint cx, cy, cw, ch; + Glib::RefPtr style = get_style(); + Gtk::Allocation allocation = get_allocation(); + cx = style->get_xthickness(); + cy = style->get_ythickness(); + cw = allocation.get_width() - 2 * cx; + ch = allocation.get_height() - 2 * cy; + if ((gint) (ColorScales::getScaled( _adjustment->gobj() ) * cw) != (gint) (_value * cw)) { + gint ax, ay; + gfloat value; + value = _value; + _value = ColorScales::getScaled( _adjustment->gobj() ); + ax = (int)(cx + value * cw - ARROW_SIZE / 2 - 2); + ay = cy; + queue_draw_area(ax, ay, ARROW_SIZE + 4, ch); + ax = (int)(cx + _value * cw - ARROW_SIZE / 2 - 2); + ay = cy; + queue_draw_area(ax, ay, ARROW_SIZE + 4, ch); + } else { + _value = ColorScales::getScaled( _adjustment->gobj() ); + } + } } void ColorSlider::set_colors(guint32 start, guint32 mid, guint32 end) { @@ -193,11 +252,17 @@ void ColorSlider::set_colors(guint32 start, guint32 mid, guint32 end) { } void ColorSlider::set_map(const guchar *map) { + _map = const_cast(map); + queue_draw(); } void ColorSlider::set_background(guint dark, guint light, guint size) { + _b0 = dark; + _b1 = light; + _bmask = size; + queue_draw(); } bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { @@ -278,7 +343,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { /* Draw pixelstore 1 */ if (b != NULL && wi > 0) { Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, - false, 8, wi, carea.get_height(), carea.get_width() * 3); + false, 8, wi, carea.get_height(), wi * 3); Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_x(), carea.get_y()); cr->paint(); @@ -299,7 +364,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { /* Draw pixelstore 2 */ if (b != NULL && wi > 0) { Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, - false, 8, wi, carea.get_height(), carea.get_width() * 3); + false, 8, wi, carea.get_height(), wi * 3); Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_width()/2 + carea.get_x(), carea.get_y()); cr->paint(); @@ -1012,7 +1077,7 @@ static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr) cairo_stroke_preserve(cr); cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); cairo_fill(cr); - + return FALSE; } diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index d8be7d111..7f3088772 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -36,6 +36,7 @@ public: ColorSlider(Gtk::Adjustment *adjustment); ~ColorSlider(); + //if GTK2 void set_adjustment(Gtk::Adjustment *adjustment); void set_colors(guint32 start, guint32 mid, guint32 end); @@ -70,9 +71,14 @@ protected: //TODO: on_adjustment value changed method + connection private: + void on_adjustment_changed(); + void on_adjustment_value_changed(); + bool _dragging; Gtk::Adjustment *_adjustment; + sigc::connection _adjustment_changed_connection; + sigc::connection _adjustment_value_changed_connection; gfloat _value; gfloat _oldvalue; -- cgit v1.2.3 From 84379bcbe7e5008ee24d0b1f465d2c55ff9529b7 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 14:42:58 +0200 Subject: SPColorSlider c++-sification: ported mouse events (bzr r13341.6.6) --- src/ui/widget/color-slider.cpp | 53 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 3 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 82eafdcf8..2c330e9ca 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -18,6 +18,7 @@ #include "color-slider.h" #include +#include #include #include #include @@ -155,17 +156,63 @@ bool ColorSlider::on_expose_event(GdkEventExpose* event) { } bool ColorSlider::on_button_press_event(GdkEventButton *event) { - //TODO: implementation + if (event->button == 1) { + Gtk::Allocation allocation = get_allocation(); + gint cx, cw; + cx = get_style()->get_xthickness(); + cw = allocation.get_width() - 2 * cx; + signal_grabbed.emit(); + _dragging = true; + _oldvalue = _value; + ColorScales::setScaled( _adjustment->gobj(), CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + signal_dragged.emit(); + +#if GTK_CHECK_VERSION(3,0,0) + gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), + _refGdkWindow->gobj(), + GDK_OWNERSHIP_NONE, + FALSE, + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), + NULL, + event->time); +#else + get_window()->pointer_grab(false, Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_RELEASE_MASK, Gdk::Cursor(), event->time); +#endif + } + return false; } bool ColorSlider::on_button_release_event(GdkEventButton *event) { - //TODO: implementation + if (event->button == 1) { + +#if GTK_CHECK_VERSION(3,0,0) + gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), + gdk_event_get_time(reinterpret_cast(event))); +#else + get_window()->pointer_ungrab(event->time); +#endif + + _dragging = false; + signal_released.emit(); + if (_value != _oldvalue) { + signal_value_changed.emit(); + } + } + return false; } bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { - //TODO: implementation + if (_dragging) { + gint cx, cw; + Gtk::Allocation allocation = get_allocation(); + cx = get_style()->get_xthickness(); + cw = allocation.get_width() - 2 * cx; + ColorScales::setScaled( _adjustment->gobj(), CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + signal_dragged.emit(); + } + return false; } -- cgit v1.2.3 From a87f50a6174b65b8db1d0a091d30a5de206f03df Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 15:07:28 +0200 Subject: SPColorSlider c++-sification: fixed drawing border (bzr r13341.6.7) --- src/ui/widget/color-slider.cpp | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 2c330e9ca..31ae5fbdf 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -330,10 +330,11 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else - style->paint_shadow(window, get_state(), Gtk::SHADOW_IN, - Gdk::Rectangle(), *this, "colorslider", - 0, 0, - allocation.get_width(), allocation.get_height()); + gtk_paint_shadow( style->gobj(), window->gobj(), + gtk_widget_get_state(gobj()), GTK_SHADOW_IN, + NULL, gobj(), "colorslider", + 0, 0, + allocation.get_width(), allocation.get_height()); #endif } @@ -425,10 +426,11 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else - style->paint_shadow(window, get_state(), Gtk::SHADOW_IN, - Gdk::Rectangle(), *this, "colorslider", - 0, 0, - allocation.get_width(), allocation.get_height()); + gtk_paint_shadow( style->gobj(), window->gobj(), + gtk_widget_get_state(gobj()), GTK_SHADOW_IN, + NULL, gobj(), "colorslider", + 0, 0, + allocation.get_width(), allocation.get_height()); #endif } -- cgit v1.2.3 From c77abbc4c33e15c742b477a178e90816f4ab3d67 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 15:16:37 +0200 Subject: SPColorSlider c++-sification: fixed failed Gtk assertion (bzr r13341.6.8) --- src/ui/widget/color-slider.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 31ae5fbdf..b28393be0 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -176,7 +176,9 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event) { NULL, event->time); #else - get_window()->pointer_grab(false, Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_RELEASE_MASK, Gdk::Cursor(), event->time); + gdk_pointer_grab(get_window()->gobj(), FALSE, + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), + NULL, NULL, event->time); #endif } -- cgit v1.2.3 From 0d4b01e5ed7dd47bc2f1664845803de87ebb2b01 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 16:40:56 +0200 Subject: SPColorSlider c++-sification: compilation with GTK3 (bzr r13341.6.9) --- src/ui/widget/color-slider.cpp | 99 ++++++++++++++++++++++++++++++++++-------- src/ui/widget/color-slider.h | 33 ++++++++------ 2 files changed, 100 insertions(+), 32 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index b28393be0..450dcd6f6 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -22,6 +22,11 @@ #include #include #include +#if GTK_CHECK_VERSION(3,0,0) +#include +#else +#include +#endif #include "widgets/sp-color-scales.h" #include "preferences.h" @@ -39,9 +44,14 @@ namespace Inkscape { namespace UI { namespace Widget { +#if GTK_CHECK_VERSION(3,0,0) +ColorSlider::ColorSlider(Glib::RefPtr adjustment) + : _dragging(false) +#else ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) : _dragging(false) , _adjustment(NULL) +#endif , _value(0.0) , _oldvalue(0.0) , _mapsize(0) @@ -73,8 +83,12 @@ ColorSlider::~ColorSlider() { if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); +#if GTK_CHECK_VERSION(3,0,0) + _adjustment.reset(); +#else _adjustment->unreference(); _adjustment = NULL; +#endif } } @@ -117,7 +131,9 @@ void ColorSlider::on_realize() { set_window(_refGdkWindow); _refGdkWindow->set_user_data(gobj()); +#if !GTK_CHECK_VERSION(3,0,0) style_attach(); +#endif } } @@ -127,14 +143,6 @@ void ColorSlider::on_unrealize() { Gtk::Widget::on_unrealize(); } -void ColorSlider::on_size_request(Gtk::Requisition* requisition) { - GtkStyle *style = gtk_widget_get_style(gobj()); - requisition->width = SLIDER_WIDTH + style->xthickness * 2; - requisition->height = SLIDER_HEIGHT + style->ythickness * 2; -} - -//TODO: GTK3 prefferred width/height - void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { set_allocation(allocation); @@ -144,7 +152,32 @@ void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { } } -//TODO: if not GTK3 +#if GTK_CHECK_VERSION(3,0,0) + +void ColorSlider::get_preferred_width_vfunc(int& minimum_width, int& natural_width) const +{ + Glib::RefPtrstyle_context = get_style_context(); + Gtk::Border padding = style_context->get_padding(get_state_flags()); + int width = SLIDER_WIDTH + padding.get_left() + padding.get_right(); + minimum_width = natural_width = width; + +} + +void ColorSlider::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const +{ + Glib::RefPtrstyle_context = get_style_context(); + Gtk::Border padding = style_context->get_padding(get_state_flags()); + int height = SLIDER_WIDTH + padding.get_top() + padding.get_bottom(); + minimum_height = natural_height = height; +} +#else + +void ColorSlider::on_size_request(Gtk::Requisition* requisition) { + GtkStyle *style = gtk_widget_get_style(gobj()); + requisition->width = SLIDER_WIDTH + style->xthickness * 2; + requisition->height = SLIDER_HEIGHT + style->ythickness * 2; +} + bool ColorSlider::on_expose_event(GdkEventExpose* event) { bool result = false; @@ -155,11 +188,17 @@ bool ColorSlider::on_expose_event(GdkEventExpose* event) { return result; } +#endif + bool ColorSlider::on_button_press_event(GdkEventButton *event) { if (event->button == 1) { Gtk::Allocation allocation = get_allocation(); gint cx, cw; +#if GTK_CHECK_VERSION(3,0,0) + cx = get_style_context()->get_padding(get_state_flags()).get_left(); +#else cx = get_style()->get_xthickness(); +#endif cw = allocation.get_width() - 2 * cx; signal_grabbed.emit(); _dragging = true; @@ -209,7 +248,11 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { if (_dragging) { gint cx, cw; Gtk::Allocation allocation = get_allocation(); +#if GTK_CHECK_VERSION(3,0,0) + cx = get_style_context()->get_padding(get_state_flags()).get_left(); +#else cx = get_style()->get_xthickness(); +#endif cw = allocation.get_width() - 2 * cx; ColorScales::setScaled( _adjustment->gobj(), CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); signal_dragged.emit(); @@ -218,9 +261,17 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { return false; } +#if GTK_CHECK_VERSION(3,0,0) +void ColorSlider::set_adjustment(Glib::RefPtr adjustment) { +#else void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { +#endif if (!adjustment) { +#if GTK_CHECK_VERSION(3,0,0) + _adjustment = Gtk::Adjustment::create(0.0, 0.0, 1.0, 0.01, 0.0, 0.0); +#else _adjustment = Gtk::manage(new Gtk::Adjustment(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); +#endif } else { adjustment->set_page_increment(0.0); adjustment->set_page_size(0.0); @@ -230,35 +281,45 @@ void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); - //if GTK2 +#if !GTK_CHECK_VERSION(3,0,0) _adjustment->unreference(); +#endif } _adjustment = adjustment; +#if !GTK_CHECK_VERSION(3,0,0) _adjustment->reference(); - +#endif _adjustment_changed_connection = _adjustment->signal_changed().connect( - sigc::mem_fun(this, &ColorSlider::on_adjustment_changed)); + sigc::mem_fun(this, &ColorSlider::_on_adjustment_changed)); _adjustment_value_changed_connection = _adjustment->signal_value_changed().connect( - sigc::mem_fun(this, &ColorSlider::on_adjustment_value_changed)); + sigc::mem_fun(this, &ColorSlider::_on_adjustment_value_changed)); _value = ColorScales::getScaled(_adjustment->gobj()); - on_adjustment_changed(); + _on_adjustment_changed(); } } -void ColorSlider::on_adjustment_changed() { +void ColorSlider::_on_adjustment_changed() { queue_draw(); } -void ColorSlider::on_adjustment_value_changed() { +void ColorSlider::_on_adjustment_value_changed() { if (_value != ColorScales::getScaled( _adjustment->gobj() )) { gint cx, cy, cw, ch; +#if GTK_CHECK_VERSION(3,0,0) + Glib::RefPtrstyle_context = get_style_context(); + Gtk::Allocation allocation = get_allocation(); + Gtk::Border padding = style_context->get_padding(get_state_flags()); + cx = padding.get_left(); + cy = padding.get_top(); +#else Glib::RefPtr style = get_style(); Gtk::Allocation allocation = get_allocation(); cx = style->get_xthickness(); cy = style->get_ythickness(); +#endif cw = allocation.get_width() - 2 * cx; ch = allocation.get_height() - 2 * cy; if ((gint) (ColorScales::getScaled( _adjustment->gobj() ) * cw) != (gint) (_value * cw)) { @@ -320,7 +381,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { Gtk::Allocation allocation = get_allocation(); #if GTK_CHECK_VERSION(3,0,0) - Glib::RefPtr context = get_style_context(); + Glib::RefPtr style_context = get_style_context(); #else Glib::RefPtr window = get_window(); Glib::RefPtr style = get_style(); @@ -329,7 +390,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { // Draw shadow if (colorsOnTop) { #if GTK_CHECK_VERSION(3,0,0) - context->render_frame(cr, 0, 0, + style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else gtk_paint_shadow( style->gobj(), window->gobj(), @@ -425,7 +486,7 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { /* Draw shadow */ if (!colorsOnTop) { #if GTK_CHECK_VERSION(3,0,0) - context->render_frame(cr, 0, 0, + style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else gtk_paint_shadow( style->gobj(), window->gobj(), diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index 7f3088772..c6d843fe5 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -32,12 +32,18 @@ namespace Widget */ class ColorSlider: public Gtk::Widget { public: - //if GTK2 +#if GTK_CHECK_VERSION(3,0,0) + ColorSlider(Glib::RefPtr adjustment); +#else ColorSlider(Gtk::Adjustment *adjustment); +#endif ~ColorSlider(); - //if GTK2 +#if GTK_CHECK_VERSION(3,0,0) + void set_adjustment(Glib::RefPtr adjustment); +#else void set_adjustment(Gtk::Adjustment *adjustment); +#endif void set_colors(guint32 start, guint32 mid, guint32 end); @@ -57,26 +63,27 @@ protected: bool on_button_press_event(GdkEventButton *event); bool on_button_release_event(GdkEventButton *event); bool on_motion_notify_event(GdkEventMotion *event); + bool on_draw(const Cairo::RefPtr& cr); - //if GTK2 +#if GTK_CHECK_VERSION(3,0,0) + void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const; + void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const; +#else void on_size_request(Gtk::Requisition* requisition); bool on_expose_event(GdkEventExpose* event); - //if GTK3 - //request mode, get preffered width/height vfunc - //endif - - bool on_draw(const Cairo::RefPtr& cr); - - //TODO: on_adjustment_changed method - //TODO: on_adjustment value changed method + connection +#endif private: - void on_adjustment_changed(); - void on_adjustment_value_changed(); + void _on_adjustment_changed(); + void _on_adjustment_value_changed(); bool _dragging; +#if GTK_CHECK_VERSION(3,0,0) + Glib::RefPtr _adjustment; +#else Gtk::Adjustment *_adjustment; +#endif sigc::connection _adjustment_changed_connection; sigc::connection _adjustment_value_changed_connection; -- cgit v1.2.3 From c28cce00312a421bea39c4d78360e3939c573de3 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 19:14:18 +0200 Subject: SPColorSlider c++-sification: fixed size request (bzr r13341.6.10) --- src/ui/widget/color-slider.cpp | 12 +++++++++++- src/ui/widget/color-slider.h | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 450dcd6f6..ff69e6ed5 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -160,16 +160,26 @@ void ColorSlider::get_preferred_width_vfunc(int& minimum_width, int& natural_wid Gtk::Border padding = style_context->get_padding(get_state_flags()); int width = SLIDER_WIDTH + padding.get_left() + padding.get_right(); minimum_width = natural_width = width; +} +void ColorSlider::get_preferred_width_for_height_vfunc(int /*height*/, int& minimum_width, int& natural_width) const +{ + get_preferred_width(minimum_width, natural_width); } void ColorSlider::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const { Glib::RefPtrstyle_context = get_style_context(); Gtk::Border padding = style_context->get_padding(get_state_flags()); - int height = SLIDER_WIDTH + padding.get_top() + padding.get_bottom(); + int height = SLIDER_HEIGHT + padding.get_top() + padding.get_bottom(); minimum_height = natural_height = height; } + +void ColorSlider::get_preferred_height_for_width_vfunc(int /*width*/, int& minimum_height, int& natural_height) const +{ + get_preferred_height(minimum_height, natural_height); +} + #else void ColorSlider::on_size_request(Gtk::Requisition* requisition) { diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index c6d843fe5..eb4cd99c3 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -67,7 +67,9 @@ protected: #if GTK_CHECK_VERSION(3,0,0) void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const; + void get_preferred_width_for_height_vfunc(int height, int& minimum_width, int& natural_width) const; void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const; + void get_preferred_height_for_width_vfunc(int width, int& minimum_height, int& natural_height) const; #else void on_size_request(Gtk::Requisition* requisition); bool on_expose_event(GdkEventExpose* event); -- cgit v1.2.3 From 15db1bacac6f25cef94f92bb4aa0fc96a02b4113 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 19:20:57 +0200 Subject: SPColorSlider c++-sification: fixed crash at exit (bzr r13341.6.11) --- src/widgets/sp-color-wheel-selector.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index 0ef669aca..2100f555c 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -161,7 +161,7 @@ void ColorWheelSelector::init() _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); /* Slider */ - _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj))); + _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj, true))); _slider->set_tooltip_text(_("Alpha (opacity)")); _slider->show(); -- cgit v1.2.3 From 38b4b1f4d34eb3e67c770bd833629e92b336155a Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 19:59:29 +0200 Subject: SPColorSlider c++-sification: use in sp-color-scales (bzr r13341.6.12) --- src/widgets/sp-color-scales.cpp | 182 ++++++++++++++++++---------------------- src/widgets/sp-color-scales.h | 18 ++-- 2 files changed, 94 insertions(+), 106 deletions(-) diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index 7d5874506..94950e937 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -11,6 +11,8 @@ #include #include #include +#include + #include "../dialogs/dialog-events.h" #include "svg/svg-icc-color.h" #include "ui/widget/color-slider.h" @@ -166,18 +168,18 @@ void ColorScales::init() /* Adjustment */ _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); /* Slider */ - _s[i] = sp_color_slider_new (_a[i]); - gtk_widget_show (_s[i]); + _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); + _s[i]->show(); #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_s[i], XPAD); - gtk_widget_set_margin_right(_s[i], XPAD); - gtk_widget_set_margin_top(_s[i], YPAD); - gtk_widget_set_margin_bottom(_s[i], YPAD); - gtk_widget_set_hexpand(_s[i], TRUE); - gtk_grid_attach(GTK_GRID(t), _s[i], 1, i, 1, 1); + _s[i]->set_margin_left(XPAD); + _s[i]->set_margin_right(XPAD); + _s[i]->set_margin_top(YPAD); + _s[i]->set_margin_bottom(YPAD); + _s[i]->set_hexpand(true); + gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _s[i], 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); + gtk_table_attach (GTK_TABLE (t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); #endif /* Spinbutton */ @@ -203,12 +205,9 @@ void ColorScales::init() /* Signals */ g_signal_connect (G_OBJECT (_a[i]), "value_changed", G_CALLBACK (_adjustmentAnyChanged), _csel); - g_signal_connect (G_OBJECT (_s[i]), "grabbed", - G_CALLBACK (_sliderAnyGrabbed), _csel); - g_signal_connect (G_OBJECT (_s[i]), "released", - G_CALLBACK (_sliderAnyReleased), _csel); - g_signal_connect (G_OBJECT (_s[i]), "changed", - G_CALLBACK (_sliderAnyChanged), _csel); + _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); + _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); + _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); } /* Initial mode is none, so it works */ @@ -429,20 +428,20 @@ void ColorScales::setMode(SPColorScalesMode mode) case SP_COLOR_SCALES_MODE_RGB: _setRangeLimit(255.0); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_R:")); - gtk_widget_set_tooltip_text (_s[0], _("Red")); + _s[0]->set_tooltip_text(_("Red")); gtk_widget_set_tooltip_text (_b[0], _("Red")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_G:")); - gtk_widget_set_tooltip_text (_s[1], _("Green")); + _s[1]->set_tooltip_text(_("Green")); gtk_widget_set_tooltip_text (_b[1], _("Green")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_B:")); - gtk_widget_set_tooltip_text (_s[2], _("Blue")); + _s[2]->set_tooltip_text(_("Blue")); gtk_widget_set_tooltip_text (_b[2], _("Blue")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - gtk_widget_set_tooltip_text (_s[3], _("Alpha (opacity)")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - sp_color_slider_set_map (SP_COLOR_SLIDER (_s[0]), NULL); + _s[0]->set_map(NULL); gtk_widget_hide (_l[4]); - gtk_widget_hide (_s[4]); + _s[4]->hide(); gtk_widget_hide (_b[4]); _updating = TRUE; setScaled( _a[0], rgba[0] ); @@ -455,20 +454,20 @@ void ColorScales::setMode(SPColorScalesMode mode) case SP_COLOR_SCALES_MODE_HSV: _setRangeLimit(255.0); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_H:")); - gtk_widget_set_tooltip_text (_s[0], _("Hue")); + _s[0]->set_tooltip_text(_("Hue")); gtk_widget_set_tooltip_text (_b[0], _("Hue")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_S:")); - gtk_widget_set_tooltip_text (_s[1], _("Saturation")); + _s[1]->set_tooltip_text(_("Saturation")); gtk_widget_set_tooltip_text (_b[1], _("Saturation")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_L:")); - gtk_widget_set_tooltip_text (_s[2], _("Lightness")); + _s[2]->set_tooltip_text(_("Lightness")); gtk_widget_set_tooltip_text (_b[2], _("Lightness")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - gtk_widget_set_tooltip_text (_s[3], _("Alpha (opacity)")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - sp_color_slider_set_map (SP_COLOR_SLIDER (_s[0]), (guchar *)(sp_color_scales_hue_map())); + _s[0]->set_map((guchar *)(sp_color_scales_hue_map())); gtk_widget_hide (_l[4]); - gtk_widget_hide (_s[4]); + _s[4]->hide(); gtk_widget_hide (_b[4]); _updating = TRUE; c[0] = 0.0; @@ -483,23 +482,23 @@ void ColorScales::setMode(SPColorScalesMode mode) case SP_COLOR_SCALES_MODE_CMYK: _setRangeLimit(100.0); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_C:")); - gtk_widget_set_tooltip_text (_s[0], _("Cyan")); + _s[0]->set_tooltip_text(_("Cyan")); gtk_widget_set_tooltip_text (_b[0], _("Cyan")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_M:")); - gtk_widget_set_tooltip_text (_s[1], _("Magenta")); + _s[1]->set_tooltip_text(_("Magenta")); gtk_widget_set_tooltip_text (_b[1], _("Magenta")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_Y:")); - gtk_widget_set_tooltip_text (_s[2], _("Yellow")); + _s[2]->set_tooltip_text(_("Yellow")); gtk_widget_set_tooltip_text (_b[2], _("Yellow")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_K:")); - gtk_widget_set_tooltip_text (_s[3], _("Black")); + _s[3]->set_tooltip_text(_("Black")); gtk_widget_set_tooltip_text (_b[3], _("Black")); gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[4]), _("_A:")); - gtk_widget_set_tooltip_text (_s[4], _("Alpha (opacity)")); + _s[4]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[4], _("Alpha (opacity)")); - sp_color_slider_set_map (SP_COLOR_SLIDER (_s[0]), NULL); + _s[0]->set_map(NULL); gtk_widget_show (_l[4]); - gtk_widget_show (_s[4]); + _s[4]->show(); gtk_widget_show (_b[4]); _updating = TRUE; @@ -572,34 +571,27 @@ void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScale _adjustmentChanged(cs, channel); } -void ColorScales::_sliderAnyGrabbed( SPColorSlider *slider, SPColorScales *cs ) +void ColorScales::_sliderAnyGrabbed() { - (void)slider; - ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (!scales->_dragging) { - scales->_dragging = TRUE; - scales->_grabbed(); - scales->_recalcColor( FALSE ); + if (!_dragging) { + _dragging = TRUE; + _grabbed(); + _recalcColor( FALSE ); } } -void ColorScales::_sliderAnyReleased( SPColorSlider *slider, SPColorScales *cs ) +void ColorScales::_sliderAnyReleased() { - (void)slider; - ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (scales->_dragging) { - scales->_dragging = FALSE; - scales->_released(); - scales->_recalcColor( FALSE ); + if (_dragging) { + _dragging = FALSE; + _released(); + _recalcColor( FALSE ); } } -void ColorScales::_sliderAnyChanged( SPColorSlider *slider, SPColorScales *cs ) +void ColorScales::_sliderAnyChanged() { - (void)slider; - ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); - - scales->_recalcColor( TRUE ); + _recalcColor( TRUE ); } void ColorScales::_adjustmentChanged( SPColorScales *cs, guint channel ) @@ -626,31 +618,27 @@ void ColorScales::_updateSliders( guint channels ) case SP_COLOR_SCALES_MODE_RGB: if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { /* Update red */ - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[0]), - SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); + _s[0]->set_colors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); } if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { /* Update green */ - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[1]), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); + _s[1]->set_colors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); } if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { /* Update blue */ - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[2]), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); + _s[2]->set_colors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); } if (channels != CSC_CHANNEL_A) { /* Update alpha */ - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[3]), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); + _s[3]->set_colors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); } break; case SP_COLOR_SCALES_MODE_HSV: @@ -660,28 +648,25 @@ void ColorScales::_updateSliders( guint channels ) sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[1]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[1]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if ((channels != CSC_CHANNEL_V) && (channels != CSC_CHANNEL_A)) { /* Update value */ sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[2]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[2]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if (channels != CSC_CHANNEL_A) { /* Update alpha */ sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[3]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); + _s[3]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); } break; case SP_COLOR_SCALES_MODE_CMYK: @@ -690,48 +675,43 @@ void ColorScales::_updateSliders( guint channels ) sp_color_cmyk_to_rgb_floatv (rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[0]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[0]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if ((channels != CSC_CHANNEL_M) && (channels != CSC_CHANNEL_CMYKA)) { /* Update M */ sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[1]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[1]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if ((channels != CSC_CHANNEL_Y) && (channels != CSC_CHANNEL_CMYKA)) { /* Update Y */ sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[2]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[2]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if ((channels != CSC_CHANNEL_K) && (channels != CSC_CHANNEL_CMYKA)) { /* Update K */ sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[3]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + _s[3]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if (channels != CSC_CHANNEL_CMYKA) { /* Update alpha */ sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_slider_set_colors (SP_COLOR_SLIDER (_s[4]), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); + _s[4]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); } break; default: diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h index 65925fecb..06b8f3859 100644 --- a/src/widgets/sp-color-scales.h +++ b/src/widgets/sp-color-scales.h @@ -18,8 +18,16 @@ struct SPColorScales; struct SPColorScalesClass; -struct SPColorSlider; +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorSlider; + +} +} +} typedef enum { SP_COLOR_SCALES_MODE_NONE = 0, @@ -52,9 +60,9 @@ protected: virtual void _colorChanged(); static void _adjustmentAnyChanged(GtkAdjustment *adjustment, SPColorScales *cs); - static void _sliderAnyGrabbed(SPColorSlider *slider, SPColorScales *cs); - static void _sliderAnyReleased(SPColorSlider *slider, SPColorScales *cs); - static void _sliderAnyChanged(SPColorSlider *slider, SPColorScales *cs); + void _sliderAnyGrabbed(); + void _sliderAnyReleased(); + void _sliderAnyChanged(); static void _adjustmentChanged(SPColorScales *cs, guint channel); void _getRgbaFloatv(gfloat *rgba); @@ -70,7 +78,7 @@ protected: gboolean _updating : 1; gboolean _dragging : 1; GtkAdjustment *_a[5]; /* Channel adjustments */ - GtkWidget *_s[5]; /* Channel sliders */ + Inkscape::UI::Widget::ColorSlider *_s[5]; /* Channel sliders */ GtkWidget *_b[5]; /* Spinbuttons */ GtkWidget *_l[5]; /* Labels */ -- cgit v1.2.3 From f7eca78772e3f94787c3de8d09b5cf92a46e2eab Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 22:03:06 +0200 Subject: SPColorSlider c++-sification: use in sp-color-icc-selector (bzr r13341.6.13) --- src/widgets/sp-color-icc-selector.cpp | 72 +++++++++++++++++------------------ 1 file changed, 35 insertions(+), 37 deletions(-) diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index baed7e3b6..ca64a915f 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -104,7 +104,7 @@ public: colorspace::Component _component; GtkAdjustment *_adj; // Component adjustment - GtkWidget *_slider; + Inkscape::UI::Widget::ColorSlider *_slider; GtkWidget *_btn; // spinbutton GtkWidget *_label; // Label guchar *_map; @@ -123,9 +123,9 @@ public: static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorICCSelector *cs ); - static void _sliderGrabbed( SPColorSlider *slider, SPColorICCSelector *cs ); - static void _sliderReleased( SPColorSlider *slider, SPColorICCSelector *cs ); - static void _sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs ); + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); static void _profileSelected( GtkWidget* src, gpointer data ); static void _fixupHit( GtkWidget* src, gpointer data ); @@ -149,7 +149,7 @@ public: std::vector _compUI; GtkAdjustment* _adj; // Channel adjustment - GtkWidget* _slider; + Inkscape::UI::Widget::ColorSlider* _slider; GtkWidget* _sbtn; // Spinbutton GtkWidget* _label; // Label @@ -521,15 +521,15 @@ void ColorICCSelector::init() _impl->_compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, 0.0, scaleValue, step, page, page ) ); // Slider - _impl->_compUI[i]._slider = sp_color_slider_new( _impl->_compUI[i]._adj ); + _impl->_compUI[i]._slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_compUI[i]._adj, true))); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gtk_widget_set_tooltip_text( _impl->_compUI[i]._slider, (i < things.size()) ? things[i].tip.c_str() : "" ); + _impl->_compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); #else - gtk_widget_set_tooltip_text( _impl->_compUI[i]._slider, "." ); + _impl->_compUI[i]._slider->set_tooltip_text("."); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gtk_widget_show( _impl->_compUI[i]._slider ); + _impl->_compUI[i]._slider->show(); - attachToGridOrTable(t, _impl->_compUI[i]._slider, 1, row, 1, 1, true); + attachToGridOrTable(t, _impl->_compUI[i]._slider->gobj(), 1, row, 1, 1, true); _impl->_compUI[i]._btn = gtk_spin_button_new( _impl->_compUI[i]._adj, step, digits ); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -550,9 +550,9 @@ void ColorICCSelector::init() // Signals g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _csel ); - g_signal_connect( G_OBJECT( _impl->_compUI[i]._slider ), "grabbed", G_CALLBACK( ColorICCSelectorImpl::_sliderGrabbed ), _csel ); - g_signal_connect( G_OBJECT( _impl->_compUI[i]._slider ), "released", G_CALLBACK( ColorICCSelectorImpl::_sliderReleased ), _csel ); - g_signal_connect( G_OBJECT( _impl->_compUI[i]._slider ), "changed", G_CALLBACK( ColorICCSelectorImpl::_sliderChanged ), _csel ); + _impl->_compUI[i]._slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); + _impl->_compUI[i]._slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); + _impl->_compUI[i]._slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); row++; } @@ -568,16 +568,15 @@ void ColorICCSelector::init() _impl->_adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); // Slider - _impl->_slider = sp_color_slider_new(_impl->_adj); - gtk_widget_set_tooltip_text(_impl->_slider, _("Alpha (opacity)")); - gtk_widget_show(_impl->_slider); + _impl->_slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_adj, true))); + _impl->_slider->set_tooltip_text(_("Alpha (opacity)")); + _impl->_slider->show(); - attachToGridOrTable(t, _impl->_slider, 1, row, 1, 1, true); + attachToGridOrTable(t, _impl->_slider->gobj(), 1, row, 1, 1, true); - sp_color_slider_set_colors( SP_COLOR_SLIDER( _impl->_slider ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); + _impl->_slider->set_colors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), + SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), + SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); // Spinbutton @@ -592,9 +591,9 @@ void ColorICCSelector::init() // Signals g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _csel); - g_signal_connect(G_OBJECT(_impl->_slider), "grabbed", G_CALLBACK(ColorICCSelectorImpl::_sliderGrabbed), _csel); - g_signal_connect(G_OBJECT(_impl->_slider), "released", G_CALLBACK(ColorICCSelectorImpl::_sliderReleased), _csel); - g_signal_connect(G_OBJECT(_impl->_slider), "changed", G_CALLBACK(ColorICCSelectorImpl::_sliderChanged), _csel); + _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); + _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); + _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); } static void sp_color_icc_selector_dispose(GObject *object) @@ -880,7 +879,7 @@ void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) for ( size_t i = 0; i < _compUI.size(); i++ ) { gtk_widget_hide( _compUI[i]._label ); - gtk_widget_hide( _compUI[i]._slider ); + _compUI[i]._slider->hide(); gtk_widget_hide( _compUI[i]._btn ); } @@ -903,13 +902,12 @@ void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) for ( guint i = 0; i < _profChannelCount; i++ ) { gtk_label_set_text_with_mnemonic( GTK_LABEL(_compUI[i]._label), (i < things.size()) ? things[i].name.c_str() : ""); - gtk_widget_set_tooltip_text( _compUI[i]._slider, (i < things.size()) ? things[i].tip.c_str() : "" ); + _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); gtk_widget_set_tooltip_text( _compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); - sp_color_slider_set_colors( SP_COLOR_SLIDER(_compUI[i]._slider), - SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), - SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), - SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); + _compUI[i]._slider->set_colors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), + SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), + SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); /* _compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( val, 0.0, _fooScales[i], step, page, page ) ); g_signal_connect( G_OBJECT( _compUI[i]._adj ), "value_changed", G_CALLBACK( _adjustmentChanged ), _csel ); @@ -919,14 +917,14 @@ void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) gtk_spin_button_set_digits( GTK_SPIN_BUTTON(_compUI[i]._btn), digits ); */ gtk_widget_show( _compUI[i]._label ); - gtk_widget_show( _compUI[i]._slider ); + _compUI[i]._slider->show(); gtk_widget_show( _compUI[i]._btn ); //gtk_adjustment_set_value( _compUI[i]._adj, 0.0 ); //gtk_adjustment_set_value( _compUI[i]._adj, val ); } for ( size_t i = _profChannelCount; i < _compUI.size(); i++ ) { gtk_widget_hide( _compUI[i]._label ); - gtk_widget_hide( _compUI[i]._slider ); + _compUI[i]._slider->hide(); gtk_widget_hide( _compUI[i]._btn ); } } @@ -983,7 +981,7 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); if ( trans ) { cmsDoTransform( trans, scratch, _compUI[i]._map, 1024 ); - sp_color_slider_set_map( SP_COLOR_SLIDER(_compUI[i]._slider), _compUI[i]._map ); + _compUI[i]._slider->set_map(_compUI[i]._map); } } } @@ -998,7 +996,7 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) guint32 mid = _owner->_color.toRGBA32( 0x7f ); guint32 end = _owner->_color.toRGBA32( 0xff ); - sp_color_slider_set_colors( SP_COLOR_SLIDER(_slider), start, mid, end ); + _slider->set_colors(start, mid, end); } @@ -1091,7 +1089,7 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColo #endif // DEBUG_LCMS } -void ColorICCSelectorImpl::_sliderGrabbed( SPColorSlider * /*slider*/, SPColorICCSelector * /*cs*/ ) +void ColorICCSelectorImpl::_sliderGrabbed() { // ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); // if (!iccSelector->_dragging) { @@ -1101,7 +1099,7 @@ void ColorICCSelectorImpl::_sliderGrabbed( SPColorSlider * /*slider*/, SPColorIC // } } -void ColorICCSelectorImpl::_sliderReleased( SPColorSlider * /*slider*/, SPColorICCSelector * /*cs*/ ) +void ColorICCSelectorImpl::_sliderReleased() { // ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); // if (iccSelector->_dragging) { @@ -1114,7 +1112,7 @@ void ColorICCSelectorImpl::_sliderReleased( SPColorSlider * /*slider*/, SPColorI #ifdef DEBUG_LCMS void ColorICCSelectorImpl::_sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs ) #else -void ColorICCSelectorImpl::_sliderChanged( SPColorSlider * /*slider*/, SPColorICCSelector * /*cs*/ ) +void ColorICCSelectorImpl::_sliderChanged() #endif // DEBUG_LCMS { #ifdef DEBUG_LCMS -- cgit v1.2.3 From 8a251752c5dc2dc686b815f527f4ce20c477b03c Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 24 May 2014 22:09:33 +0200 Subject: SPColorSlider c++-sification: remove gobject based code (bzr r13341.6.14) --- src/ui/widget/color-slider.cpp | 665 ----------------------------------------- src/ui/widget/color-slider.h | 53 ---- 2 files changed, 718 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index ff69e6ed5..d501e3724 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -538,671 +538,6 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { }//namespace UI }//namespace Inkscape - - - - - - - - - - - - - - - - - - - - - - - -enum { - GRABBED, - DRAGGED, - RELEASED, - CHANGED, - LAST_SIGNAL -}; - -static void sp_color_slider_class_init (SPColorSliderClass *klass); -static void sp_color_slider_init (SPColorSlider *slider); -static void sp_color_slider_dispose(GObject *object); - -static void sp_color_slider_realize (GtkWidget *widget); -static void sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition); - -#if GTK_CHECK_VERSION(3,0,0) -static void sp_color_slider_get_preferred_width(GtkWidget *widget, - gint *minimal_width, - gint *natural_width); - -static void sp_color_slider_get_preferred_height(GtkWidget *widget, - gint *minimal_height, - gint *natural_height); -#else -static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose *event); -#endif - -static void sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation); - -static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr); - -static gint sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event); -static gint sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event); -static gint sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event); - -static void sp_color_slider_adjustment_changed (GtkAdjustment *adjustment, SPColorSlider *slider); -static void sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider); - -static GtkWidgetClass *parent_class; -static guint slider_signals[LAST_SIGNAL] = {0}; - -GType -sp_color_slider_get_type (void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof (SPColorSliderClass), - NULL, NULL, - (GClassInitFunc) sp_color_slider_class_init, - NULL, NULL, - sizeof (SPColorSlider), - 0, - (GInstanceInitFunc) sp_color_slider_init, - NULL - }; - type = g_type_register_static (GTK_TYPE_WIDGET, "SPColorSlider", &info, (GTypeFlags)0); - } - return type; -} - -static void sp_color_slider_class_init(SPColorSliderClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - - parent_class = GTK_WIDGET_CLASS(g_type_class_peek_parent(klass)); - - slider_signals[GRABBED] = g_signal_new ("grabbed", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, grabbed), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[DRAGGED] = g_signal_new ("dragged", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, dragged), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[RELEASED] = g_signal_new ("released", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, released), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - slider_signals[CHANGED] = g_signal_new ("changed", - G_TYPE_FROM_CLASS(object_class), - (GSignalFlags)(G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE), - G_STRUCT_OFFSET (SPColorSliderClass, changed), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - object_class->dispose = sp_color_slider_dispose; - - widget_class->realize = sp_color_slider_realize; -#if GTK_CHECK_VERSION(3,0,0) - widget_class->get_preferred_width = sp_color_slider_get_preferred_width; - widget_class->get_preferred_height = sp_color_slider_get_preferred_height; - widget_class->draw = sp_color_slider_draw; -#else - widget_class->size_request = sp_color_slider_size_request; - widget_class->expose_event = sp_color_slider_expose; -#endif - widget_class->size_allocate = sp_color_slider_size_allocate; -/* widget_class->draw_focus = sp_color_slider_draw_focus; */ -/* widget_class->draw_default = sp_color_slider_draw_default; */ - - widget_class->button_press_event = sp_color_slider_button_press; - widget_class->button_release_event = sp_color_slider_button_release; - widget_class->motion_notify_event = sp_color_slider_motion_notify; -} - -static void -sp_color_slider_init (SPColorSlider *slider) -{ - /* We are widget with window */ - gtk_widget_set_has_window (GTK_WIDGET(slider), TRUE); - - slider->dragging = FALSE; - - slider->adjustment = NULL; - slider->value = 0.0; - - slider->c0[0] = 0x00; - slider->c0[1] = 0x00; - slider->c0[2] = 0x00; - slider->c0[3] = 0xff; - - slider->cm[0] = 0xff; - slider->cm[1] = 0x00; - slider->cm[2] = 0x00; - slider->cm[3] = 0xff; - - slider->c1[0] = 0xff; - slider->c1[1] = 0xff; - slider->c1[2] = 0xff; - slider->c1[3] = 0xff; - - slider->b0 = 0x5f; - slider->b1 = 0xa0; - slider->bmask = 0x08; - - slider->map = NULL; -} - -static void sp_color_slider_dispose(GObject *object) -{ - SPColorSlider *slider = SP_COLOR_SLIDER (object); - - if (slider->adjustment) { - g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); - g_object_unref (slider->adjustment); - slider->adjustment = NULL; - } - - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_slider_realize (GtkWidget *widget) -{ - GdkWindowAttr attributes; - gint attributes_mask; - GtkAllocation allocation; - - gtk_widget_get_allocation(widget, &allocation); - gtk_widget_set_realized (widget, TRUE); - - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); - -#if !GTK_CHECK_VERSION(3,0,0) - attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); -#endif - - attributes.event_mask = gtk_widget_get_events (widget); - attributes.event_mask |= (GDK_EXPOSURE_MASK | - GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | - GDK_ENTER_NOTIFY_MASK | - GDK_LEAVE_NOTIFY_MASK); -#if GTK_CHECK_VERSION(3,0,0) - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#else - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; -#endif - - gtk_widget_set_window(widget, - gdk_window_new(gtk_widget_get_parent_window(widget), - &attributes, attributes_mask)); - - gdk_window_set_user_data(gtk_widget_get_window(widget), widget); - -#if !GTK_CHECK_VERSION(3,0,0) - // This doesn't do anything in GTK+ 3 - gtk_widget_set_style(widget, - gtk_style_attach(gtk_widget_get_style(widget), - gtk_widget_get_window(widget))); -#endif -} - -static void -sp_color_slider_size_request (GtkWidget *widget, GtkRequisition *requisition) -{ - GtkStyle *style = gtk_widget_get_style(widget); - requisition->width = SLIDER_WIDTH + style->xthickness * 2; - requisition->height = SLIDER_HEIGHT + style->ythickness * 2; -} - -#if GTK_CHECK_VERSION(3,0,0) -static void sp_color_slider_get_preferred_width(GtkWidget *widget, gint *minimal_width, gint *natural_width) -{ - GtkRequisition requisition; - sp_color_slider_size_request(widget, &requisition); - *minimal_width = *natural_width = requisition.width; -} - -static void sp_color_slider_get_preferred_height(GtkWidget *widget, gint *minimal_height, gint *natural_height) -{ - GtkRequisition requisition; - sp_color_slider_size_request(widget, &requisition); - *minimal_height = *natural_height = requisition.height; -} -#endif - -static void -sp_color_slider_size_allocate (GtkWidget *widget, GtkAllocation *allocation) -{ - gtk_widget_set_allocation(widget, allocation); - - if (gtk_widget_get_realized (widget)) { - /* Resize GdkWindow */ - gdk_window_move_resize(gtk_widget_get_window(widget), - allocation->x, allocation->y, - allocation->width, allocation->height); - } -} - -#if !GTK_CHECK_VERSION(3,0,0) -static gboolean sp_color_slider_expose(GtkWidget *widget, GdkEventExpose * /*event*/) -{ - gboolean result = FALSE; - - if (gtk_widget_is_drawable(widget)) { - GdkWindow *window = gtk_widget_get_window(widget); - cairo_t *cr = gdk_cairo_create(window); - result = sp_color_slider_draw(widget, cr); - cairo_destroy(cr); - } - - return result; -} -#endif - -static gint -sp_color_slider_button_press (GtkWidget *widget, GdkEventButton *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (event->button == 1) { - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - gint cx, cw; - cx = gtk_widget_get_style(widget)->xthickness; - cw = allocation.width - 2 * cx; - g_signal_emit (G_OBJECT (slider), slider_signals[GRABBED], 0); - slider->dragging = TRUE; - slider->oldvalue = slider->value; - ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); - g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); - -#if GTK_CHECK_VERSION(3,0,0) - gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), - gtk_widget_get_window(widget), - GDK_OWNERSHIP_NONE, - FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, - event->time); -#else - gdk_pointer_grab(gtk_widget_get_window(widget), FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, NULL, event->time); -#endif - } - - return FALSE; -} - -static gint -sp_color_slider_button_release (GtkWidget *widget, GdkEventButton *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (event->button == 1) { - -#if GTK_CHECK_VERSION(3,0,0) - gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), - gdk_event_get_time(reinterpret_cast(event))); -#else - gdk_pointer_ungrab (event->time); -#endif - - slider->dragging = FALSE; - g_signal_emit (G_OBJECT (slider), slider_signals[RELEASED], 0); - if (slider->value != slider->oldvalue) g_signal_emit (G_OBJECT (slider), slider_signals[CHANGED], 0); - } - - return FALSE; -} - -static gint -sp_color_slider_motion_notify (GtkWidget *widget, GdkEventMotion *event) -{ - SPColorSlider *slider; - - slider = SP_COLOR_SLIDER (widget); - - if (slider->dragging) { - gint cx, cw; - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - cx = gtk_widget_get_style(widget)->xthickness; - cw = allocation.width - 2 * cx; - ColorScales::setScaled( slider->adjustment, CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); - g_signal_emit (G_OBJECT (slider), slider_signals[DRAGGED], 0); - } - - return FALSE; -} - -GtkWidget *sp_color_slider_new(GtkAdjustment *adjustment) -{ - SPColorSlider *slider = SP_COLOR_SLIDER(g_object_new(SP_TYPE_COLOR_SLIDER, NULL)); - - sp_color_slider_set_adjustment (slider, adjustment); - - return GTK_WIDGET (slider); -} - -void sp_color_slider_set_adjustment(SPColorSlider *slider, GtkAdjustment *adjustment) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - if (!adjustment) { - adjustment = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); - } else { - gtk_adjustment_set_page_increment(adjustment, 0.0); - gtk_adjustment_set_page_size(adjustment, 0.0); - } - - if (slider->adjustment != adjustment) { - if (slider->adjustment) { - g_signal_handlers_disconnect_matched (G_OBJECT (slider->adjustment), G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, slider); - g_object_unref (slider->adjustment); - } - - slider->adjustment = adjustment; - g_object_ref (adjustment); - g_object_ref_sink (adjustment); - - g_signal_connect (G_OBJECT (adjustment), "changed", - G_CALLBACK (sp_color_slider_adjustment_changed), slider); - g_signal_connect (G_OBJECT (adjustment), "value_changed", - G_CALLBACK (sp_color_slider_adjustment_value_changed), slider); - - slider->value = ColorScales::getScaled( adjustment ); - - sp_color_slider_adjustment_changed (adjustment, slider); - } -} - -void -sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - // Remove any map, if set - slider->map = 0; - - slider->c0[0] = start >> 24; - slider->c0[1] = (start >> 16) & 0xff; - slider->c0[2] = (start >> 8) & 0xff; - slider->c0[3] = start & 0xff; - - slider->cm[0] = mid >> 24; - slider->cm[1] = (mid >> 16) & 0xff; - slider->cm[2] = (mid >> 8) & 0xff; - slider->cm[3] = mid & 0xff; - - slider->c1[0] = end >> 24; - slider->c1[1] = (end >> 16) & 0xff; - slider->c1[2] = (end >> 8) & 0xff; - slider->c1[3] = end & 0xff; - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -void -sp_color_slider_set_map (SPColorSlider *slider, const guchar *map) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - slider->map = const_cast(map); - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -void -sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size) -{ - g_return_if_fail (slider != NULL); - g_return_if_fail (SP_IS_COLOR_SLIDER (slider)); - - slider->b0 = dark; - slider->b1 = light; - slider->bmask = size; - - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -static void -sp_color_slider_adjustment_changed (GtkAdjustment */*adjustment*/, SPColorSlider *slider) -{ - gtk_widget_queue_draw (GTK_WIDGET (slider)); -} - -static void -sp_color_slider_adjustment_value_changed (GtkAdjustment *adjustment, SPColorSlider *slider) -{ - GtkWidget *widget; - - widget = GTK_WIDGET (slider); - - if (slider->value != ColorScales::getScaled( adjustment )) { - gint cx, cy, cw, ch; - GtkStyle *style = gtk_widget_get_style(widget); - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - cx = style->xthickness; - cy = style->ythickness; - cw = allocation.width - 2 * cx; - ch = allocation.height - 2 * cy; - if ((gint) (ColorScales::getScaled( adjustment ) * cw) != (gint) (slider->value * cw)) { - gint ax, ay; - gfloat value; - value = slider->value; - slider->value = ColorScales::getScaled( adjustment ); - ax = (int)(cx + value * cw - ARROW_SIZE / 2 - 2); - ay = cy; - gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); - ax = (int)(cx + slider->value * cw - ARROW_SIZE / 2 - 2); - ay = cy; - gtk_widget_queue_draw_area (widget, ax, ay, ARROW_SIZE + 4, ch); - } else { - slider->value = ColorScales::getScaled( adjustment ); - } - } -} - -static gboolean sp_color_slider_draw(GtkWidget *widget, cairo_t *cr) -{ - SPColorSlider *slider = SP_COLOR_SLIDER(widget); - - gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); - - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - -#if GTK_CHECK_VERSION(3,0,0) - GtkStyleContext *context = gtk_widget_get_style_context(widget); -#else - GdkWindow *window = gtk_widget_get_window(widget); - GtkStyle *style = gtk_widget_get_style(widget); -#endif - - // Draw shadow - if (colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - gtk_render_frame(context, - cr, - 0, 0, - allocation.width, allocation.height); -#else - gtk_paint_shadow( style, window, - gtk_widget_get_state(widget), GTK_SHADOW_IN, - NULL, widget, "colorslider", - 0, 0, - allocation.width, allocation.height); -#endif - } - - /* Paintable part of color gradient area */ - GdkRectangle carea; - -#if GTK_CHECK_VERSION(3,0,0) - GtkBorder padding; - - gtk_style_context_get_padding(context, - gtk_widget_get_state_flags(widget), - &padding); - - carea.x = padding.left; - carea.y = padding.top; -#else - carea.x = style->xthickness; - carea.y = style->ythickness; -#endif - - carea.width = allocation.width - 2 * carea.x; - carea.height = allocation.height - 2 * carea.y; - - if (slider->map) { - /* Render map pixelstore */ - gint d = (1024 << 16) / carea.width; - gint s = 0; - - const guchar *b = sp_color_slider_render_map(0, 0, carea.width, carea.height, - slider->map, s, d, - slider->b0, slider->b1, slider->bmask); - - if (b != NULL && carea.width > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, carea.width, carea.height, carea.width * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); - cairo_paint(cr); - g_object_unref(pb); - } - - } else { - gint c[4], dc[4]; - - /* Render gradient */ - - // part 1: from c0 to cm - if (carea.width > 0) { - for (gint i = 0; i < 4; i++) { - c[i] = slider->c0[i] << 16; - dc[i] = ((slider->cm[i] << 16) - c[i]) / (carea.width/2); - } - guint wi = carea.width/2; - const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.height, - c, dc, slider->b0, slider->b1, slider->bmask); - - /* Draw pixelstore 1 */ - if (b != NULL && wi > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, wi, carea.height, wi * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.x, carea.y); - cairo_paint(cr); - g_object_unref(pb); - } - } - - // part 2: from cm to c1 - if (carea.width > 0) { - for (gint i = 0; i < 4; i++) { - c[i] = slider->cm[i] << 16; - dc[i] = ((slider->c1[i] << 16) - c[i]) / (carea.width/2); - } - guint wi = carea.width/2; - const guchar *b = sp_color_slider_render_gradient(carea.width/2, 0, wi, carea.height, - c, dc, - slider->b0, slider->b1, slider->bmask); - - /* Draw pixelstore 2 */ - if (b != NULL && wi > 0) { - GdkPixbuf *pb = gdk_pixbuf_new_from_data (b, GDK_COLORSPACE_RGB, - 0, 8, wi, carea.height, wi * 3, NULL, NULL); - - gdk_cairo_set_source_pixbuf(cr, pb, carea.width/2 + carea.x, carea.y); - cairo_paint(cr); - - g_object_unref(pb); - } - } - } - - /* Draw shadow */ - if (!colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - gtk_render_frame(context, - cr, - 0, 0, - allocation.width, allocation.height); -#else - gtk_paint_shadow( style, window, - gtk_widget_get_state(widget), GTK_SHADOW_IN, - NULL, widget, "colorslider", - 0, 0, - allocation.width, allocation.height); -#endif - } - - /* Draw arrow */ - gint x = (int)(slider->value * (carea.width - 1) - ARROW_SIZE / 2 + carea.x); - gint y1 = carea.y; - gint y2 = carea.y + carea.height - 1; - cairo_set_line_width(cr, 1.0); - - // Define top arrow - cairo_move_to(cr, x - 0.5, y1 + 0.5); - cairo_line_to(cr, x + ARROW_SIZE - 0.5, y1 + 0.5); - cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y1 + ARROW_SIZE/2.0 + 0.5); - cairo_line_to(cr, x - 0.5, y1 + 0.5); - - // Define bottom arrow - cairo_move_to(cr, x - 0.5, y2 + 0.5); - cairo_line_to(cr, x + ARROW_SIZE - 0.5, y2 + 0.5); - cairo_line_to(cr, x + (ARROW_SIZE-1)/2.0, y2 - ARROW_SIZE/2.0 + 0.5); - cairo_line_to(cr, x - 0.5, y2 + 0.5); - - // Render both arrows - cairo_set_source_rgb(cr, 1.0, 1.0, 1.0); - cairo_stroke_preserve(cr); - cairo_set_source_rgb(cr, 0.0, 0.0, 0.0); - cairo_fill(cr); - - return FALSE; -} - /* Colors are << 16 */ static const guchar * diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index eb4cd99c3..bbc14afc9 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -105,57 +105,4 @@ private: }//namespace UI }//namespace Inkscape - -#include - -#include - - - -struct SPColorSlider; -struct SPColorSliderClass; - -#define SP_TYPE_COLOR_SLIDER (sp_color_slider_get_type ()) -#define SP_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_SLIDER, SPColorSlider)) -#define SP_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_SLIDER, SPColorSliderClass)) -#define SP_IS_COLOR_SLIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_SLIDER)) -#define SP_IS_COLOR_SLIDER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_SLIDER)) - -struct SPColorSlider { - GtkWidget widget; - - guint dragging : 1; - - GtkAdjustment *adjustment; - - gfloat value; - gfloat oldvalue; - guchar c0[4], cm[4], c1[4]; - guchar b0, b1; - guchar bmask; - - gint mapsize; - guchar *map; -}; - -struct SPColorSliderClass { - GtkWidgetClass parent_class; - - void (* grabbed) (SPColorSlider *slider); - void (* dragged) (SPColorSlider *slider); - void (* released) (SPColorSlider *slider); - void (* changed) (SPColorSlider *slider); -}; - -GType sp_color_slider_get_type (void); - -GtkWidget *sp_color_slider_new (GtkAdjustment *adjustment); - -void sp_color_slider_set_adjustment (SPColorSlider *slider, GtkAdjustment *adjustment); -void sp_color_slider_set_colors (SPColorSlider *slider, guint32 start, guint32 mid, guint32 end); -void sp_color_slider_set_map (SPColorSlider *slider, const guchar *map); -void sp_color_slider_set_background (SPColorSlider *slider, guint dark, guint light, guint size); - - - #endif -- cgit v1.2.3 From 0744a31c573dc80d6e8166319e07375e97884f15 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 25 May 2014 00:02:36 +0200 Subject: SPColorSlider c++-sification: remove unnecessary reference to Gtk::Adjustment (bzr r13341.6.15) --- src/ui/widget/color-slider.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index d501e3724..fc64fad6f 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -297,9 +297,6 @@ void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { } _adjustment = adjustment; -#if !GTK_CHECK_VERSION(3,0,0) - _adjustment->reference(); -#endif _adjustment_changed_connection = _adjustment->signal_changed().connect( sigc::mem_fun(this, &ColorSlider::_on_adjustment_changed)); _adjustment_value_changed_connection = _adjustment->signal_value_changed().connect( -- cgit v1.2.3 From 3b4e451ace16cc3a4c62d2dfdc50587d4a8acf8c Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Mon, 26 May 2014 21:02:55 +0200 Subject: SPPattern c++-sification: replaced guint by bool and enum (bzr r13341.6.16) --- src/extension/internal/cairo-render-context.cpp | 4 +-- src/sp-pattern.cpp | 40 ++++++++++++------------- src/sp-pattern.h | 24 +++++++-------- 3 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index c09b8e9c8..2ace19ae5 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1015,7 +1015,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver TRACE(("%f x %f pattern\n", width, height)); - if (pbox && pattern_patternUnits(pat) == SP_PATTERN_UNITS_OBJECTBOUNDINGBOX) { + if (pbox && pattern_patternUnits(pat) == SPPattern::UNITS_OBJECTBOUNDINGBOX) { //Geom::Affine bbox2user (pbox->x1 - pbox->x0, 0.0, 0.0, pbox->y1 - pbox->y0, pbox->x0, pbox->y0); bbox_width_scaler = pbox->width(); bbox_height_scaler = pbox->height(); @@ -1048,7 +1048,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver pcs2dev[3] = h / view_box.height(); pcs2dev[4] = x - view_box.left() * pcs2dev[0]; pcs2dev[5] = y - view_box.top() * pcs2dev[3]; - } else if (pbox && pattern_patternContentUnits(pat) == SP_PATTERN_UNITS_OBJECTBOUNDINGBOX) { + } else if (pbox && pattern_patternContentUnits(pat) == SPPattern::UNITS_OBJECTBOUNDINGBOX) { pcs2dev[0] = pbox->width(); pcs2dev[3] = pbox->height(); } diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 9b7330a24..c5461d302 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -59,14 +59,14 @@ SPPattern::SPPattern() : SPPaintServer(), SPViewBox() { this->ref = new SPPatternReference(this); this->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(pattern_ref_changed), this)); - this->patternUnits = SP_PATTERN_UNITS_OBJECTBOUNDINGBOX; - this->patternUnits_set = FALSE; + this->patternUnits = UNITS_OBJECTBOUNDINGBOX; + this->patternUnits_set = false; - this->patternContentUnits = SP_PATTERN_UNITS_USERSPACEONUSE; - this->patternContentUnits_set = FALSE; + this->patternContentUnits = UNITS_USERSPACEONUSE; + this->patternContentUnits_set = false; this->patternTransform = Geom::identity(); - this->patternTransform_set = FALSE; + this->patternTransform_set = false; this->x.unset(); this->y.unset(); @@ -116,14 +116,14 @@ void SPPattern::set(unsigned int key, const gchar* value) { case SP_ATTR_PATTERNUNITS: if (value) { if (!strcmp (value, "userSpaceOnUse")) { - this->patternUnits = SP_PATTERN_UNITS_USERSPACEONUSE; + this->patternUnits = UNITS_USERSPACEONUSE; } else { - this->patternUnits = SP_PATTERN_UNITS_OBJECTBOUNDINGBOX; + this->patternUnits = UNITS_OBJECTBOUNDINGBOX; } - this->patternUnits_set = TRUE; + this->patternUnits_set = true; } else { - this->patternUnits_set = FALSE; + this->patternUnits_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -132,14 +132,14 @@ void SPPattern::set(unsigned int key, const gchar* value) { case SP_ATTR_PATTERNCONTENTUNITS: if (value) { if (!strcmp (value, "userSpaceOnUse")) { - this->patternContentUnits = SP_PATTERN_UNITS_USERSPACEONUSE; + this->patternContentUnits = UNITS_USERSPACEONUSE; } else { - this->patternContentUnits = SP_PATTERN_UNITS_OBJECTBOUNDINGBOX; + this->patternContentUnits = UNITS_OBJECTBOUNDINGBOX; } - this->patternContentUnits_set = TRUE; + this->patternContentUnits_set = true; } else { - this->patternContentUnits_set = FALSE; + this->patternContentUnits_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -150,10 +150,10 @@ void SPPattern::set(unsigned int key, const gchar* value) { if (value && sp_svg_transform_read (value, &t)) { this->patternTransform = t; - this->patternTransform_set = TRUE; + this->patternTransform_set = true; } else { this->patternTransform = Geom::identity(); - this->patternTransform_set = FALSE; + this->patternTransform_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -399,7 +399,7 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se } else { pattern->patternTransform = pattern_patternTransform(pattern) * postmul; } - pattern->patternTransform_set = TRUE; + pattern->patternTransform_set = true; gchar *c=sp_svg_transform_write(pattern->patternTransform); pattern->getRepr()->setAttribute("patternTransform", c); @@ -455,7 +455,7 @@ SPPattern *pattern_getroot(SPPattern *pat) // Access functions that look up fields up the chain of referenced patterns and return the first one which is set // FIXME: all of them must use chase_hrefs the same as in SPGradient, to avoid lockup on circular refs -guint pattern_patternUnits (SPPattern const *pat) +SPPattern::PatternUnits pattern_patternUnits (SPPattern const *pat) { for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->patternUnits_set) @@ -464,7 +464,7 @@ guint pattern_patternUnits (SPPattern const *pat) return pat->patternUnits; } -guint pattern_patternContentUnits (SPPattern const *pat) +SPPattern::PatternUnits pattern_patternContentUnits (SPPattern const *pat) { for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->patternContentUnits_set) @@ -603,7 +603,7 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b double tile_y = pattern_y(this); double tile_width = pattern_width(this); double tile_height = pattern_height(this); - if ( bbox && (pattern_patternUnits(this) == SP_PATTERN_UNITS_OBJECTBOUNDINGBOX) ) { + if ( bbox && (pattern_patternUnits(this) == UNITS_OBJECTBOUNDINGBOX) ) { tile_x *= bbox->width(); tile_y *= bbox->height(); tile_width *= bbox->width(); @@ -625,7 +625,7 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b } else { // Content to bbox - if (bbox && (pattern_patternContentUnits(this) == SP_PATTERN_UNITS_OBJECTBOUNDINGBOX) ) { + if (bbox && (pattern_patternContentUnits(this) == UNITS_OBJECTBOUNDINGBOX) ) { content2ps = Geom::Affine(bbox->width(), 0.0, 0.0, bbox->height(), 0,0); } } diff --git a/src/sp-pattern.h b/src/sp-pattern.h index eb34b6714..d836e7a42 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -33,6 +33,11 @@ class SPPatternReference; class SPPattern : public SPPaintServer, public SPViewBox { public: + enum PatternUnits { + UNITS_USERSPACEONUSE, + UNITS_OBJECTBOUNDINGBOX + }; + SPPattern(); virtual ~SPPattern(); @@ -41,13 +46,13 @@ public: SPPatternReference *ref; /* patternUnits and patternContentUnits attribute */ - guint patternUnits : 1; - guint patternUnits_set : 1; - guint patternContentUnits : 1; - guint patternContentUnits_set : 1; + PatternUnits patternUnits : 1; + bool patternUnits_set : 1; + PatternUnits patternContentUnits : 1; + bool patternContentUnits_set : 1; /* patternTransform attribute */ Geom::Affine patternTransform; - guint patternTransform_set : 1; + bool patternTransform_set : 1; /* Tile rectangle */ SVGLength x; SVGLength y; @@ -82,11 +87,6 @@ protected: } }; -enum { - SP_PATTERN_UNITS_USERSPACEONUSE, - SP_PATTERN_UNITS_OBJECTBOUNDINGBOX -}; - guint pattern_users (SPPattern *pattern); SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); @@ -96,8 +96,8 @@ const gchar *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *documen SPPattern *pattern_getroot (SPPattern *pat); -guint pattern_patternUnits (SPPattern const *pat); -guint pattern_patternContentUnits (SPPattern const *pat); +SPPattern::PatternUnits pattern_patternUnits (SPPattern const *pat); +SPPattern::PatternUnits pattern_patternContentUnits (SPPattern const *pat); Geom::Affine const &pattern_patternTransform(SPPattern const *pat); gdouble pattern_x (SPPattern const *pat); gdouble pattern_y (SPPattern const *pat); -- cgit v1.2.3 From 258b23eac6fadcd3c02053ac6e890b0be5819194 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Mon, 26 May 2014 22:52:46 +0200 Subject: SPPattern c++-sification: replaced gchar* by Glib::ustring (bzr r13341.6.17) --- src/sp-pattern.cpp | 25 ++++++++++--------------- src/sp-pattern.h | 2 +- 2 files changed, 11 insertions(+), 16 deletions(-) diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index c5461d302..59fbca435 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -54,8 +54,6 @@ namespace { } SPPattern::SPPattern() : SPPaintServer(), SPViewBox() { - this->href = NULL; - this->ref = new SPPatternReference(this); this->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(pattern_ref_changed), this)); @@ -190,15 +188,14 @@ void SPPattern::set(unsigned int key, const gchar* value) { break; case SP_ATTR_XLINK_HREF: - if ( value && this->href && ( strcmp(value, this->href) == 0 ) ) { + if ( value && this->href == value ) { /* Href unchanged, do nothing. */ } else { - g_free(this->href); - this->href = NULL; + this->href.clear(); if (value) { // First, set the href field; it's only used in the "unchanged" check above. - this->href = g_strdup(value); + this->href = value; // Now do the attaching, which emits the changed signal. if (value) { try { @@ -360,9 +357,8 @@ SPPattern *pattern_chain(SPPattern *pattern) Inkscape::XML::Node *repr = xml_doc->createElement("svg:pattern"); repr->setAttribute("inkscape:collect", "always"); - gchar *parent_ref = g_strconcat("#", pattern->getRepr()->attribute("id"), NULL); + Glib::ustring parent_ref = Glib::ustring::compose("#%1", pattern->getRepr()->attribute("id")); repr->setAttribute("xlink:href", parent_ref); - g_free (parent_ref); defsrepr->addChild(repr, NULL); const gchar *child_id = repr->attribute("id"); @@ -375,13 +371,14 @@ SPPattern *pattern_chain(SPPattern *pattern) SPPattern * sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property) { - if (!pattern->href || pattern->hrefcount > count_pattern_hrefs(item, pattern)) { + if (pattern->href.empty() || pattern->hrefcount > count_pattern_hrefs(item, pattern)) { pattern = pattern_chain (pattern); - gchar *href = g_strconcat("url(#", pattern->getRepr()->attribute("id"), ")", NULL); + Glib::ustring href = Glib::ustring::compose("url(#%1)", pattern->getRepr()->attribute("id")); SPCSSAttr *css = sp_repr_css_attr_new (); - sp_repr_css_set_property (css, property, href); + sp_repr_css_set_property (css, property, href.c_str()); sp_repr_css_change_recursive(item->getRepr(), css, "style"); + } return pattern; } @@ -401,9 +398,8 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se } pattern->patternTransform_set = true; - gchar *c=sp_svg_transform_write(pattern->patternTransform); + Glib::ustring c=sp_svg_transform_write(pattern->patternTransform); pattern->getRepr()->setAttribute("patternTransform", c); - g_free(c); } const gchar *pattern_tile(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) @@ -416,9 +412,8 @@ const gchar *pattern_tile(GSList *reprs, Geom::Rect bounds, SPDocument *document sp_repr_set_svg_double(repr, "width", bounds.dimensions()[Geom::X]); sp_repr_set_svg_double(repr, "height", bounds.dimensions()[Geom::Y]); - gchar *t=sp_svg_transform_write(transform); + Glib::ustring t=sp_svg_transform_write(transform); repr->setAttribute("patternTransform", t); - g_free(t); defsrepr->appendChild(repr); const gchar *pat_id = repr->attribute("id"); diff --git a/src/sp-pattern.h b/src/sp-pattern.h index d836e7a42..422adb169 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -42,7 +42,7 @@ public: virtual ~SPPattern(); /* Reference (href) */ - gchar *href; + Glib::ustring href; SPPatternReference *ref; /* patternUnits and patternContentUnits attribute */ -- cgit v1.2.3 From 6508c429a4a678541bc51df10a8335bbb45f0128 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Tue, 27 May 2014 19:13:09 +0200 Subject: SPPattern c++-sification: replaced GSList by std::list (bzr r13341.6.18) --- src/selection-chemistry.cpp | 6 ++---- src/sp-pattern.cpp | 41 +++++++++++++++++++++-------------------- src/sp-pattern.h | 21 ++++++++++++++------- 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 868a9d743..19eba8ddd 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3242,13 +3242,11 @@ sp_selection_tile(SPDesktop *desktop, bool apply) gint pos = SP_OBJECT(items->data)->getRepr()->position(); // create a list of duplicates - GSList *repr_copies = NULL; + std::list repr_copies; 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); + repr_copies.push_back(dup); } - // restore the z-order after prepends - repr_copies = g_slist_reverse(repr_copies); Geom::Rect bbox(desktop->dt2doc(r->min()), desktop->dt2doc(r->max())); diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 59fbca435..a3de09368 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -222,37 +222,34 @@ void SPPattern::set(unsigned int key, const gchar* value) { /* fixme: We need ::order_changed handler too (Lauris) */ -static GSList *pattern_getchildren(SPPattern *pat) +void pattern_getchildren(SPPattern *pat, std::list& l) { - GSList *l = NULL; - for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children for (SPObject *child = pat->firstChild() ; child ; child = child->getNext() ) { - l = g_slist_prepend (l, child); + l.push_back(child); } break; // do not go further up the chain if children are found } } - - return l; } void SPPattern::update(SPCtx* ctx, unsigned int flags) { - if (flags & SP_OBJECT_MODIFIED_FLAG) { + typedef std::list::iterator SPObjectIterator; + + if (flags & SP_OBJECT_MODIFIED_FLAG) { flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = pattern_getchildren (this); - l = g_slist_reverse (l); + std::list l; + pattern_getchildren (this, l); - while (l) { - SPObject *child = SP_OBJECT (l->data); + for (SPObjectIterator it = l.begin(); it != l.end(); it++) { + SPObject *child = *it; sp_object_ref (child, NULL); - l = g_slist_remove (l, child); if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->updateDisplay(ctx, flags); @@ -263,20 +260,21 @@ void SPPattern::update(SPCtx* ctx, unsigned int flags) { } void SPPattern::modified(unsigned int flags) { + typedef std::list::iterator SPObjectIterator; + if (flags & SP_OBJECT_MODIFIED_FLAG) { flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; } flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = pattern_getchildren (this); - l = g_slist_reverse (l); + std::list l; + pattern_getchildren (this, l); - while (l) { - SPObject *child = SP_OBJECT (l->data); + for (SPObjectIterator it = l.begin(); it != l.end(); it++) { + SPObject *child = *it; sp_object_ref (child, NULL); - l = g_slist_remove (l, child); if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->emitModified(flags); @@ -402,8 +400,11 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se pattern->getRepr()->setAttribute("patternTransform", c); } -const gchar *pattern_tile(GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) +const gchar *pattern_tile(const std::list &reprs, Geom::Rect bounds, + SPDocument *document, Geom::Affine transform, Geom::Affine move) { + typedef std::list::const_iterator NodePtrIterator; + Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -419,8 +420,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 (NodePtrIterator i = reprs.begin(); i != reprs.end(); i++) { + Inkscape::XML::Node *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 422adb169..3f7433d62 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -13,22 +13,29 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#include #include +#include +#include #include "sp-item.h" +#include "svg/svg-length.h" +#include "sp-paint-server.h" +#include "uri-references.h" +#include "viewbox.h" #define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) #define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) class SPPatternReference; -#include "svg/svg-length.h" -#include "sp-paint-server.h" -#include "uri-references.h" -#include "viewbox.h" +namespace Inkscape { +namespace XML { -#include -#include +class Node; + +} +} class SPPattern : public SPPaintServer, public SPViewBox { @@ -92,7 +99,7 @@ SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); -const gchar *pattern_tile (GSList *reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); +const gchar *pattern_tile (const std::list &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); SPPattern *pattern_getroot (SPPattern *pat); -- cgit v1.2.3 From 22db6068f172d060429f17a489bdce59e5836c69 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Tue, 27 May 2014 21:57:33 +0200 Subject: SPPattern c++-sification: replacing pattern_ functions by methods pt1 (bzr r13341.6.19) --- src/extension/internal/cairo-render-context.cpp | 16 +++--- src/extension/internal/emf-print.cpp | 8 +-- src/extension/internal/wmf-print.cpp | 4 +- src/knot-holder-entity.cpp | 10 ++-- src/selection-chemistry.cpp | 7 +-- src/sp-pattern.cpp | 66 ++++++++++++------------- src/sp-pattern.h | 20 +++++--- 7 files changed, 68 insertions(+), 63 deletions(-) diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 2ace19ae5..aac2c517a 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1006,16 +1006,16 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver ps2user = Geom::identity(); pcs2dev = Geom::identity(); - double x = pattern_x(pat); - double y = pattern_y(pat); - double width = pattern_width(pat); - double height = pattern_height(pat); + double x = pat->get_x(); + double y = pat->get_y(); + double width = pat->get_width(); + double height = pat->get_height(); double bbox_width_scaler; double bbox_height_scaler; TRACE(("%f x %f pattern\n", width, height)); - if (pbox && pattern_patternUnits(pat) == SPPattern::UNITS_OBJECTBOUNDINGBOX) { + if (pbox && pat->get_pattern_units() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { //Geom::Affine bbox2user (pbox->x1 - pbox->x0, 0.0, 0.0, pbox->y1 - pbox->y0, pbox->x0, pbox->y0); bbox_width_scaler = pbox->width(); bbox_height_scaler = pbox->height(); @@ -1029,13 +1029,13 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver } // apply pattern transformation - Geom::Affine pattern_transform(pattern_patternTransform(pat)); + Geom::Affine pattern_transform(pat->get_transform()); ps2user *= pattern_transform; Geom::Point ori (ps2user[4], ps2user[5]); // create pattern contents coordinate system if (pat->viewBox_set) { - Geom::Rect view_box = *pattern_viewBox(pat); + Geom::Rect view_box = *pat->get_viewbox(); double x, y, w, h; x = 0; @@ -1048,7 +1048,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver pcs2dev[3] = h / view_box.height(); pcs2dev[4] = x - view_box.left() * pcs2dev[0]; pcs2dev[5] = y - view_box.top() * pcs2dev[3]; - } else if (pbox && pattern_patternContentUnits(pat) == SPPattern::UNITS_OBJECTBOUNDINGBOX) { + } else if (pbox && pat->get_pattern_content_units() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { pcs2dev[0] = pbox->width(); pcs2dev[3] = pbox->height(); } diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp index 9c68e40a4..2953efd7d 100644 --- a/src/extension/internal/emf-print.cpp +++ b/src/extension/internal/emf-print.cpp @@ -381,8 +381,8 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor) } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->fill.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pattern_width(pat); - double dheight = pattern_height(pat); + double dwidth = pat->get_width(); + double dheight = pat->get_height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); @@ -567,8 +567,8 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform) if (SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->stroke.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pattern_width(pat); - double dheight = pattern_height(pat); + double dwidth = pat->get_width(); + double dheight = pat->get_height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); diff --git a/src/extension/internal/wmf-print.cpp b/src/extension/internal/wmf-print.cpp index 55ad5da5f..8f3115693 100644 --- a/src/extension/internal/wmf-print.cpp +++ b/src/extension/internal/wmf-print.cpp @@ -378,8 +378,8 @@ int PrintWmf::create_brush(SPStyle const *style, U_COLORREF *fcolor) } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->fill.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pattern_width(pat); - double dheight = pattern_height(pat); + double dwidth = pat->get_width(); + double dheight = pat->get_height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index 6471124ec..7b79d86a8 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -187,7 +187,7 @@ PatternKnotHolderEntityAngle::knot_get() const { SPPattern const *pat = SP_PATTERN(SP_STYLE_FILL_SERVER(SP_OBJECT(item)->style)); - gdouble x = pattern_width(pat); + gdouble x = pat->get_width(); gdouble y = 0; Geom::Point delta = Geom::Point(x,y); Geom::Point scale = sp_pattern_extract_scale(pat); @@ -236,8 +236,8 @@ PatternKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point const & // Get the new scale from the position of the knotholder Geom::Point d = p_snapped - sp_pattern_extract_trans(pat); - gdouble pat_x = pattern_width(pat); - gdouble pat_y = pattern_height(pat); + gdouble pat_x = pat->get_width(); + gdouble pat_y = pat->get_height(); Geom::Scale scl(1); if ( state & GDK_CONTROL_MASK ) { // if ctrl is pressed: use 1:1 scaling @@ -263,8 +263,8 @@ PatternKnotHolderEntityScale::knot_get() const { SPPattern const *pat = SP_PATTERN(SP_STYLE_FILL_SERVER(SP_OBJECT(item)->style)); - gdouble x = pattern_width(pat); - gdouble y = pattern_height(pat); + gdouble x = pat->get_width(); + gdouble y = pat->get_height(); Geom::Point delta = Geom::Point(x,y); Geom::Affine a = pat->patternTransform; a[4] = 0; diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 19eba8ddd..9d07ec046 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3344,12 +3344,13 @@ void sp_selection_untile(SPDesktop *desktop) did = true; - SPPattern *pattern = pattern_getroot(SP_PATTERN(server)); + SPPattern *pattern = SP_PATTERN(server); + SPPattern *pattern_root = pattern_getroot(pattern); - Geom::Affine pat_transform = pattern_patternTransform(SP_PATTERN(server)); + Geom::Affine pat_transform = pattern->get_transform(); pat_transform *= item->transform; - for (SPObject *child = pattern->firstChild() ; child != NULL; child = child->next ) { + for (SPObject *child = pattern_root->firstChild() ; child != NULL; child = child->next ) { if (SP_IS_ITEM(child)) { Inkscape::XML::Node *copy = child->getRepr()->duplicate(xml_doc); SPItem *i = SP_ITEM(desktop->currentLayer()->appendChildRepr(copy)); diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index a3de09368..81e11ecb2 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -392,7 +392,7 @@ sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool se if (set) { pattern->patternTransform = postmul; } else { - pattern->patternTransform = pattern_patternTransform(pattern) * postmul; + pattern->patternTransform = pattern->get_transform() * postmul; } pattern->patternTransform_set = true; @@ -451,73 +451,73 @@ SPPattern *pattern_getroot(SPPattern *pat) // Access functions that look up fields up the chain of referenced patterns and return the first one which is set // FIXME: all of them must use chase_hrefs the same as in SPGradient, to avoid lockup on circular refs -SPPattern::PatternUnits pattern_patternUnits (SPPattern const *pat) +SPPattern::PatternUnits SPPattern::get_pattern_units() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->patternUnits_set) return pat_i->patternUnits; } - return pat->patternUnits; + return patternUnits; } -SPPattern::PatternUnits pattern_patternContentUnits (SPPattern const *pat) +SPPattern::PatternUnits SPPattern::get_pattern_content_units() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->patternContentUnits_set) return pat_i->patternContentUnits; } - return pat->patternContentUnits; + return patternContentUnits; } -Geom::Affine const &pattern_patternTransform(SPPattern const *pat) +Geom::Affine const &SPPattern::get_transform() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->patternTransform_set) return pat_i->patternTransform; } - return pat->patternTransform; + return patternTransform; } -gdouble pattern_x (SPPattern const *pat) +gdouble SPPattern::get_x() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->x._set) return pat_i->x.computed; } return 0; } -gdouble pattern_y (SPPattern const *pat) +gdouble SPPattern::get_y() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->y._set) return pat_i->y.computed; } return 0; } -gdouble pattern_width (SPPattern const* pat) +gdouble SPPattern::get_width() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->width._set) return pat_i->width.computed; } return 0; } -gdouble pattern_height (SPPattern const *pat) +gdouble SPPattern::get_height() const { - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->height._set) return pat_i->height.computed; } return 0; } -Geom::OptRect pattern_viewBox (SPPattern const *pat) +Geom::OptRect SPPattern::get_viewbox() const { Geom::OptRect viewbox; - for (SPPattern const *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->viewBox_set) { viewbox = pat_i->viewBox; break; @@ -526,10 +526,10 @@ Geom::OptRect pattern_viewBox (SPPattern const *pat) return viewbox; } -static bool pattern_hasItemChildren (SPPattern const *pat) +bool SPPattern::_has_item_children() const { bool hasChildren = false; - for (SPObject const *child = pat->firstChild() ; child && !hasChildren ; child = child->getNext() ) { + for (SPObject const *child = firstChild() ; child && !hasChildren ; child = child->getNext() ) { if (SP_IS_ITEM(child)) { hasChildren = true; } @@ -539,8 +539,8 @@ static bool pattern_hasItemChildren (SPPattern const *pat) bool SPPattern::isValid() const { - double tile_width = pattern_width(this); - double tile_height = pattern_height(this); + double tile_width = get_width(); + double tile_height = get_height(); if (tile_width <= 0 || tile_height <= 0) return false; @@ -561,7 +561,7 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { // find the first one with item children - if (pat_i && SP_IS_OBJECT(pat_i) && pattern_hasItemChildren(pat_i)) { + if (pat_i && SP_IS_OBJECT(pat_i) && pat_i->_has_item_children()) { shown = pat_i; break; // do not go further up the chain if children are found } @@ -595,11 +595,11 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // * "x", "y", and "patternTransform" transform tile to user space after tile is generated. // These functions recursively search up the tree to find the values. - double tile_x = pattern_x(this); - double tile_y = pattern_y(this); - double tile_width = pattern_width(this); - double tile_height = pattern_height(this); - if ( bbox && (pattern_patternUnits(this) == UNITS_OBJECTBOUNDINGBOX) ) { + double tile_x = get_x(); + double tile_y = get_y(); + double tile_width = get_width(); + double tile_height = get_height(); + if ( bbox && (get_pattern_units() == UNITS_OBJECTBOUNDINGBOX) ) { tile_x *= bbox->width(); tile_y *= bbox->height(); tile_width *= bbox->width(); @@ -611,7 +611,7 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // Content to tile (pattern space) Geom::Affine content2ps; - Geom::OptRect effective_view_box = pattern_viewBox(this); + Geom::OptRect effective_view_box = get_viewbox(); if (effective_view_box) { // viewBox to pattern server (using SPViewBox) viewBox = *effective_view_box; @@ -621,14 +621,14 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b } else { // Content to bbox - if (bbox && (pattern_patternContentUnits(this) == UNITS_OBJECTBOUNDINGBOX) ) { + if (bbox && (get_pattern_content_units() == UNITS_OBJECTBOUNDINGBOX) ) { content2ps = Geom::Affine(bbox->width(), 0.0, 0.0, bbox->height(), 0,0); } } // Tile (pattern space) to user. - Geom::Affine ps2user = Geom::Translate(tile_x,tile_y) * pattern_patternTransform(this); + Geom::Affine ps2user = Geom::Translate(tile_x,tile_y) * get_transform(); // Transform of object with pattern (includes screen scaling) diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 3f7433d62..f1dcc7963 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -70,6 +70,15 @@ public: bool isValid() const; + gdouble get_x() const; + gdouble get_y() const; + gdouble get_width() const; + gdouble get_height() const; + Geom::OptRect get_viewbox() const; + SPPattern::PatternUnits get_pattern_units() const; + SPPattern::PatternUnits get_pattern_content_units() const; + Geom::Affine const &get_transform() const; + virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); protected: @@ -78,6 +87,9 @@ protected: virtual void set(unsigned int key, const gchar* value); virtual void update(SPCtx* ctx, unsigned int flags); virtual void modified(unsigned int flags); + +private: + bool _has_item_children() const; }; @@ -103,14 +115,6 @@ const gchar *pattern_tile (const std::list &reprs, Geom::R SPPattern *pattern_getroot (SPPattern *pat); -SPPattern::PatternUnits pattern_patternUnits (SPPattern const *pat); -SPPattern::PatternUnits pattern_patternContentUnits (SPPattern const *pat); -Geom::Affine const &pattern_patternTransform(SPPattern const *pat); -gdouble pattern_x (SPPattern const *pat); -gdouble pattern_y (SPPattern const *pat); -gdouble pattern_width (SPPattern const *pat); -gdouble pattern_height (SPPattern const *pat); -Geom::OptRect pattern_viewBox (SPPattern const *pat); #endif // SEEN_SP_PATTERN_H -- cgit v1.2.3 From 9f92d7370e6e3f456259f5774d3443ae763160d3 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Tue, 27 May 2014 22:21:15 +0200 Subject: SPPattern c++-sification: removed unused declatations and includes (bzr r13341.6.20) --- src/sp-pattern.h | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/sp-pattern.h b/src/sp-pattern.h index f1dcc7963..f2a1e1c6c 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -1,9 +1,6 @@ -#ifndef SEEN_SP_PATTERN_H -#define SEEN_SP_PATTERN_H - -/* +/** @file * SVG implementation - * + *//* * Author: * Lauris Kaplinski * Abhishek Sharma @@ -13,21 +10,21 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ +#ifndef SEEN_SP_PATTERN_H +#define SEEN_SP_PATTERN_H + #include -#include #include +#include #include -#include "sp-item.h" #include "svg/svg-length.h" #include "sp-paint-server.h" #include "uri-references.h" #include "viewbox.h" -#define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) -#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) - class SPPatternReference; +class SPItem; namespace Inkscape { namespace XML { @@ -37,6 +34,8 @@ class Node; } } +#define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) +#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) class SPPattern : public SPPaintServer, public SPViewBox { public: @@ -106,7 +105,6 @@ protected: } }; -guint pattern_users (SPPattern *pattern); SPPattern *pattern_chain (SPPattern *pattern); SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); -- cgit v1.2.3 From 4d75f1ecca2fcab4cbfec9fb84c5b1f3647dbc17 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Wed, 28 May 2014 23:28:17 +0200 Subject: SPPattern c++-sification: replaced function by methods (bzr r13341.6.21) --- src/desktop-style.cpp | 4 ++-- src/selection-chemistry.cpp | 6 ++--- src/sp-item.cpp | 8 +++---- src/sp-pattern.cpp | 50 +++++++++++++++++------------------------- src/sp-pattern.h | 15 ++++++++----- src/widgets/fill-style.cpp | 4 ++-- src/widgets/paint-selector.cpp | 4 ++-- 7 files changed, 43 insertions(+), 48 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 37f537cc5..8c3dac382 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -538,8 +538,8 @@ objects_query_fillstroke (GSList *objects, SPStyle *style_res, bool const isfill if (!SP_IS_PATTERN(server)) return QUERY_STYLE_MULTIPLE_DIFFERENT; // different kind of server - SPPattern *pat = pattern_getroot (SP_PATTERN (server)); - SPPattern *pat_res = pattern_getroot (SP_PATTERN (server_res)); + SPPattern *pat = SP_PATTERN (server)->get_root(); + SPPattern *pat_res = SP_PATTERN (server_res)->get_root(); if (pat_res != pat) return QUERY_STYLE_MULTIPLE_DIFFERENT; // different pattern roots } diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 9d07ec046..069aa57bb 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1945,8 +1945,8 @@ GSList *sp_get_same_fill_or_stroke_color(SPItem *sel, GSList *src, SPSelectStrok } } else if (SP_IS_PATTERN(sel_server) && SP_IS_PATTERN(iter_server)) { - SPPattern *sel_pat = pattern_getroot(SP_PATTERN(sel_server)); - SPPattern *iter_pat = pattern_getroot(SP_PATTERN(iter_server)); + SPPattern *sel_pat = SP_PATTERN(sel_server)->get_root(); + SPPattern *iter_pat = SP_PATTERN(iter_server)->get_root(); if (sel_pat == iter_pat) { match = true; } @@ -3345,7 +3345,7 @@ void sp_selection_untile(SPDesktop *desktop) did = true; SPPattern *pattern = SP_PATTERN(server); - SPPattern *pattern_root = pattern_getroot(pattern); + SPPattern *pattern_root = pattern->get_root(); Geom::Affine pat_transform = pattern->get_transform(); pat_transform *= item->transform; diff --git a/src/sp-item.cpp b/src/sp-item.cpp index b10aae1c6..b6a6e66ef 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -1113,16 +1113,16 @@ void SPItem::adjust_pattern (Geom::Affine const &postmul, bool set) if (style && (style->fill.isPaintserver())) { SPObject *server = style->getFillPaintServer(); if ( SP_IS_PATTERN(server) ) { - SPPattern *pattern = sp_pattern_clone_if_necessary(this, SP_PATTERN(server), "fill"); - sp_pattern_transform_multiply(pattern, postmul, set); + SPPattern *pattern = SP_PATTERN(server)->clone_if_necessary(this, "fill"); + pattern->transform_multiply(postmul, set); } } if (style && (style->stroke.isPaintserver())) { SPObject *server = style->getStrokePaintServer(); if ( SP_IS_PATTERN(server) ) { - SPPattern *pattern = sp_pattern_clone_if_necessary(this, SP_PATTERN(server), "stroke"); - sp_pattern_transform_multiply(pattern, postmul, set); + SPPattern *pattern = SP_PATTERN(server)->clone_if_necessary(this, "stroke"); + pattern->transform_multiply(postmul, set); } } } diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 81e11ecb2..bd24ab1bb 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -312,12 +312,7 @@ static void pattern_ref_modified (SPObject */*ref*/, guint /*flags*/, SPPattern // Conditional to avoid causing infinite loop if there's a cycle in the href chain. } - -/** -Count how many times pat is used by the styles of o and its descendants -*/ -static guint -count_pattern_hrefs(SPObject *o, SPPattern *pat) +guint SPPattern::_count_hrefs(SPObject *o) const { if (!o) return 1; @@ -328,34 +323,32 @@ count_pattern_hrefs(SPObject *o, SPPattern *pat) if (style && style->fill.isPaintserver() && SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style)) - && SP_PATTERN(SP_STYLE_FILL_SERVER(style)) == pat) + && SP_PATTERN(SP_STYLE_FILL_SERVER(style)) == this) { i ++; } if (style && style->stroke.isPaintserver() && SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style)) - && SP_PATTERN(SP_STYLE_STROKE_SERVER(style)) == pat) + && SP_PATTERN(SP_STYLE_STROKE_SERVER(style)) == this) { i ++; } for ( SPObject *child = o->firstChild(); child != NULL; child = child->next ) { - i += count_pattern_hrefs(child, pat); + i += _count_hrefs(child); } return i; } -SPPattern *pattern_chain(SPPattern *pattern) -{ - SPDocument *document = pattern->document; - Inkscape::XML::Document *xml_doc = document->getReprDoc(); +SPPattern *SPPattern::_chain() const { + Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); Inkscape::XML::Node *repr = xml_doc->createElement("svg:pattern"); repr->setAttribute("inkscape:collect", "always"); - Glib::ustring parent_ref = Glib::ustring::compose("#%1", pattern->getRepr()->attribute("id")); + Glib::ustring parent_ref = Glib::ustring::compose("#%1", getRepr()->attribute("id")); repr->setAttribute("xlink:href", parent_ref); defsrepr->addChild(repr, NULL); @@ -366,11 +359,10 @@ SPPattern *pattern_chain(SPPattern *pattern) return SP_PATTERN (child); } -SPPattern * -sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property) -{ - if (pattern->href.empty() || pattern->hrefcount > count_pattern_hrefs(item, pattern)) { - pattern = pattern_chain (pattern); +SPPattern *SPPattern::clone_if_necessary(SPItem *item, const gchar *property) { + SPPattern *pattern = this; + if (pattern->href.empty() || pattern->hrefcount > _count_hrefs(item)) { + pattern = _chain(); Glib::ustring href = Glib::ustring::compose("url(#%1)", pattern->getRepr()->attribute("id")); SPCSSAttr *css = sp_repr_css_attr_new (); @@ -381,23 +373,21 @@ sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *pr return pattern; } -void -sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set) -{ +void SPPattern::transform_multiply(Geom::Affine postmul, bool set) { // this formula is for a different interpretation of pattern transforms as described in (*) in sp-pattern.cpp // for it to work, we also need sp_object_read_attr( item, "transform"); //pattern->patternTransform = premul * item->transform * pattern->patternTransform * item->transform.inverse() * postmul; // otherwise the formula is much simpler if (set) { - pattern->patternTransform = postmul; + patternTransform = postmul; } else { - pattern->patternTransform = pattern->get_transform() * postmul; + patternTransform = get_transform() * postmul; } - pattern->patternTransform_set = true; + patternTransform_set = true; - Glib::ustring c=sp_svg_transform_write(pattern->patternTransform); - pattern->getRepr()->setAttribute("patternTransform", c); + Glib::ustring c=sp_svg_transform_write(patternTransform); + getRepr()->setAttribute("patternTransform", c); } const gchar *pattern_tile(const std::list &reprs, Geom::Rect bounds, @@ -436,14 +426,14 @@ const gchar *pattern_tile(const std::list &reprs, Geom::Re return pat_id; } -SPPattern *pattern_getroot(SPPattern *pat) +SPPattern *SPPattern::get_root() { - for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if ( pat_i->firstChild() ) { // find the first one with children return pat_i; } } - return pat; // document is broken, we can't get to root; but at least we can return pat which is supposedly a valid pattern + return this; // document is broken, we can't get to root; but at least we can return pat which is supposedly a valid pattern } diff --git a/src/sp-pattern.h b/src/sp-pattern.h index f2a1e1c6c..0c468d8f7 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -77,6 +77,10 @@ public: SPPattern::PatternUnits get_pattern_units() const; SPPattern::PatternUnits get_pattern_content_units() const; Geom::Affine const &get_transform() const; + SPPattern *get_root(); //TODO: const + + SPPattern *clone_if_necessary(SPItem *item, const gchar *property); + void transform_multiply(Geom::Affine postmul, bool set); virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); @@ -89,6 +93,12 @@ protected: private: bool _has_item_children() const; + SPPattern *_chain() const; + + /** + Count how many times pat is used by the styles of o and its descendants + */ + guint _count_hrefs(SPObject* o) const; }; @@ -105,14 +115,9 @@ protected: } }; -SPPattern *pattern_chain (SPPattern *pattern); -SPPattern *sp_pattern_clone_if_necessary (SPItem *item, SPPattern *pattern, const gchar *property); -void sp_pattern_transform_multiply (SPPattern *pattern, Geom::Affine postmul, bool set); const gchar *pattern_tile (const std::list &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); -SPPattern *pattern_getroot (SPPattern *pat); - #endif // SEEN_SP_PATTERN_H diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index d1d318abe..27ab7156c 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -304,7 +304,7 @@ void FillNStroke::performUpdate() psel->setGradientProperties( rg->getUnits(), rg->getSpread() ); } else if (SP_IS_PATTERN(server)) { - SPPattern *pat = pattern_getroot(SP_PATTERN(server)); + SPPattern *pat = SP_PATTERN(server)->get_root(); psel->updatePatternList( pat ); } } @@ -663,7 +663,7 @@ void FillNStroke::updateFromPaint() SPPaintServer *server = (kind == FILL) ? selobj->style->getFillPaintServer() : selobj->style->getStrokePaintServer(); - if (SP_IS_PATTERN(server) && pattern_getroot(SP_PATTERN(server)) == pattern) + if (SP_IS_PATTERN(server) && SP_PATTERN(server)->get_root() == pattern) // only if this object's pattern is not rooted in our selected pattern, apply continue; } diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 9466c875e..39336267b 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -803,7 +803,7 @@ ink_pattern_list_get (SPDocument *source) GSList *pl = NULL; GSList const *patterns = source->getResourceList("pattern"); for (GSList *l = const_cast(patterns); l != NULL; l = l->next) { - if (SP_PATTERN(l->data) == pattern_getroot(SP_PATTERN(l->data))) { // only if this is a root pattern + if (SP_PATTERN(l->data) == SP_PATTERN(l->data)->get_root()) { // only if this is a root pattern pl = g_slist_prepend(pl, l->data); } } @@ -1123,7 +1123,7 @@ SPPattern *SPPaintSelector::getPattern() } g_free(paturn); } else { - pat = pattern_getroot(SP_PATTERN(patid)); + pat = SP_PATTERN(patid)->get_root(); } if (pat && !SP_IS_PATTERN(pat)) { -- cgit v1.2.3 From 85840ae655411c47248cd794a19dedd9ea3a591f Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Thu, 29 May 2014 12:04:56 +0200 Subject: SPPattern c++-sification: replaced function by methods pt3 (bzr r13341.6.22) --- src/selection-chemistry.cpp | 2 +- src/sp-pattern.cpp | 39 ++++++++++----------------------------- src/sp-pattern.h | 24 +++++++++++++++++++----- 3 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 069aa57bb..fa4589129 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3265,7 +3265,7 @@ sp_selection_tile(SPDesktop *desktop, bool apply) int saved_compensation = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED); - gchar const *pat_id = pattern_tile(repr_copies, bbox, doc, + gchar const *pat_id = SPPattern::produce(repr_copies, bbox, doc, ( Geom::Affine(Geom::Translate(desktop->dt2doc(Geom::Point(r->min()[Geom::X], r->max()[Geom::Y])))) * parent_transform.inverse() ), diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index bd24ab1bb..82e3cdacf 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -19,7 +19,8 @@ #include #include #include <2geom/transforms.h> -#include "macros.h" +#include + #include "svg/svg.h" #include "display/cairo-utils.h" #include "display/drawing-context.h" @@ -32,16 +33,6 @@ #include "style.h" #include "sp-pattern.h" #include "xml/repr.h" -#include "display/grayscale.h" - -#include -#include - -/* - * Pattern - */ -static void pattern_ref_changed(SPObject *old_ref, SPObject *ref, SPPattern *pat); -static void pattern_ref_modified (SPObject *ref, guint flags, SPPattern *pattern); #include "sp-factory.h" @@ -55,7 +46,7 @@ namespace { SPPattern::SPPattern() : SPPaintServer(), SPViewBox() { this->ref = new SPPatternReference(this); - this->ref->changedSignal().connect(sigc::bind(sigc::ptr_fun(pattern_ref_changed), this)); + this->ref->changedSignal().connect(sigc::mem_fun(this, &SPPattern::_on_ref_changed)); this->patternUnits = UNITS_OBJECTBOUNDINGBOX; this->patternUnits_set = false; @@ -284,31 +275,21 @@ void SPPattern::modified(unsigned int flags) { } } -/** -Gets called when the pattern is reattached to another -*/ -static void -pattern_ref_changed(SPObject *old_ref, SPObject *ref, SPPattern *pat) -{ +void SPPattern::_on_ref_changed(SPObject *old_ref, SPObject *ref) { if (old_ref) { - pat->modified_connection.disconnect(); + modified_connection.disconnect(); } if (SP_IS_PATTERN (ref)) { - pat->modified_connection = ref->connectModified(sigc::bind<2>(sigc::ptr_fun(&pattern_ref_modified), pat)); + modified_connection = ref->connectModified(sigc::mem_fun(this, &SPPattern::_on_ref_modified)); } - pattern_ref_modified (ref, 0, pat); + _on_ref_modified(ref, 0); } -/** -Gets called when the referenced is changed -*/ -static void pattern_ref_modified (SPObject */*ref*/, guint /*flags*/, SPPattern *pattern) +void SPPattern::_on_ref_modified(SPObject */*ref*/, guint /*flags*/) { - if ( SP_IS_OBJECT(pattern) ) { - pattern->requestModified(SP_OBJECT_MODIFIED_FLAG); - } + requestModified(SP_OBJECT_MODIFIED_FLAG); // Conditional to avoid causing infinite loop if there's a cycle in the href chain. } @@ -390,7 +371,7 @@ void SPPattern::transform_multiply(Geom::Affine postmul, bool set) { getRepr()->setAttribute("patternTransform", c); } -const gchar *pattern_tile(const std::list &reprs, Geom::Rect bounds, +const gchar *SPPattern::produce(const std::list &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move) { typedef std::list::const_iterator NodePtrIterator; diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 0c468d8f7..1eec0da7f 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -82,6 +82,14 @@ public: SPPattern *clone_if_necessary(SPItem *item, const gchar *property); void transform_multiply(Geom::Affine postmul, bool set); + /** + * @brief create a new pattern in XML tree + * @return created pattern id + */ + static const gchar *produce(const std::list &reprs, + Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); + + virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); protected: @@ -96,9 +104,19 @@ private: SPPattern *_chain() const; /** - Count how many times pat is used by the styles of o and its descendants + Count how many times pattern is used by the styles of o and its descendants */ guint _count_hrefs(SPObject* o) const; + + /** + Gets called when the pattern is reattached to another + */ + void _on_ref_changed(SPObject *old_ref, SPObject *ref); + + /** + Gets called when the referenced is changed + */ + void _on_ref_modified(SPObject *ref, guint flags); }; @@ -115,10 +133,6 @@ protected: } }; - -const gchar *pattern_tile (const std::list &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); - - #endif // SEEN_SP_PATTERN_H /* -- cgit v1.2.3 From 35100d54d146fd0fcf702abca02311b0ef95152f Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Thu, 29 May 2014 12:35:19 +0200 Subject: SPPattern c++-sification: class fields are private (bzr r13341.6.23) --- src/knot-holder-entity.cpp | 8 ++++---- src/sp-pattern.cpp | 8 ++++---- src/sp-pattern.h | 37 ++++++++++++++++++------------------- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index 7b79d86a8..c3e48cf49 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -136,19 +136,19 @@ KnotHolderEntity::snap_knot_position_constrained(Geom::Point const &p, Inkscape: static gdouble sp_pattern_extract_theta(SPPattern const *pat) { - Geom::Affine transf = pat->patternTransform; + Geom::Affine transf = pat->get_transform(); return Geom::atan2(transf.xAxis()); } static Geom::Point sp_pattern_extract_scale(SPPattern const *pat) { - Geom::Affine transf = pat->patternTransform; + Geom::Affine transf = pat->get_transform(); return Geom::Point( transf.expansionX(), transf.expansionY() ); } static Geom::Point sp_pattern_extract_trans(SPPattern const *pat) { - return Geom::Point(pat->patternTransform[4], pat->patternTransform[5]); + return Geom::Point(pat->get_transform()[4], pat->get_transform()[5]); } void @@ -266,7 +266,7 @@ PatternKnotHolderEntityScale::knot_get() const gdouble x = pat->get_width(); gdouble y = pat->get_height(); Geom::Point delta = Geom::Point(x,y); - Geom::Affine a = pat->patternTransform; + Geom::Affine a = pat->get_transform(); a[4] = 0; a[5] = 0; delta = delta * a; diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 82e3cdacf..c2835eadd 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -213,8 +213,8 @@ void SPPattern::set(unsigned int key, const gchar* value) { /* fixme: We need ::order_changed handler too (Lauris) */ -void pattern_getchildren(SPPattern *pat, std::list& l) -{ +void SPPattern::_get_children(std::list& l) { + SPPattern *pat = this; for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children for (SPObject *child = pat->firstChild() ; child ; child = child->getNext() ) { @@ -235,7 +235,7 @@ void SPPattern::update(SPCtx* ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; std::list l; - pattern_getchildren (this, l); + _get_children(l); for (SPObjectIterator it = l.begin(); it != l.end(); it++) { SPObject *child = *it; @@ -260,7 +260,7 @@ void SPPattern::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; std::list l; - pattern_getchildren (this, l); + _get_children(l); for (SPObjectIterator it = l.begin(); it != l.end(); it++) { SPObject *child = *it; diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 1eec0da7f..3fe0f53d8 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -51,24 +51,6 @@ public: Glib::ustring href; SPPatternReference *ref; - /* patternUnits and patternContentUnits attribute */ - PatternUnits patternUnits : 1; - bool patternUnits_set : 1; - PatternUnits patternContentUnits : 1; - bool patternContentUnits_set : 1; - /* patternTransform attribute */ - Geom::Affine patternTransform; - bool patternTransform_set : 1; - /* Tile rectangle */ - SVGLength x; - SVGLength y; - SVGLength width; - SVGLength height; - - sigc::connection modified_connection; - - bool isValid() const; - gdouble get_x() const; gdouble get_y() const; gdouble get_width() const; @@ -89,7 +71,7 @@ public: static const gchar *produce(const std::list &reprs, Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); - + bool isValid() const; virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); protected: @@ -101,6 +83,7 @@ protected: private: bool _has_item_children() const; + void _get_children(std::list& l); SPPattern *_chain() const; /** @@ -117,6 +100,22 @@ private: Gets called when the referenced is changed */ void _on_ref_modified(SPObject *ref, guint flags); + + /* patternUnits and patternContentUnits attribute */ + PatternUnits patternUnits : 1; + bool patternUnits_set : 1; + PatternUnits patternContentUnits : 1; + bool patternContentUnits_set : 1; + /* patternTransform attribute */ + Geom::Affine patternTransform; + bool patternTransform_set : 1; + /* Tile rectangle */ + SVGLength x; + SVGLength y; + SVGLength width; + SVGLength height; + + sigc::connection modified_connection; }; -- cgit v1.2.3 From f92d08e05a6e8af396e9afda669e3f25d06ee7bf Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Thu, 29 May 2014 12:38:20 +0200 Subject: fixed possible bug SPPattern::_get_children (bzr r13341.6.24) --- src/sp-pattern.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index c2835eadd..18eb78a27 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -214,10 +214,9 @@ void SPPattern::set(unsigned int key, const gchar* value) { /* fixme: We need ::order_changed handler too (Lauris) */ void SPPattern::_get_children(std::list& l) { - SPPattern *pat = this; - for (SPPattern *pat_i = pat; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { + for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children - for (SPObject *child = pat->firstChild() ; child ; child = child->getNext() ) { + for (SPObject *child = pat_i->firstChild() ; child ; child = child->getNext() ) { l.push_back(child); } break; // do not go further up the chain if children are found -- cgit v1.2.3 From 1cf0f193c7848428a1cce2dfa40716608163fa33 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Thu, 29 May 2014 13:59:08 +0200 Subject: SPColorSelector c++-sification: added SelectedColor class (bzr r13341.6.25) --- src/ui/Makefile_insert | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/Makefile_insert b/src/ui/Makefile_insert index 4081f86f8..75801886e 100644 --- a/src/ui/Makefile_insert +++ b/src/ui/Makefile_insert @@ -11,5 +11,7 @@ ink_common_sources += \ ui/previewfillable.h \ ui/previewholder.cpp \ ui/previewholder.h \ + ui/selected-color.h \ + ui/selected-color.cpp \ ui/uxmanager.cpp \ ui/uxmanager.h -- cgit v1.2.3 From 51eab9e9fdc5a520f91cb90ba101cedd62fd3eb4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Thu, 29 May 2014 18:21:29 +0200 Subject: SPColorSelector c++-sification: added SelectedColor class (bzr r13341.6.26) --- src/ui/selected-color.cpp | 92 +++++++++++++++++++++++++++++++++++++++++++++++ src/ui/selected-color.h | 55 ++++++++++++++++++++++++++++ 2 files changed, 147 insertions(+) create mode 100644 src/ui/selected-color.cpp create mode 100644 src/ui/selected-color.h diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp new file mode 100644 index 000000000..246c51ebd --- /dev/null +++ b/src/ui/selected-color.cpp @@ -0,0 +1,92 @@ +/** @file + * Color selected in color selector widget. + * This file was created during the refactoring of SPColorSelector + *//* + * Authors: + * bulia byak + * Jon A. Cruz + * Tomasz Boczkowski + * + * Copyright (C) 2014 Authors + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#include +#include + +#include "selected-color.h" + +double SelectedColor::_epsilon = 1e-4; + +SelectedColor::SelectedColor() + : _color(0) + , _alpha(1.0) + , _virgin(true) +{ + +} + +SelectedColor::~SelectedColor() { + +} + +void SelectedColor::set_color(const SPColor& color) +{ + set_color_alpha( color, _alpha ); +} + +SPColor SelectedColor::get_color() const +{ + return _color; +} + +void SelectedColor::set_alpha(gfloat alpha) +{ + g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); + set_color_alpha( _color, alpha ); +} + +gfloat SelectedColor::get_alpha() const +{ + return _alpha; +} + +void SelectedColor::set_color_alpha(const SPColor& color, gfloat alpha, bool emit) +{ +#ifdef DUMP_CHANGE_INFO + g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); +#endif + g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); + +#ifdef DUMP_CHANGE_INFO + g_message("---- SelectedColor::setColorAlpha virgin:%s !close:%s alpha is:%s in %s", + (_virgin?"YES":"no"), + (!color.isClose( _color, _epsilon )?"YES":"no"), + ((fabs((_alpha) - (alpha)) >= _epsilon )?"YES":"no"), + FOO_NAME(_csel) + ); +#endif + + if ( _virgin || !color.isClose( _color, _epsilon ) || + (fabs((_alpha) - (alpha)) >= _epsilon )) { + + _virgin = false; + + _color = color; + _alpha = alpha; + + if (emit) { + signal_changed.emit(); + } +#ifdef DUMP_CHANGE_INFO + } else { + g_message("++++ SelectedColor::setColorAlpha color:%08x ==> _color:%08X isClose:%s in %s", color.toRGBA32(alpha), _color.toRGBA32(_alpha), + (color.isClose( _color, _epsilon )?"YES":"no"), FOO_NAME(_csel)); +#endif + } +} + +void SelectedColor::get_color_alpha(SPColor &color, gfloat &alpha) const { + color = _color; + alpha = _alpha; +} + diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h new file mode 100644 index 000000000..f7f0d6ad0 --- /dev/null +++ b/src/ui/selected-color.h @@ -0,0 +1,55 @@ +/** @file + * Color selected in color selector widget. + * This file was created during the refactoring of SPColorSelector + *//* + * Authors: + * bulia byak + * Jon A. Cruz + * Tomasz Boczkowski + * + * Copyright (C) 2014 Authors + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#ifndef SEEN_SELECTED_COLOR +#define SEEN_SELECTED_COLOR + +#include +#include "color.h" + +class SelectedColor +{ +public: + SelectedColor(); + virtual ~SelectedColor(); + + void set_color( const SPColor& color ); + SPColor get_color() const; + + void set_alpha( gfloat alpha ); + gfloat get_alpha() const; + + void set_color_alpha( const SPColor& color, gfloat alpha, bool emit = false ); + void get_color_alpha( SPColor &color, gfloat &alpha ) const; + + sigc::signal signal_changed; +private: + // By default, disallow copy constructor and assignment operator + SelectedColor( const SelectedColor& obj ); + SelectedColor& operator=( const SelectedColor& obj ); + + SPColor _color; + /** + * Color alpha value guaranteed to be in [0, 1]. + */ + gfloat _alpha; + + /** + * This flag is true if no color is set yet + */ + bool _virgin; + + static double _epsilon; +}; + +#endif + -- cgit v1.2.3 From e373a552e457bb9aec3a31cf7d3fd01ded3f330d Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 30 May 2014 13:28:00 +0200 Subject: SPColorSelector c++-sification: added ColorSelectorFactory (bzr r13341.6.27) --- src/ui/selected-color.cpp | 6 ++++++ src/ui/selected-color.h | 20 ++++++++++++++++++-- src/widgets/sp-color-icc-selector.cpp | 11 +++++++++++ src/widgets/sp-color-icc-selector.h | 9 ++++++++- src/widgets/sp-color-notebook.cpp | 2 +- src/widgets/sp-color-scales.cpp | 22 ++++++++++++++++++++++ src/widgets/sp-color-scales.h | 17 +++++++++++++++++ src/widgets/sp-color-wheel-selector.cpp | 14 ++++++++++++++ src/widgets/sp-color-wheel-selector.h | 9 +++++++++ 9 files changed, 106 insertions(+), 4 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 246c51ebd..927c421b8 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -15,6 +15,9 @@ #include "selected-color.h" +namespace Inkscape { +namespace UI { + double SelectedColor::_epsilon = 1e-4; SelectedColor::SelectedColor() @@ -90,3 +93,6 @@ void SelectedColor::get_color_alpha(SPColor &color, gfloat &alpha) const { alpha = _alpha; } +} +} + diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index f7f0d6ad0..db2f2f68c 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -14,10 +14,13 @@ #define SEEN_SELECTED_COLOR #include +#include #include "color.h" -class SelectedColor -{ +namespace Inkscape { +namespace UI { + +class SelectedColor { public: SelectedColor(); virtual ~SelectedColor(); @@ -51,5 +54,18 @@ private: static double _epsilon; }; + +class ColorSelectorFactory { +public: + virtual ~ColorSelectorFactory() {} + + virtual Gtk::Widget* createWidget(SelectedColor& color) const = 0; + virtual Glib::ustring modeName() const = 0; +}; + + +} +} + #endif diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index ca64a915f..806ddba8d 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -270,6 +270,7 @@ static void sp_color_icc_selector_class_init(SPColorICCSelectorClass *klass) widget_class->hide = sp_color_icc_selector_hide; } +const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); ColorICCSelector::ColorICCSelector( SPColorSelector* csel ) : ColorSelector( csel ), @@ -1123,6 +1124,16 @@ void ColorICCSelectorImpl::_sliderChanged() // iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); } +Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_ICC_SELECTOR); + Gtk::Widget *wrapped = Glib::wrap(w); + return wrapped; +} + +Glib::ustring ColorICCSelectorFactory::modeName() const { + return gettext(ColorICCSelector::MODE_NAME); +} + /* Local Variables: diff --git a/src/widgets/sp-color-icc-selector.h b/src/widgets/sp-color-icc-selector.h index f63ab0853..a59d3fe7e 100644 --- a/src/widgets/sp-color-icc-selector.h +++ b/src/widgets/sp-color-icc-selector.h @@ -5,6 +5,7 @@ #include #include "sp-color-selector.h" +#include "ui/selected-color.h" namespace Inkscape { class ColorProfile; @@ -18,6 +19,8 @@ class ColorICCSelectorImpl; class ColorICCSelector: public ColorSelector { public: + static const gchar* MODE_NAME; + ColorICCSelector( SPColorSelector* csel ); virtual ~ColorICCSelector(); @@ -58,7 +61,11 @@ GType sp_color_icc_selector_get_type(void); GtkWidget *sp_color_icc_selector_new(void); - +class ColorICCSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +public: + Gtk::Widget* createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; +}; #endif // SEEN_SP_COLOR_ICC_SELECTOR_H diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index e081f98e0..367063790 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -360,7 +360,7 @@ void ColorNotebook::init() // uncomment to reenable the "show/hide modes" menu, // but first fix it so it remembers its settings in prefs and does not take that much space (entire vertical column!) - //gtk_table_attach (GTK_TABLE (table), align, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); + gtk_table_attach (GTK_TABLE (table), align, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); g_signal_connect_swapped(G_OBJECT(_btn), "event", G_CALLBACK (sp_color_notebook_menu_handler), G_OBJECT(_csel)); if ( !found ) diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index 94950e937..97933d949 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -53,6 +53,12 @@ static SPColorSelectorClass *parent_class; #define noDUMP_CHANGE_INFO 1 +const gchar* ColorScales::SUBMODE_NAMES[] = { + N_("RGB"), + N_("HSL"), + N_("CMYK") +}; + GType sp_color_scales_get_type (void) { @@ -754,4 +760,20 @@ sp_color_scales_hue_map (void) return map; } +ColorScalesFactory::ColorScalesFactory(SPColorScalesMode submode) + : _submode(submode) +{ +} + +ColorScalesFactory::~ColorScalesFactory() { +} + +Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES); + Gtk::Widget *wrapped = Glib::wrap(w); + return wrapped; +} +Glib::ustring ColorScalesFactory::modeName() const { + return gettext(ColorScales::SUBMODE_NAMES[_submode]); +} diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h index 06b8f3859..946f0935e 100644 --- a/src/widgets/sp-color-scales.h +++ b/src/widgets/sp-color-scales.h @@ -15,6 +15,7 @@ #include #include +#include "ui/selected-color.h" struct SPColorScales; struct SPColorScalesClass; @@ -41,6 +42,8 @@ typedef enum { class ColorScales: public ColorSelector { public: + static const gchar* SUBMODE_NAMES[]; + static gfloat getScaled( const GtkAdjustment *a ); static void setScaled( GtkAdjustment *a, gfloat v); @@ -108,6 +111,20 @@ GType sp_color_scales_get_type(); GtkWidget *sp_color_scales_new(); + +class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory { +public: + ColorScalesFactory(SPColorScalesMode submode); + ~ColorScalesFactory(); + + Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; + +private: + SPColorScalesMode _submode; +}; + + #endif /* !SEEN_SP_COLOR_SCALES_H */ /* diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index 2100f555c..e41a312a1 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -32,6 +32,9 @@ static SPColorSelectorClass *parent_class; #define XPAD 4 #define YPAD 1 + +const gchar* ColorWheelSelector::MODE_NAME = N_("Wheel"); + GType sp_color_wheel_selector_get_type (void) { @@ -341,6 +344,17 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec } +Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_WHEEL_SELECTOR); + Gtk::Widget *wrapped = Glib::wrap(w); + return wrapped; +} + +Glib::ustring ColorWheelSelectorFactory::modeName() const { + return gettext(ColorWheelSelector::MODE_NAME); +} + + /* Local Variables: mode:c++ diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h index bb6078906..ad0d11bad 100644 --- a/src/widgets/sp-color-wheel-selector.h +++ b/src/widgets/sp-color-wheel-selector.h @@ -13,6 +13,7 @@ #include #include "sp-color-selector.h" +#include "ui/selected-color.h" typedef struct _GimpColorWheel GimpColorWheel; struct SPColorWheelSelector; @@ -31,6 +32,8 @@ class ColorSlider; class ColorWheelSelector: public ColorSelector { public: + static const gchar* MODE_NAME; + ColorWheelSelector( SPColorSelector* csel ); virtual ~ColorWheelSelector(); @@ -87,6 +90,12 @@ GType sp_color_wheel_selector_get_type (void); GtkWidget *sp_color_wheel_selector_new (void); +class ColorWheelSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +public: + Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; +}; + #endif // SEEN_SP_COLOR_WHEEL_SELECTOR_H -- cgit v1.2.3 From 17055d029cc8732d1b2636b9e98338c8e7056558 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 30 May 2014 15:55:34 +0200 Subject: SPColorNotebok c++-sification - available pages list (bzr r13341.6.28) --- src/extension/param/parameter.cpp | 4 ++ src/ui/selected-color.cpp | 5 ++- src/ui/selected-color.h | 8 ++++ src/widgets/sp-color-icc-selector.cpp | 2 +- src/widgets/sp-color-notebook.cpp | 65 +++++++++++++++++++++++++++++---- src/widgets/sp-color-notebook.h | 28 ++++++++++++-- src/widgets/sp-color-scales.cpp | 11 +++++- src/widgets/sp-color-selector.cpp | 5 ++- src/widgets/sp-color-selector.h | 8 ++++ src/widgets/sp-color-wheel-selector.cpp | 2 +- 10 files changed, 121 insertions(+), 17 deletions(-) diff --git a/src/extension/param/parameter.cpp b/src/extension/param/parameter.cpp index 202b8110f..b18525215 100644 --- a/src/extension/param/parameter.cpp +++ b/src/extension/param/parameter.cpp @@ -15,6 +15,10 @@ # include "config.h" #endif +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #ifdef linux // does the dollar sign need escaping when passed as string parameter? # define ESCAPE_DOLLAR_COMMANDLINE #endif diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 927c421b8..f61c3b7f8 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -10,11 +10,12 @@ * Copyright (C) 2014 Authors * Released under GNU GPL, read the file 'COPYING' for more information */ -#include -#include #include "selected-color.h" +#include +#include + namespace Inkscape { namespace UI { diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index db2f2f68c..a56ee6afb 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -13,6 +13,14 @@ #ifndef SEEN_SELECTED_COLOR #define SEEN_SELECTED_COLOR +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include #include #include "color.h" diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 806ddba8d..69818ba99 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -1126,7 +1126,7 @@ void ColorICCSelectorImpl::_sliderChanged() Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_ICC_SELECTOR); - Gtk::Widget *wrapped = Glib::wrap(w); + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); return wrapped; } diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 367063790..923a4480f 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "../dialogs/dialog-events.h" #include "../preferences.h" @@ -53,6 +54,7 @@ struct SPColorNotebookTracker { SPColorNotebook *backPointer; }; + static void sp_color_notebook_class_init (SPColorNotebookClass *klass); static void sp_color_notebook_init (SPColorNotebook *colorbook); static void sp_color_notebook_dispose(GObject *object); @@ -264,16 +266,11 @@ void ColorNotebook::init() #endif gtk_widget_show (_buttonbox); - _buttons = new GtkWidget *[_trackerList->len]; + _buttons = new GtkWidget *[_available_pages.size()]; - for ( i = 0; i < _trackerList->len; i++ ) + for ( i = 0; i < _available_pages.size(); i++ ) { - SPColorNotebookTracker *entry = - reinterpret_cast< SPColorNotebookTracker* > (g_ptr_array_index (_trackerList, i)); - if ( entry ) - { - addPage(entry->type, entry->submode); - } + _addPage(_available_pages[i]); } #if GTK_CHECK_VERSION(3,0,0) @@ -507,6 +504,20 @@ GtkWidget *sp_color_notebook_new() ColorNotebook::ColorNotebook( SPColorSelector* csel ) : ColorSelector( csel ) { + Page *page; + + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_HSV), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_CMYK), true); + _available_pages.push_back(page); + page = new Page(new ColorWheelSelectorFactory, true); + _available_pages.push_back(page); +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + page = new Page(new ColorICCSelectorFactory, true); + _available_pages.push_back(page); +#endif } SPColorSelector* ColorNotebook::getCurrentSelector() @@ -526,6 +537,12 @@ SPColorSelector* ColorNotebook::getCurrentSelector() return csel; } +ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) + : selector_factory(selector_factory) + , enabled_full(enabled_full) +{ +} + void ColorNotebook::_colorChanged() { SPColorSelector* cselPage = getCurrentSelector(); @@ -769,6 +786,38 @@ GtkWidget* ColorNotebook::addPage(GType page_type, guint submode) return page; } +GtkWidget* ColorNotebook::_addPage(Page& page) { + Gtk::Widget *selector_widget; + + selector_widget = page.selector_factory->createWidget(_selected_color); + if (selector_widget) { + selector_widget->show(); + + Glib::ustring mode_name = page.selector_factory->modeName(); + Gtk::Widget* tab_label = Gtk::manage(new Gtk::Label(mode_name)); + gint page_num = gtk_notebook_append_page( GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); + + _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); + gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); + if (page_num > 0) { + GSList *group = gtk_radio_button_get_group (GTK_RADIO_BUTTON(_buttons[0])); + gtk_radio_button_set_group (GTK_RADIO_BUTTON(_buttons[page_num]), group); + } + gtk_widget_show (_buttons[page_num]); + gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); + + g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); + + //Connect glib signals of non-refactored widgets + g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); + g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); + g_signal_connect (selector_widget->gobj(), "released", G_CALLBACK (_entryReleased), _csel); + g_signal_connect (selector_widget->gobj(), "changed", G_CALLBACK (_entryChanged), _csel); + } + + return selector_widget->gobj(); +} + GtkWidget* ColorNotebook::getPage(GType page_type, guint submode) { gint count = 0; diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index 6e5111132..5db278e3f 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -12,12 +12,21 @@ * This code is in public domain */ -#include -#include "../color.h" -#include "sp-color-selector.h" +#ifdef HAVE_CONFIG_H +# include +#endif +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include #include +#include "../color.h" +#include "sp-color-selector.h" +#include "ui/selected-color.h" struct SPColorNotebook; @@ -40,6 +49,13 @@ public: gint menuHandler( GdkEvent* event ); protected: + struct Page { + Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); + + Inkscape::UI::ColorSelectorFactory *selector_factory; + bool enabled_full; + }; + static void _rgbaEntryChangedHook( GtkEntry* entry, SPColorNotebook *colorbook ); static void _entryGrabbed( SPColorSelector *csel, SPColorNotebook *colorbook ); static void _entryDragged( SPColorSelector *csel, SPColorNotebook *colorbook ); @@ -55,6 +71,9 @@ protected: void _updateRgbaEntry( const SPColor& color, gfloat alpha ); void _setCurrentPage(int i); + GtkWidget* _addPage(Page& page); + + Inkscape::UI::SelectedColor _selected_color; gboolean _updating : 1; gboolean _updatingrgba : 1; gboolean _dragging : 1; @@ -72,6 +91,7 @@ protected: GtkWidget *_btn; GtkWidget *_popup; GPtrArray *_trackerList; + boost::ptr_vector _available_pages; private: // By default, disallow copy constructor and assignment operator @@ -81,6 +101,8 @@ private: + + #define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ()) #define SP_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook)) #define SP_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass)) diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index 97933d949..d7466be98 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -54,6 +54,7 @@ static SPColorSelectorClass *parent_class; #define noDUMP_CHANGE_INFO 1 const gchar* ColorScales::SUBMODE_NAMES[] = { + N_("None"), N_("RGB"), N_("HSL"), N_("CMYK") @@ -770,7 +771,15 @@ ColorScalesFactory::~ColorScalesFactory() { Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES); - Gtk::Widget *wrapped = Glib::wrap(w); + SPColorSelector* csel; + + csel = SP_COLOR_SELECTOR (w); + if ( _submode > 0 ) + { + csel->base->setSubmode( _submode - 1 ); + } + + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); return wrapped; } diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp index 6d62acecd..05af162ef 100644 --- a/src/widgets/sp-color-selector.cpp +++ b/src/widgets/sp-color-selector.cpp @@ -6,10 +6,13 @@ #ifdef HAVE_CONFIG_H # include "config.h" #endif + +#include "sp-color-selector.h" + #include #include #include -#include "sp-color-selector.h" + enum { GRABBED, diff --git a/src/widgets/sp-color-selector.h b/src/widgets/sp-color-selector.h index 616d5a9e7..560b4c59d 100644 --- a/src/widgets/sp-color-selector.h +++ b/src/widgets/sp-color-selector.h @@ -1,6 +1,14 @@ #ifndef SEEN_SP_COLOR_SELECTOR_H #define SEEN_SP_COLOR_SELECTOR_H +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include #include "../color.h" diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index e41a312a1..15177377d 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -346,7 +346,7 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_WHEEL_SELECTOR); - Gtk::Widget *wrapped = Glib::wrap(w); + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); return wrapped; } -- cgit v1.2.3 From cee4e3c55c0d455f10da9bd30fc18f8d1f1e531c Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 30 May 2014 16:37:08 +0200 Subject: SPColorNotebok c++-sification - removed trackerList, commented out unused pop-up menu (bzr r13341.6.29) --- src/widgets/sp-color-notebook.cpp | 196 ++++++++++---------------------------- src/widgets/sp-color-notebook.h | 24 +++-- 2 files changed, 67 insertions(+), 153 deletions(-) diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 923a4480f..364e81ae5 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -141,47 +141,6 @@ void ColorNotebook::switchPage(GtkNotebook*, } } -static gint sp_color_notebook_menu_handler( GtkWidget *widget, GdkEvent *event ) -{ - if (event->type == GDK_BUTTON_PRESS) - { - SPColorSelector* csel = SP_COLOR_SELECTOR(widget); - (dynamic_cast(csel->base))->menuHandler( event ); - - /* Tell calling code that we have handled this event; the buck - * stops here. */ - return TRUE; - } - - /* Tell calling code that we have not handled this event; pass it on. */ - return FALSE; -} - -gint ColorNotebook::menuHandler( GdkEvent* event ) -{ - GdkEventButton *bevent = (GdkEventButton *) event; - gtk_menu_popup (GTK_MENU( _popup ), NULL, NULL, NULL, NULL, - bevent->button, bevent->time); - return TRUE; -} - -static void sp_color_notebook_menuitem_response (GtkMenuItem *menuitem, gpointer user_data) -{ - gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)); - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (user_data); - if ( entry ) - { - if ( active ) - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->addPage(entry->type, entry->submode); - } - else - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->removePage(entry->type, entry->submode); - } - } -} - static void sp_color_notebook_init (SPColorNotebook *colorbook) { @@ -196,28 +155,9 @@ sp_color_notebook_init (SPColorNotebook *colorbook) void ColorNotebook::init() { guint row = 0; - guint i = 0; - guint j = 0; - GType *selector_types = 0; - guint selector_type_count = 0; - - /* tempory hardcoding to get types loaded */ - SP_TYPE_COLOR_SCALES; - SP_TYPE_COLOR_WHEEL_SELECTOR; -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - SP_TYPE_COLOR_ICC_SELECTOR; -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - /* REJON: Comment out the next line to not use the normal GTK Color - wheel. */ - -// SP_TYPE_COLOR_GTKSELECTOR; _updating = FALSE; _updatingrgba = FALSE; - _btn = 0; - _popup = 0; - _trackerList = g_ptr_array_new (); _book = gtk_notebook_new (); gtk_widget_show (_book); @@ -226,38 +166,6 @@ void ColorNotebook::init() gtk_notebook_set_show_border (GTK_NOTEBOOK (_book), false); gtk_notebook_set_show_tabs (GTK_NOTEBOOK (_book), false); - selector_types = g_type_children (SP_TYPE_COLOR_SELECTOR, &selector_type_count); - - for ( i = 0; i < selector_type_count; i++ ) - { - if (!g_type_is_a (selector_types[i], SP_TYPE_COLOR_NOTEBOOK)) - { - guint howmany = 1; - gpointer klass = g_type_class_ref (selector_types[i]); - if ( klass && SP_IS_COLOR_SELECTOR_CLASS(klass) ) - { - SPColorSelectorClass *ck = SP_COLOR_SELECTOR_CLASS (klass); - howmany = MAX (1, ck->submode_count); - for ( j = 0; j < howmany; j++ ) - { - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (malloc(sizeof(SPColorNotebookTracker))); - if ( entry ) - { - memset( entry, 0, sizeof(SPColorNotebookTracker) ); - entry->name = ck->name[j]; - entry->type = selector_types[i]; - entry->submode = j; - entry->enabledFull = TRUE; - entry->enabledBrief = TRUE; - entry->backPointer = SP_COLOR_NOTEBOOK(_csel); - - g_ptr_array_add (_trackerList, entry); - } - } - } - } - } - #if GTK_CHECK_VERSION(3,0,0) _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE); @@ -268,7 +176,7 @@ void ColorNotebook::init() gtk_widget_show (_buttonbox); _buttons = new GtkWidget *[_available_pages.size()]; - for ( i = 0; i < _available_pages.size(); i++ ) + for (int i = 0; static_cast(i) < _available_pages.size(); i++ ) { _addPage(_available_pages[i]); } @@ -321,13 +229,15 @@ void ColorNotebook::init() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _setCurrentPage(prefs->getInt("/colorselector/page", 0)); + + /* Commented out: see comment at the bottom of the header file { gboolean found = FALSE; _popup = gtk_menu_new(); GtkMenu *menu = GTK_MENU (_popup); - for ( i = 0; i < _trackerList->len; i++ ) + for (int i = 0; i < _trackerList->len; i++ ) { SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (g_ptr_array_index (_trackerList, i)); if ( entry ) @@ -365,6 +275,7 @@ void ColorNotebook::init() gtk_widget_set_sensitive (_btn, FALSE); } } + */ row++; @@ -403,7 +314,6 @@ void ColorNotebook::init() GtkWidget *picker = gtk_image_new_from_icon_name ("color-picker", GTK_ICON_SIZE_SMALL_TOOLBAR); _btn_picker = gtk_button_new (); gtk_button_set_relief(GTK_BUTTON(_btn_picker), GTK_RELIEF_NONE); - gtk_widget_show (_btn); gtk_container_add (GTK_CONTAINER (_btn_picker), picker); gtk_widget_set_tooltip_text (_btn_picker, _("Pick colors from image")); gtk_box_pack_start(GTK_BOX(rgbabox), _btn_picker, FALSE, FALSE, 2); @@ -460,12 +370,6 @@ static void sp_color_notebook_dispose(GObject *object) ColorNotebook::~ColorNotebook() { - if ( _trackerList ) - { - g_ptr_array_free (_trackerList, TRUE); - _trackerList = 0; - } - if ( _switchId ) { if ( _book ) @@ -670,7 +574,7 @@ void ColorNotebook::_setCurrentPage(int i) { gtk_notebook_set_current_page(GTK_NOTEBOOK(_book), i); - if (_buttons && _trackerList && (static_cast(i) < _trackerList->len) ) { + if (_buttons && (static_cast(i) < _available_pages.size())) { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(_buttons[i]), TRUE); } } @@ -744,48 +648,6 @@ void ColorNotebook::_entryModified (SPColorSelector *csel, SPColorNotebook *colo nb->_updateInternals( color, alpha, nb->_dragging ); } -GtkWidget* ColorNotebook::addPage(GType page_type, guint submode) -{ - GtkWidget *page; - - page = sp_color_selector_new( page_type ); - if ( page ) - { - GtkWidget* tab_label = 0; - SPColorSelector* csel; - - csel = SP_COLOR_SELECTOR (page); - if ( submode > 0 ) - { - csel->base->setSubmode( submode ); - } - gtk_widget_show (page); - int index = csel->base ? csel->base->getSubmode() : 0; - const gchar* str = _(SP_COLOR_SELECTOR_GET_CLASS (csel)->name[index]); -// g_message( "Hitting up for tab for '%s'", str ); - tab_label = gtk_label_new(_(str)); - gint pageNum = gtk_notebook_append_page( GTK_NOTEBOOK (_book), page, tab_label ); - - // Add a button for each page - _buttons[pageNum] = gtk_radio_button_new_with_label(NULL, _(str)); - gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[pageNum]), FALSE); - if (pageNum > 0) { - GSList *group = gtk_radio_button_get_group (GTK_RADIO_BUTTON(_buttons[0])); - gtk_radio_button_set_group (GTK_RADIO_BUTTON(_buttons[pageNum]), group); - } - gtk_widget_show (_buttons[pageNum]); - gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[pageNum], TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (_buttons[pageNum]), "clicked", G_CALLBACK (_buttonClicked), _csel); - g_signal_connect (G_OBJECT (page), "grabbed", G_CALLBACK (_entryGrabbed), _csel); - g_signal_connect (G_OBJECT (page), "dragged", G_CALLBACK (_entryDragged), _csel); - g_signal_connect (G_OBJECT (page), "released", G_CALLBACK (_entryReleased), _csel); - g_signal_connect (G_OBJECT (page), "changed", G_CALLBACK (_entryChanged), _csel); - } - - return page; -} - GtkWidget* ColorNotebook::_addPage(Page& page) { Gtk::Widget *selector_widget; @@ -818,6 +680,9 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { return selector_widget->gobj(); } + +/* Commented out: see comment at the bottom of the header file + GtkWidget* ColorNotebook::getPage(GType page_type, guint submode) { gint count = 0; @@ -873,6 +738,49 @@ void ColorNotebook::removePage( GType page_type, guint submode ) } } + +static gint sp_color_notebook_menu_handler( GtkWidget *widget, GdkEvent *event ) +{ + if (event->type == GDK_BUTTON_PRESS) + { + SPColorSelector* csel = SP_COLOR_SELECTOR(widget); + (dynamic_cast(csel->base))->menuHandler( event ); + + // Tell calling code that we have handled this event; the buck + // stops here. + return TRUE; + } + + //Tell calling code that we have not handled this event; pass it on. + return FALSE; +} + +gint ColorNotebook::menuHandler( GdkEvent* event ) +{ + GdkEventButton *bevent = (GdkEventButton *) event; + gtk_menu_popup (GTK_MENU( _popup ), NULL, NULL, NULL, NULL, + bevent->button, bevent->time); + return TRUE; +} + +static void sp_color_notebook_menuitem_response (GtkMenuItem *menuitem, gpointer user_data) +{ + gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)); + SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (user_data); + if ( entry ) + { + if ( active ) + { + (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->addPage(entry->type, entry->submode); + } + else + { + (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->removePage(entry->type, entry->submode); + } + } +} +*/ + /* Local Variables: mode:c++ diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index 5db278e3f..f688d9210 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -42,12 +42,6 @@ public: SPColorSelector* getCurrentSelector(); void switchPage( GtkNotebook *notebook, GtkWidget *page, guint page_num ); - GtkWidget* addPage( GType page_type, guint submode ); - void removePage( GType page_type, guint submode ); - GtkWidget* getPage( GType page_type, guint submode ); - - gint menuHandler( GdkEvent* event ); - protected: struct Page { Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); @@ -88,15 +82,27 @@ protected: #endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) GtkWidget *_btn_picker; GtkWidget *_p; /* Color preview */ - GtkWidget *_btn; - GtkWidget *_popup; - GPtrArray *_trackerList; boost::ptr_vector _available_pages; private: // By default, disallow copy constructor and assignment operator ColorNotebook( const ColorNotebook& obj ); ColorNotebook& operator=( const ColorNotebook& obj ); + + /* Following methods support the pop-up menu to choose + * active color selectors (notebook tabs). This function + * is not used in Inkscape. If you want to re-enable it you have to + * * port the code to c++ + * * fix it so it remembers its settings in prefs + * * fix it so it does not take that much space (entire vertical column!) + * Current class design supports dynamic addtion and removal of color selectors + * + GtkWidget* addPage( GType page_type, guint submode ); + void removePage( GType page_type, guint submode ); + GtkWidget* getPage( GType page_type, guint submode ); + gint menuHandler( GdkEvent* event ); + + */ }; -- cgit v1.2.3 From 7a205911659013dea26f1554158cc050fdff20bc Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 30 May 2014 18:47:23 +0200 Subject: changed coding style of SelectedColor (bzr r13341.6.30) --- src/ui/selected-color.cpp | 32 +++++++++++++++++++++----------- src/ui/selected-color.h | 46 +++++++++++++++++++++++++++------------------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index f61c3b7f8..296b15796 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -19,7 +19,7 @@ namespace Inkscape { namespace UI { -double SelectedColor::_epsilon = 1e-4; +double const SelectedColor::_EPSILON = 1e-4; SelectedColor::SelectedColor() : _color(0) @@ -33,28 +33,28 @@ SelectedColor::~SelectedColor() { } -void SelectedColor::set_color(const SPColor& color) +void SelectedColor::setColor(SPColor const &color) { - set_color_alpha( color, _alpha ); + setColorAlpha( color, _alpha ); } -SPColor SelectedColor::get_color() const +SPColor SelectedColor::color() const { return _color; } -void SelectedColor::set_alpha(gfloat alpha) +void SelectedColor::setAlpha(gfloat alpha) { g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); - set_color_alpha( _color, alpha ); + setColorAlpha( _color, alpha ); } -gfloat SelectedColor::get_alpha() const +gfloat SelectedColor::alpha() const { return _alpha; } -void SelectedColor::set_color_alpha(const SPColor& color, gfloat alpha, bool emit) +void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit) { #ifdef DUMP_CHANGE_INFO g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); @@ -70,8 +70,8 @@ void SelectedColor::set_color_alpha(const SPColor& color, gfloat alpha, bool emi ); #endif - if ( _virgin || !color.isClose( _color, _epsilon ) || - (fabs((_alpha) - (alpha)) >= _epsilon )) { + if ( _virgin || !color.isClose( _color, _EPSILON ) || + (fabs((_alpha) - (alpha)) >= _EPSILON )) { _virgin = false; @@ -89,7 +89,7 @@ void SelectedColor::set_color_alpha(const SPColor& color, gfloat alpha, bool emi } } -void SelectedColor::get_color_alpha(SPColor &color, gfloat &alpha) const { +void SelectedColor::colorAlpha(SPColor &color, gfloat &alpha) const { color = _color; alpha = _alpha; } @@ -97,3 +97,13 @@ void SelectedColor::get_color_alpha(SPColor &color, gfloat &alpha) const { } } +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index a56ee6afb..08b84b66c 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -33,47 +33,55 @@ public: SelectedColor(); virtual ~SelectedColor(); - void set_color( const SPColor& color ); - SPColor get_color() const; + void setColor(SPColor const &color); + SPColor color() const; - void set_alpha( gfloat alpha ); - gfloat get_alpha() const; + void setAlpha(gfloat alpha); + gfloat alpha() const; - void set_color_alpha( const SPColor& color, gfloat alpha, bool emit = false ); - void get_color_alpha( SPColor &color, gfloat &alpha ) const; + void setColorAlpha(SPColor const &color, gfloat alpha, bool emit = false); + void colorAlpha(SPColor &color, gfloat &alpha) const; sigc::signal signal_changed; private: // By default, disallow copy constructor and assignment operator - SelectedColor( const SelectedColor& obj ); - SelectedColor& operator=( const SelectedColor& obj ); + SelectedColor(SelectedColor const &obj); + SelectedColor& operator=(SelectedColor const &obj); - SPColor _color; - /** - * Color alpha value guaranteed to be in [0, 1]. - */ - gfloat _alpha; + SPColor _color; + /** + * Color alpha value guaranteed to be in [0, 1]. + */ + gfloat _alpha; /** * This flag is true if no color is set yet */ bool _virgin; - static double _epsilon; + static double const _EPSILON; }; - class ColorSelectorFactory { public: - virtual ~ColorSelectorFactory() {} + virtual ~ColorSelectorFactory() { + } - virtual Gtk::Widget* createWidget(SelectedColor& color) const = 0; + virtual Gtk::Widget* createWidget(SelectedColor &color) const = 0; virtual Glib::ustring modeName() const = 0; }; - } } #endif - +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From b0e9181bacdad19055532a2620f5390815b91727 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Fri, 30 May 2014 22:53:40 +0200 Subject: added ColorEntry class, refactored SPColorNotebook to use it (bzr r13341.6.31) --- src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-entry.cpp | 115 ++++++++++++++++++++++++++++++++++++++ src/ui/widget/color-entry.h | 59 +++++++++++++++++++ src/widgets/sp-color-notebook.cpp | 104 +++++++++------------------------- src/widgets/sp-color-notebook.h | 6 +- 5 files changed, 206 insertions(+), 80 deletions(-) create mode 100644 src/ui/widget/color-entry.cpp create mode 100644 src/ui/widget/color-entry.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index 6deaf6671..bad3342b1 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -6,6 +6,8 @@ ink_common_sources += \ ui/widget/attr-widget.h \ ui/widget/button.h \ ui/widget/button.cpp \ + ui/widget/color-entry.cpp \ + ui/widget/color-entry.h \ ui/widget/color-picker.cpp \ ui/widget/color-picker.h \ ui/widget/color-preview.cpp \ diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp new file mode 100644 index 000000000..223c86fd3 --- /dev/null +++ b/src/ui/widget/color-entry.cpp @@ -0,0 +1,115 @@ +/** @file + * Entry widget for typing color value in css form + *//* + * Authors: + * Tomasz Boczkowski + * + * Copyright (C) 2014 Authors + * 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 "color-entry.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +ColorEntry::ColorEntry(SelectedColor &color) + : _color(color) + , _updating(false) +{ + _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); + _onColorChanged(); + + set_max_length(8); + set_width_chars(8); + set_tooltip_text(_("Hexadecimal RGBA value of the color")); +} + +ColorEntry::~ColorEntry() { + _color_changed_connection.disconnect(); +} + +void ColorEntry::on_changed() { + if (_updating) { + return; + } + + Glib::ustring text = get_text(); + bool changed = false; + + //Coerce the value format to eight hex digits + if (!text.empty() && text[0] == '#') { + changed = true; + text.erase(0, 1); + if (text.size() == 6) { + // it was a standard RGB hex + unsigned int alph = SP_COLOR_F_TO_U(_color.alpha()); + Glib::ustring tmp = Glib::ustring::format(std::hex, std::setw(2), std::setfill(L'0'), alph); + text += tmp; + } + } + + gchar* str = g_strdup(text.c_str()); + gchar* end = 0; + guint64 rgba = g_ascii_strtoull(str, &end, 16); + if (end != str) { + ptrdiff_t len = end - str; + if (len < 8) { + rgba = rgba << (4 * (8 - len)); + } + _updating = true; + if (changed) { + set_text(str); + } + SPColor color(rgba); + _color.setColorAlpha(color, SP_RGBA32_A_F(rgba), true); + _updating = false; + } + g_free(str); +} + + +void ColorEntry::_onColorChanged() { + if (_updating) { + return; + } + + SPColor color = _color.color(); + gdouble alpha = _color.alpha(); + + guint32 rgba = color.toRGBA32( alpha ); + Glib::ustring text = Glib::ustring::format(std::hex, std::setw(8), std::setfill(L'0'), rgba); + + Glib::ustring old_text = get_text(); + if (old_text != text) { + _updating = true; + set_text(text); + _updating = false; + } +} + +} +} +} +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h new file mode 100644 index 000000000..742324337 --- /dev/null +++ b/src/ui/widget/color-entry.h @@ -0,0 +1,59 @@ +/** @file + * Entry widget for typing color value in css form + *//* + * Authors: + * Tomasz Boczkowski + * + * Copyright (C) 2014 Authors + * Released under GNU GPL, read the file 'COPYING' for more information + */ + +#ifndef SEEN_COLOR_ENTRY_H +#define SEEN_COLOR_ENTRY_H_ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include "ui/selected-color.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorEntry: public Gtk::Entry { +public: + ColorEntry(SelectedColor &color); + virtual ~ColorEntry(); + +protected: + void on_changed(); + +private: + void _onColorChanged(); + + SelectedColor &_color; + sigc::connection _color_changed_connection; + bool _updating; +}; + +} +} +} + +#endif +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 364e81ae5..ac110b86c 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -41,9 +41,12 @@ #include "cms-system.h" #include "tools-switch.h" #include "ui/tools/tool-base.h" +#include "ui/widget/color-entry.h" using Inkscape::CMSSystem; +using namespace Inkscape::UI::Widget; + struct SPColorNotebookTracker { const gchar* name; const gchar* className; @@ -156,8 +159,7 @@ void ColorNotebook::init() { guint row = 0; - _updating = FALSE; - _updatingrgba = FALSE; + _updating = false; _book = gtk_notebook_new (); gtk_widget_show (_book); @@ -324,13 +326,10 @@ void ColorNotebook::init() gtk_misc_set_alignment (GTK_MISC (_rgbal), 1.0, 0.5); gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); - _rgbae = gtk_entry_new (); - sp_dialog_defocus_on_enter (_rgbae); - gtk_entry_set_max_length (GTK_ENTRY (_rgbae), 8); - gtk_entry_set_width_chars (GTK_ENTRY (_rgbae), 8); - gtk_widget_set_tooltip_text (_rgbae, _("Hexadecimal RGBA value of the color")); - gtk_box_pack_start(GTK_BOX(rgbabox), _rgbae, FALSE, FALSE, 0); - gtk_label_set_mnemonic_widget (GTK_LABEL(_rgbal), _rgbae); + ColorEntry* rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); + sp_dialog_defocus_on_enter (GTK_WIDGET(rgba_entry->gobj())); + gtk_box_pack_start(GTK_BOX(rgbabox), GTK_WIDGET(rgba_entry->gobj()), FALSE, FALSE, 0); + gtk_label_set_mnemonic_widget (GTK_LABEL(_rgbal), GTK_WIDGET(rgba_entry->gobj())); sp_set_font_size_smaller (rgbabox); gtk_widget_show_all (rgbabox); @@ -359,7 +358,7 @@ void ColorNotebook::init() _switchId = g_signal_connect(G_OBJECT (_book), "switch-page", G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); - _entryId = g_signal_connect (G_OBJECT (_rgbae), "changed", G_CALLBACK (ColorNotebook::_rgbaEntryChangedHook), _csel); + _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); } static void sp_color_notebook_dispose(GObject *object) @@ -449,13 +448,13 @@ ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, void ColorNotebook::_colorChanged() { + _selected_color.setColorAlpha(_color, _alpha, true); + SPColorSelector* cselPage = getCurrentSelector(); if ( cselPage ) { cselPage->base->setColorAlpha( _color, _alpha ); } - - _updateRgbaEntry( _color, _alpha ); } void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /*colorbook*/) @@ -466,52 +465,6 @@ void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /* Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); } -void ColorNotebook::_rgbaEntryChangedHook(GtkEntry *entry, SPColorNotebook *colorbook) -{ - (dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base))->_rgbaEntryChanged( entry ); -} - -void ColorNotebook::_rgbaEntryChanged(GtkEntry* entry) -{ - if (_updating) return; - if (_updatingrgba) return; - - const gchar *t = gtk_entry_get_text( entry ); - - if (t) { - Glib::ustring text = t; - bool changed = false; - if (!text.empty() && text[0] == '#') { - changed = true; - text.erase(0,1); - if (text.size() == 6) { - // it was a standard RGB hex - unsigned int alph = SP_COLOR_F_TO_U(_alpha); - gchar* tmp = g_strdup_printf("%02x", alph); - text += tmp; - g_free(tmp); - } - } - gchar* str = g_strdup(text.c_str()); - gchar* end = 0; - guint64 rgba = g_ascii_strtoull( str, &end, 16 ); - if ( end != str ) { - ptrdiff_t len = end - str; - if ( len < 8 ) { - rgba = rgba << ( 4 * ( 8 - len ) ); - } - _updatingrgba = TRUE; - if ( changed ) { - gtk_entry_set_text( entry, str ); - } - SPColor color( rgba ); - setColorAlpha( color, SP_RGBA32_A_F(rgba), true ); - _updatingrgba = FALSE; - } - g_free(str); - } -} - // TODO pass in param so as to avoid the need for SP_ACTIVE_DOCUMENT void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) { @@ -550,24 +503,6 @@ void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) } } #endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - if ( !_updatingrgba ) - { - gchar s[32]; - guint32 rgba; - - /* Update RGBA entry */ - rgba = color.toRGBA32( alpha ); - - g_snprintf (s, 32, "%08x", rgba); - const gchar* oldText = gtk_entry_get_text( GTK_ENTRY( _rgbae ) ); - if ( strcmp( oldText, s ) != 0 ) - { - g_signal_handler_block( _rgbae, _entryId ); - gtk_entry_set_text( GTK_ENTRY(_rgbae), s ); - g_signal_handler_unblock( _rgbae, _entryId ); - } - } } void ColorNotebook::_setCurrentPage(int i) @@ -644,10 +579,25 @@ void ColorNotebook::_entryModified (SPColorSelector *csel, SPColorNotebook *colo gfloat alpha = 1.0; csel->base->getColorAlpha( color, alpha ); - nb->_updateRgbaEntry( color, alpha ); + + nb->_updating = true; + nb->_selected_color.setColorAlpha(color, alpha, true); + nb->_updating = false; nb->_updateInternals( color, alpha, nb->_dragging ); } +void ColorNotebook::_onSelectedColorChanged() { + if (_updating) { + return; + } + + SPColor color; + gfloat alpha = 1.0; + + _selected_color.colorAlpha(color, alpha); + _updateInternals(color, alpha, _dragging); +} + GtkWidget* ColorNotebook::_addPage(Page& page) { Gtk::Widget *selector_widget; diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index f688d9210..9ab98f1e9 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -50,7 +50,6 @@ protected: bool enabled_full; }; - static void _rgbaEntryChangedHook( GtkEntry* entry, SPColorNotebook *colorbook ); static void _entryGrabbed( SPColorSelector *csel, SPColorNotebook *colorbook ); static void _entryDragged( SPColorSelector *csel, SPColorNotebook *colorbook ); static void _entryReleased( SPColorSelector *csel, SPColorNotebook *colorbook ); @@ -61,7 +60,8 @@ protected: virtual void _colorChanged(); - void _rgbaEntryChanged( GtkEntry* entry ); + virtual void _onSelectedColorChanged(); + void _updateRgbaEntry( const SPColor& color, gfloat alpha ); void _setCurrentPage(int i); @@ -76,7 +76,7 @@ protected: GtkWidget *_book; GtkWidget *_buttonbox; GtkWidget **_buttons; - GtkWidget *_rgbal, *_rgbae; /* RGBA entry */ + GtkWidget *_rgbal; /* RGBA entry */ #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) GtkWidget *_box_outofgamut, *_box_colormanaged, *_box_toomuchink; #endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -- cgit v1.2.3 From 746ade6352656a8db136039a1dd9cff9645ed9f4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 09:14:19 +0200 Subject: ColorSlider coding style (bzr r13341.6.32) --- src/ui/widget/color-slider.cpp | 38 ++++++++++++++++----------------- src/ui/widget/color-slider.h | 32 +++++++++++++++++---------- src/widgets/sp-color-icc-selector.cpp | 8 +++---- src/widgets/sp-color-scales.cpp | 30 +++++++++++++------------- src/widgets/sp-color-wheel-selector.cpp | 6 +++--- 5 files changed, 62 insertions(+), 52 deletions(-) diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index fc64fad6f..711942e28 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -76,7 +76,7 @@ ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) _b1 = 0xa0; _bmask = 0x08; - set_adjustment(adjustment); + setAdjustment(adjustment); } ColorSlider::~ColorSlider() { @@ -95,7 +95,7 @@ ColorSlider::~ColorSlider() { void ColorSlider::on_realize() { set_realized(); - if(!_refGdkWindow) + if(!_gdk_window) { GdkWindowAttr attributes; gint attributes_mask; @@ -126,10 +126,10 @@ void ColorSlider::on_realize() { attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; #endif - _refGdkWindow = Gdk::Window::create(get_parent_window(), &attributes, + _gdk_window = Gdk::Window::create(get_parent_window(), &attributes, attributes_mask); - set_window(_refGdkWindow); - _refGdkWindow->set_user_data(gobj()); + set_window(_gdk_window); + _gdk_window->set_user_data(gobj()); #if !GTK_CHECK_VERSION(3,0,0) style_attach(); @@ -138,7 +138,7 @@ void ColorSlider::on_realize() { } void ColorSlider::on_unrealize() { - _refGdkWindow.reset(); + _gdk_window.reset(); Gtk::Widget::on_unrealize(); } @@ -147,7 +147,7 @@ void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { set_allocation(allocation); if (get_realized()) { - _refGdkWindow->move_resize(allocation.get_x(), allocation.get_y(), + _gdk_window->move_resize(allocation.get_x(), allocation.get_y(), allocation.get_width(), allocation.get_height()); } } @@ -192,7 +192,7 @@ bool ColorSlider::on_expose_event(GdkEventExpose* event) { bool result = false; if (get_is_drawable()) { - Cairo::RefPtr cr = _refGdkWindow->create_cairo_context(); + Cairo::RefPtr cr = _gdk_window->create_cairo_context(); result = on_draw(cr); } return result; @@ -218,7 +218,7 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event) { #if GTK_CHECK_VERSION(3,0,0) gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), - _refGdkWindow->gobj(), + _gdk_window->gobj(), GDK_OWNERSHIP_NONE, FALSE, static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), @@ -272,9 +272,9 @@ bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { } #if GTK_CHECK_VERSION(3,0,0) -void ColorSlider::set_adjustment(Glib::RefPtr adjustment) { +void ColorSlider::setAdjustment(Glib::RefPtr adjustment) { #else -void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { +void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) { #endif if (!adjustment) { #if GTK_CHECK_VERSION(3,0,0) @@ -298,21 +298,21 @@ void ColorSlider::set_adjustment(Gtk::Adjustment *adjustment) { _adjustment = adjustment; _adjustment_changed_connection = _adjustment->signal_changed().connect( - sigc::mem_fun(this, &ColorSlider::_on_adjustment_changed)); + sigc::mem_fun(this, &ColorSlider::_onAdjustmentChanged)); _adjustment_value_changed_connection = _adjustment->signal_value_changed().connect( - sigc::mem_fun(this, &ColorSlider::_on_adjustment_value_changed)); + sigc::mem_fun(this, &ColorSlider::_onAdjustmentValueChanged)); _value = ColorScales::getScaled(_adjustment->gobj()); - _on_adjustment_changed(); + _onAdjustmentChanged(); } } -void ColorSlider::_on_adjustment_changed() { +void ColorSlider::_onAdjustmentChanged() { queue_draw(); } -void ColorSlider::_on_adjustment_value_changed() { +void ColorSlider::_onAdjustmentValueChanged() { if (_value != ColorScales::getScaled( _adjustment->gobj() )) { gint cx, cy, cw, ch; #if GTK_CHECK_VERSION(3,0,0) @@ -346,7 +346,7 @@ void ColorSlider::_on_adjustment_value_changed() { } } -void ColorSlider::set_colors(guint32 start, guint32 mid, guint32 end) { +void ColorSlider::setColors(guint32 start, guint32 mid, guint32 end) { // Remove any map, if set _map = 0; @@ -368,13 +368,13 @@ void ColorSlider::set_colors(guint32 start, guint32 mid, guint32 end) { queue_draw(); } -void ColorSlider::set_map(const guchar *map) { +void ColorSlider::setMap(const guchar *map) { _map = const_cast(map); queue_draw(); } -void ColorSlider::set_background(guint dark, guint light, guint size) { +void ColorSlider::setBackground(guint dark, guint light, guint size) { _b0 = dark; _b1 = light; _bmask = size; diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index bbc14afc9..ef54c84e6 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -1,6 +1,3 @@ -#ifndef __SP_COLOR_SLIDER_H__ -#define __SP_COLOR_SLIDER_H__ - /* Author: * Lauris Kaplinski * @@ -9,6 +6,9 @@ * This code is in public domain */ +#ifndef SEEN_COLOR_SLIDER_H +#define SEEN_COLOR_SLIDER_H + #ifdef HAVE_CONFIG_H # include #endif @@ -40,16 +40,16 @@ public: ~ColorSlider(); #if GTK_CHECK_VERSION(3,0,0) - void set_adjustment(Glib::RefPtr adjustment); + void setAdjustment(Glib::RefPtr adjustment); #else - void set_adjustment(Gtk::Adjustment *adjustment); + void setAdjustment(Gtk::Adjustment *adjustment); #endif - void set_colors(guint32 start, guint32 mid, guint32 end); + void setColors(guint32 start, guint32 mid, guint32 end); - void set_map(const guchar* map); + void setMap(const guchar* map); - void set_background(guint dark, guint light, guint size); + void setBackground(guint dark, guint light, guint size); sigc::signal signal_grabbed; sigc::signal signal_dragged; @@ -76,8 +76,8 @@ protected: #endif private: - void _on_adjustment_changed(); - void _on_adjustment_value_changed(); + void _onAdjustmentChanged(); + void _onAdjustmentValueChanged(); bool _dragging; @@ -98,7 +98,7 @@ private: gint _mapsize; guchar *_map; - Glib::RefPtr _refGdkWindow; + Glib::RefPtr _gdk_window; }; }//namespace Widget @@ -106,3 +106,13 @@ private: }//namespace Inkscape #endif +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 69818ba99..cd1586661 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -575,7 +575,7 @@ void ColorICCSelector::init() attachToGridOrTable(t, _impl->_slider->gobj(), 1, row, 1, 1, true); - _impl->_slider->set_colors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), + _impl->_slider->setColors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); @@ -906,7 +906,7 @@ void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); gtk_widget_set_tooltip_text( _compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); - _compUI[i]._slider->set_colors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), + _compUI[i]._slider->setColors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); /* @@ -982,7 +982,7 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); if ( trans ) { cmsDoTransform( trans, scratch, _compUI[i]._map, 1024 ); - _compUI[i]._slider->set_map(_compUI[i]._map); + _compUI[i]._slider->setMap(_compUI[i]._map); } } } @@ -997,7 +997,7 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) guint32 mid = _owner->_color.toRGBA32( 0x7f ); guint32 end = _owner->_color.toRGBA32( 0xff ); - _slider->set_colors(start, mid, end); + _slider->setColors(start, mid, end); } diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp index d7466be98..3d9de650c 100644 --- a/src/widgets/sp-color-scales.cpp +++ b/src/widgets/sp-color-scales.cpp @@ -446,7 +446,7 @@ void ColorScales::setMode(SPColorScalesMode mode) gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); _s[3]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->set_map(NULL); + _s[0]->setMap(NULL); gtk_widget_hide (_l[4]); _s[4]->hide(); gtk_widget_hide (_b[4]); @@ -472,7 +472,7 @@ void ColorScales::setMode(SPColorScalesMode mode) gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); _s[3]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->set_map((guchar *)(sp_color_scales_hue_map())); + _s[0]->setMap((guchar *)(sp_color_scales_hue_map())); gtk_widget_hide (_l[4]); _s[4]->hide(); gtk_widget_hide (_b[4]); @@ -503,7 +503,7 @@ void ColorScales::setMode(SPColorScalesMode mode) gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[4]), _("_A:")); _s[4]->set_tooltip_text(_("Alpha (opacity)")); gtk_widget_set_tooltip_text (_b[4], _("Alpha (opacity)")); - _s[0]->set_map(NULL); + _s[0]->setMap(NULL); gtk_widget_show (_l[4]); _s[4]->show(); gtk_widget_show (_b[4]); @@ -625,25 +625,25 @@ void ColorScales::_updateSliders( guint channels ) case SP_COLOR_SCALES_MODE_RGB: if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { /* Update red */ - _s[0]->set_colors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), + _s[0]->setColors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); } if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { /* Update green */ - _s[1]->set_colors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), + _s[1]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); } if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { /* Update blue */ - _s[2]->set_colors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), + _s[2]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); } if (channels != CSC_CHANNEL_A) { /* Update alpha */ - _s[3]->set_colors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), + _s[3]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); } @@ -655,7 +655,7 @@ void ColorScales::_updateSliders( guint channels ) sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); - _s[1]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } @@ -664,14 +664,14 @@ void ColorScales::_updateSliders( guint channels ) sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); - _s[2]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if (channels != CSC_CHANNEL_A) { /* Update alpha */ sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - _s[3]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); } @@ -682,7 +682,7 @@ void ColorScales::_updateSliders( guint channels ) sp_color_cmyk_to_rgb_floatv (rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[0]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[0]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } @@ -691,7 +691,7 @@ void ColorScales::_updateSliders( guint channels ) sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); - _s[1]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } @@ -700,7 +700,7 @@ void ColorScales::_updateSliders( guint channels ) sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); - _s[2]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } @@ -709,14 +709,14 @@ void ColorScales::_updateSliders( guint channels ) sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); - _s[3]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); } if (channels != CSC_CHANNEL_CMYKA) { /* Update alpha */ sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[4]->set_colors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + _s[4]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); } diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp index 15177377d..2b448e075 100644 --- a/src/widgets/sp-color-wheel-selector.cpp +++ b/src/widgets/sp-color-wheel-selector.cpp @@ -181,7 +181,7 @@ void ColorWheelSelector::init() gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); #endif - _slider->set_colors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), + _slider->setColors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); @@ -262,7 +262,7 @@ void ColorWheelSelector::_colorChanged() guint32 mid = _color.toRGBA32( 0x7f ); guint32 end = _color.toRGBA32( 0xff ); - _slider->set_colors(start, mid, end); + _slider->setColors(start, mid, end); ColorScales::setScaled(_adj, _alpha); @@ -337,7 +337,7 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec guint32 mid = color.toRGBA32( 0x7f ); guint32 end = color.toRGBA32( 0xff ); - wheelSelector->_slider->set_colors(start, mid, end); + wheelSelector->_slider->setColors(start, mid, end); wheelSelector->_preserve_icc(&color); wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); -- cgit v1.2.3 From e8f6b534a6db5c64b5d3a1fc9e4f1f691cb04ecc Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 10:35:07 +0200 Subject: added dragged, released, grabbed signals to SelectedColor (bzr r13341.6.33) --- src/ui/selected-color.cpp | 22 +++++++++++++++++++++- src/ui/selected-color.h | 6 ++++++ src/ui/widget/color-entry.cpp | 2 ++ src/ui/widget/color-entry.h | 1 + 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 296b15796..1be171a6b 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -25,6 +25,7 @@ SelectedColor::SelectedColor() : _color(0) , _alpha(1.0) , _virgin(true) + , _held(false) { } @@ -79,7 +80,11 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit) _alpha = alpha; if (emit) { - signal_changed.emit(); + if (_held) { + signal_dragged.emit(); + } else { + signal_changed.emit(); + } } #ifdef DUMP_CHANGE_INFO } else { @@ -94,6 +99,21 @@ void SelectedColor::colorAlpha(SPColor &color, gfloat &alpha) const { alpha = _alpha; } +void SelectedColor::setHeld(bool held) { + bool grabbed = held && !_held; + bool released = !held && _held; + + _held = held; + + if (grabbed) { + signal_grabbed.emit(); + } + + if (released) { + signal_released.emit(); + } +} + } } diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index 08b84b66c..ec0cc55e3 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -42,6 +42,11 @@ public: void setColorAlpha(SPColor const &color, gfloat alpha, bool emit = false); void colorAlpha(SPColor &color, gfloat &alpha) const; + void setHeld(bool held); + + sigc::signal signal_grabbed; + sigc::signal signal_dragged; + sigc::signal signal_released; sigc::signal signal_changed; private: // By default, disallow copy constructor and assignment operator @@ -54,6 +59,7 @@ private: */ gfloat _alpha; + bool _held; /** * This flag is true if no color is set yet */ diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index 223c86fd3..56fd6080e 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -30,6 +30,7 @@ ColorEntry::ColorEntry(SelectedColor &color) , _updating(false) { _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); + _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); _onColorChanged(); set_max_length(8); @@ -39,6 +40,7 @@ ColorEntry::ColorEntry(SelectedColor &color) ColorEntry::~ColorEntry() { _color_changed_connection.disconnect(); + _color_dragged_connection.disconnect(); } void ColorEntry::on_changed() { diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index 742324337..148b5dfe9 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -39,6 +39,7 @@ private: SelectedColor &_color; sigc::connection _color_changed_connection; + sigc::connection _color_dragged_connection; bool _updating; }; -- cgit v1.2.3 From ba8232e27fbff22f2af10c39a66c2a084bacbfb4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 10:48:29 +0200 Subject: SPColorWheelSelector c++-sification: moved to ui/widgets (bzr r13341.6.34) --- src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-wheel-selector.cpp | 366 +++++++++++++++++++++++++++++++ src/ui/widget/color-wheel-selector.h | 111 ++++++++++ src/widgets/Makefile_insert | 2 - src/widgets/sp-color-notebook.cpp | 2 +- src/widgets/sp-color-wheel-selector.cpp | 367 -------------------------------- src/widgets/sp-color-wheel-selector.h | 111 ---------- 7 files changed, 480 insertions(+), 481 deletions(-) create mode 100644 src/ui/widget/color-wheel-selector.cpp create mode 100644 src/ui/widget/color-wheel-selector.h delete mode 100644 src/widgets/sp-color-wheel-selector.cpp delete mode 100644 src/widgets/sp-color-wheel-selector.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index bad3342b1..97625f04e 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -8,6 +8,8 @@ ink_common_sources += \ ui/widget/button.cpp \ ui/widget/color-entry.cpp \ ui/widget/color-entry.h \ + ui/widget/color-wheel-selector.cpp \ + ui/widget/color-wheel-selector.h \ ui/widget/color-picker.cpp \ ui/widget/color-picker.h \ ui/widget/color-preview.cpp \ diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp new file mode 100644 index 000000000..134232813 --- /dev/null +++ b/src/ui/widget/color-wheel-selector.cpp @@ -0,0 +1,366 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "color-wheel-selector.h" + +#include +#include +#include +#include +#include "dialogs/dialog-events.h" +#include "widgets/sp-color-scales.h" +#include "svg/svg-icc-color.h" +#include "ui/widget/color-slider.h" +#include "ui/widget/gimpcolorwheel.h" + +G_BEGIN_DECLS + +static void sp_color_wheel_selector_class_init (SPColorWheelSelectorClass *klass); +static void sp_color_wheel_selector_init (SPColorWheelSelector *cs); +static void sp_color_wheel_selector_dispose(GObject *object); + +static void sp_color_wheel_selector_show_all (GtkWidget *widget); +static void sp_color_wheel_selector_hide(GtkWidget *widget); + + +G_END_DECLS + +static SPColorSelectorClass *parent_class; + +#define XPAD 4 +#define YPAD 1 + + +const gchar* ColorWheelSelector::MODE_NAME = N_("Wheel"); + +GType +sp_color_wheel_selector_get_type (void) +{ + static GType type = 0; + if (!type) { + static const GTypeInfo info = { + sizeof (SPColorWheelSelectorClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) sp_color_wheel_selector_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (SPColorWheelSelector), + 0, /* n_preallocs */ + (GInstanceInitFunc) sp_color_wheel_selector_init, + 0, /* value_table */ + }; + + type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, + "SPColorWheelSelector", + &info, + static_cast< GTypeFlags > (0) ); + } + return type; +} + +static void sp_color_wheel_selector_class_init(SPColorWheelSelectorClass *klass) +{ + static const gchar* nameset[] = {N_("Wheel"), 0}; + GObjectClass *object_class = G_OBJECT_CLASS(klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); + SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); + + parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); + + selector_class->name = nameset; + selector_class->submode_count = 1; + + object_class->dispose = sp_color_wheel_selector_dispose; + + widget_class->show_all = sp_color_wheel_selector_show_all; + widget_class->hide = sp_color_wheel_selector_hide; +} + +ColorWheelSelector::ColorWheelSelector( SPColorSelector* csel ) + : ColorSelector( csel ), + _updating( FALSE ), + _dragging( FALSE ), + _adj(0), + _wheel(0), + _slider(0), + _sbtn(0), + _label(0) +{ +} + +ColorWheelSelector::~ColorWheelSelector() +{ + _adj = 0; + _wheel = 0; + _sbtn = 0; + _label = 0; +} + +void sp_color_wheel_selector_init (SPColorWheelSelector *cs) +{ + SP_COLOR_SELECTOR(cs)->base = new ColorWheelSelector( SP_COLOR_SELECTOR(cs) ); + + if ( SP_COLOR_SELECTOR(cs)->base ) + { + SP_COLOR_SELECTOR(cs)->base->init(); + } +} + +void ColorWheelSelector::init() +{ + gint row = 0; + + _updating = FALSE; + _dragging = FALSE; + +#if GTK_CHECK_VERSION(3,0,0) + GtkWidget *t = gtk_grid_new(); +#else + GtkWidget *t = gtk_table_new (5, 3, FALSE); +#endif + + gtk_widget_show (t); + gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 0); + + /* Create components */ + row = 0; + + _wheel = gimp_color_wheel_new(); + gtk_widget_show( _wheel ); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_halign(_wheel, GTK_ALIGN_FILL); + gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL); + gtk_widget_set_hexpand(_wheel, TRUE); + gtk_widget_set_vexpand(_wheel, TRUE); + gtk_grid_attach(GTK_GRID(t), _wheel, 0, row, 3, 1); +#else + gtk_table_attach(GTK_TABLE(t), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); +#endif + + row++; + + /* Label */ + _label = gtk_label_new_with_mnemonic (_("_A:")); + gtk_misc_set_alignment (GTK_MISC (_label), 1.0, 0.5); + gtk_widget_show (_label); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_label, XPAD); + gtk_widget_set_margin_right(_label, XPAD); + gtk_widget_set_margin_top(_label, YPAD); + gtk_widget_set_margin_bottom(_label, YPAD); + gtk_widget_set_halign(_label, GTK_ALIGN_FILL); + gtk_widget_set_valign(_label, GTK_ALIGN_FILL); + gtk_grid_attach(GTK_GRID(t), _label, 0, row, 1, 1); +#else + gtk_table_attach (GTK_TABLE (t), _label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); +#endif + + /* Adjustment */ + _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); + + /* Slider */ + _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj, true))); + _slider->set_tooltip_text(_("Alpha (opacity)")); + _slider->show(); + +#if GTK_CHECK_VERSION(3,0,0) + _slider->set_margin_left(XPAD); + _slider->set_margin_right(XPAD); + _slider->set_margin_top(YPAD); + _slider->set_margin_bottom(YPAD); + _slider->set_hexpand(true); + _slider->set_halign(Gtk::ALIGN_FILL); + _slider->set_valign(Gtk::ALIGN_FILL); + gtk_grid_attach(GTK_GRID(t), _slider->gobj(), 1, row, 1, 1); +#else + gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); +#endif + + _slider->setColors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), + SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); + + /* Spinbutton */ + _sbtn = gtk_spin_button_new (GTK_ADJUSTMENT (_adj), 1.0, 0); + gtk_widget_set_tooltip_text (_sbtn, _("Alpha (opacity)")); + sp_dialog_defocus_on_enter (_sbtn); + gtk_label_set_mnemonic_widget (GTK_LABEL(_label), _sbtn); + gtk_widget_show (_sbtn); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_sbtn, XPAD); + gtk_widget_set_margin_right(_sbtn, XPAD); + gtk_widget_set_margin_top(_sbtn, YPAD); + gtk_widget_set_margin_bottom(_sbtn, YPAD); + gtk_widget_set_halign(_sbtn, GTK_ALIGN_CENTER); + gtk_widget_set_valign(_sbtn, GTK_ALIGN_CENTER); + gtk_grid_attach(GTK_GRID(t), _sbtn, 2, row, 1, 1); +#else + gtk_table_attach (GTK_TABLE (t), _sbtn, 2, 3, row, row + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); +#endif + + /* Signals */ + g_signal_connect (G_OBJECT (_adj), "value_changed", + G_CALLBACK (_adjustmentChanged), _csel); + + _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); + _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); + _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); + + g_signal_connect( G_OBJECT(_wheel), "changed", + G_CALLBACK (_wheelChanged), _csel ); +} + +static void sp_color_wheel_selector_dispose(GObject *object) +{ + if ((G_OBJECT_CLASS(parent_class))->dispose) + (* (G_OBJECT_CLASS(parent_class))->dispose) (object); +} + +static void +sp_color_wheel_selector_show_all (GtkWidget *widget) +{ + gtk_widget_show (widget); +} + +static void sp_color_wheel_selector_hide(GtkWidget *widget) +{ + gtk_widget_hide(widget); +} + +GtkWidget *sp_color_wheel_selector_new() +{ + SPColorWheelSelector *csel = SP_COLOR_WHEEL_SELECTOR(g_object_new (SP_TYPE_COLOR_WHEEL_SELECTOR, NULL)); + + return GTK_WIDGET (csel); +} + +/* Helpers for setting color value */ + +void ColorWheelSelector::_preserve_icc(SPColor *color) const { + color->icc = getColor().icc ? new SVGICCColor(*getColor().icc) : 0; +} + +void ColorWheelSelector::_colorChanged() +{ +#ifdef DUMP_CHANGE_INFO + g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, color.v.c[0], color.v.c[1], color.v.c[2], alpha ); +#endif + _updating = TRUE; + { + float hsv[3] = {0,0,0}; + sp_color_rgb_to_hsv_floatv(hsv, _color.v.c[0], _color.v.c[1], _color.v.c[2]); + gimp_color_wheel_set_color( GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2] ); + } + + guint32 start = _color.toRGBA32( 0x00 ); + guint32 mid = _color.toRGBA32( 0x7f ); + guint32 end = _color.toRGBA32( 0xff ); + + _slider->setColors(start, mid, end); + + ColorScales::setScaled(_adj, _alpha); + + _updating = FALSE; +} + +void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorWheelSelector *cs ) +{ +// TODO check this. It looks questionable: + // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 + gdouble value = gtk_adjustment_get_value (adjustment); + gdouble upper = gtk_adjustment_get_upper (adjustment); + + if (value > 0.0 && value < 1.0) { + gtk_adjustment_set_value( adjustment, floor (value * upper + 0.5) ); + } + + ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); + if (wheelSelector->_updating) return; + + wheelSelector->_updating = TRUE; + + wheelSelector->_preserve_icc(&wheelSelector->_color); + wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + + wheelSelector->_updating = FALSE; +} + +void ColorWheelSelector::_sliderGrabbed() +{ + if (!_dragging) { + _dragging = TRUE; + _grabbed(); + + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); + } +} + +void ColorWheelSelector::_sliderReleased() +{ + if (_dragging) { + _dragging = FALSE; + _released(); + + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); + } +} + +void ColorWheelSelector::_sliderChanged() +{ + _preserve_icc(&_color); + _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); +} + +void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ) +{ + ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); + + gdouble h = 0; + gdouble s = 0; + gdouble v = 0; + gimp_color_wheel_get_color( wheel, &h, &s, &v ); + + float rgb[3] = {0,0,0}; + sp_color_hsv_to_rgb_floatv (rgb, h, s, v); + + SPColor color(rgb[0], rgb[1], rgb[2]); + + guint32 start = color.toRGBA32( 0x00 ); + guint32 mid = color.toRGBA32( 0x7f ); + guint32 end = color.toRGBA32( 0xff ); + + wheelSelector->_slider->setColors(start, mid, end); + + wheelSelector->_preserve_icc(&color); + wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); +} + + +Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_WHEEL_SELECTOR); + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); + return wrapped; +} + +Glib::ustring ColorWheelSelectorFactory::modeName() const { + return gettext(ColorWheelSelector::MODE_NAME); +} + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h new file mode 100644 index 000000000..7a9cb5093 --- /dev/null +++ b/src/ui/widget/color-wheel-selector.h @@ -0,0 +1,111 @@ +#ifndef SEEN_SP_COLOR_WHEEL_SELECTOR_H +#define SEEN_SP_COLOR_WHEEL_SELECTOR_H + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include + +#include "widgets/sp-color-selector.h" +#include "ui/selected-color.h" + +typedef struct _GimpColorWheel GimpColorWheel; +struct SPColorWheelSelector; +struct SPColorWheelSelectorClass; + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorSlider; + +} +} +} + +class ColorWheelSelector: public ColorSelector +{ +public: + static const gchar* MODE_NAME; + + ColorWheelSelector( SPColorSelector* csel ); + virtual ~ColorWheelSelector(); + + virtual void init(); + +protected: + virtual void _colorChanged(); + + static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorWheelSelector *cs ); + + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); + static void _wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ); + + static void _fooChanged( GtkWidget foo, SPColorWheelSelector *cs ); + + void _recalcColor( gboolean changing ); + + gboolean _updating : 1; + gboolean _dragging : 1; + GtkAdjustment* _adj; // Channel adjustment + GtkWidget* _wheel; + Inkscape::UI::Widget::ColorSlider* _slider; + GtkWidget* _sbtn; // Spinbutton + GtkWidget* _label; // Label + +private: + // By default, disallow copy constructor and assignment operator + ColorWheelSelector( const ColorWheelSelector& obj ); + ColorWheelSelector& operator=( const ColorWheelSelector& obj ); + + void _preserve_icc(SPColor *color) const; +}; + + + +#define SP_TYPE_COLOR_WHEEL_SELECTOR (sp_color_wheel_selector_get_type ()) +#define SP_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelector)) +#define SP_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelectorClass)) +#define SP_IS_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_WHEEL_SELECTOR)) +#define SP_IS_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_WHEEL_SELECTOR)) + +struct SPColorWheelSelector { + SPColorSelector parent; +}; + +struct SPColorWheelSelectorClass { + SPColorSelectorClass parent_class; +}; + +GType sp_color_wheel_selector_get_type (void); + +GtkWidget *sp_color_wheel_selector_new (void); + + +class ColorWheelSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +public: + Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; +}; + + +#endif // SEEN_SP_COLOR_WHEEL_SELECTOR_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index a4a3bb61b..7a1a7a4ef 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -74,8 +74,6 @@ ink_common_sources += \ widgets/sp-color-scales.h \ widgets/sp-color-selector.cpp \ widgets/sp-color-selector.h \ - widgets/sp-color-wheel-selector.cpp \ - widgets/sp-color-wheel-selector.h \ widgets/spinbutton-events.cpp \ widgets/spinbutton-events.h \ widgets/sp-widget.cpp \ diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index ac110b86c..ca189e086 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -32,7 +32,6 @@ #include "spw-utilities.h" #include "sp-color-scales.h" #include "sp-color-icc-selector.h" -#include "sp-color-wheel-selector.h" #include "svg/svg-icc-color.h" #include "../inkscape.h" #include "../document.h" @@ -42,6 +41,7 @@ #include "tools-switch.h" #include "ui/tools/tool-base.h" #include "ui/widget/color-entry.h" +#include "ui/widget/color-wheel-selector.h" using Inkscape::CMSSystem; diff --git a/src/widgets/sp-color-wheel-selector.cpp b/src/widgets/sp-color-wheel-selector.cpp deleted file mode 100644 index 2b448e075..000000000 --- a/src/widgets/sp-color-wheel-selector.cpp +++ /dev/null @@ -1,367 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "sp-color-wheel-selector.h" - -#include -#include -#include -#include -#include "../dialogs/dialog-events.h" -#include "sp-color-scales.h" -#include "sp-color-icc-selector.h" -#include "../svg/svg-icc-color.h" -#include "ui/widget/color-slider.h" -#include "ui/widget/gimpcolorwheel.h" - -G_BEGIN_DECLS - -static void sp_color_wheel_selector_class_init (SPColorWheelSelectorClass *klass); -static void sp_color_wheel_selector_init (SPColorWheelSelector *cs); -static void sp_color_wheel_selector_dispose(GObject *object); - -static void sp_color_wheel_selector_show_all (GtkWidget *widget); -static void sp_color_wheel_selector_hide(GtkWidget *widget); - - -G_END_DECLS - -static SPColorSelectorClass *parent_class; - -#define XPAD 4 -#define YPAD 1 - - -const gchar* ColorWheelSelector::MODE_NAME = N_("Wheel"); - -GType -sp_color_wheel_selector_get_type (void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorWheelSelectorClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_color_wheel_selector_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPColorWheelSelector), - 0, /* n_preallocs */ - (GInstanceInitFunc) sp_color_wheel_selector_init, - 0, /* value_table */ - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorWheelSelector", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void sp_color_wheel_selector_class_init(SPColorWheelSelectorClass *klass) -{ - static const gchar* nameset[] = {N_("Wheel"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 1; - - object_class->dispose = sp_color_wheel_selector_dispose; - - widget_class->show_all = sp_color_wheel_selector_show_all; - widget_class->hide = sp_color_wheel_selector_hide; -} - -ColorWheelSelector::ColorWheelSelector( SPColorSelector* csel ) - : ColorSelector( csel ), - _updating( FALSE ), - _dragging( FALSE ), - _adj(0), - _wheel(0), - _slider(0), - _sbtn(0), - _label(0) -{ -} - -ColorWheelSelector::~ColorWheelSelector() -{ - _adj = 0; - _wheel = 0; - _sbtn = 0; - _label = 0; -} - -void sp_color_wheel_selector_init (SPColorWheelSelector *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorWheelSelector( SP_COLOR_SELECTOR(cs) ); - - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } -} - -void ColorWheelSelector::init() -{ - gint row = 0; - - _updating = FALSE; - _dragging = FALSE; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new (5, 3, FALSE); -#endif - - gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 0); - - /* Create components */ - row = 0; - - _wheel = gimp_color_wheel_new(); - gtk_widget_show( _wheel ); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_halign(_wheel, GTK_ALIGN_FILL); - gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL); - gtk_widget_set_hexpand(_wheel, TRUE); - gtk_widget_set_vexpand(_wheel, TRUE); - gtk_grid_attach(GTK_GRID(t), _wheel, 0, row, 3, 1); -#else - gtk_table_attach(GTK_TABLE(t), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); -#endif - - row++; - - /* Label */ - _label = gtk_label_new_with_mnemonic (_("_A:")); - gtk_misc_set_alignment (GTK_MISC (_label), 1.0, 0.5); - gtk_widget_show (_label); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_label, XPAD); - gtk_widget_set_margin_right(_label, XPAD); - gtk_widget_set_margin_top(_label, YPAD); - gtk_widget_set_margin_bottom(_label, YPAD); - gtk_widget_set_halign(_label, GTK_ALIGN_FILL); - gtk_widget_set_valign(_label, GTK_ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _label, 0, row, 1, 1); -#else - gtk_table_attach (GTK_TABLE (t), _label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); -#endif - - /* Adjustment */ - _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); - - /* Slider */ - _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj, true))); - _slider->set_tooltip_text(_("Alpha (opacity)")); - _slider->show(); - -#if GTK_CHECK_VERSION(3,0,0) - _slider->set_margin_left(XPAD); - _slider->set_margin_right(XPAD); - _slider->set_margin_top(YPAD); - _slider->set_margin_bottom(YPAD); - _slider->set_hexpand(true); - _slider->set_halign(Gtk::ALIGN_FILL); - _slider->set_valign(Gtk::ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _slider->gobj(), 1, row, 1, 1); -#else - gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); -#endif - - _slider->setColors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); - - /* Spinbutton */ - _sbtn = gtk_spin_button_new (GTK_ADJUSTMENT (_adj), 1.0, 0); - gtk_widget_set_tooltip_text (_sbtn, _("Alpha (opacity)")); - sp_dialog_defocus_on_enter (_sbtn); - gtk_label_set_mnemonic_widget (GTK_LABEL(_label), _sbtn); - gtk_widget_show (_sbtn); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_sbtn, XPAD); - gtk_widget_set_margin_right(_sbtn, XPAD); - gtk_widget_set_margin_top(_sbtn, YPAD); - gtk_widget_set_margin_bottom(_sbtn, YPAD); - gtk_widget_set_halign(_sbtn, GTK_ALIGN_CENTER); - gtk_widget_set_valign(_sbtn, GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(t), _sbtn, 2, row, 1, 1); -#else - gtk_table_attach (GTK_TABLE (t), _sbtn, 2, 3, row, row + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); -#endif - - /* Signals */ - g_signal_connect (G_OBJECT (_adj), "value_changed", - G_CALLBACK (_adjustmentChanged), _csel); - - _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); - _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); - _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); - - g_signal_connect( G_OBJECT(_wheel), "changed", - G_CALLBACK (_wheelChanged), _csel ); -} - -static void sp_color_wheel_selector_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_wheel_selector_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_wheel_selector_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_wheel_selector_new() -{ - SPColorWheelSelector *csel = SP_COLOR_WHEEL_SELECTOR(g_object_new (SP_TYPE_COLOR_WHEEL_SELECTOR, NULL)); - - return GTK_WIDGET (csel); -} - -/* Helpers for setting color value */ - -void ColorWheelSelector::_preserve_icc(SPColor *color) const { - color->icc = getColor().icc ? new SVGICCColor(*getColor().icc) : 0; -} - -void ColorWheelSelector::_colorChanged() -{ -#ifdef DUMP_CHANGE_INFO - g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, color.v.c[0], color.v.c[1], color.v.c[2], alpha ); -#endif - _updating = TRUE; - { - float hsv[3] = {0,0,0}; - sp_color_rgb_to_hsv_floatv(hsv, _color.v.c[0], _color.v.c[1], _color.v.c[2]); - gimp_color_wheel_set_color( GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2] ); - } - - guint32 start = _color.toRGBA32( 0x00 ); - guint32 mid = _color.toRGBA32( 0x7f ); - guint32 end = _color.toRGBA32( 0xff ); - - _slider->setColors(start, mid, end); - - ColorScales::setScaled(_adj, _alpha); - - _updating = FALSE; -} - -void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorWheelSelector *cs ) -{ -// TODO check this. It looks questionable: - // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 - gdouble value = gtk_adjustment_get_value (adjustment); - gdouble upper = gtk_adjustment_get_upper (adjustment); - - if (value > 0.0 && value < 1.0) { - gtk_adjustment_set_value( adjustment, floor (value * upper + 0.5) ); - } - - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (wheelSelector->_updating) return; - - wheelSelector->_updating = TRUE; - - wheelSelector->_preserve_icc(&wheelSelector->_color); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); - - wheelSelector->_updating = FALSE; -} - -void ColorWheelSelector::_sliderGrabbed() -{ - if (!_dragging) { - _dragging = TRUE; - _grabbed(); - - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); - } -} - -void ColorWheelSelector::_sliderReleased() -{ - if (_dragging) { - _dragging = FALSE; - _released(); - - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); - } -} - -void ColorWheelSelector::_sliderChanged() -{ - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); -} - -void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ) -{ - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - - gdouble h = 0; - gdouble s = 0; - gdouble v = 0; - gimp_color_wheel_get_color( wheel, &h, &s, &v ); - - float rgb[3] = {0,0,0}; - sp_color_hsv_to_rgb_floatv (rgb, h, s, v); - - SPColor color(rgb[0], rgb[1], rgb[2]); - - guint32 start = color.toRGBA32( 0x00 ); - guint32 mid = color.toRGBA32( 0x7f ); - guint32 end = color.toRGBA32( 0xff ); - - wheelSelector->_slider->setColors(start, mid, end); - - wheelSelector->_preserve_icc(&color); - wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); -} - - -Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_WHEEL_SELECTOR); - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; -} - -Glib::ustring ColorWheelSelectorFactory::modeName() const { - return gettext(ColorWheelSelector::MODE_NAME); -} - - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-wheel-selector.h b/src/widgets/sp-color-wheel-selector.h deleted file mode 100644 index ad0d11bad..000000000 --- a/src/widgets/sp-color-wheel-selector.h +++ /dev/null @@ -1,111 +0,0 @@ -#ifndef SEEN_SP_COLOR_WHEEL_SELECTOR_H -#define SEEN_SP_COLOR_WHEEL_SELECTOR_H - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include - -#include "sp-color-selector.h" -#include "ui/selected-color.h" - -typedef struct _GimpColorWheel GimpColorWheel; -struct SPColorWheelSelector; -struct SPColorWheelSelectorClass; - -namespace Inkscape { -namespace UI { -namespace Widget { - -class ColorSlider; - -} -} -} - -class ColorWheelSelector: public ColorSelector -{ -public: - static const gchar* MODE_NAME; - - ColorWheelSelector( SPColorSelector* csel ); - virtual ~ColorWheelSelector(); - - virtual void init(); - -protected: - virtual void _colorChanged(); - - static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorWheelSelector *cs ); - - void _sliderGrabbed(); - void _sliderReleased(); - void _sliderChanged(); - static void _wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ); - - static void _fooChanged( GtkWidget foo, SPColorWheelSelector *cs ); - - void _recalcColor( gboolean changing ); - - gboolean _updating : 1; - gboolean _dragging : 1; - GtkAdjustment* _adj; // Channel adjustment - GtkWidget* _wheel; - Inkscape::UI::Widget::ColorSlider* _slider; - GtkWidget* _sbtn; // Spinbutton - GtkWidget* _label; // Label - -private: - // By default, disallow copy constructor and assignment operator - ColorWheelSelector( const ColorWheelSelector& obj ); - ColorWheelSelector& operator=( const ColorWheelSelector& obj ); - - void _preserve_icc(SPColor *color) const; -}; - - - -#define SP_TYPE_COLOR_WHEEL_SELECTOR (sp_color_wheel_selector_get_type ()) -#define SP_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelector)) -#define SP_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelectorClass)) -#define SP_IS_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_WHEEL_SELECTOR)) -#define SP_IS_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_WHEEL_SELECTOR)) - -struct SPColorWheelSelector { - SPColorSelector parent; -}; - -struct SPColorWheelSelectorClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_wheel_selector_get_type (void); - -GtkWidget *sp_color_wheel_selector_new (void); - - -class ColorWheelSelectorFactory: public Inkscape::UI::ColorSelectorFactory { -public: - Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; - Glib::ustring modeName() const; -}; - - -#endif // SEEN_SP_COLOR_WHEEL_SELECTOR_H - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From c2b99414ee441654e641552f372ebf1165f94ffc Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 12:34:20 +0200 Subject: SPColorWheelSelector c++-sification: inherit Gtk::Table/Grid (bzr r13341.6.35) --- src/ui/selected-color.cpp | 13 +- src/ui/selected-color.h | 2 + src/ui/widget/color-wheel-selector.cpp | 220 +++++++++++---------------------- src/ui/widget/color-wheel-selector.h | 70 +++++------ src/widgets/sp-color-notebook.cpp | 20 +-- 5 files changed, 125 insertions(+), 200 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 1be171a6b..10ca68b21 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -16,6 +16,8 @@ #include #include +#include "svg/svg-icc-color.h" + namespace Inkscape { namespace UI { @@ -24,8 +26,8 @@ double const SelectedColor::_EPSILON = 1e-4; SelectedColor::SelectedColor() : _color(0) , _alpha(1.0) - , _virgin(true) , _held(false) + , _virgin(true) { } @@ -36,7 +38,7 @@ SelectedColor::~SelectedColor() { void SelectedColor::setColor(SPColor const &color) { - setColorAlpha( color, _alpha ); + setColorAlpha( color, _alpha, true); } SPColor SelectedColor::color() const @@ -47,7 +49,7 @@ SPColor SelectedColor::color() const void SelectedColor::setAlpha(gfloat alpha) { g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); - setColorAlpha( _color, alpha ); + setColorAlpha( _color, alpha, true); } gfloat SelectedColor::alpha() const @@ -111,9 +113,14 @@ void SelectedColor::setHeld(bool held) { if (released) { signal_released.emit(); + signal_changed.emit(); } } +void SelectedColor::preserveICC() { + _color.icc = _color.icc ? new SVGICCColor(*_color.icc) : 0; +} + } } diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index ec0cc55e3..5d3d89672 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -44,6 +44,8 @@ public: void setHeld(bool held); + void preserveICC(); + sigc::signal signal_grabbed; sigc::signal signal_dragged; sigc::signal signal_released; diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 134232813..e14c70728 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -11,22 +11,14 @@ #include "dialogs/dialog-events.h" #include "widgets/sp-color-scales.h" #include "svg/svg-icc-color.h" +#include "ui/selected-color.h" #include "ui/widget/color-slider.h" #include "ui/widget/gimpcolorwheel.h" -G_BEGIN_DECLS +namespace Inkscape { +namespace UI { +namespace Widget { -static void sp_color_wheel_selector_class_init (SPColorWheelSelectorClass *klass); -static void sp_color_wheel_selector_init (SPColorWheelSelector *cs); -static void sp_color_wheel_selector_dispose(GObject *object); - -static void sp_color_wheel_selector_show_all (GtkWidget *widget); -static void sp_color_wheel_selector_hide(GtkWidget *widget); - - -G_END_DECLS - -static SPColorSelectorClass *parent_class; #define XPAD 4 #define YPAD 1 @@ -34,60 +26,24 @@ static SPColorSelectorClass *parent_class; const gchar* ColorWheelSelector::MODE_NAME = N_("Wheel"); -GType -sp_color_wheel_selector_get_type (void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorWheelSelectorClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_color_wheel_selector_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPColorWheelSelector), - 0, /* n_preallocs */ - (GInstanceInitFunc) sp_color_wheel_selector_init, - 0, /* value_table */ - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorWheelSelector", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void sp_color_wheel_selector_class_init(SPColorWheelSelectorClass *klass) -{ - static const gchar* nameset[] = {N_("Wheel"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 1; - - object_class->dispose = sp_color_wheel_selector_dispose; - - widget_class->show_all = sp_color_wheel_selector_show_all; - widget_class->hide = sp_color_wheel_selector_hide; -} - -ColorWheelSelector::ColorWheelSelector( SPColorSelector* csel ) - : ColorSelector( csel ), - _updating( FALSE ), - _dragging( FALSE ), +ColorWheelSelector::ColorWheelSelector(SelectedColor &color) +#if GTK_CHECK_VERSION(3,0,0) + : Gtk::Grid() +#else + : Gtk::Table(5, 3, false) +#endif + , _color(color) + , _updating(false), _adj(0), _wheel(0), _slider(0), _sbtn(0), _label(0) { + _initUI(); + _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); + _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); + } ColorWheelSelector::~ColorWheelSelector() @@ -96,33 +52,17 @@ ColorWheelSelector::~ColorWheelSelector() _wheel = 0; _sbtn = 0; _label = 0; -} - -void sp_color_wheel_selector_init (SPColorWheelSelector *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorWheelSelector( SP_COLOR_SELECTOR(cs) ); - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } + _color_changed_connection.disconnect(); + _color_dragged_connection.disconnect(); } -void ColorWheelSelector::init() -{ +void ColorWheelSelector::_initUI() { gint row = 0; - _updating = FALSE; - _dragging = FALSE; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new (5, 3, FALSE); -#endif + GtkWidget *t = GTK_WIDGET(gobj()); - gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 0); + //gtk_widget_show (t); /* Create components */ row = 0; @@ -205,44 +145,14 @@ void ColorWheelSelector::init() /* Signals */ g_signal_connect (G_OBJECT (_adj), "value_changed", - G_CALLBACK (_adjustmentChanged), _csel); + G_CALLBACK (_adjustmentChanged), this); _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); g_signal_connect( G_OBJECT(_wheel), "changed", - G_CALLBACK (_wheelChanged), _csel ); -} - -static void sp_color_wheel_selector_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_wheel_selector_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_wheel_selector_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_wheel_selector_new() -{ - SPColorWheelSelector *csel = SP_COLOR_WHEEL_SELECTOR(g_object_new (SP_TYPE_COLOR_WHEEL_SELECTOR, NULL)); - - return GTK_WIDGET (csel); -} - -/* Helpers for setting color value */ - -void ColorWheelSelector::_preserve_icc(SPColor *color) const { - color->icc = getColor().icc ? new SVGICCColor(*getColor().icc) : 0; + G_CALLBACK (_wheelChanged), this ); } void ColorWheelSelector::_colorChanged() @@ -250,26 +160,34 @@ void ColorWheelSelector::_colorChanged() #ifdef DUMP_CHANGE_INFO g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, color.v.c[0], color.v.c[1], color.v.c[2], alpha ); #endif - _updating = TRUE; + if (_updating) { + return; + } + + _updating = true; { float hsv[3] = {0,0,0}; - sp_color_rgb_to_hsv_floatv(hsv, _color.v.c[0], _color.v.c[1], _color.v.c[2]); + sp_color_rgb_to_hsv_floatv(hsv, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2]); gimp_color_wheel_set_color( GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2] ); } - guint32 start = _color.toRGBA32( 0x00 ); - guint32 mid = _color.toRGBA32( 0x7f ); - guint32 end = _color.toRGBA32( 0xff ); + guint32 start = _color.color().toRGBA32( 0x00 ); + guint32 mid = _color.color().toRGBA32( 0x7f ); + guint32 end = _color.color().toRGBA32( 0xff ); _slider->setColors(start, mid, end); - ColorScales::setScaled(_adj, _alpha); + ColorScales::setScaled(_adj, _color.alpha()); _updating = FALSE; } -void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorWheelSelector *cs ) +void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, ColorWheelSelector *cs ) { + if (cs->_updating) { + return; + } + // TODO check this. It looks questionable: // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 gdouble value = gtk_adjustment_get_value (adjustment); @@ -279,48 +197,42 @@ void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, SPColorW gtk_adjustment_set_value( adjustment, floor (value * upper + 0.5) ); } - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (wheelSelector->_updating) return; + cs->_updating = true; - wheelSelector->_updating = TRUE; + cs->_color.preserveICC(); - wheelSelector->_preserve_icc(&wheelSelector->_color); - wheelSelector->_updateInternals( wheelSelector->_color, ColorScales::getScaled( wheelSelector->_adj ), wheelSelector->_dragging ); + cs->_color.setAlpha(ColorScales::getScaled( cs->_adj )); - wheelSelector->_updating = FALSE; + cs->_updating = false; } void ColorWheelSelector::_sliderGrabbed() { - if (!_dragging) { - _dragging = TRUE; - _grabbed(); - - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); - } + _color.preserveICC(); + _color.setHeld(true); } void ColorWheelSelector::_sliderReleased() { - if (_dragging) { - _dragging = FALSE; - _released(); - - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); - } + _color.preserveICC(); + _color.setHeld(false); } void ColorWheelSelector::_sliderChanged() { - _preserve_icc(&_color); - _updateInternals( _color, ColorScales::getScaled( _adj ), _dragging ); + if (_updating) { + return; + } + + _updating = true; + _color.preserveICC(); + _color.setAlpha(ColorScales::getScaled(_adj)); + _updating = false; } -void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ) +void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, ColorWheelSelector *wheelSelector ) { - ColorWheelSelector* wheelSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); + if (wheelSelector->_updating) return; gdouble h = 0; gdouble s = 0; @@ -338,21 +250,31 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, SPColorWheelSelec wheelSelector->_slider->setColors(start, mid, end); - wheelSelector->_preserve_icc(&color); - wheelSelector->_updateInternals( color, wheelSelector->_alpha, gimp_color_wheel_is_adjusting(wheel) ); + wheelSelector->_updating = true; + + wheelSelector->_color.preserveICC(); + + wheelSelector->_color.setHeld(gimp_color_wheel_is_adjusting(wheel)); + wheelSelector->_color.setColor(color); + + wheelSelector->_updating = false; } Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_WHEEL_SELECTOR); - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; + Gtk::Widget *w = Gtk::manage(new ColorWheelSelector(color)); + return w; } Glib::ustring ColorWheelSelectorFactory::modeName() const { return gettext(ColorWheelSelector::MODE_NAME); } +} +} +} + + /* Local Variables: diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index 7a9cb5093..e289a8df6 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -1,3 +1,14 @@ +/** + * @file + * Color selector widget containing GIMP color wheel and slider + */ +/* Authors: + * Tomasz Boczkowski (c++-sification) + * + * Copyright (C) 2014 Authors + * + * This code is in public domain + */ #ifndef SEEN_SP_COLOR_WHEEL_SELECTOR_H #define SEEN_SP_COLOR_WHEEL_SELECTOR_H @@ -11,13 +22,11 @@ #include #include +#include -#include "widgets/sp-color-selector.h" #include "ui/selected-color.h" typedef struct _GimpColorWheel GimpColorWheel; -struct SPColorWheelSelector; -struct SPColorWheelSelectorClass; namespace Inkscape { namespace UI { @@ -25,36 +34,31 @@ namespace Widget { class ColorSlider; -} -} -} - -class ColorWheelSelector: public ColorSelector +class ColorWheelSelector + : public Gtk::Table //if GTK2 { public: static const gchar* MODE_NAME; - ColorWheelSelector( SPColorSelector* csel ); + ColorWheelSelector(SelectedColor &color); virtual ~ColorWheelSelector(); - virtual void init(); - protected: + void _initUI(); virtual void _colorChanged(); - static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorWheelSelector *cs ); + static void _adjustmentChanged ( GtkAdjustment *adjustment, ColorWheelSelector *cs ); void _sliderGrabbed(); void _sliderReleased(); void _sliderChanged(); - static void _wheelChanged( GimpColorWheel *wheel, SPColorWheelSelector *cs ); - - static void _fooChanged( GtkWidget foo, SPColorWheelSelector *cs ); + static void _wheelChanged( GimpColorWheel *wheel, ColorWheelSelector *cs ); void _recalcColor( gboolean changing ); - gboolean _updating : 1; - gboolean _dragging : 1; + SelectedColor &_color; + bool _updating; + GtkAdjustment* _adj; // Channel adjustment GtkWidget* _wheel; Inkscape::UI::Widget::ColorSlider* _slider; @@ -66,36 +70,20 @@ private: ColorWheelSelector( const ColorWheelSelector& obj ); ColorWheelSelector& operator=( const ColorWheelSelector& obj ); - void _preserve_icc(SPColor *color) const; + sigc::connection _color_changed_connection; + sigc::connection _color_dragged_connection; }; - - -#define SP_TYPE_COLOR_WHEEL_SELECTOR (sp_color_wheel_selector_get_type ()) -#define SP_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelector)) -#define SP_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_WHEEL_SELECTOR, SPColorWheelSelectorClass)) -#define SP_IS_COLOR_WHEEL_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_WHEEL_SELECTOR)) -#define SP_IS_COLOR_WHEEL_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_WHEEL_SELECTOR)) - -struct SPColorWheelSelector { - SPColorSelector parent; -}; - -struct SPColorWheelSelectorClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_wheel_selector_get_type (void); - -GtkWidget *sp_color_wheel_selector_new (void); - - -class ColorWheelSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +class ColorWheelSelectorFactory: public ColorSelectorFactory { public: - Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; + Gtk::Widget *createWidget(SelectedColor &color) const; Glib::ustring modeName() const; }; +} +} +} + #endif // SEEN_SP_COLOR_WHEEL_SELECTOR_H diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index ca189e086..58c26b8b0 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -131,13 +131,17 @@ void ColorNotebook::switchPage(GtkNotebook*, if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)) >= 0 ) { csel = getCurrentSelector(); - csel->base->getColorAlpha(_color, _alpha); + if (csel) { + csel->base->getColorAlpha(_color, _alpha); + } } widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), page_num); if ( widget && SP_IS_COLOR_SELECTOR(widget) ) { csel = SP_COLOR_SELECTOR (widget); - csel->base->setColorAlpha( _color, _alpha ); + if (csel) { + csel->base->setColorAlpha( _color, _alpha ); + } // Temporary workaround to undo a spurious GRABBED _released(); @@ -620,11 +624,13 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); - //Connect glib signals of non-refactored widgets - g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); - g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); - g_signal_connect (selector_widget->gobj(), "released", G_CALLBACK (_entryReleased), _csel); - g_signal_connect (selector_widget->gobj(), "changed", G_CALLBACK (_entryChanged), _csel); + if (SP_IS_COLOR_SELECTOR(selector_widget)) { + //Connect glib signals of non-refactored widgets + g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); + g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); + g_signal_connect (selector_widget->gobj(), "released", G_CALLBACK (_entryReleased), _csel); + g_signal_connect (selector_widget->gobj(), "changed", G_CALLBACK (_entryChanged), _csel); + } } return selector_widget->gobj(); -- cgit v1.2.3 From efd28a1d2bae756f53ad9b689fb6079be9d92605 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 13:13:31 +0200 Subject: fixed updating selected color using wheel (bzr r13341.6.36) --- src/widgets/sp-color-notebook.cpp | 33 ++++++++++++++++++++++++++++++++- src/widgets/sp-color-notebook.h | 3 +++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 58c26b8b0..7495d1deb 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -363,6 +363,9 @@ void ColorNotebook::init() G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorDragged)); + _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorGrabbed)); + _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorReleased)); } static void sp_color_notebook_dispose(GObject *object) @@ -598,8 +601,36 @@ void ColorNotebook::_onSelectedColorChanged() { SPColor color; gfloat alpha = 1.0; + _updating = true; _selected_color.colorAlpha(color, alpha); _updateInternals(color, alpha, _dragging); + _updating = false; +} + +void ColorNotebook::_onSelectedColorDragged() { + if (_updating) { + return; + } + bool oldState = _dragging; + + _dragging = TRUE; + SPColor color; + gfloat alpha = 1.0; + + _updating = true; + _selected_color.colorAlpha(color, alpha); + _updateInternals(color, alpha, _dragging); + _updating = false; + + _dragging = oldState; +} + +void ColorNotebook::_onSelectedColorGrabbed() { + _grabbed(); +} + +void ColorNotebook::_onSelectedColorReleased() { + _released(); } GtkWidget* ColorNotebook::_addPage(Page& page) { @@ -624,7 +655,7 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); - if (SP_IS_COLOR_SELECTOR(selector_widget)) { + if (SP_IS_COLOR_SELECTOR(selector_widget->gobj())) { //Connect glib signals of non-refactored widgets g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index 9ab98f1e9..7c6dbc770 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -61,6 +61,9 @@ protected: virtual void _colorChanged(); virtual void _onSelectedColorChanged(); + virtual void _onSelectedColorDragged(); + virtual void _onSelectedColorGrabbed(); + virtual void _onSelectedColorReleased(); void _updateRgbaEntry( const SPColor& color, gfloat alpha ); void _setCurrentPage(int i); -- cgit v1.2.3 From acb2a6bf56c0c932e89114e00cef10fdb5c2f9b5 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 14:59:50 +0200 Subject: SPColorWheelSelector c++-sification: replaced gtk calls by gtkmm versions (bzr r13341.6.37) --- src/ui/widget/color-wheel-selector.cpp | 146 ++++++++++++++++----------------- src/ui/widget/color-wheel-selector.h | 30 ++++--- 2 files changed, 90 insertions(+), 86 deletions(-) diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index e14c70728..e49e4ba16 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include "dialogs/dialog-events.h" #include "widgets/sp-color-scales.h" #include "svg/svg-icc-color.h" @@ -33,12 +35,12 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color) : Gtk::Table(5, 3, false) #endif , _color(color) - , _updating(false), - _adj(0), - _wheel(0), - _slider(0), - _sbtn(0), - _label(0) + , _updating(false) +#if !GTK_CHECK_VERSION(3,0,0) + , _alpha_adjustment(NULL) +#endif + , _wheel(0) + , _slider(0) { _initUI(); _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); @@ -48,24 +50,18 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color) ColorWheelSelector::~ColorWheelSelector() { - _adj = 0; _wheel = 0; - _sbtn = 0; - _label = 0; +#if !GTK_CHECK_VERSION(3,0,0) + delete _alpha_adjustment; +#endif _color_changed_connection.disconnect(); _color_dragged_connection.disconnect(); } void ColorWheelSelector::_initUI() { - gint row = 0; - - GtkWidget *t = GTK_WIDGET(gobj()); - - //gtk_widget_show (t); - /* Create components */ - row = 0; + gint row = 0; _wheel = gimp_color_wheel_new(); gtk_widget_show( _wheel ); @@ -75,35 +71,38 @@ void ColorWheelSelector::_initUI() { gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL); gtk_widget_set_hexpand(_wheel, TRUE); gtk_widget_set_vexpand(_wheel, TRUE); - gtk_grid_attach(GTK_GRID(t), _wheel, 0, row, 3, 1); + gtk_grid_attach(GTK_GRID(gobj()), _wheel, 0, row, 3, 1); #else - gtk_table_attach(GTK_TABLE(t), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); + gtk_table_attach(GTK_TABLE(gobj()), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); #endif row++; /* Label */ - _label = gtk_label_new_with_mnemonic (_("_A:")); - gtk_misc_set_alignment (GTK_MISC (_label), 1.0, 0.5); - gtk_widget_show (_label); + Gtk::Label* label = Gtk::manage(new Gtk::Label(_("_A:"), true)); + label->set_alignment(1.0, 0.5); + label->show(); #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_label, XPAD); - gtk_widget_set_margin_right(_label, XPAD); - gtk_widget_set_margin_top(_label, YPAD); - gtk_widget_set_margin_bottom(_label, YPAD); - gtk_widget_set_halign(_label, GTK_ALIGN_FILL); - gtk_widget_set_valign(_label, GTK_ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _label, 0, row, 1, 1); + label->set_margin_left(XPAD); + label->set_margin_right(XPAD); + label->set_margin_top(YPAD); + label->set_margin_bottom(YPAD); + label->set_halign(Gtk::ALIGN_FILL); + label->set_valign(Gtk::ALIGN_FILL); + attach(*label, 0, row, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _label, 0, 1, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); + attach(*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif /* Adjustment */ - _adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); - +#if GTK_CHECK_VERSION(3,0,0) + _alpha_adjustment = Gtk::Adjustment::create(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); +#else + _alpha_adjustment = new Gtk::Adjustment(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); +#endif /* Slider */ - _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_adj, true))); + _slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(_alpha_adjustment)); _slider->set_tooltip_text(_("Alpha (opacity)")); _slider->show(); @@ -115,9 +114,9 @@ void ColorWheelSelector::_initUI() { _slider->set_hexpand(true); _slider->set_halign(Gtk::ALIGN_FILL); _slider->set_valign(Gtk::ALIGN_FILL); - gtk_grid_attach(GTK_GRID(t), _slider->gobj(), 1, row, 1, 1); + attach(*_slider, 1, row, 1, 1); #else - gtk_table_attach(GTK_TABLE (t), _slider->gobj(), 1, 2, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); + attach(*_slider, 1, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif _slider->setColors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), @@ -125,32 +124,34 @@ void ColorWheelSelector::_initUI() { SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); /* Spinbutton */ - _sbtn = gtk_spin_button_new (GTK_ADJUSTMENT (_adj), 1.0, 0); - gtk_widget_set_tooltip_text (_sbtn, _("Alpha (opacity)")); - sp_dialog_defocus_on_enter (_sbtn); - gtk_label_set_mnemonic_widget (GTK_LABEL(_label), _sbtn); - gtk_widget_show (_sbtn); +#if GTK_CHECK_VERSION(3,0,0) + Gtk::SpinButton* spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0)); + #else + Gtk::SpinButton* spin_button = Gtk::manage(new Gtk::SpinButton(*_alpha_adjustment, 1.0, 0)); +#endif + spin_button->set_tooltip_text(_("Alpha (opacity)")); + sp_dialog_defocus_on_enter(GTK_WIDGET(spin_button->gobj())); + label->set_mnemonic_widget(*spin_button); + spin_button->show(); #if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_sbtn, XPAD); - gtk_widget_set_margin_right(_sbtn, XPAD); - gtk_widget_set_margin_top(_sbtn, YPAD); - gtk_widget_set_margin_bottom(_sbtn, YPAD); - gtk_widget_set_halign(_sbtn, GTK_ALIGN_CENTER); - gtk_widget_set_valign(_sbtn, GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(t), _sbtn, 2, row, 1, 1); + + spin_button->set_margin_left(XPAD); + spin_button->set_margin_right(XPAD); + spin_button->set_margin_top(YPAD); + spin_button->set_margin_bottom(YPAD); + spin_button->set_halign(Gtk::ALIGN_CENTER); + spin_button->set_valign(Gtk::ALIGN_CENTER); + attach(*spin_button, 2, row, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _sbtn, 2, 3, row, row + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); + attach(*spin_button, 2, 3, row, row + 1, (Gtk::AttachOptions)0, (Gtk::AttachOptions)0, XPAD, YPAD); #endif /* Signals */ - g_signal_connect (G_OBJECT (_adj), "value_changed", - G_CALLBACK (_adjustmentChanged), this); - + _alpha_adjustment->signal_value_changed().connect(sigc::mem_fun(this, &ColorWheelSelector::_adjustmentChanged)); _slider->signal_grabbed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderGrabbed)); _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); - g_signal_connect( G_OBJECT(_wheel), "changed", G_CALLBACK (_wheelChanged), this ); } @@ -158,7 +159,7 @@ void ColorWheelSelector::_initUI() { void ColorWheelSelector::_colorChanged() { #ifdef DUMP_CHANGE_INFO - g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, color.v.c[0], color.v.c[1], color.v.c[2], alpha ); + g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], alpha ); #endif if (_updating) { return; @@ -177,33 +178,30 @@ void ColorWheelSelector::_colorChanged() _slider->setColors(start, mid, end); - ColorScales::setScaled(_adj, _color.alpha()); + ColorScales::setScaled(_alpha_adjustment->gobj(), _color.alpha()); - _updating = FALSE; + _updating = false; } -void ColorWheelSelector::_adjustmentChanged( GtkAdjustment *adjustment, ColorWheelSelector *cs ) +void ColorWheelSelector::_adjustmentChanged() { - if (cs->_updating) { + if (_updating) { return; } + _updating = true; -// TODO check this. It looks questionable: + // TODO check this. It looks questionable: // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 - gdouble value = gtk_adjustment_get_value (adjustment); - gdouble upper = gtk_adjustment_get_upper (adjustment); - + gdouble value = _alpha_adjustment->get_value(); + gdouble upper = _alpha_adjustment->get_upper(); if (value > 0.0 && value < 1.0) { - gtk_adjustment_set_value( adjustment, floor (value * upper + 0.5) ); + _alpha_adjustment->set_value(floor(value * upper + 0.5)); } - cs->_updating = true; - - cs->_color.preserveICC(); - - cs->_color.setAlpha(ColorScales::getScaled( cs->_adj )); + _color.preserveICC(); + _color.setAlpha(ColorScales::getScaled(_alpha_adjustment->gobj())); - cs->_updating = false; + _updating = false; } void ColorWheelSelector::_sliderGrabbed() @@ -226,13 +224,16 @@ void ColorWheelSelector::_sliderChanged() _updating = true; _color.preserveICC(); - _color.setAlpha(ColorScales::getScaled(_adj)); + _color.setAlpha(ColorScales::getScaled(_alpha_adjustment->gobj())); _updating = false; } -void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, ColorWheelSelector *wheelSelector ) +void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector *wheelSelector) { - if (wheelSelector->_updating) return; + if (wheelSelector->_updating){ + return; + } + wheelSelector->_updating = true; gdouble h = 0; gdouble s = 0; @@ -250,8 +251,6 @@ void ColorWheelSelector::_wheelChanged( GimpColorWheel *wheel, ColorWheelSelecto wheelSelector->_slider->setColors(start, mid, end); - wheelSelector->_updating = true; - wheelSelector->_color.preserveICC(); wheelSelector->_color.setHeld(gimp_color_wheel_is_adjusting(wheel)); @@ -273,9 +272,6 @@ Glib::ustring ColorWheelSelectorFactory::modeName() const { } } } - - - /* Local Variables: mode:c++ diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index e289a8df6..f5213fad7 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -22,7 +22,11 @@ #include #include +#if GTK_CHECK_VERSION(3,0,0) +#include +#else #include +#endif #include "ui/selected-color.h" @@ -35,7 +39,11 @@ namespace Widget { class ColorSlider; class ColorWheelSelector - : public Gtk::Table //if GTK2 +#if GTK_CHECK_VERSION(3,0,0) + : public Gtk::Grid +#else + : public Gtk::Table +#endif { public: static const gchar* MODE_NAME; @@ -45,25 +53,25 @@ public: protected: void _initUI(); - virtual void _colorChanged(); - - static void _adjustmentChanged ( GtkAdjustment *adjustment, ColorWheelSelector *cs ); + void _colorChanged(); + void _adjustmentChanged(); void _sliderGrabbed(); void _sliderReleased(); void _sliderChanged(); - static void _wheelChanged( GimpColorWheel *wheel, ColorWheelSelector *cs ); + static void _wheelChanged(GimpColorWheel *wheel, ColorWheelSelector *cs); - void _recalcColor( gboolean changing ); + void _recalcColor(gboolean changing); SelectedColor &_color; bool _updating; - - GtkAdjustment* _adj; // Channel adjustment +#if GTK_CHECK_VERSION(3,0,0) + Glib::RefPtr _alpha_adjustment; +#else + Gtk::Adjustment* _alpha_adjustment; +#endif GtkWidget* _wheel; Inkscape::UI::Widget::ColorSlider* _slider; - GtkWidget* _sbtn; // Spinbutton - GtkWidget* _label; // Label private: // By default, disallow copy constructor and assignment operator @@ -74,6 +82,7 @@ private: sigc::connection _color_dragged_connection; }; + class ColorWheelSelectorFactory: public ColorSelectorFactory { public: Gtk::Widget *createWidget(SelectedColor &color) const; @@ -84,7 +93,6 @@ public: } } - #endif // SEEN_SP_COLOR_WHEEL_SELECTOR_H /* -- cgit v1.2.3 From 9325918fd04118cda566f15120b975467b2e6e9f Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 15:09:21 +0200 Subject: SPColorScales c++-sification - move to ui/widget (bzr r13341.6.38) --- src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-scales.cpp | 788 +++++++++++++++++++++++++++++++++ src/ui/widget/color-scales.h | 139 ++++++ src/ui/widget/color-slider.cpp | 2 +- src/ui/widget/color-wheel-selector.cpp | 2 +- src/widgets/Makefile_insert | 2 - src/widgets/sp-color-icc-selector.cpp | 2 +- src/widgets/sp-color-notebook.cpp | 2 +- src/widgets/sp-color-scales.cpp | 788 --------------------------------- src/widgets/sp-color-scales.h | 139 ------ 10 files changed, 933 insertions(+), 933 deletions(-) create mode 100644 src/ui/widget/color-scales.cpp create mode 100644 src/ui/widget/color-scales.h delete mode 100644 src/widgets/sp-color-scales.cpp delete mode 100644 src/widgets/sp-color-scales.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index 97625f04e..039e2a8d9 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -16,6 +16,8 @@ ink_common_sources += \ ui/widget/color-preview.h \ ui/widget/color-slider.cpp \ ui/widget/color-slider.h \ + ui/widget/color-scales.cpp \ + ui/widget/color-scales.h \ ui/widget/combo-enums.h \ ui/widget/dock.h \ ui/widget/dock.cpp \ diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp new file mode 100644 index 000000000..bba44034a --- /dev/null +++ b/src/ui/widget/color-scales.cpp @@ -0,0 +1,788 @@ +/* + * bulia byak + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "ui/widget/color-scales.h" + +#include +#include +#include +#include + +#include "dialogs/dialog-events.h" +#include "svg/svg-icc-color.h" +#include "ui/widget/color-slider.h" + +#define CSC_CHANNEL_R (1 << 0) +#define CSC_CHANNEL_G (1 << 1) +#define CSC_CHANNEL_B (1 << 2) +#define CSC_CHANNEL_A (1 << 3) +#define CSC_CHANNEL_H (1 << 0) +#define CSC_CHANNEL_S (1 << 1) +#define CSC_CHANNEL_V (1 << 2) +#define CSC_CHANNEL_C (1 << 0) +#define CSC_CHANNEL_M (1 << 1) +#define CSC_CHANNEL_Y (1 << 2) +#define CSC_CHANNEL_K (1 << 3) +#define CSC_CHANNEL_CMYKA (1 << 4) + +#define CSC_CHANNELS_ALL 0 + + +G_BEGIN_DECLS + +static void sp_color_scales_class_init (SPColorScalesClass *klass); +static void sp_color_scales_init (SPColorScales *cs); +static void sp_color_scales_dispose(GObject *object); + +static void sp_color_scales_show_all (GtkWidget *widget); +static void sp_color_scales_hide(GtkWidget *widget); + +static const gchar *sp_color_scales_hue_map (void); + +G_END_DECLS + +static SPColorSelectorClass *parent_class; + +#define XPAD 4 +#define YPAD 1 + +#define noDUMP_CHANGE_INFO 1 + +const gchar* ColorScales::SUBMODE_NAMES[] = { + N_("None"), + N_("RGB"), + N_("HSL"), + N_("CMYK") +}; + +GType +sp_color_scales_get_type (void) +{ + static GType type = 0; + if (!type) { + static const GTypeInfo info = { + sizeof (SPColorScalesClass), + NULL, /* base_init */ + NULL, /* base_finalize */ + (GClassInitFunc) sp_color_scales_class_init, + NULL, /* class_finalize */ + NULL, /* class_data */ + sizeof (SPColorScales), + 0, /* n_preallocs */ + (GInstanceInitFunc) sp_color_scales_init, + NULL + }; + + type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, + "SPColorScales", + &info, + static_cast< GTypeFlags > (0) ); + } + return type; +} + +static void +sp_color_scales_class_init (SPColorScalesClass *klass) +{ + static const gchar* nameset[] = {N_("RGB"), N_("HSL"), N_("CMYK"), 0}; + GObjectClass *object_class = G_OBJECT_CLASS(klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); + SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); + + parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); + + selector_class->name = nameset; + selector_class->submode_count = 3; + + object_class->dispose = sp_color_scales_dispose; + + widget_class->show_all = sp_color_scales_show_all; + widget_class->hide = sp_color_scales_hide; +} + +ColorScales::ColorScales( SPColorSelector* csel ) + : ColorSelector( csel ), + _mode( SP_COLOR_SCALES_MODE_NONE ), + _rangeLimit( 255.0 ), + _updating( FALSE ), + _dragging( FALSE ) +{ + for (gint i = 0; i < 5; i++) { + _l[i] = 0; + _a[i] = 0; + _s[i] = 0; + _b[i] = 0; + } +} + +ColorScales::~ColorScales() +{ + for (gint i = 0; i < 5; i++) { + _l[i] = 0; + _a[i] = 0; + _s[i] = 0; + _b[i] = 0; + } +} + +void sp_color_scales_init (SPColorScales *cs) +{ + SP_COLOR_SELECTOR(cs)->base = new ColorScales( SP_COLOR_SELECTOR(cs) ); + + if ( SP_COLOR_SELECTOR(cs)->base ) + { + SP_COLOR_SELECTOR(cs)->base->init(); + } +} + +void ColorScales::init() +{ + gint i; + + _updating = FALSE; + _dragging = FALSE; + +#if GTK_CHECK_VERSION(3,0,0) + GtkWidget *t = gtk_grid_new(); +#else + GtkWidget *t = gtk_table_new (5, 3, FALSE); +#endif + gtk_widget_show (t); + gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); + + /* Create components */ + for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) { + /* Label */ + _l[i] = gtk_label_new(""); + gtk_misc_set_alignment (GTK_MISC (_l[i]), 1.0, 0.5); + gtk_widget_show (_l[i]); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_l[i], XPAD); + gtk_widget_set_margin_right(_l[i], XPAD); + gtk_widget_set_margin_top(_l[i], YPAD); + gtk_widget_set_margin_bottom(_l[i], YPAD); + gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1); +#else + gtk_table_attach (GTK_TABLE (t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); +#endif + + /* Adjustment */ + _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); + /* Slider */ + _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); + _s[i]->show(); + +#if GTK_CHECK_VERSION(3,0,0) + _s[i]->set_margin_left(XPAD); + _s[i]->set_margin_right(XPAD); + _s[i]->set_margin_top(YPAD); + _s[i]->set_margin_bottom(YPAD); + _s[i]->set_hexpand(true); + gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); +#else + gtk_table_attach (GTK_TABLE (t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); +#endif + + /* Spinbutton */ + _b[i] = gtk_spin_button_new (GTK_ADJUSTMENT (_a[i]), 1.0, 0); + sp_dialog_defocus_on_enter (_b[i]); + gtk_label_set_mnemonic_widget (GTK_LABEL(_l[i]), _b[i]); + gtk_widget_show (_b[i]); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_b[i], XPAD); + gtk_widget_set_margin_right(_b[i], XPAD); + gtk_widget_set_margin_top(_b[i], YPAD); + gtk_widget_set_margin_bottom(_b[i], YPAD); + gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER); + gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER); + gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1); +#else + gtk_table_attach (GTK_TABLE (t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); +#endif + + /* Attach channel value to adjustment */ + g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i)); + /* Signals */ + g_signal_connect (G_OBJECT (_a[i]), "value_changed", + G_CALLBACK (_adjustmentAnyChanged), _csel); + _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); + _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); + _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); + } + + /* Initial mode is none, so it works */ + setMode(SP_COLOR_SCALES_MODE_RGB); +} + +static void sp_color_scales_dispose(GObject *object) +{ + if ((G_OBJECT_CLASS(parent_class))->dispose) + (* (G_OBJECT_CLASS(parent_class))->dispose) (object); +} + +static void +sp_color_scales_show_all (GtkWidget *widget) +{ + gtk_widget_show (widget); +} + +static void sp_color_scales_hide(GtkWidget *widget) +{ + gtk_widget_hide(widget); +} + +GtkWidget *sp_color_scales_new() +{ + SPColorScales *csel = SP_COLOR_SCALES(g_object_new (SP_TYPE_COLOR_SCALES, NULL)); + + return GTK_WIDGET (csel); +} + +void ColorScales::_recalcColor( gboolean changing ) +{ + if ( changing ) + { + SPColor color; + gfloat alpha = 1.0; + gfloat c[5]; + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + case SP_COLOR_SCALES_MODE_HSV: + _getRgbaFloatv(c); + color.set( c[0], c[1], c[2] ); + alpha = c[3]; + break; + case SP_COLOR_SCALES_MODE_CMYK: + { + _getCmykaFloatv( c ); + + float rgb[3]; + sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); + color.set( rgb[0], rgb[1], rgb[2] ); + alpha = c[4]; + break; + } + default: + g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; + } + + /* Preserve ICC */ + color.icc = _color.icc ? new SVGICCColor(*_color.icc) : 0; + + _updateInternals( color, alpha, _dragging ); + } + else + { + _updateInternals( _color, _alpha, _dragging ); + } +} + +/* Helpers for setting color value */ +gfloat ColorScales::getScaled( const GtkAdjustment *a ) +{ + gfloat val = gtk_adjustment_get_value (const_cast(a)) + / gtk_adjustment_get_upper (const_cast(a)); + return val; +} + +void ColorScales::setScaled( GtkAdjustment *a, gfloat v ) +{ + gfloat val = v * gtk_adjustment_get_upper (a); + gtk_adjustment_set_value( a, val ); +} + +void ColorScales::_setRangeLimit( gdouble upper ) +{ + _rangeLimit = upper; + for ( gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++ ) { + gtk_adjustment_set_upper (_a[i], upper); + gtk_adjustment_changed( _a[i] ); + } +} + +void ColorScales::_colorChanged() +{ +#ifdef DUMP_CHANGE_INFO + g_message("ColorScales::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.v.c[0], _color.v.c[1], _color.v.c[2], _alpha ); +#endif + gfloat tmp[3]; + gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + sp_color_get_rgb_floatv( &_color, c ); + c[3] = _alpha; + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_get_rgb_floatv( &_color, tmp ); + sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); + c[3] = _alpha; + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_CMYK: + sp_color_get_cmyk_floatv( &_color, c ); + c[4] = _alpha; + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; + } + + _updating = TRUE; + setScaled( _a[0], c[0] ); + setScaled( _a[1], c[1] ); + setScaled( _a[2], c[2] ); + setScaled( _a[3], c[3] ); + setScaled( _a[4], c[4] ); + _updateSliders( CSC_CHANNELS_ALL ); + _updating = FALSE; +} + +void ColorScales::_getRgbaFloatv( gfloat *rgba ) +{ + g_return_if_fail (rgba != NULL); + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + rgba[0] = getScaled(_a[0]); + rgba[1] = getScaled(_a[1]); + rgba[2] = getScaled(_a[2]); + rgba[3] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_hsl_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + rgba[3] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_CMYK: + sp_color_cmyk_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + rgba[3] = getScaled(_a[4]); + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } +} + +void ColorScales::_getCmykaFloatv( gfloat *cmyka ) +{ + gfloat rgb[3]; + + g_return_if_fail (cmyka != NULL); + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + sp_color_rgb_to_cmyk_floatv (cmyka, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + cmyka[4] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_hsl_to_rgb_floatv (rgb, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + sp_color_rgb_to_cmyk_floatv (cmyka, rgb[0], rgb[1], rgb[2]); + cmyka[4] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_CMYK: + cmyka[0] = getScaled(_a[0]); + cmyka[1] = getScaled(_a[1]); + cmyka[2] = getScaled(_a[2]); + cmyka[3] = getScaled(_a[3]); + cmyka[4] = getScaled(_a[4]); + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } +} + +guint32 ColorScales::_getRgba32() +{ + gfloat c[4]; + guint32 rgba; + + _getRgbaFloatv(c); + + rgba = SP_RGBA32_F_COMPOSE (c[0], c[1], c[2], c[3]); + + return rgba; +} + +void ColorScales::setMode(SPColorScalesMode mode) +{ + gfloat rgba[4]; + gfloat c[4]; + + if (_mode == mode) return; + + if ((_mode == SP_COLOR_SCALES_MODE_RGB) || + (_mode == SP_COLOR_SCALES_MODE_HSV) || + (_mode == SP_COLOR_SCALES_MODE_CMYK)) { + _getRgbaFloatv(rgba); + } else { + rgba[0] = rgba[1] = rgba[2] = rgba[3] = 1.0; + } + + _mode = mode; + + switch (mode) { + case SP_COLOR_SCALES_MODE_RGB: + _setRangeLimit(255.0); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_R:")); + _s[0]->set_tooltip_text(_("Red")); + gtk_widget_set_tooltip_text (_b[0], _("Red")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_G:")); + _s[1]->set_tooltip_text(_("Green")); + gtk_widget_set_tooltip_text (_b[1], _("Green")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_B:")); + _s[2]->set_tooltip_text(_("Blue")); + gtk_widget_set_tooltip_text (_b[2], _("Blue")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); + _s[0]->setMap(NULL); + gtk_widget_hide (_l[4]); + _s[4]->hide(); + gtk_widget_hide (_b[4]); + _updating = TRUE; + setScaled( _a[0], rgba[0] ); + setScaled( _a[1], rgba[1] ); + setScaled( _a[2], rgba[2] ); + setScaled( _a[3], rgba[3] ); + _updating = FALSE; + _updateSliders( CSC_CHANNELS_ALL ); + break; + case SP_COLOR_SCALES_MODE_HSV: + _setRangeLimit(255.0); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_H:")); + _s[0]->set_tooltip_text(_("Hue")); + gtk_widget_set_tooltip_text (_b[0], _("Hue")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_S:")); + _s[1]->set_tooltip_text(_("Saturation")); + gtk_widget_set_tooltip_text (_b[1], _("Saturation")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_L:")); + _s[2]->set_tooltip_text(_("Lightness")); + gtk_widget_set_tooltip_text (_b[2], _("Lightness")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); + _s[0]->setMap((guchar *)(sp_color_scales_hue_map())); + gtk_widget_hide (_l[4]); + _s[4]->hide(); + gtk_widget_hide (_b[4]); + _updating = TRUE; + c[0] = 0.0; + sp_color_rgb_to_hsl_floatv (c, rgba[0], rgba[1], rgba[2]); + setScaled( _a[0], c[0] ); + setScaled( _a[1], c[1] ); + setScaled( _a[2], c[2] ); + setScaled( _a[3], rgba[3] ); + _updating = FALSE; + _updateSliders( CSC_CHANNELS_ALL ); + break; + case SP_COLOR_SCALES_MODE_CMYK: + _setRangeLimit(100.0); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_C:")); + _s[0]->set_tooltip_text(_("Cyan")); + gtk_widget_set_tooltip_text (_b[0], _("Cyan")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_M:")); + _s[1]->set_tooltip_text(_("Magenta")); + gtk_widget_set_tooltip_text (_b[1], _("Magenta")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_Y:")); + _s[2]->set_tooltip_text(_("Yellow")); + gtk_widget_set_tooltip_text (_b[2], _("Yellow")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_K:")); + _s[3]->set_tooltip_text(_("Black")); + gtk_widget_set_tooltip_text (_b[3], _("Black")); + gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[4]), _("_A:")); + _s[4]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text (_b[4], _("Alpha (opacity)")); + _s[0]->setMap(NULL); + gtk_widget_show (_l[4]); + _s[4]->show(); + gtk_widget_show (_b[4]); + _updating = TRUE; + + sp_color_rgb_to_cmyk_floatv (c, rgba[0], rgba[1], rgba[2]); + setScaled( _a[0], c[0] ); + setScaled( _a[1], c[1] ); + setScaled( _a[2], c[2] ); + setScaled( _a[3], c[3] ); + + setScaled( _a[4], rgba[3] ); + _updating = FALSE; + _updateSliders( CSC_CHANNELS_ALL ); + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } +} + +SPColorScalesMode ColorScales::getMode() const +{ + return _mode; +} + +void ColorScales::setSubmode( guint submode ) +{ + g_return_if_fail (_csel != NULL); + g_return_if_fail (SP_IS_COLOR_SCALES (_csel)); + g_return_if_fail (submode < 3); + + switch ( submode ) + { + default: + case 0: + setMode(SP_COLOR_SCALES_MODE_RGB); + break; + case 1: + setMode(SP_COLOR_SCALES_MODE_HSV); + break; + case 2: + setMode(SP_COLOR_SCALES_MODE_CMYK); + break; + } +} + +guint ColorScales::getSubmode() const +{ + guint submode = 0; + + switch ( _mode ) + { + case SP_COLOR_SCALES_MODE_HSV: + submode = 1; + break; + case SP_COLOR_SCALES_MODE_CMYK: + submode = 2; + break; + case SP_COLOR_SCALES_MODE_RGB: + default: + submode = 0; + } + + return submode; +} + +void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs ) +{ + gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel")); + + _adjustmentChanged(cs, channel); +} + +void ColorScales::_sliderAnyGrabbed() +{ + if (!_dragging) { + _dragging = TRUE; + _grabbed(); + _recalcColor( FALSE ); + } +} + +void ColorScales::_sliderAnyReleased() +{ + if (_dragging) { + _dragging = FALSE; + _released(); + _recalcColor( FALSE ); + } +} + +void ColorScales::_sliderAnyChanged() +{ + _recalcColor( TRUE ); +} + +void ColorScales::_adjustmentChanged( SPColorScales *cs, guint channel ) +{ + ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); + if (scales->_updating) return; + + scales->_updating = TRUE; + + scales->_updateSliders( (1 << channel) ); + + scales->_recalcColor (TRUE); + + scales->_updating = FALSE; +} + +void ColorScales::_updateSliders( guint channels ) +{ + gfloat rgb0[3], rgbm[3], rgb1[3]; +#ifdef SPCS_PREVIEW + guint32 rgba; +#endif + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { + /* Update red */ + _s[0]->setColors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); + } + if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { + /* Update green */ + _s[1]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); + } + if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { + /* Update blue */ + _s[2]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); + } + if (channels != CSC_CHANNEL_A) { + /* Update alpha */ + _s[3]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), + SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); + } + break; + case SP_COLOR_SCALES_MODE_HSV: + /* Hue is never updated */ + if ((channels != CSC_CHANNEL_S) && (channels != CSC_CHANNEL_A)) { + /* Update saturation */ + sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); + sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); + sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); + _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_V) && (channels != CSC_CHANNEL_A)) { + /* Update value */ + sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); + sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); + sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); + _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if (channels != CSC_CHANNEL_A) { + /* Update alpha */ + sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); + } + break; + case SP_COLOR_SCALES_MODE_CMYK: + if ((channels != CSC_CHANNEL_C) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update C */ + sp_color_cmyk_to_rgb_floatv (rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + _s[0]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_M) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update M */ + sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); + _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_Y) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update Y */ + sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); + _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_K) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update K */ + sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); + sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); + sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); + _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if (channels != CSC_CHANNEL_CMYKA) { + /* Update alpha */ + sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + _s[4]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); + } + break; + default: + g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } + + // Force the internal color to be updated + if ( !_updating ) + { + _recalcColor( TRUE ); + } + +#ifdef SPCS_PREVIEW + rgba = sp_color_scales_get_rgba32 (cs); + sp_color_preview_set_rgba32 (SP_COLOR_PREVIEW (_p), rgba); +#endif +} + +static const gchar * +sp_color_scales_hue_map (void) +{ + static gchar *map = NULL; + + if (!map) { + gchar *p; + gint h; + map = g_new (gchar, 4 * 1024); + p = map; + for (h = 0; h < 1024; h++) { + gfloat rgb[3]; + sp_color_hsl_to_rgb_floatv (rgb, h / 1024.0, 1.0, 0.5); + *p++ = SP_COLOR_F_TO_U (rgb[0]); + *p++ = SP_COLOR_F_TO_U (rgb[1]); + *p++ = SP_COLOR_F_TO_U (rgb[2]); + *p++ = 255; + } + } + + return map; +} + +ColorScalesFactory::ColorScalesFactory(SPColorScalesMode submode) + : _submode(submode) +{ +} + +ColorScalesFactory::~ColorScalesFactory() { +} + +Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES); + SPColorSelector* csel; + + csel = SP_COLOR_SELECTOR (w); + if ( _submode > 0 ) + { + csel->base->setSubmode( _submode - 1 ); + } + + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); + return wrapped; +} + +Glib::ustring ColorScalesFactory::modeName() const { + return gettext(ColorScales::SUBMODE_NAMES[_submode]); +} diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h new file mode 100644 index 000000000..946f0935e --- /dev/null +++ b/src/ui/widget/color-scales.h @@ -0,0 +1,139 @@ +#ifndef SEEN_SP_COLOR_SCALES_H +#define SEEN_SP_COLOR_SCALES_H + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include + +#include +#include + +#include "ui/selected-color.h" + +struct SPColorScales; +struct SPColorScalesClass; + +namespace Inkscape { +namespace UI { +namespace Widget { + +class ColorSlider; + +} +} +} + +typedef enum { + SP_COLOR_SCALES_MODE_NONE = 0, + SP_COLOR_SCALES_MODE_RGB = 1, + SP_COLOR_SCALES_MODE_HSV = 2, + SP_COLOR_SCALES_MODE_CMYK = 3 +} SPColorScalesMode; + + + +class ColorScales: public ColorSelector +{ +public: + static const gchar* SUBMODE_NAMES[]; + + static gfloat getScaled( const GtkAdjustment *a ); + static void setScaled( GtkAdjustment *a, gfloat v); + + ColorScales(SPColorSelector *csel); + virtual ~ColorScales(); + + virtual void init(); + + virtual void setSubmode(guint submode); + virtual guint getSubmode() const; + + void setMode(SPColorScalesMode mode); + SPColorScalesMode getMode() const; + + +protected: + virtual void _colorChanged(); + + static void _adjustmentAnyChanged(GtkAdjustment *adjustment, SPColorScales *cs); + void _sliderAnyGrabbed(); + void _sliderAnyReleased(); + void _sliderAnyChanged(); + static void _adjustmentChanged(SPColorScales *cs, guint channel); + + void _getRgbaFloatv(gfloat *rgba); + void _getCmykaFloatv(gfloat *cmyka); + guint32 _getRgba32(); + void _updateSliders(guint channels); + void _recalcColor(gboolean changing); + + void _setRangeLimit( gdouble upper ); + + SPColorScalesMode _mode; + gdouble _rangeLimit; + gboolean _updating : 1; + gboolean _dragging : 1; + GtkAdjustment *_a[5]; /* Channel adjustments */ + Inkscape::UI::Widget::ColorSlider *_s[5]; /* Channel sliders */ + GtkWidget *_b[5]; /* Spinbuttons */ + GtkWidget *_l[5]; /* Labels */ + +private: + // By default, disallow copy constructor and assignment operator + ColorScales(ColorScales const &obj); + ColorScales &operator=(ColorScales const &obj ); +}; + + + +#define SP_TYPE_COLOR_SCALES (sp_color_scales_get_type()) +#define SP_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_SCALES, SPColorScales)) +#define SP_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_SCALES, SPColorScalesClass)) +#define SP_IS_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_SCALES)) +#define SP_IS_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_SCALES)) + +struct SPColorScales { + SPColorSelector parent; +}; + +struct SPColorScalesClass { + SPColorSelectorClass parent_class; +}; + +GType sp_color_scales_get_type(); + +GtkWidget *sp_color_scales_new(); + + +class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory { +public: + ColorScalesFactory(SPColorScalesMode submode); + ~ColorScalesFactory(); + + Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; + +private: + SPColorScalesMode _submode; +}; + + +#endif /* !SEEN_SP_COLOR_SCALES_H */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index 711942e28..ad9662c6c 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -28,7 +28,7 @@ #include #endif -#include "widgets/sp-color-scales.h" +#include "ui/widget/color-scales.h" #include "preferences.h" static const gint SLIDER_WIDTH = 96; diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index e49e4ba16..4bf40dbb6 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -11,9 +11,9 @@ #include #include #include "dialogs/dialog-events.h" -#include "widgets/sp-color-scales.h" #include "svg/svg-icc-color.h" #include "ui/selected-color.h" +#include "ui/widget/color-scales.h" #include "ui/widget/color-slider.h" #include "ui/widget/gimpcolorwheel.h" diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index 7a1a7a4ef..6d860996a 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -70,8 +70,6 @@ ink_common_sources += \ widgets/sp-color-icc-selector.h \ widgets/sp-color-notebook.cpp \ widgets/sp-color-notebook.h \ - widgets/sp-color-scales.cpp \ - widgets/sp-color-scales.h \ widgets/sp-color-selector.cpp \ widgets/sp-color-selector.h \ widgets/spinbutton-events.cpp \ diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index cd1586661..808dfc925 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -12,7 +12,7 @@ #include "../dialogs/dialog-events.h" #include "sp-color-icc-selector.h" -#include "sp-color-scales.h" +#include "ui/widget/color-scales.h" #include "ui/widget/color-slider.h" #include "svg/svg-icc-color.h" #include "colorspace.h" diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 7495d1deb..0e1634314 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -30,7 +30,6 @@ #include "../preferences.h" #include "sp-color-notebook.h" #include "spw-utilities.h" -#include "sp-color-scales.h" #include "sp-color-icc-selector.h" #include "svg/svg-icc-color.h" #include "../inkscape.h" @@ -41,6 +40,7 @@ #include "tools-switch.h" #include "ui/tools/tool-base.h" #include "ui/widget/color-entry.h" +#include "ui/widget/color-scales.h" #include "ui/widget/color-wheel-selector.h" using Inkscape::CMSSystem; diff --git a/src/widgets/sp-color-scales.cpp b/src/widgets/sp-color-scales.cpp deleted file mode 100644 index 3d9de650c..000000000 --- a/src/widgets/sp-color-scales.cpp +++ /dev/null @@ -1,788 +0,0 @@ -/* - * bulia byak - */ - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "sp-color-scales.h" - -#include -#include -#include -#include - -#include "../dialogs/dialog-events.h" -#include "svg/svg-icc-color.h" -#include "ui/widget/color-slider.h" - -#define CSC_CHANNEL_R (1 << 0) -#define CSC_CHANNEL_G (1 << 1) -#define CSC_CHANNEL_B (1 << 2) -#define CSC_CHANNEL_A (1 << 3) -#define CSC_CHANNEL_H (1 << 0) -#define CSC_CHANNEL_S (1 << 1) -#define CSC_CHANNEL_V (1 << 2) -#define CSC_CHANNEL_C (1 << 0) -#define CSC_CHANNEL_M (1 << 1) -#define CSC_CHANNEL_Y (1 << 2) -#define CSC_CHANNEL_K (1 << 3) -#define CSC_CHANNEL_CMYKA (1 << 4) - -#define CSC_CHANNELS_ALL 0 - - -G_BEGIN_DECLS - -static void sp_color_scales_class_init (SPColorScalesClass *klass); -static void sp_color_scales_init (SPColorScales *cs); -static void sp_color_scales_dispose(GObject *object); - -static void sp_color_scales_show_all (GtkWidget *widget); -static void sp_color_scales_hide(GtkWidget *widget); - -static const gchar *sp_color_scales_hue_map (void); - -G_END_DECLS - -static SPColorSelectorClass *parent_class; - -#define XPAD 4 -#define YPAD 1 - -#define noDUMP_CHANGE_INFO 1 - -const gchar* ColorScales::SUBMODE_NAMES[] = { - N_("None"), - N_("RGB"), - N_("HSL"), - N_("CMYK") -}; - -GType -sp_color_scales_get_type (void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorScalesClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_color_scales_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPColorScales), - 0, /* n_preallocs */ - (GInstanceInitFunc) sp_color_scales_init, - NULL - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorScales", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void -sp_color_scales_class_init (SPColorScalesClass *klass) -{ - static const gchar* nameset[] = {N_("RGB"), N_("HSL"), N_("CMYK"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 3; - - object_class->dispose = sp_color_scales_dispose; - - widget_class->show_all = sp_color_scales_show_all; - widget_class->hide = sp_color_scales_hide; -} - -ColorScales::ColorScales( SPColorSelector* csel ) - : ColorSelector( csel ), - _mode( SP_COLOR_SCALES_MODE_NONE ), - _rangeLimit( 255.0 ), - _updating( FALSE ), - _dragging( FALSE ) -{ - for (gint i = 0; i < 5; i++) { - _l[i] = 0; - _a[i] = 0; - _s[i] = 0; - _b[i] = 0; - } -} - -ColorScales::~ColorScales() -{ - for (gint i = 0; i < 5; i++) { - _l[i] = 0; - _a[i] = 0; - _s[i] = 0; - _b[i] = 0; - } -} - -void sp_color_scales_init (SPColorScales *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorScales( SP_COLOR_SELECTOR(cs) ); - - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } -} - -void ColorScales::init() -{ - gint i; - - _updating = FALSE; - _dragging = FALSE; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new (5, 3, FALSE); -#endif - gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); - - /* Create components */ - for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) { - /* Label */ - _l[i] = gtk_label_new(""); - gtk_misc_set_alignment (GTK_MISC (_l[i]), 1.0, 0.5); - gtk_widget_show (_l[i]); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_l[i], XPAD); - gtk_widget_set_margin_right(_l[i], XPAD); - gtk_widget_set_margin_top(_l[i], YPAD); - gtk_widget_set_margin_bottom(_l[i], YPAD); - gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1); -#else - gtk_table_attach (GTK_TABLE (t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); -#endif - - /* Adjustment */ - _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); - /* Slider */ - _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); - _s[i]->show(); - -#if GTK_CHECK_VERSION(3,0,0) - _s[i]->set_margin_left(XPAD); - _s[i]->set_margin_right(XPAD); - _s[i]->set_margin_top(YPAD); - _s[i]->set_margin_bottom(YPAD); - _s[i]->set_hexpand(true); - gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); -#else - gtk_table_attach (GTK_TABLE (t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); -#endif - - /* Spinbutton */ - _b[i] = gtk_spin_button_new (GTK_ADJUSTMENT (_a[i]), 1.0, 0); - sp_dialog_defocus_on_enter (_b[i]); - gtk_label_set_mnemonic_widget (GTK_LABEL(_l[i]), _b[i]); - gtk_widget_show (_b[i]); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_b[i], XPAD); - gtk_widget_set_margin_right(_b[i], XPAD); - gtk_widget_set_margin_top(_b[i], YPAD); - gtk_widget_set_margin_bottom(_b[i], YPAD); - gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER); - gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1); -#else - gtk_table_attach (GTK_TABLE (t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); -#endif - - /* Attach channel value to adjustment */ - g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i)); - /* Signals */ - g_signal_connect (G_OBJECT (_a[i]), "value_changed", - G_CALLBACK (_adjustmentAnyChanged), _csel); - _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); - _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); - _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); - } - - /* Initial mode is none, so it works */ - setMode(SP_COLOR_SCALES_MODE_RGB); -} - -static void sp_color_scales_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_scales_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_scales_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_scales_new() -{ - SPColorScales *csel = SP_COLOR_SCALES(g_object_new (SP_TYPE_COLOR_SCALES, NULL)); - - return GTK_WIDGET (csel); -} - -void ColorScales::_recalcColor( gboolean changing ) -{ - if ( changing ) - { - SPColor color; - gfloat alpha = 1.0; - gfloat c[5]; - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - case SP_COLOR_SCALES_MODE_HSV: - _getRgbaFloatv(c); - color.set( c[0], c[1], c[2] ); - alpha = c[3]; - break; - case SP_COLOR_SCALES_MODE_CMYK: - { - _getCmykaFloatv( c ); - - float rgb[3]; - sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); - color.set( rgb[0], rgb[1], rgb[2] ); - alpha = c[4]; - break; - } - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; - } - - /* Preserve ICC */ - color.icc = _color.icc ? new SVGICCColor(*_color.icc) : 0; - - _updateInternals( color, alpha, _dragging ); - } - else - { - _updateInternals( _color, _alpha, _dragging ); - } -} - -/* Helpers for setting color value */ -gfloat ColorScales::getScaled( const GtkAdjustment *a ) -{ - gfloat val = gtk_adjustment_get_value (const_cast(a)) - / gtk_adjustment_get_upper (const_cast(a)); - return val; -} - -void ColorScales::setScaled( GtkAdjustment *a, gfloat v ) -{ - gfloat val = v * gtk_adjustment_get_upper (a); - gtk_adjustment_set_value( a, val ); -} - -void ColorScales::_setRangeLimit( gdouble upper ) -{ - _rangeLimit = upper; - for ( gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++ ) { - gtk_adjustment_set_upper (_a[i], upper); - gtk_adjustment_changed( _a[i] ); - } -} - -void ColorScales::_colorChanged() -{ -#ifdef DUMP_CHANGE_INFO - g_message("ColorScales::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.v.c[0], _color.v.c[1], _color.v.c[2], _alpha ); -#endif - gfloat tmp[3]; - gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - sp_color_get_rgb_floatv( &_color, c ); - c[3] = _alpha; - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_get_rgb_floatv( &_color, tmp ); - sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); - c[3] = _alpha; - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_CMYK: - sp_color_get_cmyk_floatv( &_color, c ); - c[4] = _alpha; - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; - } - - _updating = TRUE; - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], c[3] ); - setScaled( _a[4], c[4] ); - _updateSliders( CSC_CHANNELS_ALL ); - _updating = FALSE; -} - -void ColorScales::_getRgbaFloatv( gfloat *rgba ) -{ - g_return_if_fail (rgba != NULL); - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - rgba[0] = getScaled(_a[0]); - rgba[1] = getScaled(_a[1]); - rgba[2] = getScaled(_a[2]); - rgba[3] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_hsl_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - rgba[3] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_CMYK: - sp_color_cmyk_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - rgba[3] = getScaled(_a[4]); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } -} - -void ColorScales::_getCmykaFloatv( gfloat *cmyka ) -{ - gfloat rgb[3]; - - g_return_if_fail (cmyka != NULL); - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - sp_color_rgb_to_cmyk_floatv (cmyka, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - cmyka[4] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_hsl_to_rgb_floatv (rgb, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - sp_color_rgb_to_cmyk_floatv (cmyka, rgb[0], rgb[1], rgb[2]); - cmyka[4] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_CMYK: - cmyka[0] = getScaled(_a[0]); - cmyka[1] = getScaled(_a[1]); - cmyka[2] = getScaled(_a[2]); - cmyka[3] = getScaled(_a[3]); - cmyka[4] = getScaled(_a[4]); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } -} - -guint32 ColorScales::_getRgba32() -{ - gfloat c[4]; - guint32 rgba; - - _getRgbaFloatv(c); - - rgba = SP_RGBA32_F_COMPOSE (c[0], c[1], c[2], c[3]); - - return rgba; -} - -void ColorScales::setMode(SPColorScalesMode mode) -{ - gfloat rgba[4]; - gfloat c[4]; - - if (_mode == mode) return; - - if ((_mode == SP_COLOR_SCALES_MODE_RGB) || - (_mode == SP_COLOR_SCALES_MODE_HSV) || - (_mode == SP_COLOR_SCALES_MODE_CMYK)) { - _getRgbaFloatv(rgba); - } else { - rgba[0] = rgba[1] = rgba[2] = rgba[3] = 1.0; - } - - _mode = mode; - - switch (mode) { - case SP_COLOR_SCALES_MODE_RGB: - _setRangeLimit(255.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_R:")); - _s[0]->set_tooltip_text(_("Red")); - gtk_widget_set_tooltip_text (_b[0], _("Red")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_G:")); - _s[1]->set_tooltip_text(_("Green")); - gtk_widget_set_tooltip_text (_b[1], _("Green")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_B:")); - _s[2]->set_tooltip_text(_("Blue")); - gtk_widget_set_tooltip_text (_b[2], _("Blue")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - _s[3]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->setMap(NULL); - gtk_widget_hide (_l[4]); - _s[4]->hide(); - gtk_widget_hide (_b[4]); - _updating = TRUE; - setScaled( _a[0], rgba[0] ); - setScaled( _a[1], rgba[1] ); - setScaled( _a[2], rgba[2] ); - setScaled( _a[3], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - case SP_COLOR_SCALES_MODE_HSV: - _setRangeLimit(255.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_H:")); - _s[0]->set_tooltip_text(_("Hue")); - gtk_widget_set_tooltip_text (_b[0], _("Hue")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_S:")); - _s[1]->set_tooltip_text(_("Saturation")); - gtk_widget_set_tooltip_text (_b[1], _("Saturation")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_L:")); - _s[2]->set_tooltip_text(_("Lightness")); - gtk_widget_set_tooltip_text (_b[2], _("Lightness")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - _s[3]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->setMap((guchar *)(sp_color_scales_hue_map())); - gtk_widget_hide (_l[4]); - _s[4]->hide(); - gtk_widget_hide (_b[4]); - _updating = TRUE; - c[0] = 0.0; - sp_color_rgb_to_hsl_floatv (c, rgba[0], rgba[1], rgba[2]); - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - case SP_COLOR_SCALES_MODE_CMYK: - _setRangeLimit(100.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_C:")); - _s[0]->set_tooltip_text(_("Cyan")); - gtk_widget_set_tooltip_text (_b[0], _("Cyan")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_M:")); - _s[1]->set_tooltip_text(_("Magenta")); - gtk_widget_set_tooltip_text (_b[1], _("Magenta")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_Y:")); - _s[2]->set_tooltip_text(_("Yellow")); - gtk_widget_set_tooltip_text (_b[2], _("Yellow")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_K:")); - _s[3]->set_tooltip_text(_("Black")); - gtk_widget_set_tooltip_text (_b[3], _("Black")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[4]), _("_A:")); - _s[4]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[4], _("Alpha (opacity)")); - _s[0]->setMap(NULL); - gtk_widget_show (_l[4]); - _s[4]->show(); - gtk_widget_show (_b[4]); - _updating = TRUE; - - sp_color_rgb_to_cmyk_floatv (c, rgba[0], rgba[1], rgba[2]); - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], c[3] ); - - setScaled( _a[4], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } -} - -SPColorScalesMode ColorScales::getMode() const -{ - return _mode; -} - -void ColorScales::setSubmode( guint submode ) -{ - g_return_if_fail (_csel != NULL); - g_return_if_fail (SP_IS_COLOR_SCALES (_csel)); - g_return_if_fail (submode < 3); - - switch ( submode ) - { - default: - case 0: - setMode(SP_COLOR_SCALES_MODE_RGB); - break; - case 1: - setMode(SP_COLOR_SCALES_MODE_HSV); - break; - case 2: - setMode(SP_COLOR_SCALES_MODE_CMYK); - break; - } -} - -guint ColorScales::getSubmode() const -{ - guint submode = 0; - - switch ( _mode ) - { - case SP_COLOR_SCALES_MODE_HSV: - submode = 1; - break; - case SP_COLOR_SCALES_MODE_CMYK: - submode = 2; - break; - case SP_COLOR_SCALES_MODE_RGB: - default: - submode = 0; - } - - return submode; -} - -void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs ) -{ - gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel")); - - _adjustmentChanged(cs, channel); -} - -void ColorScales::_sliderAnyGrabbed() -{ - if (!_dragging) { - _dragging = TRUE; - _grabbed(); - _recalcColor( FALSE ); - } -} - -void ColorScales::_sliderAnyReleased() -{ - if (_dragging) { - _dragging = FALSE; - _released(); - _recalcColor( FALSE ); - } -} - -void ColorScales::_sliderAnyChanged() -{ - _recalcColor( TRUE ); -} - -void ColorScales::_adjustmentChanged( SPColorScales *cs, guint channel ) -{ - ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (scales->_updating) return; - - scales->_updating = TRUE; - - scales->_updateSliders( (1 << channel) ); - - scales->_recalcColor (TRUE); - - scales->_updating = FALSE; -} - -void ColorScales::_updateSliders( guint channels ) -{ - gfloat rgb0[3], rgbm[3], rgb1[3]; -#ifdef SPCS_PREVIEW - guint32 rgba; -#endif - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { - /* Update red */ - _s[0]->setColors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); - } - if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { - /* Update green */ - _s[1]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); - } - if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { - /* Update blue */ - _s[2]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); - } - if (channels != CSC_CHANNEL_A) { - /* Update alpha */ - _s[3]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); - } - break; - case SP_COLOR_SCALES_MODE_HSV: - /* Hue is never updated */ - if ((channels != CSC_CHANNEL_S) && (channels != CSC_CHANNEL_A)) { - /* Update saturation */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); - sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); - sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); - _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_V) && (channels != CSC_CHANNEL_A)) { - /* Update value */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); - sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); - sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); - _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if (channels != CSC_CHANNEL_A) { - /* Update alpha */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); - } - break; - case SP_COLOR_SCALES_MODE_CMYK: - if ((channels != CSC_CHANNEL_C) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update C */ - sp_color_cmyk_to_rgb_floatv (rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[0]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_M) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update M */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); - _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_Y) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update Y */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); - _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_K) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update K */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); - _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if (channels != CSC_CHANNEL_CMYKA) { - /* Update alpha */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[4]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); - } - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } - - // Force the internal color to be updated - if ( !_updating ) - { - _recalcColor( TRUE ); - } - -#ifdef SPCS_PREVIEW - rgba = sp_color_scales_get_rgba32 (cs); - sp_color_preview_set_rgba32 (SP_COLOR_PREVIEW (_p), rgba); -#endif -} - -static const gchar * -sp_color_scales_hue_map (void) -{ - static gchar *map = NULL; - - if (!map) { - gchar *p; - gint h; - map = g_new (gchar, 4 * 1024); - p = map; - for (h = 0; h < 1024; h++) { - gfloat rgb[3]; - sp_color_hsl_to_rgb_floatv (rgb, h / 1024.0, 1.0, 0.5); - *p++ = SP_COLOR_F_TO_U (rgb[0]); - *p++ = SP_COLOR_F_TO_U (rgb[1]); - *p++ = SP_COLOR_F_TO_U (rgb[2]); - *p++ = 255; - } - } - - return map; -} - -ColorScalesFactory::ColorScalesFactory(SPColorScalesMode submode) - : _submode(submode) -{ -} - -ColorScalesFactory::~ColorScalesFactory() { -} - -Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES); - SPColorSelector* csel; - - csel = SP_COLOR_SELECTOR (w); - if ( _submode > 0 ) - { - csel->base->setSubmode( _submode - 1 ); - } - - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; -} - -Glib::ustring ColorScalesFactory::modeName() const { - return gettext(ColorScales::SUBMODE_NAMES[_submode]); -} diff --git a/src/widgets/sp-color-scales.h b/src/widgets/sp-color-scales.h deleted file mode 100644 index 946f0935e..000000000 --- a/src/widgets/sp-color-scales.h +++ /dev/null @@ -1,139 +0,0 @@ -#ifndef SEEN_SP_COLOR_SCALES_H -#define SEEN_SP_COLOR_SCALES_H - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include - -#include -#include - -#include "ui/selected-color.h" - -struct SPColorScales; -struct SPColorScalesClass; - -namespace Inkscape { -namespace UI { -namespace Widget { - -class ColorSlider; - -} -} -} - -typedef enum { - SP_COLOR_SCALES_MODE_NONE = 0, - SP_COLOR_SCALES_MODE_RGB = 1, - SP_COLOR_SCALES_MODE_HSV = 2, - SP_COLOR_SCALES_MODE_CMYK = 3 -} SPColorScalesMode; - - - -class ColorScales: public ColorSelector -{ -public: - static const gchar* SUBMODE_NAMES[]; - - static gfloat getScaled( const GtkAdjustment *a ); - static void setScaled( GtkAdjustment *a, gfloat v); - - ColorScales(SPColorSelector *csel); - virtual ~ColorScales(); - - virtual void init(); - - virtual void setSubmode(guint submode); - virtual guint getSubmode() const; - - void setMode(SPColorScalesMode mode); - SPColorScalesMode getMode() const; - - -protected: - virtual void _colorChanged(); - - static void _adjustmentAnyChanged(GtkAdjustment *adjustment, SPColorScales *cs); - void _sliderAnyGrabbed(); - void _sliderAnyReleased(); - void _sliderAnyChanged(); - static void _adjustmentChanged(SPColorScales *cs, guint channel); - - void _getRgbaFloatv(gfloat *rgba); - void _getCmykaFloatv(gfloat *cmyka); - guint32 _getRgba32(); - void _updateSliders(guint channels); - void _recalcColor(gboolean changing); - - void _setRangeLimit( gdouble upper ); - - SPColorScalesMode _mode; - gdouble _rangeLimit; - gboolean _updating : 1; - gboolean _dragging : 1; - GtkAdjustment *_a[5]; /* Channel adjustments */ - Inkscape::UI::Widget::ColorSlider *_s[5]; /* Channel sliders */ - GtkWidget *_b[5]; /* Spinbuttons */ - GtkWidget *_l[5]; /* Labels */ - -private: - // By default, disallow copy constructor and assignment operator - ColorScales(ColorScales const &obj); - ColorScales &operator=(ColorScales const &obj ); -}; - - - -#define SP_TYPE_COLOR_SCALES (sp_color_scales_get_type()) -#define SP_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_SCALES, SPColorScales)) -#define SP_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_SCALES, SPColorScalesClass)) -#define SP_IS_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_SCALES)) -#define SP_IS_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_SCALES)) - -struct SPColorScales { - SPColorSelector parent; -}; - -struct SPColorScalesClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_scales_get_type(); - -GtkWidget *sp_color_scales_new(); - - -class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory { -public: - ColorScalesFactory(SPColorScalesMode submode); - ~ColorScalesFactory(); - - Gtk::Widget *createWidget(Inkscape::UI::SelectedColor &color) const; - Glib::ustring modeName() const; - -private: - SPColorScalesMode _submode; -}; - - -#endif /* !SEEN_SP_COLOR_SCALES_H */ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 : -- cgit v1.2.3 From 0debbafdabda818d9f9a971be6cd225c50e51d1a Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 15:12:26 +0200 Subject: updated CMakeLists (bzr r13341.6.39) --- src/ui/CMakeLists.txt | 8 ++++++++ src/widgets/CMakeLists.txt | 4 ---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 883ba3427..65e93f1b0 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -3,6 +3,7 @@ set(ui_SRC clipboard.cpp control-manager.cpp previewholder.cpp + selected-color.cpp uxmanager.cpp cache/svg_preview_cache.cpp @@ -107,9 +108,12 @@ set(ui_SRC widget/anchor-selector.cpp widget/button.cpp + widget/color-entry.cpp widget/color-picker.cpp widget/color-preview.cpp + widget/color-scales.cpp widget/color-slider.cpp + widget/color-wheel-selector.cpp widget/dock-item.cpp widget/dock.cpp widget/entity-entry.cpp @@ -160,6 +164,7 @@ set(ui_SRC previewable.h previewfillable.h previewholder.h + selected-color.h uxmanager.h cache/svg_preview_cache.h @@ -269,9 +274,12 @@ set(ui_SRC widget/anchor-selector.h widget/attr-widget.h widget/button.h + widget/color-entry.h widget/color-picker.h widget/color-preview.h + widget/color-scales.h widget/color-slider.h + widget/color-wheel-selector.h widget/combo-enums.h widget/dock-item.h widget/dock.h diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index b65e0b1db..dd0cba0b2 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -38,9 +38,7 @@ set(widgets_SRC sp-attribute-widget.cpp sp-color-icc-selector.cpp sp-color-notebook.cpp - sp-color-scales.cpp sp-color-selector.cpp - sp-color-wheel-selector.cpp sp-widget.cpp sp-xmlview-attr-list.cpp sp-xmlview-content.cpp @@ -94,9 +92,7 @@ set(widgets_SRC sp-attribute-widget.h sp-color-icc-selector.h sp-color-notebook.h - sp-color-scales.h sp-color-selector.h - sp-color-wheel-selector.h sp-widget.h sp-xmlview-attr-list.h sp-xmlview-content.h -- cgit v1.2.3 From d128fc4fd60ebcd8ac820f584b5a4b3b35ad5b00 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 20:15:08 +0200 Subject: SPColorScales c++-sification - using SelectedColor (bzr r13341.6.40) --- src/ui/widget/color-scales.cpp | 253 ++++++++++------------------------ src/ui/widget/color-scales.h | 63 +++------ src/widgets/sp-color-icc-selector.cpp | 3 + src/widgets/sp-color-notebook.cpp | 6 +- src/widgets/sp-color-notebook.h | 1 + src/widgets/sp-color-selector.cpp | 2 +- 6 files changed, 101 insertions(+), 227 deletions(-) diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index bba44034a..234e7a2d1 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -32,27 +32,18 @@ #define CSC_CHANNELS_ALL 0 - -G_BEGIN_DECLS - -static void sp_color_scales_class_init (SPColorScalesClass *klass); -static void sp_color_scales_init (SPColorScales *cs); -static void sp_color_scales_dispose(GObject *object); - -static void sp_color_scales_show_all (GtkWidget *widget); -static void sp_color_scales_hide(GtkWidget *widget); - -static const gchar *sp_color_scales_hue_map (void); - -G_END_DECLS - -static SPColorSelectorClass *parent_class; - #define XPAD 4 #define YPAD 1 #define noDUMP_CHANGE_INFO 1 +namespace Inkscape { +namespace UI { +namespace Widget { + + +static const gchar * sp_color_scales_hue_map (); + const gchar* ColorScales::SUBMODE_NAMES[] = { N_("None"), N_("RGB"), @@ -60,54 +51,14 @@ const gchar* ColorScales::SUBMODE_NAMES[] = { N_("CMYK") }; -GType -sp_color_scales_get_type (void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorScalesClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) sp_color_scales_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (SPColorScales), - 0, /* n_preallocs */ - (GInstanceInitFunc) sp_color_scales_init, - NULL - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorScales", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void -sp_color_scales_class_init (SPColorScalesClass *klass) -{ - static const gchar* nameset[] = {N_("RGB"), N_("HSL"), N_("CMYK"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 3; - - object_class->dispose = sp_color_scales_dispose; - - widget_class->show_all = sp_color_scales_show_all; - widget_class->hide = sp_color_scales_hide; -} - -ColorScales::ColorScales( SPColorSelector* csel ) - : ColorSelector( csel ), - _mode( SP_COLOR_SCALES_MODE_NONE ), +ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode) +#if GTK_CHECK_VERSION(3,0,0) + : Gtk::Grid() +#else + : Gtk::Table(5, 3, false) +#endif + , _color(color) + , _rangeLimit( 255.0 ), _updating( FALSE ), _dragging( FALSE ) @@ -118,6 +69,12 @@ ColorScales::ColorScales( SPColorSelector* csel ) _s[i] = 0; _b[i] = 0; } + + _initUI(mode); + + _color.signal_changed.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged)); + _color.signal_dragged.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged)); + } ColorScales::~ColorScales() @@ -130,30 +87,14 @@ ColorScales::~ColorScales() } } -void sp_color_scales_init (SPColorScales *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorScales( SP_COLOR_SELECTOR(cs) ); - - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } -} - -void ColorScales::init() +void ColorScales::_initUI(SPColorScalesMode mode) { gint i; _updating = FALSE; _dragging = FALSE; -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new (5, 3, FALSE); -#endif - gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); + GtkWidget *t = GTK_WIDGET(gobj()); /* Create components */ for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) { @@ -211,42 +152,23 @@ void ColorScales::init() g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i)); /* Signals */ g_signal_connect (G_OBJECT (_a[i]), "value_changed", - G_CALLBACK (_adjustmentAnyChanged), _csel); + G_CALLBACK (_adjustmentAnyChanged), this); _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); } /* Initial mode is none, so it works */ - setMode(SP_COLOR_SCALES_MODE_RGB); -} - -static void sp_color_scales_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) - (* (G_OBJECT_CLASS(parent_class))->dispose) (object); -} - -static void -sp_color_scales_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_scales_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_scales_new() -{ - SPColorScales *csel = SP_COLOR_SCALES(g_object_new (SP_TYPE_COLOR_SCALES, NULL)); - - return GTK_WIDGET (csel); + setMode(mode); } void ColorScales::_recalcColor( gboolean changing ) { + if (_updating) { + return; + } + _updating = true; + if ( changing ) { SPColor color; @@ -275,15 +197,14 @@ void ColorScales::_recalcColor( gboolean changing ) break; } - /* Preserve ICC */ - color.icc = _color.icc ? new SVGICCColor(*_color.icc) : 0; - - _updateInternals( color, alpha, _dragging ); + _color.preserveICC(); + _color.setColorAlpha(color, alpha, true); } else { - _updateInternals( _color, _alpha, _dragging ); + // _updateInternals( _color, _alpha, _dragging ); } + _updating = false; } /* Helpers for setting color value */ @@ -309,29 +230,34 @@ void ColorScales::_setRangeLimit( gdouble upper ) } } -void ColorScales::_colorChanged() +void ColorScales::_onColorChanged() { + if (_updating || !get_visible()) { + return; + } #ifdef DUMP_CHANGE_INFO - g_message("ColorScales::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.v.c[0], _color.v.c[1], _color.v.c[2], _alpha ); + g_message("ColorScales::_onColorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], _color.alpha() ); #endif gfloat tmp[3]; gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; + SPColor color = _color.color(); + switch (_mode) { case SP_COLOR_SCALES_MODE_RGB: - sp_color_get_rgb_floatv( &_color, c ); - c[3] = _alpha; + sp_color_get_rgb_floatv( &color, c ); + c[3] = _color.alpha(); c[4] = 0.0; break; case SP_COLOR_SCALES_MODE_HSV: - sp_color_get_rgb_floatv( &_color, tmp ); + sp_color_get_rgb_floatv( &color, tmp ); sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); - c[3] = _alpha; + c[3] = _color.alpha(); c[4] = 0.0; break; case SP_COLOR_SCALES_MODE_CMYK: - sp_color_get_cmyk_floatv( &_color, c ); - c[4] = _alpha; + sp_color_get_cmyk_floatv( &color, c ); + c[4] = _color.alpha(); break; default: g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); @@ -530,48 +456,7 @@ SPColorScalesMode ColorScales::getMode() const return _mode; } -void ColorScales::setSubmode( guint submode ) -{ - g_return_if_fail (_csel != NULL); - g_return_if_fail (SP_IS_COLOR_SCALES (_csel)); - g_return_if_fail (submode < 3); - - switch ( submode ) - { - default: - case 0: - setMode(SP_COLOR_SCALES_MODE_RGB); - break; - case 1: - setMode(SP_COLOR_SCALES_MODE_HSV); - break; - case 2: - setMode(SP_COLOR_SCALES_MODE_CMYK); - break; - } -} - -guint ColorScales::getSubmode() const -{ - guint submode = 0; - - switch ( _mode ) - { - case SP_COLOR_SCALES_MODE_HSV: - submode = 1; - break; - case SP_COLOR_SCALES_MODE_CMYK: - submode = 2; - break; - case SP_COLOR_SCALES_MODE_RGB: - default: - submode = 0; - } - - return submode; -} - -void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScales *cs ) +void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, ColorScales *cs ) { gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel")); @@ -580,39 +465,46 @@ void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, SPColorScale void ColorScales::_sliderAnyGrabbed() { + if (_updating) { + return; + } + _updating = true; if (!_dragging) { _dragging = TRUE; - _grabbed(); + _color.setHeld(true); _recalcColor( FALSE ); } + _updating = false; } void ColorScales::_sliderAnyReleased() { + if (_updating) { + return; + } + _updating = true; if (_dragging) { _dragging = FALSE; - _released(); + _color.setHeld(false); _recalcColor( FALSE ); } + _updating = false; } void ColorScales::_sliderAnyChanged() { + if (_updating) { + return; + } _recalcColor( TRUE ); } -void ColorScales::_adjustmentChanged( SPColorScales *cs, guint channel ) +void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel ) { - ColorScales* scales = static_cast(SP_COLOR_SELECTOR(cs)->base); if (scales->_updating) return; - scales->_updating = TRUE; - scales->_updateSliders( (1 << channel) ); - scales->_recalcColor (TRUE); - - scales->_updating = FALSE; } void ColorScales::_updateSliders( guint channels ) @@ -770,19 +662,14 @@ ColorScalesFactory::~ColorScalesFactory() { } Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_SCALES); - SPColorSelector* csel; - - csel = SP_COLOR_SELECTOR (w); - if ( _submode > 0 ) - { - csel->base->setSubmode( _submode - 1 ); - } - - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; + Gtk::Widget *w = Gtk::manage(new ColorScales(color, _submode)); + return w; } Glib::ustring ColorScalesFactory::modeName() const { return gettext(ColorScales::SUBMODE_NAMES[_submode]); } + +} +} +} diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index 946f0935e..21f9708c1 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -9,26 +9,23 @@ #include #endif +#include #include #include - -#include -#include +#if GTK_CHECK_VERSION(3,0,0) +#include +#else +#include +#endif #include "ui/selected-color.h" -struct SPColorScales; -struct SPColorScalesClass; - namespace Inkscape { namespace UI { namespace Widget { class ColorSlider; -} -} -} typedef enum { SP_COLOR_SCALES_MODE_NONE = 0, @@ -39,7 +36,12 @@ typedef enum { -class ColorScales: public ColorSelector +class ColorScales +#if GTK_CHECK_VERSION(3,0,0) + : public Gtk::Grid +#else + : public Gtk::Table +#endif { public: static const gchar* SUBMODE_NAMES[]; @@ -47,26 +49,22 @@ public: static gfloat getScaled( const GtkAdjustment *a ); static void setScaled( GtkAdjustment *a, gfloat v); - ColorScales(SPColorSelector *csel); + ColorScales(SelectedColor &color, SPColorScalesMode mode); virtual ~ColorScales(); - virtual void init(); - - virtual void setSubmode(guint submode); - virtual guint getSubmode() const; + virtual void _initUI(SPColorScalesMode mode); void setMode(SPColorScalesMode mode); SPColorScalesMode getMode() const; - protected: - virtual void _colorChanged(); + void _onColorChanged(); - static void _adjustmentAnyChanged(GtkAdjustment *adjustment, SPColorScales *cs); + static void _adjustmentAnyChanged(GtkAdjustment *adjustment, ColorScales *cs); void _sliderAnyGrabbed(); void _sliderAnyReleased(); void _sliderAnyChanged(); - static void _adjustmentChanged(SPColorScales *cs, guint channel); + static void _adjustmentChanged(ColorScales *cs, guint channel); void _getRgbaFloatv(gfloat *rgba); void _getCmykaFloatv(gfloat *cmyka); @@ -76,6 +74,7 @@ protected: void _setRangeLimit( gdouble upper ); + SelectedColor &_color; SPColorScalesMode _mode; gdouble _rangeLimit; gboolean _updating : 1; @@ -92,26 +91,6 @@ private: }; - -#define SP_TYPE_COLOR_SCALES (sp_color_scales_get_type()) -#define SP_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_SCALES, SPColorScales)) -#define SP_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_SCALES, SPColorScalesClass)) -#define SP_IS_COLOR_SCALES(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_SCALES)) -#define SP_IS_COLOR_SCALES_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_SCALES)) - -struct SPColorScales { - SPColorSelector parent; -}; - -struct SPColorScalesClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_scales_get_type(); - -GtkWidget *sp_color_scales_new(); - - class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory { public: ColorScalesFactory(SPColorScalesMode submode); @@ -124,9 +103,11 @@ private: SPColorScalesMode _submode; }; +} +} +} -#endif /* !SEEN_SP_COLOR_SCALES_H */ - +#endif /* Local Variables: mode:c++ diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp index 808dfc925..f872a3164 100644 --- a/src/widgets/sp-color-icc-selector.cpp +++ b/src/widgets/sp-color-icc-selector.cpp @@ -33,6 +33,9 @@ #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +using namespace Inkscape::UI::Widget; + + #ifdef DEBUG_LCMS extern guint update_in_progress; #define DEBUG_MESSAGE(key, ...) \ diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 0e1634314..807fe38e0 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -455,7 +455,9 @@ ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, void ColorNotebook::_colorChanged() { + _updating = true; _selected_color.setColorAlpha(_color, _alpha, true); + _updating = false; SPColorSelector* cselPage = getCurrentSelector(); if ( cselPage ) @@ -613,13 +615,13 @@ void ColorNotebook::_onSelectedColorDragged() { } bool oldState = _dragging; - _dragging = TRUE; + _dragging = true; SPColor color; gfloat alpha = 1.0; _updating = true; _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, _dragging); + _updateInternals(color, alpha, true); _updating = false; _dragging = oldState; diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index 7c6dbc770..ca9343bf0 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -23,6 +23,7 @@ #include #include #include +#include #include "../color.h" #include "sp-color-selector.h" diff --git a/src/widgets/sp-color-selector.cpp b/src/widgets/sp-color-selector.cpp index 05af162ef..58aa0e1af 100644 --- a/src/widgets/sp-color-selector.cpp +++ b/src/widgets/sp-color-selector.cpp @@ -312,7 +312,7 @@ void ColorSelector::_updateInternals( const SPColor& color, gfloat alpha, gboole (_held ? "CHANGED" : "DRAGGED" ), color.toRGBA32( alpha ), (color.icc?color.icc->colorProfile.c_str():""), FOO_NAME(_csel)); #endif - g_signal_emit(G_OBJECT(_csel), csel_signals[_held ? CHANGED : DRAGGED], 0); + g_signal_emit(G_OBJECT(_csel), csel_signals[_held ? DRAGGED : CHANGED], 0); } } -- cgit v1.2.3 From e1e64d41e2a71a5e9a18b5a40803a72ad288cd53 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 20:22:51 +0200 Subject: SPColorICC c++sification: moved to ui/widget/ (bzr r13341.6.41) --- src/ui/CMakeLists.txt | 2 + src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-icc-selector.cpp | 1150 +++++++++++++++++++++++++++++++++ src/ui/widget/color-icc-selector.h | 81 +++ src/widgets/CMakeLists.txt | 2 - src/widgets/Makefile_insert | 2 - src/widgets/sp-color-icc-selector.cpp | 1150 --------------------------------- src/widgets/sp-color-icc-selector.h | 81 --- src/widgets/sp-color-notebook.cpp | 2 +- 9 files changed, 1236 insertions(+), 1236 deletions(-) create mode 100644 src/ui/widget/color-icc-selector.cpp create mode 100644 src/ui/widget/color-icc-selector.h delete mode 100644 src/widgets/sp-color-icc-selector.cpp delete mode 100644 src/widgets/sp-color-icc-selector.h diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 65e93f1b0..dbfba0508 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -109,6 +109,7 @@ set(ui_SRC widget/anchor-selector.cpp widget/button.cpp widget/color-entry.cpp + widget/color-icc-selector.cpp widget/color-picker.cpp widget/color-preview.cpp widget/color-scales.cpp @@ -275,6 +276,7 @@ set(ui_SRC widget/attr-widget.h widget/button.h widget/color-entry.h + widget/color-icc-selector.h widget/color-picker.h widget/color-preview.h widget/color-scales.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index 039e2a8d9..f39236da7 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -8,6 +8,8 @@ ink_common_sources += \ ui/widget/button.cpp \ ui/widget/color-entry.cpp \ ui/widget/color-entry.h \ + ui/widget/color-icc-selector.cpp \ + ui/widget/color-icc-selector.h \ ui/widget/color-wheel-selector.cpp \ ui/widget/color-wheel-selector.h \ ui/widget/color-picker.cpp \ diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp new file mode 100644 index 000000000..74e63f320 --- /dev/null +++ b/src/ui/widget/color-icc-selector.cpp @@ -0,0 +1,1150 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "widgets/gradient-vector.h" +#include +#include +#include +#include +#include +#include + +#include "dialogs/dialog-events.h" +#include "ui/widget/color-icc-selector.h" +#include "ui/widget/color-scales.h" +#include "ui/widget/color-slider.h" +#include "svg/svg-icc-color.h" +#include "colorspace.h" +#include "document.h" +#include "inkscape.h" +#include "profile-manager.h" + +#define noDEBUG_LCMS + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +#include "color-profile.h" +#include "cms-system.h" +#include "color-profile-cms-fns.h" + +#ifdef DEBUG_LCMS +#include "preferences.h" +#endif // DEBUG_LCMS +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + +using namespace Inkscape::UI::Widget; + + +#ifdef DEBUG_LCMS +extern guint update_in_progress; +#define DEBUG_MESSAGE(key, ...) \ +{\ + Inkscape::Preferences *prefs = Inkscape::Preferences::get();\ + bool dump = prefs->getBool("/options/scislac/" #key);\ + bool dumpD = prefs->getBool("/options/scislac/" #key "D");\ + bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2");\ + dumpD &&= ( (update_in_progress == 0) || dumpD2 );\ + if ( dump )\ + {\ + g_message( __VA_ARGS__ );\ +\ + }\ + if ( dumpD )\ + {\ + GtkWidget *dialog = gtk_message_dialog_new(NULL,\ + GTK_DIALOG_DESTROY_WITH_PARENT, \ + GTK_MESSAGE_INFO, \ + GTK_BUTTONS_OK, \ + __VA_ARGS__ \ + );\ + g_signal_connect_swapped(dialog, "response",\ + G_CALLBACK(gtk_widget_destroy), \ + dialog); \ + gtk_widget_show_all( dialog );\ + }\ +} +#endif // DEBUG_LCMS + + + +G_BEGIN_DECLS + +static void sp_color_icc_selector_class_init (SPColorICCSelectorClass *klass); +static void sp_color_icc_selector_init (SPColorICCSelector *cs); +static void sp_color_icc_selector_dispose(GObject *object); + +static void sp_color_icc_selector_show_all (GtkWidget *widget); +static void sp_color_icc_selector_hide(GtkWidget *widget); + +G_END_DECLS + +/** + * Class containing the parts for a single color component's UI presence. + */ +class ComponentUI +{ +public: + ComponentUI() : + _component(), + _adj(0), + _slider(0), + _btn(0), + _label(0), + _map(0) + { + } + + ComponentUI(colorspace::Component const &component) : + _component(component), + _adj(0), + _slider(0), + _btn(0), + _label(0), + _map(0) + { + } + + colorspace::Component _component; + GtkAdjustment *_adj; // Component adjustment + Inkscape::UI::Widget::ColorSlider *_slider; + GtkWidget *_btn; // spinbutton + GtkWidget *_label; // Label + guchar *_map; +}; + +/** + * Class that implements the internals of the selector. + */ +class ColorICCSelectorImpl +{ +public: + + ColorICCSelectorImpl( ColorICCSelector *owner); + + ~ColorICCSelectorImpl(); + + static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorICCSelector *cs ); + + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); + + static void _profileSelected( GtkWidget* src, gpointer data ); + static void _fixupHit( GtkWidget* src, gpointer data ); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + void _setProfile( SVGICCColor* profile ); + void _switchToProfile( gchar const* name ); +#endif + void _updateSliders( gint ignore ); + void _profilesChanged( std::string const & name ); + + ColorICCSelector *_owner; + + gboolean _updating : 1; + gboolean _dragging : 1; + + guint32 _fixupNeeded; + GtkWidget* _fixupBtn; + GtkWidget* _profileSel; + + std::vector _compUI; + + GtkAdjustment* _adj; // Channel adjustment + Inkscape::UI::Widget::ColorSlider* _slider; + GtkWidget* _sbtn; // Spinbutton + GtkWidget* _label; // Label + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + std::string _profileName; + Inkscape::ColorProfile* _prof; + guint _profChannelCount; + gulong _profChangedID; +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +}; + + +static SPColorSelectorClass *parent_class; + +#define XPAD 4 +#define YPAD 1 + +namespace +{ + +size_t maxColorspaceComponentCount = 0; + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +/** + * Internal variable to track all known colorspaces. + */ +std::set knownColorspaces; + +#endif + + +/** + * Simple helper to allow bitwise or on GtkAttachOptions. + */ +GtkAttachOptions operator|(GtkAttachOptions lhs, GtkAttachOptions rhs) +{ + return static_cast(static_cast(lhs) | static_cast(rhs)); +} + +/** + * Helper function to handle GTK2/GTK3 attachment #ifdef code. + */ +void attachToGridOrTable(GtkWidget *parent, + GtkWidget *child, + guint left, + guint top, + guint width, + guint height, + bool hexpand = false, + bool centered = false, + guint xpadding = XPAD, + guint ypadding = YPAD) +{ +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left( child, xpadding ); + gtk_widget_set_margin_right( child, xpadding ); + gtk_widget_set_margin_top( child, ypadding ); + gtk_widget_set_margin_bottom( child, ypadding ); + if (hexpand) { + gtk_widget_set_hexpand(child, TRUE); + } + if (centered) { + gtk_widget_set_halign( child, GTK_ALIGN_CENTER ); + gtk_widget_set_valign( child, GTK_ALIGN_CENTER ); + } + gtk_grid_attach( GTK_GRID(parent), child, left, top, width, height ); +#else + GtkAttachOptions xoptions = centered ? static_cast(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL; + GtkAttachOptions yoptions = centered ? static_cast(0) : GTK_FILL; + + gtk_table_attach( GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding, ypadding ); +#endif +} + +} // namespace + +GType sp_color_icc_selector_get_type(void) +{ + static GType type = 0; + if (!type) { + static const GTypeInfo info = { + sizeof (SPColorICCSelectorClass), + NULL, // base_init + NULL, // base_finalize + (GClassInitFunc) sp_color_icc_selector_class_init, + NULL, // class_finalize + NULL, // class_data + sizeof (SPColorICCSelector), + 0, // n_preallocs + (GInstanceInitFunc) sp_color_icc_selector_init, + 0, // value_table + }; + + type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, + "SPColorICCSelector", + &info, + static_cast< GTypeFlags > (0) ); + } + return type; +} + +static void sp_color_icc_selector_class_init(SPColorICCSelectorClass *klass) +{ + static const gchar* nameset[] = {N_("CMS"), 0}; + GObjectClass *object_class = G_OBJECT_CLASS(klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); + SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); + + parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); + + selector_class->name = nameset; + selector_class->submode_count = 1; + + object_class->dispose = sp_color_icc_selector_dispose; + + widget_class->show_all = sp_color_icc_selector_show_all; + widget_class->hide = sp_color_icc_selector_hide; +} + +const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); + +ColorICCSelector::ColorICCSelector( SPColorSelector* csel ) + : ColorSelector( csel ), + _impl(NULL) +{ +} + +ColorICCSelector::~ColorICCSelector() +{ + if (_impl) + { + delete _impl; + _impl = 0; + } +} + +void sp_color_icc_selector_init(SPColorICCSelector *cs) +{ + SP_COLOR_SELECTOR(cs)->base = new ColorICCSelector( SP_COLOR_SELECTOR(cs) ); + + if ( SP_COLOR_SELECTOR(cs)->base ) + { + SP_COLOR_SELECTOR(cs)->base->init(); + } +} + + +/* +icSigRgbData +icSigCmykData +icSigCmyData +*/ +#define SPACE_ID_RGB 0 +#define SPACE_ID_CMY 1 +#define SPACE_ID_CMYK 2 + + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +static cmsUInt16Number* getScratch() { + // bytes per pixel * input channels * width + static cmsUInt16Number* scritch = static_cast(g_new(cmsUInt16Number, 4 * 1024)); + + return scritch; +} + +colorspace::Component::Component() : + name(), + tip(), + scale(1) +{ +} + +colorspace::Component::Component(std::string const &name, std::string const &tip, guint scale) : + name(name), + tip(tip), + scale(scale) +{ +} + +std::vector colorspace::getColorSpaceInfo( uint32_t space ) +{ + static std::map > sets; + if (sets.empty()) + { + sets[cmsSigXYZData].push_back(Component("_X", "X", 2)); // TYPE_XYZ_16 + sets[cmsSigXYZData].push_back(Component("_Y", "Y", 1)); + sets[cmsSigXYZData].push_back(Component("_Z", "Z", 2)); + + sets[cmsSigLabData].push_back(Component("_L", "L", 100)); // TYPE_Lab_16 + sets[cmsSigLabData].push_back(Component("_a", "a", 256)); + sets[cmsSigLabData].push_back(Component("_b", "b", 256)); + + //cmsSigLuvData + + sets[cmsSigYCbCrData].push_back(Component("_Y", "Y", 1)); // TYPE_YCbCr_16 + sets[cmsSigYCbCrData].push_back(Component("C_b", "Cb", 1)); + sets[cmsSigYCbCrData].push_back(Component("C_r", "Cr", 1)); + + sets[cmsSigYxyData].push_back(Component("_Y", "Y", 1)); // TYPE_Yxy_16 + sets[cmsSigYxyData].push_back(Component("_x", "x", 1)); + sets[cmsSigYxyData].push_back(Component("y", "y", 1)); + + sets[cmsSigRgbData].push_back(Component(_("_R:"), _("Red"), 1)); // TYPE_RGB_16 + sets[cmsSigRgbData].push_back(Component(_("_G:"), _("Green"), 1)); + sets[cmsSigRgbData].push_back(Component(_("_B:"), _("Blue"), 1)); + + sets[cmsSigGrayData].push_back(Component(_("G:"), _("Gray"), 1)); // TYPE_GRAY_16 + + sets[cmsSigHsvData].push_back(Component(_("_H:"), _("Hue"), 360)); // TYPE_HSV_16 + sets[cmsSigHsvData].push_back(Component(_("_S:"), _("Saturation"), 1)); + sets[cmsSigHsvData].push_back(Component("_V:", "Value", 1)); + + sets[cmsSigHlsData].push_back(Component(_("_H:"), _("Hue"), 360)); // TYPE_HLS_16 + sets[cmsSigHlsData].push_back(Component(_("_L:"), _("Lightness"), 1)); + sets[cmsSigHlsData].push_back(Component(_("_S:"), _("Saturation"), 1)); + + sets[cmsSigCmykData].push_back(Component(_("_C:"), _("Cyan"), 1)); // TYPE_CMYK_16 + sets[cmsSigCmykData].push_back(Component(_("_M:"), _("Magenta"), 1)); + sets[cmsSigCmykData].push_back(Component(_("_Y:"), _("Yellow"), 1)); + sets[cmsSigCmykData].push_back(Component(_("_K:"), _("Black"), 1)); + + sets[cmsSigCmyData].push_back(Component(_("_C:"), _("Cyan"), 1)); // TYPE_CMY_16 + sets[cmsSigCmyData].push_back(Component(_("_M:"), _("Magenta"), 1)); + sets[cmsSigCmyData].push_back(Component(_("_Y:"), _("Yellow"), 1)); + + for (std::map >::iterator it = sets.begin(); it != sets.end(); ++it) + { + knownColorspaces.insert(it->first); + maxColorspaceComponentCount = std::max(maxColorspaceComponentCount, it->second.size()); + } + } + + std::vector target; + + if (sets.find(space) != sets.end()) + { + target = sets[space]; + } + return target; +} + + +std::vector colorspace::getColorSpaceInfo( Inkscape::ColorProfile *prof ) +{ + return getColorSpaceInfo( asICColorSpaceSig(prof->getColorSpace()) ); +} + +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner) : + _owner(owner), + _updating( FALSE ), + _dragging( FALSE ), + _fixupNeeded(0), + _fixupBtn(0), + _profileSel(0), + _compUI(), + _adj(0), + _slider(0), + _sbtn(0), + _label(0) +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + , + _profileName(), + _prof(0), + _profChannelCount(0), + _profChangedID(0) +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +{ +} + +ColorICCSelectorImpl::~ColorICCSelectorImpl() +{ + _adj = 0; + _sbtn = 0; + _label = 0; +} + +void ColorICCSelector::init() +{ + if (_impl) delete(_impl); + _impl = new ColorICCSelectorImpl(this); + gint row = 0; + + _impl->_updating = FALSE; + _impl->_dragging = FALSE; + +#if GTK_CHECK_VERSION(3,0,0) + GtkWidget *t = gtk_grid_new(); +#else + GtkWidget *t = gtk_table_new(5, 3, FALSE); +#endif + + gtk_widget_show (t); + gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); + + _impl->_compUI.clear(); + + // Create components + row = 0; + + + _impl->_fixupBtn = gtk_button_new_with_label(_("Fix")); + g_signal_connect( G_OBJECT(_impl->_fixupBtn), "clicked", G_CALLBACK(ColorICCSelectorImpl::_fixupHit), (gpointer)_impl ); + gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); + gtk_widget_set_tooltip_text( _impl->_fixupBtn, _("Fix RGB fallback to match icc-color() value.") ); + //gtk_misc_set_alignment( GTK_MISC (_impl->_fixupBtn), 1.0, 0.5 ); + gtk_widget_show( _impl->_fixupBtn ); + + attachToGridOrTable(t, _impl->_fixupBtn, 0, row, 1, 1); + + // Combobox and store with 2 columns : label (0) and full name (1) + GtkListStore *store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); + _impl->_profileSel = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store)); + + GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); + gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, TRUE); + gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, NULL); + + GtkTreeIter iter; + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, 0, _(""), 1, _(""), -1); + + gtk_widget_show( _impl->_profileSel ); + gtk_combo_box_set_active( GTK_COMBO_BOX(_impl->_profileSel), 0 ); + + attachToGridOrTable(t, _impl->_profileSel, 1, row, 1, 1); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + _impl->_profChangedID = g_signal_connect( G_OBJECT(_impl->_profileSel), "changed", G_CALLBACK(ColorICCSelectorImpl::_profileSelected), (gpointer)_impl ); +#else + gtk_widget_set_sensitive( _impl->_profileSel, false ); +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + + row++; + + // populate the data for colorspaces and channels: +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + std::vector things = colorspace::getColorSpaceInfo( cmsSigRgbData ); +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + for ( size_t i = 0; i < maxColorspaceComponentCount; i++ ) { +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + if (i < things.size()) { + _impl->_compUI.push_back(ComponentUI(things[i])); + } else { + _impl->_compUI.push_back(ComponentUI()); + } + + std::string labelStr = (i < things.size()) ? things[i].name.c_str() : ""; +#else + _impl->_compUI.push_back(ComponentUI()); + + std::string labelStr = "."; +#endif + + _impl->_compUI[i]._label = gtk_label_new_with_mnemonic( labelStr.c_str() ); + gtk_misc_set_alignment( GTK_MISC (_impl->_compUI[i]._label), 1.0, 0.5 ); + gtk_widget_show( _impl->_compUI[i]._label ); + + attachToGridOrTable(t, _impl->_compUI[i]._label, 0, row, 1, 1); + + // Adjustment + guint scaleValue = _impl->_compUI[i]._component.scale; + gdouble step = static_cast(scaleValue) / 100.0; + gdouble page = static_cast(scaleValue) / 10.0; + gint digits = (step > 0.9) ? 0 : 2; + _impl->_compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, 0.0, scaleValue, step, page, page ) ); + + // Slider + _impl->_compUI[i]._slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_compUI[i]._adj, true))); +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + _impl->_compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); +#else + _impl->_compUI[i]._slider->set_tooltip_text("."); +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + _impl->_compUI[i]._slider->show(); + + attachToGridOrTable(t, _impl->_compUI[i]._slider->gobj(), 1, row, 1, 1, true); + + _impl->_compUI[i]._btn = gtk_spin_button_new( _impl->_compUI[i]._adj, step, digits ); +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); +#else + gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, "." ); +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + sp_dialog_defocus_on_enter( _impl->_compUI[i]._btn ); + gtk_label_set_mnemonic_widget( GTK_LABEL(_impl->_compUI[i]._label), _impl->_compUI[i]._btn ); + gtk_widget_show( _impl->_compUI[i]._btn ); + + attachToGridOrTable(t, _impl->_compUI[i]._btn, 2, row, 1, 1, false, true); + + _impl->_compUI[i]._map = g_new( guchar, 4 * 1024 ); + memset( _impl->_compUI[i]._map, 0x0ff, 1024 * 4 ); + + + // Signals + g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _csel ); + + _impl->_compUI[i]._slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); + _impl->_compUI[i]._slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); + _impl->_compUI[i]._slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); + + row++; + } + + // Label + _impl->_label = gtk_label_new_with_mnemonic(_("_A:")); + gtk_misc_set_alignment(GTK_MISC(_impl->_label), 1.0, 0.5); + gtk_widget_show(_impl->_label); + + attachToGridOrTable(t, _impl->_label, 0, row, 1, 1); + + // Adjustment + _impl->_adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); + + // Slider + _impl->_slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_adj, true))); + _impl->_slider->set_tooltip_text(_("Alpha (opacity)")); + _impl->_slider->show(); + + attachToGridOrTable(t, _impl->_slider->gobj(), 1, row, 1, 1, true); + + _impl->_slider->setColors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), + SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), + SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); + + + // Spinbutton + _impl->_sbtn = gtk_spin_button_new(GTK_ADJUSTMENT(_impl->_adj), 1.0, 0); + gtk_widget_set_tooltip_text(_impl->_sbtn, _("Alpha (opacity)")); + sp_dialog_defocus_on_enter(_impl->_sbtn); + gtk_label_set_mnemonic_widget(GTK_LABEL(_impl->_label), _impl->_sbtn); + gtk_widget_show(_impl->_sbtn); + + attachToGridOrTable(t, _impl->_sbtn, 2, row, 1, 1, false, true); + + // Signals + g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _csel); + + _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); + _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); + _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); +} + +static void sp_color_icc_selector_dispose(GObject *object) +{ + if ((G_OBJECT_CLASS(parent_class))->dispose) { + (* (G_OBJECT_CLASS(parent_class))->dispose)(object); + } +} + +static void +sp_color_icc_selector_show_all (GtkWidget *widget) +{ + gtk_widget_show (widget); +} + +static void sp_color_icc_selector_hide(GtkWidget *widget) +{ + gtk_widget_hide(widget); +} + +GtkWidget * +sp_color_icc_selector_new (void) +{ + SPColorICCSelector *csel; + + csel = static_cast(g_object_new (SP_TYPE_COLOR_ICC_SELECTOR, NULL)); + + return GTK_WIDGET (csel); +} + + +void ColorICCSelectorImpl::_fixupHit( GtkWidget* /*src*/, gpointer data ) +{ + ColorICCSelectorImpl* self = reinterpret_cast(data); + gtk_widget_set_sensitive( self->_fixupBtn, FALSE ); + self->_adjustmentChanged( self->_compUI[0]._adj, SP_COLOR_ICC_SELECTOR(self->_owner->_csel) ); +} + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void ColorICCSelectorImpl::_profileSelected( GtkWidget* /*src*/, gpointer data ) +{ + ColorICCSelectorImpl* self = reinterpret_cast(data); + + GtkTreeIter iter; + if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(self->_profileSel), &iter)) { + GtkTreeModel *store = gtk_combo_box_get_model(GTK_COMBO_BOX(self->_profileSel)); + gchar* name = 0; + + gtk_tree_model_get(store, &iter, 1, &name, -1); + self->_switchToProfile( name ); + gtk_widget_set_tooltip_text(self->_profileSel, name ); + + if ( name ) { + g_free( name ); + } + } +} +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) +{ + bool dirty = false; + SPColor tmp( _owner->_color ); + + if ( name ) { + if ( tmp.icc && tmp.icc->colorProfile == name ) { +#ifdef DEBUG_LCMS + g_message("Already at name [%s]", name ); +#endif // DEBUG_LCMS + } else { +#ifdef DEBUG_LCMS + g_message("Need to switch to profile [%s]", name ); +#endif // DEBUG_LCMS + if ( tmp.icc ) { + tmp.icc->colors.clear(); + } else { + tmp.icc = new SVGICCColor(); + } + tmp.icc->colorProfile = name; + Inkscape::ColorProfile* newProf = SP_ACTIVE_DOCUMENT->profileManager->find(name); + if ( newProf ) { + cmsHTRANSFORM trans = newProf->getTransfFromSRGB8(); + if ( trans ) { + guint32 val = _owner->_color.toRGBA32(0); + guchar pre[4] = { + static_cast(SP_RGBA32_R_U(val)), + static_cast(SP_RGBA32_G_U(val)), + static_cast(SP_RGBA32_B_U(val)), + 255}; +#ifdef DEBUG_LCMS + g_message("Shoving in [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); +#endif // DEBUG_LCMS + cmsUInt16Number post[4] = {0,0,0,0}; + cmsDoTransform( trans, pre, post, 1 ); +#ifdef DEBUG_LCMS + g_message("got on out [%04x] [%04x] [%04x] [%04x]", post[0], post[1], post[2], post[3]); +#endif // DEBUG_LCMS +#if HAVE_LIBLCMS1 + guint count = _cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); +#elif HAVE_LIBLCMS2 + guint count = cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); +#endif + + std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(newProf->getColorSpace())); + + for ( guint i = 0; i < count; i++ ) { + gdouble val = (((gdouble)post[i])/65535.0) * (gdouble)((i < things.size()) ? things[i].scale : 1); +#ifdef DEBUG_LCMS + g_message(" scaled %d by %d to be %f", i, ((i < things.size()) ? things[i].scale : 1), val); +#endif // DEBUG_LCMS + tmp.icc->colors.push_back(val); + } + cmsHTRANSFORM retrans = newProf->getTransfToSRGB8(); + if ( retrans ) { + cmsDoTransform( retrans, post, pre, 1 ); +#ifdef DEBUG_LCMS + g_message(" back out [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); +#endif // DEBUG_LCMS + tmp.set(SP_RGBA32_U_COMPOSE(pre[0], pre[1], pre[2], 0xff)); + } + } + } + dirty = true; + } + } else { +#ifdef DEBUG_LCMS + g_message("NUKE THE ICC"); +#endif // DEBUG_LCMS + if ( tmp.icc ) { + delete tmp.icc; + tmp.icc = 0; + dirty = true; + _fixupHit( 0, this ); + } else { +#ifdef DEBUG_LCMS + g_message("No icc to nuke"); +#endif // DEBUG_LCMS + } + } + + if ( dirty ) { +#ifdef DEBUG_LCMS + g_message("+----------------"); + g_message("+ new color is [%s]", tmp.toString().c_str()); +#endif // DEBUG_LCMS + _setProfile( tmp.icc ); + //_adjustmentChanged( _compUI[0]._adj, SP_COLOR_ICC_SELECTOR(_csel) ); + _owner->setColorAlpha( tmp, _owner->_alpha, true ); +#ifdef DEBUG_LCMS + g_message("+_________________"); +#endif // DEBUG_LCMS + } +} +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void ColorICCSelectorImpl::_profilesChanged( std::string const & name ) +{ + GtkComboBox* combo = GTK_COMBO_BOX(_profileSel); + + g_signal_handler_block( G_OBJECT(_profileSel), _profChangedID ); + + GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model(combo)); + gtk_list_store_clear(store); + + GtkTreeIter iter; + gtk_list_store_append (store, &iter); + gtk_list_store_set(store, &iter, 0, _(""), 1, _(""), -1); + + gtk_combo_box_set_active( combo, 0 ); + + int index = 1; + const GSList *current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); + while ( current ) { + SPObject* obj = SP_OBJECT(current->data); + Inkscape::ColorProfile* prof = reinterpret_cast(obj); + + gtk_list_store_append (store, &iter); + gtk_list_store_set(store, &iter, 0, gr_ellipsize_text(prof->name, 25).c_str(), 1, prof->name, -1); + + if ( name == prof->name ) { + gtk_combo_box_set_active( combo, index ); + gtk_widget_set_tooltip_text(_profileSel, prof->name ); + } + + index++; + current = g_slist_next(current); + } + + g_signal_handler_unblock( G_OBJECT(_profileSel), _profChangedID ); +} +#else +void ColorICCSelectorImpl::_profilesChanged( std::string const & /*name*/ ) +{ +} +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +// Helpers for setting color value + +void ColorICCSelector::_colorChanged() +{ + _impl->_updating = TRUE; + //sp_color_icc_set_color( SP_COLOR_ICC( _icc ), &color ); + +#ifdef DEBUG_LCMS + g_message( "/^^^^^^^^^ %p::_colorChanged(%08x:%s)", this, + _color.toRGBA32(_alpha), ( (_color.icc) ? _color.icc->colorProfile.c_str(): "" ) + ); +#endif // DEBUG_LCMS + +#ifdef DEBUG_LCMS + g_message("FLIPPIES!!!! %p '%s'", _color.icc, (_color.icc ? _color.icc->colorProfile.c_str():"")); +#endif // DEBUG_LCMS + + _impl->_profilesChanged( (_color.icc) ? _color.icc->colorProfile : std::string("") ); + ColorScales::setScaled( _impl->_adj, _alpha ); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + _impl->_setProfile( _color.icc ); + _impl->_fixupNeeded = 0; + gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); + + if (_impl->_prof) { + if (_impl->_prof->getTransfToSRGB8() ) { + cmsUInt16Number tmp[4]; + for ( guint i = 0; i < _impl->_profChannelCount; i++ ) { + gdouble val = 0.0; + if ( _color.icc->colors.size() > i ) { + if ( _impl->_compUI[i]._component.scale == 256 ) { + val = (_color.icc->colors[i] + 128.0) / static_cast(_impl->_compUI[i]._component.scale); + } else { + val = _color.icc->colors[i] / static_cast(_impl->_compUI[i]._component.scale); + } + } + tmp[i] = val * 0x0ffff; + } + guchar post[4] = {0,0,0,0}; + cmsHTRANSFORM trans = _impl->_prof->getTransfToSRGB8(); + if ( trans ) { + cmsDoTransform( trans, tmp, post, 1 ); + guint32 other = SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255 ); + if ( other != _color.toRGBA32(255) ) { + _impl->_fixupNeeded = other; + gtk_widget_set_sensitive( _impl->_fixupBtn, TRUE ); +#ifdef DEBUG_LCMS + g_message("Color needs to change 0x%06x to 0x%06x", _color.toRGBA32(255) >> 8, other >> 8 ); +#endif // DEBUG_LCMS + } + } + } + } +#else + //(void)color; +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + _impl->_updateSliders( -1 ); + + + _impl->_updating = FALSE; +#ifdef DEBUG_LCMS + g_message( "\\_________ %p::_colorChanged()", this ); +#endif // DEBUG_LCMS +} + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) +{ +#ifdef DEBUG_LCMS + g_message( "/^^^^^^^^^ %p::_setProfile(%s)", this, + ( (profile) ? profile->colorProfile.c_str() : "") + ); +#endif // DEBUG_LCMS + bool profChanged = false; + if ( _prof && (!profile || (_profileName != profile->colorProfile) ) ) { + // Need to clear out the prior one + profChanged = true; + _profileName.clear(); + _prof = 0; + _profChannelCount = 0; + } else if ( profile && !_prof ) { + profChanged = true; + } + + for ( size_t i = 0; i < _compUI.size(); i++ ) { + gtk_widget_hide( _compUI[i]._label ); + _compUI[i]._slider->hide(); + gtk_widget_hide( _compUI[i]._btn ); + } + + if ( profile ) { + _prof = SP_ACTIVE_DOCUMENT->profileManager->find(profile->colorProfile.c_str()); + if ( _prof && (asICColorProfileClassSig(_prof->getProfileClass()) != cmsSigNamedColorClass) ) { +#if HAVE_LIBLCMS1 + _profChannelCount = _cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); +#elif HAVE_LIBLCMS2 + _profChannelCount = cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); +#endif + + if ( profChanged ) { + std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(_prof->getColorSpace())); + for (size_t i = 0; (i < things.size()) && (i < _profChannelCount); ++i) + { + _compUI[i]._component = things[i]; + } + + for ( guint i = 0; i < _profChannelCount; i++ ) { + gtk_label_set_text_with_mnemonic( GTK_LABEL(_compUI[i]._label), (i < things.size()) ? things[i].name.c_str() : ""); + + _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); + gtk_widget_set_tooltip_text( _compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); + + _compUI[i]._slider->setColors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), + SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), + SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); +/* + _compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( val, 0.0, _fooScales[i], step, page, page ) ); + g_signal_connect( G_OBJECT( _compUI[i]._adj ), "value_changed", G_CALLBACK( _adjustmentChanged ), _csel ); + + sp_color_slider_set_adjustment( SP_COLOR_SLIDER(_compUI[i]._slider), _compUI[i]._adj ); + gtk_spin_button_set_adjustment( GTK_SPIN_BUTTON(_compUI[i]._btn), _compUI[i]._adj ); + gtk_spin_button_set_digits( GTK_SPIN_BUTTON(_compUI[i]._btn), digits ); +*/ + gtk_widget_show( _compUI[i]._label ); + _compUI[i]._slider->show(); + gtk_widget_show( _compUI[i]._btn ); + //gtk_adjustment_set_value( _compUI[i]._adj, 0.0 ); + //gtk_adjustment_set_value( _compUI[i]._adj, val ); + } + for ( size_t i = _profChannelCount; i < _compUI.size(); i++ ) { + gtk_widget_hide( _compUI[i]._label ); + _compUI[i]._slider->hide(); + gtk_widget_hide( _compUI[i]._btn ); + } + } + } else { + // Give up for now on named colors + _prof = 0; + } + } + +#ifdef DEBUG_LCMS + g_message( "\\_________ %p::_setProfile()", this ); +#endif // DEBUG_LCMS +} +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +void ColorICCSelectorImpl::_updateSliders( gint ignore ) +{ +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + if ( _owner->_color.icc ) + { + for ( guint i = 0; i < _profChannelCount; i++ ) { + gdouble val = 0.0; + if ( _owner->_color.icc->colors.size() > i ) { + if ( _compUI[i]._component.scale == 256 ) { + val = (_owner->_color.icc->colors[i] + 128.0) / static_cast(_compUI[i]._component.scale); + } else { + val = _owner->_color.icc->colors[i] / static_cast(_compUI[i]._component.scale); + } + } + gtk_adjustment_set_value( _compUI[i]._adj, val ); + } + + if ( _prof ) { + if ( _prof->getTransfToSRGB8() ) { + for ( guint i = 0; i < _profChannelCount; i++ ) { + if ( static_cast(i) != ignore ) { + cmsUInt16Number* scratch = getScratch(); + cmsUInt16Number filler[4] = {0, 0, 0, 0}; + for ( guint j = 0; j < _profChannelCount; j++ ) { + filler[j] = 0x0ffff * ColorScales::getScaled( _compUI[j]._adj ); + } + + cmsUInt16Number* p = scratch; + for ( guint x = 0; x < 1024; x++ ) { + for ( guint j = 0; j < _profChannelCount; j++ ) { + if ( j == i ) { + *p++ = x * 0x0ffff / 1024; + } else { + *p++ = filler[j]; + } + } + } + + cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); + if ( trans ) { + cmsDoTransform( trans, scratch, _compUI[i]._map, 1024 ); + _compUI[i]._slider->setMap(_compUI[i]._map); + } + } + } + } + } + } +#else + (void)ignore; +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + guint32 start = _owner->_color.toRGBA32( 0x00 ); + guint32 mid = _owner->_color.toRGBA32( 0x7f ); + guint32 end = _owner->_color.toRGBA32( 0xff ); + + _slider->setColors(start, mid, end); +} + + +void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColorICCSelector *cs ) +{ +// // TODO check this. It looks questionable: +// // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 +// if (adjustment->value > 0.0 && adjustment->value < 1.0) { +// gtk_adjustment_set_value( adjustment, floor ((adjustment->value) * adjustment->upper + 0.5) ); +// } + +#ifdef DEBUG_LCMS + g_message( "/^^^^^^^^^ %p::_adjustmentChanged()", cs ); +#endif // DEBUG_LCMS + + ColorICCSelector* iccSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); + if (iccSelector->_impl->_updating) { + return; + } + + iccSelector->_impl->_updating = TRUE; + + gint match = -1; + + SPColor newColor( iccSelector->_color ); + gfloat scaled = ColorScales::getScaled( iccSelector->_impl->_adj ); + if ( iccSelector->_impl->_adj == adjustment ) { +#ifdef DEBUG_LCMS + g_message("ALPHA"); +#endif // DEBUG_LCMS + } else { +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + for ( size_t i = 0; i < iccSelector->_impl->_compUI.size(); i++ ) { + if ( iccSelector->_impl->_compUI[i]._adj == adjustment ) { + match = i; + break; + } + } + if ( match >= 0 ) { +#ifdef DEBUG_LCMS + g_message(" channel %d", match ); +#endif // DEBUG_LCMS + } + + + cmsUInt16Number tmp[4]; + for ( guint i = 0; i < 4; i++ ) { + tmp[i] = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ) * 0x0ffff; + } + guchar post[4] = {0,0,0,0}; + + cmsHTRANSFORM trans = iccSelector->_impl->_prof->getTransfToSRGB8(); + if ( trans ) { + cmsDoTransform( trans, tmp, post, 1 ); + } + + SPColor other( SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255) ); + other.icc = new SVGICCColor(); + if ( iccSelector->_color.icc ) { + other.icc->colorProfile = iccSelector->_color.icc->colorProfile; + } + + guint32 prior = iccSelector->_color.toRGBA32(255); + guint32 newer = other.toRGBA32(255); + + if ( prior != newer ) { +#ifdef DEBUG_LCMS + g_message("Transformed color from 0x%08x to 0x%08x", prior, newer ); + g_message(" ~~~~ FLIP"); +#endif // DEBUG_LCMS + newColor = other; + newColor.icc->colors.clear(); + for ( guint i = 0; i < iccSelector->_impl->_profChannelCount; i++ ) { + gdouble val = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ); + val *= iccSelector->_impl->_compUI[i]._component.scale; + if ( iccSelector->_impl->_compUI[i]._component.scale == 256 ) { + val -= 128; + } + newColor.icc->colors.push_back( val ); + } + } +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + } + iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); + iccSelector->_impl->_updateSliders( match ); + + iccSelector->_impl->_updating = FALSE; +#ifdef DEBUG_LCMS + g_message( "\\_________ %p::_adjustmentChanged()", cs ); +#endif // DEBUG_LCMS +} + +void ColorICCSelectorImpl::_sliderGrabbed() +{ +// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); +// if (!iccSelector->_dragging) { +// iccSelector->_dragging = TRUE; +// iccSelector->_grabbed(); +// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_impl->_adj ), iccSelector->_dragging ); +// } +} + +void ColorICCSelectorImpl::_sliderReleased() +{ +// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); +// if (iccSelector->_dragging) { +// iccSelector->_dragging = FALSE; +// iccSelector->_released(); +// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); +// } +} + +#ifdef DEBUG_LCMS +void ColorICCSelectorImpl::_sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs ) +#else +void ColorICCSelectorImpl::_sliderChanged() +#endif // DEBUG_LCMS +{ +#ifdef DEBUG_LCMS + g_message("Changed %p and %p", slider, cs ); +#endif // DEBUG_LCMS +// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); + +// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); +} + +Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_ICC_SELECTOR); + Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); + return wrapped; +} + +Glib::ustring ColorICCSelectorFactory::modeName() const { + return gettext(ColorICCSelector::MODE_NAME); +} + + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h new file mode 100644 index 000000000..cee8305cd --- /dev/null +++ b/src/ui/widget/color-icc-selector.h @@ -0,0 +1,81 @@ +#ifndef SEEN_SP_COLOR_ICC_SELECTOR_H +#define SEEN_SP_COLOR_ICC_SELECTOR_H + +#include +#include + +#include "widgets/sp-color-selector.h" +#include "ui/selected-color.h" + +namespace Inkscape { +class ColorProfile; +} + +struct SPColorICCSelector; +struct SPColorICCSelectorClass; + +class ColorICCSelectorImpl; + +class ColorICCSelector: public ColorSelector +{ +public: + static const gchar* MODE_NAME; + + ColorICCSelector( SPColorSelector* csel ); + virtual ~ColorICCSelector(); + + virtual void init(); + +protected: + virtual void _colorChanged(); + + void _recalcColor( gboolean changing ); + +private: + friend class ColorICCSelectorImpl; + + // By default, disallow copy constructor and assignment operator + ColorICCSelector( const ColorICCSelector& obj ); + ColorICCSelector& operator=( const ColorICCSelector& obj ); + + ColorICCSelectorImpl *_impl; +}; + + + +#define SP_TYPE_COLOR_ICC_SELECTOR (sp_color_icc_selector_get_type()) +#define SP_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelector)) +#define SP_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelectorClass)) +#define SP_IS_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_ICC_SELECTOR)) +#define SP_IS_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_ICC_SELECTOR)) + +struct SPColorICCSelector { + SPColorSelector parent; +}; + +struct SPColorICCSelectorClass { + SPColorSelectorClass parent_class; +}; + +GType sp_color_icc_selector_get_type(void); + +GtkWidget *sp_color_icc_selector_new(void); + +class ColorICCSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +public: + Gtk::Widget* createWidget(Inkscape::UI::SelectedColor &color) const; + Glib::ustring modeName() const; +}; + +#endif // SEEN_SP_COLOR_ICC_SELECTOR_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index dd0cba0b2..f546c516f 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -36,7 +36,6 @@ set(widgets_SRC select-toolbar.cpp shrink-wrap-button.cpp sp-attribute-widget.cpp - sp-color-icc-selector.cpp sp-color-notebook.cpp sp-color-selector.cpp sp-widget.cpp @@ -90,7 +89,6 @@ set(widgets_SRC select-toolbar.h shrink-wrap-button.h sp-attribute-widget.h - sp-color-icc-selector.h sp-color-notebook.h sp-color-selector.h sp-widget.h diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index 6d860996a..88e79f118 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -66,8 +66,6 @@ ink_common_sources += \ widgets/spiral-toolbar.h \ widgets/sp-attribute-widget.cpp \ widgets/sp-attribute-widget.h \ - widgets/sp-color-icc-selector.cpp \ - widgets/sp-color-icc-selector.h \ widgets/sp-color-notebook.cpp \ widgets/sp-color-notebook.h \ widgets/sp-color-selector.cpp \ diff --git a/src/widgets/sp-color-icc-selector.cpp b/src/widgets/sp-color-icc-selector.cpp deleted file mode 100644 index f872a3164..000000000 --- a/src/widgets/sp-color-icc-selector.cpp +++ /dev/null @@ -1,1150 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "gradient-vector.h" -#include -#include -#include -#include -#include -#include - -#include "../dialogs/dialog-events.h" -#include "sp-color-icc-selector.h" -#include "ui/widget/color-scales.h" -#include "ui/widget/color-slider.h" -#include "svg/svg-icc-color.h" -#include "colorspace.h" -#include "document.h" -#include "inkscape.h" -#include "profile-manager.h" - -#define noDEBUG_LCMS - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -#include "color-profile.h" -#include "cms-system.h" -#include "color-profile-cms-fns.h" - -#ifdef DEBUG_LCMS -#include "preferences.h" -#endif // DEBUG_LCMS -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - -using namespace Inkscape::UI::Widget; - - -#ifdef DEBUG_LCMS -extern guint update_in_progress; -#define DEBUG_MESSAGE(key, ...) \ -{\ - Inkscape::Preferences *prefs = Inkscape::Preferences::get();\ - bool dump = prefs->getBool("/options/scislac/" #key);\ - bool dumpD = prefs->getBool("/options/scislac/" #key "D");\ - bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2");\ - dumpD &&= ( (update_in_progress == 0) || dumpD2 );\ - if ( dump )\ - {\ - g_message( __VA_ARGS__ );\ -\ - }\ - if ( dumpD )\ - {\ - GtkWidget *dialog = gtk_message_dialog_new(NULL,\ - GTK_DIALOG_DESTROY_WITH_PARENT, \ - GTK_MESSAGE_INFO, \ - GTK_BUTTONS_OK, \ - __VA_ARGS__ \ - );\ - g_signal_connect_swapped(dialog, "response",\ - G_CALLBACK(gtk_widget_destroy), \ - dialog); \ - gtk_widget_show_all( dialog );\ - }\ -} -#endif // DEBUG_LCMS - - - -G_BEGIN_DECLS - -static void sp_color_icc_selector_class_init (SPColorICCSelectorClass *klass); -static void sp_color_icc_selector_init (SPColorICCSelector *cs); -static void sp_color_icc_selector_dispose(GObject *object); - -static void sp_color_icc_selector_show_all (GtkWidget *widget); -static void sp_color_icc_selector_hide(GtkWidget *widget); - -G_END_DECLS - -/** - * Class containing the parts for a single color component's UI presence. - */ -class ComponentUI -{ -public: - ComponentUI() : - _component(), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) - { - } - - ComponentUI(colorspace::Component const &component) : - _component(component), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) - { - } - - colorspace::Component _component; - GtkAdjustment *_adj; // Component adjustment - Inkscape::UI::Widget::ColorSlider *_slider; - GtkWidget *_btn; // spinbutton - GtkWidget *_label; // Label - guchar *_map; -}; - -/** - * Class that implements the internals of the selector. - */ -class ColorICCSelectorImpl -{ -public: - - ColorICCSelectorImpl( ColorICCSelector *owner); - - ~ColorICCSelectorImpl(); - - static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorICCSelector *cs ); - - void _sliderGrabbed(); - void _sliderReleased(); - void _sliderChanged(); - - static void _profileSelected( GtkWidget* src, gpointer data ); - static void _fixupHit( GtkWidget* src, gpointer data ); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - void _setProfile( SVGICCColor* profile ); - void _switchToProfile( gchar const* name ); -#endif - void _updateSliders( gint ignore ); - void _profilesChanged( std::string const & name ); - - ColorICCSelector *_owner; - - gboolean _updating : 1; - gboolean _dragging : 1; - - guint32 _fixupNeeded; - GtkWidget* _fixupBtn; - GtkWidget* _profileSel; - - std::vector _compUI; - - GtkAdjustment* _adj; // Channel adjustment - Inkscape::UI::Widget::ColorSlider* _slider; - GtkWidget* _sbtn; // Spinbutton - GtkWidget* _label; // Label - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - std::string _profileName; - Inkscape::ColorProfile* _prof; - guint _profChannelCount; - gulong _profChangedID; -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -}; - - -static SPColorSelectorClass *parent_class; - -#define XPAD 4 -#define YPAD 1 - -namespace -{ - -size_t maxColorspaceComponentCount = 0; - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -/** - * Internal variable to track all known colorspaces. - */ -std::set knownColorspaces; - -#endif - - -/** - * Simple helper to allow bitwise or on GtkAttachOptions. - */ -GtkAttachOptions operator|(GtkAttachOptions lhs, GtkAttachOptions rhs) -{ - return static_cast(static_cast(lhs) | static_cast(rhs)); -} - -/** - * Helper function to handle GTK2/GTK3 attachment #ifdef code. - */ -void attachToGridOrTable(GtkWidget *parent, - GtkWidget *child, - guint left, - guint top, - guint width, - guint height, - bool hexpand = false, - bool centered = false, - guint xpadding = XPAD, - guint ypadding = YPAD) -{ -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left( child, xpadding ); - gtk_widget_set_margin_right( child, xpadding ); - gtk_widget_set_margin_top( child, ypadding ); - gtk_widget_set_margin_bottom( child, ypadding ); - if (hexpand) { - gtk_widget_set_hexpand(child, TRUE); - } - if (centered) { - gtk_widget_set_halign( child, GTK_ALIGN_CENTER ); - gtk_widget_set_valign( child, GTK_ALIGN_CENTER ); - } - gtk_grid_attach( GTK_GRID(parent), child, left, top, width, height ); -#else - GtkAttachOptions xoptions = centered ? static_cast(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL; - GtkAttachOptions yoptions = centered ? static_cast(0) : GTK_FILL; - - gtk_table_attach( GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding, ypadding ); -#endif -} - -} // namespace - -GType sp_color_icc_selector_get_type(void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorICCSelectorClass), - NULL, // base_init - NULL, // base_finalize - (GClassInitFunc) sp_color_icc_selector_class_init, - NULL, // class_finalize - NULL, // class_data - sizeof (SPColorICCSelector), - 0, // n_preallocs - (GInstanceInitFunc) sp_color_icc_selector_init, - 0, // value_table - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorICCSelector", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void sp_color_icc_selector_class_init(SPColorICCSelectorClass *klass) -{ - static const gchar* nameset[] = {N_("CMS"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 1; - - object_class->dispose = sp_color_icc_selector_dispose; - - widget_class->show_all = sp_color_icc_selector_show_all; - widget_class->hide = sp_color_icc_selector_hide; -} - -const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); - -ColorICCSelector::ColorICCSelector( SPColorSelector* csel ) - : ColorSelector( csel ), - _impl(NULL) -{ -} - -ColorICCSelector::~ColorICCSelector() -{ - if (_impl) - { - delete _impl; - _impl = 0; - } -} - -void sp_color_icc_selector_init(SPColorICCSelector *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorICCSelector( SP_COLOR_SELECTOR(cs) ); - - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } -} - - -/* -icSigRgbData -icSigCmykData -icSigCmyData -*/ -#define SPACE_ID_RGB 0 -#define SPACE_ID_CMY 1 -#define SPACE_ID_CMYK 2 - - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -static cmsUInt16Number* getScratch() { - // bytes per pixel * input channels * width - static cmsUInt16Number* scritch = static_cast(g_new(cmsUInt16Number, 4 * 1024)); - - return scritch; -} - -colorspace::Component::Component() : - name(), - tip(), - scale(1) -{ -} - -colorspace::Component::Component(std::string const &name, std::string const &tip, guint scale) : - name(name), - tip(tip), - scale(scale) -{ -} - -std::vector colorspace::getColorSpaceInfo( uint32_t space ) -{ - static std::map > sets; - if (sets.empty()) - { - sets[cmsSigXYZData].push_back(Component("_X", "X", 2)); // TYPE_XYZ_16 - sets[cmsSigXYZData].push_back(Component("_Y", "Y", 1)); - sets[cmsSigXYZData].push_back(Component("_Z", "Z", 2)); - - sets[cmsSigLabData].push_back(Component("_L", "L", 100)); // TYPE_Lab_16 - sets[cmsSigLabData].push_back(Component("_a", "a", 256)); - sets[cmsSigLabData].push_back(Component("_b", "b", 256)); - - //cmsSigLuvData - - sets[cmsSigYCbCrData].push_back(Component("_Y", "Y", 1)); // TYPE_YCbCr_16 - sets[cmsSigYCbCrData].push_back(Component("C_b", "Cb", 1)); - sets[cmsSigYCbCrData].push_back(Component("C_r", "Cr", 1)); - - sets[cmsSigYxyData].push_back(Component("_Y", "Y", 1)); // TYPE_Yxy_16 - sets[cmsSigYxyData].push_back(Component("_x", "x", 1)); - sets[cmsSigYxyData].push_back(Component("y", "y", 1)); - - sets[cmsSigRgbData].push_back(Component(_("_R:"), _("Red"), 1)); // TYPE_RGB_16 - sets[cmsSigRgbData].push_back(Component(_("_G:"), _("Green"), 1)); - sets[cmsSigRgbData].push_back(Component(_("_B:"), _("Blue"), 1)); - - sets[cmsSigGrayData].push_back(Component(_("G:"), _("Gray"), 1)); // TYPE_GRAY_16 - - sets[cmsSigHsvData].push_back(Component(_("_H:"), _("Hue"), 360)); // TYPE_HSV_16 - sets[cmsSigHsvData].push_back(Component(_("_S:"), _("Saturation"), 1)); - sets[cmsSigHsvData].push_back(Component("_V:", "Value", 1)); - - sets[cmsSigHlsData].push_back(Component(_("_H:"), _("Hue"), 360)); // TYPE_HLS_16 - sets[cmsSigHlsData].push_back(Component(_("_L:"), _("Lightness"), 1)); - sets[cmsSigHlsData].push_back(Component(_("_S:"), _("Saturation"), 1)); - - sets[cmsSigCmykData].push_back(Component(_("_C:"), _("Cyan"), 1)); // TYPE_CMYK_16 - sets[cmsSigCmykData].push_back(Component(_("_M:"), _("Magenta"), 1)); - sets[cmsSigCmykData].push_back(Component(_("_Y:"), _("Yellow"), 1)); - sets[cmsSigCmykData].push_back(Component(_("_K:"), _("Black"), 1)); - - sets[cmsSigCmyData].push_back(Component(_("_C:"), _("Cyan"), 1)); // TYPE_CMY_16 - sets[cmsSigCmyData].push_back(Component(_("_M:"), _("Magenta"), 1)); - sets[cmsSigCmyData].push_back(Component(_("_Y:"), _("Yellow"), 1)); - - for (std::map >::iterator it = sets.begin(); it != sets.end(); ++it) - { - knownColorspaces.insert(it->first); - maxColorspaceComponentCount = std::max(maxColorspaceComponentCount, it->second.size()); - } - } - - std::vector target; - - if (sets.find(space) != sets.end()) - { - target = sets[space]; - } - return target; -} - - -std::vector colorspace::getColorSpaceInfo( Inkscape::ColorProfile *prof ) -{ - return getColorSpaceInfo( asICColorSpaceSig(prof->getColorSpace()) ); -} - -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner) : - _owner(owner), - _updating( FALSE ), - _dragging( FALSE ), - _fixupNeeded(0), - _fixupBtn(0), - _profileSel(0), - _compUI(), - _adj(0), - _slider(0), - _sbtn(0), - _label(0) -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - , - _profileName(), - _prof(0), - _profChannelCount(0), - _profChangedID(0) -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -{ -} - -ColorICCSelectorImpl::~ColorICCSelectorImpl() -{ - _adj = 0; - _sbtn = 0; - _label = 0; -} - -void ColorICCSelector::init() -{ - if (_impl) delete(_impl); - _impl = new ColorICCSelectorImpl(this); - gint row = 0; - - _impl->_updating = FALSE; - _impl->_dragging = FALSE; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new(5, 3, FALSE); -#endif - - gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); - - _impl->_compUI.clear(); - - // Create components - row = 0; - - - _impl->_fixupBtn = gtk_button_new_with_label(_("Fix")); - g_signal_connect( G_OBJECT(_impl->_fixupBtn), "clicked", G_CALLBACK(ColorICCSelectorImpl::_fixupHit), (gpointer)_impl ); - gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); - gtk_widget_set_tooltip_text( _impl->_fixupBtn, _("Fix RGB fallback to match icc-color() value.") ); - //gtk_misc_set_alignment( GTK_MISC (_impl->_fixupBtn), 1.0, 0.5 ); - gtk_widget_show( _impl->_fixupBtn ); - - attachToGridOrTable(t, _impl->_fixupBtn, 0, row, 1, 1); - - // Combobox and store with 2 columns : label (0) and full name (1) - GtkListStore *store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); - _impl->_profileSel = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store)); - - GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, NULL); - - GtkTreeIter iter; - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, 0, _(""), 1, _(""), -1); - - gtk_widget_show( _impl->_profileSel ); - gtk_combo_box_set_active( GTK_COMBO_BOX(_impl->_profileSel), 0 ); - - attachToGridOrTable(t, _impl->_profileSel, 1, row, 1, 1); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_profChangedID = g_signal_connect( G_OBJECT(_impl->_profileSel), "changed", G_CALLBACK(ColorICCSelectorImpl::_profileSelected), (gpointer)_impl ); -#else - gtk_widget_set_sensitive( _impl->_profileSel, false ); -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - - row++; - - // populate the data for colorspaces and channels: -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - std::vector things = colorspace::getColorSpaceInfo( cmsSigRgbData ); -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - for ( size_t i = 0; i < maxColorspaceComponentCount; i++ ) { -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - if (i < things.size()) { - _impl->_compUI.push_back(ComponentUI(things[i])); - } else { - _impl->_compUI.push_back(ComponentUI()); - } - - std::string labelStr = (i < things.size()) ? things[i].name.c_str() : ""; -#else - _impl->_compUI.push_back(ComponentUI()); - - std::string labelStr = "."; -#endif - - _impl->_compUI[i]._label = gtk_label_new_with_mnemonic( labelStr.c_str() ); - gtk_misc_set_alignment( GTK_MISC (_impl->_compUI[i]._label), 1.0, 0.5 ); - gtk_widget_show( _impl->_compUI[i]._label ); - - attachToGridOrTable(t, _impl->_compUI[i]._label, 0, row, 1, 1); - - // Adjustment - guint scaleValue = _impl->_compUI[i]._component.scale; - gdouble step = static_cast(scaleValue) / 100.0; - gdouble page = static_cast(scaleValue) / 10.0; - gint digits = (step > 0.9) ? 0 : 2; - _impl->_compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, 0.0, scaleValue, step, page, page ) ); - - // Slider - _impl->_compUI[i]._slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_compUI[i]._adj, true))); -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); -#else - _impl->_compUI[i]._slider->set_tooltip_text("."); -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_compUI[i]._slider->show(); - - attachToGridOrTable(t, _impl->_compUI[i]._slider->gobj(), 1, row, 1, 1, true); - - _impl->_compUI[i]._btn = gtk_spin_button_new( _impl->_compUI[i]._adj, step, digits ); -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); -#else - gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, "." ); -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - sp_dialog_defocus_on_enter( _impl->_compUI[i]._btn ); - gtk_label_set_mnemonic_widget( GTK_LABEL(_impl->_compUI[i]._label), _impl->_compUI[i]._btn ); - gtk_widget_show( _impl->_compUI[i]._btn ); - - attachToGridOrTable(t, _impl->_compUI[i]._btn, 2, row, 1, 1, false, true); - - _impl->_compUI[i]._map = g_new( guchar, 4 * 1024 ); - memset( _impl->_compUI[i]._map, 0x0ff, 1024 * 4 ); - - - // Signals - g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _csel ); - - _impl->_compUI[i]._slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); - _impl->_compUI[i]._slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); - _impl->_compUI[i]._slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); - - row++; - } - - // Label - _impl->_label = gtk_label_new_with_mnemonic(_("_A:")); - gtk_misc_set_alignment(GTK_MISC(_impl->_label), 1.0, 0.5); - gtk_widget_show(_impl->_label); - - attachToGridOrTable(t, _impl->_label, 0, row, 1, 1); - - // Adjustment - _impl->_adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, 255.0, 1.0, 10.0, 10.0)); - - // Slider - _impl->_slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_adj, true))); - _impl->_slider->set_tooltip_text(_("Alpha (opacity)")); - _impl->_slider->show(); - - attachToGridOrTable(t, _impl->_slider->gobj(), 1, row, 1, 1, true); - - _impl->_slider->setColors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); - - - // Spinbutton - _impl->_sbtn = gtk_spin_button_new(GTK_ADJUSTMENT(_impl->_adj), 1.0, 0); - gtk_widget_set_tooltip_text(_impl->_sbtn, _("Alpha (opacity)")); - sp_dialog_defocus_on_enter(_impl->_sbtn); - gtk_label_set_mnemonic_widget(GTK_LABEL(_impl->_label), _impl->_sbtn); - gtk_widget_show(_impl->_sbtn); - - attachToGridOrTable(t, _impl->_sbtn, 2, row, 1, 1, false, true); - - // Signals - g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _csel); - - _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); - _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); - _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); -} - -static void sp_color_icc_selector_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) { - (* (G_OBJECT_CLASS(parent_class))->dispose)(object); - } -} - -static void -sp_color_icc_selector_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_icc_selector_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget * -sp_color_icc_selector_new (void) -{ - SPColorICCSelector *csel; - - csel = static_cast(g_object_new (SP_TYPE_COLOR_ICC_SELECTOR, NULL)); - - return GTK_WIDGET (csel); -} - - -void ColorICCSelectorImpl::_fixupHit( GtkWidget* /*src*/, gpointer data ) -{ - ColorICCSelectorImpl* self = reinterpret_cast(data); - gtk_widget_set_sensitive( self->_fixupBtn, FALSE ); - self->_adjustmentChanged( self->_compUI[0]._adj, SP_COLOR_ICC_SELECTOR(self->_owner->_csel) ); -} - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_profileSelected( GtkWidget* /*src*/, gpointer data ) -{ - ColorICCSelectorImpl* self = reinterpret_cast(data); - - GtkTreeIter iter; - if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(self->_profileSel), &iter)) { - GtkTreeModel *store = gtk_combo_box_get_model(GTK_COMBO_BOX(self->_profileSel)); - gchar* name = 0; - - gtk_tree_model_get(store, &iter, 1, &name, -1); - self->_switchToProfile( name ); - gtk_widget_set_tooltip_text(self->_profileSel, name ); - - if ( name ) { - g_free( name ); - } - } -} -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) -{ - bool dirty = false; - SPColor tmp( _owner->_color ); - - if ( name ) { - if ( tmp.icc && tmp.icc->colorProfile == name ) { -#ifdef DEBUG_LCMS - g_message("Already at name [%s]", name ); -#endif // DEBUG_LCMS - } else { -#ifdef DEBUG_LCMS - g_message("Need to switch to profile [%s]", name ); -#endif // DEBUG_LCMS - if ( tmp.icc ) { - tmp.icc->colors.clear(); - } else { - tmp.icc = new SVGICCColor(); - } - tmp.icc->colorProfile = name; - Inkscape::ColorProfile* newProf = SP_ACTIVE_DOCUMENT->profileManager->find(name); - if ( newProf ) { - cmsHTRANSFORM trans = newProf->getTransfFromSRGB8(); - if ( trans ) { - guint32 val = _owner->_color.toRGBA32(0); - guchar pre[4] = { - static_cast(SP_RGBA32_R_U(val)), - static_cast(SP_RGBA32_G_U(val)), - static_cast(SP_RGBA32_B_U(val)), - 255}; -#ifdef DEBUG_LCMS - g_message("Shoving in [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); -#endif // DEBUG_LCMS - cmsUInt16Number post[4] = {0,0,0,0}; - cmsDoTransform( trans, pre, post, 1 ); -#ifdef DEBUG_LCMS - g_message("got on out [%04x] [%04x] [%04x] [%04x]", post[0], post[1], post[2], post[3]); -#endif // DEBUG_LCMS -#if HAVE_LIBLCMS1 - guint count = _cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); -#elif HAVE_LIBLCMS2 - guint count = cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); -#endif - - std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(newProf->getColorSpace())); - - for ( guint i = 0; i < count; i++ ) { - gdouble val = (((gdouble)post[i])/65535.0) * (gdouble)((i < things.size()) ? things[i].scale : 1); -#ifdef DEBUG_LCMS - g_message(" scaled %d by %d to be %f", i, ((i < things.size()) ? things[i].scale : 1), val); -#endif // DEBUG_LCMS - tmp.icc->colors.push_back(val); - } - cmsHTRANSFORM retrans = newProf->getTransfToSRGB8(); - if ( retrans ) { - cmsDoTransform( retrans, post, pre, 1 ); -#ifdef DEBUG_LCMS - g_message(" back out [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); -#endif // DEBUG_LCMS - tmp.set(SP_RGBA32_U_COMPOSE(pre[0], pre[1], pre[2], 0xff)); - } - } - } - dirty = true; - } - } else { -#ifdef DEBUG_LCMS - g_message("NUKE THE ICC"); -#endif // DEBUG_LCMS - if ( tmp.icc ) { - delete tmp.icc; - tmp.icc = 0; - dirty = true; - _fixupHit( 0, this ); - } else { -#ifdef DEBUG_LCMS - g_message("No icc to nuke"); -#endif // DEBUG_LCMS - } - } - - if ( dirty ) { -#ifdef DEBUG_LCMS - g_message("+----------------"); - g_message("+ new color is [%s]", tmp.toString().c_str()); -#endif // DEBUG_LCMS - _setProfile( tmp.icc ); - //_adjustmentChanged( _compUI[0]._adj, SP_COLOR_ICC_SELECTOR(_csel) ); - _owner->setColorAlpha( tmp, _owner->_alpha, true ); -#ifdef DEBUG_LCMS - g_message("+_________________"); -#endif // DEBUG_LCMS - } -} -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_profilesChanged( std::string const & name ) -{ - GtkComboBox* combo = GTK_COMBO_BOX(_profileSel); - - g_signal_handler_block( G_OBJECT(_profileSel), _profChangedID ); - - GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model(combo)); - gtk_list_store_clear(store); - - GtkTreeIter iter; - gtk_list_store_append (store, &iter); - gtk_list_store_set(store, &iter, 0, _(""), 1, _(""), -1); - - gtk_combo_box_set_active( combo, 0 ); - - int index = 1; - const GSList *current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); - while ( current ) { - SPObject* obj = SP_OBJECT(current->data); - Inkscape::ColorProfile* prof = reinterpret_cast(obj); - - gtk_list_store_append (store, &iter); - gtk_list_store_set(store, &iter, 0, gr_ellipsize_text(prof->name, 25).c_str(), 1, prof->name, -1); - - if ( name == prof->name ) { - gtk_combo_box_set_active( combo, index ); - gtk_widget_set_tooltip_text(_profileSel, prof->name ); - } - - index++; - current = g_slist_next(current); - } - - g_signal_handler_unblock( G_OBJECT(_profileSel), _profChangedID ); -} -#else -void ColorICCSelectorImpl::_profilesChanged( std::string const & /*name*/ ) -{ -} -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -// Helpers for setting color value - -void ColorICCSelector::_colorChanged() -{ - _impl->_updating = TRUE; - //sp_color_icc_set_color( SP_COLOR_ICC( _icc ), &color ); - -#ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_colorChanged(%08x:%s)", this, - _color.toRGBA32(_alpha), ( (_color.icc) ? _color.icc->colorProfile.c_str(): "" ) - ); -#endif // DEBUG_LCMS - -#ifdef DEBUG_LCMS - g_message("FLIPPIES!!!! %p '%s'", _color.icc, (_color.icc ? _color.icc->colorProfile.c_str():"")); -#endif // DEBUG_LCMS - - _impl->_profilesChanged( (_color.icc) ? _color.icc->colorProfile : std::string("") ); - ColorScales::setScaled( _impl->_adj, _alpha ); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_setProfile( _color.icc ); - _impl->_fixupNeeded = 0; - gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); - - if (_impl->_prof) { - if (_impl->_prof->getTransfToSRGB8() ) { - cmsUInt16Number tmp[4]; - for ( guint i = 0; i < _impl->_profChannelCount; i++ ) { - gdouble val = 0.0; - if ( _color.icc->colors.size() > i ) { - if ( _impl->_compUI[i]._component.scale == 256 ) { - val = (_color.icc->colors[i] + 128.0) / static_cast(_impl->_compUI[i]._component.scale); - } else { - val = _color.icc->colors[i] / static_cast(_impl->_compUI[i]._component.scale); - } - } - tmp[i] = val * 0x0ffff; - } - guchar post[4] = {0,0,0,0}; - cmsHTRANSFORM trans = _impl->_prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, tmp, post, 1 ); - guint32 other = SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255 ); - if ( other != _color.toRGBA32(255) ) { - _impl->_fixupNeeded = other; - gtk_widget_set_sensitive( _impl->_fixupBtn, TRUE ); -#ifdef DEBUG_LCMS - g_message("Color needs to change 0x%06x to 0x%06x", _color.toRGBA32(255) >> 8, other >> 8 ); -#endif // DEBUG_LCMS - } - } - } - } -#else - //(void)color; -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_updateSliders( -1 ); - - - _impl->_updating = FALSE; -#ifdef DEBUG_LCMS - g_message( "\\_________ %p::_colorChanged()", this ); -#endif // DEBUG_LCMS -} - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) -{ -#ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_setProfile(%s)", this, - ( (profile) ? profile->colorProfile.c_str() : "") - ); -#endif // DEBUG_LCMS - bool profChanged = false; - if ( _prof && (!profile || (_profileName != profile->colorProfile) ) ) { - // Need to clear out the prior one - profChanged = true; - _profileName.clear(); - _prof = 0; - _profChannelCount = 0; - } else if ( profile && !_prof ) { - profChanged = true; - } - - for ( size_t i = 0; i < _compUI.size(); i++ ) { - gtk_widget_hide( _compUI[i]._label ); - _compUI[i]._slider->hide(); - gtk_widget_hide( _compUI[i]._btn ); - } - - if ( profile ) { - _prof = SP_ACTIVE_DOCUMENT->profileManager->find(profile->colorProfile.c_str()); - if ( _prof && (asICColorProfileClassSig(_prof->getProfileClass()) != cmsSigNamedColorClass) ) { -#if HAVE_LIBLCMS1 - _profChannelCount = _cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); -#elif HAVE_LIBLCMS2 - _profChannelCount = cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); -#endif - - if ( profChanged ) { - std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(_prof->getColorSpace())); - for (size_t i = 0; (i < things.size()) && (i < _profChannelCount); ++i) - { - _compUI[i]._component = things[i]; - } - - for ( guint i = 0; i < _profChannelCount; i++ ) { - gtk_label_set_text_with_mnemonic( GTK_LABEL(_compUI[i]._label), (i < things.size()) ? things[i].name.c_str() : ""); - - _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); - gtk_widget_set_tooltip_text( _compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); - - _compUI[i]._slider->setColors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), - SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), - SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); -/* - _compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( val, 0.0, _fooScales[i], step, page, page ) ); - g_signal_connect( G_OBJECT( _compUI[i]._adj ), "value_changed", G_CALLBACK( _adjustmentChanged ), _csel ); - - sp_color_slider_set_adjustment( SP_COLOR_SLIDER(_compUI[i]._slider), _compUI[i]._adj ); - gtk_spin_button_set_adjustment( GTK_SPIN_BUTTON(_compUI[i]._btn), _compUI[i]._adj ); - gtk_spin_button_set_digits( GTK_SPIN_BUTTON(_compUI[i]._btn), digits ); -*/ - gtk_widget_show( _compUI[i]._label ); - _compUI[i]._slider->show(); - gtk_widget_show( _compUI[i]._btn ); - //gtk_adjustment_set_value( _compUI[i]._adj, 0.0 ); - //gtk_adjustment_set_value( _compUI[i]._adj, val ); - } - for ( size_t i = _profChannelCount; i < _compUI.size(); i++ ) { - gtk_widget_hide( _compUI[i]._label ); - _compUI[i]._slider->hide(); - gtk_widget_hide( _compUI[i]._btn ); - } - } - } else { - // Give up for now on named colors - _prof = 0; - } - } - -#ifdef DEBUG_LCMS - g_message( "\\_________ %p::_setProfile()", this ); -#endif // DEBUG_LCMS -} -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -void ColorICCSelectorImpl::_updateSliders( gint ignore ) -{ -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - if ( _owner->_color.icc ) - { - for ( guint i = 0; i < _profChannelCount; i++ ) { - gdouble val = 0.0; - if ( _owner->_color.icc->colors.size() > i ) { - if ( _compUI[i]._component.scale == 256 ) { - val = (_owner->_color.icc->colors[i] + 128.0) / static_cast(_compUI[i]._component.scale); - } else { - val = _owner->_color.icc->colors[i] / static_cast(_compUI[i]._component.scale); - } - } - gtk_adjustment_set_value( _compUI[i]._adj, val ); - } - - if ( _prof ) { - if ( _prof->getTransfToSRGB8() ) { - for ( guint i = 0; i < _profChannelCount; i++ ) { - if ( static_cast(i) != ignore ) { - cmsUInt16Number* scratch = getScratch(); - cmsUInt16Number filler[4] = {0, 0, 0, 0}; - for ( guint j = 0; j < _profChannelCount; j++ ) { - filler[j] = 0x0ffff * ColorScales::getScaled( _compUI[j]._adj ); - } - - cmsUInt16Number* p = scratch; - for ( guint x = 0; x < 1024; x++ ) { - for ( guint j = 0; j < _profChannelCount; j++ ) { - if ( j == i ) { - *p++ = x * 0x0ffff / 1024; - } else { - *p++ = filler[j]; - } - } - } - - cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, scratch, _compUI[i]._map, 1024 ); - _compUI[i]._slider->setMap(_compUI[i]._map); - } - } - } - } - } - } -#else - (void)ignore; -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - guint32 start = _owner->_color.toRGBA32( 0x00 ); - guint32 mid = _owner->_color.toRGBA32( 0x7f ); - guint32 end = _owner->_color.toRGBA32( 0xff ); - - _slider->setColors(start, mid, end); -} - - -void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColorICCSelector *cs ) -{ -// // TODO check this. It looks questionable: -// // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 -// if (adjustment->value > 0.0 && adjustment->value < 1.0) { -// gtk_adjustment_set_value( adjustment, floor ((adjustment->value) * adjustment->upper + 0.5) ); -// } - -#ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_adjustmentChanged()", cs ); -#endif // DEBUG_LCMS - - ColorICCSelector* iccSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); - if (iccSelector->_impl->_updating) { - return; - } - - iccSelector->_impl->_updating = TRUE; - - gint match = -1; - - SPColor newColor( iccSelector->_color ); - gfloat scaled = ColorScales::getScaled( iccSelector->_impl->_adj ); - if ( iccSelector->_impl->_adj == adjustment ) { -#ifdef DEBUG_LCMS - g_message("ALPHA"); -#endif // DEBUG_LCMS - } else { -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - for ( size_t i = 0; i < iccSelector->_impl->_compUI.size(); i++ ) { - if ( iccSelector->_impl->_compUI[i]._adj == adjustment ) { - match = i; - break; - } - } - if ( match >= 0 ) { -#ifdef DEBUG_LCMS - g_message(" channel %d", match ); -#endif // DEBUG_LCMS - } - - - cmsUInt16Number tmp[4]; - for ( guint i = 0; i < 4; i++ ) { - tmp[i] = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ) * 0x0ffff; - } - guchar post[4] = {0,0,0,0}; - - cmsHTRANSFORM trans = iccSelector->_impl->_prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, tmp, post, 1 ); - } - - SPColor other( SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255) ); - other.icc = new SVGICCColor(); - if ( iccSelector->_color.icc ) { - other.icc->colorProfile = iccSelector->_color.icc->colorProfile; - } - - guint32 prior = iccSelector->_color.toRGBA32(255); - guint32 newer = other.toRGBA32(255); - - if ( prior != newer ) { -#ifdef DEBUG_LCMS - g_message("Transformed color from 0x%08x to 0x%08x", prior, newer ); - g_message(" ~~~~ FLIP"); -#endif // DEBUG_LCMS - newColor = other; - newColor.icc->colors.clear(); - for ( guint i = 0; i < iccSelector->_impl->_profChannelCount; i++ ) { - gdouble val = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ); - val *= iccSelector->_impl->_compUI[i]._component.scale; - if ( iccSelector->_impl->_compUI[i]._component.scale == 256 ) { - val -= 128; - } - newColor.icc->colors.push_back( val ); - } - } -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - } - iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); - iccSelector->_impl->_updateSliders( match ); - - iccSelector->_impl->_updating = FALSE; -#ifdef DEBUG_LCMS - g_message( "\\_________ %p::_adjustmentChanged()", cs ); -#endif // DEBUG_LCMS -} - -void ColorICCSelectorImpl::_sliderGrabbed() -{ -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); -// if (!iccSelector->_dragging) { -// iccSelector->_dragging = TRUE; -// iccSelector->_grabbed(); -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_impl->_adj ), iccSelector->_dragging ); -// } -} - -void ColorICCSelectorImpl::_sliderReleased() -{ -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); -// if (iccSelector->_dragging) { -// iccSelector->_dragging = FALSE; -// iccSelector->_released(); -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); -// } -} - -#ifdef DEBUG_LCMS -void ColorICCSelectorImpl::_sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs ) -#else -void ColorICCSelectorImpl::_sliderChanged() -#endif // DEBUG_LCMS -{ -#ifdef DEBUG_LCMS - g_message("Changed %p and %p", slider, cs ); -#endif // DEBUG_LCMS -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); - -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); -} - -Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_ICC_SELECTOR); - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; -} - -Glib::ustring ColorICCSelectorFactory::modeName() const { - return gettext(ColorICCSelector::MODE_NAME); -} - - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-icc-selector.h b/src/widgets/sp-color-icc-selector.h deleted file mode 100644 index a59d3fe7e..000000000 --- a/src/widgets/sp-color-icc-selector.h +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef SEEN_SP_COLOR_ICC_SELECTOR_H -#define SEEN_SP_COLOR_ICC_SELECTOR_H - -#include -#include - -#include "sp-color-selector.h" -#include "ui/selected-color.h" - -namespace Inkscape { -class ColorProfile; -} - -struct SPColorICCSelector; -struct SPColorICCSelectorClass; - -class ColorICCSelectorImpl; - -class ColorICCSelector: public ColorSelector -{ -public: - static const gchar* MODE_NAME; - - ColorICCSelector( SPColorSelector* csel ); - virtual ~ColorICCSelector(); - - virtual void init(); - -protected: - virtual void _colorChanged(); - - void _recalcColor( gboolean changing ); - -private: - friend class ColorICCSelectorImpl; - - // By default, disallow copy constructor and assignment operator - ColorICCSelector( const ColorICCSelector& obj ); - ColorICCSelector& operator=( const ColorICCSelector& obj ); - - ColorICCSelectorImpl *_impl; -}; - - - -#define SP_TYPE_COLOR_ICC_SELECTOR (sp_color_icc_selector_get_type()) -#define SP_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelector)) -#define SP_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelectorClass)) -#define SP_IS_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_ICC_SELECTOR)) -#define SP_IS_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_ICC_SELECTOR)) - -struct SPColorICCSelector { - SPColorSelector parent; -}; - -struct SPColorICCSelectorClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_icc_selector_get_type(void); - -GtkWidget *sp_color_icc_selector_new(void); - -class ColorICCSelectorFactory: public Inkscape::UI::ColorSelectorFactory { -public: - Gtk::Widget* createWidget(Inkscape::UI::SelectedColor &color) const; - Glib::ustring modeName() const; -}; - -#endif // SEEN_SP_COLOR_ICC_SELECTOR_H - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 807fe38e0..2097737d4 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -30,7 +30,6 @@ #include "../preferences.h" #include "sp-color-notebook.h" #include "spw-utilities.h" -#include "sp-color-icc-selector.h" #include "svg/svg-icc-color.h" #include "../inkscape.h" #include "../document.h" @@ -40,6 +39,7 @@ #include "tools-switch.h" #include "ui/tools/tool-base.h" #include "ui/widget/color-entry.h" +#include "ui/widget/color-icc-selector.h" #include "ui/widget/color-scales.h" #include "ui/widget/color-wheel-selector.h" -- cgit v1.2.3 From 9d88682d5df45121fec6350cc028e5fb666e4776 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 31 May 2014 21:34:24 +0200 Subject: SPColorICC c++sification: using SelectedColor (bzr r13341.6.42) --- src/ui/widget/color-icc-selector.cpp | 416 ++++++++++++++--------------------- src/ui/widget/color-icc-selector.h | 58 ++--- 2 files changed, 199 insertions(+), 275 deletions(-) diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 74e63f320..1187dd081 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -32,10 +32,6 @@ #endif // DEBUG_LCMS #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -using namespace Inkscape::UI::Widget; - - #ifdef DEBUG_LCMS extern guint update_in_progress; #define DEBUG_MESSAGE(key, ...) \ @@ -67,106 +63,6 @@ extern guint update_in_progress; #endif // DEBUG_LCMS - -G_BEGIN_DECLS - -static void sp_color_icc_selector_class_init (SPColorICCSelectorClass *klass); -static void sp_color_icc_selector_init (SPColorICCSelector *cs); -static void sp_color_icc_selector_dispose(GObject *object); - -static void sp_color_icc_selector_show_all (GtkWidget *widget); -static void sp_color_icc_selector_hide(GtkWidget *widget); - -G_END_DECLS - -/** - * Class containing the parts for a single color component's UI presence. - */ -class ComponentUI -{ -public: - ComponentUI() : - _component(), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) - { - } - - ComponentUI(colorspace::Component const &component) : - _component(component), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) - { - } - - colorspace::Component _component; - GtkAdjustment *_adj; // Component adjustment - Inkscape::UI::Widget::ColorSlider *_slider; - GtkWidget *_btn; // spinbutton - GtkWidget *_label; // Label - guchar *_map; -}; - -/** - * Class that implements the internals of the selector. - */ -class ColorICCSelectorImpl -{ -public: - - ColorICCSelectorImpl( ColorICCSelector *owner); - - ~ColorICCSelectorImpl(); - - static void _adjustmentChanged ( GtkAdjustment *adjustment, SPColorICCSelector *cs ); - - void _sliderGrabbed(); - void _sliderReleased(); - void _sliderChanged(); - - static void _profileSelected( GtkWidget* src, gpointer data ); - static void _fixupHit( GtkWidget* src, gpointer data ); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - void _setProfile( SVGICCColor* profile ); - void _switchToProfile( gchar const* name ); -#endif - void _updateSliders( gint ignore ); - void _profilesChanged( std::string const & name ); - - ColorICCSelector *_owner; - - gboolean _updating : 1; - gboolean _dragging : 1; - - guint32 _fixupNeeded; - GtkWidget* _fixupBtn; - GtkWidget* _profileSel; - - std::vector _compUI; - - GtkAdjustment* _adj; // Channel adjustment - Inkscape::UI::Widget::ColorSlider* _slider; - GtkWidget* _sbtn; // Spinbutton - GtkWidget* _label; // Label - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - std::string _profileName; - Inkscape::ColorProfile* _prof; - guint _profChannelCount; - gulong _profChangedID; -#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -}; - - -static SPColorSelectorClass *parent_class; - #define XPAD 4 #define YPAD 1 @@ -230,77 +126,6 @@ void attachToGridOrTable(GtkWidget *parent, } // namespace -GType sp_color_icc_selector_get_type(void) -{ - static GType type = 0; - if (!type) { - static const GTypeInfo info = { - sizeof (SPColorICCSelectorClass), - NULL, // base_init - NULL, // base_finalize - (GClassInitFunc) sp_color_icc_selector_class_init, - NULL, // class_finalize - NULL, // class_data - sizeof (SPColorICCSelector), - 0, // n_preallocs - (GInstanceInitFunc) sp_color_icc_selector_init, - 0, // value_table - }; - - type = g_type_register_static (SP_TYPE_COLOR_SELECTOR, - "SPColorICCSelector", - &info, - static_cast< GTypeFlags > (0) ); - } - return type; -} - -static void sp_color_icc_selector_class_init(SPColorICCSelectorClass *klass) -{ - static const gchar* nameset[] = {N_("CMS"), 0}; - GObjectClass *object_class = G_OBJECT_CLASS(klass); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); - SPColorSelectorClass *selector_class = SP_COLOR_SELECTOR_CLASS (klass); - - parent_class = SP_COLOR_SELECTOR_CLASS (g_type_class_peek_parent (klass)); - - selector_class->name = nameset; - selector_class->submode_count = 1; - - object_class->dispose = sp_color_icc_selector_dispose; - - widget_class->show_all = sp_color_icc_selector_show_all; - widget_class->hide = sp_color_icc_selector_hide; -} - -const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); - -ColorICCSelector::ColorICCSelector( SPColorSelector* csel ) - : ColorSelector( csel ), - _impl(NULL) -{ -} - -ColorICCSelector::~ColorICCSelector() -{ - if (_impl) - { - delete _impl; - _impl = 0; - } -} - -void sp_color_icc_selector_init(SPColorICCSelector *cs) -{ - SP_COLOR_SELECTOR(cs)->base = new ColorICCSelector( SP_COLOR_SELECTOR(cs) ); - - if ( SP_COLOR_SELECTOR(cs)->base ) - { - SP_COLOR_SELECTOR(cs)->base->init(); - } -} - - /* icSigRgbData icSigCmykData @@ -403,8 +228,141 @@ std::vector colorspace::getColorSpaceInfo( Inkscape::Colo #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner) : + + + + + + + + + + + + + + + + + +namespace Inkscape { +namespace UI { +namespace Widget { + +/** + * Class containing the parts for a single color component's UI presence. + */ +class ComponentUI +{ +public: + ComponentUI() : + _component(), + _adj(0), + _slider(0), + _btn(0), + _label(0), + _map(0) + { + } + + ComponentUI(colorspace::Component const &component) : + _component(component), + _adj(0), + _slider(0), + _btn(0), + _label(0), + _map(0) + { + } + + colorspace::Component _component; + GtkAdjustment *_adj; // Component adjustment + Inkscape::UI::Widget::ColorSlider *_slider; + GtkWidget *_btn; // spinbutton + GtkWidget *_label; // Label + guchar *_map; +}; + +/** + * Class that implements the internals of the selector. + */ +class ColorICCSelectorImpl +{ +public: + + ColorICCSelectorImpl(ColorICCSelector *owner, SelectedColor &color); + + ~ColorICCSelectorImpl(); + + static void _adjustmentChanged ( GtkAdjustment *adjustment, ColorICCSelectorImpl *cs ); + + void _sliderGrabbed(); + void _sliderReleased(); + void _sliderChanged(); + + static void _profileSelected( GtkWidget* src, gpointer data ); + static void _fixupHit( GtkWidget* src, gpointer data ); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + void _setProfile( SVGICCColor* profile ); + void _switchToProfile( gchar const* name ); +#endif + void _updateSliders( gint ignore ); + void _profilesChanged( std::string const & name ); + + ColorICCSelector *_owner; + SelectedColor &_color; + + gboolean _updating : 1; + gboolean _dragging : 1; + + guint32 _fixupNeeded; + GtkWidget* _fixupBtn; + GtkWidget* _profileSel; + + std::vector _compUI; + + GtkAdjustment* _adj; // Channel adjustment + Inkscape::UI::Widget::ColorSlider* _slider; + GtkWidget* _sbtn; // Spinbutton + GtkWidget* _label; // Label + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + std::string _profileName; + Inkscape::ColorProfile* _prof; + guint _profChannelCount; + gulong _profChangedID; +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +}; + + + + +const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); + +ColorICCSelector::ColorICCSelector(SelectedColor &color) + : _impl(NULL) +{ + _impl = new ColorICCSelectorImpl(this, color); + init(); + color.signal_changed.connect(sigc::mem_fun(this, &ColorICCSelector::_colorChanged)); + //color.signal_dragged.connect(sigc::mem_fun(this, &ColorICCSelector::_colorChanged)); +} + +ColorICCSelector::~ColorICCSelector() +{ + if (_impl) + { + delete _impl; + _impl = 0; + } +} + + + +ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner, SelectedColor &color) : _owner(owner), + _color(color), _updating( FALSE ), _dragging( FALSE ), _fixupNeeded(0), @@ -434,21 +392,14 @@ ColorICCSelectorImpl::~ColorICCSelectorImpl() void ColorICCSelector::init() { - if (_impl) delete(_impl); - _impl = new ColorICCSelectorImpl(this); gint row = 0; _impl->_updating = FALSE; _impl->_dragging = FALSE; -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *t = gtk_grid_new(); -#else - GtkWidget *t = gtk_table_new(5, 3, FALSE); -#endif + GtkWidget* t = GTK_WIDGET(gobj()); gtk_widget_show (t); - gtk_box_pack_start (GTK_BOX (_csel), t, TRUE, TRUE, 4); _impl->_compUI.clear(); @@ -552,7 +503,7 @@ void ColorICCSelector::init() // Signals - g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _csel ); + g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _impl ); _impl->_compUI[i]._slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); _impl->_compUI[i]._slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); @@ -593,47 +544,18 @@ void ColorICCSelector::init() attachToGridOrTable(t, _impl->_sbtn, 2, row, 1, 1, false, true); // Signals - g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _csel); + g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _impl); _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); } -static void sp_color_icc_selector_dispose(GObject *object) -{ - if ((G_OBJECT_CLASS(parent_class))->dispose) { - (* (G_OBJECT_CLASS(parent_class))->dispose)(object); - } -} - -static void -sp_color_icc_selector_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_icc_selector_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget * -sp_color_icc_selector_new (void) -{ - SPColorICCSelector *csel; - - csel = static_cast(g_object_new (SP_TYPE_COLOR_ICC_SELECTOR, NULL)); - - return GTK_WIDGET (csel); -} - - void ColorICCSelectorImpl::_fixupHit( GtkWidget* /*src*/, gpointer data ) { ColorICCSelectorImpl* self = reinterpret_cast(data); gtk_widget_set_sensitive( self->_fixupBtn, FALSE ); - self->_adjustmentChanged( self->_compUI[0]._adj, SP_COLOR_ICC_SELECTOR(self->_owner->_csel) ); + self->_adjustmentChanged( self->_compUI[0]._adj, self ); } #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -661,7 +583,7 @@ void ColorICCSelectorImpl::_profileSelected( GtkWidget* /*src*/, gpointer data ) void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) { bool dirty = false; - SPColor tmp( _owner->_color ); + SPColor tmp( _color.color() ); if ( name ) { if ( tmp.icc && tmp.icc->colorProfile == name ) { @@ -682,7 +604,7 @@ void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) if ( newProf ) { cmsHTRANSFORM trans = newProf->getTransfFromSRGB8(); if ( trans ) { - guint32 val = _owner->_color.toRGBA32(0); + guint32 val = _color.color().toRGBA32(0); guchar pre[4] = { static_cast(SP_RGBA32_R_U(val)), static_cast(SP_RGBA32_G_U(val)), @@ -746,7 +668,7 @@ void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) #endif // DEBUG_LCMS _setProfile( tmp.icc ); //_adjustmentChanged( _compUI[0]._adj, SP_COLOR_ICC_SELECTOR(_csel) ); - _owner->setColorAlpha( tmp, _owner->_alpha, true ); + _color.setColor(tmp); #ifdef DEBUG_LCMS g_message("+_________________"); #endif // DEBUG_LCMS @@ -805,19 +727,19 @@ void ColorICCSelector::_colorChanged() #ifdef DEBUG_LCMS g_message( "/^^^^^^^^^ %p::_colorChanged(%08x:%s)", this, - _color.toRGBA32(_alpha), ( (_color.icc) ? _color.icc->colorProfile.c_str(): "" ) + _impl->_color.color().toRGBA32(_impl->_color.alpha()), ( (_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile.c_str(): "" ) ); #endif // DEBUG_LCMS #ifdef DEBUG_LCMS - g_message("FLIPPIES!!!! %p '%s'", _color.icc, (_color.icc ? _color.icc->colorProfile.c_str():"")); + g_message("FLIPPIES!!!! %p '%s'", _impl->_color.color().icc, (_impl->_color.color().icc ? _impl->_color.color().icc->colorProfile.c_str():"")); #endif // DEBUG_LCMS - _impl->_profilesChanged( (_color.icc) ? _color.icc->colorProfile : std::string("") ); - ColorScales::setScaled( _impl->_adj, _alpha ); + _impl->_profilesChanged( (_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile : std::string("") ); + ColorScales::setScaled( _impl->_adj, _impl->_color.alpha() ); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_setProfile( _color.icc ); + _impl->_setProfile( _impl->_color.color().icc ); _impl->_fixupNeeded = 0; gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); @@ -826,11 +748,11 @@ void ColorICCSelector::_colorChanged() cmsUInt16Number tmp[4]; for ( guint i = 0; i < _impl->_profChannelCount; i++ ) { gdouble val = 0.0; - if ( _color.icc->colors.size() > i ) { + if ( _impl->_color.color().icc->colors.size() > i ) { if ( _impl->_compUI[i]._component.scale == 256 ) { - val = (_color.icc->colors[i] + 128.0) / static_cast(_impl->_compUI[i]._component.scale); + val = (_impl->_color.color().icc->colors[i] + 128.0) / static_cast(_impl->_compUI[i]._component.scale); } else { - val = _color.icc->colors[i] / static_cast(_impl->_compUI[i]._component.scale); + val = _impl->_color.color().icc->colors[i] / static_cast(_impl->_compUI[i]._component.scale); } } tmp[i] = val * 0x0ffff; @@ -840,7 +762,7 @@ void ColorICCSelector::_colorChanged() if ( trans ) { cmsDoTransform( trans, tmp, post, 1 ); guint32 other = SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255 ); - if ( other != _color.toRGBA32(255) ) { + if ( other != _impl->_color.color().toRGBA32(255) ) { _impl->_fixupNeeded = other; gtk_widget_set_sensitive( _impl->_fixupBtn, TRUE ); #ifdef DEBUG_LCMS @@ -947,15 +869,15 @@ void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) void ColorICCSelectorImpl::_updateSliders( gint ignore ) { #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - if ( _owner->_color.icc ) + if ( _color.color().icc ) { for ( guint i = 0; i < _profChannelCount; i++ ) { gdouble val = 0.0; - if ( _owner->_color.icc->colors.size() > i ) { + if ( _color.color().icc->colors.size() > i ) { if ( _compUI[i]._component.scale == 256 ) { - val = (_owner->_color.icc->colors[i] + 128.0) / static_cast(_compUI[i]._component.scale); + val = (_color.color().icc->colors[i] + 128.0) / static_cast(_compUI[i]._component.scale); } else { - val = _owner->_color.icc->colors[i] / static_cast(_compUI[i]._component.scale); + val = _color.color().icc->colors[i] / static_cast(_compUI[i]._component.scale); } } gtk_adjustment_set_value( _compUI[i]._adj, val ); @@ -996,15 +918,15 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) (void)ignore; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - guint32 start = _owner->_color.toRGBA32( 0x00 ); - guint32 mid = _owner->_color.toRGBA32( 0x7f ); - guint32 end = _owner->_color.toRGBA32( 0xff ); + guint32 start = _color.color().toRGBA32( 0x00 ); + guint32 mid = _color.color().toRGBA32( 0x7f ); + guint32 end = _color.color().toRGBA32( 0xff ); _slider->setColors(start, mid, end); } -void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColorICCSelector *cs ) +void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, ColorICCSelectorImpl *cs ) { // // TODO check this. It looks questionable: // // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 @@ -1016,7 +938,7 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColo g_message( "/^^^^^^^^^ %p::_adjustmentChanged()", cs ); #endif // DEBUG_LCMS - ColorICCSelector* iccSelector = static_cast(SP_COLOR_SELECTOR(cs)->base); + ColorICCSelector* iccSelector = cs->_owner; if (iccSelector->_impl->_updating) { return; } @@ -1025,7 +947,7 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColo gint match = -1; - SPColor newColor( iccSelector->_color ); + SPColor newColor( iccSelector->_impl->_color.color() ); gfloat scaled = ColorScales::getScaled( iccSelector->_impl->_adj ); if ( iccSelector->_impl->_adj == adjustment ) { #ifdef DEBUG_LCMS @@ -1059,11 +981,11 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColo SPColor other( SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255) ); other.icc = new SVGICCColor(); - if ( iccSelector->_color.icc ) { - other.icc->colorProfile = iccSelector->_color.icc->colorProfile; + if ( iccSelector->_impl->_color.color().icc ) { + other.icc->colorProfile = iccSelector->_impl->_color.color().icc->colorProfile; } - guint32 prior = iccSelector->_color.toRGBA32(255); + guint32 prior = iccSelector->_impl->_color.color().toRGBA32(255); guint32 newer = other.toRGBA32(255); if ( prior != newer ) { @@ -1084,7 +1006,8 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, SPColo } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) } - iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); + iccSelector->_impl->_color.setColorAlpha(newColor, scaled, true); + //iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); iccSelector->_impl->_updateSliders( match ); iccSelector->_impl->_updating = FALSE; @@ -1128,16 +1051,17 @@ void ColorICCSelectorImpl::_sliderChanged() } Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_ICC_SELECTOR); - Gtk::Widget *wrapped = Gtk::manage(Glib::wrap(w)); - return wrapped; + Gtk::Widget *w = Gtk::manage(new ColorICCSelector(color)); + return w; } Glib::ustring ColorICCSelectorFactory::modeName() const { return gettext(ColorICCSelector::MODE_NAME); } - +} +} +} /* Local Variables: mode:c++ diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h index cee8305cd..b917066dd 100644 --- a/src/ui/widget/color-icc-selector.h +++ b/src/ui/widget/color-icc-selector.h @@ -1,27 +1,43 @@ #ifndef SEEN_SP_COLOR_ICC_SELECTOR_H #define SEEN_SP_COLOR_ICC_SELECTOR_H -#include -#include +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#if GTK_CHECK_VERSION(3,0,0) +#include +#else +#include +#endif -#include "widgets/sp-color-selector.h" #include "ui/selected-color.h" namespace Inkscape { + class ColorProfile; -} -struct SPColorICCSelector; -struct SPColorICCSelectorClass; +namespace UI { +namespace Widget { class ColorICCSelectorImpl; -class ColorICCSelector: public ColorSelector +class ColorICCSelector +#if GTK_CHECK_VERSION(3,0,0) + : public Gtk::Grid +#else + : public Gtk::Table +#endif { public: static const gchar* MODE_NAME; - ColorICCSelector( SPColorSelector* csel ); + ColorICCSelector(SelectedColor &color); virtual ~ColorICCSelector(); virtual void init(); @@ -42,31 +58,15 @@ private: }; - -#define SP_TYPE_COLOR_ICC_SELECTOR (sp_color_icc_selector_get_type()) -#define SP_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_CAST((o), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelector)) -#define SP_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SP_TYPE_COLOR_ICC_SELECTOR, SPColorICCSelectorClass)) -#define SP_IS_COLOR_ICC_SELECTOR(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), SP_TYPE_COLOR_ICC_SELECTOR)) -#define SP_IS_COLOR_ICC_SELECTOR_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE((k), SP_TYPE_COLOR_ICC_SELECTOR)) - -struct SPColorICCSelector { - SPColorSelector parent; -}; - -struct SPColorICCSelectorClass { - SPColorSelectorClass parent_class; -}; - -GType sp_color_icc_selector_get_type(void); - -GtkWidget *sp_color_icc_selector_new(void); - -class ColorICCSelectorFactory: public Inkscape::UI::ColorSelectorFactory { +class ColorICCSelectorFactory: public ColorSelectorFactory { public: - Gtk::Widget* createWidget(Inkscape::UI::SelectedColor &color) const; + Gtk::Widget* createWidget(SelectedColor &color) const; Glib::ustring modeName() const; }; +} +} +} #endif // SEEN_SP_COLOR_ICC_SELECTOR_H /* -- cgit v1.2.3 From ade68e2b3601c0ef2912440b028e7b9e1f326bcc Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 10:41:10 +0200 Subject: inhibit SelectedColor::setColorAlpha in the callbacks of it's signals (bzr r13341.6.43) --- src/ui/selected-color.cpp | 29 ++++++++++++++++++++--------- src/ui/selected-color.h | 4 +++- src/ui/widget/color-entry.cpp | 8 +------- src/ui/widget/color-icc-selector.cpp | 2 +- src/ui/widget/color-scales.cpp | 18 +++++------------- src/ui/widget/color-wheel-selector.cpp | 14 ++------------ src/widgets/sp-color-notebook.cpp | 4 ++-- 7 files changed, 34 insertions(+), 45 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 10ca68b21..24720f870 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -28,6 +28,7 @@ SelectedColor::SelectedColor() , _alpha(1.0) , _held(false) , _virgin(true) + , _updating(false) { } @@ -38,7 +39,7 @@ SelectedColor::~SelectedColor() { void SelectedColor::setColor(SPColor const &color) { - setColorAlpha( color, _alpha, true); + setColorAlpha( color, _alpha); } SPColor SelectedColor::color() const @@ -49,7 +50,7 @@ SPColor SelectedColor::color() const void SelectedColor::setAlpha(gfloat alpha) { g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); - setColorAlpha( _color, alpha, true); + setColorAlpha( _color, alpha); } gfloat SelectedColor::alpha() const @@ -57,13 +58,17 @@ gfloat SelectedColor::alpha() const return _alpha; } -void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit) +void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha) { #ifdef DUMP_CHANGE_INFO g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); #endif g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); + if (_updating) { + return; + } + #ifdef DUMP_CHANGE_INFO g_message("---- SelectedColor::setColorAlpha virgin:%s !close:%s alpha is:%s in %s", (_virgin?"YES":"no"), @@ -81,13 +86,14 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit) _color = color; _alpha = alpha; - if (emit) { - if (_held) { - signal_dragged.emit(); - } else { - signal_changed.emit(); - } + _updating = true; + if (_held) { + signal_dragged.emit(); + } else { + signal_changed.emit(); } + _updating = false; + #ifdef DUMP_CHANGE_INFO } else { g_message("++++ SelectedColor::setColorAlpha color:%08x ==> _color:%08X isClose:%s in %s", color.toRGBA32(alpha), _color.toRGBA32(_alpha), @@ -102,11 +108,15 @@ void SelectedColor::colorAlpha(SPColor &color, gfloat &alpha) const { } void SelectedColor::setHeld(bool held) { + if (_updating) { + return; + } bool grabbed = held && !_held; bool released = !held && _held; _held = held; + _updating = true; if (grabbed) { signal_grabbed.emit(); } @@ -115,6 +125,7 @@ void SelectedColor::setHeld(bool held) { signal_released.emit(); signal_changed.emit(); } + _updating = false; } void SelectedColor::preserveICC() { diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index 5d3d89672..9f86d4255 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -39,7 +39,7 @@ public: void setAlpha(gfloat alpha); gfloat alpha() const; - void setColorAlpha(SPColor const &color, gfloat alpha, bool emit = false); + void setColorAlpha(SPColor const &color, gfloat alpha); void colorAlpha(SPColor &color, gfloat &alpha) const; void setHeld(bool held); @@ -67,6 +67,8 @@ private: */ bool _virgin; + bool _updating; + static double const _EPSILON; }; diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index 56fd6080e..e26cb4ade 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -71,23 +71,17 @@ void ColorEntry::on_changed() { if (len < 8) { rgba = rgba << (4 * (8 - len)); } - _updating = true; if (changed) { set_text(str); } SPColor color(rgba); - _color.setColorAlpha(color, SP_RGBA32_A_F(rgba), true); - _updating = false; + _color.setColorAlpha(color, SP_RGBA32_A_F(rgba)); } g_free(str); } void ColorEntry::_onColorChanged() { - if (_updating) { - return; - } - SPColor color = _color.color(); gdouble alpha = _color.alpha(); diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 1187dd081..d679f9273 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -1006,7 +1006,7 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, ColorI } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) } - iccSelector->_impl->_color.setColorAlpha(newColor, scaled, true); + iccSelector->_impl->_color.setColorAlpha(newColor, scaled); //iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); iccSelector->_impl->_updateSliders( match ); diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 234e7a2d1..ac1f52da3 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -164,11 +164,6 @@ void ColorScales::_initUI(SPColorScalesMode mode) void ColorScales::_recalcColor( gboolean changing ) { - if (_updating) { - return; - } - _updating = true; - if ( changing ) { SPColor color; @@ -198,13 +193,12 @@ void ColorScales::_recalcColor( gboolean changing ) } _color.preserveICC(); - _color.setColorAlpha(color, alpha, true); + _color.setColorAlpha(color, alpha); } else { // _updateInternals( _color, _alpha, _dragging ); } - _updating = false; } /* Helpers for setting color value */ @@ -232,7 +226,7 @@ void ColorScales::_setRangeLimit( gdouble upper ) void ColorScales::_onColorChanged() { - if (_updating || !get_visible()) { + if (!get_visible()) { return; } #ifdef DUMP_CHANGE_INFO @@ -468,13 +462,11 @@ void ColorScales::_sliderAnyGrabbed() if (_updating) { return; } - _updating = true; if (!_dragging) { _dragging = TRUE; _color.setHeld(true); _recalcColor( FALSE ); } - _updating = false; } void ColorScales::_sliderAnyReleased() @@ -482,13 +474,11 @@ void ColorScales::_sliderAnyReleased() if (_updating) { return; } - _updating = true; if (_dragging) { _dragging = FALSE; _color.setHeld(false); _recalcColor( FALSE ); } - _updating = false; } void ColorScales::_sliderAnyChanged() @@ -501,7 +491,9 @@ void ColorScales::_sliderAnyChanged() void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel ) { - if (scales->_updating) return; + if (scales->_updating) { + return; + } scales->_updateSliders( (1 << channel) ); scales->_recalcColor (TRUE); diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 4bf40dbb6..5f7260635 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -161,10 +161,8 @@ void ColorWheelSelector::_colorChanged() #ifdef DUMP_CHANGE_INFO g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], alpha ); #endif - if (_updating) { - return; - } + bool oldval = _updating; _updating = true; { float hsv[3] = {0,0,0}; @@ -180,7 +178,7 @@ void ColorWheelSelector::_colorChanged() ColorScales::setScaled(_alpha_adjustment->gobj(), _color.alpha()); - _updating = false; + _updating = oldval; } void ColorWheelSelector::_adjustmentChanged() @@ -188,7 +186,6 @@ void ColorWheelSelector::_adjustmentChanged() if (_updating) { return; } - _updating = true; // TODO check this. It looks questionable: // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 @@ -200,8 +197,6 @@ void ColorWheelSelector::_adjustmentChanged() _color.preserveICC(); _color.setAlpha(ColorScales::getScaled(_alpha_adjustment->gobj())); - - _updating = false; } void ColorWheelSelector::_sliderGrabbed() @@ -222,10 +217,8 @@ void ColorWheelSelector::_sliderChanged() return; } - _updating = true; _color.preserveICC(); _color.setAlpha(ColorScales::getScaled(_alpha_adjustment->gobj())); - _updating = false; } void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector *wheelSelector) @@ -233,7 +226,6 @@ void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector if (wheelSelector->_updating){ return; } - wheelSelector->_updating = true; gdouble h = 0; gdouble s = 0; @@ -255,8 +247,6 @@ void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector wheelSelector->_color.setHeld(gimp_color_wheel_is_adjusting(wheel)); wheelSelector->_color.setColor(color); - - wheelSelector->_updating = false; } diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 2097737d4..5bfe1f400 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -456,7 +456,7 @@ ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, void ColorNotebook::_colorChanged() { _updating = true; - _selected_color.setColorAlpha(_color, _alpha, true); + _selected_color.setColorAlpha(_color, _alpha); _updating = false; SPColorSelector* cselPage = getCurrentSelector(); @@ -590,7 +590,7 @@ void ColorNotebook::_entryModified (SPColorSelector *csel, SPColorNotebook *colo csel->base->getColorAlpha( color, alpha ); nb->_updating = true; - nb->_selected_color.setColorAlpha(color, alpha, true); + nb->_selected_color.setColorAlpha(color, alpha); nb->_updating = false; nb->_updateInternals( color, alpha, nb->_dragging ); } -- cgit v1.2.3 From 41d146e6c99b26bc5ce2a377fc70fe28e5bb8db5 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 11:06:36 +0200 Subject: SPColorNotebook cleanup (bzr r13341.6.44) --- src/widgets/sp-color-notebook.cpp | 146 ++++---------------------------------- src/widgets/sp-color-notebook.h | 12 +--- 2 files changed, 16 insertions(+), 142 deletions(-) diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 5bfe1f400..420efacc1 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -112,42 +112,12 @@ sp_color_notebook_switch_page(GtkNotebook *notebook, { if ( colorbook ) { - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - nb->switchPage( notebook, page, page_num ); - // remember the page we switched to Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setInt("/colorselector/page", page_num); } } -void ColorNotebook::switchPage(GtkNotebook*, - GtkWidget*, - guint page_num) -{ - SPColorSelector* csel; - GtkWidget* widget; - - if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)) >= 0 ) - { - csel = getCurrentSelector(); - if (csel) { - csel->base->getColorAlpha(_color, _alpha); - } - } - widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), page_num); - if ( widget && SP_IS_COLOR_SELECTOR(widget) ) - { - csel = SP_COLOR_SELECTOR (widget); - if (csel) { - csel->base->setColorAlpha( _color, _alpha ); - } - - // Temporary workaround to undo a spurious GRABBED - _released(); - } -} - static void sp_color_notebook_init (SPColorNotebook *colorbook) { @@ -430,23 +400,6 @@ ColorNotebook::ColorNotebook( SPColorSelector* csel ) #endif } -SPColorSelector* ColorNotebook::getCurrentSelector() -{ - SPColorSelector* csel = NULL; - gint current_page = gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)); - - if ( current_page >= 0 ) - { - GtkWidget* widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), current_page); - if ( SP_IS_COLOR_SELECTOR (widget) ) - { - csel = SP_COLOR_SELECTOR (widget); - } - } - - return csel; -} - ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) : selector_factory(selector_factory) , enabled_full(enabled_full) @@ -457,13 +410,8 @@ void ColorNotebook::_colorChanged() { _updating = true; _selected_color.setColorAlpha(_color, _alpha); + _updateICCButtons(); _updating = false; - - SPColorSelector* cselPage = getCurrentSelector(); - if ( cselPage ) - { - cselPage->base->setColorAlpha( _color, _alpha ); - } } void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /*colorbook*/) @@ -475,8 +423,11 @@ void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /* } // TODO pass in param so as to avoid the need for SP_ACTIVE_DOCUMENT -void ColorNotebook::_updateRgbaEntry( const SPColor& color, gfloat alpha ) +void ColorNotebook::_updateICCButtons() { + SPColor color = _selected_color.color(); + gfloat alpha = _selected_color.alpha(); + g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -538,63 +489,6 @@ void ColorNotebook::_buttonClicked(GtkWidget *widget, SPColorNotebook *colorboo } } -void ColorNotebook::_entryGrabbed (SPColorSelector *, SPColorNotebook *colorbook) -{ - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - nb->_grabbed(); -} - -void ColorNotebook::_entryDragged (SPColorSelector *csel, SPColorNotebook *colorbook) -{ - gboolean oldState; - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - - oldState = nb->_dragging; - - nb->_dragging = TRUE; - nb->_entryModified( csel, colorbook ); - - nb->_dragging = oldState; -} - -void ColorNotebook::_entryReleased (SPColorSelector *, SPColorNotebook *colorbook) -{ - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - nb->_released(); -} - -void ColorNotebook::_entryChanged (SPColorSelector *csel, SPColorNotebook *colorbook) -{ - gboolean oldState; - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - - oldState = nb->_dragging; - - nb->_dragging = FALSE; - nb->_entryModified( csel, colorbook ); - - nb->_dragging = oldState; -} - -void ColorNotebook::_entryModified (SPColorSelector *csel, SPColorNotebook *colorbook) -{ - g_return_if_fail (colorbook != NULL); - g_return_if_fail (SP_IS_COLOR_NOTEBOOK (colorbook)); - g_return_if_fail (csel != NULL); - g_return_if_fail (SP_IS_COLOR_SELECTOR (csel)); - - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - SPColor color; - gfloat alpha = 1.0; - - csel->base->getColorAlpha( color, alpha ); - - nb->_updating = true; - nb->_selected_color.setColorAlpha(color, alpha); - nb->_updating = false; - nb->_updateInternals( color, alpha, nb->_dragging ); -} - void ColorNotebook::_onSelectedColorChanged() { if (_updating) { return; @@ -602,36 +496,34 @@ void ColorNotebook::_onSelectedColorChanged() { SPColor color; gfloat alpha = 1.0; - - _updating = true; _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, _dragging); - _updating = false; + _updateInternals(color, alpha, false); + _updateICCButtons(); } void ColorNotebook::_onSelectedColorDragged() { if (_updating) { return; } - bool oldState = _dragging; - - _dragging = true; SPColor color; gfloat alpha = 1.0; - - _updating = true; _selected_color.colorAlpha(color, alpha); _updateInternals(color, alpha, true); - _updating = false; - - _dragging = oldState; + _updateICCButtons(); } void ColorNotebook::_onSelectedColorGrabbed() { + if (_updating) { + return; + } + _grabbed(); } void ColorNotebook::_onSelectedColorReleased() { + if (_updating) { + return; + } _released(); } @@ -656,14 +548,6 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); - - if (SP_IS_COLOR_SELECTOR(selector_widget->gobj())) { - //Connect glib signals of non-refactored widgets - g_signal_connect (selector_widget->gobj(), "grabbed", G_CALLBACK (_entryGrabbed), _csel); - g_signal_connect (selector_widget->gobj(), "dragged", G_CALLBACK (_entryDragged), _csel); - g_signal_connect (selector_widget->gobj(), "released", G_CALLBACK (_entryReleased), _csel); - g_signal_connect (selector_widget->gobj(), "changed", G_CALLBACK (_entryChanged), _csel); - } } return selector_widget->gobj(); diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index ca9343bf0..cc3fb4c76 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -40,9 +40,6 @@ public: virtual void init(); - SPColorSelector* getCurrentSelector(); - void switchPage( GtkNotebook *notebook, GtkWidget *page, guint page_num ); - protected: struct Page { Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); @@ -51,11 +48,6 @@ protected: bool enabled_full; }; - static void _entryGrabbed( SPColorSelector *csel, SPColorNotebook *colorbook ); - static void _entryDragged( SPColorSelector *csel, SPColorNotebook *colorbook ); - static void _entryReleased( SPColorSelector *csel, SPColorNotebook *colorbook ); - static void _entryChanged( SPColorSelector *csel, SPColorNotebook *colorbook ); - static void _entryModified( SPColorSelector *csel, SPColorNotebook *colorbook ); static void _buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook); static void _picker_clicked(GtkWidget *widget, SPColorNotebook *colorbook); @@ -66,15 +58,13 @@ protected: virtual void _onSelectedColorGrabbed(); virtual void _onSelectedColorReleased(); - void _updateRgbaEntry( const SPColor& color, gfloat alpha ); + void _updateICCButtons(); void _setCurrentPage(int i); GtkWidget* _addPage(Page& page); Inkscape::UI::SelectedColor _selected_color; gboolean _updating : 1; - gboolean _updatingrgba : 1; - gboolean _dragging : 1; gulong _switchId; gulong _entryId; GtkWidget *_book; -- cgit v1.2.3 From bb5dacfc027558432b9a46f61329d7bd02731571 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 13:03:36 +0200 Subject: Using SelectedColor in extenstion/param/color (bzr r13341.6.45) --- src/extension/param/color.cpp | 51 ++++++++++++++++----------------------- src/extension/param/color.h | 9 +++++-- src/ui/selected-color.cpp | 12 +++++++++ src/ui/selected-color.h | 3 +++ src/widgets/sp-color-notebook.cpp | 9 +++++++ src/widgets/sp-color-notebook.h | 6 ++++- 6 files changed, 57 insertions(+), 33 deletions(-) diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index 0a2598c56..0eca52f8e 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -36,9 +36,6 @@ namespace Inkscape { namespace Extension { -void sp_color_param_changed(SPColorSelector *csel, GObject *cp); - - ParamColor::~ParamColor(void) { @@ -46,17 +43,19 @@ ParamColor::~ParamColor(void) guint32 ParamColor::set( guint32 in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/ ) { - _value = in; + _color_changed.block(true); + _color.setValue(in); + _color_changed.block(false); gchar * prefname = this->pref_name(); std::string value; string(value); - + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setString(extension_pref_root + prefname, value); g_free(prefname); - return _value; + return in; } ParamColor::ParamColor (const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml) : @@ -75,13 +74,15 @@ ParamColor::ParamColor (const gchar * name, const gchar * guitext, const gchar * if (!paramval.empty()) defaulthex = paramval.data(); - _value = atoi(defaulthex); + _color.setValue(atoi(defaulthex)); + _color_changed = _color.signal_changed.connect(sigc::mem_fun(this, &ParamColor::_onColorChanged)); + } void ParamColor::string(std::string &string) const { char str[16]; - sprintf(str, "%i", _value); + sprintf(str, "%i", _color.value()); string += str; } @@ -90,35 +91,25 @@ Gtk::Widget *ParamColor::get_widget( SPDocument * /*doc*/, Inkscape::XML::Node * if (_gui_hidden) return NULL; _changeSignal = new sigc::signal(*changeSignal); - Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, 4)); - SPColorSelector* spColorSelector = (SPColorSelector*)sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK); - ColorSelector* colorSelector = spColorSelector->base; - if (_value < 1) { - _value = 0xFF000000; + if (_color.value() < 1) { + _color_changed.block(true); + _color.setValue(0xFF000000); + _color_changed.block(false); } - SPColor *color = new SPColor( _value ); - float alpha = (_value & 0xff) / 255.0F; - colorSelector->setColorAlpha(*color, alpha); - hbox->pack_start (*Glib::wrap(&spColorSelector->vbox), true, true, 0); - g_signal_connect(G_OBJECT(spColorSelector), "changed", G_CALLBACK(sp_color_param_changed), (void*)this); - - gtk_widget_show(GTK_WIDGET(spColorSelector)); + Gtk::HBox *hbox = Gtk::manage(new Gtk::HBox(false, 4)); + Gtk::Widget *selector = Gtk::manage(ColorNotebook::create(_color)); + hbox->pack_start (*selector, true, true, 0); + selector->show(); hbox->show(); - - return dynamic_cast(hbox); + return hbox; } -void sp_color_param_changed(SPColorSelector *csel, GObject *obj) +void ParamColor::_onColorChanged() { - const SPColor color = csel->base->getColor(); - float alpha = csel->base->getAlpha(); - - ParamColor* ptr = reinterpret_cast(obj); - ptr->set(color.toRGBA32( alpha ), NULL, NULL); - - ptr->_changeSignal->emit(); + if (_changeSignal) + _changeSignal->emit(); } }; /* namespace Extension */ diff --git a/src/extension/param/color.h b/src/extension/param/color.h index 9894965a9..ed2e57ceb 100644 --- a/src/extension/param/color.h +++ b/src/extension/param/color.h @@ -9,6 +9,7 @@ */ #include "parameter.h" +#include "ui/selected-color.h" class SPDocument; @@ -25,14 +26,17 @@ namespace Extension { class ParamColor : public Parameter { private: - guint32 _value; + void _onColorChanged(); + + Inkscape::UI::SelectedColor _color; + sigc::connection _color_changed; public: ParamColor(const gchar * name, const gchar * guitext, const gchar * desc, const Parameter::_scope_t scope, bool gui_hidden, const gchar * gui_tip, Inkscape::Extension::Extension * ext, Inkscape::XML::Node * xml); virtual ~ParamColor(void); /** Returns \c _value, with a \i const to protect it. */ - guint32 get( SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/ ) const { return _value; } + guint32 get( SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/ ) const { return _color.value(); } guint32 set (guint32 in, SPDocument * doc, Inkscape::XML::Node * node); @@ -44,6 +48,7 @@ public: virtual void string (std::string &string) const; sigc::signal * _changeSignal; + }; // class ParamColor } // namespace Extension diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 24720f870..ed3e06e2f 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -58,6 +58,18 @@ gfloat SelectedColor::alpha() const return _alpha; } +void SelectedColor::setValue(guint32 value) +{ + SPColor color(value); + gfloat alpha = SP_RGBA32_A_F(value); + setColorAlpha(color, alpha); +} + +guint32 SelectedColor::value() const +{ + return color().toRGBA32(_alpha); +} + void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha) { #ifdef DUMP_CHANGE_INFO diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index 9f86d4255..b4268f553 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -39,6 +39,9 @@ public: void setAlpha(gfloat alpha); gfloat alpha() const; + void setValue(guint32 value); + guint32 value() const; + void setColorAlpha(SPColor const &color, gfloat alpha); void colorAlpha(SPColor &color, gfloat &alpha) const; diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp index 420efacc1..38ea04372 100644 --- a/src/widgets/sp-color-notebook.cpp +++ b/src/widgets/sp-color-notebook.cpp @@ -45,6 +45,7 @@ using Inkscape::CMSSystem; +using namespace Inkscape::UI; using namespace Inkscape::UI::Widget; struct SPColorNotebookTracker { @@ -383,6 +384,7 @@ GtkWidget *sp_color_notebook_new() ColorNotebook::ColorNotebook( SPColorSelector* csel ) : ColorSelector( csel ) + , _selected_color(_selected_color_tmp) { Page *page; @@ -400,6 +402,13 @@ ColorNotebook::ColorNotebook( SPColorSelector* csel ) #endif } +Gtk::Widget *ColorNotebook::create(SelectedColor &color) { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK); + SPColorSelector *s = SP_COLOR_SELECTOR(w); + ColorNotebook* nb = dynamic_cast(s->base); + return Glib::wrap(w); +} + ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) : selector_factory(selector_factory) , enabled_full(enabled_full) diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h index cc3fb4c76..42fb0ed97 100644 --- a/src/widgets/sp-color-notebook.h +++ b/src/widgets/sp-color-notebook.h @@ -38,6 +38,9 @@ public: ColorNotebook( SPColorSelector* csel ); virtual ~ColorNotebook(); + //Temporary factory method - transition from SPColorSelector + static Gtk::Widget* create(Inkscape::UI::SelectedColor &color); + virtual void init(); protected: @@ -63,7 +66,8 @@ protected: GtkWidget* _addPage(Page& page); - Inkscape::UI::SelectedColor _selected_color; + Inkscape::UI::SelectedColor _selected_color_tmp; + Inkscape::UI::SelectedColor &_selected_color; gboolean _updating : 1; gulong _switchId; gulong _entryId; -- cgit v1.2.3 From 0d71d02e49a5eab7f9e79b246961c1349320a986 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 13:24:00 +0200 Subject: using SelectedColor in ColorPicker (bzr r13341.6.46) --- src/ui/widget/color-picker.cpp | 70 ++++++++++++++++++------------------------ src/ui/widget/color-picker.h | 8 +++-- 2 files changed, 35 insertions(+), 43 deletions(-) diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp index 5585f2db4..f909535b1 100644 --- a/src/ui/widget/color-picker.cpp +++ b/src/ui/widget/color-picker.cpp @@ -27,8 +27,6 @@ namespace Inkscape { namespace UI { namespace Widget { -void sp_color_picker_color_mod(SPColorSelector *csel, GObject *cp); - ColorPicker::ColorPicker (const Glib::ustring& title, const Glib::ustring& tip, guint32 rgba, bool undo) : _preview(rgba), _title(title), _rgba(rgba), _undo(undo), @@ -39,12 +37,15 @@ ColorPicker::ColorPicker (const Glib::ustring& title, const Glib::ustring& tip, _preview.show(); add (_preview); set_tooltip_text (tip); + + _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorPicker::_onSelectedColorChanged)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorPicker::_onSelectedColorChanged)); + _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorPicker::_onSelectedColorChanged)); } ColorPicker::~ColorPicker() { closeWindow(); - _colorSelector = NULL; } void ColorPicker::setupDialog(const Glib::ustring &title) @@ -55,25 +56,17 @@ void ColorPicker::setupDialog(const Glib::ustring &title) _colorSelectorDialog.hide(); _colorSelectorDialog.set_title (title); _colorSelectorDialog.set_border_width (4); - _colorSelector = SP_COLOR_SELECTOR(sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK)); + + _color_selector = Gtk::manage(ColorNotebook::create(_selected_color)); #if WITH_GTKMM_3_0 _colorSelectorDialog.get_content_area()->pack_start ( - *Glib::wrap(&_colorSelector->vbox), true, true, 0); + *_color_selector, true, true, 0); #else _colorSelectorDialog.get_vbox()->pack_start ( - *Glib::wrap(&_colorSelector->vbox), true, true, 0); + *_color_selector, true, true, 0); #endif - - g_signal_connect(G_OBJECT(_colorSelector), "dragged", - G_CALLBACK(sp_color_picker_color_mod), (void *)this); - g_signal_connect(G_OBJECT(_colorSelector), "released", - G_CALLBACK(sp_color_picker_color_mod), (void *)this); - g_signal_connect(G_OBJECT(_colorSelector), "changed", - G_CALLBACK(sp_color_picker_color_mod), (void *)this); - - gtk_widget_show(GTK_WIDGET(_colorSelector)); - + _color_selector->show(); } void ColorPicker::setRgba32 (guint32 rgba) @@ -82,11 +75,11 @@ void ColorPicker::setRgba32 (guint32 rgba) _preview.setRgba32 (rgba); _rgba = rgba; - if (_colorSelector) + if (_color_selector) { - SPColor color; - color.set( rgba ); - _colorSelector->base->setColorAlpha(color, SP_RGBA32_A_F(rgba)); + _updating = true; + _selected_color.setValue(rgba); + _updating = false; } } @@ -97,11 +90,11 @@ void ColorPicker::closeWindow() void ColorPicker::on_clicked() { - if (_colorSelector) + if (_color_selector) { - SPColor color; - color.set( _rgba ); - _colorSelector->base->setColorAlpha(color, SP_RGBA32_A_F(_rgba)); + _updating = true; + _selected_color.setValue(_rgba); + _updating = false; } _colorSelectorDialog.show(); } @@ -110,34 +103,31 @@ void ColorPicker::on_changed (guint32) { } -void sp_color_picker_color_mod(SPColorSelector *csel, GObject *cp) -{ +void ColorPicker::_onSelectedColorChanged() { + if (_updating) { + return; + } + if (_in_use) { return; } else { _in_use = true; } - SPColor color; - float alpha = 0; - csel->base->getColorAlpha(color, alpha); - guint32 rgba = color.toRGBA32( alpha ); - - ColorPicker *ptr = reinterpret_cast(cp); - - (ptr->_preview).setRgba32 (rgba); + guint32 rgba = _selected_color.value(); + _preview.setRgba32(rgba); - if (ptr->_undo && SP_ACTIVE_DESKTOP) + if (_undo && SP_ACTIVE_DESKTOP) { DocumentUndo::done(sp_desktop_document(SP_ACTIVE_DESKTOP), SP_VERB_NONE, - /* TODO: annotate */ "color-picker.cpp:130"); + /* TODO: annotate */ "color-picker.cpp:130"); + } - ptr->on_changed (rgba); + on_changed(rgba); _in_use = false; - ptr->_changed_signal.emit (rgba); - ptr->_rgba = rgba; + _changed_signal.emit(rgba); + _rgba = rgba; } - }//namespace Widget }//namespace UI }//namespace Inkscape diff --git a/src/ui/widget/color-picker.h b/src/ui/widget/color-picker.h index b4da5dbf2..49275a04c 100644 --- a/src/ui/widget/color-picker.h +++ b/src/ui/widget/color-picker.h @@ -26,6 +26,7 @@ #include #include #include +#include "ui/selected-color.h" #include "ui/widget/color-preview.h" struct SPColorSelector; @@ -57,7 +58,7 @@ public: protected: - friend void sp_color_picker_color_mod(SPColorSelector *csel, GObject *cp); + void _onSelectedColorChanged(); virtual void on_clicked(); virtual void on_changed (guint32); @@ -67,13 +68,14 @@ protected: sigc::signal _changed_signal; guint32 _rgba; bool _undo; - + bool _updating; //Dialog void setupDialog(const Glib::ustring &title); //Inkscape::UI::Dialog::Dialog _colorSelectorDialog; Gtk::Dialog _colorSelectorDialog; - SPColorSelector *_colorSelector; + SelectedColor _selected_color; + Gtk::Widget *_color_selector; }; }//namespace Widget -- cgit v1.2.3 From 8df6d8e46c8b7e9a96529ee38af62a0f8ea9c831 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 13:26:17 +0200 Subject: disconnecting in ParamColor destructor (bzr r13341.6.47) --- src/extension/param/color.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index 0eca52f8e..5b2a4ad0c 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -38,7 +38,7 @@ namespace Extension { ParamColor::~ParamColor(void) { - + _color_changed.disconnect(); } guint32 ParamColor::set( guint32 in, SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/ ) -- cgit v1.2.3 From 05cc0e453380e6ddc80ba433b6240f4e881afee4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 15:30:36 +0200 Subject: using ColorSelector in gradient vector selector widget (bzr r13341.6.48) --- src/widgets/gradient-vector.cpp | 59 +++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 14 deletions(-) diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 17ac887c4..0ea5f5506 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -54,7 +54,10 @@ #include #include "document-undo.h" +#include "ui/selected-color.h" + using Inkscape::DocumentUndo; +using Inkscape::UI::SelectedColor; enum { VECTOR_SET, @@ -511,8 +514,8 @@ static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer data); static void sp_gradient_vector_gradient_release(SPObject *obj, GtkWidget *widget); static void sp_gradient_vector_gradient_modified(SPObject *obj, guint flags, GtkWidget *widget); -static void sp_gradient_vector_color_dragged(SPColorSelector *csel, GObject *object); -static void sp_gradient_vector_color_changed(SPColorSelector *csel, GObject *object); +static void sp_gradient_vector_color_dragged(Inkscape::UI::SelectedColor *selected_color, GObject *object); +static void sp_gradient_vector_color_changed(Inkscape::UI::SelectedColor *selected_color, GObject *object); static void update_stop_list( GtkWidget *vb, SPGradient *gradient, SPStop *new_stop); static gboolean blocked = FALSE; @@ -668,9 +671,11 @@ static void sp_grad_edit_combo_box_changed (GtkComboBox * /*widget*/, GtkWidget blocked = TRUE; - SPColorSelector *csel = static_cast(g_object_get_data(G_OBJECT(tbl), "cselector")); + SelectedColor *csel = static_cast(g_object_get_data(G_OBJECT(tbl), "cselector")); // set its color, from the stored array - csel->base->setColorAlpha( stop->getEffectiveColor(), stop->opacity ); + g_object_set_data(G_OBJECT(tbl), "updating_color", reinterpret_cast(1)); + csel->setColorAlpha(stop->getEffectiveColor(), stop->opacity); + g_object_set_data(G_OBJECT(tbl), "updating_color", reinterpret_cast(0)); GtkWidget *offspin = GTK_WIDGET(g_object_get_data(G_OBJECT(tbl), "offspn")); GtkWidget *offslide =GTK_WIDGET(g_object_get_data(G_OBJECT(tbl), "offslide")); @@ -851,7 +856,7 @@ static void sp_grd_ed_del_stop(GtkWidget */*widget*/, GtkWidget *vb) static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *select_stop) { - GtkWidget *vb, *w, *f, *csel; + GtkWidget *vb, *w, *f; g_return_val_if_fail(!gradient || SP_IS_GRADIENT(gradient), NULL); @@ -979,12 +984,23 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s f = gtk_frame_new(_("Stop Color")); gtk_widget_show(f); gtk_box_pack_start(GTK_BOX(vb), f, TRUE, TRUE, PAD); - csel = static_cast(sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK)); - g_object_set_data(G_OBJECT(vb), "cselector", csel); + + Inkscape::UI::SelectedColor *selected_color = new Inkscape::UI::SelectedColor; + g_object_set_data(G_OBJECT(vb), "cselector", selected_color); + g_object_set_data(G_OBJECT(vb), "updating_color", reinterpret_cast(0)); + selected_color->signal_dragged.connect(sigc::bind(sigc::ptr_fun(&sp_gradient_vector_color_dragged), selected_color, G_OBJECT(vb))); + selected_color->signal_dragged.connect(sigc::bind(sigc::ptr_fun(&sp_gradient_vector_color_changed), selected_color, G_OBJECT(vb))); + + Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(*selected_color)); + color_selector->show(); + gtk_container_add(GTK_CONTAINER(f), color_selector->gobj()); + + /* gtk_widget_show(csel); gtk_container_add(GTK_CONTAINER(f), csel); g_signal_connect(G_OBJECT(csel), "dragged", G_CALLBACK(sp_gradient_vector_color_dragged), vb); g_signal_connect(G_OBJECT(csel), "changed", G_CALLBACK(sp_gradient_vector_color_changed), vb); + */ gtk_widget_show(vb); @@ -1130,9 +1146,11 @@ static void sp_gradient_vector_widget_load_gradient(GtkWidget *widget, SPGradien } // get the color selector - SPColorSelector *csel = SP_COLOR_SELECTOR(g_object_get_data(G_OBJECT(widget), "cselector")); + SelectedColor *csel = static_cast(g_object_get_data(G_OBJECT(widget), "cselector")); - csel->base->setColorAlpha( stop->getEffectiveColor(), stop->opacity ); + g_object_set_data(G_OBJECT(widget), "updating_color", reinterpret_cast(1)); + csel->setColorAlpha(stop->getEffectiveColor(), stop->opacity); + g_object_set_data(G_OBJECT(widget), "updating_color", reinterpret_cast(0)); /* Fill preview */ GtkWidget *w = static_cast(g_object_get_data(G_OBJECT(widget), "preview")); @@ -1210,6 +1228,12 @@ static void sp_gradient_vector_widget_destroy(GtkObject *object, gpointer /*data sp_repr_remove_listener_by_data(gradient->getRepr(), object); } } + + SelectedColor *selected_color = static_cast(g_object_get_data(G_OBJECT(object), "cselector")); + if (selected_color) { + delete selected_color; + g_object_set_data(G_OBJECT(object), "cselector", NULL); + } } static void sp_gradient_vector_gradient_release(SPObject */*object*/, GtkWidget *widget) @@ -1227,7 +1251,7 @@ static void sp_gradient_vector_gradient_modified(SPObject *object, guint /*flags } } -static void sp_gradient_vector_color_dragged(SPColorSelector *csel, GObject *object) +static void sp_gradient_vector_color_dragged(Inkscape::UI::SelectedColor *selected_color, GObject *object) { SPGradient *gradient, *ngr; @@ -1255,14 +1279,21 @@ static void sp_gradient_vector_color_dragged(SPColorSelector *csel, GObject *obj return; } - csel->base->getColorAlpha(stop->specified_color, stop->opacity); + selected_color->colorAlpha(stop->specified_color, stop->opacity); stop->currentColor = false; blocked = FALSE; } -static void sp_gradient_vector_color_changed(SPColorSelector *csel, GObject *object) +static void sp_gradient_vector_color_changed(Inkscape::UI::SelectedColor *selected_color, GObject *object) { + (void)selected_color; + + void* updating_color = g_object_get_data(G_OBJECT(object), "updating_color"); + if (updating_color) { + return; + } + if (blocked) { return; } @@ -1291,10 +1322,10 @@ static void sp_gradient_vector_color_changed(SPColorSelector *csel, GObject *obj return; } - csel = static_cast(g_object_get_data(G_OBJECT(object), "cselector")); + SelectedColor *csel = static_cast(g_object_get_data(G_OBJECT(object), "cselector")); SPColor color; float alpha = 0; - csel->base->getColorAlpha( color, alpha ); + csel->colorAlpha(color, alpha); sp_repr_set_css_double(stop->getRepr(), "offset", stop->offset); Inkscape::CSSOStringStream os; -- cgit v1.2.3 From 58637d547a0ce3a4a3bd64628e1a9095c6d3bd35 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 16:17:42 +0200 Subject: using ColorSelector in SPPaintSelector (bzr r13341.6.49) --- src/widgets/paint-selector.cpp | 84 ++++++++++++++++++++---------------------- src/widgets/paint-selector.h | 19 ++++++++-- 2 files changed, 56 insertions(+), 47 deletions(-) diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 39336267b..274ad7bdf 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -60,6 +60,7 @@ #include using Inkscape::Widgets::SwatchSelector; +using Inkscape::UI::SelectedColor; enum { MODE_CHANGED, @@ -303,8 +304,13 @@ sp_paint_selector_init(SPPaintSelector *psel) /* Last used color */ - psel->color.set( 0.0, 0.0, 0.0 ); - psel->alpha = 1.0; + psel->selected_color = new SelectedColor; + psel->updating_color = false; + + psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorGrabbed)); + psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorDragged)); + psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorReleased)); + psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorChanged)); } static void sp_paint_selector_dispose(GObject *object) @@ -314,6 +320,11 @@ static void sp_paint_selector_dispose(GObject *object) // clean up our long-living pattern menu g_object_set_data(G_OBJECT(psel),"patternmenu",NULL); + if (psel->selected_color) { + delete psel->selected_color; + psel->selected_color = NULL; + } + if ((G_OBJECT_CLASS(parent_class))->dispose) (* (G_OBJECT_CLASS(parent_class))->dispose)(object); } @@ -446,7 +457,6 @@ void SPPaintSelector::setFillrule(FillRule fillrule) void SPPaintSelector::setColorAlpha(SPColor const &color, float alpha) { g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); - SPColorSelector *csel = 0; /* guint32 rgba = 0; @@ -466,9 +476,10 @@ void SPPaintSelector::setColorAlpha(SPColor const &color, float alpha) setMode(MODE_COLOR_RGB); } - csel = reinterpret_cast(g_object_get_data(G_OBJECT(selector), "color-selector")); + updating_color = true; + selected_color->setColorAlpha(color, alpha); + updating_color = false; //rgba = color.toRGBA32( alpha ); - csel->base->setColorAlpha( color, alpha ); } void SPPaintSelector::setSwatch(SPGradient *vector ) @@ -534,11 +545,7 @@ void SPPaintSelector::getGradientProperties( SPGradientUnits &units, SPGradientS */ void SPPaintSelector::getColorAlpha(SPColor &color, gfloat &alpha) const { - SPColorSelector *csel; - - csel = reinterpret_cast(g_object_get_data(G_OBJECT(selector), "color-selector")); - - csel->base->getColorAlpha( color, alpha ); + selected_color->colorAlpha(color, alpha); g_assert( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); @@ -626,39 +633,36 @@ sp_paint_selector_set_mode_none(SPPaintSelector *psel) /* Color paint */ -static void sp_paint_selector_color_grabbed(SPColorSelector * /*csel*/, SPPaintSelector *psel) -{ - g_signal_emit(G_OBJECT(psel), psel_signals[GRABBED], 0); +void SPPaintSelector::onSelectedColorGrabbed() { + g_signal_emit(G_OBJECT(this), psel_signals[GRABBED], 0); } -static void sp_paint_selector_color_dragged(SPColorSelector * /*csel*/, SPPaintSelector *psel) -{ - g_signal_emit(G_OBJECT(psel), psel_signals[DRAGGED], 0); +void SPPaintSelector::onSelectedColorDragged() { + if (updating_color) { + return; + } + g_signal_emit(G_OBJECT(this), psel_signals[DRAGGED], 0); } -static void sp_paint_selector_color_released(SPColorSelector * /*csel*/, SPPaintSelector *psel) -{ - g_signal_emit(G_OBJECT(psel), psel_signals[RELEASED], 0); +void SPPaintSelector::onSelectedColorReleased() { + g_signal_emit(G_OBJECT(this), psel_signals[RELEASED], 0); } -static void -sp_paint_selector_color_changed(SPColorSelector *csel, SPPaintSelector *psel) -{ - csel->base->getColorAlpha( psel->color, psel->alpha ); - - g_signal_emit(G_OBJECT(psel), psel_signals[CHANGED], 0); +void SPPaintSelector::onSelectedColorChanged() { + if (updating_color) { + return; + } + g_signal_emit(G_OBJECT(this), psel_signals[CHANGED], 0); } static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelector::Mode /*mode*/) { - GtkWidget *csel; - sp_paint_selector_set_style_buttons(psel, psel->solid); gtk_widget_set_sensitive(psel->style, TRUE); if ((psel->mode == SPPaintSelector::MODE_COLOR_RGB) || (psel->mode == SPPaintSelector::MODE_COLOR_CMYK)) { /* Already have color selector */ - csel = GTK_WIDGET(g_object_get_data(G_OBJECT(psel->selector), "color-selector")); + // Do nothing } else { sp_paint_selector_clear_frame(psel); @@ -673,22 +677,14 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec gtk_widget_show(vb); /* Color selector */ - csel = sp_color_selector_new( SP_TYPE_COLOR_NOTEBOOK ); - gtk_widget_show(csel); - g_object_set_data(G_OBJECT(vb), "color-selector", csel); - gtk_box_pack_start(GTK_BOX(vb), csel, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(csel), "grabbed", G_CALLBACK(sp_paint_selector_color_grabbed), psel); - g_signal_connect(G_OBJECT(csel), "dragged", G_CALLBACK(sp_paint_selector_color_dragged), psel); - g_signal_connect(G_OBJECT(csel), "released", G_CALLBACK(sp_paint_selector_color_released), psel); - g_signal_connect(G_OBJECT(csel), "changed", G_CALLBACK(sp_paint_selector_color_changed), psel); + Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(*(psel->selected_color))); + color_selector->show(); + gtk_box_pack_start(GTK_BOX(vb), color_selector->gobj(), TRUE, TRUE, 0); + /* Pack everything to frame */ gtk_container_add(GTK_CONTAINER(psel->frame), vb); psel->selector = vb; - - /* Set color */ - SP_COLOR_SELECTOR( csel )->base->setColorAlpha( psel->color, psel->alpha ); - } gtk_label_set_markup(GTK_LABEL(psel->label), _("Flat color")); @@ -700,22 +696,22 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec /* Gradient */ -static void sp_paint_selector_gradient_grabbed(SPColorSelector * /*csel*/, SPPaintSelector *psel) +static void sp_paint_selector_gradient_grabbed(SPGradientSelector * /*csel*/, SPPaintSelector *psel) { g_signal_emit(G_OBJECT(psel), psel_signals[GRABBED], 0); } -static void sp_paint_selector_gradient_dragged(SPColorSelector * /*csel*/, SPPaintSelector *psel) +static void sp_paint_selector_gradient_dragged(SPGradientSelector * /*csel*/, SPPaintSelector *psel) { g_signal_emit(G_OBJECT(psel), psel_signals[DRAGGED], 0); } -static void sp_paint_selector_gradient_released(SPColorSelector * /*csel*/, SPPaintSelector *psel) +static void sp_paint_selector_gradient_released(SPGradientSelector * /*csel*/, SPPaintSelector *psel) { g_signal_emit(G_OBJECT(psel), psel_signals[RELEASED], 0); } -static void sp_paint_selector_gradient_changed(SPColorSelector * /*csel*/, SPPaintSelector *psel) +static void sp_paint_selector_gradient_changed(SPGradientSelector * /*csel*/, SPPaintSelector *psel) { g_signal_emit(G_OBJECT(psel), psel_signals[CHANGED], 0); } diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h index d6ad3f50c..c151be526 100644 --- a/src/widgets/paint-selector.h +++ b/src/widgets/paint-selector.h @@ -12,6 +12,14 @@ * */ +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + #include #include @@ -19,6 +27,7 @@ #include "fill-or-stroke.h" #include "sp-gradient-spread.h" #include "sp-gradient-units.h" +#include "ui/selected-color.h" class SPGradient; class SPDesktop; @@ -74,9 +83,8 @@ struct SPPaintSelector { GtkWidget *frame, *selector; GtkWidget *label; - SPColor color; - float alpha; - + Inkscape::UI::SelectedColor *selected_color; + bool updating_color; static Mode getModeForStyle(SPStyle const & style, FillOrStroke kind); @@ -102,6 +110,11 @@ struct SPPaintSelector { // TODO move this elsewhere: void setFlatColor( SPDesktop *desktop, const gchar *color_property, const gchar *opacity_property ); + + void onSelectedColorGrabbed(); + void onSelectedColorDragged(); + void onSelectedColorReleased(); + void onSelectedColorChanged(); }; enum {COMBO_COL_LABEL=0, COMBO_COL_STOCK=1, COMBO_COL_PATTERN=2, COMBO_COL_SEP=3, COMBO_N_COLS=4}; -- cgit v1.2.3 From 65782d9a28fe5745e672b33c005edfda715c2ed8 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 16:41:20 +0200 Subject: using ColorSelector in SwatchSelector (bzr r13341.6.50) --- src/widgets/swatch-selector.cpp | 102 +++++++++++++++++----------------------- src/widgets/swatch-selector.h | 12 +++-- 2 files changed, 51 insertions(+), 63 deletions(-) diff --git a/src/widgets/swatch-selector.cpp b/src/widgets/swatch-selector.cpp index 7178ad072..b7de6657c 100644 --- a/src/widgets/swatch-selector.cpp +++ b/src/widgets/swatch-selector.cpp @@ -20,7 +20,7 @@ namespace Widgets SwatchSelector::SwatchSelector() : Gtk::VBox(), _gsel(0), - _csel(0) + _updating_color(false) { GtkWidget *gsel = sp_gradient_selector_new(); _gsel = SP_GRADIENT_SELECTOR(gsel); @@ -31,27 +31,18 @@ SwatchSelector::SwatchSelector() : pack_start(*Gtk::manage(Glib::wrap(gsel))); + Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(_selected_color)); + color_selector->show(); + pack_start(*color_selector); - GtkWidget *csel = sp_color_selector_new( SP_TYPE_COLOR_NOTEBOOK ); - _csel = SP_COLOR_SELECTOR(csel); - Gtk::Widget *wrappedCSel = Glib::wrap(csel); - wrappedCSel->show(); - //gtk_widget_show(csel); - - - GObject *obj = G_OBJECT(csel); - - g_signal_connect(obj, "grabbed", G_CALLBACK(_grabbedCb), this); - g_signal_connect(obj, "dragged", G_CALLBACK(_draggedCb), this); - g_signal_connect(obj, "released", G_CALLBACK(_releasedCb), this); - g_signal_connect(obj, "changed", G_CALLBACK(_changedCb), this); - - pack_start(*Gtk::manage(wrappedCSel)); + _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &SwatchSelector::_grabbedCb)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &SwatchSelector::_draggedCb)); + _selected_color.signal_released.connect(sigc::mem_fun(this, &SwatchSelector::_releasedCb)); + _selected_color.signal_changed.connect(sigc::mem_fun(this, &SwatchSelector::_changedCb)); } SwatchSelector::~SwatchSelector() { - _csel = 0; // dtor should be handled by Gtk::manage() _gsel = 0; } @@ -60,13 +51,13 @@ SPGradientSelector *SwatchSelector::getGradientSelector() return _gsel; } -void SwatchSelector::_grabbedCb(SPColorSelector * /*csel*/, void * /*data*/) +void SwatchSelector::_grabbedCb() { } -void SwatchSelector::_draggedCb(SPColorSelector * /*csel*/, void *data) +void SwatchSelector::_draggedCb() { - if (data) { + // if (data) { //SwatchSelector *swsel = reinterpret_cast(data); // TODO might have to block cycles @@ -92,50 +83,46 @@ void SwatchSelector::_draggedCb(SPColorSelector * /*csel*/, void *data) } } */ - } + // } } -void SwatchSelector::_releasedCb(SPColorSelector * /*csel*/, void * /*data*/) +void SwatchSelector::_releasedCb() { } -void SwatchSelector::_changedCb(SPColorSelector */*csel*/, void *data) +void SwatchSelector::_changedCb() { - if (data) { - SwatchSelector *swsel = reinterpret_cast(data); + if (_updating_color) { + return; + } + // TODO might have to block cycles + + if (_gsel && _gsel->getVector()) { + SPGradient *gradient = _gsel->getVector(); + SPGradient *ngr = sp_gradient_ensure_vector_normalized(gradient); + if (ngr != gradient) { + /* Our master gradient has changed */ + // TODO replace with proper - sp_gradient_vector_widget_load_gradient(GTK_WIDGET(swsel->_gsel), ngr); + } - // TODO might have to block cycles + ngr->ensureVector(); - if (swsel->_gsel && swsel->_gsel->getVector()) { - SPGradient *gradient = swsel->_gsel->getVector(); - SPGradient *ngr = sp_gradient_ensure_vector_normalized(gradient); - if (ngr != gradient) { - /* Our master gradient has changed */ - // TODO replace with proper - sp_gradient_vector_widget_load_gradient(GTK_WIDGET(swsel->_gsel), ngr); - } - ngr->ensureVector(); + SPStop* stop = ngr->getFirstStop(); + if (stop) { + SPColor color = _selected_color.color(); + gfloat alpha = _selected_color.alpha(); + guint32 rgb = color.toRGBA32( 0x00 ); + // TODO replace with generic shared code that also handles icc-color + Inkscape::CSSOStringStream os; + gchar c[64]; + sp_svg_write_color(c, sizeof(c), rgb); + os << "stop-color:" << c << ";stop-opacity:" << static_cast(alpha) <<";"; + stop->getRepr()->setAttribute("style", os.str().c_str()); - SPStop* stop = ngr->getFirstStop(); - if (stop) { - SPColor color; - float alpha = 0; - guint32 rgb = 0; - - swsel->_csel->base->getColorAlpha( color, alpha ); - rgb = color.toRGBA32( 0x00 ); - - // TODO replace with generic shared code that also handles icc-color - Inkscape::CSSOStringStream os; - gchar c[64]; - sp_svg_write_color(c, sizeof(c), rgb); - os << "stop-color:" << c << ";stop-opacity:" << static_cast(alpha) <<";"; - stop->getRepr()->setAttribute("style", os.str().c_str()); - - DocumentUndo::done(ngr->document, SP_VERB_CONTEXT_GRADIENT, - _("Change swatch color")); - } + DocumentUndo::done(ngr->document, SP_VERB_CONTEXT_GRADIENT, + _("Change swatch color")); } } } @@ -173,11 +160,10 @@ void SwatchSelector::setVector(SPDocument */*doc*/, SPGradient *vector) SPStop* stop = vector->getFirstStop(); guint32 const colorVal = stop->get_rgba32(); - _csel->base->setAlpha(SP_RGBA32_A_F(colorVal)); - SPColor color( SP_RGBA32_R_F(colorVal), SP_RGBA32_G_F(colorVal), SP_RGBA32_B_F(colorVal) ); - // set its color, from the stored array - _csel->base->setColor( color ); - gtk_widget_show_all( GTK_WIDGET(_csel) ); + _updating_color = true; + _selected_color.setValue(colorVal); + _updating_color = false; + // gtk_widget_show_all( GTK_WIDGET(_csel) ); } else { //gtk_widget_hide( GTK_WIDGET(_csel) ); } diff --git a/src/widgets/swatch-selector.h b/src/widgets/swatch-selector.h index c8c9983a6..d447fff37 100644 --- a/src/widgets/swatch-selector.h +++ b/src/widgets/swatch-selector.h @@ -10,6 +10,7 @@ #endif #include +#include "ui/selected-color.h" class SPDocument; class SPGradient; @@ -37,13 +38,14 @@ public: SPGradientSelector *getGradientSelector(); private: - static void _grabbedCb(SPColorSelector *csel, void *data); - static void _draggedCb(SPColorSelector *csel, void *data); - static void _releasedCb(SPColorSelector *csel, void *data); - static void _changedCb(SPColorSelector *csel, void *data); + void _grabbedCb(); + void _draggedCb(); + void _releasedCb(); + void _changedCb(); SPGradientSelector *_gsel; - SPColorSelector *_csel; + Inkscape::UI::SelectedColor _selected_color; + bool _updating_color; }; -- cgit v1.2.3 From 66275a3a9f7666fe68355c1d8c452395b706db30 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 17:29:01 +0200 Subject: moved ColorNotebook to ui/widget (bzr r13341.6.51) --- src/extension/param/color.cpp | 2 +- src/extension/param/parameter.cpp | 3 +- src/ui/CMakeLists.txt | 2 + src/ui/widget/Makefile_insert | 2 + src/ui/widget/color-notebook.cpp | 675 ++++++++++++++++++++++++++++++++++++++ src/ui/widget/color-notebook.h | 150 +++++++++ src/ui/widget/color-picker.cpp | 2 +- src/widgets/CMakeLists.txt | 2 - src/widgets/Makefile_insert | 2 - src/widgets/gradient-vector.cpp | 4 +- src/widgets/paint-selector.cpp | 2 +- src/widgets/sp-color-notebook.cpp | 675 -------------------------------------- src/widgets/sp-color-notebook.h | 150 --------- src/widgets/swatch-selector.cpp | 2 +- 14 files changed, 836 insertions(+), 837 deletions(-) create mode 100644 src/ui/widget/color-notebook.cpp create mode 100644 src/ui/widget/color-notebook.h delete mode 100644 src/widgets/sp-color-notebook.cpp delete mode 100644 src/widgets/sp-color-notebook.h diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index 5b2a4ad0c..6748c8f5f 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -29,7 +29,7 @@ #include #include "widgets/sp-color-selector.h" -#include "widgets/sp-color-notebook.h" +#include "ui/widget/color-notebook.h" #include "preferences.h" diff --git a/src/extension/param/parameter.cpp b/src/extension/param/parameter.cpp index b18525215..8c99ee55d 100644 --- a/src/extension/param/parameter.cpp +++ b/src/extension/param/parameter.cpp @@ -30,8 +30,7 @@ #include "document-private.h" #include "sp-object.h" #include -#include "widgets/sp-color-selector.h" -#include "widgets/sp-color-notebook.h" +#include "ui/widget/color-notebook.h" #include "parameter.h" #include "bool.h" diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index dbfba0508..45b4c7960 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -110,6 +110,7 @@ set(ui_SRC widget/button.cpp widget/color-entry.cpp widget/color-icc-selector.cpp + widget/color-notebook.cpp widget/color-picker.cpp widget/color-preview.cpp widget/color-scales.cpp @@ -277,6 +278,7 @@ set(ui_SRC widget/button.h widget/color-entry.h widget/color-icc-selector.h + widget/color-notebook.h widget/color-picker.h widget/color-preview.h widget/color-scales.h diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index f39236da7..ddb641069 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -10,6 +10,8 @@ ink_common_sources += \ ui/widget/color-entry.h \ ui/widget/color-icc-selector.cpp \ ui/widget/color-icc-selector.h \ + ui/widget/color-notebook.cpp \ + ui/widget/color-notebook.h \ ui/widget/color-wheel-selector.cpp \ ui/widget/color-wheel-selector.h \ ui/widget/color-picker.cpp \ diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp new file mode 100644 index 000000000..2b592e620 --- /dev/null +++ b/src/ui/widget/color-notebook.cpp @@ -0,0 +1,675 @@ +/* + * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages + * + * Author: + * Lauris Kaplinski + * bulia byak + * + * Copyright (C) 2001-2002 Lauris Kaplinski + * + * This code is in public domain + */ + +#undef SPCS_PREVIEW +#define noDUMP_CHANGE_INFO + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "widgets/icon.h" +#include +#include +#include +#include +#include +#include +#include + +#include "dialogs/dialog-events.h" +#include "preferences.h" +#include "widgets/spw-utilities.h" +#include "svg/svg-icc-color.h" +#include "inkscape.h" +#include "document.h" +#include "profile-manager.h" +#include "color-profile.h" +#include "cms-system.h" +#include "tools-switch.h" +#include "ui/tools/tool-base.h" +#include "ui/widget/color-entry.h" +#include "ui/widget/color-icc-selector.h" +#include "ui/widget/color-notebook.h" +#include "ui/widget/color-scales.h" +#include "ui/widget/color-wheel-selector.h" + +using Inkscape::CMSSystem; + +using namespace Inkscape::UI; +using namespace Inkscape::UI::Widget; + +struct SPColorNotebookTracker { + const gchar* name; + const gchar* className; + GType type; + guint submode; + gboolean enabledFull; + gboolean enabledBrief; + SPColorNotebook *backPointer; +}; + + +static void sp_color_notebook_class_init (SPColorNotebookClass *klass); +static void sp_color_notebook_init (SPColorNotebook *colorbook); +static void sp_color_notebook_dispose(GObject *object); + +static void sp_color_notebook_show_all (GtkWidget *widget); +static void sp_color_notebook_hide(GtkWidget *widget); + +static SPColorSelectorClass *parent_class; + +#define XPAD 4 +#define YPAD 1 + +GType sp_color_notebook_get_type(void) +{ + static GType type = 0; + if (!type) { + GTypeInfo info = { + sizeof(SPColorNotebookClass), + 0, // base_init + 0, // base_finalize + (GClassInitFunc)sp_color_notebook_class_init, + 0, // class_finalize + 0, // class_data + sizeof(SPColorNotebook), + 0, // n_preallocs + (GInstanceInitFunc)sp_color_notebook_init, + 0 // value_table + }; + type = g_type_register_static(SP_TYPE_COLOR_SELECTOR, "SPColorNotebook", &info, static_cast(0)); + } + return type; +} + +static void sp_color_notebook_class_init(SPColorNotebookClass *klass) +{ + GObjectClass *object_class = reinterpret_cast(klass); + GtkWidgetClass *widget_class = reinterpret_cast(klass); + + parent_class = SP_COLOR_SELECTOR_CLASS(g_type_class_peek_parent(klass)); + + object_class->dispose = sp_color_notebook_dispose; + + widget_class->show_all = sp_color_notebook_show_all; + widget_class->hide = sp_color_notebook_hide; +} + +static void +sp_color_notebook_switch_page(GtkNotebook *notebook, + GtkWidget *page, + guint page_num, + SPColorNotebook *colorbook) +{ + if ( colorbook ) + { + // remember the page we switched to + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setInt("/colorselector/page", page_num); + } +} + +static void +sp_color_notebook_init (SPColorNotebook *colorbook) +{ + SP_COLOR_SELECTOR(colorbook)->base = new ColorNotebook( SP_COLOR_SELECTOR(colorbook) ); + + if ( SP_COLOR_SELECTOR(colorbook)->base ) + { + SP_COLOR_SELECTOR(colorbook)->base->init(); + } +} + +void ColorNotebook::init() +{ + guint row = 0; + + _updating = false; + + _book = gtk_notebook_new (); + gtk_widget_show (_book); + + // Dont show the notebook tabs, use radiobuttons instead + gtk_notebook_set_show_border (GTK_NOTEBOOK (_book), false); + gtk_notebook_set_show_tabs (GTK_NOTEBOOK (_book), false); + +#if GTK_CHECK_VERSION(3,0,0) + _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); + gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE); +#else + _buttonbox = gtk_hbox_new (TRUE, 2); +#endif + + gtk_widget_show (_buttonbox); + _buttons = new GtkWidget *[_available_pages.size()]; + + for (int i = 0; static_cast(i) < _available_pages.size(); i++ ) + { + _addPage(_available_pages[i]); + } + +#if GTK_CHECK_VERSION(3,0,0) + GtkWidget* table = gtk_grid_new(); +#else + GtkWidget* table = gtk_table_new(2, 3, FALSE); +#endif + + gtk_widget_show (table); + + gtk_box_pack_start (GTK_BOX (_csel), table, TRUE, TRUE, 0); + + sp_set_font_size_smaller (_buttonbox); + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_buttonbox, XPAD); + gtk_widget_set_margin_right(_buttonbox, XPAD); + gtk_widget_set_margin_top(_buttonbox, YPAD); + gtk_widget_set_margin_bottom(_buttonbox, YPAD); + gtk_widget_set_hexpand(_buttonbox, TRUE); + gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER); + gtk_grid_attach(GTK_GRID(table), _buttonbox, 0, row, 2, 1); +#else + gtk_table_attach (GTK_TABLE (table), _buttonbox, 0, 2, row, row + 1, + static_cast(GTK_EXPAND|GTK_FILL), + static_cast(0), + XPAD, YPAD); +#endif + + row++; + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(_book, XPAD*2); + gtk_widget_set_margin_right(_book, XPAD*2); + gtk_widget_set_margin_top(_book, YPAD); + gtk_widget_set_margin_bottom(_book, YPAD); + gtk_widget_set_hexpand(_book, TRUE); + gtk_widget_set_vexpand(_book, TRUE); + gtk_grid_attach(GTK_GRID(table), _book, 0, row, 2, 1); +#else + gtk_table_attach (GTK_TABLE (table), _book, 0, 2, row, row + 1, + static_cast(GTK_EXPAND|GTK_FILL), + static_cast(GTK_EXPAND|GTK_FILL), + XPAD*2, YPAD); +#endif + + // restore the last active page + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + _setCurrentPage(prefs->getInt("/colorselector/page", 0)); + + + /* Commented out: see comment at the bottom of the header file + { + gboolean found = FALSE; + + _popup = gtk_menu_new(); + GtkMenu *menu = GTK_MENU (_popup); + + for (int i = 0; i < _trackerList->len; i++ ) + { + SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (g_ptr_array_index (_trackerList, i)); + if ( entry ) + { + GtkWidget *item = gtk_check_menu_item_new_with_label (_(entry->name)); + gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), entry->enabledFull); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL(menu), item); + + g_signal_connect (G_OBJECT (item), "activate", + G_CALLBACK (sp_color_notebook_menuitem_response), + reinterpret_cast< gpointer > (entry) ); + found = TRUE; + } + } + + GtkWidget *arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); + gtk_widget_show (arrow); + + _btn = gtk_button_new (); + gtk_widget_show (_btn); + gtk_container_add (GTK_CONTAINER (_btn), arrow); + + GtkWidget *align = gtk_alignment_new (1.0, 0.0, 0.0, 0.0); + gtk_widget_show (align); + gtk_container_add (GTK_CONTAINER (align), _btn); + + // uncomment to reenable the "show/hide modes" menu, + // but first fix it so it remembers its settings in prefs and does not take that much space (entire vertical column!) + gtk_table_attach (GTK_TABLE (table), align, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); + + g_signal_connect_swapped(G_OBJECT(_btn), "event", G_CALLBACK (sp_color_notebook_menu_handler), G_OBJECT(_csel)); + if ( !found ) + { + gtk_widget_set_sensitive (_btn, FALSE); + } + } + */ + + row++; + +#if GTK_CHECK_VERSION(3,0,0) + GtkWidget *rgbabox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); +#else + GtkWidget *rgbabox = gtk_hbox_new (FALSE, 0); +#endif + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + /* Create color management icons */ + _box_colormanaged = gtk_event_box_new (); + GtkWidget *colormanaged = gtk_image_new_from_icon_name ("color-management-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add (GTK_CONTAINER (_box_colormanaged), colormanaged); + gtk_widget_set_tooltip_text (_box_colormanaged, _("Color Managed")); + gtk_widget_set_sensitive (_box_colormanaged, false); + gtk_box_pack_start(GTK_BOX(rgbabox), _box_colormanaged, FALSE, FALSE, 2); + + _box_outofgamut = gtk_event_box_new (); + GtkWidget *outofgamut = gtk_image_new_from_icon_name ("out-of-gamut-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add (GTK_CONTAINER (_box_outofgamut), outofgamut); + gtk_widget_set_tooltip_text (_box_outofgamut, _("Out of gamut!")); + gtk_widget_set_sensitive (_box_outofgamut, false); + gtk_box_pack_start(GTK_BOX(rgbabox), _box_outofgamut, FALSE, FALSE, 2); + + _box_toomuchink = gtk_event_box_new (); + GtkWidget *toomuchink = gtk_image_new_from_icon_name ("too-much-ink-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add (GTK_CONTAINER (_box_toomuchink), toomuchink); + gtk_widget_set_tooltip_text (_box_toomuchink, _("Too much ink!")); + gtk_widget_set_sensitive (_box_toomuchink, false); + gtk_box_pack_start(GTK_BOX(rgbabox), _box_toomuchink, FALSE, FALSE, 2); +#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + + + /* Color picker */ + GtkWidget *picker = gtk_image_new_from_icon_name ("color-picker", GTK_ICON_SIZE_SMALL_TOOLBAR); + _btn_picker = gtk_button_new (); + gtk_button_set_relief(GTK_BUTTON(_btn_picker), GTK_RELIEF_NONE); + gtk_container_add (GTK_CONTAINER (_btn_picker), picker); + gtk_widget_set_tooltip_text (_btn_picker, _("Pick colors from image")); + gtk_box_pack_start(GTK_BOX(rgbabox), _btn_picker, FALSE, FALSE, 2); + g_signal_connect(G_OBJECT(_btn_picker), "clicked", G_CALLBACK(ColorNotebook::_picker_clicked), _csel); + + /* Create RGBA entry and color preview */ + _rgbal = gtk_label_new_with_mnemonic (_("RGBA_:")); + gtk_misc_set_alignment (GTK_MISC (_rgbal), 1.0, 0.5); + gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); + + ColorEntry* rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); + sp_dialog_defocus_on_enter (GTK_WIDGET(rgba_entry->gobj())); + gtk_box_pack_start(GTK_BOX(rgbabox), GTK_WIDGET(rgba_entry->gobj()), FALSE, FALSE, 0); + gtk_label_set_mnemonic_widget (GTK_LABEL(_rgbal), GTK_WIDGET(rgba_entry->gobj())); + + sp_set_font_size_smaller (rgbabox); + gtk_widget_show_all (rgbabox); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + //the "too much ink" icon is initially hidden + gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); +#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + +#if GTK_CHECK_VERSION(3,0,0) + gtk_widget_set_margin_left(rgbabox, XPAD); + gtk_widget_set_margin_right(rgbabox, XPAD); + gtk_widget_set_margin_top(rgbabox, YPAD); + gtk_widget_set_margin_bottom(rgbabox, YPAD); + gtk_grid_attach(GTK_GRID(table), rgbabox, 0, row, 2, 1); +#else + gtk_table_attach (GTK_TABLE (table), rgbabox, 0, 2, row, row + 1, GTK_FILL, GTK_SHRINK, XPAD, YPAD); +#endif + +#ifdef SPCS_PREVIEW + _p = sp_color_preview_new (0xffffffff); + gtk_widget_show (_p); + gtk_table_attach (GTK_TABLE (table), _p, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); +#endif + + _switchId = g_signal_connect(G_OBJECT (_book), "switch-page", + G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); + + _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorDragged)); + _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorGrabbed)); + _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorReleased)); +} + +static void sp_color_notebook_dispose(GObject *object) +{ + if (((GObjectClass *) (parent_class))->dispose) + (* ((GObjectClass *) (parent_class))->dispose) (object); +} + +ColorNotebook::~ColorNotebook() +{ + if ( _switchId ) + { + if ( _book ) + { + g_signal_handler_disconnect (_book, _switchId); + _switchId = 0; + } + } + + if ( _buttons ) + { + delete [] _buttons; + _buttons = 0; + } + +} + +static void +sp_color_notebook_show_all (GtkWidget *widget) +{ + gtk_widget_show (widget); +} + +static void sp_color_notebook_hide(GtkWidget *widget) +{ + gtk_widget_hide(widget); +} + +GtkWidget *sp_color_notebook_new() +{ + SPColorNotebook *colorbook = SP_COLOR_NOTEBOOK(g_object_new (SP_TYPE_COLOR_NOTEBOOK, NULL)); + + return GTK_WIDGET(colorbook); +} + +ColorNotebook::ColorNotebook( SPColorSelector* csel ) + : ColorSelector( csel ) + , _selected_color(_selected_color_tmp) +{ + Page *page; + + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_HSV), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_CMYK), true); + _available_pages.push_back(page); + page = new Page(new ColorWheelSelectorFactory, true); + _available_pages.push_back(page); +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + page = new Page(new ColorICCSelectorFactory, true); + _available_pages.push_back(page); +#endif +} + +Gtk::Widget *ColorNotebook::create(SelectedColor &color) { + GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK); + SPColorSelector *s = SP_COLOR_SELECTOR(w); + ColorNotebook* nb = dynamic_cast(s->base); + return Glib::wrap(w); +} + +ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) + : selector_factory(selector_factory) + , enabled_full(enabled_full) +{ +} + +void ColorNotebook::_colorChanged() +{ + _updating = true; + _selected_color.setColorAlpha(_color, _alpha); + _updateICCButtons(); + _updating = false; +} + +void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /*colorbook*/) +{ + // Set the dropper into a "one click" mode, so it reverts to the previous tool after a click + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/tools/dropper/onetimepick", true); + Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); +} + +// TODO pass in param so as to avoid the need for SP_ACTIVE_DOCUMENT +void ColorNotebook::_updateICCButtons() +{ + SPColor color = _selected_color.color(); + gfloat alpha = _selected_color.alpha(); + + g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); + +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + /* update color management icon*/ + gtk_widget_set_sensitive (_box_colormanaged, color.icc != NULL); + + /* update out-of-gamut icon */ + gtk_widget_set_sensitive (_box_outofgamut, false); + if (color.icc){ + Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); + if ( target_profile ) + gtk_widget_set_sensitive(_box_outofgamut, target_profile->GamutCheck(color)); + } + + /* update too-much-ink icon */ + gtk_widget_set_sensitive (_box_toomuchink, false); + if (color.icc){ + Inkscape::ColorProfile* prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); + if ( prof && CMSSystem::isPrintColorSpace(prof) ) { + gtk_widget_show(GTK_WIDGET(_box_toomuchink)); + double ink_sum = 0; + for (unsigned int i=0; icolors.size(); i++){ + ink_sum += color.icc->colors[i]; + } + + /* Some literature states that when the sum of paint values exceed 320%, it is considered to be a satured color, + which means the paper can get too wet due to an excessive ammount of ink. This may lead to several issues + such as misalignment and poor quality of printing in general.*/ + if ( ink_sum > 3.2 ) + gtk_widget_set_sensitive (_box_toomuchink, true); + } else { + gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); + } + } +#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +} + +void ColorNotebook::_setCurrentPage(int i) +{ + gtk_notebook_set_current_page(GTK_NOTEBOOK(_book), i); + + if (_buttons && (static_cast(i) < _available_pages.size())) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(_buttons[i]), TRUE); + } +} + +void ColorNotebook::_buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook) +{ + ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); + + if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) { + return; + } + + for(gint i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb->_book)); i++) { + if (nb->_buttons[i] == widget) { + gtk_notebook_set_current_page (GTK_NOTEBOOK (nb->_book), i); + } + } +} + +void ColorNotebook::_onSelectedColorChanged() { + if (_updating) { + return; + } + + SPColor color; + gfloat alpha = 1.0; + _selected_color.colorAlpha(color, alpha); + _updateInternals(color, alpha, false); + _updateICCButtons(); +} + +void ColorNotebook::_onSelectedColorDragged() { + if (_updating) { + return; + } + SPColor color; + gfloat alpha = 1.0; + _selected_color.colorAlpha(color, alpha); + _updateInternals(color, alpha, true); + _updateICCButtons(); +} + +void ColorNotebook::_onSelectedColorGrabbed() { + if (_updating) { + return; + } + + _grabbed(); +} + +void ColorNotebook::_onSelectedColorReleased() { + if (_updating) { + return; + } + _released(); +} + +GtkWidget* ColorNotebook::_addPage(Page& page) { + Gtk::Widget *selector_widget; + + selector_widget = page.selector_factory->createWidget(_selected_color); + if (selector_widget) { + selector_widget->show(); + + Glib::ustring mode_name = page.selector_factory->modeName(); + Gtk::Widget* tab_label = Gtk::manage(new Gtk::Label(mode_name)); + gint page_num = gtk_notebook_append_page( GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); + + _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); + gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); + if (page_num > 0) { + GSList *group = gtk_radio_button_get_group (GTK_RADIO_BUTTON(_buttons[0])); + gtk_radio_button_set_group (GTK_RADIO_BUTTON(_buttons[page_num]), group); + } + gtk_widget_show (_buttons[page_num]); + gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); + + g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); + } + + return selector_widget->gobj(); +} + + +/* Commented out: see comment at the bottom of the header file + +GtkWidget* ColorNotebook::getPage(GType page_type, guint submode) +{ + gint count = 0; + gint i = 0; + GtkWidget* page = 0; + +// count = gtk_notebook_get_n_pages (_book); + count = 200; + for ( i = 0; i < count && !page; i++ ) + { + page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), i); + if ( page ) + { + SPColorSelector* csel; + guint pagemode; + csel = SP_COLOR_SELECTOR (page); + pagemode = csel->base->getSubmode(); + if ( G_TYPE_FROM_INSTANCE (page) == page_type + && pagemode == submode ) + { + // found it. + break; + } + else + { + page = 0; + } + } + else + { + break; + } + } + return page; +} + +void ColorNotebook::removePage( GType page_type, guint submode ) +{ + GtkWidget *page = 0; + + page = getPage(page_type, submode); + if ( page ) + { + gint where = gtk_notebook_page_num (GTK_NOTEBOOK (_book), page); + if ( where >= 0 ) + { + if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)) == where ) + { +// getColorAlpha(_color, &_alpha); + } + gtk_notebook_remove_page (GTK_NOTEBOOK (_book), where); + } + } +} + + +static gint sp_color_notebook_menu_handler( GtkWidget *widget, GdkEvent *event ) +{ + if (event->type == GDK_BUTTON_PRESS) + { + SPColorSelector* csel = SP_COLOR_SELECTOR(widget); + (dynamic_cast(csel->base))->menuHandler( event ); + + // Tell calling code that we have handled this event; the buck + // stops here. + return TRUE; + } + + //Tell calling code that we have not handled this event; pass it on. + return FALSE; +} + +gint ColorNotebook::menuHandler( GdkEvent* event ) +{ + GdkEventButton *bevent = (GdkEventButton *) event; + gtk_menu_popup (GTK_MENU( _popup ), NULL, NULL, NULL, NULL, + bevent->button, bevent->time); + return TRUE; +} + +static void sp_color_notebook_menuitem_response (GtkMenuItem *menuitem, gpointer user_data) +{ + gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)); + SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (user_data); + if ( entry ) + { + if ( active ) + { + (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->addPage(entry->type, entry->submode); + } + else + { + (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->removePage(entry->type, entry->submode); + } + } +} +*/ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h new file mode 100644 index 000000000..177519e25 --- /dev/null +++ b/src/ui/widget/color-notebook.h @@ -0,0 +1,150 @@ +#ifndef SEEN_SP_COLOR_NOTEBOOK_H +#define SEEN_SP_COLOR_NOTEBOOK_H + +/* + * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages + * + * Author: + * Lauris Kaplinski + * + * Copyright (C) 2001-2002 Lauris Kaplinski + * + * This code is in public domain + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H +#include +#endif + +#include +#include +#include +#include + +#include "color.h" +#include "widgets/sp-color-selector.h" +#include "ui/selected-color.h" + + +struct SPColorNotebook; + +class ColorNotebook: public ColorSelector +{ +public: + ColorNotebook( SPColorSelector* csel ); + virtual ~ColorNotebook(); + + //Temporary factory method - transition from SPColorSelector + static Gtk::Widget* create(Inkscape::UI::SelectedColor &color); + + virtual void init(); + +protected: + struct Page { + Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); + + Inkscape::UI::ColorSelectorFactory *selector_factory; + bool enabled_full; + }; + + static void _buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook); + static void _picker_clicked(GtkWidget *widget, SPColorNotebook *colorbook); + + virtual void _colorChanged(); + + virtual void _onSelectedColorChanged(); + virtual void _onSelectedColorDragged(); + virtual void _onSelectedColorGrabbed(); + virtual void _onSelectedColorReleased(); + + void _updateICCButtons(); + void _setCurrentPage(int i); + + GtkWidget* _addPage(Page& page); + + Inkscape::UI::SelectedColor _selected_color_tmp; + Inkscape::UI::SelectedColor &_selected_color; + gboolean _updating : 1; + gulong _switchId; + gulong _entryId; + GtkWidget *_book; + GtkWidget *_buttonbox; + GtkWidget **_buttons; + GtkWidget *_rgbal; /* RGBA entry */ +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + GtkWidget *_box_outofgamut, *_box_colormanaged, *_box_toomuchink; +#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + GtkWidget *_btn_picker; + GtkWidget *_p; /* Color preview */ + boost::ptr_vector _available_pages; + +private: + // By default, disallow copy constructor and assignment operator + ColorNotebook( const ColorNotebook& obj ); + ColorNotebook& operator=( const ColorNotebook& obj ); + + /* Following methods support the pop-up menu to choose + * active color selectors (notebook tabs). This function + * is not used in Inkscape. If you want to re-enable it you have to + * * port the code to c++ + * * fix it so it remembers its settings in prefs + * * fix it so it does not take that much space (entire vertical column!) + * Current class design supports dynamic addtion and removal of color selectors + * + GtkWidget* addPage( GType page_type, guint submode ); + void removePage( GType page_type, guint submode ); + GtkWidget* getPage( GType page_type, guint submode ); + gint menuHandler( GdkEvent* event ); + + */ +}; + + + + + +#define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ()) +#define SP_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook)) +#define SP_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass)) +#define SP_IS_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_NOTEBOOK)) +#define SP_IS_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_NOTEBOOK)) + +struct SPColorNotebook { + SPColorSelector parent; /* Parent */ +}; + +struct SPColorNotebookClass { + SPColorSelectorClass parent_class; + + void (* grabbed) (SPColorNotebook *rgbsel); + void (* dragged) (SPColorNotebook *rgbsel); + void (* released) (SPColorNotebook *rgbsel); + void (* changed) (SPColorNotebook *rgbsel); +}; + +GType sp_color_notebook_get_type(void); + +GtkWidget *sp_color_notebook_new (void); + +/* void sp_color_notebook_set_mode (SPColorNotebook *csel, SPColorNotebookMode mode); */ +/* SPColorNotebookMode sp_color_notebook_get_mode (SPColorNotebook *csel); */ + + + +#endif // SEEN_SP_COLOR_NOTEBOOK_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : + diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp index f909535b1..dc827f377 100644 --- a/src/ui/widget/color-picker.cpp +++ b/src/ui/widget/color-picker.cpp @@ -17,7 +17,7 @@ #include "document-undo.h" #include "dialogs/dialog-events.h" -#include "widgets/sp-color-notebook.h" +#include "ui/widget/color-notebook.h" #include "verbs.h" diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index f546c516f..d5910e8af 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -36,7 +36,6 @@ set(widgets_SRC select-toolbar.cpp shrink-wrap-button.cpp sp-attribute-widget.cpp - sp-color-notebook.cpp sp-color-selector.cpp sp-widget.cpp sp-xmlview-attr-list.cpp @@ -89,7 +88,6 @@ set(widgets_SRC select-toolbar.h shrink-wrap-button.h sp-attribute-widget.h - sp-color-notebook.h sp-color-selector.h sp-widget.h sp-xmlview-attr-list.h diff --git a/src/widgets/Makefile_insert b/src/widgets/Makefile_insert index 88e79f118..5e38b5df7 100644 --- a/src/widgets/Makefile_insert +++ b/src/widgets/Makefile_insert @@ -66,8 +66,6 @@ ink_common_sources += \ widgets/spiral-toolbar.h \ widgets/sp-attribute-widget.cpp \ widgets/sp-attribute-widget.h \ - widgets/sp-color-notebook.cpp \ - widgets/sp-color-notebook.h \ widgets/sp-color-selector.cpp \ widgets/sp-color-selector.h \ widgets/spinbutton-events.cpp \ diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 0ea5f5506..2d654ac43 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -55,6 +55,7 @@ #include "document-undo.h" #include "ui/selected-color.h" +#include "ui/widget/color-notebook.h" using Inkscape::DocumentUndo; using Inkscape::UI::SelectedColor; @@ -491,11 +492,10 @@ void SPGradientVectorSelector::setSwatched() ### Vector Editing Widget ##################################################################*/ -#include "../widgets/sp-color-notebook.h" #include "../widgets/widget-sizes.h" #include "../xml/node-event-vector.h" #include "../svg/svg-color.h" - +#include "ui/widget/color-notebook.h" #define PAD 4 diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 274ad7bdf..3f2edb4f2 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -35,7 +35,6 @@ #include "widgets/widget-sizes.h" #include "xml/repr.h" -#include "sp-color-notebook.h" #include "sp-linear-gradient.h" #include "sp-radial-gradient.h" /* fixme: Move it from dialogs to here */ @@ -50,6 +49,7 @@ #include "io/sys.h" #include "helper/stock-items.h" #include "ui/icon-names.h" +#include "ui/widget/color-notebook.h" #include "paint-selector.h" diff --git a/src/widgets/sp-color-notebook.cpp b/src/widgets/sp-color-notebook.cpp deleted file mode 100644 index 38ea04372..000000000 --- a/src/widgets/sp-color-notebook.cpp +++ /dev/null @@ -1,675 +0,0 @@ -/* - * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages - * - * Author: - * Lauris Kaplinski - * bulia byak - * - * Copyright (C) 2001-2002 Lauris Kaplinski - * - * This code is in public domain - */ - -#undef SPCS_PREVIEW -#define noDUMP_CHANGE_INFO - -#ifdef HAVE_CONFIG_H -# include "config.h" -#endif - -#include "widgets/icon.h" -#include -#include -#include -#include -#include -#include -#include - -#include "../dialogs/dialog-events.h" -#include "../preferences.h" -#include "sp-color-notebook.h" -#include "spw-utilities.h" -#include "svg/svg-icc-color.h" -#include "../inkscape.h" -#include "../document.h" -#include "../profile-manager.h" -#include "color-profile.h" -#include "cms-system.h" -#include "tools-switch.h" -#include "ui/tools/tool-base.h" -#include "ui/widget/color-entry.h" -#include "ui/widget/color-icc-selector.h" -#include "ui/widget/color-scales.h" -#include "ui/widget/color-wheel-selector.h" - -using Inkscape::CMSSystem; - -using namespace Inkscape::UI; -using namespace Inkscape::UI::Widget; - -struct SPColorNotebookTracker { - const gchar* name; - const gchar* className; - GType type; - guint submode; - gboolean enabledFull; - gboolean enabledBrief; - SPColorNotebook *backPointer; -}; - - -static void sp_color_notebook_class_init (SPColorNotebookClass *klass); -static void sp_color_notebook_init (SPColorNotebook *colorbook); -static void sp_color_notebook_dispose(GObject *object); - -static void sp_color_notebook_show_all (GtkWidget *widget); -static void sp_color_notebook_hide(GtkWidget *widget); - -static SPColorSelectorClass *parent_class; - -#define XPAD 4 -#define YPAD 1 - -GType sp_color_notebook_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPColorNotebookClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_color_notebook_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPColorNotebook), - 0, // n_preallocs - (GInstanceInitFunc)sp_color_notebook_init, - 0 // value_table - }; - type = g_type_register_static(SP_TYPE_COLOR_SELECTOR, "SPColorNotebook", &info, static_cast(0)); - } - return type; -} - -static void sp_color_notebook_class_init(SPColorNotebookClass *klass) -{ - GObjectClass *object_class = reinterpret_cast(klass); - GtkWidgetClass *widget_class = reinterpret_cast(klass); - - parent_class = SP_COLOR_SELECTOR_CLASS(g_type_class_peek_parent(klass)); - - object_class->dispose = sp_color_notebook_dispose; - - widget_class->show_all = sp_color_notebook_show_all; - widget_class->hide = sp_color_notebook_hide; -} - -static void -sp_color_notebook_switch_page(GtkNotebook *notebook, - GtkWidget *page, - guint page_num, - SPColorNotebook *colorbook) -{ - if ( colorbook ) - { - // remember the page we switched to - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setInt("/colorselector/page", page_num); - } -} - -static void -sp_color_notebook_init (SPColorNotebook *colorbook) -{ - SP_COLOR_SELECTOR(colorbook)->base = new ColorNotebook( SP_COLOR_SELECTOR(colorbook) ); - - if ( SP_COLOR_SELECTOR(colorbook)->base ) - { - SP_COLOR_SELECTOR(colorbook)->base->init(); - } -} - -void ColorNotebook::init() -{ - guint row = 0; - - _updating = false; - - _book = gtk_notebook_new (); - gtk_widget_show (_book); - - // Dont show the notebook tabs, use radiobuttons instead - gtk_notebook_set_show_border (GTK_NOTEBOOK (_book), false); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (_book), false); - -#if GTK_CHECK_VERSION(3,0,0) - _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); - gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE); -#else - _buttonbox = gtk_hbox_new (TRUE, 2); -#endif - - gtk_widget_show (_buttonbox); - _buttons = new GtkWidget *[_available_pages.size()]; - - for (int i = 0; static_cast(i) < _available_pages.size(); i++ ) - { - _addPage(_available_pages[i]); - } - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* table = gtk_grid_new(); -#else - GtkWidget* table = gtk_table_new(2, 3, FALSE); -#endif - - gtk_widget_show (table); - - gtk_box_pack_start (GTK_BOX (_csel), table, TRUE, TRUE, 0); - - sp_set_font_size_smaller (_buttonbox); - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_buttonbox, XPAD); - gtk_widget_set_margin_right(_buttonbox, XPAD); - gtk_widget_set_margin_top(_buttonbox, YPAD); - gtk_widget_set_margin_bottom(_buttonbox, YPAD); - gtk_widget_set_hexpand(_buttonbox, TRUE); - gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(table), _buttonbox, 0, row, 2, 1); -#else - gtk_table_attach (GTK_TABLE (table), _buttonbox, 0, 2, row, row + 1, - static_cast(GTK_EXPAND|GTK_FILL), - static_cast(0), - XPAD, YPAD); -#endif - - row++; - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(_book, XPAD*2); - gtk_widget_set_margin_right(_book, XPAD*2); - gtk_widget_set_margin_top(_book, YPAD); - gtk_widget_set_margin_bottom(_book, YPAD); - gtk_widget_set_hexpand(_book, TRUE); - gtk_widget_set_vexpand(_book, TRUE); - gtk_grid_attach(GTK_GRID(table), _book, 0, row, 2, 1); -#else - gtk_table_attach (GTK_TABLE (table), _book, 0, 2, row, row + 1, - static_cast(GTK_EXPAND|GTK_FILL), - static_cast(GTK_EXPAND|GTK_FILL), - XPAD*2, YPAD); -#endif - - // restore the last active page - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - _setCurrentPage(prefs->getInt("/colorselector/page", 0)); - - - /* Commented out: see comment at the bottom of the header file - { - gboolean found = FALSE; - - _popup = gtk_menu_new(); - GtkMenu *menu = GTK_MENU (_popup); - - for (int i = 0; i < _trackerList->len; i++ ) - { - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (g_ptr_array_index (_trackerList, i)); - if ( entry ) - { - GtkWidget *item = gtk_check_menu_item_new_with_label (_(entry->name)); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), entry->enabledFull); - gtk_widget_show (item); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), item); - - g_signal_connect (G_OBJECT (item), "activate", - G_CALLBACK (sp_color_notebook_menuitem_response), - reinterpret_cast< gpointer > (entry) ); - found = TRUE; - } - } - - GtkWidget *arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); - gtk_widget_show (arrow); - - _btn = gtk_button_new (); - gtk_widget_show (_btn); - gtk_container_add (GTK_CONTAINER (_btn), arrow); - - GtkWidget *align = gtk_alignment_new (1.0, 0.0, 0.0, 0.0); - gtk_widget_show (align); - gtk_container_add (GTK_CONTAINER (align), _btn); - - // uncomment to reenable the "show/hide modes" menu, - // but first fix it so it remembers its settings in prefs and does not take that much space (entire vertical column!) - gtk_table_attach (GTK_TABLE (table), align, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); - - g_signal_connect_swapped(G_OBJECT(_btn), "event", G_CALLBACK (sp_color_notebook_menu_handler), G_OBJECT(_csel)); - if ( !found ) - { - gtk_widget_set_sensitive (_btn, FALSE); - } - } - */ - - row++; - -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget *rgbabox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); -#else - GtkWidget *rgbabox = gtk_hbox_new (FALSE, 0); -#endif - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - /* Create color management icons */ - _box_colormanaged = gtk_event_box_new (); - GtkWidget *colormanaged = gtk_image_new_from_icon_name ("color-management-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_colormanaged), colormanaged); - gtk_widget_set_tooltip_text (_box_colormanaged, _("Color Managed")); - gtk_widget_set_sensitive (_box_colormanaged, false); - gtk_box_pack_start(GTK_BOX(rgbabox), _box_colormanaged, FALSE, FALSE, 2); - - _box_outofgamut = gtk_event_box_new (); - GtkWidget *outofgamut = gtk_image_new_from_icon_name ("out-of-gamut-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_outofgamut), outofgamut); - gtk_widget_set_tooltip_text (_box_outofgamut, _("Out of gamut!")); - gtk_widget_set_sensitive (_box_outofgamut, false); - gtk_box_pack_start(GTK_BOX(rgbabox), _box_outofgamut, FALSE, FALSE, 2); - - _box_toomuchink = gtk_event_box_new (); - GtkWidget *toomuchink = gtk_image_new_from_icon_name ("too-much-ink-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_toomuchink), toomuchink); - gtk_widget_set_tooltip_text (_box_toomuchink, _("Too much ink!")); - gtk_widget_set_sensitive (_box_toomuchink, false); - gtk_box_pack_start(GTK_BOX(rgbabox), _box_toomuchink, FALSE, FALSE, 2); -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - - /* Color picker */ - GtkWidget *picker = gtk_image_new_from_icon_name ("color-picker", GTK_ICON_SIZE_SMALL_TOOLBAR); - _btn_picker = gtk_button_new (); - gtk_button_set_relief(GTK_BUTTON(_btn_picker), GTK_RELIEF_NONE); - gtk_container_add (GTK_CONTAINER (_btn_picker), picker); - gtk_widget_set_tooltip_text (_btn_picker, _("Pick colors from image")); - gtk_box_pack_start(GTK_BOX(rgbabox), _btn_picker, FALSE, FALSE, 2); - g_signal_connect(G_OBJECT(_btn_picker), "clicked", G_CALLBACK(ColorNotebook::_picker_clicked), _csel); - - /* Create RGBA entry and color preview */ - _rgbal = gtk_label_new_with_mnemonic (_("RGBA_:")); - gtk_misc_set_alignment (GTK_MISC (_rgbal), 1.0, 0.5); - gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); - - ColorEntry* rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); - sp_dialog_defocus_on_enter (GTK_WIDGET(rgba_entry->gobj())); - gtk_box_pack_start(GTK_BOX(rgbabox), GTK_WIDGET(rgba_entry->gobj()), FALSE, FALSE, 0); - gtk_label_set_mnemonic_widget (GTK_LABEL(_rgbal), GTK_WIDGET(rgba_entry->gobj())); - - sp_set_font_size_smaller (rgbabox); - gtk_widget_show_all (rgbabox); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - //the "too much ink" icon is initially hidden - gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - -#if GTK_CHECK_VERSION(3,0,0) - gtk_widget_set_margin_left(rgbabox, XPAD); - gtk_widget_set_margin_right(rgbabox, XPAD); - gtk_widget_set_margin_top(rgbabox, YPAD); - gtk_widget_set_margin_bottom(rgbabox, YPAD); - gtk_grid_attach(GTK_GRID(table), rgbabox, 0, row, 2, 1); -#else - gtk_table_attach (GTK_TABLE (table), rgbabox, 0, 2, row, row + 1, GTK_FILL, GTK_SHRINK, XPAD, YPAD); -#endif - -#ifdef SPCS_PREVIEW - _p = sp_color_preview_new (0xffffffff); - gtk_widget_show (_p); - gtk_table_attach (GTK_TABLE (table), _p, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); -#endif - - _switchId = g_signal_connect(G_OBJECT (_book), "switch-page", - G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); - - _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); - _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorDragged)); - _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorGrabbed)); - _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorReleased)); -} - -static void sp_color_notebook_dispose(GObject *object) -{ - if (((GObjectClass *) (parent_class))->dispose) - (* ((GObjectClass *) (parent_class))->dispose) (object); -} - -ColorNotebook::~ColorNotebook() -{ - if ( _switchId ) - { - if ( _book ) - { - g_signal_handler_disconnect (_book, _switchId); - _switchId = 0; - } - } - - if ( _buttons ) - { - delete [] _buttons; - _buttons = 0; - } - -} - -static void -sp_color_notebook_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_notebook_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_notebook_new() -{ - SPColorNotebook *colorbook = SP_COLOR_NOTEBOOK(g_object_new (SP_TYPE_COLOR_NOTEBOOK, NULL)); - - return GTK_WIDGET(colorbook); -} - -ColorNotebook::ColorNotebook( SPColorSelector* csel ) - : ColorSelector( csel ) - , _selected_color(_selected_color_tmp) -{ - Page *page; - - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); - _available_pages.push_back(page); - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_HSV), true); - _available_pages.push_back(page); - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_CMYK), true); - _available_pages.push_back(page); - page = new Page(new ColorWheelSelectorFactory, true); - _available_pages.push_back(page); -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - page = new Page(new ColorICCSelectorFactory, true); - _available_pages.push_back(page); -#endif -} - -Gtk::Widget *ColorNotebook::create(SelectedColor &color) { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK); - SPColorSelector *s = SP_COLOR_SELECTOR(w); - ColorNotebook* nb = dynamic_cast(s->base); - return Glib::wrap(w); -} - -ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) - : selector_factory(selector_factory) - , enabled_full(enabled_full) -{ -} - -void ColorNotebook::_colorChanged() -{ - _updating = true; - _selected_color.setColorAlpha(_color, _alpha); - _updateICCButtons(); - _updating = false; -} - -void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /*colorbook*/) -{ - // Set the dropper into a "one click" mode, so it reverts to the previous tool after a click - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setBool("/tools/dropper/onetimepick", true); - Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); -} - -// TODO pass in param so as to avoid the need for SP_ACTIVE_DOCUMENT -void ColorNotebook::_updateICCButtons() -{ - SPColor color = _selected_color.color(); - gfloat alpha = _selected_color.alpha(); - - g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); - -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - /* update color management icon*/ - gtk_widget_set_sensitive (_box_colormanaged, color.icc != NULL); - - /* update out-of-gamut icon */ - gtk_widget_set_sensitive (_box_outofgamut, false); - if (color.icc){ - Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( target_profile ) - gtk_widget_set_sensitive(_box_outofgamut, target_profile->GamutCheck(color)); - } - - /* update too-much-ink icon */ - gtk_widget_set_sensitive (_box_toomuchink, false); - if (color.icc){ - Inkscape::ColorProfile* prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( prof && CMSSystem::isPrintColorSpace(prof) ) { - gtk_widget_show(GTK_WIDGET(_box_toomuchink)); - double ink_sum = 0; - for (unsigned int i=0; icolors.size(); i++){ - ink_sum += color.icc->colors[i]; - } - - /* Some literature states that when the sum of paint values exceed 320%, it is considered to be a satured color, - which means the paper can get too wet due to an excessive ammount of ink. This may lead to several issues - such as misalignment and poor quality of printing in general.*/ - if ( ink_sum > 3.2 ) - gtk_widget_set_sensitive (_box_toomuchink, true); - } else { - gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); - } - } -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -} - -void ColorNotebook::_setCurrentPage(int i) -{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(_book), i); - - if (_buttons && (static_cast(i) < _available_pages.size())) { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(_buttons[i]), TRUE); - } -} - -void ColorNotebook::_buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook) -{ - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - - if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) { - return; - } - - for(gint i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb->_book)); i++) { - if (nb->_buttons[i] == widget) { - gtk_notebook_set_current_page (GTK_NOTEBOOK (nb->_book), i); - } - } -} - -void ColorNotebook::_onSelectedColorChanged() { - if (_updating) { - return; - } - - SPColor color; - gfloat alpha = 1.0; - _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, false); - _updateICCButtons(); -} - -void ColorNotebook::_onSelectedColorDragged() { - if (_updating) { - return; - } - SPColor color; - gfloat alpha = 1.0; - _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, true); - _updateICCButtons(); -} - -void ColorNotebook::_onSelectedColorGrabbed() { - if (_updating) { - return; - } - - _grabbed(); -} - -void ColorNotebook::_onSelectedColorReleased() { - if (_updating) { - return; - } - _released(); -} - -GtkWidget* ColorNotebook::_addPage(Page& page) { - Gtk::Widget *selector_widget; - - selector_widget = page.selector_factory->createWidget(_selected_color); - if (selector_widget) { - selector_widget->show(); - - Glib::ustring mode_name = page.selector_factory->modeName(); - Gtk::Widget* tab_label = Gtk::manage(new Gtk::Label(mode_name)); - gint page_num = gtk_notebook_append_page( GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); - - _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); - gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); - if (page_num > 0) { - GSList *group = gtk_radio_button_get_group (GTK_RADIO_BUTTON(_buttons[0])); - gtk_radio_button_set_group (GTK_RADIO_BUTTON(_buttons[page_num]), group); - } - gtk_widget_show (_buttons[page_num]); - gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); - - g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); - } - - return selector_widget->gobj(); -} - - -/* Commented out: see comment at the bottom of the header file - -GtkWidget* ColorNotebook::getPage(GType page_type, guint submode) -{ - gint count = 0; - gint i = 0; - GtkWidget* page = 0; - -// count = gtk_notebook_get_n_pages (_book); - count = 200; - for ( i = 0; i < count && !page; i++ ) - { - page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), i); - if ( page ) - { - SPColorSelector* csel; - guint pagemode; - csel = SP_COLOR_SELECTOR (page); - pagemode = csel->base->getSubmode(); - if ( G_TYPE_FROM_INSTANCE (page) == page_type - && pagemode == submode ) - { - // found it. - break; - } - else - { - page = 0; - } - } - else - { - break; - } - } - return page; -} - -void ColorNotebook::removePage( GType page_type, guint submode ) -{ - GtkWidget *page = 0; - - page = getPage(page_type, submode); - if ( page ) - { - gint where = gtk_notebook_page_num (GTK_NOTEBOOK (_book), page); - if ( where >= 0 ) - { - if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)) == where ) - { -// getColorAlpha(_color, &_alpha); - } - gtk_notebook_remove_page (GTK_NOTEBOOK (_book), where); - } - } -} - - -static gint sp_color_notebook_menu_handler( GtkWidget *widget, GdkEvent *event ) -{ - if (event->type == GDK_BUTTON_PRESS) - { - SPColorSelector* csel = SP_COLOR_SELECTOR(widget); - (dynamic_cast(csel->base))->menuHandler( event ); - - // Tell calling code that we have handled this event; the buck - // stops here. - return TRUE; - } - - //Tell calling code that we have not handled this event; pass it on. - return FALSE; -} - -gint ColorNotebook::menuHandler( GdkEvent* event ) -{ - GdkEventButton *bevent = (GdkEventButton *) event; - gtk_menu_popup (GTK_MENU( _popup ), NULL, NULL, NULL, NULL, - bevent->button, bevent->time); - return TRUE; -} - -static void sp_color_notebook_menuitem_response (GtkMenuItem *menuitem, gpointer user_data) -{ - gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)); - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (user_data); - if ( entry ) - { - if ( active ) - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->addPage(entry->type, entry->submode); - } - else - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->removePage(entry->type, entry->submode); - } - } -} -*/ - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/widgets/sp-color-notebook.h b/src/widgets/sp-color-notebook.h deleted file mode 100644 index 42fb0ed97..000000000 --- a/src/widgets/sp-color-notebook.h +++ /dev/null @@ -1,150 +0,0 @@ -#ifndef SEEN_SP_COLOR_NOTEBOOK_H -#define SEEN_SP_COLOR_NOTEBOOK_H - -/* - * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages - * - * Author: - * Lauris Kaplinski - * - * Copyright (C) 2001-2002 Lauris Kaplinski - * - * This code is in public domain - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include -#include -#include - -#include "../color.h" -#include "sp-color-selector.h" -#include "ui/selected-color.h" - - -struct SPColorNotebook; - -class ColorNotebook: public ColorSelector -{ -public: - ColorNotebook( SPColorSelector* csel ); - virtual ~ColorNotebook(); - - //Temporary factory method - transition from SPColorSelector - static Gtk::Widget* create(Inkscape::UI::SelectedColor &color); - - virtual void init(); - -protected: - struct Page { - Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); - - Inkscape::UI::ColorSelectorFactory *selector_factory; - bool enabled_full; - }; - - static void _buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook); - static void _picker_clicked(GtkWidget *widget, SPColorNotebook *colorbook); - - virtual void _colorChanged(); - - virtual void _onSelectedColorChanged(); - virtual void _onSelectedColorDragged(); - virtual void _onSelectedColorGrabbed(); - virtual void _onSelectedColorReleased(); - - void _updateICCButtons(); - void _setCurrentPage(int i); - - GtkWidget* _addPage(Page& page); - - Inkscape::UI::SelectedColor _selected_color_tmp; - Inkscape::UI::SelectedColor &_selected_color; - gboolean _updating : 1; - gulong _switchId; - gulong _entryId; - GtkWidget *_book; - GtkWidget *_buttonbox; - GtkWidget **_buttons; - GtkWidget *_rgbal; /* RGBA entry */ -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - GtkWidget *_box_outofgamut, *_box_colormanaged, *_box_toomuchink; -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - GtkWidget *_btn_picker; - GtkWidget *_p; /* Color preview */ - boost::ptr_vector _available_pages; - -private: - // By default, disallow copy constructor and assignment operator - ColorNotebook( const ColorNotebook& obj ); - ColorNotebook& operator=( const ColorNotebook& obj ); - - /* Following methods support the pop-up menu to choose - * active color selectors (notebook tabs). This function - * is not used in Inkscape. If you want to re-enable it you have to - * * port the code to c++ - * * fix it so it remembers its settings in prefs - * * fix it so it does not take that much space (entire vertical column!) - * Current class design supports dynamic addtion and removal of color selectors - * - GtkWidget* addPage( GType page_type, guint submode ); - void removePage( GType page_type, guint submode ); - GtkWidget* getPage( GType page_type, guint submode ); - gint menuHandler( GdkEvent* event ); - - */ -}; - - - - - -#define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ()) -#define SP_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook)) -#define SP_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass)) -#define SP_IS_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_NOTEBOOK)) -#define SP_IS_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_NOTEBOOK)) - -struct SPColorNotebook { - SPColorSelector parent; /* Parent */ -}; - -struct SPColorNotebookClass { - SPColorSelectorClass parent_class; - - void (* grabbed) (SPColorNotebook *rgbsel); - void (* dragged) (SPColorNotebook *rgbsel); - void (* released) (SPColorNotebook *rgbsel); - void (* changed) (SPColorNotebook *rgbsel); -}; - -GType sp_color_notebook_get_type(void); - -GtkWidget *sp_color_notebook_new (void); - -/* void sp_color_notebook_set_mode (SPColorNotebook *csel, SPColorNotebookMode mode); */ -/* SPColorNotebookMode sp_color_notebook_get_mode (SPColorNotebook *csel); */ - - - -#endif // SEEN_SP_COLOR_NOTEBOOK_H - -/* - Local Variables: - mode:c++ - c-file-style:"stroustrup" - c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) - indent-tabs-mode:nil - fill-column:99 - End: -*/ -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : - diff --git a/src/widgets/swatch-selector.cpp b/src/widgets/swatch-selector.cpp index b7de6657c..eb8bf7a4f 100644 --- a/src/widgets/swatch-selector.cpp +++ b/src/widgets/swatch-selector.cpp @@ -5,11 +5,11 @@ #include "document-undo.h" #include "gradient-chemistry.h" #include "gradient-selector.h" -#include "sp-color-notebook.h" #include "sp-stop.h" #include "svg/css-ostringstream.h" #include "svg/svg-color.h" #include "verbs.h" +#include "ui/widget/color-notebook.h" #include "xml/node.h" namespace Inkscape -- cgit v1.2.3 From 761b8956cc9cb923a7e7c5a95eacfaf7ba36d475 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 19:00:26 +0200 Subject: ColorNotebook is Gtk::Widget and uses ColorSelector (bzr r13341.6.52) --- src/extension/param/color.cpp | 5 +- src/ui/widget/color-notebook.cpp | 334 +++++++++++---------------------------- src/ui/widget/color-notebook.h | 94 ++++------- src/ui/widget/color-picker.cpp | 2 +- src/widgets/gradient-vector.cpp | 4 +- src/widgets/paint-selector.cpp | 4 +- src/widgets/swatch-selector.cpp | 4 +- 7 files changed, 134 insertions(+), 313 deletions(-) diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index 6748c8f5f..ef3887a12 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -32,7 +32,6 @@ #include "ui/widget/color-notebook.h" #include "preferences.h" - namespace Inkscape { namespace Extension { @@ -88,6 +87,8 @@ void ParamColor::string(std::string &string) const Gtk::Widget *ParamColor::get_widget( SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/, sigc::signal * changeSignal ) { + using Inkscape::UI::Widget::ColorNotebook; + if (_gui_hidden) return NULL; _changeSignal = new sigc::signal(*changeSignal); @@ -99,7 +100,7 @@ Gtk::Widget *ParamColor::get_widget( SPDocument * /*doc*/, Inkscape::XML::Node * } Gtk::HBox *hbox = Gtk::manage(new Gtk::HBox(false, 4)); - Gtk::Widget *selector = Gtk::manage(ColorNotebook::create(_color)); + Gtk::Widget *selector = Gtk::manage(new ColorNotebook(_color)); hbox->pack_start (*selector, true, true, 0); selector->show(); hbox->show(); diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 2b592e620..32a141e08 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -1,11 +1,13 @@ -/* - * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages - * - * Author: +/** + * @file + * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages - implementation + */ +/* Authors: * Lauris Kaplinski * bulia byak + * Tomasz Boczkowski (c++-sification) * - * Copyright (C) 2001-2002 Lauris Kaplinski + * Copyright (C) 2001-2014 Authors * * This code is in public domain */ @@ -25,6 +27,7 @@ #include #include #include +#include #include "dialogs/dialog-events.h" #include "preferences.h" @@ -45,103 +48,70 @@ using Inkscape::CMSSystem; -using namespace Inkscape::UI; -using namespace Inkscape::UI::Widget; - -struct SPColorNotebookTracker { - const gchar* name; - const gchar* className; - GType type; - guint submode; - gboolean enabledFull; - gboolean enabledBrief; - SPColorNotebook *backPointer; -}; - - -static void sp_color_notebook_class_init (SPColorNotebookClass *klass); -static void sp_color_notebook_init (SPColorNotebook *colorbook); -static void sp_color_notebook_dispose(GObject *object); - -static void sp_color_notebook_show_all (GtkWidget *widget); -static void sp_color_notebook_hide(GtkWidget *widget); - -static SPColorSelectorClass *parent_class; - #define XPAD 4 #define YPAD 1 -GType sp_color_notebook_get_type(void) -{ - static GType type = 0; - if (!type) { - GTypeInfo info = { - sizeof(SPColorNotebookClass), - 0, // base_init - 0, // base_finalize - (GClassInitFunc)sp_color_notebook_class_init, - 0, // class_finalize - 0, // class_data - sizeof(SPColorNotebook), - 0, // n_preallocs - (GInstanceInitFunc)sp_color_notebook_init, - 0 // value_table - }; - type = g_type_register_static(SP_TYPE_COLOR_SELECTOR, "SPColorNotebook", &info, static_cast(0)); - } - return type; -} +namespace Inkscape { +namespace UI { +namespace Widget { + + +ColorNotebook::ColorNotebook(SelectedColor &color) +#if GTK_CHECK_VERSION(3,0,0) + : Gtk::Grid() +#else + : Gtk::Table(2, 3, false) +#endif + , _selected_color(color) -static void sp_color_notebook_class_init(SPColorNotebookClass *klass) { - GObjectClass *object_class = reinterpret_cast(klass); - GtkWidgetClass *widget_class = reinterpret_cast(klass); + Page *page; - parent_class = SP_COLOR_SELECTOR_CLASS(g_type_class_peek_parent(klass)); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_HSV), true); + _available_pages.push_back(page); + page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_CMYK), true); + _available_pages.push_back(page); + page = new Page(new ColorWheelSelectorFactory, true); + _available_pages.push_back(page); +#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) + page = new Page(new ColorICCSelectorFactory, true); + _available_pages.push_back(page); +#endif - object_class->dispose = sp_color_notebook_dispose; + _initUI(); - widget_class->show_all = sp_color_notebook_show_all; - widget_class->hide = sp_color_notebook_hide; + _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); + _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); } -static void -sp_color_notebook_switch_page(GtkNotebook *notebook, - GtkWidget *page, - guint page_num, - SPColorNotebook *colorbook) +ColorNotebook::~ColorNotebook() { - if ( colorbook ) + if ( _buttons ) { - // remember the page we switched to - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setInt("/colorselector/page", page_num); + delete [] _buttons; + _buttons = 0; } + } -static void -sp_color_notebook_init (SPColorNotebook *colorbook) +ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) + : selector_factory(selector_factory) + , enabled_full(enabled_full) { - SP_COLOR_SELECTOR(colorbook)->base = new ColorNotebook( SP_COLOR_SELECTOR(colorbook) ); - - if ( SP_COLOR_SELECTOR(colorbook)->base ) - { - SP_COLOR_SELECTOR(colorbook)->base->init(); - } } -void ColorNotebook::init() + +void ColorNotebook::_initUI() { guint row = 0; - _updating = false; - - _book = gtk_notebook_new (); - gtk_widget_show (_book); - - // Dont show the notebook tabs, use radiobuttons instead - gtk_notebook_set_show_border (GTK_NOTEBOOK (_book), false); - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (_book), false); + Gtk::Notebook *notebook = Gtk::manage(new Gtk::Notebook); + notebook->show(); + notebook->set_show_border(false); + notebook->set_show_tabs(false); + _book = GTK_WIDGET(notebook->gobj()); #if GTK_CHECK_VERSION(3,0,0) _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); @@ -158,16 +128,6 @@ void ColorNotebook::init() _addPage(_available_pages[i]); } -#if GTK_CHECK_VERSION(3,0,0) - GtkWidget* table = gtk_grid_new(); -#else - GtkWidget* table = gtk_table_new(2, 3, FALSE); -#endif - - gtk_widget_show (table); - - gtk_box_pack_start (GTK_BOX (_csel), table, TRUE, TRUE, 0); - sp_set_font_size_smaller (_buttonbox); #if GTK_CHECK_VERSION(3,0,0) @@ -177,12 +137,9 @@ void ColorNotebook::init() gtk_widget_set_margin_bottom(_buttonbox, YPAD); gtk_widget_set_hexpand(_buttonbox, TRUE); gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(table), _buttonbox, 0, row, 2, 1); + attach(*Glib::wrap(_buttonbox), 0, row, 2, 1); #else - gtk_table_attach (GTK_TABLE (table), _buttonbox, 0, 2, row, row + 1, - static_cast(GTK_EXPAND|GTK_FILL), - static_cast(0), - XPAD, YPAD); + attach(*Glib::wrap(_buttonbox), 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, static_cast(0), XPAD, YPAD); #endif row++; @@ -194,12 +151,9 @@ void ColorNotebook::init() gtk_widget_set_margin_bottom(_book, YPAD); gtk_widget_set_hexpand(_book, TRUE); gtk_widget_set_vexpand(_book, TRUE); - gtk_grid_attach(GTK_GRID(table), _book, 0, row, 2, 1); + attach(*notebook, 0, row, 2, 1); #else - gtk_table_attach (GTK_TABLE (table), _book, 0, 2, row, row + 1, - static_cast(GTK_EXPAND|GTK_FILL), - static_cast(GTK_EXPAND|GTK_FILL), - XPAD*2, YPAD); + attach(*notebook, 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, XPAD * 2, YPAD); #endif // restore the last active page @@ -294,7 +248,7 @@ void ColorNotebook::init() gtk_container_add (GTK_CONTAINER (_btn_picker), picker); gtk_widget_set_tooltip_text (_btn_picker, _("Pick colors from image")); gtk_box_pack_start(GTK_BOX(rgbabox), _btn_picker, FALSE, FALSE, 2); - g_signal_connect(G_OBJECT(_btn_picker), "clicked", G_CALLBACK(ColorNotebook::_picker_clicked), _csel); + g_signal_connect(G_OBJECT(_btn_picker), "clicked", G_CALLBACK(ColorNotebook::_onPickerClicked), this); /* Create RGBA entry and color preview */ _rgbal = gtk_label_new_with_mnemonic (_("RGBA_:")); @@ -319,118 +273,60 @@ void ColorNotebook::init() gtk_widget_set_margin_right(rgbabox, XPAD); gtk_widget_set_margin_top(rgbabox, YPAD); gtk_widget_set_margin_bottom(rgbabox, YPAD); + attach(*Glib::wrap(rgbabox), 0, row, 2, 1); gtk_grid_attach(GTK_GRID(table), rgbabox, 0, row, 2, 1); #else - gtk_table_attach (GTK_TABLE (table), rgbabox, 0, 2, row, row + 1, GTK_FILL, GTK_SHRINK, XPAD, YPAD); + attach(*Glib::wrap(rgbabox), 0, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK, XPAD, YPAD); #endif #ifdef SPCS_PREVIEW _p = sp_color_preview_new (0xffffffff); gtk_widget_show (_p); - gtk_table_attach (GTK_TABLE (table), _p, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); + attach(*Glib::wrap(_p), 2, 3, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif - _switchId = g_signal_connect(G_OBJECT (_book), "switch-page", - G_CALLBACK (sp_color_notebook_switch_page), SP_COLOR_NOTEBOOK(_csel)); - - _selected_color.signal_changed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorChanged)); - _selected_color.signal_dragged.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorDragged)); - _selected_color.signal_grabbed.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorGrabbed)); - _selected_color.signal_released.connect(sigc::mem_fun(this, &ColorNotebook::_onSelectedColorReleased)); + g_signal_connect(G_OBJECT (_book), "switch-page", + G_CALLBACK (ColorNotebook::_onPageSwitched), this); } -static void sp_color_notebook_dispose(GObject *object) +void ColorNotebook::_onPickerClicked(GtkWidget * /*widget*/, ColorNotebook * /*colorbook*/) { - if (((GObjectClass *) (parent_class))->dispose) - (* ((GObjectClass *) (parent_class))->dispose) (object); + // Set the dropper into a "one click" mode, so it reverts to the previous tool after a click + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/tools/dropper/onetimepick", true); + Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); } -ColorNotebook::~ColorNotebook() +void ColorNotebook::_onButtonClicked(GtkWidget *widget, ColorNotebook *nb) { - if ( _switchId ) - { - if ( _book ) - { - g_signal_handler_disconnect (_book, _switchId); - _switchId = 0; - } + if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) { + return; } - if ( _buttons ) - { - delete [] _buttons; - _buttons = 0; + for(gint i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb->_book)); i++) { + if (nb->_buttons[i] == widget) { + gtk_notebook_set_current_page (GTK_NOTEBOOK (nb->_book), i); + } } - } -static void -sp_color_notebook_show_all (GtkWidget *widget) -{ - gtk_widget_show (widget); -} - -static void sp_color_notebook_hide(GtkWidget *widget) -{ - gtk_widget_hide(widget); -} - -GtkWidget *sp_color_notebook_new() -{ - SPColorNotebook *colorbook = SP_COLOR_NOTEBOOK(g_object_new (SP_TYPE_COLOR_NOTEBOOK, NULL)); - - return GTK_WIDGET(colorbook); -} - -ColorNotebook::ColorNotebook( SPColorSelector* csel ) - : ColorSelector( csel ) - , _selected_color(_selected_color_tmp) -{ - Page *page; - - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_RGB), true); - _available_pages.push_back(page); - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_HSV), true); - _available_pages.push_back(page); - page = new Page(new ColorScalesFactory(SP_COLOR_SCALES_MODE_CMYK), true); - _available_pages.push_back(page); - page = new Page(new ColorWheelSelectorFactory, true); - _available_pages.push_back(page); -#if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - page = new Page(new ColorICCSelectorFactory, true); - _available_pages.push_back(page); -#endif -} - -Gtk::Widget *ColorNotebook::create(SelectedColor &color) { - GtkWidget *w = sp_color_selector_new(SP_TYPE_COLOR_NOTEBOOK); - SPColorSelector *s = SP_COLOR_SELECTOR(w); - ColorNotebook* nb = dynamic_cast(s->base); - return Glib::wrap(w); -} - -ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) - : selector_factory(selector_factory) - , enabled_full(enabled_full) -{ -} - -void ColorNotebook::_colorChanged() -{ - _updating = true; - _selected_color.setColorAlpha(_color, _alpha); +void ColorNotebook::_onSelectedColorChanged() { _updateICCButtons(); - _updating = false; } -void ColorNotebook::_picker_clicked(GtkWidget * /*widget*/, SPColorNotebook * /*colorbook*/) +void ColorNotebook::_onPageSwitched(GtkNotebook *notebook, + GtkWidget *page, + guint page_num, + ColorNotebook *colorbook) { - // Set the dropper into a "one click" mode, so it reverts to the previous tool after a click - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setBool("/tools/dropper/onetimepick", true); - Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); + if (colorbook) { + // remember the page we switched to + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setInt("/colorselector/page", page_num); + } } + // TODO pass in param so as to avoid the need for SP_ACTIVE_DOCUMENT void ColorNotebook::_updateICCButtons() { @@ -483,60 +379,7 @@ void ColorNotebook::_setCurrentPage(int i) } } -void ColorNotebook::_buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook) -{ - ColorNotebook* nb = dynamic_cast(SP_COLOR_SELECTOR(colorbook)->base); - - if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) { - return; - } - - for(gint i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb->_book)); i++) { - if (nb->_buttons[i] == widget) { - gtk_notebook_set_current_page (GTK_NOTEBOOK (nb->_book), i); - } - } -} - -void ColorNotebook::_onSelectedColorChanged() { - if (_updating) { - return; - } - - SPColor color; - gfloat alpha = 1.0; - _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, false); - _updateICCButtons(); -} - -void ColorNotebook::_onSelectedColorDragged() { - if (_updating) { - return; - } - SPColor color; - gfloat alpha = 1.0; - _selected_color.colorAlpha(color, alpha); - _updateInternals(color, alpha, true); - _updateICCButtons(); -} - -void ColorNotebook::_onSelectedColorGrabbed() { - if (_updating) { - return; - } - - _grabbed(); -} - -void ColorNotebook::_onSelectedColorReleased() { - if (_updating) { - return; - } - _released(); -} - -GtkWidget* ColorNotebook::_addPage(Page& page) { +void ColorNotebook::_addPage(Page& page) { Gtk::Widget *selector_widget; selector_widget = page.selector_factory->createWidget(_selected_color); @@ -556,12 +399,13 @@ GtkWidget* ColorNotebook::_addPage(Page& page) { gtk_widget_show (_buttons[page_num]); gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); - g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_buttonClicked), _csel); + g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_onButtonClicked), this); } - - return selector_widget->gobj(); } +} +} +} /* Commented out: see comment at the bottom of the header file diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h index 177519e25..8b74f20f1 100644 --- a/src/ui/widget/color-notebook.h +++ b/src/ui/widget/color-notebook.h @@ -1,16 +1,18 @@ -#ifndef SEEN_SP_COLOR_NOTEBOOK_H -#define SEEN_SP_COLOR_NOTEBOOK_H - -/* +/** + * @file * A notebook with RGB, CMYK, CMS, HSL, and Wheel pages - * - * Author: + */ +/* Authors: * Lauris Kaplinski + * bulia byak + * Tomasz Boczkowski (c++-sification) * - * Copyright (C) 2001-2002 Lauris Kaplinski + * Copyright (C) 2001-2014 Authors * * This code is in public domain */ +#ifndef SEEN_SP_COLOR_NOTEBOOK_H +#define SEEN_SP_COLOR_NOTEBOOK_H #ifdef HAVE_CONFIG_H # include @@ -23,26 +25,30 @@ #include #include #include +#if GTK_CHECK_VERSION(3,0,0) +#include +#else #include +#endif #include "color.h" -#include "widgets/sp-color-selector.h" #include "ui/selected-color.h" +namespace Inkscape { +namespace UI { +namespace Widget { -struct SPColorNotebook; - -class ColorNotebook: public ColorSelector +class ColorNotebook +#if GTK_CHECK_VERSION(3,0,0) + : public Gtk::Grid +#else + : public Gtk::Table +#endif { public: - ColorNotebook( SPColorSelector* csel ); + ColorNotebook(SelectedColor &color); virtual ~ColorNotebook(); - //Temporary factory method - transition from SPColorSelector - static Gtk::Widget* create(Inkscape::UI::SelectedColor &color); - - virtual void init(); - protected: struct Page { Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full); @@ -51,25 +57,19 @@ protected: bool enabled_full; }; - static void _buttonClicked(GtkWidget *widget, SPColorNotebook *colorbook); - static void _picker_clicked(GtkWidget *widget, SPColorNotebook *colorbook); - - virtual void _colorChanged(); + virtual void _initUI(); + void _addPage(Page& page); + static void _onButtonClicked(GtkWidget *widget, ColorNotebook *colorbook); + static void _onPickerClicked(GtkWidget *widget, ColorNotebook *colorbook); + static void _onPageSwitched(GtkNotebook *notebook, GtkWidget *page, + guint page_num, ColorNotebook *colorbook); virtual void _onSelectedColorChanged(); - virtual void _onSelectedColorDragged(); - virtual void _onSelectedColorGrabbed(); - virtual void _onSelectedColorReleased(); void _updateICCButtons(); void _setCurrentPage(int i); - GtkWidget* _addPage(Page& page); - - Inkscape::UI::SelectedColor _selected_color_tmp; Inkscape::UI::SelectedColor &_selected_color; - gboolean _updating : 1; - gulong _switchId; gulong _entryId; GtkWidget *_book; GtkWidget *_buttonbox; @@ -103,40 +103,10 @@ private: */ }; - - - - -#define SP_TYPE_COLOR_NOTEBOOK (sp_color_notebook_get_type ()) -#define SP_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebook)) -#define SP_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SP_TYPE_COLOR_NOTEBOOK, SPColorNotebookClass)) -#define SP_IS_COLOR_NOTEBOOK(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SP_TYPE_COLOR_NOTEBOOK)) -#define SP_IS_COLOR_NOTEBOOK_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SP_TYPE_COLOR_NOTEBOOK)) - -struct SPColorNotebook { - SPColorSelector parent; /* Parent */ -}; - -struct SPColorNotebookClass { - SPColorSelectorClass parent_class; - - void (* grabbed) (SPColorNotebook *rgbsel); - void (* dragged) (SPColorNotebook *rgbsel); - void (* released) (SPColorNotebook *rgbsel); - void (* changed) (SPColorNotebook *rgbsel); -}; - -GType sp_color_notebook_get_type(void); - -GtkWidget *sp_color_notebook_new (void); - -/* void sp_color_notebook_set_mode (SPColorNotebook *csel, SPColorNotebookMode mode); */ -/* SPColorNotebookMode sp_color_notebook_get_mode (SPColorNotebook *csel); */ - - - +} +} +} #endif // SEEN_SP_COLOR_NOTEBOOK_H - /* Local Variables: mode:c++ diff --git a/src/ui/widget/color-picker.cpp b/src/ui/widget/color-picker.cpp index dc827f377..a9948309e 100644 --- a/src/ui/widget/color-picker.cpp +++ b/src/ui/widget/color-picker.cpp @@ -57,7 +57,7 @@ void ColorPicker::setupDialog(const Glib::ustring &title) _colorSelectorDialog.set_title (title); _colorSelectorDialog.set_border_width (4); - _color_selector = Gtk::manage(ColorNotebook::create(_selected_color)); + _color_selector = Gtk::manage(new ColorNotebook(_selected_color)); #if WITH_GTKMM_3_0 _colorSelectorDialog.get_content_area()->pack_start ( diff --git a/src/widgets/gradient-vector.cpp b/src/widgets/gradient-vector.cpp index 2d654ac43..e751f4872 100644 --- a/src/widgets/gradient-vector.cpp +++ b/src/widgets/gradient-vector.cpp @@ -856,6 +856,8 @@ static void sp_grd_ed_del_stop(GtkWidget */*widget*/, GtkWidget *vb) static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *select_stop) { + using Inkscape::UI::Widget::ColorNotebook; + GtkWidget *vb, *w, *f; g_return_val_if_fail(!gradient || SP_IS_GRADIENT(gradient), NULL); @@ -991,7 +993,7 @@ static GtkWidget * sp_gradient_vector_widget_new(SPGradient *gradient, SPStop *s selected_color->signal_dragged.connect(sigc::bind(sigc::ptr_fun(&sp_gradient_vector_color_dragged), selected_color, G_OBJECT(vb))); selected_color->signal_dragged.connect(sigc::bind(sigc::ptr_fun(&sp_gradient_vector_color_changed), selected_color, G_OBJECT(vb))); - Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(*selected_color)); + Gtk::Widget *color_selector = Gtk::manage(new ColorNotebook(*selected_color)); color_selector->show(); gtk_container_add(GTK_CONTAINER(f), color_selector->gobj()); diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 3f2edb4f2..a7e8e9750 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -657,6 +657,8 @@ void SPPaintSelector::onSelectedColorChanged() { static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelector::Mode /*mode*/) { + using Inkscape::UI::Widget::ColorNotebook; + sp_paint_selector_set_style_buttons(psel, psel->solid); gtk_widget_set_sensitive(psel->style, TRUE); @@ -677,7 +679,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec gtk_widget_show(vb); /* Color selector */ - Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(*(psel->selected_color))); + Gtk::Widget *color_selector = Gtk::manage(new ColorNotebook(*(psel->selected_color))); color_selector->show(); gtk_box_pack_start(GTK_BOX(vb), color_selector->gobj(), TRUE, TRUE, 0); diff --git a/src/widgets/swatch-selector.cpp b/src/widgets/swatch-selector.cpp index eb8bf7a4f..6f2807255 100644 --- a/src/widgets/swatch-selector.cpp +++ b/src/widgets/swatch-selector.cpp @@ -22,6 +22,8 @@ SwatchSelector::SwatchSelector() : _gsel(0), _updating_color(false) { + using Inkscape::UI::Widget::ColorNotebook; + GtkWidget *gsel = sp_gradient_selector_new(); _gsel = SP_GRADIENT_SELECTOR(gsel); g_object_set_data( G_OBJECT(gobj()), "base", this ); @@ -31,7 +33,7 @@ SwatchSelector::SwatchSelector() : pack_start(*Gtk::manage(Glib::wrap(gsel))); - Gtk::Widget *color_selector = Gtk::manage(ColorNotebook::create(_selected_color)); + Gtk::Widget *color_selector = Gtk::manage(new ColorNotebook(_selected_color)); color_selector->show(); pack_start(*color_selector); -- cgit v1.2.3 From efd7b21b6d262e6bfe63106883e072e6e49142f4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 20:44:37 +0200 Subject: fixed updating drawing when dragging a color slider (bzr r13341.6.53) --- src/widgets/paint-selector.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index a7e8e9750..fe71df150 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -308,9 +308,9 @@ sp_paint_selector_init(SPPaintSelector *psel) psel->updating_color = false; psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorGrabbed)); - psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorDragged)); - psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorReleased)); - psel->selected_color->signal_grabbed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorChanged)); + psel->selected_color->signal_dragged.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorDragged)); + psel->selected_color->signal_released.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorReleased)); + psel->selected_color->signal_changed.connect(sigc::mem_fun(psel, &SPPaintSelector::onSelectedColorChanged)); } static void sp_paint_selector_dispose(GObject *object) -- cgit v1.2.3 From 52bcd98c0adb78d5c5ae8c74c993d5fd04689079 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 1 Jun 2014 20:57:39 +0200 Subject: gtk3 compile fix (bzr r13341.6.54) --- src/ui/widget/color-notebook.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 32a141e08..2a2cb22a6 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -274,7 +274,6 @@ void ColorNotebook::_initUI() gtk_widget_set_margin_top(rgbabox, YPAD); gtk_widget_set_margin_bottom(rgbabox, YPAD); attach(*Glib::wrap(rgbabox), 0, row, 2, 1); - gtk_grid_attach(GTK_GRID(table), rgbabox, 0, row, 2, 1); #else attach(*Glib::wrap(rgbabox), 0, 2, row, row + 1, Gtk::FILL, Gtk::SHRINK, XPAD, YPAD); #endif -- cgit v1.2.3 From 6ebb6cfcf28dfd36a22ce4fe11324971c34ee70c Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 2 May 2015 14:54:37 +0200 Subject: gtk3 compile fix (bzr r14059.1.13) --- src/extension/param/color.cpp | 1 - src/ui/dialog/objects.h | 4 ---- src/ui/selected-color.cpp | 8 ++------ src/ui/selected-color.h | 14 +++++--------- src/ui/widget/color-notebook.h | 10 +++------- src/widgets/paint-selector.h | 4 ---- 6 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index e3410fba8..e68dbf8bf 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -24,7 +24,6 @@ #include "color.h" #include -#include "widgets/sp-color-selector.h" #include "ui/widget/color-notebook.h" #include "preferences.h" diff --git a/src/ui/dialog/objects.h b/src/ui/dialog/objects.h index aa50353c2..7a826d02e 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/selected-color.cpp b/src/ui/selected-color.cpp index 0d3505c45..7652e5acf 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -14,15 +14,11 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - +#include #include -#include -#include "selected-color.h" #include "svg/svg-icc-color.h" +#include "ui/selected-color.h" namespace Inkscape { namespace UI { diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index b4268f553..168099c82 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -13,18 +13,14 @@ #ifndef SEEN_SELECTED_COLOR #define SEEN_SELECTED_COLOR -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include -#include #include "color.h" +namespace Gtk +{ + class Widget; +} + namespace Inkscape { namespace UI { diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h index 8b74f20f1..9e2aa8ec9 100644 --- a/src/ui/widget/color-notebook.h +++ b/src/ui/widget/color-notebook.h @@ -18,18 +18,14 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include -#include -#include -#if GTK_CHECK_VERSION(3,0,0) +#if WITH_GTKMM_3_0 #include #else #include #endif +#include +#include #include "color.h" #include "ui/selected-color.h" diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h index 0e8a2967d..55f0e8ec9 100644 --- a/src/widgets/paint-selector.h +++ b/src/widgets/paint-selector.h @@ -16,10 +16,6 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include -- cgit v1.2.3 From 2fee41cb4965333df801ae5fd97ac5ea95df049a Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 10:19:47 +0200 Subject: Removed unnecessary inclusion of glibmm/threads.h (bzr r14059.1.14) --- src/ui/widget/color-entry.cpp | 12 ++---------- src/ui/widget/color-entry.h | 8 -------- src/ui/widget/color-icc-selector.cpp | 9 +++------ src/ui/widget/color-icc-selector.h | 6 +----- src/ui/widget/color-notebook.cpp | 5 ----- src/ui/widget/color-scales.cpp | 8 ++------ src/ui/widget/color-scales.h | 9 +-------- src/ui/widget/color-slider.cpp | 7 +++---- src/ui/widget/color-slider.h | 8 -------- src/ui/widget/color-wheel-selector.h | 8 +------- 10 files changed, 13 insertions(+), 67 deletions(-) diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index e26cb4ade..89a63c6d0 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -7,17 +7,9 @@ * Copyright (C) 2014 Authors * 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 +#include #include "color-entry.h" diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index 148b5dfe9..ecb0518b1 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -11,14 +11,6 @@ #ifndef SEEN_COLOR_ENTRY_H #define SEEN_COLOR_ENTRY_H_ -#ifdef HAVE_CONFIG_H -# include -#endif - -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include #include "ui/selected-color.h" diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index db73c9111..e8d5be8a7 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -2,14 +2,11 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include -#include -#include #include +#include + +#include #include #include #include diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h index b917066dd..6066586f5 100644 --- a/src/ui/widget/color-icc-selector.h +++ b/src/ui/widget/color-icc-selector.h @@ -5,12 +5,8 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include -#if GTK_CHECK_VERSION(3,0,0) +#if WITH_GTKMM_3_0 #include #else #include diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 0a4473a3b..ddffb0246 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -19,16 +19,11 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include "widgets/icon.h" #include #include #include #include -#include #include #include #include diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 1771644d1..e9931e938 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -6,14 +6,10 @@ # include "config.h" #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - #include -#include -#include #include +#include +#include #include "svg/svg-icc-color.h" #include "ui/dialog-events.h" diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index 0f0c4f90e..af7f726f1 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -5,14 +5,7 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include -#include -#if GTK_CHECK_VERSION(3,0,0) +#if WITH_GTKMM_3_0 #include #else #include diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index ad9662c6c..bf8b85dbd 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -15,20 +15,19 @@ # include "config.h" #endif -#include "color-slider.h" - -#include #include #include #include #include -#if GTK_CHECK_VERSION(3,0,0) +#if WITH_GTKMM_3_0 #include #else #include #endif +#include #include "ui/widget/color-scales.h" +#include "ui/widget/color-slider.h" #include "preferences.h" static const gint SLIDER_WIDTH = 96; diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index 48d067bb8..2f2e7b2db 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -12,14 +12,6 @@ #ifndef SEEN_COLOR_SLIDER_H #define SEEN_COLOR_SLIDER_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/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index f5213fad7..ec30cc7c5 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -16,13 +16,7 @@ # include #endif -#if GLIBMM_DISABLE_DEPRECATED && HAVE_GLIBMM_THREADS_H -#include -#endif - -#include -#include -#if GTK_CHECK_VERSION(3,0,0) +#if WITH_GTKMM_3_0 #include #else #include -- cgit v1.2.3 From f107d4347aefa08df9738e23cf078da73277711e Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 11:01:16 +0200 Subject: Introduced fixes after merge proposal review (bzr r14059.1.16) --- src/extension/internal/cairo-render-context.cpp | 1 - src/extension/param/color.cpp | 2 +- src/ui/widget/color-entry.cpp | 5 +- src/ui/widget/color-icc-selector.cpp | 45 ++++++----------- src/ui/widget/color-scales.cpp | 67 +++++++++++-------------- src/ui/widget/color-scales.h | 2 +- 6 files changed, 47 insertions(+), 75 deletions(-) diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 7162ca658..abfdd9f1c 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1018,7 +1018,6 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver TRACE(("%f x %f pattern\n", width, height)); if (pbox && pat->get_pattern_units() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { - //Geom::Affine bbox2user (pbox->x1 - pbox->x0, 0.0, 0.0, pbox->y1 - pbox->y0, pbox->x0, pbox->y0); bbox_width_scaler = pbox->width(); bbox_height_scaler = pbox->height(); ps2user[4] = x * bbox_width_scaler + pbox->left(); diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp index e68dbf8bf..3162e8a40 100644 --- a/src/extension/param/color.cpp +++ b/src/extension/param/color.cpp @@ -78,7 +78,7 @@ ParamColor::ParamColor (const gchar * name, const gchar * guitext, const gchar * void ParamColor::string(std::string &string) const { char str[16]; - sprintf(str, "%i", _color.value()); + snprintf(str, 16, "%i", _color.value()); string += str; } diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index 89a63c6d0..a1fabf181 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -49,9 +49,8 @@ void ColorEntry::on_changed() { text.erase(0, 1); if (text.size() == 6) { // it was a standard RGB hex - unsigned int alph = SP_COLOR_F_TO_U(_color.alpha()); - Glib::ustring tmp = Glib::ustring::format(std::hex, std::setw(2), std::setfill(L'0'), alph); - text += tmp; + unsigned int alpha = SP_COLOR_F_TO_U(_color.alpha()); + text += Glib::ustring::format(std::hex, std::setw(2), std::setfill(L'0'), alpha); } } diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index e8d5be8a7..48c098604 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -236,23 +236,6 @@ std::vector colorspace::getColorSpaceInfo( Inkscape::Colo #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - - - - - - - - - - - - - - - - - namespace Inkscape { namespace UI { namespace Widget { @@ -263,23 +246,23 @@ namespace Widget { class ComponentUI { public: - ComponentUI() : - _component(), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) + ComponentUI() + : _component() + , _adj(0) + , _slider(0) + , _btn(0) + , _label(0) + , _map(0) { } - ComponentUI(colorspace::Component const &component) : - _component(component), - _adj(0), - _slider(0), - _btn(0), - _label(0), - _map(0) + ComponentUI(colorspace::Component const &component) + : _component(component) + , _adj(0) + , _slider(0) + , _btn(0) + , _label(0) + , _map(0) { } diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index e9931e938..9f18b2d96 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -176,43 +176,36 @@ void ColorScales::_initUI(SPColorScalesMode mode) setMode(mode); } -void ColorScales::_recalcColor( gboolean changing ) +void ColorScales::_recalcColor() { - if ( changing ) + SPColor color; + gfloat alpha = 1.0; + gfloat c[5]; + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + case SP_COLOR_SCALES_MODE_HSV: + _getRgbaFloatv(c); + color.set( c[0], c[1], c[2] ); + alpha = c[3]; + break; + case SP_COLOR_SCALES_MODE_CMYK: { - SPColor color; - gfloat alpha = 1.0; - gfloat c[5]; - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - case SP_COLOR_SCALES_MODE_HSV: - _getRgbaFloatv(c); - color.set( c[0], c[1], c[2] ); - alpha = c[3]; - break; - case SP_COLOR_SCALES_MODE_CMYK: - { - _getCmykaFloatv( c ); - - float rgb[3]; - sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); - color.set( rgb[0], rgb[1], rgb[2] ); - alpha = c[4]; - break; - } - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; - } - - _color.preserveICC(); - _color.setColorAlpha(color, alpha); + _getCmykaFloatv( c ); + + float rgb[3]; + sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); + color.set( rgb[0], rgb[1], rgb[2] ); + alpha = c[4]; + break; } - else - { - // _updateInternals( _color, _alpha, _dragging ); + default: + g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; } + + _color.preserveICC(); + _color.setColorAlpha(color, alpha); } /* Helpers for setting color value */ @@ -479,7 +472,6 @@ void ColorScales::_sliderAnyGrabbed() if (!_dragging) { _dragging = TRUE; _color.setHeld(true); - _recalcColor( FALSE ); } } @@ -491,7 +483,6 @@ void ColorScales::_sliderAnyReleased() if (_dragging) { _dragging = FALSE; _color.setHeld(false); - _recalcColor( FALSE ); } } @@ -500,7 +491,7 @@ void ColorScales::_sliderAnyChanged() if (_updating) { return; } - _recalcColor( TRUE ); + _recalcColor(); } void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel ) @@ -510,7 +501,7 @@ void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel ) } scales->_updateSliders( (1 << channel) ); - scales->_recalcColor (TRUE); + scales->_recalcColor(); } void ColorScales::_updateSliders( guint channels ) @@ -627,7 +618,7 @@ void ColorScales::_updateSliders( guint channels ) // Force the internal color to be updated if ( !_updating ) { - _recalcColor( TRUE ); + _recalcColor(); } #ifdef SPCS_PREVIEW diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index af7f726f1..0744a645c 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -63,7 +63,7 @@ protected: void _getCmykaFloatv(gfloat *cmyka); guint32 _getRgba32(); void _updateSliders(guint channels); - void _recalcColor(gboolean changing); + void _recalcColor(); void _setRangeLimit( gdouble upper ); -- cgit v1.2.3 From 5afcb9ce46813689190a622590aee6ab618fb6f4 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 11:05:46 +0200 Subject: Removed commented out code from ColorNotebook (bzr r14059.1.17) --- src/ui/widget/color-notebook.cpp | 149 --------------------------------------- src/ui/widget/color-notebook.h | 15 ---- 2 files changed, 164 deletions(-) diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index ddffb0246..92b1d7086 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -168,55 +168,6 @@ void ColorNotebook::_initUI() // restore the last active page Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _setCurrentPage(prefs->getInt("/colorselector/page", 0)); - - - /* Commented out: see comment at the bottom of the header file - { - gboolean found = FALSE; - - _popup = gtk_menu_new(); - GtkMenu *menu = GTK_MENU (_popup); - - for (int i = 0; i < _trackerList->len; i++ ) - { - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (g_ptr_array_index (_trackerList, i)); - if ( entry ) - { - GtkWidget *item = gtk_check_menu_item_new_with_label (_(entry->name)); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (item), entry->enabledFull); - gtk_widget_show (item); - gtk_menu_shell_append (GTK_MENU_SHELL(menu), item); - - g_signal_connect (G_OBJECT (item), "activate", - G_CALLBACK (sp_color_notebook_menuitem_response), - reinterpret_cast< gpointer > (entry) ); - found = TRUE; - } - } - - GtkWidget *arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); - gtk_widget_show (arrow); - - _btn = gtk_button_new (); - gtk_widget_show (_btn); - gtk_container_add (GTK_CONTAINER (_btn), arrow); - - GtkWidget *align = gtk_alignment_new (1.0, 0.0, 0.0, 0.0); - gtk_widget_show (align); - gtk_container_add (GTK_CONTAINER (align), _btn); - - // uncomment to reenable the "show/hide modes" menu, - // but first fix it so it remembers its settings in prefs and does not take that much space (entire vertical column!) - gtk_table_attach (GTK_TABLE (table), align, 2, 3, row, row + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); - - g_signal_connect_swapped(G_OBJECT(_btn), "event", G_CALLBACK (sp_color_notebook_menu_handler), G_OBJECT(_csel)); - if ( !found ) - { - gtk_widget_set_sensitive (_btn, FALSE); - } - } - */ - row++; #if GTK_CHECK_VERSION(3,0,0) @@ -420,106 +371,6 @@ void ColorNotebook::_addPage(Page& page) { } } -/* Commented out: see comment at the bottom of the header file - -GtkWidget* ColorNotebook::getPage(GType page_type, guint submode) -{ - gint count = 0; - gint i = 0; - GtkWidget* page = 0; - -// count = gtk_notebook_get_n_pages (_book); - count = 200; - for ( i = 0; i < count && !page; i++ ) - { - page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (_book), i); - if ( page ) - { - SPColorSelector* csel; - guint pagemode; - csel = SP_COLOR_SELECTOR (page); - pagemode = csel->base->getSubmode(); - if ( G_TYPE_FROM_INSTANCE (page) == page_type - && pagemode == submode ) - { - // found it. - break; - } - else - { - page = 0; - } - } - else - { - break; - } - } - return page; -} - -void ColorNotebook::removePage( GType page_type, guint submode ) -{ - GtkWidget *page = 0; - - page = getPage(page_type, submode); - if ( page ) - { - gint where = gtk_notebook_page_num (GTK_NOTEBOOK (_book), page); - if ( where >= 0 ) - { - if ( gtk_notebook_get_current_page (GTK_NOTEBOOK (_book)) == where ) - { -// getColorAlpha(_color, &_alpha); - } - gtk_notebook_remove_page (GTK_NOTEBOOK (_book), where); - } - } -} - - -static gint sp_color_notebook_menu_handler( GtkWidget *widget, GdkEvent *event ) -{ - if (event->type == GDK_BUTTON_PRESS) - { - SPColorSelector* csel = SP_COLOR_SELECTOR(widget); - (dynamic_cast(csel->base))->menuHandler( event ); - - // Tell calling code that we have handled this event; the buck - // stops here. - return TRUE; - } - - //Tell calling code that we have not handled this event; pass it on. - return FALSE; -} - -gint ColorNotebook::menuHandler( GdkEvent* event ) -{ - GdkEventButton *bevent = (GdkEventButton *) event; - gtk_menu_popup (GTK_MENU( _popup ), NULL, NULL, NULL, NULL, - bevent->button, bevent->time); - return TRUE; -} - -static void sp_color_notebook_menuitem_response (GtkMenuItem *menuitem, gpointer user_data) -{ - gboolean active = gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)); - SPColorNotebookTracker *entry = reinterpret_cast< SPColorNotebookTracker* > (user_data); - if ( entry ) - { - if ( active ) - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->addPage(entry->type, entry->submode); - } - else - { - (dynamic_cast(SP_COLOR_SELECTOR(entry->backPointer)->base))->removePage(entry->type, entry->submode); - } - } -} -*/ - /* Local Variables: mode:c++ diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h index 9e2aa8ec9..9909aa39c 100644 --- a/src/ui/widget/color-notebook.h +++ b/src/ui/widget/color-notebook.h @@ -82,21 +82,6 @@ private: // By default, disallow copy constructor and assignment operator ColorNotebook( const ColorNotebook& obj ); ColorNotebook& operator=( const ColorNotebook& obj ); - - /* Following methods support the pop-up menu to choose - * active color selectors (notebook tabs). This function - * is not used in Inkscape. If you want to re-enable it you have to - * * port the code to c++ - * * fix it so it remembers its settings in prefs - * * fix it so it does not take that much space (entire vertical column!) - * Current class design supports dynamic addtion and removal of color selectors - * - GtkWidget* addPage( GType page_type, guint submode ); - void removePage( GType page_type, guint submode ); - GtkWidget* getPage( GType page_type, guint submode ); - gint menuHandler( GdkEvent* event ); - - */ }; } -- cgit v1.2.3 From d41a1b907e503a5e6c587c35607a5fa2015eb0ae Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 11:42:05 +0200 Subject: Reformatted refactored files (bzr r14059.1.18) --- src/ui/widget/color-entry.cpp | 18 +- src/ui/widget/color-entry.h | 3 +- src/ui/widget/color-icc-selector.cpp | 784 +++++++++++++++-------------- src/ui/widget/color-icc-selector.h | 27 +- src/ui/widget/color-notebook.cpp | 200 ++++---- src/ui/widget/color-notebook.h | 16 +- src/ui/widget/color-scales.cpp | 888 ++++++++++++++++----------------- src/ui/widget/color-scales.h | 27 +- src/ui/widget/color-slider.cpp | 491 +++++++++--------- src/ui/widget/color-slider.h | 43 +- src/ui/widget/color-wheel-selector.cpp | 96 ++-- src/ui/widget/color-wheel-selector.h | 22 +- 12 files changed, 1291 insertions(+), 1324 deletions(-) diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index a1fabf181..473d7de65 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -30,12 +30,14 @@ ColorEntry::ColorEntry(SelectedColor &color) set_tooltip_text(_("Hexadecimal RGBA value of the color")); } -ColorEntry::~ColorEntry() { +ColorEntry::~ColorEntry() +{ _color_changed_connection.disconnect(); _color_dragged_connection.disconnect(); } -void ColorEntry::on_changed() { +void ColorEntry::on_changed() +{ if (_updating) { return; } @@ -43,7 +45,7 @@ void ColorEntry::on_changed() { Glib::ustring text = get_text(); bool changed = false; - //Coerce the value format to eight hex digits + // Coerce the value format to eight hex digits if (!text.empty() && text[0] == '#') { changed = true; text.erase(0, 1); @@ -54,8 +56,8 @@ void ColorEntry::on_changed() { } } - gchar* str = g_strdup(text.c_str()); - gchar* end = 0; + gchar *str = g_strdup(text.c_str()); + gchar *end = 0; guint64 rgba = g_ascii_strtoull(str, &end, 16); if (end != str) { ptrdiff_t len = end - str; @@ -72,11 +74,12 @@ void ColorEntry::on_changed() { } -void ColorEntry::_onColorChanged() { +void ColorEntry::_onColorChanged() +{ SPColor color = _color.color(); gdouble alpha = _color.alpha(); - guint32 rgba = color.toRGBA32( alpha ); + guint32 rgba = color.toRGBA32(alpha); Glib::ustring text = Glib::ustring::format(std::hex, std::setw(8), std::setfill(L'0'), rgba); Glib::ustring old_text = get_text(); @@ -86,7 +89,6 @@ void ColorEntry::_onColorChanged() { _updating = false; } } - } } } diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index ecb0518b1..cd7d6164a 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -18,7 +18,8 @@ namespace Inkscape { namespace UI { namespace Widget { -class ColorEntry: public Gtk::Entry { +class ColorEntry : public Gtk::Entry +{ public: ColorEntry(SelectedColor &color); virtual ~ColorEntry(); diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 48c098604..a7e75bfc5 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -1,5 +1,5 @@ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include @@ -36,40 +36,30 @@ #ifdef DEBUG_LCMS extern guint update_in_progress; -#define DEBUG_MESSAGE(key, ...) \ -{\ - Inkscape::Preferences *prefs = Inkscape::Preferences::get();\ - bool dump = prefs->getBool("/options/scislac/" #key);\ - bool dumpD = prefs->getBool("/options/scislac/" #key "D");\ - bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2");\ - dumpD &&= ( (update_in_progress == 0) || dumpD2 );\ - if ( dump )\ - {\ - g_message( __VA_ARGS__ );\ -\ - }\ - if ( dumpD )\ - {\ - GtkWidget *dialog = gtk_message_dialog_new(NULL,\ - GTK_DIALOG_DESTROY_WITH_PARENT, \ - GTK_MESSAGE_INFO, \ - GTK_BUTTONS_OK, \ - __VA_ARGS__ \ - );\ - g_signal_connect_swapped(dialog, "response",\ - G_CALLBACK(gtk_widget_destroy), \ - dialog); \ - gtk_widget_show_all( dialog );\ - }\ -} +#define DEBUG_MESSAGE(key, ...) \ + { \ + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); \ + bool dump = prefs->getBool("/options/scislac/" #key); \ + bool dumpD = prefs->getBool("/options/scislac/" #key "D"); \ + bool dumpD2 = prefs->getBool("/options/scislac/" #key "D2"); \ + dumpD && = ((update_in_progress == 0) || dumpD2); \ + if (dump) { \ + g_message(__VA_ARGS__); \ + } \ + if (dumpD) { \ + GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, \ + GTK_BUTTONS_OK, __VA_ARGS__); \ + g_signal_connect_swapped(dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); \ + gtk_widget_show_all(dialog); \ + } \ + } #endif // DEBUG_LCMS #define XPAD 4 #define YPAD 1 -namespace -{ +namespace { size_t maxColorspaceComponentCount = 0; @@ -94,41 +84,35 @@ GtkAttachOptions operator|(GtkAttachOptions lhs, GtkAttachOptions rhs) /** * Helper function to handle GTK2/GTK3 attachment #ifdef code. */ -void attachToGridOrTable(GtkWidget *parent, - GtkWidget *child, - guint left, - guint top, - guint width, - guint height, - bool hexpand = false, - bool centered = false, - guint xpadding = XPAD, - guint ypadding = YPAD) +void attachToGridOrTable(GtkWidget *parent, GtkWidget *child, guint left, guint top, guint width, guint height, + bool hexpand = false, bool centered = false, guint xpadding = XPAD, guint ypadding = YPAD) { -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) - gtk_widget_set_margin_start( child, xpadding ); - gtk_widget_set_margin_end( child, xpadding ); - #else - gtk_widget_set_margin_left( child, xpadding ); - gtk_widget_set_margin_right( child, xpadding ); - #endif - - gtk_widget_set_margin_top( child, ypadding ); - gtk_widget_set_margin_bottom( child, ypadding ); +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) + gtk_widget_set_margin_start(child, xpadding); + gtk_widget_set_margin_end(child, xpadding); + #else + gtk_widget_set_margin_left(child, xpadding); + gtk_widget_set_margin_right(child, xpadding); + #endif + + gtk_widget_set_margin_top(child, ypadding); + gtk_widget_set_margin_bottom(child, ypadding); if (hexpand) { gtk_widget_set_hexpand(child, TRUE); } if (centered) { - gtk_widget_set_halign( child, GTK_ALIGN_CENTER ); - gtk_widget_set_valign( child, GTK_ALIGN_CENTER ); + gtk_widget_set_halign(child, GTK_ALIGN_CENTER); + gtk_widget_set_valign(child, GTK_ALIGN_CENTER); } - gtk_grid_attach( GTK_GRID(parent), child, left, top, width, height ); + gtk_grid_attach(GTK_GRID(parent), child, left, top, width, height); #else - GtkAttachOptions xoptions = centered ? static_cast(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL; + GtkAttachOptions xoptions = + centered ? static_cast(0) : hexpand ? (GTK_EXPAND | GTK_FILL) : GTK_FILL; GtkAttachOptions yoptions = centered ? static_cast(0) : GTK_FILL; - gtk_table_attach( GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding, ypadding ); + gtk_table_attach(GTK_TABLE(parent), child, left, left + width, top, top + height, xoptions, yoptions, xpadding, + ypadding); #endif } @@ -145,32 +129,32 @@ icSigCmyData #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -static cmsUInt16Number* getScratch() { +static cmsUInt16Number *getScratch() +{ // bytes per pixel * input channels * width - static cmsUInt16Number* scritch = static_cast(g_new(cmsUInt16Number, 4 * 1024)); + static cmsUInt16Number *scritch = static_cast(g_new(cmsUInt16Number, 4 * 1024)); return scritch; } -colorspace::Component::Component() : - name(), - tip(), - scale(1) +colorspace::Component::Component() + : name() + , tip() + , scale(1) { } -colorspace::Component::Component(std::string const &name, std::string const &tip, guint scale) : - name(name), - tip(tip), - scale(scale) +colorspace::Component::Component(std::string const &name, std::string const &tip, guint scale) + : name(name) + , tip(tip) + , scale(scale) { } -std::vector colorspace::getColorSpaceInfo( uint32_t space ) +std::vector colorspace::getColorSpaceInfo(uint32_t space) { static std::map > sets; - if (sets.empty()) - { + if (sets.empty()) { sets[cmsSigXYZData].push_back(Component("_X", "X", 2)); // TYPE_XYZ_16 sets[cmsSigXYZData].push_back(Component("_Y", "Y", 1)); sets[cmsSigXYZData].push_back(Component("_Z", "Z", 2)); @@ -179,7 +163,7 @@ std::vector colorspace::getColorSpaceInfo( uint32_t space sets[cmsSigLabData].push_back(Component("_a", "a", 256)); sets[cmsSigLabData].push_back(Component("_b", "b", 256)); - //cmsSigLuvData + // cmsSigLuvData sets[cmsSigYCbCrData].push_back(Component("_Y", "Y", 1)); // TYPE_YCbCr_16 sets[cmsSigYCbCrData].push_back(Component("C_b", "Cb", 1)); @@ -212,8 +196,7 @@ std::vector colorspace::getColorSpaceInfo( uint32_t space sets[cmsSigCmyData].push_back(Component(_("_M:"), _("Magenta"), 1)); sets[cmsSigCmyData].push_back(Component(_("_Y:"), _("Yellow"), 1)); - for (std::map >::iterator it = sets.begin(); it != sets.end(); ++it) - { + for (std::map >::iterator it = sets.begin(); it != sets.end(); ++it) { knownColorspaces.insert(it->first); maxColorspaceComponentCount = std::max(maxColorspaceComponentCount, it->second.size()); } @@ -221,17 +204,16 @@ std::vector colorspace::getColorSpaceInfo( uint32_t space std::vector target; - if (sets.find(space) != sets.end()) - { + if (sets.find(space) != sets.end()) { target = sets[space]; } return target; } -std::vector colorspace::getColorSpaceInfo( Inkscape::ColorProfile *prof ) +std::vector colorspace::getColorSpaceInfo(Inkscape::ColorProfile *prof) { - return getColorSpaceInfo( asICColorSpaceSig(prof->getColorSpace()) ); + return getColorSpaceInfo(asICColorSpaceSig(prof->getColorSpace())); } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -243,9 +225,8 @@ namespace Widget { /** * Class containing the parts for a single color component's UI presence. */ -class ComponentUI -{ -public: +class ComponentUI { + public: ComponentUI() : _component() , _adj(0) @@ -269,37 +250,35 @@ public: colorspace::Component _component; GtkAdjustment *_adj; // Component adjustment Inkscape::UI::Widget::ColorSlider *_slider; - GtkWidget *_btn; // spinbutton - GtkWidget *_label; // Label - guchar *_map; + GtkWidget *_btn; // spinbutton + GtkWidget *_label; // Label + guchar *_map; }; /** * Class that implements the internals of the selector. */ -class ColorICCSelectorImpl -{ -public: - +class ColorICCSelectorImpl { + public: ColorICCSelectorImpl(ColorICCSelector *owner, SelectedColor &color); ~ColorICCSelectorImpl(); - static void _adjustmentChanged ( GtkAdjustment *adjustment, ColorICCSelectorImpl *cs ); + static void _adjustmentChanged(GtkAdjustment *adjustment, ColorICCSelectorImpl *cs); void _sliderGrabbed(); void _sliderReleased(); void _sliderChanged(); - static void _profileSelected( GtkWidget* src, gpointer data ); - static void _fixupHit( GtkWidget* src, gpointer data ); + static void _profileSelected(GtkWidget *src, gpointer data); + static void _fixupHit(GtkWidget *src, gpointer data); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - void _setProfile( SVGICCColor* profile ); - void _switchToProfile( gchar const* name ); + void _setProfile(SVGICCColor *profile); + void _switchToProfile(gchar const *name); #endif - void _updateSliders( gint ignore ); - void _profilesChanged( std::string const & name ); + void _updateSliders(gint ignore); + void _profilesChanged(std::string const &name); ColorICCSelector *_owner; SelectedColor &_color; @@ -308,19 +287,19 @@ public: gboolean _dragging : 1; guint32 _fixupNeeded; - GtkWidget* _fixupBtn; - GtkWidget* _profileSel; + GtkWidget *_fixupBtn; + GtkWidget *_profileSel; std::vector _compUI; - GtkAdjustment* _adj; // Channel adjustment - Inkscape::UI::Widget::ColorSlider* _slider; - GtkWidget* _sbtn; // Spinbutton - GtkWidget* _label; // Label + GtkAdjustment *_adj; // Channel adjustment + Inkscape::UI::Widget::ColorSlider *_slider; + GtkWidget *_sbtn; // Spinbutton + GtkWidget *_label; // Label #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) std::string _profileName; - Inkscape::ColorProfile* _prof; + Inkscape::ColorProfile *_prof; guint _profChannelCount; gulong _profChangedID; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) @@ -328,8 +307,7 @@ public: - -const gchar* ColorICCSelector::MODE_NAME = N_("CMS"); +const gchar *ColorICCSelector::MODE_NAME = N_("CMS"); ColorICCSelector::ColorICCSelector(SelectedColor &color) : _impl(NULL) @@ -337,13 +315,12 @@ ColorICCSelector::ColorICCSelector(SelectedColor &color) _impl = new ColorICCSelectorImpl(this, color); init(); color.signal_changed.connect(sigc::mem_fun(this, &ColorICCSelector::_colorChanged)); - //color.signal_dragged.connect(sigc::mem_fun(this, &ColorICCSelector::_colorChanged)); + // color.signal_dragged.connect(sigc::mem_fun(this, &ColorICCSelector::_colorChanged)); } ColorICCSelector::~ColorICCSelector() { - if (_impl) - { + if (_impl) { delete _impl; _impl = 0; } @@ -351,25 +328,24 @@ ColorICCSelector::~ColorICCSelector() -ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner, SelectedColor &color) : - _owner(owner), - _color(color), - _updating( FALSE ), - _dragging( FALSE ), - _fixupNeeded(0), - _fixupBtn(0), - _profileSel(0), - _compUI(), - _adj(0), - _slider(0), - _sbtn(0), - _label(0) +ColorICCSelectorImpl::ColorICCSelectorImpl(ColorICCSelector *owner, SelectedColor &color) + : _owner(owner) + , _color(color) + , _updating(FALSE) + , _dragging(FALSE) + , _fixupNeeded(0) + , _fixupBtn(0) + , _profileSel(0) + , _compUI() + , _adj(0) + , _slider(0) + , _sbtn(0) + , _label(0) #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - , - _profileName(), - _prof(0), - _profChannelCount(0), - _profChangedID(0) + , _profileName() + , _prof(0) + , _profChannelCount(0) + , _profChangedID(0) #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) { } @@ -388,9 +364,9 @@ void ColorICCSelector::init() _impl->_updating = FALSE; _impl->_dragging = FALSE; - GtkWidget* t = GTK_WIDGET(gobj()); + GtkWidget *t = GTK_WIDGET(gobj()); - gtk_widget_show (t); + gtk_widget_show(t); _impl->_compUI.clear(); @@ -399,50 +375,53 @@ void ColorICCSelector::init() _impl->_fixupBtn = gtk_button_new_with_label(_("Fix")); - g_signal_connect( G_OBJECT(_impl->_fixupBtn), "clicked", G_CALLBACK(ColorICCSelectorImpl::_fixupHit), (gpointer)_impl ); - gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); - gtk_widget_set_tooltip_text( _impl->_fixupBtn, _("Fix RGB fallback to match icc-color() value.") ); - //gtk_misc_set_alignment( GTK_MISC (_impl->_fixupBtn), 1.0, 0.5 ); - gtk_widget_show( _impl->_fixupBtn ); + g_signal_connect(G_OBJECT(_impl->_fixupBtn), "clicked", G_CALLBACK(ColorICCSelectorImpl::_fixupHit), + (gpointer)_impl); + gtk_widget_set_sensitive(_impl->_fixupBtn, FALSE); + gtk_widget_set_tooltip_text(_impl->_fixupBtn, _("Fix RGB fallback to match icc-color() value.")); + // gtk_misc_set_alignment( GTK_MISC (_impl->_fixupBtn), 1.0, 0.5 ); + gtk_widget_show(_impl->_fixupBtn); attachToGridOrTable(t, _impl->_fixupBtn, 0, row, 1, 1); // Combobox and store with 2 columns : label (0) and full name (1) - GtkListStore *store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); - _impl->_profileSel = gtk_combo_box_new_with_model (GTK_TREE_MODEL (store)); + GtkListStore *store = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); + _impl->_profileSel = gtk_combo_box_new_with_model(GTK_TREE_MODEL(store)); - GtkCellRenderer *renderer = gtk_cell_renderer_text_new (); + GtkCellRenderer *renderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, TRUE); gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(_impl->_profileSel), renderer, "text", 0, NULL); GtkTreeIter iter; - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, 0, _(""), 1, _(""), -1); + gtk_list_store_append(store, &iter); + gtk_list_store_set(store, &iter, 0, _(""), 1, _(""), -1); - gtk_widget_show( _impl->_profileSel ); - gtk_combo_box_set_active( GTK_COMBO_BOX(_impl->_profileSel), 0 ); + gtk_widget_show(_impl->_profileSel); + gtk_combo_box_set_active(GTK_COMBO_BOX(_impl->_profileSel), 0); attachToGridOrTable(t, _impl->_profileSel, 1, row, 1, 1); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_profChangedID = g_signal_connect( G_OBJECT(_impl->_profileSel), "changed", G_CALLBACK(ColorICCSelectorImpl::_profileSelected), (gpointer)_impl ); + _impl->_profChangedID = g_signal_connect(G_OBJECT(_impl->_profileSel), "changed", + G_CALLBACK(ColorICCSelectorImpl::_profileSelected), (gpointer)_impl); #else - gtk_widget_set_sensitive( _impl->_profileSel, false ); + gtk_widget_set_sensitive(_impl->_profileSel, false); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) row++; - // populate the data for colorspaces and channels: +// populate the data for colorspaces and channels: #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - std::vector things = colorspace::getColorSpaceInfo( cmsSigRgbData ); + std::vector things = colorspace::getColorSpaceInfo(cmsSigRgbData); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - for ( size_t i = 0; i < maxColorspaceComponentCount; i++ ) { + for (size_t i = 0; i < maxColorspaceComponentCount; i++) { #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) if (i < things.size()) { _impl->_compUI.push_back(ComponentUI(things[i])); - } else { + } + else { _impl->_compUI.push_back(ComponentUI()); } @@ -453,9 +432,9 @@ void ColorICCSelector::init() std::string labelStr = "."; #endif - _impl->_compUI[i]._label = gtk_label_new_with_mnemonic( labelStr.c_str() ); - gtk_misc_set_alignment( GTK_MISC (_impl->_compUI[i]._label), 1.0, 0.5 ); - gtk_widget_show( _impl->_compUI[i]._label ); + _impl->_compUI[i]._label = gtk_label_new_with_mnemonic(labelStr.c_str()); + gtk_misc_set_alignment(GTK_MISC(_impl->_compUI[i]._label), 1.0, 0.5); + gtk_widget_show(_impl->_compUI[i]._label); attachToGridOrTable(t, _impl->_compUI[i]._label, 0, row, 1, 1); @@ -464,10 +443,11 @@ void ColorICCSelector::init() gdouble step = static_cast(scaleValue) / 100.0; gdouble page = static_cast(scaleValue) / 10.0; gint digits = (step > 0.9) ? 0 : 2; - _impl->_compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( 0.0, 0.0, scaleValue, step, page, page ) ); + _impl->_compUI[i]._adj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, scaleValue, step, page, page)); // Slider - _impl->_compUI[i]._slider = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_compUI[i]._adj, true))); + _impl->_compUI[i]._slider = + Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_impl->_compUI[i]._adj, true))); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) _impl->_compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); #else @@ -477,28 +457,31 @@ void ColorICCSelector::init() attachToGridOrTable(t, _impl->_compUI[i]._slider->gobj(), 1, row, 1, 1, true); - _impl->_compUI[i]._btn = gtk_spin_button_new( _impl->_compUI[i]._adj, step, digits ); + _impl->_compUI[i]._btn = gtk_spin_button_new(_impl->_compUI[i]._adj, step, digits); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); + gtk_widget_set_tooltip_text(_impl->_compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : ""); #else - gtk_widget_set_tooltip_text( _impl->_compUI[i]._btn, "." ); + gtk_widget_set_tooltip_text(_impl->_compUI[i]._btn, "."); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - sp_dialog_defocus_on_enter( _impl->_compUI[i]._btn ); - gtk_label_set_mnemonic_widget( GTK_LABEL(_impl->_compUI[i]._label), _impl->_compUI[i]._btn ); - gtk_widget_show( _impl->_compUI[i]._btn ); + sp_dialog_defocus_on_enter(_impl->_compUI[i]._btn); + gtk_label_set_mnemonic_widget(GTK_LABEL(_impl->_compUI[i]._label), _impl->_compUI[i]._btn); + gtk_widget_show(_impl->_compUI[i]._btn); attachToGridOrTable(t, _impl->_compUI[i]._btn, 2, row, 1, 1, false, true); - _impl->_compUI[i]._map = g_new( guchar, 4 * 1024 ); - memset( _impl->_compUI[i]._map, 0x0ff, 1024 * 4 ); + _impl->_compUI[i]._map = g_new(guchar, 4 * 1024); + memset(_impl->_compUI[i]._map, 0x0ff, 1024 * 4); // Signals - g_signal_connect( G_OBJECT( _impl->_compUI[i]._adj ), "value_changed", G_CALLBACK( ColorICCSelectorImpl::_adjustmentChanged ), _impl ); + g_signal_connect(G_OBJECT(_impl->_compUI[i]._adj), "value_changed", + G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _impl); _impl->_compUI[i]._slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); - _impl->_compUI[i]._slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); - _impl->_compUI[i]._slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); + _impl->_compUI[i]._slider->signal_released.connect( + sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); + _impl->_compUI[i]._slider->signal_value_changed.connect( + sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); row++; } @@ -520,9 +503,8 @@ void ColorICCSelector::init() attachToGridOrTable(t, _impl->_slider->gobj(), 1, row, 1, 1, true); - _impl->_slider->setColors(SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.0 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 0.5 ), - SP_RGBA32_F_COMPOSE( 1.0, 1.0, 1.0, 1.0 ) ); + _impl->_slider->setColors(SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.0), SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.5), + SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 1.0)); // Spinbutton @@ -535,66 +517,69 @@ void ColorICCSelector::init() attachToGridOrTable(t, _impl->_sbtn, 2, row, 1, 1, false, true); // Signals - g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), _impl); + g_signal_connect(G_OBJECT(_impl->_adj), "value_changed", G_CALLBACK(ColorICCSelectorImpl::_adjustmentChanged), + _impl); _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); } -void ColorICCSelectorImpl::_fixupHit( GtkWidget* /*src*/, gpointer data ) +void ColorICCSelectorImpl::_fixupHit(GtkWidget * /*src*/, gpointer data) { - ColorICCSelectorImpl* self = reinterpret_cast(data); - gtk_widget_set_sensitive( self->_fixupBtn, FALSE ); - self->_adjustmentChanged( self->_compUI[0]._adj, self ); + ColorICCSelectorImpl *self = reinterpret_cast(data); + gtk_widget_set_sensitive(self->_fixupBtn, FALSE); + self->_adjustmentChanged(self->_compUI[0]._adj, self); } #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_profileSelected( GtkWidget* /*src*/, gpointer data ) +void ColorICCSelectorImpl::_profileSelected(GtkWidget * /*src*/, gpointer data) { - ColorICCSelectorImpl* self = reinterpret_cast(data); + ColorICCSelectorImpl *self = reinterpret_cast(data); - GtkTreeIter iter; + GtkTreeIter iter; if (gtk_combo_box_get_active_iter(GTK_COMBO_BOX(self->_profileSel), &iter)) { GtkTreeModel *store = gtk_combo_box_get_model(GTK_COMBO_BOX(self->_profileSel)); - gchar* name = 0; + gchar *name = 0; gtk_tree_model_get(store, &iter, 1, &name, -1); - self->_switchToProfile( name ); - gtk_widget_set_tooltip_text(self->_profileSel, name ); + self->_switchToProfile(name); + gtk_widget_set_tooltip_text(self->_profileSel, name); - if ( name ) { - g_free( name ); + if (name) { + g_free(name); } } } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) +void ColorICCSelectorImpl::_switchToProfile(gchar const *name) { bool dirty = false; - SPColor tmp( _color.color() ); + SPColor tmp(_color.color()); - if ( name ) { - if ( tmp.icc && tmp.icc->colorProfile == name ) { + if (name) { + if (tmp.icc && tmp.icc->colorProfile == name) { #ifdef DEBUG_LCMS - g_message("Already at name [%s]", name ); + g_message("Already at name [%s]", name); #endif // DEBUG_LCMS - } else { + } + else { #ifdef DEBUG_LCMS - g_message("Need to switch to profile [%s]", name ); + g_message("Need to switch to profile [%s]", name); #endif // DEBUG_LCMS - if ( tmp.icc ) { + if (tmp.icc) { tmp.icc->colors.clear(); - } else { + } + else { tmp.icc = new SVGICCColor(); } tmp.icc->colorProfile = name; - Inkscape::ColorProfile* newProf = SP_ACTIVE_DOCUMENT->profileManager->find(name); - if ( newProf ) { + Inkscape::ColorProfile *newProf = SP_ACTIVE_DOCUMENT->profileManager->find(name); + if (newProf) { cmsHTRANSFORM trans = newProf->getTransfFromSRGB8(); - if ( trans ) { + if (trans) { guint32 val = _color.color().toRGBA32(0); guchar pre[4] = { static_cast(SP_RGBA32_R_U(val)), @@ -604,29 +589,31 @@ void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) #ifdef DEBUG_LCMS g_message("Shoving in [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); #endif // DEBUG_LCMS - cmsUInt16Number post[4] = {0,0,0,0}; - cmsDoTransform( trans, pre, post, 1 ); + cmsUInt16Number post[4] = { 0, 0, 0, 0 }; + cmsDoTransform(trans, pre, post, 1); #ifdef DEBUG_LCMS g_message("got on out [%04x] [%04x] [%04x] [%04x]", post[0], post[1], post[2], post[3]); #endif // DEBUG_LCMS #if HAVE_LIBLCMS1 - guint count = _cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); + guint count = _cmsChannelsOf(asICColorSpaceSig(newProf->getColorSpace())); #elif HAVE_LIBLCMS2 - guint count = cmsChannelsOf( asICColorSpaceSig(newProf->getColorSpace()) ); + guint count = cmsChannelsOf(asICColorSpaceSig(newProf->getColorSpace())); #endif - std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(newProf->getColorSpace())); + std::vector things = + colorspace::getColorSpaceInfo(asICColorSpaceSig(newProf->getColorSpace())); - for ( guint i = 0; i < count; i++ ) { - gdouble val = (((gdouble)post[i])/65535.0) * (gdouble)((i < things.size()) ? things[i].scale : 1); + for (guint i = 0; i < count; i++) { + gdouble val = + (((gdouble)post[i]) / 65535.0) * (gdouble)((i < things.size()) ? things[i].scale : 1); #ifdef DEBUG_LCMS g_message(" scaled %d by %d to be %f", i, ((i < things.size()) ? things[i].scale : 1), val); #endif // DEBUG_LCMS tmp.icc->colors.push_back(val); } cmsHTRANSFORM retrans = newProf->getTransfToSRGB8(); - if ( retrans ) { - cmsDoTransform( retrans, post, pre, 1 ); + if (retrans) { + cmsDoTransform(retrans, post, pre, 1); #ifdef DEBUG_LCMS g_message(" back out [%02x] [%02x] [%02x]", pre[0], pre[1], pre[2]); #endif // DEBUG_LCMS @@ -636,28 +623,30 @@ void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) } dirty = true; } - } else { + } + else { #ifdef DEBUG_LCMS - g_message("NUKE THE ICC"); + g_message("NUKE THE ICC"); #endif // DEBUG_LCMS - if ( tmp.icc ) { + if (tmp.icc) { delete tmp.icc; tmp.icc = 0; dirty = true; - _fixupHit( 0, this ); - } else { + _fixupHit(0, this); + } + else { #ifdef DEBUG_LCMS - g_message("No icc to nuke"); + g_message("No icc to nuke"); #endif // DEBUG_LCMS } } - if ( dirty ) { + if (dirty) { #ifdef DEBUG_LCMS g_message("+----------------"); g_message("+ new color is [%s]", tmp.toString().c_str()); #endif // DEBUG_LCMS - _setProfile( tmp.icc ); + _setProfile(tmp.icc); //_adjustmentChanged( _compUI[0]._adj, SP_COLOR_ICC_SELECTOR(_csel) ); _color.setColor(tmp); #ifdef DEBUG_LCMS @@ -668,45 +657,43 @@ void ColorICCSelectorImpl::_switchToProfile( gchar const* name ) #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_profilesChanged( std::string const & name ) +void ColorICCSelectorImpl::_profilesChanged(std::string const &name) { - GtkComboBox* combo = GTK_COMBO_BOX(_profileSel); + GtkComboBox *combo = GTK_COMBO_BOX(_profileSel); - g_signal_handler_block( G_OBJECT(_profileSel), _profChangedID ); + g_signal_handler_block(G_OBJECT(_profileSel), _profChangedID); GtkListStore *store = GTK_LIST_STORE(gtk_combo_box_get_model(combo)); gtk_list_store_clear(store); GtkTreeIter iter; - gtk_list_store_append (store, &iter); + gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, _(""), 1, _(""), -1); - gtk_combo_box_set_active( combo, 0 ); + gtk_combo_box_set_active(combo, 0); int index = 1; - const GSList *current = SP_ACTIVE_DOCUMENT->getResourceList( "iccprofile" ); - while ( current ) { - SPObject* obj = SP_OBJECT(current->data); - Inkscape::ColorProfile* prof = reinterpret_cast(obj); + const GSList *current = SP_ACTIVE_DOCUMENT->getResourceList("iccprofile"); + while (current) { + SPObject *obj = SP_OBJECT(current->data); + Inkscape::ColorProfile *prof = reinterpret_cast(obj); - gtk_list_store_append (store, &iter); + gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, gr_ellipsize_text(prof->name, 25).c_str(), 1, prof->name, -1); - if ( name == prof->name ) { - gtk_combo_box_set_active( combo, index ); - gtk_widget_set_tooltip_text(_profileSel, prof->name ); + if (name == prof->name) { + gtk_combo_box_set_active(combo, index); + gtk_widget_set_tooltip_text(_profileSel, prof->name); } index++; current = g_slist_next(current); } - g_signal_handler_unblock( G_OBJECT(_profileSel), _profChangedID ); + g_signal_handler_unblock(G_OBJECT(_profileSel), _profChangedID); } #else -void ColorICCSelectorImpl::_profilesChanged( std::string const & /*name*/ ) -{ -} +void ColorICCSelectorImpl::_profilesChanged(std::string const & /*name*/) {} #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) // Helpers for setting color value @@ -714,190 +701,199 @@ void ColorICCSelectorImpl::_profilesChanged( std::string const & /*name*/ ) void ColorICCSelector::_colorChanged() { _impl->_updating = TRUE; - //sp_color_icc_set_color( SP_COLOR_ICC( _icc ), &color ); +// sp_color_icc_set_color( SP_COLOR_ICC( _icc ), &color ); #ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_colorChanged(%08x:%s)", this, - _impl->_color.color().toRGBA32(_impl->_color.alpha()), ( (_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile.c_str(): "" ) - ); + g_message("/^^^^^^^^^ %p::_colorChanged(%08x:%s)", this, _impl->_color.color().toRGBA32(_impl->_color.alpha()), + ((_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile.c_str() : "")); #endif // DEBUG_LCMS #ifdef DEBUG_LCMS - g_message("FLIPPIES!!!! %p '%s'", _impl->_color.color().icc, (_impl->_color.color().icc ? _impl->_color.color().icc->colorProfile.c_str():"")); + g_message("FLIPPIES!!!! %p '%s'", _impl->_color.color().icc, + (_impl->_color.color().icc ? _impl->_color.color().icc->colorProfile.c_str() : "")); #endif // DEBUG_LCMS - _impl->_profilesChanged( (_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile : std::string("") ); - ColorScales::setScaled( _impl->_adj, _impl->_color.alpha() ); + _impl->_profilesChanged((_impl->_color.color().icc) ? _impl->_color.color().icc->colorProfile : std::string("")); + ColorScales::setScaled(_impl->_adj, _impl->_color.alpha()); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_setProfile( _impl->_color.color().icc ); + _impl->_setProfile(_impl->_color.color().icc); _impl->_fixupNeeded = 0; - gtk_widget_set_sensitive( _impl->_fixupBtn, FALSE ); + gtk_widget_set_sensitive(_impl->_fixupBtn, FALSE); if (_impl->_prof) { - if (_impl->_prof->getTransfToSRGB8() ) { + if (_impl->_prof->getTransfToSRGB8()) { cmsUInt16Number tmp[4]; - for ( guint i = 0; i < _impl->_profChannelCount; i++ ) { + for (guint i = 0; i < _impl->_profChannelCount; i++) { gdouble val = 0.0; - if ( _impl->_color.color().icc->colors.size() > i ) { - if ( _impl->_compUI[i]._component.scale == 256 ) { - val = (_impl->_color.color().icc->colors[i] + 128.0) / static_cast(_impl->_compUI[i]._component.scale); - } else { - val = _impl->_color.color().icc->colors[i] / static_cast(_impl->_compUI[i]._component.scale); + if (_impl->_color.color().icc->colors.size() > i) { + if (_impl->_compUI[i]._component.scale == 256) { + val = (_impl->_color.color().icc->colors[i] + 128.0) / + static_cast(_impl->_compUI[i]._component.scale); + } + else { + val = _impl->_color.color().icc->colors[i] / + static_cast(_impl->_compUI[i]._component.scale); } } tmp[i] = val * 0x0ffff; } - guchar post[4] = {0,0,0,0}; + guchar post[4] = { 0, 0, 0, 0 }; cmsHTRANSFORM trans = _impl->_prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, tmp, post, 1 ); - guint32 other = SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255 ); - if ( other != _impl->_color.color().toRGBA32(255) ) { + if (trans) { + cmsDoTransform(trans, tmp, post, 1); + guint32 other = SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255); + if (other != _impl->_color.color().toRGBA32(255)) { _impl->_fixupNeeded = other; - gtk_widget_set_sensitive( _impl->_fixupBtn, TRUE ); + gtk_widget_set_sensitive(_impl->_fixupBtn, TRUE); #ifdef DEBUG_LCMS - g_message("Color needs to change 0x%06x to 0x%06x", _color.toRGBA32(255) >> 8, other >> 8 ); + g_message("Color needs to change 0x%06x to 0x%06x", _color.toRGBA32(255) >> 8, other >> 8); #endif // DEBUG_LCMS } } } } #else - //(void)color; +//(void)color; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - _impl->_updateSliders( -1 ); + _impl->_updateSliders(-1); _impl->_updating = FALSE; #ifdef DEBUG_LCMS - g_message( "\\_________ %p::_colorChanged()", this ); + g_message("\\_________ %p::_colorChanged()", this); #endif // DEBUG_LCMS } #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_setProfile( SVGICCColor* profile ) +void ColorICCSelectorImpl::_setProfile(SVGICCColor *profile) { #ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_setProfile(%s)", this, - ( (profile) ? profile->colorProfile.c_str() : "") - ); + g_message("/^^^^^^^^^ %p::_setProfile(%s)", this, ((profile) ? profile->colorProfile.c_str() : "")); #endif // DEBUG_LCMS bool profChanged = false; - if ( _prof && (!profile || (_profileName != profile->colorProfile) ) ) { + if (_prof && (!profile || (_profileName != profile->colorProfile))) { // Need to clear out the prior one profChanged = true; _profileName.clear(); _prof = 0; _profChannelCount = 0; - } else if ( profile && !_prof ) { + } + else if (profile && !_prof) { profChanged = true; } - for ( size_t i = 0; i < _compUI.size(); i++ ) { - gtk_widget_hide( _compUI[i]._label ); + for (size_t i = 0; i < _compUI.size(); i++) { + gtk_widget_hide(_compUI[i]._label); _compUI[i]._slider->hide(); - gtk_widget_hide( _compUI[i]._btn ); + gtk_widget_hide(_compUI[i]._btn); } - if ( profile ) { + if (profile) { _prof = SP_ACTIVE_DOCUMENT->profileManager->find(profile->colorProfile.c_str()); - if ( _prof && (asICColorProfileClassSig(_prof->getProfileClass()) != cmsSigNamedColorClass) ) { + if (_prof && (asICColorProfileClassSig(_prof->getProfileClass()) != cmsSigNamedColorClass)) { #if HAVE_LIBLCMS1 - _profChannelCount = _cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); + _profChannelCount = _cmsChannelsOf(asICColorSpaceSig(_prof->getColorSpace())); #elif HAVE_LIBLCMS2 - _profChannelCount = cmsChannelsOf( asICColorSpaceSig(_prof->getColorSpace()) ); + _profChannelCount = cmsChannelsOf(asICColorSpaceSig(_prof->getColorSpace())); #endif - if ( profChanged ) { - std::vector things = colorspace::getColorSpaceInfo(asICColorSpaceSig(_prof->getColorSpace())); - for (size_t i = 0; (i < things.size()) && (i < _profChannelCount); ++i) - { + if (profChanged) { + std::vector things = + colorspace::getColorSpaceInfo(asICColorSpaceSig(_prof->getColorSpace())); + for (size_t i = 0; (i < things.size()) && (i < _profChannelCount); ++i) { _compUI[i]._component = things[i]; } - for ( guint i = 0; i < _profChannelCount; i++ ) { - gtk_label_set_text_with_mnemonic( GTK_LABEL(_compUI[i]._label), (i < things.size()) ? things[i].name.c_str() : ""); + for (guint i = 0; i < _profChannelCount; i++) { + gtk_label_set_text_with_mnemonic(GTK_LABEL(_compUI[i]._label), + (i < things.size()) ? things[i].name.c_str() : ""); - _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); - gtk_widget_set_tooltip_text( _compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : "" ); + _compUI[i]._slider->set_tooltip_text((i < things.size()) ? things[i].tip.c_str() : ""); + gtk_widget_set_tooltip_text(_compUI[i]._btn, (i < things.size()) ? things[i].tip.c_str() : ""); _compUI[i]._slider->setColors(SPColor(0.0, 0.0, 0.0).toRGBA32(0xff), - SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), - SPColor(1.0, 1.0, 1.0).toRGBA32(0xff) ); -/* - _compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( val, 0.0, _fooScales[i], step, page, page ) ); - g_signal_connect( G_OBJECT( _compUI[i]._adj ), "value_changed", G_CALLBACK( _adjustmentChanged ), _csel ); - - sp_color_slider_set_adjustment( SP_COLOR_SLIDER(_compUI[i]._slider), _compUI[i]._adj ); - gtk_spin_button_set_adjustment( GTK_SPIN_BUTTON(_compUI[i]._btn), _compUI[i]._adj ); - gtk_spin_button_set_digits( GTK_SPIN_BUTTON(_compUI[i]._btn), digits ); -*/ - gtk_widget_show( _compUI[i]._label ); + SPColor(0.5, 0.5, 0.5).toRGBA32(0xff), + SPColor(1.0, 1.0, 1.0).toRGBA32(0xff)); + /* + _compUI[i]._adj = GTK_ADJUSTMENT( gtk_adjustment_new( val, 0.0, _fooScales[i], + step, page, page ) ); + g_signal_connect( G_OBJECT( _compUI[i]._adj ), "value_changed", G_CALLBACK( + _adjustmentChanged ), _csel ); + + sp_color_slider_set_adjustment( SP_COLOR_SLIDER(_compUI[i]._slider), + _compUI[i]._adj ); + gtk_spin_button_set_adjustment( GTK_SPIN_BUTTON(_compUI[i]._btn), + _compUI[i]._adj ); + gtk_spin_button_set_digits( GTK_SPIN_BUTTON(_compUI[i]._btn), digits ); + */ + gtk_widget_show(_compUI[i]._label); _compUI[i]._slider->show(); - gtk_widget_show( _compUI[i]._btn ); - //gtk_adjustment_set_value( _compUI[i]._adj, 0.0 ); - //gtk_adjustment_set_value( _compUI[i]._adj, val ); + gtk_widget_show(_compUI[i]._btn); + // gtk_adjustment_set_value( _compUI[i]._adj, 0.0 ); + // gtk_adjustment_set_value( _compUI[i]._adj, val ); } - for ( size_t i = _profChannelCount; i < _compUI.size(); i++ ) { - gtk_widget_hide( _compUI[i]._label ); + for (size_t i = _profChannelCount; i < _compUI.size(); i++) { + gtk_widget_hide(_compUI[i]._label); _compUI[i]._slider->hide(); - gtk_widget_hide( _compUI[i]._btn ); + gtk_widget_hide(_compUI[i]._btn); } } - } else { + } + else { // Give up for now on named colors _prof = 0; } } #ifdef DEBUG_LCMS - g_message( "\\_________ %p::_setProfile()", this ); + g_message("\\_________ %p::_setProfile()", this); #endif // DEBUG_LCMS } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -void ColorICCSelectorImpl::_updateSliders( gint ignore ) +void ColorICCSelectorImpl::_updateSliders(gint ignore) { #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - if ( _color.color().icc ) - { - for ( guint i = 0; i < _profChannelCount; i++ ) { + if (_color.color().icc) { + for (guint i = 0; i < _profChannelCount; i++) { gdouble val = 0.0; - if ( _color.color().icc->colors.size() > i ) { - if ( _compUI[i]._component.scale == 256 ) { + if (_color.color().icc->colors.size() > i) { + if (_compUI[i]._component.scale == 256) { val = (_color.color().icc->colors[i] + 128.0) / static_cast(_compUI[i]._component.scale); - } else { + } + else { val = _color.color().icc->colors[i] / static_cast(_compUI[i]._component.scale); } } - gtk_adjustment_set_value( _compUI[i]._adj, val ); + gtk_adjustment_set_value(_compUI[i]._adj, val); } - if ( _prof ) { - if ( _prof->getTransfToSRGB8() ) { - for ( guint i = 0; i < _profChannelCount; i++ ) { - if ( static_cast(i) != ignore ) { - cmsUInt16Number* scratch = getScratch(); - cmsUInt16Number filler[4] = {0, 0, 0, 0}; - for ( guint j = 0; j < _profChannelCount; j++ ) { - filler[j] = 0x0ffff * ColorScales::getScaled( _compUI[j]._adj ); + if (_prof) { + if (_prof->getTransfToSRGB8()) { + for (guint i = 0; i < _profChannelCount; i++) { + if (static_cast(i) != ignore) { + cmsUInt16Number *scratch = getScratch(); + cmsUInt16Number filler[4] = { 0, 0, 0, 0 }; + for (guint j = 0; j < _profChannelCount; j++) { + filler[j] = 0x0ffff * ColorScales::getScaled(_compUI[j]._adj); } - - cmsUInt16Number* p = scratch; - for ( guint x = 0; x < 1024; x++ ) { - for ( guint j = 0; j < _profChannelCount; j++ ) { - if ( j == i ) { + + cmsUInt16Number *p = scratch; + for (guint x = 0; x < 1024; x++) { + for (guint j = 0; j < _profChannelCount; j++) { + if (j == i) { *p++ = x * 0x0ffff / 1024; - } else { + } + else { *p++ = filler[j]; } } } - + cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, scratch, _compUI[i]._map, 1024 ); + if (trans) { + cmsDoTransform(trans, scratch, _compUI[i]._map, 1024); _compUI[i]._slider->setMap(_compUI[i]._map); } } @@ -909,15 +905,15 @@ void ColorICCSelectorImpl::_updateSliders( gint ignore ) (void)ignore; #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - guint32 start = _color.color().toRGBA32( 0x00 ); - guint32 mid = _color.color().toRGBA32( 0x7f ); - guint32 end = _color.color().toRGBA32( 0xff ); + guint32 start = _color.color().toRGBA32(0x00); + guint32 mid = _color.color().toRGBA32(0x7f); + guint32 end = _color.color().toRGBA32(0xff); _slider->setColors(start, mid, end); } -void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, ColorICCSelectorImpl *cs ) +void ColorICCSelectorImpl::_adjustmentChanged(GtkAdjustment *adjustment, ColorICCSelectorImpl *cs) { // // TODO check this. It looks questionable: // // if a value is entered between 0 and 1 exclusive, normalize it to (int) 0..255 or 0..100 @@ -926,130 +922,132 @@ void ColorICCSelectorImpl::_adjustmentChanged( GtkAdjustment *adjustment, ColorI // } #ifdef DEBUG_LCMS - g_message( "/^^^^^^^^^ %p::_adjustmentChanged()", cs ); + g_message("/^^^^^^^^^ %p::_adjustmentChanged()", cs); #endif // DEBUG_LCMS - ColorICCSelector* iccSelector = cs->_owner; - if (iccSelector->_impl->_updating) { - return; - } + ColorICCSelector *iccSelector = cs->_owner; + if (iccSelector->_impl->_updating) { + return; + } - iccSelector->_impl->_updating = TRUE; + iccSelector->_impl->_updating = TRUE; - gint match = -1; + gint match = -1; - SPColor newColor( iccSelector->_impl->_color.color() ); - gfloat scaled = ColorScales::getScaled( iccSelector->_impl->_adj ); - if ( iccSelector->_impl->_adj == adjustment ) { + SPColor newColor(iccSelector->_impl->_color.color()); + gfloat scaled = ColorScales::getScaled(iccSelector->_impl->_adj); + if (iccSelector->_impl->_adj == adjustment) { #ifdef DEBUG_LCMS - g_message("ALPHA"); + g_message("ALPHA"); #endif // DEBUG_LCMS - } else { + } + else { #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - for ( size_t i = 0; i < iccSelector->_impl->_compUI.size(); i++ ) { - if ( iccSelector->_impl->_compUI[i]._adj == adjustment ) { - match = i; - break; - } - } - if ( match >= 0 ) { + for (size_t i = 0; i < iccSelector->_impl->_compUI.size(); i++) { + if (iccSelector->_impl->_compUI[i]._adj == adjustment) { + match = i; + break; + } + } + if (match >= 0) { #ifdef DEBUG_LCMS - g_message(" channel %d", match ); + g_message(" channel %d", match); #endif // DEBUG_LCMS - } + } - cmsUInt16Number tmp[4]; - for ( guint i = 0; i < 4; i++ ) { - tmp[i] = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ) * 0x0ffff; - } - guchar post[4] = {0,0,0,0}; + cmsUInt16Number tmp[4]; + for (guint i = 0; i < 4; i++) { + tmp[i] = ColorScales::getScaled(iccSelector->_impl->_compUI[i]._adj) * 0x0ffff; + } + guchar post[4] = { 0, 0, 0, 0 }; - cmsHTRANSFORM trans = iccSelector->_impl->_prof->getTransfToSRGB8(); - if ( trans ) { - cmsDoTransform( trans, tmp, post, 1 ); - } + cmsHTRANSFORM trans = iccSelector->_impl->_prof->getTransfToSRGB8(); + if (trans) { + cmsDoTransform(trans, tmp, post, 1); + } - SPColor other( SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255) ); - other.icc = new SVGICCColor(); - if ( iccSelector->_impl->_color.color().icc ) { - other.icc->colorProfile = iccSelector->_impl->_color.color().icc->colorProfile; - } + SPColor other(SP_RGBA32_U_COMPOSE(post[0], post[1], post[2], 255)); + other.icc = new SVGICCColor(); + if (iccSelector->_impl->_color.color().icc) { + other.icc->colorProfile = iccSelector->_impl->_color.color().icc->colorProfile; + } - guint32 prior = iccSelector->_impl->_color.color().toRGBA32(255); - guint32 newer = other.toRGBA32(255); + guint32 prior = iccSelector->_impl->_color.color().toRGBA32(255); + guint32 newer = other.toRGBA32(255); - if ( prior != newer ) { + if (prior != newer) { #ifdef DEBUG_LCMS - g_message("Transformed color from 0x%08x to 0x%08x", prior, newer ); - g_message(" ~~~~ FLIP"); + g_message("Transformed color from 0x%08x to 0x%08x", prior, newer); + g_message(" ~~~~ FLIP"); #endif // DEBUG_LCMS - newColor = other; - newColor.icc->colors.clear(); - for ( guint i = 0; i < iccSelector->_impl->_profChannelCount; i++ ) { - gdouble val = ColorScales::getScaled( iccSelector->_impl->_compUI[i]._adj ); - val *= iccSelector->_impl->_compUI[i]._component.scale; - if ( iccSelector->_impl->_compUI[i]._component.scale == 256 ) { - val -= 128; - } - newColor.icc->colors.push_back( val ); - } - } + newColor = other; + newColor.icc->colors.clear(); + for (guint i = 0; i < iccSelector->_impl->_profChannelCount; i++) { + gdouble val = ColorScales::getScaled(iccSelector->_impl->_compUI[i]._adj); + val *= iccSelector->_impl->_compUI[i]._component.scale; + if (iccSelector->_impl->_compUI[i]._component.scale == 256) { + val -= 128; + } + newColor.icc->colors.push_back(val); + } + } #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - } - iccSelector->_impl->_color.setColorAlpha(newColor, scaled); - //iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); - iccSelector->_impl->_updateSliders( match ); + } + iccSelector->_impl->_color.setColorAlpha(newColor, scaled); + // iccSelector->_updateInternals( newColor, scaled, iccSelector->_impl->_dragging ); + iccSelector->_impl->_updateSliders(match); - iccSelector->_impl->_updating = FALSE; + iccSelector->_impl->_updating = FALSE; #ifdef DEBUG_LCMS - g_message( "\\_________ %p::_adjustmentChanged()", cs ); + g_message("\\_________ %p::_adjustmentChanged()", cs); #endif // DEBUG_LCMS } void ColorICCSelectorImpl::_sliderGrabbed() { -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); -// if (!iccSelector->_dragging) { -// iccSelector->_dragging = TRUE; -// iccSelector->_grabbed(); -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_impl->_adj ), iccSelector->_dragging ); -// } + // ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); + // if (!iccSelector->_dragging) { + // iccSelector->_dragging = TRUE; + // iccSelector->_grabbed(); + // iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_impl->_adj ), + // iccSelector->_dragging ); + // } } void ColorICCSelectorImpl::_sliderReleased() { -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); -// if (iccSelector->_dragging) { -// iccSelector->_dragging = FALSE; -// iccSelector->_released(); -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); -// } + // ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); + // if (iccSelector->_dragging) { + // iccSelector->_dragging = FALSE; + // iccSelector->_released(); + // iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), + // iccSelector->_dragging ); + // } } #ifdef DEBUG_LCMS -void ColorICCSelectorImpl::_sliderChanged( SPColorSlider *slider, SPColorICCSelector *cs ) +void ColorICCSelectorImpl::_sliderChanged(SPColorSlider *slider, SPColorICCSelector *cs) #else void ColorICCSelectorImpl::_sliderChanged() #endif // DEBUG_LCMS { #ifdef DEBUG_LCMS - g_message("Changed %p and %p", slider, cs ); + g_message("Changed %p and %p", slider, cs); #endif // DEBUG_LCMS -// ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); + // ColorICCSelector* iccSelector = dynamic_cast(SP_COLOR_SELECTOR(cs)->base); -// iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), iccSelector->_dragging ); + // iccSelector->_updateInternals( iccSelector->_color, ColorScales::getScaled( iccSelector->_adj ), + // iccSelector->_dragging ); } -Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { +Gtk::Widget *ColorICCSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const +{ Gtk::Widget *w = Gtk::manage(new ColorICCSelector(color)); return w; } -Glib::ustring ColorICCSelectorFactory::modeName() const { - return gettext(ColorICCSelector::MODE_NAME); -} - +Glib::ustring ColorICCSelectorFactory::modeName() const { return gettext(ColorICCSelector::MODE_NAME); } } } } diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h index 6066586f5..37201de3b 100644 --- a/src/ui/widget/color-icc-selector.h +++ b/src/ui/widget/color-icc-selector.h @@ -2,7 +2,7 @@ #define SEEN_SP_COLOR_ICC_SELECTOR_H #ifdef HAVE_CONFIG_H -# include +#include #endif #include @@ -24,42 +24,41 @@ namespace Widget { class ColorICCSelectorImpl; class ColorICCSelector -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid #else : public Gtk::Table #endif -{ -public: - static const gchar* MODE_NAME; + { + public: + static const gchar *MODE_NAME; ColorICCSelector(SelectedColor &color); virtual ~ColorICCSelector(); virtual void init(); -protected: + protected: virtual void _colorChanged(); - void _recalcColor( gboolean changing ); + void _recalcColor(gboolean changing); -private: + private: friend class ColorICCSelectorImpl; // By default, disallow copy constructor and assignment operator - ColorICCSelector( const ColorICCSelector& obj ); - ColorICCSelector& operator=( const ColorICCSelector& obj ); + ColorICCSelector(const ColorICCSelector &obj); + ColorICCSelector &operator=(const ColorICCSelector &obj); ColorICCSelectorImpl *_impl; }; -class ColorICCSelectorFactory: public ColorSelectorFactory { -public: - Gtk::Widget* createWidget(SelectedColor &color) const; +class ColorICCSelectorFactory : public ColorSelectorFactory { + public: + Gtk::Widget *createWidget(SelectedColor &color) const; Glib::ustring modeName() const; }; - } } } diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 92b1d7086..0150f2ca2 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -16,7 +16,7 @@ #define noDUMP_CHANGE_INFO #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include "widgets/icon.h" @@ -56,7 +56,7 @@ namespace Widget { ColorNotebook::ColorNotebook(SelectedColor &color) -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() #else : Gtk::Table(2, 3, false) @@ -87,12 +87,10 @@ ColorNotebook::ColorNotebook(SelectedColor &color) ColorNotebook::~ColorNotebook() { - if ( _buttons ) - { - delete [] _buttons; + if (_buttons) { + delete[] _buttons; _buttons = 0; } - } ColorNotebook::Page::Page(Inkscape::UI::ColorSelectorFactory *selector_factory, bool enabled_full) @@ -112,57 +110,57 @@ void ColorNotebook::_initUI() notebook->set_show_tabs(false); _book = GTK_WIDGET(notebook->gobj()); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) _buttonbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 2); gtk_box_set_homogeneous(GTK_BOX(_buttonbox), TRUE); #else - _buttonbox = gtk_hbox_new (TRUE, 2); + _buttonbox = gtk_hbox_new(TRUE, 2); #endif - gtk_widget_show (_buttonbox); + gtk_widget_show(_buttonbox); _buttons = new GtkWidget *[_available_pages.size()]; - for (int i = 0; static_cast(i) < _available_pages.size(); i++ ) - { + for (int i = 0; static_cast(i) < _available_pages.size(); i++) { _addPage(_available_pages[i]); } - sp_set_font_size_smaller (_buttonbox); + sp_set_font_size_smaller(_buttonbox); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(_buttonbox, XPAD); gtk_widget_set_margin_end(_buttonbox, XPAD); - #else + #else gtk_widget_set_margin_left(_buttonbox, XPAD); gtk_widget_set_margin_right(_buttonbox, XPAD); - #endif + #endif gtk_widget_set_margin_top(_buttonbox, YPAD); gtk_widget_set_margin_bottom(_buttonbox, YPAD); gtk_widget_set_hexpand(_buttonbox, TRUE); gtk_widget_set_valign(_buttonbox, GTK_ALIGN_CENTER); attach(*Glib::wrap(_buttonbox), 0, row, 2, 1); #else - attach(*Glib::wrap(_buttonbox), 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, static_cast(0), XPAD, YPAD); + attach(*Glib::wrap(_buttonbox), 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, static_cast(0), + XPAD, YPAD); #endif row++; -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) - gtk_widget_set_margin_start(_book, XPAD*2); - gtk_widget_set_margin_end(_book, XPAD*2); - #else - gtk_widget_set_margin_left(_book, XPAD*2); - gtk_widget_set_margin_right(_book, XPAD*2); - #endif +#if GTK_CHECK_VERSION(3, 0, 0) +#if GTK_CHECK_VERSION(3, 12, 0) + gtk_widget_set_margin_start(_book, XPAD * 2); + gtk_widget_set_margin_end(_book, XPAD * 2); +#else + gtk_widget_set_margin_left(_book, XPAD * 2); + gtk_widget_set_margin_right(_book, XPAD * 2); +#endif gtk_widget_set_margin_top(_book, YPAD); gtk_widget_set_margin_bottom(_book, YPAD); gtk_widget_set_hexpand(_book, TRUE); gtk_widget_set_vexpand(_book, TRUE); attach(*notebook, 0, row, 2, 1); #else - attach(*notebook, 0, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, XPAD * 2, YPAD); + attach(*notebook, 0, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL, XPAD * 2, YPAD); #endif // restore the last active page @@ -170,72 +168,72 @@ void ColorNotebook::_initUI() _setCurrentPage(prefs->getInt("/colorselector/page", 0)); row++; -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) GtkWidget *rgbabox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); #else - GtkWidget *rgbabox = gtk_hbox_new (FALSE, 0); + GtkWidget *rgbabox = gtk_hbox_new(FALSE, 0); #endif #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) /* Create color management icons */ - _box_colormanaged = gtk_event_box_new (); - GtkWidget *colormanaged = gtk_image_new_from_icon_name ("color-management-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_colormanaged), colormanaged); - gtk_widget_set_tooltip_text (_box_colormanaged, _("Color Managed")); - gtk_widget_set_sensitive (_box_colormanaged, false); + _box_colormanaged = gtk_event_box_new(); + GtkWidget *colormanaged = gtk_image_new_from_icon_name("color-management-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add(GTK_CONTAINER(_box_colormanaged), colormanaged); + gtk_widget_set_tooltip_text(_box_colormanaged, _("Color Managed")); + gtk_widget_set_sensitive(_box_colormanaged, false); gtk_box_pack_start(GTK_BOX(rgbabox), _box_colormanaged, FALSE, FALSE, 2); - _box_outofgamut = gtk_event_box_new (); - GtkWidget *outofgamut = gtk_image_new_from_icon_name ("out-of-gamut-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_outofgamut), outofgamut); - gtk_widget_set_tooltip_text (_box_outofgamut, _("Out of gamut!")); - gtk_widget_set_sensitive (_box_outofgamut, false); + _box_outofgamut = gtk_event_box_new(); + GtkWidget *outofgamut = gtk_image_new_from_icon_name("out-of-gamut-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add(GTK_CONTAINER(_box_outofgamut), outofgamut); + gtk_widget_set_tooltip_text(_box_outofgamut, _("Out of gamut!")); + gtk_widget_set_sensitive(_box_outofgamut, false); gtk_box_pack_start(GTK_BOX(rgbabox), _box_outofgamut, FALSE, FALSE, 2); - _box_toomuchink = gtk_event_box_new (); - GtkWidget *toomuchink = gtk_image_new_from_icon_name ("too-much-ink-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add (GTK_CONTAINER (_box_toomuchink), toomuchink); - gtk_widget_set_tooltip_text (_box_toomuchink, _("Too much ink!")); - gtk_widget_set_sensitive (_box_toomuchink, false); + _box_toomuchink = gtk_event_box_new(); + GtkWidget *toomuchink = gtk_image_new_from_icon_name("too-much-ink-icon", GTK_ICON_SIZE_SMALL_TOOLBAR); + gtk_container_add(GTK_CONTAINER(_box_toomuchink), toomuchink); + gtk_widget_set_tooltip_text(_box_toomuchink, _("Too much ink!")); + gtk_widget_set_sensitive(_box_toomuchink, false); gtk_box_pack_start(GTK_BOX(rgbabox), _box_toomuchink, FALSE, FALSE, 2); -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) /* Color picker */ - GtkWidget *picker = gtk_image_new_from_icon_name ("color-picker", GTK_ICON_SIZE_SMALL_TOOLBAR); - _btn_picker = gtk_button_new (); + GtkWidget *picker = gtk_image_new_from_icon_name("color-picker", GTK_ICON_SIZE_SMALL_TOOLBAR); + _btn_picker = gtk_button_new(); gtk_button_set_relief(GTK_BUTTON(_btn_picker), GTK_RELIEF_NONE); - gtk_container_add (GTK_CONTAINER (_btn_picker), picker); - gtk_widget_set_tooltip_text (_btn_picker, _("Pick colors from image")); + gtk_container_add(GTK_CONTAINER(_btn_picker), picker); + gtk_widget_set_tooltip_text(_btn_picker, _("Pick colors from image")); gtk_box_pack_start(GTK_BOX(rgbabox), _btn_picker, FALSE, FALSE, 2); g_signal_connect(G_OBJECT(_btn_picker), "clicked", G_CALLBACK(ColorNotebook::_onPickerClicked), this); /* Create RGBA entry and color preview */ - _rgbal = gtk_label_new_with_mnemonic (_("RGBA_:")); - gtk_misc_set_alignment (GTK_MISC (_rgbal), 1.0, 0.5); + _rgbal = gtk_label_new_with_mnemonic(_("RGBA_:")); + gtk_misc_set_alignment(GTK_MISC(_rgbal), 1.0, 0.5); gtk_box_pack_start(GTK_BOX(rgbabox), _rgbal, TRUE, TRUE, 2); - ColorEntry* rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); - sp_dialog_defocus_on_enter (GTK_WIDGET(rgba_entry->gobj())); + ColorEntry *rgba_entry = Gtk::manage(new ColorEntry(_selected_color)); + sp_dialog_defocus_on_enter(GTK_WIDGET(rgba_entry->gobj())); gtk_box_pack_start(GTK_BOX(rgbabox), GTK_WIDGET(rgba_entry->gobj()), FALSE, FALSE, 0); - gtk_label_set_mnemonic_widget (GTK_LABEL(_rgbal), GTK_WIDGET(rgba_entry->gobj())); + gtk_label_set_mnemonic_widget(GTK_LABEL(_rgbal), GTK_WIDGET(rgba_entry->gobj())); - sp_set_font_size_smaller (rgbabox); - gtk_widget_show_all (rgbabox); + sp_set_font_size_smaller(rgbabox); + gtk_widget_show_all(rgbabox); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) - //the "too much ink" icon is initially hidden + // the "too much ink" icon is initially hidden gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) gtk_widget_set_margin_start(rgbabox, XPAD); gtk_widget_set_margin_end(rgbabox, XPAD); - #else + #else gtk_widget_set_margin_left(rgbabox, XPAD); gtk_widget_set_margin_right(rgbabox, XPAD); - #endif + #endif gtk_widget_set_margin_top(rgbabox, YPAD); gtk_widget_set_margin_bottom(rgbabox, YPAD); attach(*Glib::wrap(rgbabox), 0, row, 2, 1); @@ -244,13 +242,12 @@ void ColorNotebook::_initUI() #endif #ifdef SPCS_PREVIEW - _p = sp_color_preview_new (0xffffffff); - gtk_widget_show (_p); + _p = sp_color_preview_new(0xffffffff); + gtk_widget_show(_p); attach(*Glib::wrap(_p), 2, 3, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif - g_signal_connect(G_OBJECT (_book), "switch-page", - G_CALLBACK (ColorNotebook::_onPageSwitched), this); + g_signal_connect(G_OBJECT(_book), "switch-page", G_CALLBACK(ColorNotebook::_onPageSwitched), this); } void ColorNotebook::_onPickerClicked(GtkWidget * /*widget*/, ColorNotebook * /*colorbook*/) @@ -261,27 +258,22 @@ void ColorNotebook::_onPickerClicked(GtkWidget * /*widget*/, ColorNotebook * /*c Inkscape::UI::Tools::sp_toggle_dropper(SP_ACTIVE_DESKTOP); } -void ColorNotebook::_onButtonClicked(GtkWidget *widget, ColorNotebook *nb) +void ColorNotebook::_onButtonClicked(GtkWidget *widget, ColorNotebook *nb) { - if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) { + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { return; } - for(gint i = 0; i < gtk_notebook_get_n_pages (GTK_NOTEBOOK (nb->_book)); i++) { + for (gint i = 0; i < gtk_notebook_get_n_pages(GTK_NOTEBOOK(nb->_book)); i++) { if (nb->_buttons[i] == widget) { - gtk_notebook_set_current_page (GTK_NOTEBOOK (nb->_book), i); + gtk_notebook_set_current_page(GTK_NOTEBOOK(nb->_book), i); } } } -void ColorNotebook::_onSelectedColorChanged() { - _updateICCButtons(); -} +void ColorNotebook::_onSelectedColorChanged() { _updateICCButtons(); } -void ColorNotebook::_onPageSwitched(GtkNotebook *notebook, - GtkWidget *page, - guint page_num, - ColorNotebook *colorbook) +void ColorNotebook::_onPageSwitched(GtkNotebook *notebook, GtkWidget *page, guint page_num, ColorNotebook *colorbook) { if (colorbook) { // remember the page we switched to @@ -297,41 +289,45 @@ void ColorNotebook::_updateICCButtons() SPColor color = _selected_color.color(); gfloat alpha = _selected_color.alpha(); - g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); + g_return_if_fail((0.0 <= alpha) && (alpha <= 1.0)); #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) /* update color management icon*/ - gtk_widget_set_sensitive (_box_colormanaged, color.icc != NULL); + gtk_widget_set_sensitive(_box_colormanaged, color.icc != NULL); /* update out-of-gamut icon */ - gtk_widget_set_sensitive (_box_outofgamut, false); - if (color.icc){ - Inkscape::ColorProfile* target_profile = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( target_profile ) + gtk_widget_set_sensitive(_box_outofgamut, false); + if (color.icc) { + Inkscape::ColorProfile *target_profile = + SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); + if (target_profile) gtk_widget_set_sensitive(_box_outofgamut, target_profile->GamutCheck(color)); } /* update too-much-ink icon */ - gtk_widget_set_sensitive (_box_toomuchink, false); - if (color.icc){ - Inkscape::ColorProfile* prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); - if ( prof && CMSSystem::isPrintColorSpace(prof) ) { + gtk_widget_set_sensitive(_box_toomuchink, false); + if (color.icc) { + Inkscape::ColorProfile *prof = SP_ACTIVE_DOCUMENT->profileManager->find(color.icc->colorProfile.c_str()); + if (prof && CMSSystem::isPrintColorSpace(prof)) { gtk_widget_show(GTK_WIDGET(_box_toomuchink)); double ink_sum = 0; - for (unsigned int i=0; icolors.size(); i++){ + for (unsigned int i = 0; i < color.icc->colors.size(); i++) { ink_sum += color.icc->colors[i]; } - /* Some literature states that when the sum of paint values exceed 320%, it is considered to be a satured color, - which means the paper can get too wet due to an excessive ammount of ink. This may lead to several issues + /* Some literature states that when the sum of paint values exceed 320%, it is considered to be a satured + color, + which means the paper can get too wet due to an excessive ammount of ink. This may lead to several + issues such as misalignment and poor quality of printing in general.*/ - if ( ink_sum > 3.2 ) - gtk_widget_set_sensitive (_box_toomuchink, true); - } else { + if (ink_sum > 3.2) + gtk_widget_set_sensitive(_box_toomuchink, true); + } + else { gtk_widget_hide(GTK_WIDGET(_box_toomuchink)); } } -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) } void ColorNotebook::_setCurrentPage(int i) @@ -343,7 +339,8 @@ void ColorNotebook::_setCurrentPage(int i) } } -void ColorNotebook::_addPage(Page& page) { +void ColorNotebook::_addPage(Page &page) +{ Gtk::Widget *selector_widget; selector_widget = page.selector_factory->createWidget(_selected_color); @@ -351,22 +348,21 @@ void ColorNotebook::_addPage(Page& page) { selector_widget->show(); Glib::ustring mode_name = page.selector_factory->modeName(); - Gtk::Widget* tab_label = Gtk::manage(new Gtk::Label(mode_name)); - gint page_num = gtk_notebook_append_page( GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); + Gtk::Widget *tab_label = Gtk::manage(new Gtk::Label(mode_name)); + gint page_num = gtk_notebook_append_page(GTK_NOTEBOOK(_book), selector_widget->gobj(), tab_label->gobj()); _buttons[page_num] = gtk_radio_button_new_with_label(NULL, mode_name.c_str()); gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(_buttons[page_num]), FALSE); if (page_num > 0) { - GSList *group = gtk_radio_button_get_group (GTK_RADIO_BUTTON(_buttons[0])); - gtk_radio_button_set_group (GTK_RADIO_BUTTON(_buttons[page_num]), group); + GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(_buttons[0])); + gtk_radio_button_set_group(GTK_RADIO_BUTTON(_buttons[page_num]), group); } - gtk_widget_show (_buttons[page_num]); - gtk_box_pack_start (GTK_BOX (_buttonbox), _buttons[page_num], TRUE, TRUE, 0); + gtk_widget_show(_buttons[page_num]); + gtk_box_pack_start(GTK_BOX(_buttonbox), _buttons[page_num], TRUE, TRUE, 0); - g_signal_connect (G_OBJECT (_buttons[page_num]), "clicked", G_CALLBACK (_onButtonClicked), this); + g_signal_connect(G_OBJECT(_buttons[page_num]), "clicked", G_CALLBACK(_onButtonClicked), this); } } - } } } diff --git a/src/ui/widget/color-notebook.h b/src/ui/widget/color-notebook.h index 9909aa39c..d28028c72 100644 --- a/src/ui/widget/color-notebook.h +++ b/src/ui/widget/color-notebook.h @@ -15,7 +15,7 @@ #define SEEN_SP_COLOR_NOTEBOOK_H #ifdef HAVE_CONFIG_H -# include +#include #endif #include @@ -35,7 +35,7 @@ namespace UI { namespace Widget { class ColorNotebook -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid #else : public Gtk::Table @@ -54,12 +54,11 @@ protected: }; virtual void _initUI(); - void _addPage(Page& page); + void _addPage(Page &page); static void _onButtonClicked(GtkWidget *widget, ColorNotebook *colorbook); static void _onPickerClicked(GtkWidget *widget, ColorNotebook *colorbook); - static void _onPageSwitched(GtkNotebook *notebook, GtkWidget *page, - guint page_num, ColorNotebook *colorbook); + static void _onPageSwitched(GtkNotebook *notebook, GtkWidget *page, guint page_num, ColorNotebook *colorbook); virtual void _onSelectedColorChanged(); void _updateICCButtons(); @@ -73,17 +72,16 @@ protected: GtkWidget *_rgbal; /* RGBA entry */ #if defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) GtkWidget *_box_outofgamut, *_box_colormanaged, *_box_toomuchink; -#endif //defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +#endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) GtkWidget *_btn_picker; GtkWidget *_p; /* Color preview */ boost::ptr_vector _available_pages; private: // By default, disallow copy constructor and assignment operator - ColorNotebook( const ColorNotebook& obj ); - ColorNotebook& operator=( const ColorNotebook& obj ); + ColorNotebook(const ColorNotebook &obj); + ColorNotebook &operator=(const ColorNotebook &obj); }; - } } } diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 9f18b2d96..5fa5af902 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -3,7 +3,7 @@ */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include @@ -41,26 +41,20 @@ namespace UI { namespace Widget { -static const gchar * sp_color_scales_hue_map (); +static const gchar *sp_color_scales_hue_map(); -const gchar* ColorScales::SUBMODE_NAMES[] = { - N_("None"), - N_("RGB"), - N_("HSL"), - N_("CMYK") -}; +const gchar *ColorScales::SUBMODE_NAMES[] = { N_("None"), N_("RGB"), N_("HSL"), N_("CMYK") }; ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode) -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() #else : Gtk::Table(5, 3, false) #endif , _color(color) - , - _rangeLimit( 255.0 ), - _updating( FALSE ), - _dragging( FALSE ) + , _rangeLimit(255.0) + , _updating(FALSE) + , _dragging(FALSE) { for (gint i = 0; i < 5; i++) { _l[i] = 0; @@ -73,7 +67,6 @@ ColorScales::ColorScales(SelectedColor &color, SPColorScalesMode mode) _color.signal_changed.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged)); _color.signal_dragged.connect(sigc::mem_fun(this, &ColorScales::_onColorChanged)); - } ColorScales::~ColorScales() @@ -88,92 +81,92 @@ ColorScales::~ColorScales() void ColorScales::_initUI(SPColorScalesMode mode) { - gint i; + gint i; - _updating = FALSE; - _dragging = FALSE; + _updating = FALSE; + _dragging = FALSE; - GtkWidget *t = GTK_WIDGET(gobj()); + GtkWidget *t = GTK_WIDGET(gobj()); - /* Create components */ - for (i = 0; i < static_cast< gint > (G_N_ELEMENTS(_a)) ; i++) { - /* Label */ - _l[i] = gtk_label_new(""); - gtk_misc_set_alignment (GTK_MISC (_l[i]), 1.0, 0.5); - gtk_widget_show (_l[i]); + /* Create components */ + for (i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++) { + /* Label */ + _l[i] = gtk_label_new(""); + gtk_misc_set_alignment(GTK_MISC(_l[i]), 1.0, 0.5); + gtk_widget_show(_l[i]); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) - gtk_widget_set_margin_start(_l[i], XPAD); - gtk_widget_set_margin_end(_l[i], XPAD); +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) + gtk_widget_set_margin_start(_l[i], XPAD); + gtk_widget_set_margin_end(_l[i], XPAD); #else - gtk_widget_set_margin_left(_l[i], XPAD); - gtk_widget_set_margin_right(_l[i], XPAD); + gtk_widget_set_margin_left(_l[i], XPAD); + gtk_widget_set_margin_right(_l[i], XPAD); #endif - gtk_widget_set_margin_top(_l[i], YPAD); - gtk_widget_set_margin_bottom(_l[i], YPAD); - gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1); + gtk_widget_set_margin_top(_l[i], YPAD); + gtk_widget_set_margin_bottom(_l[i], YPAD); + gtk_grid_attach(GTK_GRID(t), _l[i], 0, i, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); + gtk_table_attach(GTK_TABLE(t), _l[i], 0, 1, i, i + 1, GTK_FILL, GTK_FILL, XPAD, YPAD); #endif - /* Adjustment */ - _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); - /* Slider */ - _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); - _s[i]->show(); + /* Adjustment */ + _a[i] = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, 0.0, _rangeLimit, 1.0, 10.0, 10.0)); + /* Slider */ + _s[i] = Gtk::manage(new Inkscape::UI::Widget::ColorSlider(Glib::wrap(_a[i], true))); + _s[i]->show(); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) - _s[i]->set_margin_start(XPAD); - _s[i]->set_margin_end(XPAD); +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) + _s[i]->set_margin_start(XPAD); + _s[i]->set_margin_end(XPAD); #else - _s[i]->set_margin_left(XPAD); - _s[i]->set_margin_right(XPAD); + _s[i]->set_margin_left(XPAD); + _s[i]->set_margin_right(XPAD); #endif - _s[i]->set_margin_top(YPAD); - _s[i]->set_margin_bottom(YPAD); - _s[i]->set_hexpand(true); - gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); + _s[i]->set_margin_top(YPAD); + _s[i]->set_margin_bottom(YPAD); + _s[i]->set_hexpand(true); + gtk_grid_attach(GTK_GRID(t), _s[i]->gobj(), 1, i, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), GTK_FILL, XPAD, YPAD); + gtk_table_attach(GTK_TABLE(t), _s[i]->gobj(), 1, 2, i, i + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), + GTK_FILL, XPAD, YPAD); #endif - /* Spinbutton */ - _b[i] = gtk_spin_button_new (GTK_ADJUSTMENT (_a[i]), 1.0, 0); - sp_dialog_defocus_on_enter (_b[i]); - gtk_label_set_mnemonic_widget (GTK_LABEL(_l[i]), _b[i]); - gtk_widget_show (_b[i]); + /* Spinbutton */ + _b[i] = gtk_spin_button_new(GTK_ADJUSTMENT(_a[i]), 1.0, 0); + sp_dialog_defocus_on_enter(_b[i]); + gtk_label_set_mnemonic_widget(GTK_LABEL(_l[i]), _b[i]); + gtk_widget_show(_b[i]); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) - gtk_widget_set_margin_start(_b[i], XPAD); - gtk_widget_set_margin_end(_b[i], XPAD); +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) + gtk_widget_set_margin_start(_b[i], XPAD); + gtk_widget_set_margin_end(_b[i], XPAD); #else - gtk_widget_set_margin_left(_b[i], XPAD); - gtk_widget_set_margin_right(_b[i], XPAD); + gtk_widget_set_margin_left(_b[i], XPAD); + gtk_widget_set_margin_right(_b[i], XPAD); #endif - gtk_widget_set_margin_top(_b[i], YPAD); - gtk_widget_set_margin_bottom(_b[i], YPAD); - gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER); - gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER); - gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1); + gtk_widget_set_margin_top(_b[i], YPAD); + gtk_widget_set_margin_bottom(_b[i], YPAD); + gtk_widget_set_halign(_b[i], GTK_ALIGN_CENTER); + gtk_widget_set_valign(_b[i], GTK_ALIGN_CENTER); + gtk_grid_attach(GTK_GRID(t), _b[i], 2, i, 1, 1); #else - gtk_table_attach (GTK_TABLE (t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); + gtk_table_attach(GTK_TABLE(t), _b[i], 2, 3, i, i + 1, (GtkAttachOptions)0, (GtkAttachOptions)0, XPAD, YPAD); #endif - /* Attach channel value to adjustment */ - g_object_set_data (G_OBJECT (_a[i]), "channel", GINT_TO_POINTER (i)); - /* Signals */ - g_signal_connect (G_OBJECT (_a[i]), "value_changed", - G_CALLBACK (_adjustmentAnyChanged), this); - _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); - _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); - _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); - } - - /* Initial mode is none, so it works */ - setMode(mode); + /* Attach channel value to adjustment */ + g_object_set_data(G_OBJECT(_a[i]), "channel", GINT_TO_POINTER(i)); + /* Signals */ + g_signal_connect(G_OBJECT(_a[i]), "value_changed", G_CALLBACK(_adjustmentAnyChanged), this); + _s[i]->signal_grabbed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyGrabbed)); + _s[i]->signal_released.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyReleased)); + _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); + } + + /* Initial mode is none, so it works */ + setMode(mode); } void ColorScales::_recalcColor() @@ -183,25 +176,24 @@ void ColorScales::_recalcColor() gfloat c[5]; switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - case SP_COLOR_SCALES_MODE_HSV: - _getRgbaFloatv(c); - color.set( c[0], c[1], c[2] ); - alpha = c[3]; - break; - case SP_COLOR_SCALES_MODE_CMYK: - { - _getCmykaFloatv( c ); - - float rgb[3]; - sp_color_cmyk_to_rgb_floatv( rgb, c[0], c[1], c[2], c[3] ); - color.set( rgb[0], rgb[1], rgb[2] ); - alpha = c[4]; - break; - } - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; + case SP_COLOR_SCALES_MODE_RGB: + case SP_COLOR_SCALES_MODE_HSV: + _getRgbaFloatv(c); + color.set(c[0], c[1], c[2]); + alpha = c[3]; + break; + case SP_COLOR_SCALES_MODE_CMYK: { + _getCmykaFloatv(c); + + float rgb[3]; + sp_color_cmyk_to_rgb_floatv(rgb, c[0], c[1], c[2], c[3]); + color.set(rgb[0], rgb[1], rgb[2]); + alpha = c[4]; + break; + } + default: + g_warning("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; } _color.preserveICC(); @@ -209,25 +201,25 @@ void ColorScales::_recalcColor() } /* Helpers for setting color value */ -gfloat ColorScales::getScaled( const GtkAdjustment *a ) +gfloat ColorScales::getScaled(const GtkAdjustment *a) { - gfloat val = gtk_adjustment_get_value (const_cast(a)) - / gtk_adjustment_get_upper (const_cast(a)); + gfloat val = gtk_adjustment_get_value(const_cast(a)) / + gtk_adjustment_get_upper(const_cast(a)); return val; } -void ColorScales::setScaled( GtkAdjustment *a, gfloat v ) +void ColorScales::setScaled(GtkAdjustment *a, gfloat v) { - gfloat val = v * gtk_adjustment_get_upper (a); - gtk_adjustment_set_value( a, val ); + gfloat val = v * gtk_adjustment_get_upper(a); + gtk_adjustment_set_value(a, val); } -void ColorScales::_setRangeLimit( gdouble upper ) +void ColorScales::_setRangeLimit(gdouble upper) { _rangeLimit = upper; - for ( gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++ ) { - gtk_adjustment_set_upper (_a[i], upper); - gtk_adjustment_changed( _a[i] ); + for (gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++) { + gtk_adjustment_set_upper(_a[i], upper); + gtk_adjustment_changed(_a[i]); } } @@ -237,231 +229,230 @@ void ColorScales::_onColorChanged() return; } #ifdef DUMP_CHANGE_INFO - g_message("ColorScales::_onColorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], _color.alpha() ); + g_message("ColorScales::_onColorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], + _color.color().v.c[1], _color.color().v.c[2], _color.alpha()); #endif gfloat tmp[3]; - gfloat c[5] = {0.0, 0.0, 0.0, 0.0}; + gfloat c[5] = { 0.0, 0.0, 0.0, 0.0 }; SPColor color = _color.color(); switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - sp_color_get_rgb_floatv( &color, c ); - c[3] = _color.alpha(); - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_get_rgb_floatv( &color, tmp ); - sp_color_rgb_to_hsl_floatv (c, tmp[0], tmp[1], tmp[2]); - c[3] = _color.alpha(); - c[4] = 0.0; - break; - case SP_COLOR_SCALES_MODE_CMYK: - sp_color_get_cmyk_floatv( &color, c ); - c[4] = _color.alpha(); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); - break; + case SP_COLOR_SCALES_MODE_RGB: + sp_color_get_rgb_floatv(&color, c); + c[3] = _color.alpha(); + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_get_rgb_floatv(&color, tmp); + sp_color_rgb_to_hsl_floatv(c, tmp[0], tmp[1], tmp[2]); + c[3] = _color.alpha(); + c[4] = 0.0; + break; + case SP_COLOR_SCALES_MODE_CMYK: + sp_color_get_cmyk_floatv(&color, c); + c[4] = _color.alpha(); + break; + default: + g_warning("file %s: line %d: Illegal color selector mode %d", __FILE__, __LINE__, _mode); + break; } _updating = TRUE; - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], c[3] ); - setScaled( _a[4], c[4] ); - _updateSliders( CSC_CHANNELS_ALL ); + setScaled(_a[0], c[0]); + setScaled(_a[1], c[1]); + setScaled(_a[2], c[2]); + setScaled(_a[3], c[3]); + setScaled(_a[4], c[4]); + _updateSliders(CSC_CHANNELS_ALL); _updating = FALSE; } -void ColorScales::_getRgbaFloatv( gfloat *rgba ) +void ColorScales::_getRgbaFloatv(gfloat *rgba) { - g_return_if_fail (rgba != NULL); - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - rgba[0] = getScaled(_a[0]); - rgba[1] = getScaled(_a[1]); - rgba[2] = getScaled(_a[2]); - rgba[3] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_hsl_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - rgba[3] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_CMYK: - sp_color_cmyk_to_rgb_floatv (rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - rgba[3] = getScaled(_a[4]); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } + g_return_if_fail(rgba != NULL); + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + rgba[0] = getScaled(_a[0]); + rgba[1] = getScaled(_a[1]); + rgba[2] = getScaled(_a[2]); + rgba[3] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_hsl_to_rgb_floatv(rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + rgba[3] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_CMYK: + sp_color_cmyk_to_rgb_floatv(rgba, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + rgba[3] = getScaled(_a[4]); + break; + default: + g_warning("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } } -void ColorScales::_getCmykaFloatv( gfloat *cmyka ) +void ColorScales::_getCmykaFloatv(gfloat *cmyka) { - gfloat rgb[3]; - - g_return_if_fail (cmyka != NULL); - - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - sp_color_rgb_to_cmyk_floatv (cmyka, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - cmyka[4] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_HSV: - sp_color_hsl_to_rgb_floatv (rgb, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - sp_color_rgb_to_cmyk_floatv (cmyka, rgb[0], rgb[1], rgb[2]); - cmyka[4] = getScaled(_a[3]); - break; - case SP_COLOR_SCALES_MODE_CMYK: - cmyka[0] = getScaled(_a[0]); - cmyka[1] = getScaled(_a[1]); - cmyka[2] = getScaled(_a[2]); - cmyka[3] = getScaled(_a[3]); - cmyka[4] = getScaled(_a[4]); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } + gfloat rgb[3]; + + g_return_if_fail(cmyka != NULL); + + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + sp_color_rgb_to_cmyk_floatv(cmyka, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + cmyka[4] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_HSV: + sp_color_hsl_to_rgb_floatv(rgb, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + sp_color_rgb_to_cmyk_floatv(cmyka, rgb[0], rgb[1], rgb[2]); + cmyka[4] = getScaled(_a[3]); + break; + case SP_COLOR_SCALES_MODE_CMYK: + cmyka[0] = getScaled(_a[0]); + cmyka[1] = getScaled(_a[1]); + cmyka[2] = getScaled(_a[2]); + cmyka[3] = getScaled(_a[3]); + cmyka[4] = getScaled(_a[4]); + break; + default: + g_warning("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } } guint32 ColorScales::_getRgba32() { - gfloat c[4]; - guint32 rgba; + gfloat c[4]; + guint32 rgba; - _getRgbaFloatv(c); + _getRgbaFloatv(c); - rgba = SP_RGBA32_F_COMPOSE (c[0], c[1], c[2], c[3]); + rgba = SP_RGBA32_F_COMPOSE(c[0], c[1], c[2], c[3]); - return rgba; + return rgba; } void ColorScales::setMode(SPColorScalesMode mode) { - gfloat rgba[4]; - gfloat c[4]; - - if (_mode == mode) return; - - if ((_mode == SP_COLOR_SCALES_MODE_RGB) || - (_mode == SP_COLOR_SCALES_MODE_HSV) || - (_mode == SP_COLOR_SCALES_MODE_CMYK)) { - _getRgbaFloatv(rgba); - } else { - rgba[0] = rgba[1] = rgba[2] = rgba[3] = 1.0; - } - - _mode = mode; - - switch (mode) { - case SP_COLOR_SCALES_MODE_RGB: - _setRangeLimit(255.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_R:")); - _s[0]->set_tooltip_text(_("Red")); - gtk_widget_set_tooltip_text (_b[0], _("Red")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_G:")); - _s[1]->set_tooltip_text(_("Green")); - gtk_widget_set_tooltip_text (_b[1], _("Green")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_B:")); - _s[2]->set_tooltip_text(_("Blue")); - gtk_widget_set_tooltip_text (_b[2], _("Blue")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - _s[3]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->setMap(NULL); - gtk_widget_hide (_l[4]); - _s[4]->hide(); - gtk_widget_hide (_b[4]); - _updating = TRUE; - setScaled( _a[0], rgba[0] ); - setScaled( _a[1], rgba[1] ); - setScaled( _a[2], rgba[2] ); - setScaled( _a[3], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - case SP_COLOR_SCALES_MODE_HSV: - _setRangeLimit(255.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_H:")); - _s[0]->set_tooltip_text(_("Hue")); - gtk_widget_set_tooltip_text (_b[0], _("Hue")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_S:")); - _s[1]->set_tooltip_text(_("Saturation")); - gtk_widget_set_tooltip_text (_b[1], _("Saturation")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_L:")); - _s[2]->set_tooltip_text(_("Lightness")); - gtk_widget_set_tooltip_text (_b[2], _("Lightness")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_A:")); - _s[3]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[3], _("Alpha (opacity)")); - _s[0]->setMap((guchar *)(sp_color_scales_hue_map())); - gtk_widget_hide (_l[4]); - _s[4]->hide(); - gtk_widget_hide (_b[4]); - _updating = TRUE; - c[0] = 0.0; - sp_color_rgb_to_hsl_floatv (c, rgba[0], rgba[1], rgba[2]); - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - case SP_COLOR_SCALES_MODE_CMYK: - _setRangeLimit(100.0); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[0]), _("_C:")); - _s[0]->set_tooltip_text(_("Cyan")); - gtk_widget_set_tooltip_text (_b[0], _("Cyan")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[1]), _("_M:")); - _s[1]->set_tooltip_text(_("Magenta")); - gtk_widget_set_tooltip_text (_b[1], _("Magenta")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[2]), _("_Y:")); - _s[2]->set_tooltip_text(_("Yellow")); - gtk_widget_set_tooltip_text (_b[2], _("Yellow")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[3]), _("_K:")); - _s[3]->set_tooltip_text(_("Black")); - gtk_widget_set_tooltip_text (_b[3], _("Black")); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (_l[4]), _("_A:")); - _s[4]->set_tooltip_text(_("Alpha (opacity)")); - gtk_widget_set_tooltip_text (_b[4], _("Alpha (opacity)")); - _s[0]->setMap(NULL); - gtk_widget_show (_l[4]); - _s[4]->show(); - gtk_widget_show (_b[4]); - _updating = TRUE; - - sp_color_rgb_to_cmyk_floatv (c, rgba[0], rgba[1], rgba[2]); - setScaled( _a[0], c[0] ); - setScaled( _a[1], c[1] ); - setScaled( _a[2], c[2] ); - setScaled( _a[3], c[3] ); - - setScaled( _a[4], rgba[3] ); - _updating = FALSE; - _updateSliders( CSC_CHANNELS_ALL ); - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } -} + gfloat rgba[4]; + gfloat c[4]; -SPColorScalesMode ColorScales::getMode() const -{ - return _mode; + if (_mode == mode) + return; + + if ((_mode == SP_COLOR_SCALES_MODE_RGB) || (_mode == SP_COLOR_SCALES_MODE_HSV) || + (_mode == SP_COLOR_SCALES_MODE_CMYK)) { + _getRgbaFloatv(rgba); + } + else { + rgba[0] = rgba[1] = rgba[2] = rgba[3] = 1.0; + } + + _mode = mode; + + switch (mode) { + case SP_COLOR_SCALES_MODE_RGB: + _setRangeLimit(255.0); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[0]), _("_R:")); + _s[0]->set_tooltip_text(_("Red")); + gtk_widget_set_tooltip_text(_b[0], _("Red")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[1]), _("_G:")); + _s[1]->set_tooltip_text(_("Green")); + gtk_widget_set_tooltip_text(_b[1], _("Green")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[2]), _("_B:")); + _s[2]->set_tooltip_text(_("Blue")); + gtk_widget_set_tooltip_text(_b[2], _("Blue")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[3]), _("_A:")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text(_b[3], _("Alpha (opacity)")); + _s[0]->setMap(NULL); + gtk_widget_hide(_l[4]); + _s[4]->hide(); + gtk_widget_hide(_b[4]); + _updating = TRUE; + setScaled(_a[0], rgba[0]); + setScaled(_a[1], rgba[1]); + setScaled(_a[2], rgba[2]); + setScaled(_a[3], rgba[3]); + _updating = FALSE; + _updateSliders(CSC_CHANNELS_ALL); + break; + case SP_COLOR_SCALES_MODE_HSV: + _setRangeLimit(255.0); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[0]), _("_H:")); + _s[0]->set_tooltip_text(_("Hue")); + gtk_widget_set_tooltip_text(_b[0], _("Hue")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[1]), _("_S:")); + _s[1]->set_tooltip_text(_("Saturation")); + gtk_widget_set_tooltip_text(_b[1], _("Saturation")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[2]), _("_L:")); + _s[2]->set_tooltip_text(_("Lightness")); + gtk_widget_set_tooltip_text(_b[2], _("Lightness")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[3]), _("_A:")); + _s[3]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text(_b[3], _("Alpha (opacity)")); + _s[0]->setMap((guchar *)(sp_color_scales_hue_map())); + gtk_widget_hide(_l[4]); + _s[4]->hide(); + gtk_widget_hide(_b[4]); + _updating = TRUE; + c[0] = 0.0; + sp_color_rgb_to_hsl_floatv(c, rgba[0], rgba[1], rgba[2]); + setScaled(_a[0], c[0]); + setScaled(_a[1], c[1]); + setScaled(_a[2], c[2]); + setScaled(_a[3], rgba[3]); + _updating = FALSE; + _updateSliders(CSC_CHANNELS_ALL); + break; + case SP_COLOR_SCALES_MODE_CMYK: + _setRangeLimit(100.0); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[0]), _("_C:")); + _s[0]->set_tooltip_text(_("Cyan")); + gtk_widget_set_tooltip_text(_b[0], _("Cyan")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[1]), _("_M:")); + _s[1]->set_tooltip_text(_("Magenta")); + gtk_widget_set_tooltip_text(_b[1], _("Magenta")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[2]), _("_Y:")); + _s[2]->set_tooltip_text(_("Yellow")); + gtk_widget_set_tooltip_text(_b[2], _("Yellow")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[3]), _("_K:")); + _s[3]->set_tooltip_text(_("Black")); + gtk_widget_set_tooltip_text(_b[3], _("Black")); + gtk_label_set_markup_with_mnemonic(GTK_LABEL(_l[4]), _("_A:")); + _s[4]->set_tooltip_text(_("Alpha (opacity)")); + gtk_widget_set_tooltip_text(_b[4], _("Alpha (opacity)")); + _s[0]->setMap(NULL); + gtk_widget_show(_l[4]); + _s[4]->show(); + gtk_widget_show(_b[4]); + _updating = TRUE; + + sp_color_rgb_to_cmyk_floatv(c, rgba[0], rgba[1], rgba[2]); + setScaled(_a[0], c[0]); + setScaled(_a[1], c[1]); + setScaled(_a[2], c[2]); + setScaled(_a[3], c[3]); + + setScaled(_a[4], rgba[3]); + _updating = FALSE; + _updateSliders(CSC_CHANNELS_ALL); + break; + default: + g_warning("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } } -void ColorScales::_adjustmentAnyChanged( GtkAdjustment *adjustment, ColorScales *cs ) +SPColorScalesMode ColorScales::getMode() const { return _mode; } + +void ColorScales::_adjustmentAnyChanged(GtkAdjustment *adjustment, ColorScales *cs) { - gint channel = GPOINTER_TO_INT (g_object_get_data(G_OBJECT (adjustment), "channel")); + gint channel = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(adjustment), "channel")); - _adjustmentChanged(cs, channel); + _adjustmentChanged(cs, channel); } void ColorScales::_sliderAnyGrabbed() @@ -469,10 +460,10 @@ void ColorScales::_sliderAnyGrabbed() if (_updating) { return; } - if (!_dragging) { - _dragging = TRUE; + if (!_dragging) { + _dragging = TRUE; _color.setHeld(true); - } + } } void ColorScales::_sliderAnyReleased() @@ -480,10 +471,10 @@ void ColorScales::_sliderAnyReleased() if (_updating) { return; } - if (_dragging) { - _dragging = FALSE; + if (_dragging) { + _dragging = FALSE; _color.setHeld(false); - } + } } void ColorScales::_sliderAnyChanged() @@ -494,160 +485,159 @@ void ColorScales::_sliderAnyChanged() _recalcColor(); } -void ColorScales::_adjustmentChanged( ColorScales *scales, guint channel ) +void ColorScales::_adjustmentChanged(ColorScales *scales, guint channel) { - if (scales->_updating) { - return; - } + if (scales->_updating) { + return; + } - scales->_updateSliders( (1 << channel) ); - scales->_recalcColor(); + scales->_updateSliders((1 << channel)); + scales->_recalcColor(); } -void ColorScales::_updateSliders( guint channels ) +void ColorScales::_updateSliders(guint channels) { - gfloat rgb0[3], rgbm[3], rgb1[3]; + gfloat rgb0[3], rgbm[3], rgb1[3]; #ifdef SPCS_PREVIEW - guint32 rgba; + guint32 rgba; #endif - switch (_mode) { - case SP_COLOR_SCALES_MODE_RGB: - if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { - /* Update red */ - _s[0]->setColors(SP_RGBA32_F_COMPOSE (0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE (1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); - } - if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { - /* Update green */ - _s[1]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), - SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); - } - if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { - /* Update blue */ - _s[2]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); - } - if (channels != CSC_CHANNEL_A) { - /* Update alpha */ - _s[3]->setColors(SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), - SP_RGBA32_F_COMPOSE (getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); - } - break; - case SP_COLOR_SCALES_MODE_HSV: - /* Hue is never updated */ - if ((channels != CSC_CHANNEL_S) && (channels != CSC_CHANNEL_A)) { - /* Update saturation */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); - sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); - sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); - _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_V) && (channels != CSC_CHANNEL_A)) { - /* Update value */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); - sp_color_hsl_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); - sp_color_hsl_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); - _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if (channels != CSC_CHANNEL_A) { - /* Update alpha */ - sp_color_hsl_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); - _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); - } - break; - case SP_COLOR_SCALES_MODE_CMYK: - if ((channels != CSC_CHANNEL_C) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update C */ - sp_color_cmyk_to_rgb_floatv (rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[0]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_M) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update M */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); - _s[1]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_Y) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update Y */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); - _s[2]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if ((channels != CSC_CHANNEL_K) && (channels != CSC_CHANNEL_CMYKA)) { - /* Update K */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); - sp_color_cmyk_to_rgb_floatv (rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); - sp_color_cmyk_to_rgb_floatv (rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); - _s[3]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0), - SP_RGBA32_F_COMPOSE (rgbm[0], rgbm[1], rgbm[2], 1.0), - SP_RGBA32_F_COMPOSE (rgb1[0], rgb1[1], rgb1[2], 1.0)); - } - if (channels != CSC_CHANNEL_CMYKA) { - /* Update alpha */ - sp_color_cmyk_to_rgb_floatv (rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); - _s[4]->setColors(SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.0), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 0.5), - SP_RGBA32_F_COMPOSE (rgb0[0], rgb0[1], rgb0[2], 1.0)); - } - break; - default: - g_warning ("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); - break; - } - - // Force the internal color to be updated - if ( !_updating ) - { + switch (_mode) { + case SP_COLOR_SCALES_MODE_RGB: + if ((channels != CSC_CHANNEL_R) && (channels != CSC_CHANNEL_A)) { + /* Update red */ + _s[0]->setColors(SP_RGBA32_F_COMPOSE(0.0, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(0.5, getScaled(_a[1]), getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(1.0, getScaled(_a[1]), getScaled(_a[2]), 1.0)); + } + if ((channels != CSC_CHANNEL_G) && (channels != CSC_CHANNEL_A)) { + /* Update green */ + _s[1]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.0, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 0.5, getScaled(_a[2]), 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), 1.0, getScaled(_a[2]), 1.0)); + } + if ((channels != CSC_CHANNEL_B) && (channels != CSC_CHANNEL_A)) { + /* Update blue */ + _s[2]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), 0.0, 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), 0.5, 1.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), 1.0, 1.0)); + } + if (channels != CSC_CHANNEL_A) { + /* Update alpha */ + _s[3]->setColors(SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5), + SP_RGBA32_F_COMPOSE(getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0)); + } + break; + case SP_COLOR_SCALES_MODE_HSV: + /* Hue is never updated */ + if ((channels != CSC_CHANNEL_S) && (channels != CSC_CHANNEL_A)) { + /* Update saturation */ + sp_color_hsl_to_rgb_floatv(rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2])); + sp_color_hsl_to_rgb_floatv(rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2])); + sp_color_hsl_to_rgb_floatv(rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2])); + _s[1]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_V) && (channels != CSC_CHANNEL_A)) { + /* Update value */ + sp_color_hsl_to_rgb_floatv(rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0); + sp_color_hsl_to_rgb_floatv(rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5); + sp_color_hsl_to_rgb_floatv(rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0); + _s[2]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if (channels != CSC_CHANNEL_A) { + /* Update alpha */ + sp_color_hsl_to_rgb_floatv(rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2])); + _s[3]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0)); + } + break; + case SP_COLOR_SCALES_MODE_CMYK: + if ((channels != CSC_CHANNEL_C) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update C */ + sp_color_cmyk_to_rgb_floatv(rgb0, 0.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgbm, 0.5, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgb1, 1.0, getScaled(_a[1]), getScaled(_a[2]), getScaled(_a[3])); + _s[0]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_M) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update M */ + sp_color_cmyk_to_rgb_floatv(rgb0, getScaled(_a[0]), 0.0, getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgbm, getScaled(_a[0]), 0.5, getScaled(_a[2]), getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgb1, getScaled(_a[0]), 1.0, getScaled(_a[2]), getScaled(_a[3])); + _s[1]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_Y) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update Y */ + sp_color_cmyk_to_rgb_floatv(rgb0, getScaled(_a[0]), getScaled(_a[1]), 0.0, getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgbm, getScaled(_a[0]), getScaled(_a[1]), 0.5, getScaled(_a[3])); + sp_color_cmyk_to_rgb_floatv(rgb1, getScaled(_a[0]), getScaled(_a[1]), 1.0, getScaled(_a[3])); + _s[2]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if ((channels != CSC_CHANNEL_K) && (channels != CSC_CHANNEL_CMYKA)) { + /* Update K */ + sp_color_cmyk_to_rgb_floatv(rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.0); + sp_color_cmyk_to_rgb_floatv(rgbm, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 0.5); + sp_color_cmyk_to_rgb_floatv(rgb1, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), 1.0); + _s[3]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0), + SP_RGBA32_F_COMPOSE(rgbm[0], rgbm[1], rgbm[2], 1.0), + SP_RGBA32_F_COMPOSE(rgb1[0], rgb1[1], rgb1[2], 1.0)); + } + if (channels != CSC_CHANNEL_CMYKA) { + /* Update alpha */ + sp_color_cmyk_to_rgb_floatv(rgb0, getScaled(_a[0]), getScaled(_a[1]), getScaled(_a[2]), + getScaled(_a[3])); + _s[4]->setColors(SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 0.0), + SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 0.5), + SP_RGBA32_F_COMPOSE(rgb0[0], rgb0[1], rgb0[2], 1.0)); + } + break; + default: + g_warning("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); + break; + } + + // Force the internal color to be updated + if (!_updating) { _recalcColor(); } #ifdef SPCS_PREVIEW - rgba = sp_color_scales_get_rgba32 (cs); - sp_color_preview_set_rgba32 (SP_COLOR_PREVIEW (_p), rgba); + rgba = sp_color_scales_get_rgba32(cs); + sp_color_preview_set_rgba32(SP_COLOR_PREVIEW(_p), rgba); #endif } -static const gchar * -sp_color_scales_hue_map (void) +static const gchar *sp_color_scales_hue_map(void) { - static gchar *map = NULL; - - if (!map) { - gchar *p; - gint h; - map = g_new (gchar, 4 * 1024); - p = map; - for (h = 0; h < 1024; h++) { - gfloat rgb[3]; - sp_color_hsl_to_rgb_floatv (rgb, h / 1024.0, 1.0, 0.5); - *p++ = SP_COLOR_F_TO_U (rgb[0]); - *p++ = SP_COLOR_F_TO_U (rgb[1]); - *p++ = SP_COLOR_F_TO_U (rgb[2]); - *p++ = 255; - } - } - - return map; + static gchar *map = NULL; + + if (!map) { + gchar *p; + gint h; + map = g_new(gchar, 4 * 1024); + p = map; + for (h = 0; h < 1024; h++) { + gfloat rgb[3]; + sp_color_hsl_to_rgb_floatv(rgb, h / 1024.0, 1.0, 0.5); + *p++ = SP_COLOR_F_TO_U(rgb[0]); + *p++ = SP_COLOR_F_TO_U(rgb[1]); + *p++ = SP_COLOR_F_TO_U(rgb[2]); + *p++ = 255; + } + } + + return map; } ColorScalesFactory::ColorScalesFactory(SPColorScalesMode submode) @@ -655,10 +645,10 @@ ColorScalesFactory::ColorScalesFactory(SPColorScalesMode submode) { } -ColorScalesFactory::~ColorScalesFactory() { -} +ColorScalesFactory::~ColorScalesFactory() {} -Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const { +Gtk::Widget *ColorScalesFactory::createWidget(Inkscape::UI::SelectedColor &color) const +{ Gtk::Widget *w = Gtk::manage(new ColorScales(color, _submode)); return w; } diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index 0744a645c..025f92e2d 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -2,7 +2,7 @@ #define SEEN_SP_COLOR_SCALES_H #ifdef HAVE_CONFIG_H -# include +#include #endif #if WITH_GTKMM_3_0 @@ -19,7 +19,6 @@ namespace Widget { class ColorSlider; - typedef enum { SP_COLOR_SCALES_MODE_NONE = 0, SP_COLOR_SCALES_MODE_RGB = 1, @@ -27,20 +26,18 @@ typedef enum { SP_COLOR_SCALES_MODE_CMYK = 3 } SPColorScalesMode; - - class ColorScales -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid #else : public Gtk::Table #endif { public: - static const gchar* SUBMODE_NAMES[]; + static const gchar *SUBMODE_NAMES[]; - static gfloat getScaled( const GtkAdjustment *a ); - static void setScaled( GtkAdjustment *a, gfloat v); + static gfloat getScaled(const GtkAdjustment *a); + static void setScaled(GtkAdjustment *a, gfloat v); ColorScales(SelectedColor &color, SPColorScalesMode mode); virtual ~ColorScales(); @@ -65,26 +62,26 @@ protected: void _updateSliders(guint channels); void _recalcColor(); - void _setRangeLimit( gdouble upper ); + void _setRangeLimit(gdouble upper); SelectedColor &_color; SPColorScalesMode _mode; gdouble _rangeLimit; gboolean _updating : 1; gboolean _dragging : 1; - GtkAdjustment *_a[5]; /* Channel adjustments */ + GtkAdjustment *_a[5]; /* Channel adjustments */ Inkscape::UI::Widget::ColorSlider *_s[5]; /* Channel sliders */ - GtkWidget *_b[5]; /* Spinbuttons */ - GtkWidget *_l[5]; /* Labels */ + GtkWidget *_b[5]; /* Spinbuttons */ + GtkWidget *_l[5]; /* Labels */ private: // By default, disallow copy constructor and assignment operator ColorScales(ColorScales const &obj); - ColorScales &operator=(ColorScales const &obj ); + ColorScales &operator=(ColorScales const &obj); }; - -class ColorScalesFactory: public Inkscape::UI::ColorSelectorFactory { +class ColorScalesFactory : public Inkscape::UI::ColorSelectorFactory +{ public: ColorScalesFactory(SPColorScalesMode submode); ~ColorScalesFactory(); diff --git a/src/ui/widget/color-slider.cpp b/src/ui/widget/color-slider.cpp index bf8b85dbd..0c9586a67 100644 --- a/src/ui/widget/color-slider.cpp +++ b/src/ui/widget/color-slider.cpp @@ -12,7 +12,7 @@ */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include @@ -34,20 +34,20 @@ static const gint SLIDER_WIDTH = 96; static const gint SLIDER_HEIGHT = 8; static const gint ARROW_SIZE = 7; -static const guchar *sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, - gint c[], gint dc[], guint b0, guint b1, guint mask); -static const guchar *sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, - guchar *map, gint start, gint step, guint b0, guint b1, guint mask); +static const guchar *sp_color_slider_render_gradient(gint x0, gint y0, gint width, gint height, gint c[], gint dc[], + guint b0, guint b1, guint mask); +static const guchar *sp_color_slider_render_map(gint x0, gint y0, gint width, gint height, guchar *map, gint start, + gint step, guint b0, guint b1, guint mask); namespace Inkscape { namespace UI { namespace Widget { -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) ColorSlider::ColorSlider(Glib::RefPtr adjustment) : _dragging(false) #else -ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) +ColorSlider::ColorSlider(Gtk::Adjustment *adjustment) : _dragging(false) , _adjustment(NULL) #endif @@ -78,11 +78,12 @@ ColorSlider::ColorSlider(Gtk::Adjustment* adjustment) setAdjustment(adjustment); } -ColorSlider::~ColorSlider() { +ColorSlider::~ColorSlider() +{ if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) _adjustment.reset(); #else _adjustment->unreference(); @@ -91,103 +92,102 @@ ColorSlider::~ColorSlider() { } } -void ColorSlider::on_realize() { +void ColorSlider::on_realize() +{ set_realized(); - if(!_gdk_window) - { - GdkWindowAttr attributes; - gint attributes_mask; - Gtk::Allocation allocation = get_allocation(); - - memset(&attributes, 0, sizeof(attributes)); - attributes.x = allocation.get_x(); - attributes.y = allocation.get_y(); - attributes.width = allocation.get_width(); - attributes.height = allocation.get_height(); - attributes.window_type = GDK_WINDOW_CHILD; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); -#if !GTK_CHECK_VERSION(3,0,0) - attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); + if (!_gdk_window) { + GdkWindowAttr attributes; + gint attributes_mask; + Gtk::Allocation allocation = get_allocation(); + + memset(&attributes, 0, sizeof(attributes)); + attributes.x = allocation.get_x(); + attributes.y = allocation.get_y(); + attributes.width = allocation.get_width(); + attributes.height = allocation.get_height(); + attributes.window_type = GDK_WINDOW_CHILD; + attributes.wclass = GDK_INPUT_OUTPUT; + attributes.visual = gdk_screen_get_system_visual(gdk_screen_get_default()); +#if !GTK_CHECK_VERSION(3, 0, 0) + attributes.colormap = gdk_screen_get_system_colormap(gdk_screen_get_default()); #endif - attributes.event_mask = get_events (); - attributes.event_mask |= (Gdk::EXPOSURE_MASK | - Gdk::BUTTON_PRESS_MASK | - Gdk::BUTTON_RELEASE_MASK | - Gdk::POINTER_MOTION_MASK | - Gdk::ENTER_NOTIFY_MASK | - Gdk::LEAVE_NOTIFY_MASK); - -#if GTK_CHECK_VERSION(3,0,0) - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; + attributes.event_mask = get_events(); + attributes.event_mask |= (Gdk::EXPOSURE_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK | + Gdk::POINTER_MOTION_MASK | Gdk::ENTER_NOTIFY_MASK | Gdk::LEAVE_NOTIFY_MASK); + +#if GTK_CHECK_VERSION(3, 0, 0) + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; #else - attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; + attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL | GDK_WA_COLORMAP; #endif - _gdk_window = Gdk::Window::create(get_parent_window(), &attributes, - attributes_mask); - set_window(_gdk_window); - _gdk_window->set_user_data(gobj()); + _gdk_window = Gdk::Window::create(get_parent_window(), &attributes, attributes_mask); + set_window(_gdk_window); + _gdk_window->set_user_data(gobj()); -#if !GTK_CHECK_VERSION(3,0,0) - style_attach(); +#if !GTK_CHECK_VERSION(3, 0, 0) + style_attach(); #endif } } -void ColorSlider::on_unrealize() { +void ColorSlider::on_unrealize() +{ _gdk_window.reset(); Gtk::Widget::on_unrealize(); } -void ColorSlider::on_size_allocate(Gtk::Allocation& allocation) { +void ColorSlider::on_size_allocate(Gtk::Allocation &allocation) +{ set_allocation(allocation); if (get_realized()) { - _gdk_window->move_resize(allocation.get_x(), allocation.get_y(), - allocation.get_width(), allocation.get_height()); + _gdk_window->move_resize(allocation.get_x(), allocation.get_y(), allocation.get_width(), + allocation.get_height()); } } -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) -void ColorSlider::get_preferred_width_vfunc(int& minimum_width, int& natural_width) const +void ColorSlider::get_preferred_width_vfunc(int &minimum_width, int &natural_width) const { - Glib::RefPtrstyle_context = get_style_context(); + Glib::RefPtr style_context = get_style_context(); Gtk::Border padding = style_context->get_padding(get_state_flags()); int width = SLIDER_WIDTH + padding.get_left() + padding.get_right(); minimum_width = natural_width = width; } -void ColorSlider::get_preferred_width_for_height_vfunc(int /*height*/, int& minimum_width, int& natural_width) const +void ColorSlider::get_preferred_width_for_height_vfunc(int /*height*/, int &minimum_width, int &natural_width) const { get_preferred_width(minimum_width, natural_width); } -void ColorSlider::get_preferred_height_vfunc(int& minimum_height, int& natural_height) const +void ColorSlider::get_preferred_height_vfunc(int &minimum_height, int &natural_height) const { - Glib::RefPtrstyle_context = get_style_context(); + Glib::RefPtr style_context = get_style_context(); Gtk::Border padding = style_context->get_padding(get_state_flags()); int height = SLIDER_HEIGHT + padding.get_top() + padding.get_bottom(); minimum_height = natural_height = height; } -void ColorSlider::get_preferred_height_for_width_vfunc(int /*width*/, int& minimum_height, int& natural_height) const +void ColorSlider::get_preferred_height_for_width_vfunc(int /*width*/, int &minimum_height, int &natural_height) const { get_preferred_height(minimum_height, natural_height); } #else -void ColorSlider::on_size_request(Gtk::Requisition* requisition) { +void ColorSlider::on_size_request(Gtk::Requisition *requisition) +{ GtkStyle *style = gtk_widget_get_style(gobj()); requisition->width = SLIDER_WIDTH + style->xthickness * 2; requisition->height = SLIDER_HEIGHT + style->ythickness * 2; } -bool ColorSlider::on_expose_event(GdkEventExpose* event) { +bool ColorSlider::on_expose_event(GdkEventExpose *event) +{ bool result = false; if (get_is_drawable()) { @@ -199,11 +199,12 @@ bool ColorSlider::on_expose_event(GdkEventExpose* event) { #endif -bool ColorSlider::on_button_press_event(GdkEventButton *event) { +bool ColorSlider::on_button_press_event(GdkEventButton *event) +{ if (event->button == 1) { Gtk::Allocation allocation = get_allocation(); gint cx, cw; -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) cx = get_style_context()->get_padding(get_state_flags()).get_left(); #else cx = get_style()->get_xthickness(); @@ -212,33 +213,30 @@ bool ColorSlider::on_button_press_event(GdkEventButton *event) { signal_grabbed.emit(); _dragging = true; _oldvalue = _value; - ColorScales::setScaled( _adjustment->gobj(), CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0)); signal_dragged.emit(); -#if GTK_CHECK_VERSION(3,0,0) - gdk_device_grab(gdk_event_get_device(reinterpret_cast(event)), - _gdk_window->gobj(), - GDK_OWNERSHIP_NONE, - FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, - event->time); +#if GTK_CHECK_VERSION(3, 0, 0) + gdk_device_grab( + gdk_event_get_device(reinterpret_cast(event)), _gdk_window->gobj(), GDK_OWNERSHIP_NONE, FALSE, + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, event->time); #else gdk_pointer_grab(get_window()->gobj(), FALSE, - static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), - NULL, NULL, event->time); + static_cast(GDK_POINTER_MOTION_MASK | GDK_BUTTON_RELEASE_MASK), NULL, NULL, + event->time); #endif } return false; } -bool ColorSlider::on_button_release_event(GdkEventButton *event) { +bool ColorSlider::on_button_release_event(GdkEventButton *event) +{ if (event->button == 1) { -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) gdk_device_ungrab(gdk_event_get_device(reinterpret_cast(event)), - gdk_event_get_time(reinterpret_cast(event))); + gdk_event_get_time(reinterpret_cast(event))); #else get_window()->pointer_ungrab(event->time); #endif @@ -253,35 +251,39 @@ bool ColorSlider::on_button_release_event(GdkEventButton *event) { return false; } -bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) { +bool ColorSlider::on_motion_notify_event(GdkEventMotion *event) +{ if (_dragging) { gint cx, cw; Gtk::Allocation allocation = get_allocation(); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) cx = get_style_context()->get_padding(get_state_flags()).get_left(); #else cx = get_style()->get_xthickness(); #endif cw = allocation.get_width() - 2 * cx; - ColorScales::setScaled( _adjustment->gobj(), CLAMP ((gfloat) (event->x - cx) / cw, 0.0, 1.0) ); + ColorScales::setScaled(_adjustment->gobj(), CLAMP((gfloat)(event->x - cx) / cw, 0.0, 1.0)); signal_dragged.emit(); } return false; } -#if GTK_CHECK_VERSION(3,0,0) -void ColorSlider::setAdjustment(Glib::RefPtr adjustment) { +#if GTK_CHECK_VERSION(3, 0, 0) +void ColorSlider::setAdjustment(Glib::RefPtr adjustment) +{ #else -void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) { +void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) +{ #endif if (!adjustment) { -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) _adjustment = Gtk::Adjustment::create(0.0, 0.0, 1.0, 0.01, 0.0, 0.0); #else _adjustment = Gtk::manage(new Gtk::Adjustment(0.0, 0.0, 1.0, 0.01, 0.0, 0.0)); #endif - } else { + } + else { adjustment->set_page_increment(0.0); adjustment->set_page_size(0.0); } @@ -290,16 +292,16 @@ void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) { if (_adjustment) { _adjustment_changed_connection.disconnect(); _adjustment_value_changed_connection.disconnect(); -#if !GTK_CHECK_VERSION(3,0,0) +#if !GTK_CHECK_VERSION(3, 0, 0) _adjustment->unreference(); #endif } _adjustment = adjustment; - _adjustment_changed_connection = _adjustment->signal_changed().connect( - sigc::mem_fun(this, &ColorSlider::_onAdjustmentChanged)); - _adjustment_value_changed_connection = _adjustment->signal_value_changed().connect( - sigc::mem_fun(this, &ColorSlider::_onAdjustmentValueChanged)); + _adjustment_changed_connection = + _adjustment->signal_changed().connect(sigc::mem_fun(this, &ColorSlider::_onAdjustmentChanged)); + _adjustment_value_changed_connection = + _adjustment->signal_value_changed().connect(sigc::mem_fun(this, &ColorSlider::_onAdjustmentValueChanged)); _value = ColorScales::getScaled(_adjustment->gobj()); @@ -307,15 +309,14 @@ void ColorSlider::setAdjustment(Gtk::Adjustment *adjustment) { } } -void ColorSlider::_onAdjustmentChanged() { - queue_draw(); -} +void ColorSlider::_onAdjustmentChanged() { queue_draw(); } -void ColorSlider::_onAdjustmentValueChanged() { - if (_value != ColorScales::getScaled( _adjustment->gobj() )) { +void ColorSlider::_onAdjustmentValueChanged() +{ + if (_value != ColorScales::getScaled(_adjustment->gobj())) { gint cx, cy, cw, ch; -#if GTK_CHECK_VERSION(3,0,0) - Glib::RefPtrstyle_context = get_style_context(); +#if GTK_CHECK_VERSION(3, 0, 0) + Glib::RefPtr style_context = get_style_context(); Gtk::Allocation allocation = get_allocation(); Gtk::Border padding = style_context->get_padding(get_state_flags()); cx = padding.get_left(); @@ -328,24 +329,26 @@ void ColorSlider::_onAdjustmentValueChanged() { #endif cw = allocation.get_width() - 2 * cx; ch = allocation.get_height() - 2 * cy; - if ((gint) (ColorScales::getScaled( _adjustment->gobj() ) * cw) != (gint) (_value * cw)) { + if ((gint)(ColorScales::getScaled(_adjustment->gobj()) * cw) != (gint)(_value * cw)) { gint ax, ay; gfloat value; value = _value; - _value = ColorScales::getScaled( _adjustment->gobj() ); + _value = ColorScales::getScaled(_adjustment->gobj()); ax = (int)(cx + value * cw - ARROW_SIZE / 2 - 2); ay = cy; queue_draw_area(ax, ay, ARROW_SIZE + 4, ch); ax = (int)(cx + _value * cw - ARROW_SIZE / 2 - 2); ay = cy; queue_draw_area(ax, ay, ARROW_SIZE + 4, ch); - } else { - _value = ColorScales::getScaled( _adjustment->gobj() ); + } + else { + _value = ColorScales::getScaled(_adjustment->gobj()); } } } -void ColorSlider::setColors(guint32 start, guint32 mid, guint32 end) { +void ColorSlider::setColors(guint32 start, guint32 mid, guint32 end) +{ // Remove any map, if set _map = 0; @@ -367,13 +370,15 @@ void ColorSlider::setColors(guint32 start, guint32 mid, guint32 end) { queue_draw(); } -void ColorSlider::setMap(const guchar *map) { +void ColorSlider::setMap(const guchar *map) +{ _map = const_cast(map); queue_draw(); } -void ColorSlider::setBackground(guint dark, guint light, guint size) { +void ColorSlider::setBackground(guint dark, guint light, guint size) +{ _b0 = dark; _b1 = light; _bmask = size; @@ -381,12 +386,13 @@ void ColorSlider::setBackground(guint dark, guint light, guint size) { queue_draw(); } -bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { +bool ColorSlider::on_draw(const Cairo::RefPtr &cr) +{ gboolean colorsOnTop = Inkscape::Preferences::get()->getBool("/options/workarounds/colorsontop", false); Gtk::Allocation allocation = get_allocation(); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) Glib::RefPtr style_context = get_style_context(); #else Glib::RefPtr window = get_window(); @@ -395,28 +401,25 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { // Draw shadow if (colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - style_context->render_frame(cr, 0, 0, - allocation.get_width(), allocation.get_height()); +#if GTK_CHECK_VERSION(3, 0, 0) + style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else - gtk_paint_shadow( style->gobj(), window->gobj(), - gtk_widget_get_state(gobj()), GTK_SHADOW_IN, - NULL, gobj(), "colorslider", - 0, 0, - allocation.get_width(), allocation.get_height()); + gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(), + "colorslider", 0, 0, allocation.get_width(), allocation.get_height()); #endif } /* Paintable part of color gradient area */ Gdk::Rectangle carea; -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) Gtk::Border padding; padding = style_context->get_padding(get_state_flags()); carea.set_x(padding.get_left()); - carea.set_y(padding.get_top());; + carea.set_y(padding.get_top()); + ; #else carea.set_x(style->get_xthickness()); carea.set_y(style->get_ythickness()); @@ -430,19 +433,18 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { gint d = (1024 << 16) / carea.get_width(); gint s = 0; - const guchar *b = sp_color_slider_render_map(0, 0, carea.get_width(), carea.get_height(), - _map, s, d, - _b0, _b1, _bmask); + const guchar *b = + sp_color_slider_render_map(0, 0, carea.get_width(), carea.get_height(), _map, s, d, _b0, _b1, _bmask); if (b != NULL && carea.get_width() > 0) { - Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, - false, 8, carea.get_width(), carea.get_height(), carea.get_width() * 3); + Glib::RefPtr pb = Gdk::Pixbuf::create_from_data( + b, Gdk::COLORSPACE_RGB, false, 8, carea.get_width(), carea.get_height(), carea.get_width() * 3); Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_x(), carea.get_y()); cr->paint(); } - - } else { + } + else { gint c[4], dc[4]; /* Render gradient */ @@ -451,16 +453,15 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { if (carea.get_width() > 0) { for (gint i = 0; i < 4; i++) { c[i] = _c0[i] << 16; - dc[i] = ((_cm[i] << 16) - c[i]) / (carea.get_width()/2); + dc[i] = ((_cm[i] << 16) - c[i]) / (carea.get_width() / 2); } - guint wi = carea.get_width()/2; - const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.get_height(), - c, dc, _b0, _b1, _bmask); + guint wi = carea.get_width() / 2; + const guchar *b = sp_color_slider_render_gradient(0, 0, wi, carea.get_height(), c, dc, _b0, _b1, _bmask); /* Draw pixelstore 1 */ if (b != NULL && wi > 0) { - Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, - false, 8, wi, carea.get_height(), wi * 3); + Glib::RefPtr pb = + Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, false, 8, wi, carea.get_height(), wi * 3); Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_x(), carea.get_y()); cr->paint(); @@ -471,37 +472,32 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { if (carea.get_width() > 0) { for (gint i = 0; i < 4; i++) { c[i] = _cm[i] << 16; - dc[i] = ((_c1[i] << 16) - c[i]) / (carea.get_width()/2); + dc[i] = ((_c1[i] << 16) - c[i]) / (carea.get_width() / 2); } - guint wi = carea.get_width()/2; - const guchar *b = sp_color_slider_render_gradient(carea.get_width()/2, 0, wi, carea.get_height(), - c, dc, - _b0, _b1, _bmask); + guint wi = carea.get_width() / 2; + const guchar *b = sp_color_slider_render_gradient(carea.get_width() / 2, 0, wi, carea.get_height(), c, dc, + _b0, _b1, _bmask); /* Draw pixelstore 2 */ if (b != NULL && wi > 0) { - Glib::RefPtr pb = Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, - false, 8, wi, carea.get_height(), wi * 3); + Glib::RefPtr pb = + Gdk::Pixbuf::create_from_data(b, Gdk::COLORSPACE_RGB, false, 8, wi, carea.get_height(), wi * 3); - Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_width()/2 + carea.get_x(), carea.get_y()); + Gdk::Cairo::set_source_pixbuf(cr, pb, carea.get_width() / 2 + carea.get_x(), carea.get_y()); cr->paint(); } } } - /* Draw shadow */ - if (!colorsOnTop) { -#if GTK_CHECK_VERSION(3,0,0) - style_context->render_frame(cr, 0, 0, - allocation.get_width(), allocation.get_height()); + /* Draw shadow */ + if (!colorsOnTop) { +#if GTK_CHECK_VERSION(3, 0, 0) + style_context->render_frame(cr, 0, 0, allocation.get_width(), allocation.get_height()); #else - gtk_paint_shadow( style->gobj(), window->gobj(), - gtk_widget_get_state(gobj()), GTK_SHADOW_IN, - NULL, gobj(), "colorslider", - 0, 0, - allocation.get_width(), allocation.get_height()); + gtk_paint_shadow(style->gobj(), window->gobj(), gtk_widget_get_state(gobj()), GTK_SHADOW_IN, NULL, gobj(), + "colorslider", 0, 0, allocation.get_width(), allocation.get_height()); #endif - } + } /* Draw arrow */ gint x = (int)(_value * (carea.get_width() - 1) - ARROW_SIZE / 2 + carea.get_x()); @@ -510,16 +506,16 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { cr->set_line_width(1.0); // Define top arrow - cr->move_to(x - 0.5, y1 + 0.5); - cr->line_to(x + ARROW_SIZE - 0.5, y1 + 0.5); - cr->line_to(x + (ARROW_SIZE-1)/2.0, y1 + ARROW_SIZE/2.0 + 0.5); - cr->line_to(x - 0.5, y1 + 0.5); + cr->move_to(x - 0.5, y1 + 0.5); + cr->line_to(x + ARROW_SIZE - 0.5, y1 + 0.5); + cr->line_to(x + (ARROW_SIZE - 1) / 2.0, y1 + ARROW_SIZE / 2.0 + 0.5); + cr->line_to(x - 0.5, y1 + 0.5); // Define bottom arrow - cr->move_to(x - 0.5, y2 + 0.5); - cr->line_to(x + ARROW_SIZE - 0.5, y2 + 0.5); - cr->line_to(x + (ARROW_SIZE-1)/2.0, y2 - ARROW_SIZE/2.0 + 0.5); - cr->line_to(x - 0.5, y2 + 0.5); + cr->move_to(x - 0.5, y2 + 0.5); + cr->line_to(x + ARROW_SIZE - 0.5, y2 + 0.5); + cr->line_to(x + (ARROW_SIZE - 1) / 2.0, y2 - ARROW_SIZE / 2.0 + 0.5); + cr->line_to(x - 0.5, y2 + 0.5); // Render both arrows cr->set_source_rgb(1.0, 1.0, 1.0); @@ -530,111 +526,108 @@ bool ColorSlider::on_draw(const Cairo::RefPtr& cr) { return false; } -}//namespace Widget -}//namespace UI -}//namespace Inkscape +} // namespace Widget +} // namespace UI +} // namespace Inkscape /* Colors are << 16 */ -static const guchar * -sp_color_slider_render_gradient (gint x0, gint y0, gint width, gint height, - gint c[], gint dc[], guint b0, guint b1, guint mask) +static const guchar *sp_color_slider_render_gradient(gint x0, gint y0, gint width, gint height, gint c[], gint dc[], + guint b0, guint b1, guint mask) { - static guchar *buf = NULL; - static gint bs = 0; - guchar *dp; - gint x, y; - guint r, g, b, a; - - if (buf && (bs < width * height)) { - g_free (buf); - buf = NULL; - } - if (!buf) { - buf = g_new (guchar, width * height * 3); - bs = width * height; - } - - dp = buf; - r = c[0]; - g = c[1]; - b = c[2]; - a = c[3]; - for (x = x0; x < x0 + width; x++) { - gint cr, cg, cb, ca; - guchar *d; - cr = r >> 16; - cg = g >> 16; - cb = b >> 16; - ca = a >> 16; - d = dp; - for (y = y0; y < y0 + height; y++) { - guint bg, fc; - /* Background value */ - bg = ((x & mask) ^ (y & mask)) ? b0 : b1; - fc = (cr - bg) * ca; - d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cg - bg) * ca; - d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cb - bg) * ca; - d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - d += 3 * width; - } - r += dc[0]; - g += dc[1]; - b += dc[2]; - a += dc[3]; - dp += 3; - } - - return buf; + static guchar *buf = NULL; + static gint bs = 0; + guchar *dp; + gint x, y; + guint r, g, b, a; + + if (buf && (bs < width * height)) { + g_free(buf); + buf = NULL; + } + if (!buf) { + buf = g_new(guchar, width * height * 3); + bs = width * height; + } + + dp = buf; + r = c[0]; + g = c[1]; + b = c[2]; + a = c[3]; + for (x = x0; x < x0 + width; x++) { + gint cr, cg, cb, ca; + guchar *d; + cr = r >> 16; + cg = g >> 16; + cb = b >> 16; + ca = a >> 16; + d = dp; + for (y = y0; y < y0 + height; y++) { + guint bg, fc; + /* Background value */ + bg = ((x & mask) ^ (y & mask)) ? b0 : b1; + fc = (cr - bg) * ca; + d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cg - bg) * ca; + d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cb - bg) * ca; + d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + d += 3 * width; + } + r += dc[0]; + g += dc[1]; + b += dc[2]; + a += dc[3]; + dp += 3; + } + + return buf; } /* Positions are << 16 */ -static const guchar * -sp_color_slider_render_map (gint x0, gint y0, gint width, gint height, - guchar *map, gint start, gint step, guint b0, guint b1, guint mask) +static const guchar *sp_color_slider_render_map(gint x0, gint y0, gint width, gint height, guchar *map, gint start, + gint step, guint b0, guint b1, guint mask) { - static guchar *buf = NULL; - static gint bs = 0; - guchar *dp; - gint x, y; - - if (buf && (bs < width * height)) { - g_free (buf); - buf = NULL; - } - if (!buf) { - buf = g_new (guchar, width * height * 3); - bs = width * height; - } - - dp = buf; - for (x = x0; x < x0 + width; x++) { - gint cr, cg, cb, ca; - guchar *d = dp; - guchar *sp = map + 4 * (start >> 16); - cr = *sp++; - cg = *sp++; - cb = *sp++; - ca = *sp++; - for (y = y0; y < y0 + height; y++) { - guint bg, fc; - /* Background value */ - bg = ((x & mask) ^ (y & mask)) ? b0 : b1; - fc = (cr - bg) * ca; - d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cg - bg) * ca; - d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - fc = (cb - bg) * ca; - d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); - d += 3 * width; - } - dp += 3; - start += step; - } - - return buf; -} + static guchar *buf = NULL; + static gint bs = 0; + guchar *dp; + gint x, y; + + if (buf && (bs < width * height)) { + g_free(buf); + buf = NULL; + } + if (!buf) { + buf = g_new(guchar, width * height * 3); + bs = width * height; + } + dp = buf; + for (x = x0; x < x0 + width; x++) { + gint cr, cg, cb, ca; + guchar *d = dp; + guchar *sp = map + 4 * (start >> 16); + cr = *sp++; + cg = *sp++; + cb = *sp++; + ca = *sp++; + for (y = y0; y < y0 + height; y++) { + guint bg, fc; + /* Background value */ + bg = ((x & mask) ^ (y & mask)) ? b0 : b1; + fc = (cr - bg) * ca; + d[0] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cg - bg) * ca; + d[1] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + fc = (cb - bg) * ca; + d[2] = bg + ((fc + (fc >> 8) + 0x80) >> 8); + d += 3 * width; + } + dp += 3; + start += step; + } + + return buf; +} diff --git a/src/ui/widget/color-slider.h b/src/ui/widget/color-slider.h index 2f2e7b2db..253f3123c 100644 --- a/src/ui/widget/color-slider.h +++ b/src/ui/widget/color-slider.h @@ -15,26 +15,23 @@ #include #include -namespace Inkscape -{ -namespace UI -{ -namespace Widget -{ +namespace Inkscape { +namespace UI { +namespace Widget { /* * A slider with colored background */ -class ColorSlider: public Gtk::Widget { +class ColorSlider : public Gtk::Widget { public: -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) ColorSlider(Glib::RefPtr adjustment); #else ColorSlider(Gtk::Adjustment *adjustment); #endif ~ColorSlider(); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) void setAdjustment(Glib::RefPtr adjustment); #else void setAdjustment(Gtk::Adjustment *adjustment); @@ -42,7 +39,7 @@ public: void setColors(guint32 start, guint32 mid, guint32 end); - void setMap(const guchar* map); + void setMap(const guchar *map); void setBackground(guint dark, guint light, guint size); @@ -52,22 +49,22 @@ public: sigc::signal signal_value_changed; protected: - void on_size_allocate(Gtk::Allocation& allocation); + void on_size_allocate(Gtk::Allocation &allocation); void on_realize(); void on_unrealize(); bool on_button_press_event(GdkEventButton *event); bool on_button_release_event(GdkEventButton *event); bool on_motion_notify_event(GdkEventMotion *event); - bool on_draw(const Cairo::RefPtr& cr); + bool on_draw(const Cairo::RefPtr &cr); -#if GTK_CHECK_VERSION(3,0,0) - void get_preferred_width_vfunc(int& minimum_width, int& natural_width) const; - void get_preferred_width_for_height_vfunc(int height, int& minimum_width, int& natural_width) const; - void get_preferred_height_vfunc(int& minimum_height, int& natural_height) const; - void get_preferred_height_for_width_vfunc(int width, int& minimum_height, int& natural_height) const; +#if GTK_CHECK_VERSION(3, 0, 0) + void get_preferred_width_vfunc(int &minimum_width, int &natural_width) const; + void get_preferred_width_for_height_vfunc(int height, int &minimum_width, int &natural_width) const; + void get_preferred_height_vfunc(int &minimum_height, int &natural_height) const; + void get_preferred_height_for_width_vfunc(int width, int &minimum_height, int &natural_height) const; #else - void on_size_request(Gtk::Requisition* requisition); - bool on_expose_event(GdkEventExpose* event); + void on_size_request(Gtk::Requisition *requisition); + bool on_expose_event(GdkEventExpose *event); #endif private: @@ -76,7 +73,7 @@ private: bool _dragging; -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) Glib::RefPtr _adjustment; #else Gtk::Adjustment *_adjustment; @@ -96,9 +93,9 @@ private: Glib::RefPtr _gdk_window; }; -}//namespace Widget -}//namespace UI -}//namespace Inkscape +} // namespace Widget +} // namespace UI +} // namespace Inkscape #endif /* diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index e00fb2fab..8c6402d90 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -1,5 +1,5 @@ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include "color-wheel-selector.h" @@ -26,17 +26,17 @@ namespace Widget { #define YPAD 1 -const gchar* ColorWheelSelector::MODE_NAME = N_("Wheel"); +const gchar *ColorWheelSelector::MODE_NAME = N_("Wheel"); ColorWheelSelector::ColorWheelSelector(SelectedColor &color) -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : Gtk::Grid() #else : Gtk::Table(5, 3, false) #endif , _color(color) , _updating(false) -#if !GTK_CHECK_VERSION(3,0,0) +#if !GTK_CHECK_VERSION(3, 0, 0) , _alpha_adjustment(NULL) #endif , _wheel(0) @@ -45,13 +45,12 @@ ColorWheelSelector::ColorWheelSelector(SelectedColor &color) _initUI(); _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorWheelSelector::_colorChanged)); - } ColorWheelSelector::~ColorWheelSelector() { _wheel = 0; -#if !GTK_CHECK_VERSION(3,0,0) +#if !GTK_CHECK_VERSION(3, 0, 0) delete _alpha_adjustment; #endif @@ -59,32 +58,34 @@ ColorWheelSelector::~ColorWheelSelector() _color_dragged_connection.disconnect(); } -void ColorWheelSelector::_initUI() { +void ColorWheelSelector::_initUI() +{ /* Create components */ gint row = 0; _wheel = gimp_color_wheel_new(); - gtk_widget_show( _wheel ); + gtk_widget_show(_wheel); -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) gtk_widget_set_halign(_wheel, GTK_ALIGN_FILL); gtk_widget_set_valign(_wheel, GTK_ALIGN_FILL); gtk_widget_set_hexpand(_wheel, TRUE); gtk_widget_set_vexpand(_wheel, TRUE); gtk_grid_attach(GTK_GRID(gobj()), _wheel, 0, row, 3, 1); #else - gtk_table_attach(GTK_TABLE(gobj()), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); + gtk_table_attach(GTK_TABLE(gobj()), _wheel, 0, 3, row, row + 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), + (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), 0, 0); #endif row++; /* Label */ - Gtk::Label* label = Gtk::manage(new Gtk::Label(_("_A:"), true)); + Gtk::Label *label = Gtk::manage(new Gtk::Label(_("_A:"), true)); label->set_alignment(1.0, 0.5); label->show(); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) label->set_margin_start(XPAD); label->set_margin_end(XPAD); #else @@ -100,8 +101,8 @@ void ColorWheelSelector::_initUI() { attach(*label, 0, 1, row, row + 1, Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif - /* Adjustment */ -#if GTK_CHECK_VERSION(3,0,0) +/* Adjustment */ +#if GTK_CHECK_VERSION(3, 0, 0) _alpha_adjustment = Gtk::Adjustment::create(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); #else _alpha_adjustment = new Gtk::Adjustment(0.0, 0.0, 255.0, 1.0, 10.0, 10.0); @@ -111,8 +112,8 @@ void ColorWheelSelector::_initUI() { _slider->set_tooltip_text(_("Alpha (opacity)")); _slider->show(); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) _slider->set_margin_start(XPAD); _slider->set_margin_end(XPAD); #else @@ -126,26 +127,25 @@ void ColorWheelSelector::_initUI() { _slider->set_valign(Gtk::ALIGN_FILL); attach(*_slider, 1, row, 1, 1); #else - attach(*_slider, 1, 2, row, row+1, Gtk::EXPAND | Gtk::FILL, Gtk::FILL, XPAD, YPAD); + attach(*_slider, 1, 2, row, row + 1, Gtk::EXPAND | Gtk::FILL, Gtk::FILL, XPAD, YPAD); #endif - _slider->setColors(SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.0), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 0.5), - SP_RGBA32_F_COMPOSE (1.0, 1.0, 1.0, 1.0)); + _slider->setColors(SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.0), SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 0.5), + SP_RGBA32_F_COMPOSE(1.0, 1.0, 1.0, 1.0)); - /* Spinbutton */ -#if GTK_CHECK_VERSION(3,0,0) - Gtk::SpinButton* spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0)); - #else - Gtk::SpinButton* spin_button = Gtk::manage(new Gtk::SpinButton(*_alpha_adjustment, 1.0, 0)); +/* Spinbutton */ +#if GTK_CHECK_VERSION(3, 0, 0) + Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(_alpha_adjustment, 1.0, 0)); +#else + Gtk::SpinButton *spin_button = Gtk::manage(new Gtk::SpinButton(*_alpha_adjustment, 1.0, 0)); #endif spin_button->set_tooltip_text(_("Alpha (opacity)")); sp_dialog_defocus_on_enter(GTK_WIDGET(spin_button->gobj())); label->set_mnemonic_widget(*spin_button); spin_button->show(); -#if GTK_CHECK_VERSION(3,0,0) - #if GTK_CHECK_VERSION(3,12,0) +#if GTK_CHECK_VERSION(3, 0, 0) + #if GTK_CHECK_VERSION(3, 12, 0) spin_button->set_margin_start(XPAD); spin_button->set_margin_end(XPAD); #else @@ -167,27 +167,27 @@ void ColorWheelSelector::_initUI() { _slider->signal_released.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderReleased)); _slider->signal_value_changed.connect(sigc::mem_fun(*this, &ColorWheelSelector::_sliderChanged)); - g_signal_connect( G_OBJECT(_wheel), "changed", - G_CALLBACK (_wheelChanged), this ); + g_signal_connect(G_OBJECT(_wheel), "changed", G_CALLBACK(_wheelChanged), this); } void ColorWheelSelector::_colorChanged() { #ifdef DUMP_CHANGE_INFO - g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], alpha ); + g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], + _color.color().v.c[1], _color.color().v.c[2], alpha); #endif bool oldval = _updating; _updating = true; { - float hsv[3] = {0,0,0}; + float hsv[3] = { 0, 0, 0 }; sp_color_rgb_to_hsv_floatv(hsv, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2]); - gimp_color_wheel_set_color( GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2] ); + gimp_color_wheel_set_color(GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2]); } - guint32 start = _color.color().toRGBA32( 0x00 ); - guint32 mid = _color.color().toRGBA32( 0x7f ); - guint32 end = _color.color().toRGBA32( 0xff ); + guint32 start = _color.color().toRGBA32(0x00); + guint32 mid = _color.color().toRGBA32(0x7f); + guint32 end = _color.color().toRGBA32(0xff); _slider->setColors(start, mid, end); @@ -238,23 +238,23 @@ void ColorWheelSelector::_sliderChanged() void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector *wheelSelector) { - if (wheelSelector->_updating){ + if (wheelSelector->_updating) { return; } gdouble h = 0; gdouble s = 0; gdouble v = 0; - gimp_color_wheel_get_color( wheel, &h, &s, &v ); - - float rgb[3] = {0,0,0}; - sp_color_hsv_to_rgb_floatv (rgb, h, s, v); + gimp_color_wheel_get_color(wheel, &h, &s, &v); + + float rgb[3] = { 0, 0, 0 }; + sp_color_hsv_to_rgb_floatv(rgb, h, s, v); SPColor color(rgb[0], rgb[1], rgb[2]); - guint32 start = color.toRGBA32( 0x00 ); - guint32 mid = color.toRGBA32( 0x7f ); - guint32 end = color.toRGBA32( 0xff ); + guint32 start = color.toRGBA32(0x00); + guint32 mid = color.toRGBA32(0x7f); + guint32 end = color.toRGBA32(0xff); wheelSelector->_slider->setColors(start, mid, end); @@ -265,15 +265,13 @@ void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector } -Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { +Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const +{ Gtk::Widget *w = Gtk::manage(new ColorWheelSelector(color)); return w; } -Glib::ustring ColorWheelSelectorFactory::modeName() const { - return gettext(ColorWheelSelector::MODE_NAME); -} - +Glib::ustring ColorWheelSelectorFactory::modeName() const { return gettext(ColorWheelSelector::MODE_NAME); } } } } diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index ec30cc7c5..f97f70f6a 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -13,7 +13,7 @@ #define SEEN_SP_COLOR_WHEEL_SELECTOR_H #ifdef HAVE_CONFIG_H -# include +#include #endif #if WITH_GTKMM_3_0 @@ -33,14 +33,14 @@ namespace Widget { class ColorSlider; class ColorWheelSelector -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) : public Gtk::Grid #else : public Gtk::Table #endif { public: - static const gchar* MODE_NAME; + static const gchar *MODE_NAME; ColorWheelSelector(SelectedColor &color); virtual ~ColorWheelSelector(); @@ -59,30 +59,28 @@ protected: SelectedColor &_color; bool _updating; -#if GTK_CHECK_VERSION(3,0,0) +#if GTK_CHECK_VERSION(3, 0, 0) Glib::RefPtr _alpha_adjustment; #else - Gtk::Adjustment* _alpha_adjustment; + Gtk::Adjustment *_alpha_adjustment; #endif - GtkWidget* _wheel; - Inkscape::UI::Widget::ColorSlider* _slider; + GtkWidget *_wheel; + Inkscape::UI::Widget::ColorSlider *_slider; private: // By default, disallow copy constructor and assignment operator - ColorWheelSelector( const ColorWheelSelector& obj ); - ColorWheelSelector& operator=( const ColorWheelSelector& obj ); + ColorWheelSelector(const ColorWheelSelector &obj); + ColorWheelSelector &operator=(const ColorWheelSelector &obj); sigc::connection _color_changed_connection; sigc::connection _color_dragged_connection; }; - -class ColorWheelSelectorFactory: public ColorSelectorFactory { +class ColorWheelSelectorFactory : public ColorSelectorFactory { public: Gtk::Widget *createWidget(SelectedColor &color) const; Glib::ustring modeName() const; }; - } } } -- cgit v1.2.3 From c1165a6e6713f62f6f6442f172d7b31eae51f264 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 11:53:07 +0200 Subject: Reformatted SPPattern (bzr r14059.1.19) --- src/sp-pattern.cpp | 512 +++++++++++++++++++++++++++-------------------------- src/sp-pattern.h | 78 ++++---- 2 files changed, 305 insertions(+), 285 deletions(-) diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index c2ba23370..db2017351 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -5,7 +5,7 @@ * Lauris Kaplinski * bulia byak * Jon A. Cruz - * Abhishek Sharma + * Abhishek Sharma * * Copyright (C) 2002 Lauris Kaplinski * @@ -13,7 +13,7 @@ */ #ifdef HAVE_CONFIG_H -# include "config.h" +#include "config.h" #endif #include @@ -37,47 +37,51 @@ #include "sp-factory.h" -SPPattern::SPPattern() : SPPaintServer(), SPViewBox() { - this->ref = new SPPatternReference(this); - this->ref->changedSignal().connect(sigc::mem_fun(this, &SPPattern::_on_ref_changed)); +SPPattern::SPPattern() + : SPPaintServer() + , SPViewBox() +{ + this->ref = new SPPatternReference(this); + this->ref->changedSignal().connect(sigc::mem_fun(this, &SPPattern::_on_ref_changed)); - this->patternUnits = UNITS_OBJECTBOUNDINGBOX; - this->patternUnits_set = false; + this->patternUnits = UNITS_OBJECTBOUNDINGBOX; + this->patternUnits_set = false; - this->patternContentUnits = UNITS_USERSPACEONUSE; - this->patternContentUnits_set = false; + this->patternContentUnits = UNITS_USERSPACEONUSE; + this->patternContentUnits_set = false; - this->patternTransform = Geom::identity(); - this->patternTransform_set = false; + this->patternTransform = Geom::identity(); + this->patternTransform_set = false; - this->x.unset(); - this->y.unset(); - this->width.unset(); - this->height.unset(); + this->x.unset(); + this->y.unset(); + this->width.unset(); + this->height.unset(); } -SPPattern::~SPPattern() { -} +SPPattern::~SPPattern() {} -void SPPattern::build(SPDocument* doc, Inkscape::XML::Node* repr) { - SPPaintServer::build(doc, repr); - - this->readAttr( "patternUnits" ); - this->readAttr( "patternContentUnits" ); - this->readAttr( "patternTransform" ); - this->readAttr( "x" ); - this->readAttr( "y" ); - this->readAttr( "width" ); - this->readAttr( "height" ); - this->readAttr( "viewBox" ); - this->readAttr( "preserveAspectRatio" ); - this->readAttr( "xlink:href" ); - - /* Register ourselves */ - doc->addResource("pattern", this); +void SPPattern::build(SPDocument *doc, Inkscape::XML::Node *repr) +{ + SPPaintServer::build(doc, repr); + + this->readAttr("patternUnits"); + this->readAttr("patternContentUnits"); + this->readAttr("patternTransform"); + this->readAttr("x"); + this->readAttr("y"); + this->readAttr("width"); + this->readAttr("height"); + this->readAttr("viewBox"); + this->readAttr("preserveAspectRatio"); + this->readAttr("xlink:href"); + + /* Register ourselves */ + doc->addResource("pattern", this); } -void SPPattern::release() { +void SPPattern::release() +{ if (this->document) { // Unregister ourselves this->document->removeResource("pattern", this); @@ -93,112 +97,121 @@ void SPPattern::release() { SPPaintServer::release(); } -void SPPattern::set(unsigned int key, const gchar* value) { - switch (key) { - case SP_ATTR_PATTERNUNITS: - if (value) { - if (!strcmp (value, "userSpaceOnUse")) { - this->patternUnits = UNITS_USERSPACEONUSE; - } else { - this->patternUnits = UNITS_OBJECTBOUNDINGBOX; - } - - this->patternUnits_set = true; - } else { - this->patternUnits_set = false; - } - - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_PATTERNCONTENTUNITS: - if (value) { - if (!strcmp (value, "userSpaceOnUse")) { - this->patternContentUnits = UNITS_USERSPACEONUSE; - } else { - this->patternContentUnits = UNITS_OBJECTBOUNDINGBOX; - } - - this->patternContentUnits_set = true; - } else { - this->patternContentUnits_set = false; - } - - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_PATTERNTRANSFORM: { - Geom::Affine t; - - if (value && sp_svg_transform_read (value, &t)) { - this->patternTransform = t; - this->patternTransform_set = true; - } else { - this->patternTransform = Geom::identity(); - this->patternTransform_set = false; - } - - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - } - case SP_ATTR_X: - this->x.readOrUnset(value); - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_Y: - this->y.readOrUnset(value); - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_WIDTH: - this->width.readOrUnset(value); - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_HEIGHT: - this->height.readOrUnset(value); - this->requestModified(SP_OBJECT_MODIFIED_FLAG); - break; - - case SP_ATTR_VIEWBOX: - set_viewBox( value ); +void SPPattern::set(unsigned int key, const gchar *value) +{ + switch (key) { + case SP_ATTR_PATTERNUNITS: + if (value) { + if (!strcmp(value, "userSpaceOnUse")) { + this->patternUnits = UNITS_USERSPACEONUSE; + } + else { + this->patternUnits = UNITS_OBJECTBOUNDINGBOX; + } + + this->patternUnits_set = true; + } + else { + this->patternUnits_set = false; + } + + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_PATTERNCONTENTUNITS: + if (value) { + if (!strcmp(value, "userSpaceOnUse")) { + this->patternContentUnits = UNITS_USERSPACEONUSE; + } + else { + this->patternContentUnits = UNITS_OBJECTBOUNDINGBOX; + } + + this->patternContentUnits_set = true; + } + else { + this->patternContentUnits_set = false; + } + + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_PATTERNTRANSFORM: { + Geom::Affine t; + + if (value && sp_svg_transform_read(value, &t)) { + this->patternTransform = t; + this->patternTransform_set = true; + } + else { + this->patternTransform = Geom::identity(); + this->patternTransform_set = false; + } + + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + } + case SP_ATTR_X: + this->x.readOrUnset(value); + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_Y: + this->y.readOrUnset(value); + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_WIDTH: + this->width.readOrUnset(value); + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_HEIGHT: + this->height.readOrUnset(value); + this->requestModified(SP_OBJECT_MODIFIED_FLAG); + break; + + case SP_ATTR_VIEWBOX: + set_viewBox(value); this->requestModified(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG); break; case SP_ATTR_PRESERVEASPECTRATIO: - set_preserveAspectRatio( value ); + set_preserveAspectRatio(value); this->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_VIEWPORT_MODIFIED_FLAG); break; - case SP_ATTR_XLINK_HREF: - if ( value && this->href == value ) { - /* Href unchanged, do nothing. */ - } else { - this->href.clear(); - - if (value) { - // First, set the href field; it's only used in the "unchanged" check above. - this->href = value; - // Now do the attaching, which emits the changed signal. - if (value) { - try { - this->ref->attach(Inkscape::URI(value)); - } catch (Inkscape::BadURIException &e) { - g_warning("%s", e.what()); - this->ref->detach(); - } - } else { - this->ref->detach(); - } - } - } - break; - - default: - SPPaintServer::set(key, value); - break; - } + case SP_ATTR_XLINK_HREF: + if (value && this->href == value) { + /* Href unchanged, do nothing. */ + } + else { + this->href.clear(); + + if (value) { + // First, set the href field; it's only used in the "unchanged" check above. + this->href = value; + // Now do the attaching, which emits the changed signal. + if (value) { + try { + this->ref->attach(Inkscape::URI(value)); + } + catch (Inkscape::BadURIException &e) { + g_warning("%s", e.what()); + this->ref->detach(); + } + } + else { + this->ref->detach(); + } + } + } + break; + + default: + SPPaintServer::set(key, value); + break; + } } @@ -206,82 +219,86 @@ void SPPattern::set(unsigned int key, const gchar* value) { /* fixme: We need ::order_changed handler too (Lauris) */ -void SPPattern::_get_children(std::list& l) { +void SPPattern::_get_children(std::list &l) +{ for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children - for (SPObject *child = pat_i->firstChild() ; child ; child = child->getNext() ) { - l.push_back(child); - } - break; // do not go further up the chain if children are found + for (SPObject *child = pat_i->firstChild(); child; child = child->getNext()) { + l.push_back(child); + } + break; // do not go further up the chain if children are found } } } -void SPPattern::update(SPCtx* ctx, unsigned int flags) { - typedef std::list::iterator SPObjectIterator; +void SPPattern::update(SPCtx *ctx, unsigned int flags) +{ + typedef std::list::iterator SPObjectIterator; if (flags & SP_OBJECT_MODIFIED_FLAG) { - flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; - } + flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + } - flags &= SP_OBJECT_MODIFIED_CASCADE; + flags &= SP_OBJECT_MODIFIED_CASCADE; - std::list l; - _get_children(l); + std::list l; + _get_children(l); - for (SPObjectIterator it = l.begin(); it != l.end(); it++) { - SPObject *child = *it; + for (SPObjectIterator it = l.begin(); it != l.end(); it++) { + SPObject *child = *it; - sp_object_ref (child, NULL); + sp_object_ref(child, NULL); - if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { - child->updateDisplay(ctx, flags); - } + if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { + child->updateDisplay(ctx, flags); + } - sp_object_unref (child, NULL); - } + sp_object_unref(child, NULL); + } } -void SPPattern::modified(unsigned int flags) { - typedef std::list::iterator SPObjectIterator; +void SPPattern::modified(unsigned int flags) +{ + typedef std::list::iterator SPObjectIterator; - if (flags & SP_OBJECT_MODIFIED_FLAG) { - flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; - } + if (flags & SP_OBJECT_MODIFIED_FLAG) { + flags |= SP_OBJECT_PARENT_MODIFIED_FLAG; + } - flags &= SP_OBJECT_MODIFIED_CASCADE; + flags &= SP_OBJECT_MODIFIED_CASCADE; - std::list l; - _get_children(l); + std::list l; + _get_children(l); - for (SPObjectIterator it = l.begin(); it != l.end(); it++) { - SPObject *child = *it; + for (SPObjectIterator it = l.begin(); it != l.end(); it++) { + SPObject *child = *it; - sp_object_ref (child, NULL); + sp_object_ref(child, NULL); - if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { - child->emitModified(flags); - } + if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { + child->emitModified(flags); + } - sp_object_unref (child, NULL); - } + sp_object_unref(child, NULL); + } } -void SPPattern::_on_ref_changed(SPObject *old_ref, SPObject *ref) { - if (old_ref) { - modified_connection.disconnect(); - } +void SPPattern::_on_ref_changed(SPObject *old_ref, SPObject *ref) +{ + if (old_ref) { + modified_connection.disconnect(); + } - if (SP_IS_PATTERN (ref)) { - modified_connection = ref->connectModified(sigc::mem_fun(this, &SPPattern::_on_ref_modified)); - } + if (SP_IS_PATTERN(ref)) { + modified_connection = ref->connectModified(sigc::mem_fun(this, &SPPattern::_on_ref_modified)); + } - _on_ref_modified(ref, 0); + _on_ref_modified(ref, 0); } -void SPPattern::_on_ref_modified(SPObject */*ref*/, guint /*flags*/) +void SPPattern::_on_ref_modified(SPObject * /*ref*/, guint /*flags*/) { - requestModified(SP_OBJECT_MODIFIED_FLAG); + requestModified(SP_OBJECT_MODIFIED_FLAG); // Conditional to avoid causing infinite loop if there's a cycle in the href chain. } @@ -293,80 +310,78 @@ guint SPPattern::_count_hrefs(SPObject *o) const guint i = 0; SPStyle *style = o->style; - if (style - && style->fill.isPaintserver() - && SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style)) - && SP_PATTERN(SP_STYLE_FILL_SERVER(style)) == this) - { - i ++; - } - if (style - && style->stroke.isPaintserver() - && SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style)) - && SP_PATTERN(SP_STYLE_STROKE_SERVER(style)) == this) - { - i ++; - } - - for ( SPObject *child = o->firstChild(); child != NULL; child = child->next ) { + if (style && style->fill.isPaintserver() && SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style)) && + SP_PATTERN(SP_STYLE_FILL_SERVER(style)) == this) { + i++; + } + if (style && style->stroke.isPaintserver() && SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style)) && + SP_PATTERN(SP_STYLE_STROKE_SERVER(style)) == this) { + i++; + } + + for (SPObject *child = o->firstChild(); child != NULL; child = child->next) { i += _count_hrefs(child); } return i; } -SPPattern *SPPattern::_chain() const { +SPPattern *SPPattern::_chain() const +{ Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); Inkscape::XML::Node *repr = xml_doc->createElement("svg:pattern"); repr->setAttribute("inkscape:collect", "always"); Glib::ustring parent_ref = Glib::ustring::compose("#%1", getRepr()->attribute("id")); - repr->setAttribute("xlink:href", parent_ref); + repr->setAttribute("xlink:href", parent_ref); defsrepr->addChild(repr, NULL); const gchar *child_id = repr->attribute("id"); SPObject *child = document->getObjectById(child_id); - g_assert (SP_IS_PATTERN (child)); + g_assert(SP_IS_PATTERN(child)); - return SP_PATTERN (child); + return SP_PATTERN(child); } -SPPattern *SPPattern::clone_if_necessary(SPItem *item, const gchar *property) { +SPPattern *SPPattern::clone_if_necessary(SPItem *item, const gchar *property) +{ SPPattern *pattern = this; if (pattern->href.empty() || pattern->hrefcount > _count_hrefs(item)) { pattern = _chain(); Glib::ustring href = Glib::ustring::compose("url(#%1)", pattern->getRepr()->attribute("id")); - SPCSSAttr *css = sp_repr_css_attr_new (); - sp_repr_css_set_property (css, property, href.c_str()); + SPCSSAttr *css = sp_repr_css_attr_new(); + sp_repr_css_set_property(css, property, href.c_str()); sp_repr_css_change_recursive(item->getRepr(), css, "style"); - } return pattern; } -void SPPattern::transform_multiply(Geom::Affine postmul, bool set) { +void SPPattern::transform_multiply(Geom::Affine postmul, bool set) +{ // this formula is for a different interpretation of pattern transforms as described in (*) in sp-pattern.cpp // for it to work, we also need sp_object_read_attr( item, "transform"); - //pattern->patternTransform = premul * item->transform * pattern->patternTransform * item->transform.inverse() * postmul; + // pattern->patternTransform = premul * item->transform * pattern->patternTransform * item->transform.inverse() * + // postmul; // otherwise the formula is much simpler if (set) { patternTransform = postmul; - } else { + } + else { patternTransform = get_transform() * postmul; } patternTransform_set = true; - Glib::ustring c=sp_svg_transform_write(patternTransform); + Glib::ustring c = sp_svg_transform_write(patternTransform); getRepr()->setAttribute("patternTransform", c); } -const gchar *SPPattern::produce(const std::vector &reprs, Geom::Rect bounds, - SPDocument *document, Geom::Affine transform, Geom::Affine move) +const gchar *SPPattern::produce(const std::vector &reprs, Geom::Rect bounds, + SPDocument *document, Geom::Affine transform, Geom::Affine move) { - typedef std::vector::const_iterator NodePtrIterator; + typedef std::vector::const_iterator NodePtrIterator; Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -376,7 +391,7 @@ const gchar *SPPattern::produce(const std::vector &reprs, sp_repr_set_svg_double(repr, "width", bounds.dimensions()[Geom::X]); sp_repr_set_svg_double(repr, "height", bounds.dimensions()[Geom::Y]); - Glib::ustring t=sp_svg_transform_write(transform); + Glib::ustring t = sp_svg_transform_write(transform); repr->setAttribute("patternTransform", t); defsrepr->appendChild(repr); @@ -388,7 +403,7 @@ const gchar *SPPattern::produce(const std::vector &reprs, SPItem *copy = SP_ITEM(pat_object->appendChildRepr(node)); Geom::Affine dup_transform; - if (!sp_svg_transform_read (node->attribute("transform"), &dup_transform)) + if (!sp_svg_transform_read(node->attribute("transform"), &dup_transform)) dup_transform = Geom::identity(); dup_transform *= move; @@ -402,11 +417,12 @@ const gchar *SPPattern::produce(const std::vector &reprs, SPPattern *SPPattern::get_root() { for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if ( pat_i->firstChild() ) { // find the first one with children + if (pat_i->firstChild()) { // find the first one with children return pat_i; } } - return this; // document is broken, we can't get to root; but at least we can return pat which is supposedly a valid pattern + return this; // document is broken, we can't get to root; but at least we can return pat which is supposedly a valid + // pattern } @@ -492,7 +508,7 @@ Geom::OptRect SPPattern::get_viewbox() const bool SPPattern::_has_item_children() const { bool hasChildren = false; - for (SPObject const *child = firstChild() ; child && !hasChildren ; child = child->getNext() ) { + for (SPObject const *child = firstChild(); child && !hasChildren; child = child->getNext()) { if (SP_IS_ITEM(child)) { hasChildren = true; } @@ -502,15 +518,16 @@ bool SPPattern::_has_item_children() const bool SPPattern::isValid() const { - double tile_width = get_width(); - double tile_height = get_height(); + double tile_width = get_width(); + double tile_height = get_height(); - if (tile_width <= 0 || tile_height <= 0) - return false; - return true; + if (tile_width <= 0 || tile_height <= 0) + return false; + return true; } -cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &bbox, double opacity) { +cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &bbox, double opacity) +{ bool needs_opacity = (1.0 - opacity) >= 1e-3; bool visible = opacity >= 1e-3; @@ -531,21 +548,21 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b } if (!shown) { - return cairo_pattern_create_rgba(0,0,0,0); + return cairo_pattern_create_rgba(0, 0, 0, 0); } /* Create drawing for rendering */ Inkscape::Drawing drawing; - unsigned int dkey = SPItem::display_key_new (1); + unsigned int dkey = SPItem::display_key_new(1); Inkscape::DrawingGroup *root = new Inkscape::DrawingGroup(drawing); drawing.setRoot(root); - for (SPObject *child = shown->firstChild(); child != NULL; child = child->getNext() ) { - if (SP_IS_ITEM (child)) { + for (SPObject *child = shown->firstChild(); child != NULL; child = child->getNext()) { + if (SP_IS_ITEM(child)) { // for each item in pattern, show it on our drawing, add to the group, // and connect to the release signal in case the item gets deleted Inkscape::DrawingItem *cai; - cai = SP_ITEM(child)->invoke_show (drawing, dkey, SP_ITEM_SHOW_DISPLAY); + cai = SP_ITEM(child)->invoke_show(drawing, dkey, SP_ITEM_SHOW_DISPLAY); root->appendChild(cai); } } @@ -558,40 +575,41 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // * "x", "y", and "patternTransform" transform tile to user space after tile is generated. // These functions recursively search up the tree to find the values. - double tile_x = get_x(); - double tile_y = get_y(); - double tile_width = get_width(); + double tile_x = get_x(); + double tile_y = get_y(); + double tile_width = get_width(); double tile_height = get_height(); - if ( bbox && (get_pattern_units() == UNITS_OBJECTBOUNDINGBOX) ) { - tile_x *= bbox->width(); - tile_y *= bbox->height(); - tile_width *= bbox->width(); + if (bbox && (get_pattern_units() == UNITS_OBJECTBOUNDINGBOX)) { + tile_x *= bbox->width(); + tile_y *= bbox->height(); + tile_width *= bbox->width(); tile_height *= bbox->height(); } // Pattern size in pattern space Geom::Rect pattern_tile = Geom::Rect::from_xywh(0, 0, tile_width, tile_height); - + // Content to tile (pattern space) Geom::Affine content2ps; Geom::OptRect effective_view_box = get_viewbox(); if (effective_view_box) { - // viewBox to pattern server (using SPViewBox) + // viewBox to pattern server (using SPViewBox) viewBox = *effective_view_box; c2p.setIdentity(); - apply_viewbox( pattern_tile ); + apply_viewbox(pattern_tile); content2ps = c2p; - } else { + } + else { // Content to bbox - if (bbox && (get_pattern_content_units() == UNITS_OBJECTBOUNDINGBOX) ) { - content2ps = Geom::Affine(bbox->width(), 0.0, 0.0, bbox->height(), 0,0); + if (bbox && (get_pattern_content_units() == UNITS_OBJECTBOUNDINGBOX)) { + content2ps = Geom::Affine(bbox->width(), 0.0, 0.0, bbox->height(), 0, 0); } } // Tile (pattern space) to user. - Geom::Affine ps2user = Geom::Translate(tile_x,tile_y) * get_transform(); + Geom::Affine ps2user = Geom::Translate(tile_x, tile_y) * get_transform(); // Transform of object with pattern (includes screen scaling) @@ -611,7 +629,7 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // to find the optimum tile size for rendering // c is number of pixels in buffer x and y. // Scale factor of 1.1 is too small... see bug #1251039 - Geom::Point c(pattern_tile.dimensions()*ps2user.descrim()*full.descrim()*2.0); + Geom::Point c(pattern_tile.dimensions() * ps2user.descrim() * full.descrim() * 2.0); // Create drawing surface with size of pattern tile (in pattern space) but with number of pixels // based on required resolution (c). @@ -627,16 +645,16 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b } // TODO: make sure there are no leaks. - Inkscape::UpdateContext ctx; // UpdateContext is structure with only ctm! + Inkscape::UpdateContext ctx; // UpdateContext is structure with only ctm! ctx.ctm = content2ps * pattern_surface.drawingTransform(); - dc.transform( pattern_surface.drawingTransform().inverse() ); + dc.transform(pattern_surface.drawingTransform().inverse()); drawing.update(Geom::IntRect::infinite(), ctx); // Render drawing to pattern_surface via drawing context, this calls root->render // which is really DrawingItem->render(). drawing.render(dc, one_tile); - for (SPObject *child = shown->firstChild() ; child != NULL; child = child->getNext() ) { - if (SP_IS_ITEM (child)) { + for (SPObject *child = shown->firstChild(); child != NULL; child = child->getNext()) { + if (SP_IS_ITEM(child)) { SP_ITEM(child)->invoke_hide(dkey); } } @@ -652,12 +670,12 @@ cairo_pattern_t* SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b if (needs_opacity) { dc.popGroupToSource(); // pop raw pattern - dc.paint(opacity); // apply opacity + dc.paint(opacity); // apply opacity } cairo_pattern_t *cp = cairo_pattern_create_for_surface(pattern_surface.raw()); // Apply transformation to user space. Also compensate for oversampling. - ink_cairo_pattern_set_matrix(cp, ps2user.inverse() * pattern_surface.drawingTransform() ); + ink_cairo_pattern_set_matrix(cp, ps2user.inverse() * pattern_surface.drawingTransform()); cairo_pattern_set_extend(cp, CAIRO_EXTEND_REPEAT); diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 2eb71974f..6c63d0727 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -30,25 +30,21 @@ namespace Inkscape { namespace XML { class Node; - } } -#define SP_PATTERN(obj) (dynamic_cast((SPObject*)obj)) -#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject*)obj) != NULL) +#define SP_PATTERN(obj) (dynamic_cast((SPObject *)obj)) +#define SP_IS_PATTERN(obj) (dynamic_cast((SPObject *)obj) != NULL) class SPPattern : public SPPaintServer, public SPViewBox { public: - enum PatternUnits { - UNITS_USERSPACEONUSE, - UNITS_OBJECTBOUNDINGBOX - }; + enum PatternUnits { UNITS_USERSPACEONUSE, UNITS_OBJECTBOUNDINGBOX }; - SPPattern(); - virtual ~SPPattern(); + SPPattern(); + virtual ~SPPattern(); /* Reference (href) */ - Glib::ustring href; + Glib::ustring href; SPPatternReference *ref; gdouble get_x() const; @@ -59,7 +55,7 @@ public: SPPattern::PatternUnits get_pattern_units() const; SPPattern::PatternUnits get_pattern_content_units() const; Geom::Affine const &get_transform() const; - SPPattern *get_root(); //TODO: const + SPPattern *get_root(); // TODO: const SPPattern *clone_if_necessary(SPItem *item, const gchar *property); void transform_multiply(Geom::Affine postmul, bool set); @@ -68,39 +64,39 @@ public: * @brief create a new pattern in XML tree * @return created pattern id */ - static const gchar *produce(const std::vector &reprs, - Geom::Rect bounds, SPDocument *document, Geom::Affine transform, Geom::Affine move); + static const gchar *produce(const std::vector &reprs, Geom::Rect bounds, + SPDocument *document, Geom::Affine transform, Geom::Affine move); bool isValid() const; - virtual cairo_pattern_t* pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); + virtual cairo_pattern_t *pattern_new(cairo_t *ct, Geom::OptRect const &bbox, double opacity); protected: - virtual void build(SPDocument* doc, Inkscape::XML::Node* repr); - virtual void release(); - virtual void set(unsigned int key, const gchar* value); - virtual void update(SPCtx* ctx, unsigned int flags); - virtual void modified(unsigned int flags); + virtual void build(SPDocument *doc, Inkscape::XML::Node *repr); + virtual void release(); + virtual void set(unsigned int key, const gchar *value); + virtual void update(SPCtx *ctx, unsigned int flags); + virtual void modified(unsigned int flags); private: - bool _has_item_children() const; - void _get_children(std::list& l); - SPPattern *_chain() const; + bool _has_item_children() const; + void _get_children(std::list &l); + SPPattern *_chain() const; - /** - Count how many times pattern is used by the styles of o and its descendants - */ - guint _count_hrefs(SPObject* o) const; + /** + Count how many times pattern is used by the styles of o and its descendants + */ + guint _count_hrefs(SPObject *o) const; - /** - Gets called when the pattern is reattached to another - */ - void _on_ref_changed(SPObject *old_ref, SPObject *ref); + /** + Gets called when the pattern is reattached to another + */ + void _on_ref_changed(SPObject *old_ref, SPObject *ref); - /** - Gets called when the referenced is changed - */ - void _on_ref_modified(SPObject *ref, guint flags); + /** + Gets called when the referenced is changed + */ + void _on_ref_modified(SPObject *ref, guint flags); /* patternUnits and patternContentUnits attribute */ PatternUnits patternUnits : 1; @@ -122,14 +118,20 @@ private: class SPPatternReference : public Inkscape::URIReference { public: - SPPatternReference (SPObject *obj) : URIReference(obj) {} - SPPattern *getObject() const { + SPPatternReference(SPObject *obj) + : URIReference(obj) + { + } + + SPPattern *getObject() const + { return reinterpret_cast(URIReference::getObject()); } protected: - virtual bool _acceptObject(SPObject *obj) const { - return SP_IS_PATTERN (obj); + virtual bool _acceptObject(SPObject *obj) const + { + return SP_IS_PATTERN(obj); } }; -- cgit v1.2.3 From 705243e1266aec7527ae76065213ca7536ed7c41 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 3 May 2015 12:37:06 +0200 Subject: renamed SPPattern methods to match coding style (bzr r14059.1.20) --- src/desktop-style.cpp | 4 +- src/extension/internal/cairo-render-context.cpp | 16 +-- src/extension/internal/emf-print.cpp | 8 +- src/extension/internal/wmf-print.cpp | 4 +- src/knot-holder-entity.cpp | 18 +-- src/selection-chemistry.cpp | 8 +- src/sp-pattern.cpp | 162 ++++++++++++------------ src/sp-pattern.h | 50 ++++---- src/widgets/fill-style.cpp | 4 +- src/widgets/paint-selector.cpp | 4 +- 10 files changed, 139 insertions(+), 139 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 275165c9c..fb92ffaf5 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -576,8 +576,8 @@ objects_query_fillstroke (const std::vector &objects, SPStyle *style_re return QUERY_STYLE_MULTIPLE_DIFFERENT; // different kind of server } - SPPattern *pat = SP_PATTERN (server)->get_root(); - SPPattern *pat_res = SP_PATTERN (server_res)->get_root(); + SPPattern *pat = SP_PATTERN (server)->rootPattern(); + SPPattern *pat_res = SP_PATTERN (server_res)->rootPattern(); if (pat_res != pat) { return QUERY_STYLE_MULTIPLE_DIFFERENT; // different pattern roots } diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index abfdd9f1c..b5859c283 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -1008,16 +1008,16 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver ps2user = Geom::identity(); pcs2dev = Geom::identity(); - double x = pat->get_x(); - double y = pat->get_y(); - double width = pat->get_width(); - double height = pat->get_height(); + double x = pat->x(); + double y = pat->y(); + double width = pat->width(); + double height = pat->height(); double bbox_width_scaler; double bbox_height_scaler; TRACE(("%f x %f pattern\n", width, height)); - if (pbox && pat->get_pattern_units() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { + if (pbox && pat->patternUnits() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { bbox_width_scaler = pbox->width(); bbox_height_scaler = pbox->height(); ps2user[4] = x * bbox_width_scaler + pbox->left(); @@ -1030,13 +1030,13 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver } // apply pattern transformation - Geom::Affine pattern_transform(pat->get_transform()); + Geom::Affine pattern_transform(pat->getTransform()); ps2user *= pattern_transform; Geom::Point ori (ps2user[4], ps2user[5]); // create pattern contents coordinate system if (pat->viewBox_set) { - Geom::Rect view_box = *pat->get_viewbox(); + Geom::Rect view_box = *pat->viewbox(); double x, y, w, h; x = 0; @@ -1049,7 +1049,7 @@ CairoRenderContext::_createPatternPainter(SPPaintServer const *const paintserver pcs2dev[3] = h / view_box.height(); pcs2dev[4] = x - view_box.left() * pcs2dev[0]; pcs2dev[5] = y - view_box.top() * pcs2dev[3]; - } else if (pbox && pat->get_pattern_content_units() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { + } else if (pbox && pat->patternContentUnits() == SPPattern::UNITS_OBJECTBOUNDINGBOX) { pcs2dev[0] = pbox->width(); pcs2dev[3] = pbox->height(); } diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp index 48591fab2..40d0955e3 100644 --- a/src/extension/internal/emf-print.cpp +++ b/src/extension/internal/emf-print.cpp @@ -388,8 +388,8 @@ int PrintEmf::create_brush(SPStyle const *style, PU_COLORREF fcolor) } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->fill.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pat->get_width(); - double dheight = pat->get_height(); + double dwidth = pat->width(); + double dheight = pat->height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); @@ -573,8 +573,8 @@ int PrintEmf::create_pen(SPStyle const *style, const Geom::Affine &transform) if (SP_IS_PATTERN(SP_STYLE_STROKE_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->stroke.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pat->get_width(); - double dheight = pat->get_height(); + double dwidth = pat->width(); + double dheight = pat->height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); diff --git a/src/extension/internal/wmf-print.cpp b/src/extension/internal/wmf-print.cpp index 4894b6740..768909173 100644 --- a/src/extension/internal/wmf-print.cpp +++ b/src/extension/internal/wmf-print.cpp @@ -380,8 +380,8 @@ int PrintWmf::create_brush(SPStyle const *style, U_COLORREF *fcolor) } else if (SP_IS_PATTERN(SP_STYLE_FILL_SERVER(style))) { // must be paint-server SPPaintServer *paintserver = style->fill.value.href->getObject(); SPPattern *pat = SP_PATTERN(paintserver); - double dwidth = pat->get_width(); - double dheight = pat->get_height(); + double dwidth = pat->width(); + double dheight = pat->height(); width = dwidth; height = dheight; brush_classify(pat, 0, &pixbuf, &hatchType, &hatchColor, &bkColor); diff --git a/src/knot-holder-entity.cpp b/src/knot-holder-entity.cpp index 69ee4017e..173025920 100644 --- a/src/knot-holder-entity.cpp +++ b/src/knot-holder-entity.cpp @@ -140,19 +140,19 @@ KnotHolderEntity::snap_knot_position_constrained(Geom::Point const &p, Inkscape: static gdouble sp_pattern_extract_theta(SPPattern const *pat) { - Geom::Affine transf = pat->get_transform(); + Geom::Affine transf = pat->getTransform(); return Geom::atan2(transf.xAxis()); } static Geom::Point sp_pattern_extract_scale(SPPattern const *pat) { - Geom::Affine transf = pat->get_transform(); + Geom::Affine transf = pat->getTransform(); return Geom::Point( transf.expansionX(), transf.expansionY() ); } static Geom::Point sp_pattern_extract_trans(SPPattern const *pat) { - return Geom::Point(pat->get_transform()[4], pat->get_transform()[5]); + return Geom::Point(pat->getTransform()[4], pat->getTransform()[5]); } void @@ -191,7 +191,7 @@ PatternKnotHolderEntityAngle::knot_get() const { SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); - gdouble x = pat->get_width(); + gdouble x = pat->width(); gdouble y = 0; Geom::Point delta = Geom::Point(x,y); Geom::Point scale = sp_pattern_extract_scale(pat); @@ -240,8 +240,8 @@ PatternKnotHolderEntityScale::knot_set(Geom::Point const &p, Geom::Point const & // Get the new scale from the position of the knotholder Geom::Point d = p_snapped - sp_pattern_extract_trans(pat); - gdouble pat_x = pat->get_width(); - gdouble pat_y = pat->get_height(); + gdouble pat_x = pat->width(); + gdouble pat_y = pat->height(); Geom::Scale scl(1); if ( state & GDK_CONTROL_MASK ) { // if ctrl is pressed: use 1:1 scaling @@ -267,10 +267,10 @@ PatternKnotHolderEntityScale::knot_get() const { SPPattern *pat = _fill ? SP_PATTERN(item->style->getFillPaintServer()) : SP_PATTERN(item->style->getStrokePaintServer()); - gdouble x = pat->get_width(); - gdouble y = pat->get_height(); + gdouble x = pat->width(); + gdouble y = pat->height(); Geom::Point delta = Geom::Point(x,y); - Geom::Affine a = pat->get_transform(); + Geom::Affine a = pat->getTransform(); a[4] = 0; a[5] = 0; delta = delta * a; diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 23468acc3..a604064cc 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -1939,8 +1939,8 @@ std::vector sp_get_same_fill_or_stroke_color(SPItem *sel, std::vector(sel_server) && dynamic_cast(iter_server)) { - SPPattern *sel_pat = dynamic_cast(sel_server)->get_root(); - SPPattern *iter_pat = dynamic_cast(iter_server)->get_root(); + SPPattern *sel_pat = dynamic_cast(sel_server)->rootPattern(); + SPPattern *iter_pat = dynamic_cast(iter_server)->rootPattern(); if (sel_pat == iter_pat) { match = true; } @@ -3366,9 +3366,9 @@ void sp_selection_untile(SPDesktop *desktop) did = true; - SPPattern *pattern = basePat->get_root(); + SPPattern *pattern = basePat->rootPattern(); - Geom::Affine pat_transform = basePat->get_transform(); + Geom::Affine pat_transform = basePat->getTransform(); pat_transform *= item->transform; for (SPObject *child = pattern->firstChild() ; child != NULL; child = child->next ) { diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index db2017351..755d3d162 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -42,21 +42,21 @@ SPPattern::SPPattern() , SPViewBox() { this->ref = new SPPatternReference(this); - this->ref->changedSignal().connect(sigc::mem_fun(this, &SPPattern::_on_ref_changed)); + this->ref->changedSignal().connect(sigc::mem_fun(this, &SPPattern::_onRefChanged)); - this->patternUnits = UNITS_OBJECTBOUNDINGBOX; - this->patternUnits_set = false; + this->_pattern_units = UNITS_OBJECTBOUNDINGBOX; + this->_pattern_units_set = false; - this->patternContentUnits = UNITS_USERSPACEONUSE; - this->patternContentUnits_set = false; + this->_pattern_content_units = UNITS_USERSPACEONUSE; + this->_pattern_content_units_set = false; - this->patternTransform = Geom::identity(); - this->patternTransform_set = false; + this->_pattern_transform = Geom::identity(); + this->_pattern_transform_set = false; - this->x.unset(); - this->y.unset(); - this->width.unset(); - this->height.unset(); + this->_x.unset(); + this->_y.unset(); + this->_width.unset(); + this->_height.unset(); } SPPattern::~SPPattern() {} @@ -88,7 +88,7 @@ void SPPattern::release() } if (this->ref) { - this->modified_connection.disconnect(); + this->_modified_connection.disconnect(); this->ref->detach(); delete this->ref; this->ref = NULL; @@ -103,16 +103,16 @@ void SPPattern::set(unsigned int key, const gchar *value) case SP_ATTR_PATTERNUNITS: if (value) { if (!strcmp(value, "userSpaceOnUse")) { - this->patternUnits = UNITS_USERSPACEONUSE; + this->_pattern_units = UNITS_USERSPACEONUSE; } else { - this->patternUnits = UNITS_OBJECTBOUNDINGBOX; + this->_pattern_units = UNITS_OBJECTBOUNDINGBOX; } - this->patternUnits_set = true; + this->_pattern_units_set = true; } else { - this->patternUnits_set = false; + this->_pattern_units_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -121,16 +121,16 @@ void SPPattern::set(unsigned int key, const gchar *value) case SP_ATTR_PATTERNCONTENTUNITS: if (value) { if (!strcmp(value, "userSpaceOnUse")) { - this->patternContentUnits = UNITS_USERSPACEONUSE; + this->_pattern_content_units = UNITS_USERSPACEONUSE; } else { - this->patternContentUnits = UNITS_OBJECTBOUNDINGBOX; + this->_pattern_content_units = UNITS_OBJECTBOUNDINGBOX; } - this->patternContentUnits_set = true; + this->_pattern_content_units_set = true; } else { - this->patternContentUnits_set = false; + this->_pattern_content_units_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -140,34 +140,34 @@ void SPPattern::set(unsigned int key, const gchar *value) Geom::Affine t; if (value && sp_svg_transform_read(value, &t)) { - this->patternTransform = t; - this->patternTransform_set = true; + this->_pattern_transform = t; + this->_pattern_transform_set = true; } else { - this->patternTransform = Geom::identity(); - this->patternTransform_set = false; + this->_pattern_transform = Geom::identity(); + this->_pattern_transform_set = false; } this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; } case SP_ATTR_X: - this->x.readOrUnset(value); + this->_x.readOrUnset(value); this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_Y: - this->y.readOrUnset(value); + this->_y.readOrUnset(value); this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_WIDTH: - this->width.readOrUnset(value); + this->_width.readOrUnset(value); this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; case SP_ATTR_HEIGHT: - this->height.readOrUnset(value); + this->_height.readOrUnset(value); this->requestModified(SP_OBJECT_MODIFIED_FLAG); break; @@ -219,7 +219,7 @@ void SPPattern::set(unsigned int key, const gchar *value) /* fixme: We need ::order_changed handler too (Lauris) */ -void SPPattern::_get_children(std::list &l) +void SPPattern::_getChildren(std::list &l) { for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children @@ -242,7 +242,7 @@ void SPPattern::update(SPCtx *ctx, unsigned int flags) flags &= SP_OBJECT_MODIFIED_CASCADE; std::list l; - _get_children(l); + _getChildren(l); for (SPObjectIterator it = l.begin(); it != l.end(); it++) { SPObject *child = *it; @@ -268,7 +268,7 @@ void SPPattern::modified(unsigned int flags) flags &= SP_OBJECT_MODIFIED_CASCADE; std::list l; - _get_children(l); + _getChildren(l); for (SPObjectIterator it = l.begin(); it != l.end(); it++) { SPObject *child = *it; @@ -283,26 +283,26 @@ void SPPattern::modified(unsigned int flags) } } -void SPPattern::_on_ref_changed(SPObject *old_ref, SPObject *ref) +void SPPattern::_onRefChanged(SPObject *old_ref, SPObject *ref) { if (old_ref) { - modified_connection.disconnect(); + _modified_connection.disconnect(); } if (SP_IS_PATTERN(ref)) { - modified_connection = ref->connectModified(sigc::mem_fun(this, &SPPattern::_on_ref_modified)); + _modified_connection = ref->connectModified(sigc::mem_fun(this, &SPPattern::_onRefModified)); } - _on_ref_modified(ref, 0); + _onRefModified(ref, 0); } -void SPPattern::_on_ref_modified(SPObject * /*ref*/, guint /*flags*/) +void SPPattern::_onRefModified(SPObject * /*ref*/, guint /*flags*/) { requestModified(SP_OBJECT_MODIFIED_FLAG); // Conditional to avoid causing infinite loop if there's a cycle in the href chain. } -guint SPPattern::_count_hrefs(SPObject *o) const +guint SPPattern::_countHrefs(SPObject *o) const { if (!o) return 1; @@ -320,7 +320,7 @@ guint SPPattern::_count_hrefs(SPObject *o) const } for (SPObject *child = o->firstChild(); child != NULL; child = child->next) { - i += _count_hrefs(child); + i += _countHrefs(child); } return i; @@ -347,7 +347,7 @@ SPPattern *SPPattern::_chain() const SPPattern *SPPattern::clone_if_necessary(SPItem *item, const gchar *property) { SPPattern *pattern = this; - if (pattern->href.empty() || pattern->hrefcount > _count_hrefs(item)) { + if (pattern->href.empty() || pattern->hrefcount > _countHrefs(item)) { pattern = _chain(); Glib::ustring href = Glib::ustring::compose("url(#%1)", pattern->getRepr()->attribute("id")); @@ -367,14 +367,14 @@ void SPPattern::transform_multiply(Geom::Affine postmul, bool set) // otherwise the formula is much simpler if (set) { - patternTransform = postmul; + _pattern_transform = postmul; } else { - patternTransform = get_transform() * postmul; + _pattern_transform = getTransform() * postmul; } - patternTransform_set = true; + _pattern_transform_set = true; - Glib::ustring c = sp_svg_transform_write(patternTransform); + Glib::ustring c = sp_svg_transform_write(_pattern_transform); getRepr()->setAttribute("patternTransform", c); } @@ -414,7 +414,7 @@ const gchar *SPPattern::produce(const std::vector &reprs, return pat_id; } -SPPattern *SPPattern::get_root() +SPPattern *SPPattern::rootPattern() { for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { if (pat_i->firstChild()) { // find the first one with children @@ -430,70 +430,70 @@ SPPattern *SPPattern::get_root() // Access functions that look up fields up the chain of referenced patterns and return the first one which is set // FIXME: all of them must use chase_hrefs the same as in SPGradient, to avoid lockup on circular refs -SPPattern::PatternUnits SPPattern::get_pattern_units() const +SPPattern::PatternUnits SPPattern::patternUnits() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->patternUnits_set) - return pat_i->patternUnits; + if (pat_i->_pattern_units_set) + return pat_i->_pattern_units; } - return patternUnits; + return _pattern_units; } -SPPattern::PatternUnits SPPattern::get_pattern_content_units() const +SPPattern::PatternUnits SPPattern::patternContentUnits() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->patternContentUnits_set) - return pat_i->patternContentUnits; + if (pat_i->_pattern_content_units_set) + return pat_i->_pattern_content_units; } - return patternContentUnits; + return _pattern_content_units; } -Geom::Affine const &SPPattern::get_transform() const +Geom::Affine const &SPPattern::getTransform() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->patternTransform_set) - return pat_i->patternTransform; + if (pat_i->_pattern_transform_set) + return pat_i->_pattern_transform; } - return patternTransform; + return _pattern_transform; } -gdouble SPPattern::get_x() const +gdouble SPPattern::x() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->x._set) - return pat_i->x.computed; + if (pat_i->_x._set) + return pat_i->_x.computed; } return 0; } -gdouble SPPattern::get_y() const +gdouble SPPattern::y() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->y._set) - return pat_i->y.computed; + if (pat_i->_y._set) + return pat_i->_y.computed; } return 0; } -gdouble SPPattern::get_width() const +gdouble SPPattern::width() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->width._set) - return pat_i->width.computed; + if (pat_i->_width._set) + return pat_i->_width.computed; } return 0; } -gdouble SPPattern::get_height() const +gdouble SPPattern::height() const { for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { - if (pat_i->height._set) - return pat_i->height.computed; + if (pat_i->_height._set) + return pat_i->_height.computed; } return 0; } -Geom::OptRect SPPattern::get_viewbox() const +Geom::OptRect SPPattern::viewbox() const { Geom::OptRect viewbox; for (SPPattern const *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { @@ -505,7 +505,7 @@ Geom::OptRect SPPattern::get_viewbox() const return viewbox; } -bool SPPattern::_has_item_children() const +bool SPPattern::_hasItemChildren() const { bool hasChildren = false; for (SPObject const *child = firstChild(); child && !hasChildren; child = child->getNext()) { @@ -518,8 +518,8 @@ bool SPPattern::_has_item_children() const bool SPPattern::isValid() const { - double tile_width = get_width(); - double tile_height = get_height(); + double tile_width = width(); + double tile_height = height(); if (tile_width <= 0 || tile_height <= 0) return false; @@ -541,7 +541,7 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b for (SPPattern *pat_i = this; pat_i != NULL; pat_i = pat_i->ref ? pat_i->ref->getObject() : NULL) { // find the first one with item children - if (pat_i && SP_IS_OBJECT(pat_i) && pat_i->_has_item_children()) { + if (pat_i && SP_IS_OBJECT(pat_i) && pat_i->_hasItemChildren()) { shown = pat_i; break; // do not go further up the chain if children are found } @@ -575,11 +575,11 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // * "x", "y", and "patternTransform" transform tile to user space after tile is generated. // These functions recursively search up the tree to find the values. - double tile_x = get_x(); - double tile_y = get_y(); - double tile_width = get_width(); - double tile_height = get_height(); - if (bbox && (get_pattern_units() == UNITS_OBJECTBOUNDINGBOX)) { + double tile_x = x(); + double tile_y = y(); + double tile_width = width(); + double tile_height = height(); + if (bbox && (patternUnits() == UNITS_OBJECTBOUNDINGBOX)) { tile_x *= bbox->width(); tile_y *= bbox->height(); tile_width *= bbox->width(); @@ -591,7 +591,7 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b // Content to tile (pattern space) Geom::Affine content2ps; - Geom::OptRect effective_view_box = get_viewbox(); + Geom::OptRect effective_view_box = viewbox(); if (effective_view_box) { // viewBox to pattern server (using SPViewBox) viewBox = *effective_view_box; @@ -602,14 +602,14 @@ cairo_pattern_t *SPPattern::pattern_new(cairo_t *base_ct, Geom::OptRect const &b else { // Content to bbox - if (bbox && (get_pattern_content_units() == UNITS_OBJECTBOUNDINGBOX)) { + if (bbox && (patternContentUnits() == UNITS_OBJECTBOUNDINGBOX)) { content2ps = Geom::Affine(bbox->width(), 0.0, 0.0, bbox->height(), 0, 0); } } // Tile (pattern space) to user. - Geom::Affine ps2user = Geom::Translate(tile_x, tile_y) * get_transform(); + Geom::Affine ps2user = Geom::Translate(tile_x, tile_y) * getTransform(); // Transform of object with pattern (includes screen scaling) diff --git a/src/sp-pattern.h b/src/sp-pattern.h index 6c63d0727..145bb934e 100644 --- a/src/sp-pattern.h +++ b/src/sp-pattern.h @@ -47,15 +47,15 @@ public: Glib::ustring href; SPPatternReference *ref; - gdouble get_x() const; - gdouble get_y() const; - gdouble get_width() const; - gdouble get_height() const; - Geom::OptRect get_viewbox() const; - SPPattern::PatternUnits get_pattern_units() const; - SPPattern::PatternUnits get_pattern_content_units() const; - Geom::Affine const &get_transform() const; - SPPattern *get_root(); // TODO: const + gdouble x() const; + gdouble y() const; + gdouble width() const; + gdouble height() const; + Geom::OptRect viewbox() const; + SPPattern::PatternUnits patternUnits() const; + SPPattern::PatternUnits patternContentUnits() const; + Geom::Affine const &getTransform() const; + SPPattern *rootPattern(); // TODO: const SPPattern *clone_if_necessary(SPItem *item, const gchar *property); void transform_multiply(Geom::Affine postmul, bool set); @@ -79,40 +79,40 @@ protected: virtual void modified(unsigned int flags); private: - bool _has_item_children() const; - void _get_children(std::list &l); + bool _hasItemChildren() const; + void _getChildren(std::list &l); SPPattern *_chain() const; /** Count how many times pattern is used by the styles of o and its descendants */ - guint _count_hrefs(SPObject *o) const; + guint _countHrefs(SPObject *o) const; /** Gets called when the pattern is reattached to another */ - void _on_ref_changed(SPObject *old_ref, SPObject *ref); + void _onRefChanged(SPObject *old_ref, SPObject *ref); /** Gets called when the referenced is changed */ - void _on_ref_modified(SPObject *ref, guint flags); + void _onRefModified(SPObject *ref, guint flags); /* patternUnits and patternContentUnits attribute */ - PatternUnits patternUnits : 1; - bool patternUnits_set : 1; - PatternUnits patternContentUnits : 1; - bool patternContentUnits_set : 1; + PatternUnits _pattern_units : 1; + bool _pattern_units_set : 1; + PatternUnits _pattern_content_units : 1; + bool _pattern_content_units_set : 1; /* patternTransform attribute */ - Geom::Affine patternTransform; - bool patternTransform_set : 1; + Geom::Affine _pattern_transform; + bool _pattern_transform_set : 1; /* Tile rectangle */ - SVGLength x; - SVGLength y; - SVGLength width; - SVGLength height; + SVGLength _x; + SVGLength _y; + SVGLength _width; + SVGLength _height; - sigc::connection modified_connection; + sigc::connection _modified_connection; }; diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index e29420ac6..264ebff5a 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -300,7 +300,7 @@ void FillNStroke::performUpdate() psel->setGradientProperties( rg->getUnits(), rg->getSpread() ); } else if (SP_IS_PATTERN(server)) { - SPPattern *pat = SP_PATTERN(server)->get_root(); + SPPattern *pat = SP_PATTERN(server)->rootPattern(); psel->updatePatternList( pat ); } } @@ -656,7 +656,7 @@ void FillNStroke::updateFromPaint() SPPaintServer *server = (kind == FILL) ? selobj->style->getFillPaintServer() : selobj->style->getStrokePaintServer(); - if (SP_IS_PATTERN(server) && SP_PATTERN(server)->get_root() == pattern) + if (SP_IS_PATTERN(server) && SP_PATTERN(server)->rootPattern() == pattern) // only if this object's pattern is not rooted in our selected pattern, apply continue; } diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index a2160e3ad..e2483343f 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -822,7 +822,7 @@ ink_pattern_list_get (SPDocument *source) GSList *pl = NULL; GSList const *patterns = source->getResourceList("pattern"); for (GSList *l = const_cast(patterns); l != NULL; l = l->next) { - if (SP_PATTERN(l->data) == SP_PATTERN(l->data)->get_root()) { // only if this is a root pattern + if (SP_PATTERN(l->data) == SP_PATTERN(l->data)->rootPattern()) { // only if this is a root pattern pl = g_slist_prepend(pl, l->data); } } @@ -1142,7 +1142,7 @@ SPPattern *SPPaintSelector::getPattern() } g_free(paturn); } else { - pat = SP_PATTERN(patid)->get_root(); + pat = SP_PATTERN(patid)->rootPattern(); } if (pat && !SP_IS_PATTERN(pat)) { -- cgit v1.2.3 From 1caee668eff9e8afe58a7592eb78908c96b530ba Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Fri, 8 May 2015 19:16:19 +0200 Subject: fix for bug 168013 and its mask counterpart Fixed bugs: - https://launchpad.net/bugs/168013 (bzr r14129) --- src/sp-use.cpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/src/sp-use.cpp b/src/sp-use.cpp index 239f487a4..c8a0830c1 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -22,6 +22,8 @@ #include "display/drawing-group.h" #include "attributes.h" #include "document.h" +#include "sp-clippath.h" +#include "sp-mask.h" #include "sp-factory.h" #include "sp-flowregion.h" #include "uri.h" @@ -426,16 +428,43 @@ void SPUse::move_compensate(Geom::Affine const *mp) { return; Geom::Affine m(*mp); + Geom::Affine t = this->get_parent_transform(); + Geom::Affine clone_move = t.inverse() * m * t; // this is not a simple move, do not try to compensate - if (!(m.isTranslation())) + if (!(m.isTranslation())){ + //BUT move clippaths accordingly. + //if clone has a clippath, move it accordingly + if(clip_ref->getObject()){ + SPObject *clip = clip_ref->getObject()->firstChild() ; + while(clip){ + SPItem *item = (SPItem*) clip; + if(item){ + item->transform *= m; + Geom::Affine identity; + item->doWriteTransform(clip->getRepr(),item->transform, &identity); + } + clip = clip->getNext(); + } + } + if(mask_ref->getObject()){ + SPObject *mask = mask_ref->getObject()->firstChild() ; + while(mask){ + SPItem *item = (SPItem*) mask; + if(item){ + item->transform *= m; + Geom::Affine identity; + item->doWriteTransform(mask->getRepr(),item->transform, &identity); + } + mask = mask->getNext(); + } + } return; + } // restore item->transform field from the repr, in case it was changed by seltrans this->readAttr ("transform"); - Geom::Affine t = this->get_parent_transform(); - Geom::Affine clone_move = t.inverse() * m * t; // calculate the compensation matrix and the advertized movement matrix Geom::Affine advertized_move; @@ -449,6 +478,33 @@ void SPUse::move_compensate(Geom::Affine const *mp) { g_assert_not_reached(); } + //if clone has a clippath, move it accordingly + if(clip_ref->getObject()){ + SPObject *clip = clip_ref->getObject()->firstChild() ; + while(clip){ + SPItem *item = (SPItem*) clip; + if(item){ + item->transform *= clone_move.inverse(); + Geom::Affine identity; + item->doWriteTransform(clip->getRepr(),item->transform, &identity); + } + clip = clip->getNext(); + } + } + if(mask_ref->getObject()){ + SPObject *mask = mask_ref->getObject()->firstChild() ; + while(mask){ + SPItem *item = (SPItem*) mask; + if(item){ + item->transform *= clone_move.inverse(); + Geom::Affine identity; + item->doWriteTransform(mask->getRepr(),item->transform, &identity); + } + mask = mask->getNext(); + } + } + + // commit the compensation this->transform *= clone_move; this->doWriteTransform(this->getRepr(), this->transform, &advertized_move); -- cgit v1.2.3 From 76268cdf97916d0de571586ff1111b90c1a65286 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 9 May 2015 00:04:46 +0200 Subject: fixes various bugs with clipping and masking Fixed bugs: - https://launchpad.net/bugs/569281 - https://launchpad.net/bugs/1319171 - https://launchpad.net/bugs/1177650 (bzr r14130) --- src/selection-chemistry.cpp | 34 ++++++++++++++++------------------ src/sp-clippath.cpp | 3 +-- src/sp-mask.cpp | 3 +-- 3 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 2cd4f6b4e..f72bd1259 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3893,14 +3893,17 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ items_to_select.push_back(*i); } } else { - SPItem *i = NULL; - for (std::vector::const_iterator j=items.begin();j!=items.end();j++) { - i=*j; + SPItem *i = items.front(); + for (std::vector::const_iterator j=items.begin();(j+1)!=items.end();j++) { apply_to_items = g_slist_prepend(apply_to_items, i); items_to_select.push_back(i); + i=*(j+1); } - + Geom::Affine oldtr=i->transform; + i->doWriteTransform(i->getRepr(), i->i2doc_affine()); Inkscape::XML::Node *dup = SP_OBJECT(i)->getRepr()->duplicate(xml_doc); + i->doWriteTransform(i->getRepr(), oldtr); + mask_items = g_slist_prepend(mask_items, dup); if (remove_original) { @@ -3922,8 +3925,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(remove(items_to_select.begin(), items_to_select.end(), static_cast(i->data)), items_to_select.end()); + //items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), static_cast(i->data)), items_to_select.end()); } + items_to_select.clear(); sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); @@ -3936,30 +3940,25 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::GC::release(group); } + if (grouping == PREFS_MASKOBJECT_GROUPING_SEPARATE) { + items_to_select.clear(); + } + gchar const *attributeName = apply_clip_path ? "clip-path" : "mask"; for (GSList *i = apply_to_items; NULL != i; i = i->next) { SPItem *item = reinterpret_cast(i->data); // inverted object transform should be applied to a mask object, // as mask is calculated in user space (after applying transform) - Geom::Affine maskTransform(item->transform.inverse()); - - GSList *mask_items_dup = NULL; - for (GSList *mask_item = mask_items; NULL != mask_item; mask_item = mask_item->next) { - Inkscape::XML::Node *dup = reinterpret_cast(mask_item->data)->duplicate(xml_doc); - mask_items_dup = g_slist_prepend(mask_items_dup, dup); - } + Geom::Affine maskTransform(item->i2doc_affine().inverse()); gchar const *mask_id = NULL; if (apply_clip_path) { - mask_id = SPClipPath::create(mask_items_dup, doc, &maskTransform); + mask_id = SPClipPath::create(mask_items, doc, &maskTransform); } else { - mask_id = sp_mask_create(mask_items_dup, doc, &maskTransform); + mask_id = sp_mask_create(mask_items, doc, &maskTransform); } - g_slist_free(mask_items_dup); - mask_items_dup = NULL; - Inkscape::XML::Node *current = SP_OBJECT(i->data)->getRepr(); // Node to apply mask to Inkscape::XML::Node *apply_mask_to = current; @@ -3972,7 +3971,6 @@ 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(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); diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp index 3c6167438..0c13ca80d 100644 --- a/src/sp-clippath.cpp +++ b/src/sp-clippath.cpp @@ -313,8 +313,7 @@ const gchar *SPClipPath::create (GSList *reprs, SPDocument *document, Geom::Affi SPItem *item = SP_ITEM(clip_path_object->appendChildRepr(node)); if (NULL != applyTransform) { - Geom::Affine transform (item->transform); - transform *= (*applyTransform); + Geom::Affine transform (item->transform * (*applyTransform)); item->doWriteTransform(item->getRepr(), transform); } } diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index d60473e1d..c36c3c005 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -226,8 +226,7 @@ sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTr SPItem *item = SP_ITEM(mask_object->appendChildRepr(node)); if (NULL != applyTransform) { - Geom::Affine transform (item->transform); - transform *= (*applyTransform); + Geom::Affine transform (item->transform * (*applyTransform)); item->doWriteTransform(item->getRepr(), transform); } } -- cgit v1.2.3 From 7cb183695ed9eec9fb3e08045e4a265d10eca76e Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 9 May 2015 01:05:06 +0200 Subject: refactor sp_selection_set_mask (bzr r14131) --- src/selection-chemistry.cpp | 94 +++++++++++++++------------------------------ src/sp-clippath.cpp | 6 +-- src/sp-clippath.h | 2 +- src/sp-mask.cpp | 6 +-- src/sp-mask.h | 2 +- 5 files changed, 40 insertions(+), 70 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index f72bd1259..7be1e3ec0 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3787,13 +3787,11 @@ void sp_selection_set_clipgroup(SPDesktop *desktop) clone->setAttribute("inkscape:transform-center-y", inner->attribute("inkscape:transform-center-y"), false); const Geom::Affine maskTransform(Geom::Affine::identity()); - GSList *templist = NULL; - - templist = g_slist_append(templist, clone); + std::vector templist; + templist.push_back(clone); // add the new clone to the top of the original's parent gchar const *mask_id = SPClipPath::create(templist, doc, &maskTransform); - g_slist_free(templist); outer->setAttribute("clip-path", g_strdup_printf("url(#%s)", mask_id)); @@ -3851,9 +3849,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ selection->clear(); // create a list of duplicates - GSList *mask_items = NULL; - GSList *apply_to_items = NULL; - GSList *items_to_delete = NULL; + std::vector mask_items; + std::vector apply_to_items; + std::vector items_to_delete; std::vector items_to_select; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); @@ -3863,57 +3861,36 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ if (apply_to_layer) { // all selected items are used for mask, which is applied to a layer - apply_to_items = g_slist_prepend(apply_to_items, desktop->currentLayer()); + apply_to_items.push_back(SP_ITEM(desktop->currentLayer())); + } + + for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { + if((!topmost && !apply_to_layer && *i == items.front()) + || (topmost && !apply_to_layer && *i == items.back()) + || apply_to_layer){ - for (std::vector::const_iterator i=items.begin();i!=items.end();i++) { + Geom::Affine oldtr=(*i)->transform; + (*i)->doWriteTransform((*i)->getRepr(), (*i)->i2doc_affine()); Inkscape::XML::Node *dup = (*i)->getRepr()->duplicate(xml_doc); - mask_items = g_slist_prepend(mask_items, dup); + (*i)->doWriteTransform((*i)->getRepr(), oldtr); + mask_items.push_back(dup); - SPObject *item = *i; if (remove_original) { - items_to_delete = g_slist_prepend(items_to_delete, item); + items_to_delete.push_back(*i); } else { - items_to_select.push_back((SPItem*)item); + items_to_select.push_back(*i); } - } - } else if (!topmost) { - // topmost item is used as a mask, which is applied to other items in a selection - Inkscape::XML::Node *dup = items[0]->getRepr()->duplicate(xml_doc); - mask_items = g_slist_prepend(mask_items, dup); - - if (remove_original) { - SPObject *item = items.front(); - items_to_delete = g_slist_prepend(items_to_delete, item); - } - - 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); + continue; + }else{ + apply_to_items.push_back(*i); items_to_select.push_back(*i); } - } else { - SPItem *i = items.front(); - for (std::vector::const_iterator j=items.begin();(j+1)!=items.end();j++) { - apply_to_items = g_slist_prepend(apply_to_items, i); - items_to_select.push_back(i); - i=*(j+1); - } - Geom::Affine oldtr=i->transform; - i->doWriteTransform(i->getRepr(), i->i2doc_affine()); - Inkscape::XML::Node *dup = SP_OBJECT(i)->getRepr()->duplicate(xml_doc); - i->doWriteTransform(i->getRepr(), oldtr); - - mask_items = g_slist_prepend(mask_items, dup); - - if (remove_original) { - SPObject *item = reinterpret_cast(i); - items_to_delete = g_slist_prepend(items_to_delete, item); - } } + items.clear(); - if (apply_to_items && grouping == PREFS_MASKOBJECT_GROUPING_ALL) { + if (grouping == PREFS_MASKOBJECT_GROUPING_ALL) { // group all those objects into one group // and apply mask to that Inkscape::XML::Node *group = xml_doc->createElement("svg:g"); @@ -3922,19 +3899,16 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ group->setAttribute("inkscape:groupmode", "maskhelper"); std::vector reprs_to_group; - - 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(remove(items_to_select.begin(), items_to_select.end(), static_cast(i->data)), items_to_select.end()); + for (std::vector::const_iterator i = apply_to_items.begin(); i != apply_to_items.end(); i++) { + reprs_to_group.push_back(static_cast(*i)->getRepr()); } items_to_select.clear(); sp_selection_group_impl(reprs_to_group, group, xml_doc, doc); // 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)); + apply_to_items.clear(); + apply_to_items.push_back(dynamic_cast(doc->getObjectByRepr(group))); items_to_select.push_back((SPItem*)(doc->getObjectByRepr(group))); @@ -3946,8 +3920,8 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ gchar const *attributeName = apply_clip_path ? "clip-path" : "mask"; - for (GSList *i = apply_to_items; NULL != i; i = i->next) { - SPItem *item = reinterpret_cast(i->data); + for (std::vector::const_reverse_iterator i = apply_to_items.rbegin(); i != apply_to_items.rend(); i++) { + SPItem *item = reinterpret_cast(*i); // inverted object transform should be applied to a mask object, // as mask is calculated in user space (after applying transform) Geom::Affine maskTransform(item->i2doc_affine().inverse()); @@ -3959,7 +3933,7 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ mask_id = sp_mask_create(mask_items, doc, &maskTransform); } - Inkscape::XML::Node *current = SP_OBJECT(i->data)->getRepr(); + Inkscape::XML::Node *current = SP_OBJECT(*i)->getRepr(); // Node to apply mask to Inkscape::XML::Node *apply_mask_to = current; @@ -3988,15 +3962,11 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ } - g_slist_free(mask_items); - g_slist_free(apply_to_items); - - for (GSList *i = items_to_delete; NULL != i; i = i->next) { - SPObject *item = reinterpret_cast(i->data); + for (std::vector::const_iterator i = items_to_delete.begin(); i != items_to_delete.end(); i++) { + SPObject *item = reinterpret_cast(*i); item->deleteObject(false); items_to_select.erase(remove(items_to_select.begin(), items_to_select.end(), item), items_to_select.end()); } - g_slist_free(items_to_delete); selection->addList(items_to_select); diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp index 0c13ca80d..d66508eae 100644 --- a/src/sp-clippath.cpp +++ b/src/sp-clippath.cpp @@ -296,7 +296,7 @@ sp_clippath_view_list_remove(SPClipPathView *list, SPClipPathView *view) } // Create a mask element (using passed elements), add it to -const gchar *SPClipPath::create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform) +const gchar *SPClipPath::create (std::vector &reprs, SPDocument *document, Geom::Affine const* applyTransform) { Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -308,8 +308,8 @@ const gchar *SPClipPath::create (GSList *reprs, SPDocument *document, Geom::Affi const gchar *id = repr->attribute("id"); SPObject *clip_path_object = document->getObjectById(id); - for (GSList *it = reprs; it != NULL; it = it->next) { - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(it->data); + for (std::vector::const_iterator it = reprs.begin(); it != reprs.end(); it++) { + Inkscape::XML::Node *node = (*it); SPItem *item = SP_ITEM(clip_path_object->appendChildRepr(node)); if (NULL != applyTransform) { diff --git a/src/sp-clippath.h b/src/sp-clippath.h index eb8b14174..91dcfd625 100644 --- a/src/sp-clippath.h +++ b/src/sp-clippath.h @@ -45,7 +45,7 @@ public: unsigned int clipPathUnits : 1; SPClipPathView *display; - static char const *create(GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); + static char const *create(std::vector &reprs, SPDocument *document, Geom::Affine const* applyTransform); //static GType sp_clippath_get_type(void); Inkscape::DrawingItem *show(Inkscape::Drawing &drawing, unsigned int key); diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index c36c3c005..f8fb7aff4 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -209,7 +209,7 @@ Inkscape::XML::Node* SPMask::write(Inkscape::XML::Document* xml_doc, Inkscape::X // Create a mask element (using passed elements), add it to const gchar * -sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform) +sp_mask_create (std::vector &reprs, SPDocument *document, Geom::Affine const* applyTransform) { Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr(); @@ -221,8 +221,8 @@ sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTr const gchar *mask_id = repr->attribute("id"); SPObject *mask_object = document->getObjectById(mask_id); - for (GSList *it = reprs; it != NULL; it = it->next) { - Inkscape::XML::Node *node = (Inkscape::XML::Node *)(it->data); + for (std::vector::const_iterator it = reprs.begin(); it != reprs.end(); it++) { + Inkscape::XML::Node *node = (*it); SPItem *item = SP_ITEM(mask_object->appendChildRepr(node)); if (NULL != applyTransform) { diff --git a/src/sp-mask.h b/src/sp-mask.h index e991fedb6..3559483bb 100644 --- a/src/sp-mask.h +++ b/src/sp-mask.h @@ -108,6 +108,6 @@ protected: } }; -const char *sp_mask_create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform); +const char *sp_mask_create (std::vector &reprs, SPDocument *document, Geom::Affine const* applyTransform); #endif // SEEN_SP_MASK_H -- cgit v1.2.3 From 31c3977006f63720ca6aa473585760da7d59a833 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 9 May 2015 01:50:13 +0200 Subject: fixed logic error in earlier fix (bzr r14132) --- src/selection-chemistry.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 7be1e3ec0..4352878d6 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3924,15 +3924,6 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ SPItem *item = reinterpret_cast(*i); // inverted object transform should be applied to a mask object, // as mask is calculated in user space (after applying transform) - Geom::Affine maskTransform(item->i2doc_affine().inverse()); - - gchar const *mask_id = NULL; - if (apply_clip_path) { - mask_id = SPClipPath::create(mask_items, doc, &maskTransform); - } else { - mask_id = sp_mask_create(mask_items, doc, &maskTransform); - } - Inkscape::XML::Node *current = SP_OBJECT(*i)->getRepr(); // Node to apply mask to Inkscape::XML::Node *apply_mask_to = current; @@ -3953,11 +3944,22 @@ 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_back((SPItem*)(doc->getObjectByRepr(group))); + items_to_select.push_back(item = (SPItem*)(doc->getObjectByRepr(group))); Inkscape::GC::release(spnew); Inkscape::GC::release(group); } + + + Geom::Affine maskTransform(item->i2doc_affine().inverse()); + + gchar const *mask_id = NULL; + if (apply_clip_path) { + mask_id = SPClipPath::create(mask_items, doc, &maskTransform); + } else { + mask_id = sp_mask_create(mask_items, doc, &maskTransform); + } + apply_mask_to->setAttribute(attributeName, Glib::ustring("url(#") + mask_id + ')'); } -- cgit v1.2.3 From 13fc1db22c959600f7b179abf1a70ca42ab587de Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 9 May 2015 02:57:05 +0200 Subject: fix crash introduces by recent rev when clipping (bzr r14133) --- src/selection-chemistry.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 4352878d6..a21a82983 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -3924,6 +3924,9 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ SPItem *item = reinterpret_cast(*i); // inverted object transform should be applied to a mask object, // as mask is calculated in user space (after applying transform) + std::vector mask_items_dup; + for(std::vector::const_iterator it=mask_items.begin();it!=mask_items.end();it++) + mask_items_dup.push_back((*it)->duplicate(xml_doc)); Inkscape::XML::Node *current = SP_OBJECT(*i)->getRepr(); // Node to apply mask to Inkscape::XML::Node *apply_mask_to = current; @@ -3949,15 +3952,13 @@ void sp_selection_set_mask(SPDesktop *desktop, bool apply_clip_path, bool apply_ Inkscape::GC::release(group); } - - Geom::Affine maskTransform(item->i2doc_affine().inverse()); gchar const *mask_id = NULL; if (apply_clip_path) { - mask_id = SPClipPath::create(mask_items, doc, &maskTransform); + mask_id = SPClipPath::create(mask_items_dup, doc, &maskTransform); } else { - mask_id = sp_mask_create(mask_items, doc, &maskTransform); + mask_id = sp_mask_create(mask_items_dup, doc, &maskTransform); } apply_mask_to->setAttribute(attributeName, Glib::ustring("url(#") + mask_id + ')'); -- cgit v1.2.3 From ae5fc6f7c5d78bca051dcc308d3344c65fb802cb Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 9 May 2015 13:41:17 +0200 Subject: Using MODE_SOLID_COLOR in paint selector instead of duplicated MODE_COLOR_RGB and MODE_COLOR_CMYK (bzr r14059.1.22) --- src/widgets/fill-style.cpp | 6 ++---- src/widgets/paint-selector.cpp | 14 ++++++-------- src/widgets/paint-selector.h | 3 +-- 3 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/widgets/fill-style.cpp b/src/widgets/fill-style.cpp index 264ebff5a..fa5eabab4 100644 --- a/src/widgets/fill-style.cpp +++ b/src/widgets/fill-style.cpp @@ -431,8 +431,7 @@ void FillNStroke::dragFromPaint() update = true; switch (psel->mode) { - case SPPaintSelector::MODE_COLOR_RGB: - case SPPaintSelector::MODE_COLOR_CMYK: + case SPPaintSelector::MODE_SOLID_COLOR: { // local change, do not update from selection dragId = g_timeout_add_full(G_PRIORITY_DEFAULT, 100, dragDelayCB, this, 0); @@ -505,8 +504,7 @@ void FillNStroke::updateFromPaint() break; } - case SPPaintSelector::MODE_COLOR_RGB: - case SPPaintSelector::MODE_COLOR_CMYK: + case SPPaintSelector::MODE_SOLID_COLOR: { if (kind == FILL) { // FIXME: fix for GTK breakage, see comment in SelectedStyle::on_opacity_changed; here it results in losing release events diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 3b191b2f3..8dd309260 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -95,8 +95,7 @@ static gchar const* modeStrings[] = { "MODE_EMPTY", "MODE_MULTIPLE", "MODE_NONE", - "MODE_COLOR_RGB", - "MODE_COLOR_CMYK", + "MODE_SOLID_COLOR", "MODE_GRADIENT_LINEAR", "MODE_GRADIENT_RADIAL", "MODE_PATTERN", @@ -219,7 +218,7 @@ sp_paint_selector_init(SPPaintSelector *psel) psel->none = sp_paint_selector_style_button_add(psel, INKSCAPE_ICON("paint-none"), SPPaintSelector::MODE_NONE, _("No paint")); psel->solid = sp_paint_selector_style_button_add(psel, INKSCAPE_ICON("paint-solid"), - SPPaintSelector::MODE_COLOR_RGB, _("Flat color")); + SPPaintSelector::MODE_SOLID_COLOR, _("Flat color")); psel->gradient = sp_paint_selector_style_button_add(psel, INKSCAPE_ICON("paint-gradient-linear"), SPPaintSelector::MODE_GRADIENT_LINEAR, _("Linear gradient")); psel->radial = sp_paint_selector_style_button_add(psel, INKSCAPE_ICON("paint-gradient-radial"), @@ -407,8 +406,7 @@ void SPPaintSelector::setMode(Mode mode) case MODE_NONE: sp_paint_selector_set_mode_none(this); break; - case MODE_COLOR_RGB: - case MODE_COLOR_CMYK: + case MODE_SOLID_COLOR: sp_paint_selector_set_mode_color(this, mode); break; case MODE_GRADIENT_LINEAR: @@ -465,7 +463,7 @@ void SPPaintSelector::setColorAlpha(SPColor const &color, float alpha) #ifdef SP_PS_VERBOSE g_print("PaintSelector set RGBA\n"); #endif - setMode(MODE_COLOR_RGB); + setMode(MODE_SOLID_COLOR); } updating_color = true; @@ -681,7 +679,7 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec sp_paint_selector_set_style_buttons(psel, psel->solid); gtk_widget_set_sensitive(psel->style, TRUE); - if ((psel->mode == SPPaintSelector::MODE_COLOR_RGB) || (psel->mode == SPPaintSelector::MODE_COLOR_CMYK)) { + if ((psel->mode == SPPaintSelector::MODE_SOLID_COLOR)) { /* Already have color selector */ // Do nothing } else { @@ -1262,7 +1260,7 @@ SPPaintSelector::Mode SPPaintSelector::getModeForStyle(SPStyle const & style, Fi } } else if ( target.isColor() ) { // TODO this is no longer a valid assertion: - mode = MODE_COLOR_RGB; // so far only rgb can be read from svg + mode = MODE_SOLID_COLOR; // so far only rgb can be read from svg } else if ( target.isNone() ) { mode = MODE_NONE; } else { diff --git a/src/widgets/paint-selector.h b/src/widgets/paint-selector.h index 55f0e8ec9..23c2dd456 100644 --- a/src/widgets/paint-selector.h +++ b/src/widgets/paint-selector.h @@ -50,8 +50,7 @@ struct SPPaintSelector { MODE_EMPTY, MODE_MULTIPLE, MODE_NONE, - MODE_COLOR_RGB, - MODE_COLOR_CMYK, + MODE_SOLID_COLOR, MODE_GRADIENT_LINEAR, MODE_GRADIENT_RADIAL, #ifdef WITH_MESH -- cgit v1.2.3 From cd9885ddc7dfbf7769f902dd7ee043892a2c8ee9 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sat, 9 May 2015 14:53:54 +0200 Subject: fixed crash in paint selector when changing from gradient to solid color (bzr r14059.1.23) --- src/ui/selected-color.cpp | 17 ++++++++++------- src/ui/selected-color.h | 2 +- src/ui/widget/color-scales.cpp | 11 +++-------- src/widgets/paint-selector.cpp | 18 ++++++++++++++---- 4 files changed, 28 insertions(+), 20 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 7652e5acf..6573129d3 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -72,7 +72,7 @@ guint32 SelectedColor::value() const return color().toRGBA32(_alpha); } -void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha) +void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit_signal) { #ifdef DUMP_CHANGE_INFO g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); @@ -100,13 +100,16 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha) _color = color; _alpha = alpha; - _updating = true; - if (_held) { - signal_dragged.emit(); - } else { - signal_changed.emit(); + if (emit_signal) + { + _updating = true; + if (_held) { + signal_dragged.emit(); + } else { + signal_changed.emit(); + } + _updating = false; } - _updating = false; #ifdef DUMP_CHANGE_INFO } else { diff --git a/src/ui/selected-color.h b/src/ui/selected-color.h index 168099c82..e9e702d43 100644 --- a/src/ui/selected-color.h +++ b/src/ui/selected-color.h @@ -38,7 +38,7 @@ public: void setValue(guint32 value); guint32 value() const; - void setColorAlpha(SPColor const &color, gfloat alpha); + void setColorAlpha(SPColor const &color, gfloat alpha, bool emit_signal = true); void colorAlpha(SPColor &color, gfloat &alpha) const; void setHeld(bool held); diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index 5fa5af902..ead636406 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -376,8 +376,8 @@ void ColorScales::setMode(SPColorScalesMode mode) setScaled(_a[1], rgba[1]); setScaled(_a[2], rgba[2]); setScaled(_a[3], rgba[3]); - _updating = FALSE; _updateSliders(CSC_CHANNELS_ALL); + _updating = FALSE; break; case SP_COLOR_SCALES_MODE_HSV: _setRangeLimit(255.0); @@ -404,8 +404,8 @@ void ColorScales::setMode(SPColorScalesMode mode) setScaled(_a[1], c[1]); setScaled(_a[2], c[2]); setScaled(_a[3], rgba[3]); - _updating = FALSE; _updateSliders(CSC_CHANNELS_ALL); + _updating = FALSE; break; case SP_COLOR_SCALES_MODE_CMYK: _setRangeLimit(100.0); @@ -437,8 +437,8 @@ void ColorScales::setMode(SPColorScalesMode mode) setScaled(_a[3], c[3]); setScaled(_a[4], rgba[3]); - _updating = FALSE; _updateSliders(CSC_CHANNELS_ALL); + _updating = FALSE; break; default: g_warning("file %s: line %d: Illegal color selector mode", __FILE__, __LINE__); @@ -607,11 +607,6 @@ void ColorScales::_updateSliders(guint channels) break; } - // Force the internal color to be updated - if (!_updating) { - _recalcColor(); - } - #ifdef SPCS_PREVIEW rgba = sp_color_scales_get_rgba32(cs); sp_color_preview_set_rgba32(SP_COLOR_PREVIEW(_p), rgba); diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index 8dd309260..f9a537f41 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -657,7 +657,12 @@ void SPPaintSelector::onSelectedColorChanged() { if (updating_color) { return; } - g_signal_emit(G_OBJECT(this), psel_signals[CHANGED], 0); + + if (mode == MODE_SOLID_COLOR) { + g_signal_emit(G_OBJECT(this), psel_signals[CHANGED], 0); + } else { + g_warning("SPPaintSelector::onSelectedColorChanged(): selected color changed while not in color selection mode"); + } } static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelector::Mode /*mode*/) @@ -670,9 +675,14 @@ static void sp_paint_selector_set_mode_color(SPPaintSelector *psel, SPPaintSelec SPGradientSelector *gsel = getGradientFromData(psel); if (gsel) { SPGradient *gradient = gsel->getVector(); - SPColor color = gradient->getFirstStop()->specified_color; - float alpha = gradient->getFirstStop()->opacity; - psel->selected_color->setColorAlpha(color, alpha); + + // Gradient can be null if object paint is changed externally (ie. with a color picker tool) + if (gradient) + { + SPColor color = gradient->getFirstStop()->specified_color; + float alpha = gradient->getFirstStop()->opacity; + psel->selected_color->setColorAlpha(color, alpha, false); + } } } -- cgit v1.2.3 From 9b1d6715ff2a56c9f1b94c0f8474c3e4efd48539 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 9 May 2015 14:59:00 +0200 Subject: duplicating layers now respect prefs for clone relinking Fixed bugs: - https://launchpad.net/bugs/267565 (bzr r14134) --- src/selection-chemistry.cpp | 25 ++++++++++++++++++++----- src/selection-chemistry.h | 2 +- src/verbs.cpp | 36 +++--------------------------------- 3 files changed, 24 insertions(+), 39 deletions(-) diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index a21a82983..d6e9a1e32 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -107,6 +107,7 @@ SPCycleType SP_CYCLING = SP_CYCLE_FOCUS; #include "live_effects/effect.h" #include "live_effects/effect-enum.h" #include "live_effects/parameter/originalpath.h" +#include "layer-manager.h" #include "enums.h" #include "sp-item-group.h" @@ -438,7 +439,7 @@ static void add_ids_recursive(std::vector &ids, SPObject *obj) } } -void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) +void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone, bool duplicateLayer) { if (desktop == NULL) { return; @@ -449,12 +450,17 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) Inkscape::Selection *selection = desktop->getSelection(); // check if something is selected - if (selection->isEmpty()) { + if (selection->isEmpty() && !duplicateLayer) { desktop->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Select object(s) to duplicate.")); return; } std::vector reprs(selection->reprList()); + if(duplicateLayer){ + reprs.clear(); + reprs.push_back(desktop->currentLayer()->getRepr()); + } + selection->clear(); // sorting items from different parents sorts each parent's subset without possibly mixing @@ -474,7 +480,10 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) Inkscape::XML::Node *parent = old_repr->parent(); Inkscape::XML::Node *copy = old_repr->duplicate(xml_doc); - parent->appendChild(copy); + if(! duplicateLayer) + parent->appendChild(copy); + else + parent->addChild(copy, old_repr); if (relink_clones) { SPObject *old_obj = doc->getObjectByRepr(old_repr); @@ -535,8 +544,14 @@ void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone) DocumentUndo::done(desktop->getDocument(), SP_VERB_EDIT_DUPLICATE, _("Duplicate")); } - - selection->setReprList(newsel); + if(!duplicateLayer) + selection->setReprList(newsel); + else{ + SPObject* new_layer = doc->getObjectByRepr(newsel[0]); + gchar* name = g_strdup_printf(_("%s copy"), new_layer->label()); + desktop->layer_manager->renameLayer( new_layer, name, TRUE ); + g_free(name); + } } void sp_edit_clear_all(Inkscape::Selection *selection) diff --git a/src/selection-chemistry.h b/src/selection-chemistry.h index 8bcab664b..5bcc5b1ea 100644 --- a/src/selection-chemistry.h +++ b/src/selection-chemistry.h @@ -52,7 +52,7 @@ namespace LivePathEffect { } // namespace Inkscape void sp_selection_delete(SPDesktop *desktop); -void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone = false); +void sp_selection_duplicate(SPDesktop *desktop, bool suppressDone = false, bool duplicateLayer = false); void sp_edit_clear_all(Inkscape::Selection *selection); void sp_edit_select_all(SPDesktop *desktop); diff --git a/src/verbs.cpp b/src/verbs.cpp index ea2c06dcf..e0ef27b0d 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -1350,39 +1350,9 @@ void LayerVerb::perform(SPAction *action, void *data) } case SP_VERB_LAYER_DUPLICATE: { if ( dt->currentLayer() != dt->currentRoot() ) { - // Note with either approach: - // Any clone masters are duplicated, their clones use the *original*, - // but the duplicated master is not linked up as master nor clone of the original. -#if 0 - // Only copies selectable things, honoring locks, visibility, avoids sublayers. - SPObject *new_layer = Inkscape::create_layer(dt->currentRoot(), dt->currentLayer(), LPOS_BELOW); - if ( dt->currentLayer()->label() ) { - gchar* name = g_strdup_printf(_("%s copy"), dt->currentLayer()->label()); - dt->layer_manager->renameLayer( new_layer, name, TRUE ); - g_free(name); - } - sp_edit_select_all(dt); - sp_selection_duplicate(dt, true); - sp_selection_to_prev_layer(dt, true); - dt->setCurrentLayer(new_layer); - sp_edit_select_all(dt); -#else - // Copies everything, regardless of locks, visibility, sublayers. - //XML Tree being directly used here while it shouldn't be. - Inkscape::XML::Node *selected = dt->currentLayer()->getRepr(); - Inkscape::XML::Node *parent = selected->parent(); - Inkscape::XML::Node *dup = selected->duplicate(parent->document()); - parent->addChild(dup, selected); - SPObject *new_layer = dt->currentLayer()->next; - if (new_layer) { - if (new_layer->label()) { - gchar* name = g_strdup_printf(_("%s copy"), new_layer->label()); - dt->layer_manager->renameLayer( new_layer, name, TRUE ); - g_free(name); - } - dt->setCurrentLayer(new_layer); - } -#endif + + sp_selection_duplicate(dt, true, true); + DocumentUndo::done(dt->getDocument(), SP_VERB_LAYER_DUPLICATE, _("Duplicate layer")); -- cgit v1.2.3 From 5e862e0de5ba75615a722fff471008a3cedb3212 Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sat, 9 May 2015 17:39:31 +0200 Subject: Fix potential crash in FontLister (bzr r14135) --- src/libnrtype/font-lister.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp index a6ab3b239..70374864a 100644 --- a/src/libnrtype/font-lister.cpp +++ b/src/libnrtype/font-lister.cpp @@ -335,7 +335,7 @@ Glib::ustring FontLister::system_fontspec(Glib::ustring fontspec) PangoFontDescription *descr = pango_font_description_from_string(fontspec.c_str()); font_instance *res = (font_factory::Default())->Face(descr); - if (res->pFont) { + if (res && res->pFont) { PangoFontDescription *nFaceDesc = pango_font_describe(res->pFont); out = sp_font_description_get_family(nFaceDesc); } -- cgit v1.2.3 From 78cee203a59243dcabbf67499682ce720be6d1d6 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 9 May 2015 17:50:08 +0200 Subject: Remove documentUnits from live_effect/effect.cpp/h Remove units from fillet-chamfer and roughen (bzr r14136) --- src/live_effects/effect.cpp | 3 --- src/live_effects/effect.h | 1 - src/live_effects/lpe-fillet-chamfer.cpp | 7 +------ src/live_effects/lpe-fillet-chamfer.h | 1 - src/live_effects/lpe-roughen.cpp | 22 +++------------------- src/live_effects/lpe-roughen.h | 2 -- .../parameter/filletchamferpointarray.cpp | 12 +----------- .../parameter/filletchamferpointarray.h | 4 ---- src/ui/dialog/lpe-fillet-chamfer-properties.cpp | 22 ++-------------------- src/ui/dialog/lpe-fillet-chamfer-properties.h | 8 +------- 10 files changed, 8 insertions(+), 74 deletions(-) diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 1da364580..53097171b 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -364,7 +364,6 @@ Effect::Effect(LivePathEffectObject *lpeobject) lpeobj(lpeobject), concatenate_before_pwd2(false), sp_lpe_item(NULL), - defaultUnit("px"), current_zoom(1), sp_curve(NULL), provides_own_flash_paths(true), // is automatically set to false if providesOwnFlashPaths() is not overridden @@ -454,7 +453,6 @@ void Effect::doOnRemove (SPLPEItem const* /*lpeitem*/) void Effect::doOnApply_impl(SPLPEItem const* lpeitem) { sp_lpe_item = const_cast(lpeitem); - defaultUnit = sp_lpe_item->document->getDisplayUnit()->abbr; /*sp_curve = SP_SHAPE(sp_lpe_item)->getCurve(); pathvector_before_effect = sp_curve->get_pathvector();*/ doOnApply(lpeitem); @@ -463,7 +461,6 @@ void Effect::doOnApply_impl(SPLPEItem const* lpeitem) void Effect::doBeforeEffect_impl(SPLPEItem const* lpeitem) { sp_lpe_item = const_cast(lpeitem); - defaultUnit = sp_lpe_item->document->getDisplayUnit()->abbr; //printf("(SPLPEITEM*) %p\n", sp_lpe_item); SPShape * shape = dynamic_cast(sp_lpe_item); if(shape){ diff --git a/src/live_effects/effect.h b/src/live_effects/effect.h index ac1f0b8dc..a6b5a13ea 100644 --- a/src/live_effects/effect.h +++ b/src/live_effects/effect.h @@ -159,7 +159,6 @@ protected: bool concatenate_before_pwd2; SPLPEItem * sp_lpe_item; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. - Glib::ustring defaultUnit; // these get stored in doBeforeEffect_impl, and derived classes may do as they please with them. double current_zoom; std::vector selectedNodesPoints; SPCurve * sp_curve; diff --git a/src/live_effects/lpe-fillet-chamfer.cpp b/src/live_effects/lpe-fillet-chamfer.cpp index c8458b8cb..ca87c7be1 100644 --- a/src/live_effects/lpe-fillet-chamfer.cpp +++ b/src/live_effects/lpe-fillet-chamfer.cpp @@ -29,7 +29,6 @@ // for programmatically updating knots #include "ui/tools-switch.h" -#include // TODO due to internal breakage in glibmm headers, this must be last: #include @@ -57,7 +56,6 @@ LPEFilletChamfer::LPEFilletChamfer(LivePathEffectObject *lpeobject) : only_selected(_("Change only selected nodes"), _("Change only selected nodes"), "only_selected", &wr, this, false), flexible(_("Flexible radius size (%)"), _("Flexible radius size (%)"), "flexible", &wr, this, false), use_knot_distance(_("Use knots distance instead radius"), _("Use knots distance instead radius"), "use_knot_distance", &wr, this, false), - unit(_("Unit:"), _("Unit"), "unit", &wr, this), method(_("Method:"), _("Fillets methods"), "method", FMConverter, &wr, this, FM_AUTO), radius(_("Radius (unit or %):"), _("Radius, in unit or %"), "radius", &wr, this, 0.), chamfer_steps(_("Chamfer steps:"), _("Chamfer steps"), "chamfer_steps", &wr, this, 0), @@ -65,7 +63,6 @@ LPEFilletChamfer::LPEFilletChamfer(LivePathEffectObject *lpeobject) : helper_size(_("Helper size with direction:"), _("Helper size with direction"), "helper_size", &wr, this, 0) { registerParameter(&fillet_chamfer_values); - registerParameter(&unit); registerParameter(&method); registerParameter(&radius); registerParameter(&chamfer_steps); @@ -223,7 +220,7 @@ void LPEFilletChamfer::updateFillet() { double power = 0; if (!flexible) { - power = Inkscape::Util::Quantity::convert(radius, unit.get_abbreviation(), defaultUnit) * -1; + power = radius * -1; } else { power = radius; } @@ -444,9 +441,7 @@ void LPEFilletChamfer::doBeforeEffect(SPLPEItem const *lpeItem) } else { fillet_chamfer_values.set_helper_size(helper_size); } - fillet_chamfer_values.set_document_unit(defaultUnit); fillet_chamfer_values.set_use_distance(use_knot_distance); - fillet_chamfer_values.set_unit(unit.get_abbreviation()); SPCurve *c = SP_IS_PATH(lpeItem) ? static_cast(lpeItem) ->get_original_curve() : SP_SHAPE(lpeItem)->getCurve(); diff --git a/src/live_effects/lpe-fillet-chamfer.h b/src/live_effects/lpe-fillet-chamfer.h index fb06e804c..f8e03a399 100644 --- a/src/live_effects/lpe-fillet-chamfer.h +++ b/src/live_effects/lpe-fillet-chamfer.h @@ -66,7 +66,6 @@ private: BoolParam only_selected; BoolParam flexible; BoolParam use_knot_distance; - UnitParam unit; EnumParam method; ScalarParam radius; ScalarParam chamfer_steps; diff --git a/src/live_effects/lpe-roughen.cpp b/src/live_effects/lpe-roughen.cpp index 9d1c3152b..c5e002351 100644 --- a/src/live_effects/lpe-roughen.cpp +++ b/src/live_effects/lpe-roughen.cpp @@ -20,7 +20,6 @@ #include "live_effects/parameter/parameter.h" #include "helper/geom.h" #include -#include #include namespace Inkscape { @@ -36,7 +35,6 @@ DMConverter(DivisionMethodData, DM_END); LPERoughen::LPERoughen(LivePathEffectObject *lpeobject) : Effect(lpeobject), // initialise your parameters here: - unit(_("Unit"), _("Unit"), "unit", &wr, this), method(_("Method"), _("Division method"), "method", DMConverter, &wr, this, DM_SEGMENTS), max_segment_size(_("Max. segment size"), _("Max. segment size"), @@ -54,7 +52,6 @@ LPERoughen::LPERoughen(LivePathEffectObject *lpeobject) shift_node_handles(_("Shift node handles"), _("Shift node handles"), "shift_node_handles", &wr, this, true) { - registerParameter(&unit); registerParameter(&method); registerParameter(&max_segment_size); registerParameter(&segments); @@ -98,14 +95,6 @@ Gtk::Widget *LPERoughen::newWidget() if ((*it)->widget_is_visible) { Parameter *param = *it; Gtk::Widget *widg = dynamic_cast(param->param_newWidget()); - if (param->param_key == "unit") { - Gtk::Label *unit_label = Gtk::manage(new Gtk::Label( - Glib::ustring(_("Roughen unit")), Gtk::ALIGN_START)); - unit_label->set_use_markup(true); - vbox->pack_start(*unit_label, false, false, 2); - vbox->pack_start(*Gtk::manage(new Gtk::HSeparator()), - Gtk::PACK_EXPAND_WIDGET); - } if (param->param_key == "method") { Gtk::Label *method_label = Gtk::manage(new Gtk::Label( Glib::ustring(_("Add nodes Subdivide each segment")), @@ -160,11 +149,8 @@ double LPERoughen::sign(double random_number) Geom::Point LPERoughen::randomize() { - Inkscape::Util::Unit const *svg_units = SP_ACTIVE_DESKTOP->namedview->svg_units; - double displace_x_parsed = Inkscape::Util::Quantity::convert( - displace_x * global_randomize, unit.get_abbreviation(), svg_units->abbr); - double displace_y_parsed = Inkscape::Util::Quantity::convert( - displace_y * global_randomize, unit.get_abbreviation(), svg_units->abbr); + double displace_x_parsed = displace_x * global_randomize; + double displace_y_parsed = displace_y * global_randomize; Geom::Point output = Geom::Point(sign(displace_x_parsed), sign(displace_y_parsed)); return output; @@ -175,7 +161,6 @@ void LPERoughen::doEffect(SPCurve *curve) Geom::PathVector const original_pathv = pathv_to_linear_and_cubic_beziers(curve->get_pathvector()); curve->reset(); - Inkscape::Util::Unit const *svg_units = SP_ACTIVE_DESKTOP->namedview->svg_units; for (Geom::PathVector::const_iterator path_it = original_pathv.begin(); path_it != original_pathv.end(); ++path_it) { if (path_it->empty()) @@ -220,8 +205,7 @@ void LPERoughen::doEffect(SPCurve *curve) } else { nCurve->lineto(point3); } - double length = Inkscape::Util::Quantity::convert( - curve_it1->length(0.001), svg_units->abbr, unit.get_abbreviation()); + double length = curve_it1->length(0.001); std::size_t splits = 0; if (method == DM_SEGMENTS) { splits = segments; diff --git a/src/live_effects/lpe-roughen.h b/src/live_effects/lpe-roughen.h index ed9f06cf7..2b285cd40 100644 --- a/src/live_effects/lpe-roughen.h +++ b/src/live_effects/lpe-roughen.h @@ -17,7 +17,6 @@ #include "live_effects/parameter/parameter.h" #include "live_effects/parameter/path.h" #include "live_effects/parameter/bool.h" -#include "live_effects/parameter/unit.h" #include "live_effects/parameter/random.h" namespace Inkscape { @@ -45,7 +44,6 @@ public: virtual Gtk::Widget *newWidget(); private: - UnitParam unit; EnumParam method; ScalarParam max_segment_size; ScalarParam segments; diff --git a/src/live_effects/parameter/filletchamferpointarray.cpp b/src/live_effects/parameter/filletchamferpointarray.cpp index f05f401e4..10ded4d9f 100644 --- a/src/live_effects/parameter/filletchamferpointarray.cpp +++ b/src/live_effects/parameter/filletchamferpointarray.cpp @@ -354,11 +354,6 @@ void FilletChamferPointArrayParam::set_pwd2( last_pwd2_normal = pwd2_normal_in; } -void FilletChamferPointArrayParam::set_document_unit(Glib::ustring value_document_unit) -{ - documentUnit = value_document_unit; -} - void FilletChamferPointArrayParam::set_helper_size(int hs) { helper_size = hs; @@ -374,11 +369,6 @@ void FilletChamferPointArrayParam::set_use_distance(bool use_knot_distance ) use_distance = use_knot_distance; } -void FilletChamferPointArrayParam::set_unit(const gchar *abbr) -{ - unit = abbr; -} - void FilletChamferPointArrayParam::updateCanvasIndicators() { std::vector ts = data(); @@ -812,7 +802,7 @@ void FilletChamferPointArrayParamKnotHolderEntity::knot_click(guint state) bool aprox = (A[0].degreesOfFreedom() != 2 || B[0].degreesOfFreedom() != 2) && !_pparam->use_distance?true:false; Geom::Point offset = Geom::Point(xModified, _pparam->_vector.at(_index).y()); Inkscape::UI::Dialogs::FilletChamferPropertiesDialog::showDialog( - this->desktop, offset, this, _pparam->unit, _pparam->use_distance, aprox, _pparam->documentUnit); + this->desktop, offset, this, _pparam->use_distance, aprox); } } diff --git a/src/live_effects/parameter/filletchamferpointarray.h b/src/live_effects/parameter/filletchamferpointarray.h index 7849d5afb..9bfd86b41 100644 --- a/src/live_effects/parameter/filletchamferpointarray.h +++ b/src/live_effects/parameter/filletchamferpointarray.h @@ -53,8 +53,6 @@ public: virtual void set_helper_size(int hs); virtual void set_use_distance(bool use_knot_distance); virtual void set_chamfer_steps(int value_chamfer_steps); - virtual void set_document_unit(Glib::ustring value_document_unit); - virtual void set_unit(const gchar *abbr); virtual void addCanvasIndicators(SPLPEItem const *lpeitem, std::vector &hp_vec); virtual bool providesKnotHolderEntities() const { @@ -89,8 +87,6 @@ private: int helper_size; int chamfer_steps; bool use_distance; - const gchar *unit; - Glib::ustring documentUnit; Geom::PathVector hp; Geom::Piecewise > last_pwd2; diff --git a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp index f63b19e86..061055feb 100644 --- a/src/ui/dialog/lpe-fillet-chamfer-properties.cpp +++ b/src/ui/dialog/lpe-fillet-chamfer-properties.cpp @@ -27,7 +27,6 @@ #include "selection-chemistry.h" #include "ui/icon-names.h" #include "ui/widget/imagetoggler.h" -#include "util/units.h" #include //#include "event-context.h" @@ -122,18 +121,14 @@ void FilletChamferPropertiesDialog::showDialog( SPDesktop *desktop, Geom::Point knotpoint, const Inkscape::LivePathEffect:: FilletChamferPointArrayParamKnotHolderEntity *pt, - const gchar *unit, bool use_distance, - bool aprox_radius, - Glib::ustring documentUnit) + bool aprox_radius) { FilletChamferPropertiesDialog *dialog = new FilletChamferPropertiesDialog(); dialog->_set_desktop(desktop); - dialog->_set_unit(unit); dialog->_set_use_distance(use_distance); dialog->_set_aprox(aprox_radius); - dialog->_set_document_unit(documentUnit); dialog->_set_knot_point(knotpoint); dialog->_set_pt(pt); @@ -168,7 +163,6 @@ void FilletChamferPropertiesDialog::_apply() } d_pos = _index + (d_pos / 100); } else { - d_pos = Inkscape::Util::Quantity::convert(d_pos, unit, document_unit); d_pos = d_pos * -1; } _knotpoint->knot_set_offset(Geom::Point(d_pos, d_width)); @@ -218,11 +212,9 @@ void FilletChamferPropertiesDialog::_set_knot_point(Geom::Point knotpoint) _fillet_chamfer_position_label.set_label(_("Position (%):")); } else { _flexible = false; - std::string posConcat = Glib::ustring::compose (_("%1 (%2):"), distance_or_radius, unit); + std::string posConcat = Glib::ustring::compose (_("%1:"), distance_or_radius); _fillet_chamfer_position_label.set_label(_(posConcat.c_str())); position = knotpoint[Geom::X] * -1; - - position = Inkscape::Util::Quantity::convert(position, document_unit, unit); } _fillet_chamfer_position_numeric.set_value(position); if (knotpoint.y() == 1) { @@ -247,16 +239,6 @@ void FilletChamferPropertiesDialog::_set_pt( pt); } -void FilletChamferPropertiesDialog::_set_unit(const gchar *abbr) -{ - unit = abbr; -} - -void FilletChamferPropertiesDialog::_set_document_unit(Glib::ustring abbr) -{ - document_unit = abbr; -} - void FilletChamferPropertiesDialog::_set_use_distance(bool use_knot_distance) { use_distance = use_knot_distance; diff --git a/src/ui/dialog/lpe-fillet-chamfer-properties.h b/src/ui/dialog/lpe-fillet-chamfer-properties.h index 870a1734f..99494bd63 100644 --- a/src/ui/dialog/lpe-fillet-chamfer-properties.h +++ b/src/ui/dialog/lpe-fillet-chamfer-properties.h @@ -30,10 +30,8 @@ public: static void showDialog(SPDesktop *desktop, Geom::Point knotpoint, const Inkscape::LivePathEffect:: FilletChamferPointArrayParamKnotHolderEntity *pt, - const gchar *unit, bool use_distance, - bool aprox_radius, - Glib::ustring documentUnit); + bool aprox_radius); protected: @@ -68,15 +66,11 @@ protected: void _set_desktop(SPDesktop *desktop); void _set_pt(const Inkscape::LivePathEffect:: FilletChamferPointArrayParamKnotHolderEntity *pt); - void _set_unit(const gchar *abbr); - void _set_document_unit(Glib::ustring abbr); void _set_use_distance(bool use_knot_distance); void _set_aprox(bool aprox_radius); void _apply(); void _close(); bool _flexible; - const gchar *unit; - Glib::ustring document_unit; bool use_distance; bool aprox; void _set_knot_point(Geom::Point knotpoint); -- cgit v1.2.3 From 1908c074b0593036c216aed198b66d4ccdb02e2d Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 9 May 2015 17:54:59 +0200 Subject: Minor changes in default Doxyfile (bzr r14137) --- Doxyfile | 264 +++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 156 insertions(+), 108 deletions(-) diff --git a/Doxyfile b/Doxyfile index f65bc12d1..82bc83328 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.6 +# Doxyfile 1.8.8 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -38,13 +38,13 @@ PROJECT_NAME = inkscape # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = +PROJECT_NUMBER = # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = "Vector Graphics Editor" +PROJECT_BRIEF = Editor # With the PROJECT_LOGO tag one can specify an logo or icon that is included in # the documentation. The maximum height of the logo should not exceed 55 pixels @@ -70,6 +70,14 @@ OUTPUT_DIRECTORY = doxygen CREATE_SUBDIRS = NO +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. @@ -110,7 +118,7 @@ REPEAT_BRIEF = YES # the entity):The $name class, The $name widget, The $name file, is, provides, # specifies, contains, represents, a, an and the. -ABBREVIATE_BRIEF = +ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # doxygen will generate a detailed section even if there is only a brief @@ -144,7 +152,7 @@ FULL_PATH_NAMES = YES # will be relative from the directory where doxygen is started. # This tag requires that the tag FULL_PATH_NAMES is set to YES. -STRIP_FROM_PATH = +STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the # path mentioned in the documentation of a class, which tells the reader which @@ -153,7 +161,7 @@ STRIP_FROM_PATH = # specify the list of include paths that are normally passed to the compiler # using the -I flag. -STRIP_FROM_INC_PATH = +STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but # less readable) file names. This can be useful is your file systems doesn't @@ -220,13 +228,13 @@ TAB_SIZE = 4 # "Side Effects:". You can put \n's in the value part of an alias to insert # newlines. -ALIASES = +ALIASES = # This tag can be used to specify a number of word-keyword mappings (TCL only). # A mapping has the form "name=value". For example adding "class=itcl::class" # will allow you to use the command class in the itcl::class meaning. -TCL_SUBST = +TCL_SUBST = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources # only. Doxygen will then generate output that is more tailored for C. For @@ -234,7 +242,7 @@ TCL_SUBST = # members will be omitted, etc. # The default value is: NO. -OPTIMIZE_OUTPUT_FOR_C = YES +OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or # Python sources only. Doxygen will then generate output that is more tailored @@ -261,16 +269,19 @@ OPTIMIZE_OUTPUT_VHDL = NO # extension. Doxygen has a built-in mapping, but you can override or extend it # using this tag. The format is ext=language, where ext is a file extension, and # language is one of the parsers supported by doxygen: IDL, Java, Javascript, -# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make -# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C -# (default is Fortran), use: inc=Fortran f=C. +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. # # Note For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. -EXTENSION_MAPPING = +EXTENSION_MAPPING = # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments # according to the Markdown format, which allows for more readable @@ -384,7 +395,7 @@ TYPEDEF_HIDES_STRUCT = NO # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. -LOOKUP_CACHE_SIZE = 1 +LOOKUP_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options @@ -494,7 +505,7 @@ CASE_SENSE_NAMES = YES # scope will be hidden. # The default value is: NO. -HIDE_SCOPE_NAMES = YES +HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. @@ -606,7 +617,7 @@ GENERATE_DEPRECATEDLIST= YES # sections, marked by \if ... \endif and \cond # ... \endcond blocks. -ENABLED_SECTIONS = +ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the # initial value of a variable or macro / define can have for it to appear in the @@ -648,7 +659,7 @@ SHOW_NAMESPACES = YES # by doxygen. Whatever the program writes to standard output is used as the file # version. For an example see the documentation. -FILE_VERSION_FILTER = +FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated @@ -661,7 +672,7 @@ FILE_VERSION_FILTER = # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE # tag is left empty. -LAYOUT_FILE = +LAYOUT_FILE = # The CITE_BIB_FILES tag can be used to specify one or more bib files containing # the reference definitions. This must be a list of .bib files. The .bib @@ -669,10 +680,9 @@ LAYOUT_FILE = # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. # For LaTeX the style of the bibliography can be controlled using # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. Do not use file names with spaces, bibtex cannot handle them. See -# also \cite for info how to create references. +# search path. See also \cite for info how to create references. -CITE_BIB_FILES = +CITE_BIB_FILES = #--------------------------------------------------------------------------- # Configuration options related to warning and progress messages @@ -764,7 +774,6 @@ INPUT_ENCODING = UTF-8 # *.qsf, *.as and *.js. FILE_PATTERNS = *.cpp \ - *.dox \ *.h # The RECURSIVE tag can be used to specify whether or not subdirectories should @@ -780,7 +789,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = +EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -796,7 +805,7 @@ EXCLUDE_SYMLINKS = YES # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories for example use the pattern */test/* -EXCLUDE_PATTERNS = +EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the @@ -807,20 +816,20 @@ EXCLUDE_PATTERNS = # Note that the wildcards are matched against the file with absolute path, so to # exclude all test directories use the pattern */test/* -EXCLUDE_SYMBOLS = +EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or directories # that contain example code fragments that are included (see the \include # command). -EXAMPLE_PATH = +EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and # *.h) to filter out the source-files in the directories. If left blank all # files are included. -EXAMPLE_PATTERNS = +EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude commands @@ -833,7 +842,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = +IMAGE_PATH = # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program @@ -850,7 +859,7 @@ IMAGE_PATH = # code is scanned, but not when the output code is generated. If lines are added # or removed, the anchors will not be placed correctly. -INPUT_FILTER = +INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. Doxygen will compare the file name with each pattern and apply the @@ -859,7 +868,7 @@ INPUT_FILTER = # filters are used. If the FILTER_PATTERNS tag is empty or if none of the # patterns match the file name, INPUT_FILTER is applied. -FILTER_PATTERNS = +FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER ) will also be used to filter the input files that are used for @@ -874,14 +883,14 @@ FILTER_SOURCE_FILES = NO # *.ext= (so without naming a filter). # This tag requires that the tag FILTER_SOURCE_FILES is set to YES. -FILTER_SOURCE_PATTERNS = +FILTER_SOURCE_PATTERNS = # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that # is part of the input, its contents will be placed on the main page # (index.html). This can be useful if you have a project on for instance GitHub # and want to reuse the introduction page also for the doxygen output. -USE_MDFILE_AS_MAINPAGE = +USE_MDFILE_AS_MAINPAGE = #--------------------------------------------------------------------------- # Configuration options related to source browsing @@ -894,7 +903,7 @@ USE_MDFILE_AS_MAINPAGE = # also VERBATIM_HEADERS is set to NO. # The default value is: NO. -SOURCE_BROWSER = NO +SOURCE_BROWSER = YES # Setting the INLINE_SOURCES tag to YES will include the body of functions, # classes and enums directly into the documentation. @@ -969,6 +978,25 @@ USE_HTAGS = NO VERBATIM_HEADERS = NO +# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# compiled with the --with-libclang option. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -993,7 +1021,7 @@ COLS_IN_ALPHA_INDEX = 5 # while generating the index headers. # This tag requires that the tag ALPHABETICAL_INDEX is set to YES. -IGNORE_PREFIX = +IGNORE_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the HTML output @@ -1037,7 +1065,7 @@ HTML_FILE_EXTENSION = .html # of the possible markers and block names see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_HEADER = +HTML_HEADER = # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each # generated HTML page. If the tag is left blank doxygen will generate a standard @@ -1047,7 +1075,7 @@ HTML_HEADER = # that doxygen normally uses. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_FOOTER = +HTML_FOOTER = # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style # sheet that is used by each HTML page. It can be used to fine-tune the look of @@ -1059,18 +1087,20 @@ HTML_FOOTER = # obsolete. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_STYLESHEET = +HTML_STYLESHEET = -# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user- -# defined cascading style sheet that is included after the standard style sheets +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the # standard style sheet and is therefor more robust against future updates. -# Doxygen will copy the style sheet file to the output directory. For an example -# see the documentation. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra stylesheet files is of importance (e.g. the last +# stylesheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1080,7 +1110,7 @@ HTML_EXTRA_STYLESHEET = # files will be copied as-is; there are no commands or markers available. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_FILES = +HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen # will adjust the colors in the stylesheet and background images according to @@ -1208,7 +1238,7 @@ GENERATE_HTMLHELP = NO # written to the html output directory. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_FILE = +CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path # including file name) of the HTML help compiler ( hhc.exe). If non-empty @@ -1216,7 +1246,7 @@ CHM_FILE = # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -HHC_LOCATION = +HHC_LOCATION = # The GENERATE_CHI flag controls if a separate .chi index file is generated ( # YES) or that it should be included in the master .chm file ( NO). @@ -1229,10 +1259,11 @@ GENERATE_CHI = NO # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. -CHM_INDEX_ENCODING = +CHM_INDEX_ENCODING = # The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. +# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1259,7 +1290,7 @@ GENERATE_QHP = NO # the HTML output folder. # This tag requires that the tag GENERATE_QHP is set to YES. -QCH_FILE = +QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help # Project output. For more information please see Qt Help Project / Namespace @@ -1284,7 +1315,7 @@ QHP_VIRTUAL_FOLDER = doc # filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_NAME = +QHP_CUST_FILTER_NAME = # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see Qt Help Project / Custom @@ -1292,21 +1323,21 @@ QHP_CUST_FILTER_NAME = # filters). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_CUST_FILTER_ATTRS = +QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's filter section matches. Qt Help Project / Filter Attributes (see: # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). # This tag requires that the tag GENERATE_QHP is set to YES. -QHP_SECT_FILTER_ATTRS = +QHP_SECT_FILTER_ATTRS = # The QHG_LOCATION tag can be used to specify the location of Qt's # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the # generated .qhp file. # This tag requires that the tag GENERATE_QHP is set to YES. -QHG_LOCATION = +QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be # generated, together with the HTML files, they form an Eclipse help plugin. To @@ -1354,7 +1385,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that # doxygen will group on one line in the generated HTML documentation. @@ -1439,7 +1470,7 @@ MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_EXTENSIONS = +MATHJAX_EXTENSIONS = # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces # of code that will be used on startup of the MathJax code. See the MathJax site @@ -1447,7 +1478,7 @@ MATHJAX_EXTENSIONS = # example see the documentation. # This tag requires that the tag USE_MATHJAX is set to YES. -MATHJAX_CODEFILE = +MATHJAX_CODEFILE = # When the SEARCHENGINE tag is enabled doxygen will generate a search box for # the HTML output. The underlying search engine uses javascript and DHTML and @@ -1468,15 +1499,15 @@ MATHJAX_CODEFILE = # The default value is: YES. # This tag requires that the tag GENERATE_HTML is set to YES. -SEARCHENGINE = NO +SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a web server instead of a web client using Javascript. There -# are two flavours of web server based searching depending on the -# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for -# searching and an index file used by the script. When EXTERNAL_SEARCH is -# enabled the indexing and searching needs to be provided by external tools. See -# the section "External Indexing and Searching" for details. +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. # The default value is: NO. # This tag requires that the tag SEARCHENGINE is set to YES. @@ -1507,7 +1538,7 @@ EXTERNAL_SEARCH = NO # Searching" for details. # This tag requires that the tag SEARCHENGINE is set to YES. -SEARCHENGINE_URL = +SEARCHENGINE_URL = # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed # search data is written to a file for indexing by an external tool. With the @@ -1523,7 +1554,7 @@ SEARCHDATA_FILE = searchdata.xml # projects and redirect the results back to the right project. # This tag requires that the tag SEARCHENGINE is set to YES. -EXTERNAL_SEARCH_ID = +EXTERNAL_SEARCH_ID = # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen # projects other than the one defined by this configuration file, but that are @@ -1533,7 +1564,7 @@ EXTERNAL_SEARCH_ID = # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... # This tag requires that the tag SEARCHENGINE is set to YES. -EXTRA_SEARCH_MAPPINGS = +EXTRA_SEARCH_MAPPINGS = #--------------------------------------------------------------------------- # Configuration options related to the LaTeX output @@ -1605,22 +1636,24 @@ EXTRA_PACKAGES = amsmath \ # # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, -# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will -# replace them by respectively the title of the page, the current date and time, -# only the current date, the version number of doxygen, the project name (see -# PROJECT_NAME), or the project number (see PROJECT_NUMBER). +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, +# for the replacement values of the other commands the user is refered to +# HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_HEADER = +LATEX_HEADER = # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the # generated LaTeX document. The footer should contain everything after the last -# chapter. If it is left blank doxygen will generate a standard footer. +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. # # Note: Only use a user-defined footer if you know what you are doing! # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_FOOTER = +LATEX_FOOTER = # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output @@ -1628,7 +1661,7 @@ LATEX_FOOTER = # markers available. # This tag requires that the tag GENERATE_LATEX is set to YES. -LATEX_EXTRA_FILES = +LATEX_EXTRA_FILES = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will @@ -1639,7 +1672,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = NO -# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate # the PDF file directly from the LaTeX files. Set this option to YES to get a # higher quality PDF documentation. # The default value is: YES. @@ -1728,14 +1761,14 @@ RTF_HYPERLINKS = NO # default style sheet that doxygen normally uses. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_STYLESHEET_FILE = +RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an RTF document. Syntax is # similar to doxygen's config file. A template extensions file can be generated # using doxygen -e rtf extensionFile. # This tag requires that the tag GENERATE_RTF is set to YES. -RTF_EXTENSIONS_FILE = +RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # Configuration options related to the man page output @@ -1765,6 +1798,13 @@ MAN_OUTPUT = man MAN_EXTENSION = .3 +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it # will generate one additional man file for each entity documented in the real # man page(s). These additional files only source the real man page, but without @@ -1792,18 +1832,6 @@ GENERATE_XML = NO XML_OUTPUT = xml -# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_SCHEMA = - -# The XML_DTD tag can be used to specify a XML DTD, which can be used by a -# validating XML parser to check the syntax of the XML files. -# This tag requires that the tag GENERATE_XML is set to YES. - -XML_DTD = - # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size @@ -1831,6 +1859,15 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook +# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -1879,7 +1916,7 @@ PERLMOD_PRETTY = YES # overwrite each other's variables. # This tag requires that the tag GENERATE_PERLMOD is set to YES. -PERLMOD_MAKEVAR_PREFIX = +PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor @@ -1928,7 +1965,7 @@ INCLUDE_PATH = src # used. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -INCLUDE_FILE_PATTERNS = +INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that are # defined before the preprocessor is started (similar to the -D option of e.g. @@ -1938,7 +1975,7 @@ INCLUDE_FILE_PATTERNS = # recursively expanded use the := operator instead of the = operator. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -PREDEFINED = +PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this # tag can be used to specify a list of macro names that should be expanded. The @@ -1947,12 +1984,12 @@ PREDEFINED = # definition found in the source code. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. -EXPAND_AS_DEFINED = +EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will -# remove all refrences to function-like macros that are alone on a line, have an -# all uppercase name, and do not end with a semicolon. Such function macros are -# typically used for boiler-plate code, and will confuse the parser if not +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not # removed. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -1972,17 +2009,17 @@ SKIP_FUNCTION_MACROS = YES # where loc1 and loc2 can be relative or absolute paths or URLs. See the # section "Linking to external documentation" for more information about the use # of tag files. -# Note: Each tag file must have an unique name (where the name does NOT include +# Note: Each tag file must have a unique name (where the name does NOT include # the path). If a tag file is not located in the directory in which doxygen is # run, you must also specify the path to the tagfile here. -TAGFILES = +TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create a # tag file that is based on the input files it reads. See section "Linking to # external documentation" for more information about the usage of tag files. -GENERATE_TAGFILE = +GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external class will be listed in the # class index. If set to NO only the inherited external classes will be listed. @@ -2030,14 +2067,14 @@ CLASS_DIAGRAMS = YES # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. -MSCGEN_PATH = +MSCGEN_PATH = # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. # If left empty dia is assumed to be found in the default search path. -DIA_PATH = +DIA_PATH = # If set to YES, the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. @@ -2050,7 +2087,7 @@ HIDE_UNDOC_RELATIONS = YES # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent # Bell Labs. The other options in this section have no effect if this option is # set to NO -# The default value is: NO. +# The default value is: YES. HAVE_DOT = YES @@ -2064,7 +2101,7 @@ HAVE_DOT = YES DOT_NUM_THREADS = 0 -# When you want a differently looking font n the dot files that doxygen +# When you want a differently looking font in the dot files that doxygen # generates you can specify the font name using DOT_FONTNAME. You need to make # sure dot is able to find the font, which can be done by putting it in a # standard location or by setting the DOTFONTPATH environment variable or by @@ -2072,7 +2109,7 @@ DOT_NUM_THREADS = 0 # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = +DOT_FONTNAME = FreeSans # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. @@ -2086,7 +2123,7 @@ DOT_FONTSIZE = 10 # the path where dot can find it using this tag. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTPATH = +DOT_FONTPATH = # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for # each documented class showing the direct and indirect inheritance relations. @@ -2202,7 +2239,9 @@ DIRECTORY_GRAPH = YES # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order # to make the SVG files visible in IE 9+ (other browsers do not have this # requirement). -# Possible values are: png, jpg, gif and svg. +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd and svg. # The default value is: png. # This tag requires that the tag HAVE_DOT is set to YES. @@ -2224,26 +2263,35 @@ INTERACTIVE_SVG = NO # found. If left blank, it is assumed the dot tool can be found in the path. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_PATH = +DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the \dotfile # command). # This tag requires that the tag HAVE_DOT is set to YES. -DOTFILE_DIRS = +DOTFILE_DIRS = # The MSCFILE_DIRS tag can be used to specify one or more directories that # contain msc files that are included in the documentation (see the \mscfile # command). -MSCFILE_DIRS = +MSCFILE_DIRS = # The DIAFILE_DIRS tag can be used to specify one or more directories that # contain dia files that are included in the documentation (see the \diafile # command). -DIAFILE_DIRS = +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. +# This tag requires that the tag HAVE_DOT is set to YES. + +PLANTUML_JAR_PATH = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes -- cgit v1.2.3 From b04b97839a468ee159467a55873f8f2cc8842310 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 9 May 2015 19:17:03 +0200 Subject: cmake: add configuration option for OpenMP (bzr r14138) --- CMakeLists.txt | 1 + CMakeScripts/DefineDependsandFlags.cmake | 27 +++++++++++++++------------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 23dd58708..4b73afc43 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,7 @@ 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_OPENMP "Compile with OpenMP support" ON) option(WITH_PROFILING "Turn on profiling" OFF) # Set to true if compiler/linker should enable profiling diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index dceed9560..13471d83a 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -46,10 +46,6 @@ else() list(APPEND INKSCAPE_LIBS "-lX11") # FIXME endif() -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) @@ -316,15 +312,22 @@ list(APPEND INKSCAPE_INCS_SYS ${LIBXML2_INCLUDE_DIR}) list(APPEND INKSCAPE_LIBS ${LIBXML2_LIBRARIES}) add_definitions(${LIBXML2_DEFINITIONS}) -find_package(OpenMP) -if(OpenMP_FOUND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") - if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") - set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES") +if(WITH_OPENMP) + find_package(OpenMP) + if(OpenMP_FOUND) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") + if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_OPENMP_SUPPORT "YES") + endif() + mark_as_advanced(OpenMP_C_FLAGS) + mark_as_advanced(OpenMP_CXX_FLAGS) + # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp' + # uncomment explicit linking below if still needed: + #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME + else() + set(WITH_OPENMP OFF) endif() - mark_as_advanced(OpenMP_C_FLAGS) - mark_as_advanced(OpenMP_CXX_FLAGS) endif() find_package(ZLIB REQUIRED) -- cgit v1.2.3 From b80ece09a1c8045cec3597f9c61b417323399290 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 9 May 2015 19:20:42 +0200 Subject: cmake: refactor SRC lists for optional input formats (cdr, vsd, wpg) (bzr r14139) --- src/extension/CMakeLists.txt | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/extension/CMakeLists.txt b/src/extension/CMakeLists.txt index d1104f3cc..21e652563 100644 --- a/src/extension/CMakeLists.txt +++ b/src/extension/CMakeLists.txt @@ -36,7 +36,6 @@ set(extension_SRC internal/cairo-render-context.cpp internal/cairo-renderer.cpp internal/cairo-renderer-pdf-out.cpp - internal/cdr-input.cpp internal/emf-inout.cpp internal/emf-print.cpp internal/gdkpixbuf-input.cpp @@ -54,10 +53,8 @@ set(extension_SRC internal/svg.cpp internal/svgz.cpp internal/text_reassemble.c - 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 @@ -104,7 +101,6 @@ set(extension_SRC internal/cairo-render-context.h internal/cairo-renderer-pdf-out.h internal/cairo-renderer.h - internal/cdr-input.h internal/clear-n_.h internal/emf-inout.h internal/emf-print.h @@ -140,10 +136,8 @@ set(extension_SRC internal/svg.h internal/svgz.h internal/text_reassemble.h - internal/vsd-input.h internal/wmf-inout.h internal/wmf-print.h - internal/wpg-input.h ) if(WIN32) @@ -151,6 +145,20 @@ if(WIN32) ) endif() +if(WITH_LIBCDR) + list(APPEND extension_SRC + internal/cdr-input.cpp + internal/cdr-input.h + ) +endif() + +if(WITH_LIBVISIO) + list(APPEND extension_SRC + internal/vsd-input.cpp + internal/vsd-input.h + ) +endif() + if(WITH_LIBWPG) list(APPEND extension_SRC internal/wpg-input.cpp @@ -158,7 +166,7 @@ if(WITH_LIBWPG) ) endif() -if(ImageMagick_FOUND) +if(WITH_IMAGE_MAGICK) list(APPEND extension_SRC internal/bitmap/adaptiveThreshold.cpp internal/bitmap/adaptiveThreshold.h -- cgit v1.2.3 From cd604f259b05fc894cf80a8841d97e9352910f54 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Cenoz Date: Sat, 9 May 2015 19:31:55 +0200 Subject: Fix Doxyfile (bzr r14140) --- Doxyfile | 245 ++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 139 insertions(+), 106 deletions(-) diff --git a/Doxyfile b/Doxyfile index 82bc83328..1850b0b09 100644 --- a/Doxyfile +++ b/Doxyfile @@ -1,4 +1,4 @@ -# Doxyfile 1.8.8 +# Doxyfile 1.8.9.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project. @@ -44,12 +44,12 @@ PROJECT_NUMBER = # for a project that appears at the top of each page and should give viewer a # quick idea about the purpose of the project. Keep the description short. -PROJECT_BRIEF = Editor +PROJECT_BRIEF = "Vector Graphics Editor" -# With the PROJECT_LOGO tag one can specify an logo or icon that is included in -# the documentation. The maximum height of the logo should not exceed 55 pixels -# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo -# to the output directory. +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. PROJECT_LOGO = inkscape.png @@ -60,7 +60,7 @@ PROJECT_LOGO = inkscape.png OUTPUT_DIRECTORY = doxygen -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub- +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and # will distribute the generated files over these directories. Enabling this # option can be useful when feeding doxygen a huge amount of source files, where @@ -93,14 +93,14 @@ ALLOW_UNICODE_NAMES = NO OUTPUT_LANGUAGE = English -# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. # The default value is: YES. BRIEF_MEMBER_DESC = YES -# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief # description of a member or function before the detailed description # # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the @@ -135,7 +135,7 @@ ALWAYS_DETAILED_SEC = NO INLINE_INHERITED_MEMB = NO -# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path # before files name in the file list and in the header files. If set to NO the # shortest path that makes the file name unique will be used # The default value is: YES. @@ -205,9 +205,9 @@ MULTILINE_CPP_IS_BRIEF = NO INHERIT_DOCS = YES -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a -# new page for each member. If set to NO, the documentation of a member will be -# part of the file/class/namespace that contains it. +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. # The default value is: NO. SEPARATE_MEMBER_PAGES = NO @@ -276,7 +276,7 @@ OPTIMIZE_OUTPUT_VHDL = NO # instance to make doxygen treat .inc files as Fortran files (default is PHP), # and .f files as C (default is Fortran), use: inc=Fortran f=C. # -# Note For files without extension you can use no_extension as a placeholder. +# Note: For files without extension you can use no_extension as a placeholder. # # Note that for custom extensions you also need to set FILE_PATTERNS otherwise # the files are not read by doxygen. @@ -295,8 +295,8 @@ MARKDOWN_SUPPORT = YES # When enabled doxygen tries to link words that correspond to documented # classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by by putting a % sign in front of the word -# or globally by setting AUTOLINK_SUPPORT to NO. +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. # The default value is: YES. AUTOLINK_SUPPORT = YES @@ -336,7 +336,7 @@ SIP_SUPPORT = NO IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES, then doxygen will reuse the documentation of the first +# tag is set to YES then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. # The default value is: NO. @@ -395,13 +395,13 @@ TYPEDEF_HIDES_STRUCT = NO # the optimal cache size from a speed point of view. # Minimum value: 0, maximum value: 9, default value: 0. -LOOKUP_CACHE_SIZE = 0 +LOOKUP_CACHE_SIZE = 1 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in # documentation are documented, even if no documentation was available. Private # class members and static file members will be hidden unless the # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. @@ -411,35 +411,35 @@ LOOKUP_CACHE_SIZE = 0 EXTRACT_ALL = YES -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will # be included in the documentation. # The default value is: NO. EXTRACT_PRIVATE = YES -# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal # scope will be included in the documentation. # The default value is: NO. EXTRACT_PACKAGE = NO -# If the EXTRACT_STATIC tag is set to YES all static members of a file will be +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be # included in the documentation. # The default value is: NO. EXTRACT_STATIC = YES -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, # only classes defined in header files are included. Does not have any effect # for Java sources. # The default value is: YES. EXTRACT_LOCAL_CLASSES = NO -# This flag is only useful for Objective-C code. When set to YES local methods, +# This flag is only useful for Objective-C code. If set to YES, local methods, # which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO only methods in the interface are +# included in the documentation. If set to NO, only methods in the interface are # included. # The default value is: NO. @@ -464,21 +464,21 @@ HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. If set -# to NO these classes will be included in the various overviews. This option has -# no effect if EXTRACT_ALL is enabled. +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. # The default value is: NO. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# (class|struct|union) declarations. If set to NO these declarations will be +# (class|struct|union) declarations. If set to NO, these declarations will be # included in the documentation. # The default value is: NO. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO these +# documentation blocks found inside the body of a function. If set to NO, these # blocks will be appended to the function's detailed documentation block. # The default value is: NO. @@ -492,7 +492,7 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES upper-case letters are also +# names in lower-case letters. If set to YES, upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. @@ -501,12 +501,19 @@ INTERNAL_DOCS = NO CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES the +# their full class and namespace scopes in the documentation. If set to YES, the # scope will be hidden. # The default value is: NO. HIDE_SCOPE_NAMES = NO +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of # the files that are included by a file in the documentation of that file. # The default value is: YES. @@ -534,14 +541,14 @@ INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the # (detailed) documentation of file and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. +# name. If set to NO, the members will appear in declaration order. # The default value is: YES. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief # descriptions of file, namespace and class members alphabetically by member -# name. If set to NO the members will appear in declaration order. Note that +# name. If set to NO, the members will appear in declaration order. Note that # this will also influence the order of the classes in the class list. # The default value is: NO. @@ -586,27 +593,25 @@ SORT_BY_SCOPE_NAME = NO STRICT_PROTO_MATCHING = NO -# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the -# todo list. This list is created by putting \todo commands in the -# documentation. +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. # The default value is: YES. GENERATE_TODOLIST = YES -# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the -# test list. This list is created by putting \test commands in the -# documentation. +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. # The default value is: YES. GENERATE_TESTLIST = YES -# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug # list. This list is created by putting \bug commands in the documentation. # The default value is: YES. GENERATE_BUGLIST = YES -# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO) +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) # the deprecated list. This list is created by putting \deprecated commands in # the documentation. # The default value is: YES. @@ -631,8 +636,8 @@ ENABLED_SECTIONS = MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES the list -# will mention the files that were used to generate the documentation. +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. # The default value is: YES. SHOW_USED_FILES = YES @@ -696,7 +701,7 @@ CITE_BIB_FILES = QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES # this implies that the warnings are on. # # Tip: Turn warnings on while writing the documentation. @@ -704,7 +709,7 @@ QUIET = NO WARNINGS = YES -# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag # will automatically be disabled. # The default value is: YES. @@ -721,8 +726,8 @@ WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that # are documented, but have no documentation for their parameters or return -# value. If set to NO doxygen will only warn about wrong or incomplete parameter -# documentation, but not about the absence of documentation. +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. # The default value is: NO. WARN_NO_PARAMDOC = NO @@ -774,6 +779,7 @@ INPUT_ENCODING = UTF-8 # *.qsf, *.as and *.js. FILE_PATTERNS = *.cpp \ + *.dox \ *.h # The RECURSIVE tag can be used to specify whether or not subdirectories should @@ -871,7 +877,7 @@ INPUT_FILTER = FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER ) will also be used to filter the input files that are used for +# INPUT_FILTER) will also be used to filter the input files that are used for # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). # The default value is: NO. @@ -931,7 +937,7 @@ REFERENCED_BY_RELATION = YES REFERENCES_RELATION = YES # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES, then the hyperlinks from functions in REFERENCES_RELATION and +# to YES then the hyperlinks from functions in REFERENCES_RELATION and # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will # link to the documentation. # The default value is: YES. @@ -978,7 +984,7 @@ USE_HTAGS = NO VERBATIM_HEADERS = NO -# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the # clang parser (see: http://clang.llvm.org/) for more accurate parsing at the # cost of reduced performance. This can be particularly helpful with template # rich C++ code for which doxygen's built-in parser lacks the necessary type @@ -1027,7 +1033,7 @@ IGNORE_PREFIX = # Configuration options related to the HTML output #--------------------------------------------------------------------------- -# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output # The default value is: YES. GENERATE_HTML = YES @@ -1093,10 +1099,10 @@ HTML_STYLESHEET = # cascading style sheets that are included after the standard style sheets # created by doxygen. Using this option one can overrule certain style aspects. # This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefor more robust against future updates. +# standard style sheet and is therefore more robust against future updates. # Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra stylesheet files is of importance (e.g. the last -# stylesheet in the list overrules the setting of the previous ones in the +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the # list). For an example see the documentation. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1113,7 +1119,7 @@ HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the stylesheet and background images according to +# will adjust the colors in the style sheet and background images according to # this color. Hue is specified as an angle on a colorwheel, see # http://en.wikipedia.org/wiki/Hue for more information. For instance the value # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 @@ -1144,8 +1150,9 @@ HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: YES. +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. HTML_TIMESTAMP = YES @@ -1241,28 +1248,28 @@ GENERATE_HTMLHELP = NO CHM_FILE = # The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler ( hhc.exe). If non-empty +# including file name) of the HTML help compiler (hhc.exe). If non-empty, # doxygen will try to run the HTML help compiler on the generated index.hhp. # The file has to be specified with full path. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. HHC_LOCATION = -# The GENERATE_CHI flag controls if a separate .chi index file is generated ( -# YES) or that it should be included in the master .chm file ( NO). +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. GENERATE_CHI = NO -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc) +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) # and project file content. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. CHM_INDEX_ENCODING = -# The BINARY_TOC flag controls whether a binary table of contents is generated ( -# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it # enables the Previous and Next buttons. # The default value is: NO. # This tag requires that the tag GENERATE_HTMLHELP is set to YES. @@ -1376,7 +1383,7 @@ DISABLE_INDEX = NO # index structure (just like the one that is generated for HTML Help). For this # to work a browser that supports JavaScript, DHTML, CSS and frames is required # (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can # further fine-tune the look of the index. As an example, the default style # sheet generated by doxygen has an example that shows how to put an image at # the root of the tree instead of the PROJECT_NAME. Since the tree basically has @@ -1404,7 +1411,7 @@ ENUM_VALUES_PER_LINE = 4 TREEVIEW_WIDTH = 250 -# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to # external symbols imported via tag files in a separate window. # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. @@ -1433,7 +1440,7 @@ FORMULA_TRANSPARENT = YES # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see # http://www.mathjax.org) which uses client side Javascript for the rendering -# instead of using prerendered bitmaps. Use this if you do not have LaTeX +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX # installed or if you want to formulas look prettier in the HTML output. When # enabled you may also need to install MathJax separately and configure the path # to it using the MATHJAX_RELPATH option. @@ -1519,7 +1526,7 @@ SERVER_BASED_SEARCH = NO # external search engine pointed to by the SEARCHENGINE_URL option to obtain the # search results. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). # @@ -1532,7 +1539,7 @@ EXTERNAL_SEARCH = NO # The SEARCHENGINE_URL should point to a search engine hosted by a web server # which will return the search results when EXTERNAL_SEARCH is enabled. # -# Doxygen ships with an example indexer ( doxyindexer) and search engine +# Doxygen ships with an example indexer (doxyindexer) and search engine # (doxysearch.cgi) which are based on the open source search engine library # Xapian (see: http://xapian.org/). See the section "External Indexing and # Searching" for details. @@ -1570,7 +1577,7 @@ EXTRA_SEARCH_MAPPINGS = # Configuration options related to the LaTeX output #--------------------------------------------------------------------------- -# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output. +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. # The default value is: YES. GENERATE_LATEX = NO @@ -1601,7 +1608,7 @@ LATEX_CMD_NAME = latex MAKEINDEX_CMD_NAME = makeindex -# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1637,9 +1644,9 @@ EXTRA_PACKAGES = amsmath \ # Note: Only use a user-defined header if you know what you are doing! The # following commands have a special meaning inside the header: $title, # $datetime, $date, $doxygenversion, $projectname, $projectnumber, -# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string, -# for the replacement values of the other commands the user is refered to -# HTML_HEADER. +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. # This tag requires that the tag GENERATE_LATEX is set to YES. LATEX_HEADER = @@ -1655,6 +1662,17 @@ LATEX_HEADER = LATEX_FOOTER = +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the LATEX_OUTPUT output # directory. Note that the files will be copied as-is; there are no commands or @@ -1673,7 +1691,7 @@ LATEX_EXTRA_FILES = PDF_HYPERLINKS = NO # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate -# the PDF file directly from the LaTeX files. Set this option to YES to get a +# the PDF file directly from the LaTeX files. Set this option to YES, to get a # higher quality PDF documentation. # The default value is: YES. # This tag requires that the tag GENERATE_LATEX is set to YES. @@ -1718,7 +1736,7 @@ LATEX_BIB_STYLE = plain # Configuration options related to the RTF output #--------------------------------------------------------------------------- -# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The # RTF output is optimized for Word 97 and may not look too pretty with other RTF # readers/editors. # The default value is: NO. @@ -1733,7 +1751,7 @@ GENERATE_RTF = NO RTF_OUTPUT = rtf -# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF # documents. This may be useful for small projects and may help to save some # trees in general. # The default value is: NO. @@ -1770,11 +1788,21 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- -# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for # classes and files. # The default value is: NO. @@ -1818,7 +1846,7 @@ MAN_LINKS = NO # Configuration options related to the XML output #--------------------------------------------------------------------------- -# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that # captures the structure of the code including all documentation. # The default value is: NO. @@ -1832,7 +1860,7 @@ GENERATE_XML = NO XML_OUTPUT = xml -# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program # listings (including syntax highlighting and cross-referencing information) to # the XML output. Note that enabling this will significantly increase the size # of the XML output. @@ -1845,7 +1873,7 @@ XML_PROGRAMLISTING = YES # Configuration options related to the DOCBOOK output #--------------------------------------------------------------------------- -# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files # that can be used to generate PDF. # The default value is: NO. @@ -1859,7 +1887,7 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the # program listings (including syntax highlighting and cross-referencing # information) to the DOCBOOK output. Note that enabling this will significantly # increase the size of the DOCBOOK output. @@ -1872,10 +1900,10 @@ DOCBOOK_PROGRAMLISTING = NO # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- -# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen -# Definitions (see http://autogen.sf.net) file that captures the structure of -# the code including all documentation. Note that this feature is still -# experimental and incomplete at the moment. +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sf.net) file that captures the +# structure of the code including all documentation. Note that this feature is +# still experimental and incomplete at the moment. # The default value is: NO. GENERATE_AUTOGEN_DEF = NO @@ -1884,7 +1912,7 @@ GENERATE_AUTOGEN_DEF = NO # Configuration options related to the Perl module output #--------------------------------------------------------------------------- -# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module # file that captures the structure of the code including all documentation. # # Note that this feature is still experimental and incomplete at the moment. @@ -1892,7 +1920,7 @@ GENERATE_AUTOGEN_DEF = NO GENERATE_PERLMOD = NO -# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI # output from the Perl module output. # The default value is: NO. @@ -1900,9 +1928,9 @@ GENERATE_PERLMOD = NO PERLMOD_LATEX = NO -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely # formatted so it can be parsed by a human reader. This is useful if you want to -# understand what is going on. On the other hand, if this tag is set to NO the +# understand what is going on. On the other hand, if this tag is set to NO, the # size of the Perl module output will be much smaller and Perl will parse it # just the same. # The default value is: YES. @@ -1922,14 +1950,14 @@ PERLMOD_MAKEVAR_PREFIX = # Configuration options related to the preprocessor #--------------------------------------------------------------------------- -# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all # C-preprocessor directives found in the sources and include files. # The default value is: YES. ENABLE_PREPROCESSING = YES -# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names -# in the source code. If set to NO only conditional compilation will be +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be # performed. Macro expansion can be done in a controlled way by setting # EXPAND_ONLY_PREDEF to YES. # The default value is: NO. @@ -1945,7 +1973,7 @@ MACRO_EXPANSION = NO EXPAND_ONLY_PREDEF = NO -# If the SEARCH_INCLUDES tag is set to YES the includes files in the +# If the SEARCH_INCLUDES tag is set to YES, the include files in the # INCLUDE_PATH will be searched if a #include is found. # The default value is: YES. # This tag requires that the tag ENABLE_PREPROCESSING is set to YES. @@ -2021,20 +2049,21 @@ TAGFILES = GENERATE_TAGFILE = -# If the ALLEXTERNALS tag is set to YES all external class will be listed in the -# class index. If set to NO only the inherited external classes will be listed. +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. # The default value is: NO. ALLEXTERNALS = NO -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in -# the modules index. If set to NO, only the current project's groups will be +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be # listed. # The default value is: YES. EXTERNAL_GROUPS = YES -# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in # the related pages index. If set to NO, only the current project's pages will # be listed. # The default value is: YES. @@ -2051,7 +2080,7 @@ PERL_PATH = /usr/bin/perl # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to # NO turns the diagrams off. Note that this option also works with HAVE_DOT # disabled, but it is recommended to install and use dot, since it yields more @@ -2076,7 +2105,7 @@ MSCGEN_PATH = DIA_PATH = -# If set to YES, the inheritance and collaboration graphs will hide inheritance +# If set to YES the inheritance and collaboration graphs will hide inheritance # and usage relations if the target is undocumented or is not a class. # The default value is: YES. @@ -2109,7 +2138,7 @@ DOT_NUM_THREADS = 0 # The default value is: Helvetica. # This tag requires that the tag HAVE_DOT is set to YES. -DOT_FONTNAME = FreeSans +DOT_FONTNAME = Helvetica # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of # dot graphs. @@ -2149,7 +2178,7 @@ COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. # The default value is: NO. @@ -2289,10 +2318,14 @@ DIAFILE_DIRS = # PlantUML is not used or called during a preprocessing step. Doxygen will # generate a warning when it encounters a \startuml command in this case and # will not generate output for the diagram. -# This tag requires that the tag HAVE_DOT is set to YES. PLANTUML_JAR_PATH = +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes # that will be shown in the graph. If the number of nodes in a graph becomes # larger than this value, doxygen will truncate the graph, which is visualized @@ -2329,7 +2362,7 @@ MAX_DOT_GRAPH_DEPTH = 0 DOT_TRANSPARENT = NO -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support # this, this feature is disabled by default. @@ -2346,7 +2379,7 @@ DOT_MULTI_TARGETS = NO GENERATE_LEGEND = YES -# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot # files that are used to generate the various graphs. # The default value is: YES. # This tag requires that the tag HAVE_DOT is set to YES. -- cgit v1.2.3 From c9c59ee6f084f33765df548d0a0163ce8ef23e1f Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 9 May 2015 23:13:52 +0200 Subject: cmake: fix OpenMP detection and defines (inkscape uses 'HAVE_OPENMP') (bzr r14141) --- CMakeScripts/DefineDependsandFlags.cmake | 4 +++- config.h.cmake | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 13471d83a..a4dad21b1 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -314,7 +314,7 @@ add_definitions(${LIBXML2_DEFINITIONS}) if(WITH_OPENMP) find_package(OpenMP) - if(OpenMP_FOUND) + if(OPENMP_FOUND) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") if(APPLE AND ${CMAKE_GENERATOR} MATCHES "Xcode") @@ -324,8 +324,10 @@ if(WITH_OPENMP) mark_as_advanced(OpenMP_CXX_FLAGS) # '-fopenmp' is in OpenMP_C_FLAGS, OpenMP_CXX_FLAGS and implies '-lgomp' # uncomment explicit linking below if still needed: + set(HAVE_OPENMP ON) #list(APPEND INKSCAPE_LIBS "-lgomp") # FIXME else() + set(HAVE_OPENMP OFF) set(WITH_OPENMP OFF) endif() endif() diff --git a/config.h.cmake b/config.h.cmake index 3bd7837bd..c793f59b6 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -116,6 +116,9 @@ /* Define to 1 if you have the `mkdir' function. */ #cmakedefine HAVE_MKDIR 1 +/* Use OpenMP (via cmake) */ +#cmakedefine HAVE_OPENMP 1 + /* Use aspell for built-in spellchecker */ #cmakedefine HAVE_ASPELL 1 -- cgit v1.2.3 From 3b8c4f31de73bd83057bffb8105498ae62be1984 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sun, 10 May 2015 23:55:55 +0200 Subject: Fix for bug 1194091 Fixed bugs: - https://launchpad.net/bugs/1194091 (bzr r14142) --- src/sp-item.cpp | 40 ++++++++++++++-------------------------- src/ui/dialog/layers.cpp | 12 ++++++++++-- 2 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 8c99e9bcf..5445be947 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -349,17 +349,11 @@ void SPItem::lowerToBottom() { using Inkscape::Util::MutableList; using Inkscape::Util::reverse_list; - MutableList bottom=find_last_if( - reverse_list( - parent->firstChild(), this - ), - MutableList(), - &is_item - ); + SPObject * bottom=parent->firstChild(); + while(dynamic_cast(bottom) && dynamic_cast(bottom->next) && bottom!=this && !is_item(*(bottom->next))) bottom=bottom->next; if (bottom) { - ++bottom; Inkscape::XML::Node *ref = ( bottom ? bottom->getRepr() : NULL ); - getRepr()->parent()->changeOrder(getRepr(), ref); + parent->getRepr()->changeOrder(getRepr(), ref); } } @@ -367,20 +361,20 @@ void SPItem::moveTo(SPItem *target, bool intoafter) { Inkscape::XML::Node *target_ref = ( target ? target->getRepr() : NULL ); Inkscape::XML::Node *our_ref = getRepr(); - gboolean first = FALSE; - - if (target_ref == our_ref) { - // Move to ourself ignore - return; - } if (!target_ref) { // Assume move to the "first" in the top node, find the top node - target_ref = our_ref; - while (target_ref->parent() != target_ref->root()) { - target_ref = target_ref->parent(); + intoafter = false; + SPObject* bottom = this->document->getObjectByRepr(our_ref->root())->firstChild(); + while(!dynamic_cast(bottom->next)){ + bottom=bottom->next; } - first = TRUE; + target_ref = bottom->getRepr(); + } + + if (target_ref == our_ref) { + // Move to ourself ignore + return; } if (intoafter) { @@ -391,16 +385,10 @@ void SPItem::moveTo(SPItem *target, bool intoafter) { // Change in parent, need to remove and add our_ref->parent()->removeChild(our_ref); target_ref->parent()->addChild(our_ref, target_ref); - } else if (!first) { + } else { // Same parent, just move our_ref->parent()->changeOrder(our_ref, target_ref); } - - if (first && parent) { - // If "first" ensure it appears after the defs etc - lowerToBottom(); - return; - } } void SPItem::build(SPDocument *document, Inkscape::XML::Node *repr) { diff --git a/src/ui/dialog/layers.cpp b/src/ui/dialog/layers.cpp index 65351cb68..c6888386f 100644 --- a/src/ui/dialog/layers.cpp +++ b/src/ui/dialog/layers.cpp @@ -713,13 +713,21 @@ bool LayersPanel::_handleDragDrop(const Glib::RefPtr& /*contex */ void LayersPanel::_doTreeMove( ) { - if (_dnd_source ) { + if (_dnd_source && _dnd_source->getRepr() ) { + if(!_dnd_target){ + _dnd_source->doWriteTransform(_dnd_source->getRepr(), _dnd_source->document->getRoot()->i2doc_affine().inverse() * _dnd_source->i2doc_affine()); + }else{ + SPItem* parent = _dnd_into ? _dnd_target : dynamic_cast(_dnd_target->parent); + if(parent){ + Geom::Affine move = parent->i2doc_affine().inverse() * _dnd_source->i2doc_affine(); + _dnd_source->doWriteTransform(_dnd_source->getRepr(), move); + } + } _dnd_source->moveTo(_dnd_target, _dnd_into); _selectLayer(_dnd_source); _dnd_source = NULL; DocumentUndo::done( _desktop->doc() , SP_VERB_NONE, _("Moved layer")); - } } -- cgit v1.2.3 From 1d290ae90c78f35b67f474d34eef6f8fbeaa248c Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 11 May 2015 17:56:55 +0200 Subject: Metadata. Fix for Bug #1452266 (Outdated Creative Commons licenses). Fixed bugs: - https://launchpad.net/bugs/1452266 (bzr r14143) --- src/rdf.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/rdf.cpp b/src/rdf.cpp index 16344e520..938dc60c6 100644 --- a/src/rdf.cpp +++ b/src/rdf.cpp @@ -39,7 +39,7 @@ - @@ -173,32 +173,32 @@ struct rdf_double_t rdf_license_ofl [] = { struct rdf_license_t rdf_licenses [] = { { N_("CC Attribution"), - "http://creativecommons.org/licenses/by/3.0/", + "http://creativecommons.org/licenses/by/4.0/", rdf_license_cc_a, }, { N_("CC Attribution-ShareAlike"), - "http://creativecommons.org/licenses/by-sa/3.0/", + "http://creativecommons.org/licenses/by-sa/4.0/", rdf_license_cc_a_sa, }, { N_("CC Attribution-NoDerivs"), - "http://creativecommons.org/licenses/by-nd/3.0/", + "http://creativecommons.org/licenses/by-nd/4.0/", rdf_license_cc_a_nd, }, { N_("CC Attribution-NonCommercial"), - "http://creativecommons.org/licenses/by-nc/3.0/", + "http://creativecommons.org/licenses/by-nc/4.0/", rdf_license_cc_a_nc, }, { N_("CC Attribution-NonCommercial-ShareAlike"), - "http://creativecommons.org/licenses/by-nc-sa/3.0/", + "http://creativecommons.org/licenses/by-nc-sa/4.0/", rdf_license_cc_a_nc_sa, }, { N_("CC Attribution-NonCommercial-NoDerivs"), - "http://creativecommons.org/licenses/by-nc-nd/3.0/", + "http://creativecommons.org/licenses/by-nc-nd/4.0/", rdf_license_cc_a_nc_nd, }, -- cgit v1.2.3 From f7bd98a01dce9cb5a1532ab983c0b39b4d14d8f5 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 11 May 2015 17:58:35 +0200 Subject: UI. Fix for Bug #1450875 (A change of the Image quality for an embedded/linked image can't be saved in some circumstances.). Fixed bugs: - https://launchpad.net/bugs/1450875 (bzr r14144) --- src/ui/dialog/object-properties.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/object-properties.cpp b/src/ui/dialog/object-properties.cpp index fc21a30d4..75430ed44 100644 --- a/src/ui/dialog/object-properties.cpp +++ b/src/ui/dialog/object-properties.cpp @@ -529,10 +529,12 @@ void ObjectProperties::_imageRenderingChanged() SPCSSAttr *css = sp_repr_css_attr_new(); sp_repr_css_set_property(css, "image-rendering", scale.c_str()); Inkscape::XML::Node *image_node = item->getRepr(); - if( image_node ) { + if (image_node) { sp_repr_css_change(image_node, css, "style"); + DocumentUndo::done(SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM, + _("Set image rendering option")); } - sp_repr_css_attr_unref( css ); + sp_repr_css_attr_unref(css); _blocked = false; } -- cgit v1.2.3 From 7d5213c328e56fcb23169dd6b1633853ab04bf88 Mon Sep 17 00:00:00 2001 From: Yuri Chornoivan <> Date: Mon, 11 May 2015 18:07:41 +0200 Subject: Translations. Fix typo in the Color blindness filter and Ukrainian translation update. Fixed bugs: - https://launchpad.net/bugs/1407331 (bzr r14145) --- packaging/win32/languages/Ukrainian.nsh | 8 +- po/inkscape.pot | 4437 ++++++++++++++------------- po/uk.po | 5095 ++++++++++++++++--------------- src/extension/internal/filter/color.h | 2 +- 4 files changed, 4852 insertions(+), 4690 deletions(-) diff --git a/packaging/win32/languages/Ukrainian.nsh b/packaging/win32/languages/Ukrainian.nsh index 1db81f196..ee5dfbf1f 100644 --- a/packaging/win32/languages/Ukrainian.nsh +++ b/packaging/win32/languages/Ukrainian.nsh @@ -44,7 +44,7 @@ ${LangFileString} lng_az " ${LangFileString} lng_be "Á³ëîðóñüêîþ" ${LangFileString} lng_bg "Áîëãàðñüêîþ" ${LangFileString} lng_bn "Áåíãàëüñüêîþ" -${LangFileString} lng_bn_BD "Bengali Bangladesh" +${LangFileString} lng_bn_BD "Áåíãàëüñüêîþ (Áàíãëàäåø)" ${LangFileString} lng_br "Áðåòîíñüêîþ" ${LangFileString} lng_ca "Êàòàëàíñüêîþ" ${LangFileString} lng_ca@valencia "Âàëåíñ³éñüêîþ êàòàëàíñüêîþ" @@ -71,15 +71,15 @@ ${LangFileString} lng_gl " ${LangFileString} lng_he "²âðèòîì" ${LangFileString} lng_hr "Õîðâàòñüêîþ" ${LangFileString} lng_hu "Óãîðñüêîþ" -${LangFileString} lng_hy "Armenian" +${LangFileString} lng_hy "³ðìåíñüêîþ" ${LangFileString} lng_id "²íäîíåç³éñüêîþ" -${LangFileString} lng_is "Icelandic" +${LangFileString} lng_is "²ñëàíäñüêîþ" ${LangFileString} lng_it "²òàë³éñüêîþ" ${LangFileString} lng_ja "ßïîíñüêîþ" ${LangFileString} lng_km "Êõìåðñüêîþ" ${LangFileString} lng_ko "Êîðåéñüêîþ" ${LangFileString} lng_lt "Ëèòîâñüêîþ" -${LangFileString} lng_lv "Latvian" +${LangFileString} lng_lv "Ëàòâ³éñüêîþ" ${LangFileString} lng_mk "Ìàêåäîíñüêîþ" ${LangFileString} lng_mn "Ìîíãîëüñüêîþ" ${LangFileString} lng_ne "Íåïàëüñüêîþ" diff --git a/po/inkscape.pot b/po/inkscape.pot index 4b3c7392a..f396288c3 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-03-10 09:10+0100\n" +"POT-Creation-Date: 2015-05-11 18:05+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -4438,156 +4438,156 @@ msgstr "" msgid "No next zoom." msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-axonomgrid.cpp:357 ../src/display/canvas-grid.cpp:697 msgid "Grid _units:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 msgid "_Origin X:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 #: ../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:362 ../src/display/canvas-grid.cpp:702 msgid "O_rigin Y:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 #: ../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:365 ../src/display/canvas-grid.cpp:708 msgid "Spacing _Y:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:369 +#: ../src/display/canvas-axonomgrid.cpp:365 #: ../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:368 #: ../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:368 #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/display/canvas-axonomgrid.cpp:370 #: ../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:370 #: ../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:374 ../src/display/canvas-grid.cpp:713 msgid "Minor grid line _color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 #: ../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:374 ../src/display/canvas-grid.cpp:713 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:379 ../src/display/canvas-grid.cpp:718 msgid "Ma_jor grid line color:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 #: ../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:380 ../src/display/canvas-grid.cpp:719 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:384 ../src/display/canvas-grid.cpp:723 msgid "_Major grid line every:" msgstr "" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "lines" msgstr "" -#: ../src/display/canvas-grid.cpp:64 +#: ../src/display/canvas-grid.cpp:60 msgid "Rectangular grid" msgstr "" -#: ../src/display/canvas-grid.cpp:65 +#: ../src/display/canvas-grid.cpp:61 msgid "Axonometric grid" msgstr "" -#: ../src/display/canvas-grid.cpp:250 +#: ../src/display/canvas-grid.cpp:246 msgid "Create new grid" msgstr "" -#: ../src/display/canvas-grid.cpp:316 +#: ../src/display/canvas-grid.cpp:312 msgid "_Enabled" msgstr "" -#: ../src/display/canvas-grid.cpp:317 +#: ../src/display/canvas-grid.cpp:313 msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." msgstr "" -#: ../src/display/canvas-grid.cpp:321 +#: ../src/display/canvas-grid.cpp:317 msgid "Snap to visible _grid lines only" msgstr "" -#: ../src/display/canvas-grid.cpp:322 +#: ../src/display/canvas-grid.cpp:318 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" msgstr "" -#: ../src/display/canvas-grid.cpp:326 +#: ../src/display/canvas-grid.cpp:322 msgid "_Visible" msgstr "" -#: ../src/display/canvas-grid.cpp:327 +#: ../src/display/canvas-grid.cpp:323 msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." msgstr "" -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:705 msgid "Spacing _X:" msgstr "" -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:705 #: ../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:708 #: ../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:740 msgid "_Show dots instead of lines" msgstr "" -#: ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-grid.cpp:741 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "" @@ -4737,11 +4737,11 @@ msgstr "" msgid "Bounding box side midpoint" msgstr "" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1506 msgid "Smooth node" msgstr "" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1505 msgid "Cusp node" msgstr "" @@ -4811,7 +4811,7 @@ msgstr "" msgid "Memory document %1" msgstr "" -#: ../src/document.cpp:855 +#: ../src/document.cpp:886 #, c-format msgid "Unnamed document %d" msgstr "" @@ -4821,11 +4821,11 @@ msgid "[Unchanged]" msgstr "" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2465 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2434 msgid "_Undo" msgstr "" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2467 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2436 msgid "_Redo" msgstr "" @@ -4853,7 +4853,7 @@ msgstr "" msgid " (No preferences)" msgstr "" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2239 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2208 msgid "Extensions" msgstr "" @@ -4873,90 +4873,90 @@ msgstr "" msgid "Show dialog on startup" msgstr "" -#: ../src/extension/execution-env.cpp:144 +#: ../src/extension/execution-env.cpp:138 #, 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 +#: ../src/extension/extension.cpp:267 msgid "" " This is caused by an improper .inx file for this extension. An improper ." "inx file could have been caused by a faulty installation of Inkscape." msgstr "" -#: ../src/extension/extension.cpp:281 +#: ../src/extension/extension.cpp:277 msgid "the extension is designed for Windows only." msgstr "" -#: ../src/extension/extension.cpp:286 +#: ../src/extension/extension.cpp:282 msgid "an ID was not defined for it." msgstr "" -#: ../src/extension/extension.cpp:290 +#: ../src/extension/extension.cpp:286 msgid "there was no name defined for it." msgstr "" -#: ../src/extension/extension.cpp:294 +#: ../src/extension/extension.cpp:290 msgid "the XML description of it got lost." msgstr "" -#: ../src/extension/extension.cpp:298 +#: ../src/extension/extension.cpp:294 msgid "no implementation was defined for the extension." msgstr "" #. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:305 +#: ../src/extension/extension.cpp:301 msgid "a dependency was not met." msgstr "" -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "Extension \"" msgstr "" -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "\" failed to load because " msgstr "" -#: ../src/extension/extension.cpp:674 +#: ../src/extension/extension.cpp:670 #, c-format msgid "Could not create extension error log file '%s'" msgstr "" -#: ../src/extension/extension.cpp:782 +#: ../src/extension/extension.cpp:778 #: ../share/extensions/webslicer_create_rect.inx.h:2 msgid "Name:" msgstr "" -#: ../src/extension/extension.cpp:783 +#: ../src/extension/extension.cpp:779 msgid "ID:" msgstr "" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "State:" msgstr "" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Loaded" msgstr "" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Unloaded" msgstr "" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Deactivated" msgstr "" -#: ../src/extension/extension.cpp:824 +#: ../src/extension/extension.cpp:820 msgid "" "Currently there is no help available for this Extension. Please look on the " "Inkscape website or ask on the mailing lists if you have questions regarding " "this extension." msgstr "" -#: ../src/extension/implementation/script.cpp:1057 +#: ../src/extension/implementation/script.cpp:1063 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 " @@ -4982,10 +4982,11 @@ 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/extension/internal/bluredge.cpp:136 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 #: ../src/ui/dialog/object-attributes.cpp:68 #: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/ui/widget/page-sizer.cpp:249 #: ../src/widgets/calligraphy-toolbar.cpp:430 #: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 #: ../src/widgets/tweak-toolbar.cpp:128 @@ -4998,7 +4999,7 @@ msgstr "" #: ../src/extension/internal/bitmap/sample.cpp:42 #: ../src/ui/dialog/object-attributes.cpp:69 #: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 +#: ../src/ui/widget/page-sizer.cpp:250 ../share/extensions/foldablebox.inx.h:3 msgid "Height:" msgstr "" @@ -5060,8 +5061,8 @@ msgstr "" #: ../src/extension/internal/filter/color.h:1660 #: ../src/extension/internal/filter/distort.h:69 #: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 #: ../src/ui/dialog/object-attributes.cpp:49 #: ../share/extensions/jessyInk_effects.inx.h:5 #: ../share/extensions/jessyInk_export.inx.h:3 @@ -5113,7 +5114,7 @@ msgstr "" #: ../src/extension/internal/bitmap/oilPaint.cpp:39 #: ../src/extension/internal/bitmap/sharpen.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2910 msgid "Radius:" msgstr "" @@ -5431,7 +5432,7 @@ msgid "Opacity" msgstr "" #: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 #: ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "" @@ -5537,7 +5538,7 @@ msgstr "" #: ../src/extension/internal/bitmap/threshold.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Threshold:" msgstr "" @@ -5569,23 +5570,23 @@ msgstr "" msgid "Alter selected bitmap(s) along sine wave" msgstr "" -#: ../src/extension/internal/bluredge.cpp:136 +#: ../src/extension/internal/bluredge.cpp:134 msgid "Inset/Outset Halo" msgstr "" -#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/extension/internal/bluredge.cpp:136 msgid "Width in px of the halo" msgstr "" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of steps:" msgstr "" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of inset/outset copies of the object to make" msgstr "" -#: ../src/extension/internal/bluredge.cpp:143 +#: ../src/extension/internal/bluredge.cpp:141 #: ../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 @@ -5789,79 +5790,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:3584 msgid "EMF Input" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3589 msgid "Enhanced Metafiles (*.emf)" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3568 +#: ../src/extension/internal/emf-inout.cpp:3590 msgid "Enhanced Metafiles" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3576 +#: ../src/extension/internal/emf-inout.cpp:3598 msgid "EMF Output" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3578 -#: ../src/extension/internal/wmf-inout.cpp:3152 +#: ../src/extension/internal/emf-inout.cpp:3600 +#: ../src/extension/internal/wmf-inout.cpp:3174 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:3601 +#: ../src/extension/internal/wmf-inout.cpp:3175 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:3602 +#: ../src/extension/internal/wmf-inout.cpp:3176 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:3603 +#: ../src/extension/internal/wmf-inout.cpp:3177 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:3604 +#: ../src/extension/internal/wmf-inout.cpp:3178 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:3605 +#: ../src/extension/internal/wmf-inout.cpp:3179 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:3606 +#: ../src/extension/internal/wmf-inout.cpp:3180 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:3607 +#: ../src/extension/internal/wmf-inout.cpp:3181 msgid "Convert gradients to colored polygon series" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3586 +#: ../src/extension/internal/emf-inout.cpp:3608 msgid "Use native rectangular linear gradients" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3587 +#: ../src/extension/internal/emf-inout.cpp:3609 msgid "Map all fill patterns to standard EMF hatches" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3588 +#: ../src/extension/internal/emf-inout.cpp:3610 msgid "Ignore image rotations" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3592 +#: ../src/extension/internal/emf-inout.cpp:3614 msgid "Enhanced Metafile (*.emf)" msgstr "" -#: ../src/extension/internal/emf-inout.cpp:3593 +#: ../src/extension/internal/emf-inout.cpp:3615 msgid "Enhanced Metafile" msgstr "" @@ -5926,7 +5927,7 @@ msgstr "" #: ../src/extension/internal/filter/distort.h:95 #: ../src/extension/internal/filter/distort.h:204 #: ../src/extension/internal/filter/filter-file.cpp:151 -#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter.cpp:212 #: ../src/extension/internal/filter/image.h:61 #: ../src/extension/internal/filter/morphology.h:75 #: ../src/extension/internal/filter/morphology.h:202 @@ -6194,7 +6195,7 @@ msgstr "" #: ../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:183 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 #: ../src/widgets/sp-color-icc-selector.cpp:330 #: ../src/widgets/sp-color-scales.cpp:415 #: ../src/widgets/sp-color-scales.cpp:416 @@ -6207,7 +6208,7 @@ msgstr "" #: ../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:184 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 #: ../src/widgets/sp-color-icc-selector.cpp:331 #: ../src/widgets/sp-color-scales.cpp:418 #: ../src/widgets/sp-color-scales.cpp:419 @@ -6220,7 +6221,7 @@ msgstr "" #: ../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:185 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 #: ../src/widgets/sp-color-icc-selector.cpp:332 #: ../src/widgets/sp-color-scales.cpp:421 #: ../src/widgets/sp-color-scales.cpp:422 @@ -6246,7 +6247,7 @@ 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:334 +#: ../src/ui/widget/page-sizer.cpp:250 ../src/widgets/rect-toolbar.cpp:334 #: ../share/extensions/interp_att_g.inx.h:11 msgid "Height" msgstr "" @@ -6259,7 +6260,7 @@ msgstr "" #: ../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:188 +#: ../src/ui/tools/flood-tool.cpp:96 #: ../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 @@ -6299,13 +6300,13 @@ msgstr "" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Azimuth" msgstr "" #: ../src/extension/internal/filter/bumps.h:111 #: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Elevation" msgstr "" @@ -6459,7 +6460,7 @@ msgstr "" #: ../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:187 +#: ../src/ui/tools/flood-tool.cpp:95 #: ../src/widgets/sp-color-icc-selector.cpp:337 #: ../src/widgets/sp-color-icc-selector.cpp:342 #: ../src/widgets/sp-color-scales.cpp:444 @@ -6470,7 +6471,7 @@ msgstr "" #: ../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:189 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:97 msgid "Alpha" msgstr "" @@ -6495,7 +6496,7 @@ msgid "Cone monochromacy (typical achromatopsia)" msgstr "" #: ../src/extension/internal/filter/color.h:261 -msgid "Geen weak (deuteranomaly)" +msgid "Green weak (deuteranomaly)" msgstr "" #: ../src/extension/internal/filter/color.h:262 @@ -6570,13 +6571,13 @@ msgstr "" #: ../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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1051 msgid "Table" msgstr "" #: ../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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1054 msgid "Discrete" msgstr "" @@ -6769,8 +6770,8 @@ msgstr "" #: ../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:1159 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1048 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset" msgstr "" @@ -6800,7 +6801,8 @@ msgstr "" #: ../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 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:925 +#: ../src/ui/widget/page-sizer.cpp:247 msgid "X" msgstr "" @@ -6810,7 +6812,7 @@ msgstr "" #: ../src/extension/internal/filter/color.h:1383 #: ../src/extension/internal/filter/color.h:1386 #: ../src/extension/internal/filter/color.h:1389 -#: ../src/ui/dialog/input.cpp:1616 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/page-sizer.cpp:248 msgid "Y" msgstr "" @@ -7094,8 +7096,8 @@ 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:317 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../src/ui/widget/page-sizer.cpp:249 ../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" msgstr "" @@ -7141,7 +7143,7 @@ msgstr "" #: ../src/extension/internal/filter/morphology.h:179 #: ../src/ui/dialog/layer-properties.cpp:185 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:55 msgid "Position:" msgstr "" @@ -7328,8 +7330,8 @@ 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 +#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/widgets/desktop-widget.cpp:1998 msgid "Drawing" msgstr "" @@ -7338,7 +7340,7 @@ msgstr "" #: ../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 +#: ../src/live_effects/effect.cpp:151 ../src/splivarot.cpp:2201 msgid "Simplify" msgstr "" @@ -7619,7 +7621,7 @@ msgid "Background" msgstr "" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 #: ../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 @@ -7756,31 +7758,31 @@ msgstr "" msgid "Gradients used in GIMP" msgstr "" -#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:118 +#: ../src/extension/internal/grid.cpp:205 ../src/ui/widget/panel.cpp:114 msgid "Grid" msgstr "" -#: ../src/extension/internal/grid.cpp:214 +#: ../src/extension/internal/grid.cpp:207 msgid "Line Width:" msgstr "" -#: ../src/extension/internal/grid.cpp:215 +#: ../src/extension/internal/grid.cpp:208 msgid "Horizontal Spacing:" msgstr "" -#: ../src/extension/internal/grid.cpp:216 +#: ../src/extension/internal/grid.cpp:209 msgid "Vertical Spacing:" msgstr "" -#: ../src/extension/internal/grid.cpp:217 +#: ../src/extension/internal/grid.cpp:210 msgid "Horizontal Offset:" msgstr "" -#: ../src/extension/internal/grid.cpp:218 +#: ../src/extension/internal/grid.cpp:211 msgid "Vertical Offset:" msgstr "" -#: ../src/extension/internal/grid.cpp:222 +#: ../src/extension/internal/grid.cpp:215 #: ../src/ui/dialog/inkscape-preferences.cpp:1477 #: ../share/extensions/draw_from_triangle.inx.h:58 #: ../share/extensions/eqtexsvg.inx.h:4 @@ -7811,14 +7813,14 @@ msgstr "" msgid "Render" msgstr "" -#: ../src/extension/internal/grid.cpp:223 +#: ../src/extension/internal/grid.cpp:216 #: ../src/ui/dialog/document-properties.cpp:162 #: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1823 msgid "Grids" msgstr "" -#: ../src/extension/internal/grid.cpp:226 +#: ../src/extension/internal/grid.cpp:219 msgid "Draw a path which is a grid" msgstr "" @@ -8102,33 +8104,33 @@ msgstr "" msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3136 +#: ../src/extension/internal/wmf-inout.cpp:3158 msgid "WMF Input" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3141 +#: ../src/extension/internal/wmf-inout.cpp:3163 msgid "Windows Metafiles (*.wmf)" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3142 +#: ../src/extension/internal/wmf-inout.cpp:3164 msgid "Windows Metafiles" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/wmf-inout.cpp:3172 msgid "WMF Output" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3160 +#: ../src/extension/internal/wmf-inout.cpp:3182 msgid "Map all fill patterns to standard WMF hatches" msgstr "" -#: ../src/extension/internal/wmf-inout.cpp:3164 +#: ../src/extension/internal/wmf-inout.cpp:3186 #: ../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:3187 msgid "Windows Metafile" msgstr "" @@ -8164,7 +8166,7 @@ msgstr "" msgid "Broken links have been changed to point to existing files." msgstr "" -#: ../src/file.cpp:339 ../src/file.cpp:1255 +#: ../src/file.cpp:339 ../src/file.cpp:1252 #, c-format msgid "Failed to load the requested file %s" msgstr "" @@ -8232,7 +8234,7 @@ msgid "Document saved." msgstr "" #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:866 ../src/file.cpp:1414 +#: ../src/file.cpp:866 ../src/file.cpp:1411 msgid "drawing" msgstr "" @@ -8256,20 +8258,20 @@ msgstr "" msgid "Saving document..." msgstr "" -#: ../src/file.cpp:1252 ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/file.cpp:1249 ../src/ui/dialog/inkscape-preferences.cpp:1450 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "" -#: ../src/file.cpp:1302 +#: ../src/file.cpp:1299 msgid "Select file to import" msgstr "" -#: ../src/file.cpp:1435 +#: ../src/file.cpp:1432 msgid "Select file to export to" msgstr "" -#: ../src/file.cpp:1688 +#: ../src/file.cpp:1685 msgid "Import Clip Art" msgstr "" @@ -8362,7 +8364,7 @@ msgstr "" msgid "Exclusion" msgstr "" -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:186 +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 #: ../src/widgets/sp-color-icc-selector.cpp:336 #: ../src/widgets/sp-color-icc-selector.cpp:340 #: ../src/widgets/sp-color-scales.cpp:441 @@ -8434,7 +8436,7 @@ msgstr "" msgid "Arithmetic" msgstr "" -#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:546 +#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 msgid "Duplicate" msgstr "" @@ -8471,15 +8473,15 @@ msgstr "" msgid "Spot Light" msgstr "" -#: ../src/gradient-chemistry.cpp:1579 +#: ../src/gradient-chemistry.cpp:1580 msgid "Invert gradient colors" msgstr "" -#: ../src/gradient-chemistry.cpp:1605 +#: ../src/gradient-chemistry.cpp:1607 msgid "Reverse gradient" msgstr "" -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:222 +#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "" @@ -8540,7 +8542,7 @@ msgstr "" msgid "Move gradient handle" msgstr "" -#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 +#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:828 msgid "Delete gradient stop" msgstr "" @@ -8579,59 +8581,59 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/gradient-drag.cpp:2378 +#: ../src/gradient-drag.cpp:2379 msgid "Move gradient handle(s)" msgstr "" -#: ../src/gradient-drag.cpp:2414 +#: ../src/gradient-drag.cpp:2415 msgid "Move gradient mid stop(s)" msgstr "" -#: ../src/gradient-drag.cpp:2703 +#: ../src/gradient-drag.cpp:2704 msgid "Delete gradient stop(s)" msgstr "" -#: ../src/inkscape.cpp:246 +#: ../src/inkscape.cpp:242 msgid "Autosave failed! Cannot create directory %1." msgstr "" -#: ../src/inkscape.cpp:255 +#: ../src/inkscape.cpp:251 msgid "Autosave failed! Cannot open directory %1." msgstr "" -#: ../src/inkscape.cpp:271 +#: ../src/inkscape.cpp:267 msgid "Autosaving documents..." msgstr "" -#: ../src/inkscape.cpp:339 +#: ../src/inkscape.cpp:335 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" -#: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 +#: ../src/inkscape.cpp:338 ../src/inkscape.cpp:345 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "" -#: ../src/inkscape.cpp:364 +#: ../src/inkscape.cpp:360 msgid "Autosave complete." msgstr "" -#: ../src/inkscape.cpp:622 +#: ../src/inkscape.cpp:618 msgid "Untitled document" msgstr "" #. Show nice dialog box -#: ../src/inkscape.cpp:654 +#: ../src/inkscape.cpp:650 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "" -#: ../src/inkscape.cpp:655 +#: ../src/inkscape.cpp:651 msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" msgstr "" -#: ../src/inkscape.cpp:656 +#: ../src/inkscape.cpp:652 msgid "Automatic backup of the following documents failed:\n" msgstr "" @@ -8639,24 +8641,24 @@ msgstr "" msgid "Node or handle drag canceled." msgstr "" -#: ../src/knotholder.cpp:170 +#: ../src/knotholder.cpp:171 msgid "Change handle" msgstr "" -#: ../src/knotholder.cpp:257 +#: ../src/knotholder.cpp:258 msgid "Move handle" msgstr "" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:276 ../src/knotholder.cpp:298 +#: ../src/knotholder.cpp:277 ../src/knotholder.cpp:299 msgid "Move the pattern fill inside the object" msgstr "" -#: ../src/knotholder.cpp:280 ../src/knotholder.cpp:302 +#: ../src/knotholder.cpp:281 ../src/knotholder.cpp:303 msgid "Scale the pattern fill; uniformly if with Ctrl" msgstr "" -#: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 +#: ../src/knotholder.cpp:285 ../src/knotholder.cpp:307 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "" @@ -8695,7 +8697,7 @@ msgstr "" #. Name #: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 -#: ../src/widgets/text-toolbar.cpp:1405 +#: ../src/widgets/text-toolbar.cpp:1411 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -8824,10 +8826,10 @@ msgid "" msgstr "" #: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1002 +#: ../src/ui/dialog/align-and-distribute.cpp:998 #: ../src/ui/dialog/document-properties.cpp:160 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 -#: ../src/widgets/desktop-widget.cpp:1992 +#: ../src/widgets/desktop-widget.cpp:1994 #: ../share/extensions/empty_page.inx.h:1 #: ../share/extensions/voronoi2svg.inx.h:9 msgid "Page" @@ -8838,9 +8840,9 @@ msgid "The index of the current page" msgstr "" #: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/live_effects/parameter/originalpatharray.cpp:86 +#: ../src/live_effects/parameter/originalpatharray.cpp:82 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 -#: ../src/ui/widget/page-sizer.cpp:258 +#: ../src/ui/widget/page-sizer.cpp:283 #: ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" @@ -9205,7 +9207,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:2871 msgid "Fill between many" msgstr "" @@ -9243,21 +9245,21 @@ msgid "" "disabled on canvas" msgstr "" -#: ../src/live_effects/effect.cpp:384 +#: ../src/live_effects/effect.cpp:387 msgid "No effect" msgstr "" -#: ../src/live_effects/effect.cpp:492 +#: ../src/live_effects/effect.cpp:495 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" -#: ../src/live_effects/effect.cpp:759 +#: ../src/live_effects/effect.cpp:762 #, c-format msgid "Editing parameter %s." msgstr "" -#: ../src/live_effects/effect.cpp:764 +#: ../src/live_effects/effect.cpp:767 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" @@ -9332,8 +9334,8 @@ 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 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "_Width:" msgstr "" @@ -9378,50 +9380,50 @@ msgstr "" msgid "Uses the visual bounding box" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Steps with CTRL:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Change number of steps with CTRL pressed" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-bspline.cpp:26 #: ../src/live_effects/lpe-simplify.cpp:33 msgid "Helper size:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:58 +#: ../src/live_effects/lpe-bspline.cpp:26 #: ../src/live_effects/lpe-simplify.cpp:33 msgid "Helper size" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:59 +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Ignore cusp nodes" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:59 +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Change ignoring cusp nodes" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:60 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:28 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 msgid "Change only selected nodes" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:29 msgid "Change weight:" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:29 msgid "Change weight of the effect" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:290 +#: ../src/live_effects/lpe-bspline.cpp:260 msgid "Default weight" msgstr "" -#: ../src/live_effects/lpe-bspline.cpp:295 +#: ../src/live_effects/lpe-bspline.cpp:265 msgid "Make cusp" msgstr "" @@ -9597,104 +9599,88 @@ msgstr "" msgid "Reverses the second path order" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:41 #: ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 msgid "Force arc" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:44 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 msgid "Force bezier" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:53 msgid "Fillet point" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 msgid "Hide knots" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 msgid "Ignore 0 radius knots" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 msgid "Flexible radius size (%)" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 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:202 -msgid "Unit" -msgstr "" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Method:" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Fillets methods" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius (unit or %):" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius, in unit or %" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps:" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 msgid "Helper size with direction:" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 msgid "Helper size with direction" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:154 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:71 msgid "Fillet" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:158 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:73 msgid "Inverse fillet" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:80 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:163 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:75 msgid "Chamfer" msgstr "" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:82 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:167 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:77 msgid "Inverse chamfer" msgstr "" @@ -9777,15 +9763,15 @@ msgstr "" #: ../src/live_effects/lpe-jointype.cpp:31 #: ../src/live_effects/lpe-powerstroke.cpp:227 -#: ../src/live_effects/lpe-taperstroke.cpp:63 +#: ../src/live_effects/lpe-taperstroke.cpp:64 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 +#: ../src/live_effects/lpe-taperstroke.cpp:65 +#: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded" msgstr "" @@ -9796,9 +9782,7 @@ 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" +msgid "Miter Clip" msgstr "" #. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well @@ -9822,10 +9806,6 @@ msgstr "" 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 "" @@ -9852,14 +9832,8 @@ msgstr "" 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 "" - +#. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), +#. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:56 #: ../src/live_effects/lpe-powerstroke.cpp:244 #: ../src/live_effects/lpe-taperstroke.cpp:79 @@ -9936,253 +9910,239 @@ msgstr "" 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: reset, Ctrl: move along axes" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1:" +#: ../src/live_effects/lpe-perspective-envelope.cpp:43 +msgid "Mirror movements in horizontal" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "" -"Control handle 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +#: ../src/live_effects/lpe-perspective-envelope.cpp:44 +msgid "Mirror movements in vertical" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2:" +msgid "Control 0:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "" -"Control handle 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3:" +msgid "Control 1:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "" -"Control handle 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4:" +msgid "Control 2:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "" -"Control handle 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5:" +msgid "Control 3:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "" -"Control handle 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6:" +msgid "Control 4:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "" -"Control handle 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7:" +msgid "Control 5:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "" -"Control handle 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9:" +msgid "Control 6:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "" -"Control handle 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11:" +msgid "Control 7:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "" -"Control handle 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12:" +msgid "Control 8x9:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:57 msgid "" -"Control handle 12 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13:" +msgid "Control 10x11:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:58 msgid "" -"Control handle 13 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14:" +msgid "Control 12:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "" -"Control handle 14 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15:" +msgid "Control 13:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "" -"Control handle 15 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16:" +msgid "Control 14:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "" -"Control handle 16 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17:" +msgid "Control 15:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "" -"Control handle 17 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18:" +msgid "Control 16:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "" -"Control handle 18 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19:" +msgid "Control 17:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "" -"Control handle 19 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21:" +msgid "Control 18:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "" -"Control handle 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23:" +msgid "Control 19:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "" -"Control handle 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26:" +msgid "Control 20x21:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:67 msgid "" -"Control handle 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27:" +msgid "Control 22x23:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:68 msgid "" -"Control handle 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30:" +msgid "Control 24x26:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:69 msgid "" -"Control handle 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31:" +msgid "Control 25x27:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:70 msgid "" -"Control handle 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35:" +msgid "Control 28x30:" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:71 msgid "" -"Control handle 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move " -"along axes" +"Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +msgid "Control 29x31:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +msgid "" +"Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -#: ../src/live_effects/lpe-lattice2.cpp:224 +#: ../src/live_effects/lpe-lattice2.cpp:73 +msgid "Control 32x33x34x35:" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +msgid "" +"Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:236 msgid "Reset grid" msgstr "" +#: ../src/live_effects/lpe-lattice2.cpp:268 +#: ../src/live_effects/lpe-lattice2.cpp:283 +msgid "Show Points" +msgstr "" + +#: ../src/live_effects/lpe-lattice2.cpp:281 +msgid "Hide Points" +msgstr "" + #: ../src/live_effects/lpe-patternalongpath.cpp:50 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -10276,57 +10236,56 @@ msgstr "" msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:37 +#: ../src/live_effects/lpe-perspective-envelope.cpp:35 #: ../share/extensions/perspective.inx.h:1 msgid "Perspective" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:38 +#: ../src/live_effects/lpe-perspective-envelope.cpp:36 msgid "Envelope deformation" msgstr "" -#. initialise your parameters here: -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Type" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Select the type of deformation" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -#: ../src/live_effects/lpe-perspective-envelope.cpp:257 +#: ../src/live_effects/lpe-perspective-envelope.cpp:268 msgid "Handles:" msgstr "" @@ -10564,65 +10523,62 @@ msgid "" "amount" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:30 ../share/extensions/addnodes.inx.h:4 +#: ../src/live_effects/lpe-roughen.cpp:29 ../share/extensions/addnodes.inx.h:4 msgid "By number of segments" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:31 +#: ../src/live_effects/lpe-roughen.cpp:30 msgid "By max. segment size" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:40 +#. initialise your parameters here: +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Method" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:40 +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Division method" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:42 +#: ../src/live_effects/lpe-roughen.cpp:40 msgid "Max. segment size" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:44 +#: ../src/live_effects/lpe-roughen.cpp:42 msgid "Number of segments" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:46 +#: ../src/live_effects/lpe-roughen.cpp:44 msgid "Max. displacement in X" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:48 +#: ../src/live_effects/lpe-roughen.cpp:46 msgid "Max. displacement in Y" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:50 +#: ../src/live_effects/lpe-roughen.cpp:48 msgid "Global randomize" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:52 +#: ../src/live_effects/lpe-roughen.cpp:50 #: ../share/extensions/radiusrand.inx.h:5 msgid "Shift nodes" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:54 +#: ../src/live_effects/lpe-roughen.cpp:52 #: ../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 +#: ../src/live_effects/lpe-roughen.cpp:100 msgid "Add nodes Subdivide each segment" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:120 +#: ../src/live_effects/lpe-roughen.cpp:109 msgid "Jitter nodes Move nodes/handles" msgstr "" -#: ../src/live_effects/lpe-roughen.cpp:129 +#: ../src/live_effects/lpe-roughen.cpp:118 msgid "Extra roughen Add a extra layer of rough" msgstr "" @@ -10647,11 +10603,11 @@ msgctxt "Border mark" msgid "None" msgstr "" -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:328 +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:319 msgid "Start" msgstr "" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:341 +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:332 msgid "End" msgstr "" @@ -10663,6 +10619,18 @@ msgstr "" msgid "Distance between successive ruler marks" msgstr "" +#: ../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 "" + +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:202 +msgid "Unit" +msgstr "" + #: ../src/live_effects/lpe-ruler.cpp:43 msgid "Ma_jor length:" msgstr "" @@ -10764,34 +10732,18 @@ msgid "Max degree difference on handles to preform a smooth" msgstr "" #: ../src/live_effects/lpe-simplify.cpp:34 -msgid "Helper nodes" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:34 -msgid "Show helper nodes" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:36 -msgid "Helper handles" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:36 -msgid "Show helper handles" -msgstr "" - -#: ../src/live_effects/lpe-simplify.cpp:38 msgid "Paths separately" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Simplifying paths (separately)" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:40 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Just coalesce" msgstr "" -#: ../src/live_effects/lpe-simplify.cpp:40 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Simplify just coalesce" msgstr "" @@ -10880,7 +10832,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "" #: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "" @@ -10980,11 +10932,11 @@ msgstr "" msgid "Limit for miter joins" msgstr "" -#: ../src/live_effects/lpe-taperstroke.cpp:536 +#: ../src/live_effects/lpe-taperstroke.cpp:448 msgid "Start point of the taper" msgstr "" -#: ../src/live_effects/lpe-taperstroke.cpp:540 +#: ../src/live_effects/lpe-taperstroke.cpp:452 msgid "End point of the taper" msgstr "" @@ -11050,77 +11002,77 @@ msgstr "" msgid "Change enumeration parameter" msgstr "" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:771 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:832 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 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:775 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:836 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 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:779 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:840 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 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:783 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:844 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 +#: ../src/live_effects/parameter/originalpath.cpp:67 +#: ../src/live_effects/parameter/originalpatharray.cpp:155 msgid "Link to path" msgstr "" -#: ../src/live_effects/parameter/originalpath.cpp:83 +#: ../src/live_effects/parameter/originalpath.cpp:79 msgid "Select original" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/live_effects/parameter/originalpatharray.cpp:90 +#: ../src/widgets/gradient-toolbar.cpp:1208 msgid "Reverse" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:134 -#: ../src/live_effects/parameter/originalpatharray.cpp:319 -#: ../src/live_effects/parameter/path.cpp:475 +#: ../src/live_effects/parameter/originalpatharray.cpp:130 +#: ../src/live_effects/parameter/originalpatharray.cpp:315 +#: ../src/live_effects/parameter/path.cpp:481 msgid "Link path parameter to path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:171 +#: ../src/live_effects/parameter/originalpatharray.cpp:167 msgid "Remove Path" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:183 +#: ../src/live_effects/parameter/originalpatharray.cpp:179 #: ../src/ui/dialog/objects.cpp:1823 msgid "Move Down" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:195 +#: ../src/live_effects/parameter/originalpatharray.cpp:191 #: ../src/ui/dialog/objects.cpp:1831 msgid "Move Up" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:235 +#: ../src/live_effects/parameter/originalpatharray.cpp:231 msgid "Move path up" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:265 +#: ../src/live_effects/parameter/originalpatharray.cpp:261 msgid "Move path down" msgstr "" -#: ../src/live_effects/parameter/originalpatharray.cpp:283 +#: ../src/live_effects/parameter/originalpatharray.cpp:279 msgid "Remove path" msgstr "" @@ -11144,11 +11096,11 @@ msgstr "" msgid "Link to path on clipboard" msgstr "" -#: ../src/live_effects/parameter/path.cpp:443 +#: ../src/live_effects/parameter/path.cpp:449 msgid "Paste path parameter" msgstr "" -#: ../src/live_effects/parameter/point.cpp:103 +#: ../src/live_effects/parameter/point.cpp:124 msgid "Change point parameter" msgstr "" @@ -11456,7 +11408,7 @@ msgstr "" msgid "Start Inkscape in interactive shell mode." msgstr "" -#: ../src/main.cpp:871 ../src/main.cpp:1283 +#: ../src/main.cpp:871 ../src/main.cpp:1280 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -11464,17 +11416,17 @@ msgid "" msgstr "" #. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:79 msgid "_File" msgstr "" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 +#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2682 ../src/verbs.cpp:2690 msgid "_Edit" msgstr "" -#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 +#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2446 msgid "Paste Si_ze" msgstr "" @@ -11559,27 +11511,27 @@ msgstr "" msgid "Tutorials" msgstr "" -#: ../src/path-chemistry.cpp:54 +#: ../src/path-chemistry.cpp:63 msgid "Select object(s) to combine." msgstr "" -#: ../src/path-chemistry.cpp:58 +#: ../src/path-chemistry.cpp:67 msgid "Combining paths..." msgstr "" -#: ../src/path-chemistry.cpp:174 +#: ../src/path-chemistry.cpp:177 msgid "Combine" msgstr "" -#: ../src/path-chemistry.cpp:181 +#: ../src/path-chemistry.cpp:184 msgid "No path(s) to combine in the selection." msgstr "" -#: ../src/path-chemistry.cpp:193 +#: ../src/path-chemistry.cpp:196 msgid "Select path(s) to break apart." msgstr "" -#: ../src/path-chemistry.cpp:197 +#: ../src/path-chemistry.cpp:200 msgid "Breaking apart paths..." msgstr "" @@ -11599,27 +11551,27 @@ msgstr "" msgid "Converting objects to paths..." msgstr "" -#: ../src/path-chemistry.cpp:327 +#: ../src/path-chemistry.cpp:324 msgid "Object to path" msgstr "" -#: ../src/path-chemistry.cpp:329 +#: ../src/path-chemistry.cpp:326 msgid "No objects to convert to path in the selection." msgstr "" -#: ../src/path-chemistry.cpp:618 +#: ../src/path-chemistry.cpp:613 msgid "Select path(s) to reverse." msgstr "" -#: ../src/path-chemistry.cpp:627 +#: ../src/path-chemistry.cpp:622 msgid "Reversing paths..." msgstr "" -#: ../src/path-chemistry.cpp:662 +#: ../src/path-chemistry.cpp:657 msgid "Reverse path" msgstr "" -#: ../src/path-chemistry.cpp:664 +#: ../src/path-chemistry.cpp:659 msgid "No paths to reverse in the selection." msgstr "" @@ -11742,7 +11694,7 @@ msgstr "" #. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1952 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1960 #: ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "" @@ -11885,51 +11837,56 @@ msgstr "" msgid "Fixup broken links" msgstr "" -#: ../src/selection-chemistry.cpp:406 +#: ../src/selection-chemistry.cpp:401 msgid "Delete text" msgstr "" -#: ../src/selection-chemistry.cpp:414 +#: ../src/selection-chemistry.cpp:409 msgid "Nothing was deleted." msgstr "" -#: ../src/selection-chemistry.cpp:433 +#: ../src/selection-chemistry.cpp:426 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 #: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 #: ../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:1184 +#: ../src/widgets/gradient-toolbar.cpp:1198 +#: ../src/widgets/gradient-toolbar.cpp:1212 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "" -#: ../src/selection-chemistry.cpp:461 +#: ../src/selection-chemistry.cpp:454 msgid "Select object(s) to duplicate." msgstr "" -#: ../src/selection-chemistry.cpp:572 +#: ../src/selection-chemistry.cpp:551 +#, c-format +msgid "%s copy" +msgstr "" + +#: ../src/selection-chemistry.cpp:574 msgid "Delete all" msgstr "" -#: ../src/selection-chemistry.cpp:763 +#: ../src/selection-chemistry.cpp:762 msgid "Select some objects to group." msgstr "" -#: ../src/selection-chemistry.cpp:778 +#: ../src/selection-chemistry.cpp:775 msgctxt "Verb" msgid "Group" msgstr "" -#: ../src/selection-chemistry.cpp:801 +#: ../src/selection-chemistry.cpp:798 msgid "Select a group to ungroup." msgstr "" -#: ../src/selection-chemistry.cpp:816 +#: ../src/selection-chemistry.cpp:813 msgid "No groups to ungroup in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:575 +#: ../src/selection-chemistry.cpp:869 ../src/sp-item-group.cpp:554 msgid "Ungroup" msgstr "" @@ -11937,357 +11894,357 @@ msgstr "" 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 +#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1015 +#: ../src/selection-chemistry.cpp:1041 ../src/selection-chemistry.cpp:1099 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 +#: ../src/selection-chemistry.cpp:999 msgctxt "Undo action" msgid "Raise" msgstr "" -#: ../src/selection-chemistry.cpp:1011 +#: ../src/selection-chemistry.cpp:1007 msgid "Select object(s) to raise to top." msgstr "" -#: ../src/selection-chemistry.cpp:1034 +#: ../src/selection-chemistry.cpp:1028 msgid "Raise to top" msgstr "" -#: ../src/selection-chemistry.cpp:1041 +#: ../src/selection-chemistry.cpp:1035 msgid "Select object(s) to lower." msgstr "" #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1093 +#: ../src/selection-chemistry.cpp:1083 msgctxt "Undo action" msgid "Lower" msgstr "" -#: ../src/selection-chemistry.cpp:1101 +#: ../src/selection-chemistry.cpp:1091 msgid "Select object(s) to lower to bottom." msgstr "" -#: ../src/selection-chemistry.cpp:1136 +#: ../src/selection-chemistry.cpp:1122 msgid "Lower to bottom" msgstr "" -#: ../src/selection-chemistry.cpp:1146 +#: ../src/selection-chemistry.cpp:1132 msgid "Nothing to undo." msgstr "" -#: ../src/selection-chemistry.cpp:1157 +#: ../src/selection-chemistry.cpp:1143 msgid "Nothing to redo." msgstr "" -#: ../src/selection-chemistry.cpp:1229 +#: ../src/selection-chemistry.cpp:1215 msgid "Paste" msgstr "" -#: ../src/selection-chemistry.cpp:1237 +#: ../src/selection-chemistry.cpp:1223 msgid "Paste style" msgstr "" -#: ../src/selection-chemistry.cpp:1247 +#: ../src/selection-chemistry.cpp:1233 msgid "Paste live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1269 +#: ../src/selection-chemistry.cpp:1255 msgid "Select object(s) to remove live path effects from." msgstr "" -#: ../src/selection-chemistry.cpp:1281 +#: ../src/selection-chemistry.cpp:1267 msgid "Remove live path effect" msgstr "" -#: ../src/selection-chemistry.cpp:1292 +#: ../src/selection-chemistry.cpp:1278 msgid "Select object(s) to remove filters from." msgstr "" -#: ../src/selection-chemistry.cpp:1302 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +#: ../src/selection-chemistry.cpp:1288 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1693 msgid "Remove filter" msgstr "" -#: ../src/selection-chemistry.cpp:1311 +#: ../src/selection-chemistry.cpp:1297 msgid "Paste size" msgstr "" -#: ../src/selection-chemistry.cpp:1320 +#: ../src/selection-chemistry.cpp:1306 msgid "Paste size separately" msgstr "" -#: ../src/selection-chemistry.cpp:1349 +#: ../src/selection-chemistry.cpp:1335 msgid "Select object(s) to move to the layer above." msgstr "" -#: ../src/selection-chemistry.cpp:1376 +#: ../src/selection-chemistry.cpp:1360 msgid "Raise to next layer" msgstr "" -#: ../src/selection-chemistry.cpp:1383 +#: ../src/selection-chemistry.cpp:1367 msgid "No more layers above." msgstr "" -#: ../src/selection-chemistry.cpp:1395 +#: ../src/selection-chemistry.cpp:1378 msgid "Select object(s) to move to the layer below." msgstr "" -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1403 msgid "Lower to previous layer" msgstr "" -#: ../src/selection-chemistry.cpp:1429 +#: ../src/selection-chemistry.cpp:1410 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:2625 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:1526 ../src/seltrans.cpp:390 msgid "Cannot transform an embedded SVG." msgstr "" -#: ../src/selection-chemistry.cpp:1720 +#: ../src/selection-chemistry.cpp:1696 msgid "Remove transform" msgstr "" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CCW" msgstr "" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CW" msgstr "" -#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 -#: ../src/ui/dialog/transformation.cpp:893 +#: ../src/selection-chemistry.cpp:1824 ../src/seltrans.cpp:483 +#: ../src/ui/dialog/transformation.cpp:891 msgid "Rotate" msgstr "" -#: ../src/selection-chemistry.cpp:2204 +#: ../src/selection-chemistry.cpp:2173 msgid "Rotate by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 -#: ../src/ui/dialog/transformation.cpp:868 +#: ../src/selection-chemistry.cpp:2203 ../src/seltrans.cpp:480 +#: ../src/ui/dialog/transformation.cpp:865 ../src/ui/widget/page-sizer.cpp:448 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "" -#: ../src/selection-chemistry.cpp:2259 +#: ../src/selection-chemistry.cpp:2228 msgid "Scale by whole factor" msgstr "" -#: ../src/selection-chemistry.cpp:2274 +#: ../src/selection-chemistry.cpp:2243 msgid "Move vertically" msgstr "" -#: ../src/selection-chemistry.cpp:2277 +#: ../src/selection-chemistry.cpp:2246 msgid "Move horizontally" msgstr "" -#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 -#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 +#: ../src/selection-chemistry.cpp:2249 ../src/selection-chemistry.cpp:2275 +#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:802 msgid "Move" msgstr "" -#: ../src/selection-chemistry.cpp:2300 +#: ../src/selection-chemistry.cpp:2269 msgid "Move vertically by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2303 +#: ../src/selection-chemistry.cpp:2272 msgid "Move horizontally by pixels" msgstr "" -#: ../src/selection-chemistry.cpp:2435 +#: ../src/selection-chemistry.cpp:2475 msgid "The selection has no applied path effect." msgstr "" -#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2567 ../src/ui/dialog/clonetiler.cpp:2221 msgid "Select an object to clone." msgstr "" -#: ../src/selection-chemistry.cpp:2643 +#: ../src/selection-chemistry.cpp:2602 msgctxt "Action" msgid "Clone" msgstr "" -#: ../src/selection-chemistry.cpp:2659 +#: ../src/selection-chemistry.cpp:2616 msgid "Select clones to relink." msgstr "" -#: ../src/selection-chemistry.cpp:2666 +#: ../src/selection-chemistry.cpp:2623 msgid "Copy an object to clipboard to relink clones to." msgstr "" -#: ../src/selection-chemistry.cpp:2689 +#: ../src/selection-chemistry.cpp:2644 msgid "No clones to relink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2692 +#: ../src/selection-chemistry.cpp:2647 msgid "Relink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2706 +#: ../src/selection-chemistry.cpp:2661 msgid "Select clones to unlink." msgstr "" -#: ../src/selection-chemistry.cpp:2762 +#: ../src/selection-chemistry.cpp:2714 msgid "No clones to unlink in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:2766 +#: ../src/selection-chemistry.cpp:2718 msgid "Unlink clone" msgstr "" -#: ../src/selection-chemistry.cpp:2779 +#: ../src/selection-chemistry.cpp:2731 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:2781 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" msgstr "" -#: ../src/selection-chemistry.cpp:2833 +#: ../src/selection-chemistry.cpp:2787 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:2877 msgid "Select path(s) to fill." msgstr "" -#: ../src/selection-chemistry.cpp:2940 +#: ../src/selection-chemistry.cpp:2895 msgid "Select object(s) to convert to marker." msgstr "" -#: ../src/selection-chemistry.cpp:3015 +#: ../src/selection-chemistry.cpp:2969 msgid "Objects to marker" msgstr "" -#: ../src/selection-chemistry.cpp:3040 +#: ../src/selection-chemistry.cpp:2995 msgid "Select object(s) to convert to guides." msgstr "" -#: ../src/selection-chemistry.cpp:3063 +#: ../src/selection-chemistry.cpp:3016 msgid "Objects to guides" msgstr "" -#: ../src/selection-chemistry.cpp:3099 +#: ../src/selection-chemistry.cpp:3052 msgid "Select objects to convert to symbol." msgstr "" -#: ../src/selection-chemistry.cpp:3202 +#: ../src/selection-chemistry.cpp:3153 msgid "Group to symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3221 +#: ../src/selection-chemistry.cpp:3172 msgid "Select a symbol to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3230 +#: ../src/selection-chemistry.cpp:3181 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" -#: ../src/selection-chemistry.cpp:3288 +#: ../src/selection-chemistry.cpp:3237 msgid "Group from symbol" msgstr "" -#: ../src/selection-chemistry.cpp:3306 +#: ../src/selection-chemistry.cpp:3255 msgid "Select object(s) to convert to pattern." msgstr "" -#: ../src/selection-chemistry.cpp:3405 +#: ../src/selection-chemistry.cpp:3351 msgid "Objects to pattern" msgstr "" -#: ../src/selection-chemistry.cpp:3421 +#: ../src/selection-chemistry.cpp:3367 msgid "Select an object with pattern fill to extract objects from." msgstr "" -#: ../src/selection-chemistry.cpp:3482 +#: ../src/selection-chemistry.cpp:3426 msgid "No pattern fills in the selection." msgstr "" -#: ../src/selection-chemistry.cpp:3485 +#: ../src/selection-chemistry.cpp:3429 msgid "Pattern to objects" msgstr "" -#: ../src/selection-chemistry.cpp:3576 +#: ../src/selection-chemistry.cpp:3516 msgid "Select object(s) to make a bitmap copy." msgstr "" -#: ../src/selection-chemistry.cpp:3580 +#: ../src/selection-chemistry.cpp:3520 msgid "Rendering bitmap..." msgstr "" -#: ../src/selection-chemistry.cpp:3767 +#: ../src/selection-chemistry.cpp:3705 msgid "Create bitmap" msgstr "" -#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 +#: ../src/selection-chemistry.cpp:3730 ../src/selection-chemistry.cpp:3842 msgid "Select object(s) to create clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:3885 +#: ../src/selection-chemistry.cpp:3816 msgid "Create Clip Group" msgstr "" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:3845 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" -#: ../src/selection-chemistry.cpp:4095 +#: ../src/selection-chemistry.cpp:3992 msgid "Set clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4097 +#: ../src/selection-chemistry.cpp:3994 msgid "Set mask" msgstr "" -#: ../src/selection-chemistry.cpp:4112 +#: ../src/selection-chemistry.cpp:4009 msgid "Select object(s) to remove clippath or mask from." msgstr "" -#: ../src/selection-chemistry.cpp:4232 +#: ../src/selection-chemistry.cpp:4125 msgid "Release clipping path" msgstr "" -#: ../src/selection-chemistry.cpp:4234 +#: ../src/selection-chemistry.cpp:4127 msgid "Release mask" msgstr "" -#: ../src/selection-chemistry.cpp:4253 +#: ../src/selection-chemistry.cpp:4146 msgid "Select object(s) to fit canvas to." msgstr "" #. Fit Page -#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4166 ../src/verbs.cpp:2961 msgid "Fit Page to Selection" msgstr "" -#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4195 ../src/verbs.cpp:2963 msgid "Fit Page to Drawing" msgstr "" -#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4216 ../src/verbs.cpp:2965 msgid "Fit Page to Selection or Drawing" msgstr "" @@ -12412,47 +12369,47 @@ msgid "" "Shift also uses this center" msgstr "" -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:981 +#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:980 msgid "Skew" msgstr "" -#: ../src/seltrans.cpp:499 +#: ../src/seltrans.cpp:500 msgid "Set center" msgstr "" -#: ../src/seltrans.cpp:574 +#: ../src/seltrans.cpp:573 msgid "Stamp" msgstr "" -#: ../src/seltrans.cpp:723 +#: ../src/seltrans.cpp:722 msgid "Reset center" msgstr "" -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#: ../src/seltrans.cpp:954 ../src/seltrans.cpp:1059 #, c-format msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1199 +#: ../src/seltrans.cpp:1198 #, 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 +#: ../src/seltrans.cpp:1273 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" msgstr "" -#: ../src/seltrans.cpp:1311 +#: ../src/seltrans.cpp:1310 #, c-format msgid "Move center to %s, %s" msgstr "" -#: ../src/seltrans.cpp:1465 +#: ../src/seltrans.cpp:1464 #, c-format msgid "" "Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " @@ -12464,8 +12421,8 @@ msgstr "" msgid "Keyboard directory (%s) is unavailable." msgstr "" -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1298 -#: ../src/ui/dialog/export.cpp:1332 +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1296 +#: ../src/ui/dialog/export.cpp:1330 msgid "Select a filename for exporting" msgstr "" @@ -12482,22 +12439,22 @@ msgstr "" msgid "without URI" msgstr "" -#: ../src/sp-ellipse.cpp:344 +#: ../src/sp-ellipse.cpp:361 msgid "Segment" msgstr "" -#: ../src/sp-ellipse.cpp:346 +#: ../src/sp-ellipse.cpp:363 msgid "Arc" msgstr "" #. Ellipse -#: ../src/sp-ellipse.cpp:349 ../src/sp-ellipse.cpp:356 +#: ../src/sp-ellipse.cpp:366 ../src/sp-ellipse.cpp:373 #: ../src/ui/dialog/inkscape-preferences.cpp:412 #: ../src/widgets/pencil-toolbar.cpp:163 msgid "Ellipse" msgstr "" -#: ../src/sp-ellipse.cpp:353 +#: ../src/sp-ellipse.cpp:370 msgid "Circle" msgstr "" @@ -12523,7 +12480,7 @@ msgid "Linked Flowed Text" msgstr "" #: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 -#: ../src/ui/tools/text-tool.cpp:1557 +#: ../src/ui/tools/text-tool.cpp:1556 msgid " [truncated]" msgstr "" @@ -12538,7 +12495,7 @@ msgstr[1] "" msgid "Create Guides Around the Page" msgstr "" -#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2518 msgid "Delete All Guides" msgstr "" @@ -12582,40 +12539,40 @@ msgstr "" msgid "%d × %d: %s" msgstr "" -#: ../src/sp-item-group.cpp:322 +#: ../src/sp-item-group.cpp:307 msgid "Group" msgstr "" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d object" msgstr "" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d objects" msgstr "" -#: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 +#: ../src/sp-item.cpp:1030 ../src/verbs.cpp:213 msgid "Object" msgstr "" -#: ../src/sp-item.cpp:1063 +#: ../src/sp-item.cpp:1042 #, c-format msgid "%s; clipped" msgstr "" -#: ../src/sp-item.cpp:1069 +#: ../src/sp-item.cpp:1048 #, c-format msgid "%s; masked" msgstr "" -#: ../src/sp-item.cpp:1079 +#: ../src/sp-item.cpp:1058 #, c-format msgid "%s; filtered (%s)" msgstr "" -#: ../src/sp-item.cpp:1081 +#: ../src/sp-item.cpp:1060 #, c-format msgid "%s; filtered" msgstr "" @@ -12678,7 +12635,7 @@ msgid "Polyline" msgstr "" #. Rectangle -#: ../src/sp-rect.cpp:153 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Rectangle" msgstr "" @@ -12697,11 +12654,11 @@ msgstr "" #. Star #: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 -#: ../src/widgets/star-toolbar.cpp:471 +#: ../src/widgets/star-toolbar.cpp:469 msgid "Star" msgstr "" -#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:464 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:462 msgid "Polygon" msgstr "" @@ -12718,11 +12675,11 @@ msgstr "" msgid "with %d vertices" msgstr "" -#: ../src/sp-switch.cpp:62 +#: ../src/sp-switch.cpp:63 msgid "Conditional Group" msgstr "" -#: ../src/sp-text.cpp:351 ../src/verbs.cpp:348 +#: ../src/sp-text.cpp:351 ../src/verbs.cpp:347 #: ../share/extensions/lorem_ipsum.inx.h:8 #: ../share/extensions/replace_font.inx.h:11 #: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 @@ -12755,7 +12712,7 @@ msgstr "" msgid " from " msgstr "" -#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:269 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:271 msgid "[orphaned]" msgstr "" @@ -12763,30 +12720,30 @@ msgstr "" msgid "Text Span" msgstr "" -#: ../src/sp-use.cpp:232 +#: ../src/sp-use.cpp:234 msgid "Symbol" msgstr "" -#: ../src/sp-use.cpp:234 +#: ../src/sp-use.cpp:236 msgid "Clone" msgstr "" -#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 ../src/sp-use.cpp:248 #, c-format msgid "called %s" msgstr "" -#: ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:248 msgid "Unnamed Symbol" msgstr "" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:255 +#: ../src/sp-use.cpp:257 msgid "..." msgstr "" -#: ../src/sp-use.cpp:264 +#: ../src/sp-use.cpp:266 #, c-format msgid "of: %s" msgstr "" @@ -12826,154 +12783,154 @@ msgid "" "difference, XOR, division, or path cut." msgstr "" -#: ../src/splivarot.cpp:407 +#: ../src/splivarot.cpp:406 msgid "" "One of the objects is not a path, cannot perform boolean operation." msgstr "" -#: ../src/splivarot.cpp:1157 +#: ../src/splivarot.cpp:1150 msgid "Select stroked path(s) to convert stroke to path." msgstr "" -#: ../src/splivarot.cpp:1516 +#: ../src/splivarot.cpp:1506 msgid "Convert stroke to path" msgstr "" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 +#: ../src/splivarot.cpp:1509 msgid "No stroked paths in the selection." msgstr "" -#: ../src/splivarot.cpp:1590 +#: ../src/splivarot.cpp:1580 msgid "Selected object is not a path, cannot inset/outset." msgstr "" -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +#: ../src/splivarot.cpp:1671 ../src/splivarot.cpp:1738 msgid "Create linked offset" msgstr "" -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +#: ../src/splivarot.cpp:1672 ../src/splivarot.cpp:1739 msgid "Create dynamic offset" msgstr "" -#: ../src/splivarot.cpp:1772 +#: ../src/splivarot.cpp:1764 msgid "Select path(s) to inset/outset." msgstr "" -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Outset path" msgstr "" -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Inset path" msgstr "" -#: ../src/splivarot.cpp:1970 +#: ../src/splivarot.cpp:1959 msgid "No paths to inset/outset in the selection." msgstr "" -#: ../src/splivarot.cpp:2132 +#: ../src/splivarot.cpp:2121 msgid "Simplifying paths (separately):" msgstr "" -#: ../src/splivarot.cpp:2134 +#: ../src/splivarot.cpp:2123 msgid "Simplifying paths:" msgstr "" -#: ../src/splivarot.cpp:2171 +#: ../src/splivarot.cpp:2160 #, c-format msgid "%s %d of %d paths simplified..." msgstr "" -#: ../src/splivarot.cpp:2184 +#: ../src/splivarot.cpp:2173 #, c-format msgid "%d paths simplified." msgstr "" -#: ../src/splivarot.cpp:2198 +#: ../src/splivarot.cpp:2187 msgid "Select path(s) to simplify." msgstr "" -#: ../src/splivarot.cpp:2214 +#: ../src/splivarot.cpp:2203 msgid "No paths to simplify in the selection." msgstr "" -#: ../src/text-chemistry.cpp:94 +#: ../src/text-chemistry.cpp:91 msgid "Select a text and a path to put text on path." msgstr "" -#: ../src/text-chemistry.cpp:99 +#: ../src/text-chemistry.cpp:96 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 +#: ../src/text-chemistry.cpp:102 msgid "" "You cannot put text on a rectangle in this version. Convert rectangle to " "path first." msgstr "" -#: ../src/text-chemistry.cpp:115 +#: ../src/text-chemistry.cpp:112 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 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2540 msgid "Put text on path" msgstr "" -#: ../src/text-chemistry.cpp:197 +#: ../src/text-chemistry.cpp:194 msgid "Select a text on path to remove it from path." msgstr "" -#: ../src/text-chemistry.cpp:218 +#: ../src/text-chemistry.cpp:213 msgid "No texts-on-paths in the selection." msgstr "" -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2542 msgid "Remove text from path" msgstr "" -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +#: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 msgid "Select text(s) to remove kerns from." msgstr "" -#: ../src/text-chemistry.cpp:286 +#: ../src/text-chemistry.cpp:280 msgid "Remove manual kerns" msgstr "" -#: ../src/text-chemistry.cpp:306 +#: ../src/text-chemistry.cpp:300 msgid "" "Select a text and one or more paths or shapes to flow text " "into frame." msgstr "" -#: ../src/text-chemistry.cpp:376 +#: ../src/text-chemistry.cpp:369 msgid "Flow text into shape" msgstr "" -#: ../src/text-chemistry.cpp:398 +#: ../src/text-chemistry.cpp:391 msgid "Select a flowed text to unflow it." msgstr "" -#: ../src/text-chemistry.cpp:472 +#: ../src/text-chemistry.cpp:464 msgid "Unflow flowed text" msgstr "" -#: ../src/text-chemistry.cpp:484 +#: ../src/text-chemistry.cpp:476 msgid "Select flowed text(s) to convert." msgstr "" -#: ../src/text-chemistry.cpp:502 +#: ../src/text-chemistry.cpp:494 msgid "The flowed text(s) must be visible in order to be converted." msgstr "" -#: ../src/text-chemistry.cpp:530 +#: ../src/text-chemistry.cpp:521 msgid "Convert flowed text to text" msgstr "" -#: ../src/text-chemistry.cpp:535 +#: ../src/text-chemistry.cpp:526 msgid "No flowed text(s) to convert in the selection." msgstr "" @@ -13036,8 +12993,8 @@ msgstr "" msgid "Nothing was copied." msgstr "" -#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 -#: ../src/ui/clipboard.cpp:634 +#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:607 +#: ../src/ui/clipboard.cpp:636 msgid "Nothing on the clipboard." msgstr "" @@ -13057,16 +13014,16 @@ msgstr "" msgid "No size on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:567 +#: ../src/ui/clipboard.cpp:568 msgid "Select object(s) to paste live path effect to." msgstr "" #. no_effect: -#: ../src/ui/clipboard.cpp:592 +#: ../src/ui/clipboard.cpp:594 msgid "No effect on the clipboard." msgstr "" -#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 +#: ../src/ui/clipboard.cpp:613 ../src/ui/clipboard.cpp:650 msgid "Clipboard does not contain a path." msgstr "" @@ -13114,248 +13071,248 @@ msgstr "" msgid "translator-credits" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:851 +#: ../src/ui/dialog/align-and-distribute.cpp:170 +#: ../src/ui/dialog/align-and-distribute.cpp:847 msgid "Align" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:852 +#: ../src/ui/dialog/align-and-distribute.cpp:338 +#: ../src/ui/dialog/align-and-distribute.cpp:848 msgid "Distribute" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:420 +#: ../src/ui/dialog/align-and-distribute.cpp:417 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 +#: ../src/ui/dialog/align-and-distribute.cpp:419 msgctxt "Gap" msgid "_H:" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:430 +#: ../src/ui/dialog/align-and-distribute.cpp:427 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 +#: ../src/ui/dialog/align-and-distribute.cpp:429 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 +#: ../src/ui/dialog/align-and-distribute.cpp:464 +#: ../src/ui/dialog/align-and-distribute.cpp:850 +#: ../src/widgets/connector-toolbar.cpp:407 msgid "Remove overlaps" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:498 -#: ../src/widgets/connector-toolbar.cpp:240 +#: ../src/ui/dialog/align-and-distribute.cpp:495 +#: ../src/widgets/connector-toolbar.cpp:236 msgid "Arrange connector network" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:591 +#: ../src/ui/dialog/align-and-distribute.cpp:588 msgid "Exchange Positions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:625 +#: ../src/ui/dialog/align-and-distribute.cpp:622 msgid "Unclump" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:697 +#: ../src/ui/dialog/align-and-distribute.cpp:693 msgid "Randomize positions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:800 +#: ../src/ui/dialog/align-and-distribute.cpp:795 msgid "Distribute text baselines" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:823 +#: ../src/ui/dialog/align-and-distribute.cpp:819 msgid "Align text baselines" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:853 +#: ../src/ui/dialog/align-and-distribute.cpp:849 msgid "Rearrange" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/ui/dialog/align-and-distribute.cpp:851 +#: ../src/widgets/toolbox.cpp:1725 msgid "Nodes" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:869 +#: ../src/ui/dialog/align-and-distribute.cpp:865 msgid "Relative to: " msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:870 +#: ../src/ui/dialog/align-and-distribute.cpp:866 msgid "_Treat selection as group: " msgstr "" #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 -#: ../src/verbs.cpp:3025 +#: ../src/ui/dialog/align-and-distribute.cpp:872 ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2994 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 +#: ../src/ui/dialog/align-and-distribute.cpp:875 ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2996 msgid "Align left edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 -#: ../src/verbs.cpp:3029 +#: ../src/ui/dialog/align-and-distribute.cpp:878 ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2998 msgid "Center on vertical axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 -#: ../src/verbs.cpp:3031 +#: ../src/ui/dialog/align-and-distribute.cpp:881 ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:3000 msgid "Align right sides" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 -#: ../src/verbs.cpp:3033 +#: ../src/ui/dialog/align-and-distribute.cpp:884 ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:3002 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 +#: ../src/ui/dialog/align-and-distribute.cpp:887 ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:3004 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 +#: ../src/ui/dialog/align-and-distribute.cpp:890 ../src/verbs.cpp:3005 +#: ../src/verbs.cpp:3006 msgid "Align top edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 -#: ../src/verbs.cpp:3039 +#: ../src/ui/dialog/align-and-distribute.cpp:893 ../src/verbs.cpp:3007 +#: ../src/verbs.cpp:3008 msgid "Center on horizontal axis" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 -#: ../src/verbs.cpp:3041 +#: ../src/ui/dialog/align-and-distribute.cpp:896 ../src/verbs.cpp:3009 +#: ../src/verbs.cpp:3010 msgid "Align bottom edges" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 -#: ../src/verbs.cpp:3043 +#: ../src/ui/dialog/align-and-distribute.cpp:899 ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:3012 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:908 +#: ../src/ui/dialog/align-and-distribute.cpp:904 msgid "Align baseline anchors of texts horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:911 +#: ../src/ui/dialog/align-and-distribute.cpp:907 msgid "Align baselines of texts" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:916 +#: ../src/ui/dialog/align-and-distribute.cpp:912 msgid "Make horizontal gaps between objects equal" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:920 +#: ../src/ui/dialog/align-and-distribute.cpp:916 msgid "Distribute left edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:923 +#: ../src/ui/dialog/align-and-distribute.cpp:919 msgid "Distribute centers equidistantly horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:926 +#: ../src/ui/dialog/align-and-distribute.cpp:922 msgid "Distribute right edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:930 +#: ../src/ui/dialog/align-and-distribute.cpp:926 msgid "Make vertical gaps between objects equal" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:934 +#: ../src/ui/dialog/align-and-distribute.cpp:930 msgid "Distribute top edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:937 +#: ../src/ui/dialog/align-and-distribute.cpp:933 msgid "Distribute centers equidistantly vertically" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:940 +#: ../src/ui/dialog/align-and-distribute.cpp:936 msgid "Distribute bottom edges equidistantly" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:945 +#: ../src/ui/dialog/align-and-distribute.cpp:941 msgid "Distribute baseline anchors of texts horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:948 +#: ../src/ui/dialog/align-and-distribute.cpp:944 msgid "Distribute baselines of texts vertically" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:954 -#: ../src/widgets/connector-toolbar.cpp:373 +#: ../src/ui/dialog/align-and-distribute.cpp:950 +#: ../src/widgets/connector-toolbar.cpp:369 msgid "Nicely arrange selected connector network" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:957 +#: ../src/ui/dialog/align-and-distribute.cpp:953 msgid "Exchange positions of selected objects - selection order" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:960 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Exchange positions of selected objects - stacking order" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:963 +#: ../src/ui/dialog/align-and-distribute.cpp:959 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:968 +#: ../src/ui/dialog/align-and-distribute.cpp:964 msgid "Randomize centers in both dimensions" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:971 +#: ../src/ui/dialog/align-and-distribute.cpp:967 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:976 +#: ../src/ui/dialog/align-and-distribute.cpp:972 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:984 +#: ../src/ui/dialog/align-and-distribute.cpp:980 msgid "Align selected nodes to a common horizontal line" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:987 +#: ../src/ui/dialog/align-and-distribute.cpp:983 msgid "Align selected nodes to a common vertical line" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:990 +#: ../src/ui/dialog/align-and-distribute.cpp:986 msgid "Distribute selected nodes horizontally" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:993 +#: ../src/ui/dialog/align-and-distribute.cpp:989 msgid "Distribute selected nodes vertically" msgstr "" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:998 +#: ../src/ui/dialog/align-and-distribute.cpp:994 msgid "Last selected" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "First selected" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1000 +#: ../src/ui/dialog/align-and-distribute.cpp:996 msgid "Biggest object" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1001 +#: ../src/ui/dialog/align-and-distribute.cpp:997 msgid "Smallest object" msgstr "" -#: ../src/ui/dialog/align-and-distribute.cpp:1004 +#: ../src/ui/dialog/align-and-distribute.cpp:1000 msgid "Selection Area" msgstr "" @@ -14030,91 +13987,91 @@ msgstr "" msgid "Select one object whose tiled clones to unclump." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2122 +#: ../src/ui/dialog/clonetiler.cpp:2120 msgid "Unclump tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2151 +#: ../src/ui/dialog/clonetiler.cpp:2149 msgid "Select one object whose tiled clones to remove." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2176 +#: ../src/ui/dialog/clonetiler.cpp:2174 msgid "Delete tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2229 +#: ../src/ui/dialog/clonetiler.cpp:2227 msgid "" "If you want to clone several objects, group them and clone the " "group." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2238 +#: ../src/ui/dialog/clonetiler.cpp:2236 msgid "Creating tiled clones..." msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2654 +#: ../src/ui/dialog/clonetiler.cpp:2652 msgid "Create tiled clones" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2887 +#: ../src/ui/dialog/clonetiler.cpp:2885 msgid "Per row:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2905 +#: ../src/ui/dialog/clonetiler.cpp:2903 msgid "Per column:" msgstr "" -#: ../src/ui/dialog/clonetiler.cpp:2913 +#: ../src/ui/dialog/clonetiler.cpp:2911 msgid "Randomize:" msgstr "" -#: ../src/ui/dialog/color-item.cpp:131 +#: ../src/ui/dialog/color-item.cpp:127 #, c-format msgid "" "Color: %s; Click to set fill, Shift+click to set stroke" msgstr "" -#: ../src/ui/dialog/color-item.cpp:509 +#: ../src/ui/dialog/color-item.cpp:505 msgid "Change color definition" msgstr "" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove stroke color" msgstr "" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove fill color" msgstr "" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set stroke color to none" msgstr "" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set fill color to none" msgstr "" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set stroke color from swatch" msgstr "" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set fill color from swatch" msgstr "" -#: ../src/ui/dialog/debug.cpp:73 +#: ../src/ui/dialog/debug.cpp:69 msgid "Messages" msgstr "" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +#: ../src/ui/dialog/debug.cpp:83 ../src/ui/dialog/messages.cpp:47 msgid "_Clear" msgstr "" -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:48 msgid "Capture log messages" msgstr "" -#: ../src/ui/dialog/debug.cpp:95 +#: ../src/ui/dialog/debug.cpp:91 msgid "Release log messages" msgstr "" @@ -14359,11 +14316,11 @@ msgid "Remove selected grid." msgstr "" #: ../src/ui/dialog/document-properties.cpp:161 -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1832 msgid "Guides" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2827 +#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2796 msgid "Snap" msgstr "" @@ -14407,7 +14364,7 @@ msgstr "" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:3008 +#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:2977 msgid "Link Color Profile" msgstr "" @@ -14531,212 +14488,212 @@ msgstr "" msgid "Defined grids" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:1653 +#: ../src/ui/dialog/document-properties.cpp:1654 msgid "Remove grid" msgstr "" -#: ../src/ui/dialog/document-properties.cpp:1741 +#: ../src/ui/dialog/document-properties.cpp:1746 msgid "Changed default display unit" msgstr "" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2879 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2848 msgid "_Page" msgstr "" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2883 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2852 msgid "_Drawing" msgstr "" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2885 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2854 msgid "_Selection" msgstr "" -#: ../src/ui/dialog/export.cpp:151 +#: ../src/ui/dialog/export.cpp:147 msgid "_Custom" msgstr "" -#: ../src/ui/dialog/export.cpp:169 ../src/widgets/measure-toolbar.cpp:99 +#: ../src/ui/dialog/export.cpp:165 ../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 +#: ../src/ui/dialog/export.cpp:167 msgid "_Export As..." msgstr "" -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "B_atch export all selected objects" msgstr "" -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "" "Export each selected object into its own PNG file, using export hints if any " "(caution, overwrites without asking!)" msgstr "" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "Hide a_ll except selected" msgstr "" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "In the exported image, hide all objects except those that are selected" msgstr "" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Close when complete" msgstr "" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Once the export completes, close this dialog" msgstr "" -#: ../src/ui/dialog/export.cpp:179 +#: ../src/ui/dialog/export.cpp:175 msgid "_Export" msgstr "" -#: ../src/ui/dialog/export.cpp:197 +#: ../src/ui/dialog/export.cpp:193 msgid "Export area" msgstr "" -#: ../src/ui/dialog/export.cpp:236 +#: ../src/ui/dialog/export.cpp:232 msgid "_x0:" msgstr "" -#: ../src/ui/dialog/export.cpp:240 +#: ../src/ui/dialog/export.cpp:236 msgid "x_1:" msgstr "" -#: ../src/ui/dialog/export.cpp:244 +#: ../src/ui/dialog/export.cpp:240 msgid "Wid_th:" msgstr "" -#: ../src/ui/dialog/export.cpp:248 +#: ../src/ui/dialog/export.cpp:244 msgid "_y0:" msgstr "" -#: ../src/ui/dialog/export.cpp:252 +#: ../src/ui/dialog/export.cpp:248 msgid "y_1:" msgstr "" -#: ../src/ui/dialog/export.cpp:256 +#: ../src/ui/dialog/export.cpp:252 msgid "Hei_ght:" msgstr "" -#: ../src/ui/dialog/export.cpp:271 +#: ../src/ui/dialog/export.cpp:267 msgid "Image size" msgstr "" -#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/export.cpp:300 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/export.cpp:296 msgid "pixels at" msgstr "" -#: ../src/ui/dialog/export.cpp:295 +#: ../src/ui/dialog/export.cpp:291 msgid "dp_i" msgstr "" -#: ../src/ui/dialog/export.cpp:300 ../src/ui/dialog/transformation.cpp:80 -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/dialog/export.cpp:296 ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "_Height:" msgstr "" -#: ../src/ui/dialog/export.cpp:308 +#: ../src/ui/dialog/export.cpp:304 #: ../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 +#: ../src/ui/dialog/export.cpp:312 msgid "_Filename" msgstr "" -#: ../src/ui/dialog/export.cpp:358 +#: ../src/ui/dialog/export.cpp:354 msgid "Export the bitmap file with these settings" msgstr "" -#: ../src/ui/dialog/export.cpp:611 +#: ../src/ui/dialog/export.cpp:607 #, 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 +#: ../src/ui/dialog/export.cpp:923 msgid "Export in progress" msgstr "" -#: ../src/ui/dialog/export.cpp:1017 +#: ../src/ui/dialog/export.cpp:1013 msgid "No items selected." msgstr "" -#: ../src/ui/dialog/export.cpp:1021 ../src/ui/dialog/export.cpp:1023 +#: ../src/ui/dialog/export.cpp:1017 ../src/ui/dialog/export.cpp:1019 msgid "Exporting %1 files" msgstr "" -#: ../src/ui/dialog/export.cpp:1063 ../src/ui/dialog/export.cpp:1065 +#: ../src/ui/dialog/export.cpp:1060 ../src/ui/dialog/export.cpp:1062 #, c-format msgid "Exporting file %s..." msgstr "" -#: ../src/ui/dialog/export.cpp:1074 ../src/ui/dialog/export.cpp:1165 +#: ../src/ui/dialog/export.cpp:1071 ../src/ui/dialog/export.cpp:1163 #, c-format msgid "Could not export to filename %s.\n" msgstr "" -#: ../src/ui/dialog/export.cpp:1077 +#: ../src/ui/dialog/export.cpp:1074 #, c-format msgid "Could not export to filename %s." msgstr "" -#: ../src/ui/dialog/export.cpp:1092 +#: ../src/ui/dialog/export.cpp:1089 #, c-format msgid "Successfully exported %d files from %d selected items." msgstr "" -#: ../src/ui/dialog/export.cpp:1103 +#: ../src/ui/dialog/export.cpp:1100 msgid "You have to enter a filename." msgstr "" -#: ../src/ui/dialog/export.cpp:1104 +#: ../src/ui/dialog/export.cpp:1101 msgid "You have to enter a filename" msgstr "" -#: ../src/ui/dialog/export.cpp:1118 +#: ../src/ui/dialog/export.cpp:1115 msgid "The chosen area to be exported is invalid." msgstr "" -#: ../src/ui/dialog/export.cpp:1119 +#: ../src/ui/dialog/export.cpp:1116 msgid "The chosen area to be exported is invalid" msgstr "" -#: ../src/ui/dialog/export.cpp:1134 +#: ../src/ui/dialog/export.cpp:1131 #, 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 +#: ../src/ui/dialog/export.cpp:1145 ../src/ui/dialog/export.cpp:1147 msgid "Exporting %1 (%2 x %3)" msgstr "" -#: ../src/ui/dialog/export.cpp:1176 +#: ../src/ui/dialog/export.cpp:1174 #, c-format msgid "Drawing exported to %s." msgstr "" -#: ../src/ui/dialog/export.cpp:1180 +#: ../src/ui/dialog/export.cpp:1178 msgid "Export aborted." msgstr "" -#: ../src/ui/dialog/export.cpp:1301 ../src/ui/interface.cpp:1392 +#: ../src/ui/dialog/export.cpp:1299 ../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 +#: ../src/ui/dialog/export.cpp:1300 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2406 ../src/widgets/desktop-widget.cpp:1123 msgid "_Save" msgstr "" @@ -14744,8 +14701,8 @@ msgstr "" 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 +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 +#: ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 #: ../share/extensions/color_randomize.inx.h:6 #: ../share/extensions/dots.inx.h:7 @@ -14817,36 +14774,36 @@ msgstr "" #: ../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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:417 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:287 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:288 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:289 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:290 msgid "All Bitmaps" msgstr "" @@ -14906,8 +14863,8 @@ msgstr "" msgid "Document" msgstr "" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:176 -#: ../src/widgets/desktop-widget.cpp:2000 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:2002 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "" @@ -14929,15 +14886,15 @@ msgstr "" msgid "Antialias" msgstr "" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:418 msgid "All Executable Files" msgstr "" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:610 msgid "Show Preview" msgstr "" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:748 msgid "No file selected" msgstr "" @@ -14954,7 +14911,7 @@ msgid "Stroke st_yle" msgstr "" #. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +#: ../src/ui/dialog/filter-effects-dialog.cpp:547 msgid "" "This matrix determines a linear transform on color space. Each line affects " "one of the color components. Each column determines how much of each color " @@ -14962,220 +14919,220 @@ msgid "" "depend on input colors, so can be used to adjust a constant component value." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../src/ui/dialog/filter-effects-dialog.cpp:550 #: ../share/extensions/grid_polar.inx.h:4 msgctxt "Label" msgid "None" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +#: ../src/ui/dialog/filter-effects-dialog.cpp:657 msgid "Image File" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +#: ../src/ui/dialog/filter-effects-dialog.cpp:660 msgid "Selected SVG Element" msgstr "" #. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:730 msgid "Select an image to be used as feImage input" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +#: ../src/ui/dialog/filter-effects-dialog.cpp:822 msgid "This SVG filter effect does not require any parameters." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +#: ../src/ui/dialog/filter-effects-dialog.cpp:828 msgid "This SVG filter effect is not yet implemented in Inkscape." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 msgid "Slope" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1043 msgid "Intercept" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 msgid "Amplitude" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 msgid "Exponent" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1144 msgid "New transfer function type" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1179 msgid "Light Source:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Direction angle for the light source on the XY plane, in degrees" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Direction angle for the light source on the YZ plane, in degrees" msgstr "" #. default x: #. default y: #. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 msgid "Location:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "X coordinate" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Y coordinate" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Z coordinate" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Points At" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Specular Exponent" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Exponent value controlling the focus for the light source" msgstr "" #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "Cone Angle" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "" "This is the angle between the spot light axis (i.e. the axis between the " "light source and the point to which it is pointing at) and the spot light " "cone. No light is projected outside this cone." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1275 msgid "New light source" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1326 msgid "_Duplicate" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1360 msgid "_Filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1387 msgid "R_ename" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1521 msgid "Rename filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1573 msgid "Apply filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1652 msgid "filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1659 msgid "Add filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1709 msgid "Duplicate filter" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1808 msgid "_Effect" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1818 msgid "Connections" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1956 msgid "Remove filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2543 msgid "Remove merge node" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2663 msgid "Reorder filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Add Effect:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2744 msgid "No effect selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "No filter selected" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2792 msgid "Effect parameters" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2793 msgid "Filter General Settings" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Coordinates:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "X coordinate of the left corners of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Y coordinate of the upper corners of filter effects region" msgstr "" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Dimensions:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Width of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Height of filter effects region" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 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 " @@ -15183,95 +15140,95 @@ msgid "" "performed without specifying a complete matrix." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2859 msgid "Value(s):" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "R:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2864 #: ../src/widgets/sp-color-icc-selector.cpp:334 msgid "G:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 msgid "B:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 msgid "A:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "Operator:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 msgid "K2:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 msgid "K3:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 msgid "K4:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Size:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "width of the convolve matrix" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "height of the convolve matrix" msgstr "" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 #: ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 msgid "Kernel:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 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 " @@ -15281,11 +15238,11 @@ msgid "" "would lead to a common blur effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 msgid "Divisor:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 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 " @@ -15293,189 +15250,189 @@ msgid "" "effect on the overall color intensity of the result." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "Bias:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Edge Mode:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 msgid "Preserve Alpha" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "Diffuse Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 msgid "Surface Scale:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 msgid "Constant:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2924 msgid "Kernel Unit Length:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "This defines the intensity of the displacement effect." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "X displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "Color component that controls the displacement in the X direction" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Y displacement:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Color component that controls the displacement in the Y direction" msgstr "" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "Flood Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "The whole filter region will be filled with this color." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Standard Deviation:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "The standard deviation for the blur operation." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 msgid "Source of Image:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "Delta X:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "This is how far the input image gets shifted to the right" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "Delta Y:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "This is how far the input image gets shifted downwards" msgstr "" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Specular Color:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Base Frequency:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Octaves:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "Seed:" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "The starting number for the pseudo random number generator." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Add filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 msgid "" "The feComponentTransfer filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -15483,7 +15440,7 @@ msgid "" "adjustment, color balance, and thresholding." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 msgid "" "The feComposite filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -15491,7 +15448,7 @@ msgid "" "between the corresponding pixel values of the images." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 msgid "" "The feConvolveMatrix lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -15500,7 +15457,7 @@ msgid "" "is faster and resolution-independent." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -15508,7 +15465,7 @@ msgid "" "opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 msgid "" "The feDisplacementMap filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -15516,26 +15473,26 @@ msgid "" "effects." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 msgid "" "The feMerge filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -15543,21 +15500,21 @@ msgid "" "in 'normal' mode or several feComposite primitives in 'over' mode." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3012 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3016 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -15565,23 +15522,23 @@ msgid "" "lower opacity areas recede away from the viewer." msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3020 msgid "" "The feTile filter primitive tiles a region with its input graphic" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3024 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3043 msgid "Duplicate filter primitive" msgstr "" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3096 msgid "Set filter primitive attribute" msgstr "" @@ -15765,7 +15722,7 @@ msgstr "" msgid "Search spirals" msgstr "" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1733 msgid "Paths" msgstr "" @@ -15890,25 +15847,25 @@ msgstr "" msgid "Select a property" msgstr "" -#: ../src/ui/dialog/font-substitution.cpp:87 +#: ../src/ui/dialog/font-substitution.cpp:79 msgid "" "\n" "Some fonts are not available and have been substituted." msgstr "" -#: ../src/ui/dialog/font-substitution.cpp:90 +#: ../src/ui/dialog/font-substitution.cpp:82 msgid "Font substitution" msgstr "" -#: ../src/ui/dialog/font-substitution.cpp:109 +#: ../src/ui/dialog/font-substitution.cpp:101 msgid "Select all the affected items" msgstr "" -#: ../src/ui/dialog/font-substitution.cpp:114 +#: ../src/ui/dialog/font-substitution.cpp:106 msgid "Don't show this warning again" msgstr "" -#: ../src/ui/dialog/font-substitution.cpp:255 +#: ../src/ui/dialog/font-substitution.cpp:245 msgid "Font '%1' substituted with '%2'" msgstr "" @@ -16633,7 +16590,7 @@ msgstr "" msgid "Append" msgstr "" -#: ../src/ui/dialog/glyphs.cpp:618 +#: ../src/ui/dialog/glyphs.cpp:619 msgid "Append text" msgstr "" @@ -16641,72 +16598,74 @@ msgstr "" msgid "Arrange in a grid" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 #: ../src/ui/dialog/object-attributes.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:666 +#: ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 msgid "Horizontal spacing between columns." msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 #: ../src/ui/dialog/object-attributes.cpp:67 #: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +#: ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:676 +#: ../src/widgets/node-toolbar.cpp:599 msgid "Y:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 msgid "Vertical spacing between rows." msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:626 +#: ../src/ui/dialog/grid-arrange-tab.cpp:624 msgid "_Rows:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:635 +#: ../src/ui/dialog/grid-arrange-tab.cpp:633 msgid "Number of rows" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:639 +#: ../src/ui/dialog/grid-arrange-tab.cpp:637 msgid "Equal _height" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +#: ../src/ui/dialog/grid-arrange-tab.cpp:648 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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:664 msgid "_Columns:" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:675 +#: ../src/ui/dialog/grid-arrange-tab.cpp:673 msgid "Number of columns" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:679 +#: ../src/ui/dialog/grid-arrange-tab.cpp:677 msgid "Equal _width" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:689 +#: ../src/ui/dialog/grid-arrange-tab.cpp:687 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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:698 msgid "Alignment:" msgstr "" #. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:709 +#: ../src/ui/dialog/grid-arrange-tab.cpp:707 msgid "_Fit into selection box" msgstr "" -#: ../src/ui/dialog/grid-arrange-tab.cpp:716 +#: ../src/ui/dialog/grid-arrange-tab.cpp:714 msgid "_Set spacing:" msgstr "" @@ -16758,25 +16717,25 @@ msgstr "" msgid "Current: %s" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:159 +#: ../src/ui/dialog/icon-preview.cpp:155 #, c-format msgid "%d x %d" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:171 +#: ../src/ui/dialog/icon-preview.cpp:167 msgid "Magnified:" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:240 +#: ../src/ui/dialog/icon-preview.cpp:236 msgid "Actual Size:" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:245 +#: ../src/ui/dialog/icon-preview.cpp:241 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "" -#: ../src/ui/dialog/icon-preview.cpp:247 +#: ../src/ui/dialog/icon-preview.cpp:243 msgid "Selection only or whole document" msgstr "" @@ -17102,7 +17061,7 @@ msgid "Zoom" msgstr "" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2761 +#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2730 msgctxt "ContextVerb" msgid "Measure" msgstr "" @@ -17157,7 +17116,7 @@ msgid "" msgstr "" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2753 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2722 msgctxt "ContextVerb" msgid "Text" msgstr "" @@ -19116,7 +19075,7 @@ msgid "Rendering" msgstr "" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:157 +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "" @@ -19134,7 +19093,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:67 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "" @@ -19227,7 +19186,7 @@ msgid "Shortcut" msgstr "" #: ../src/ui/dialog/inkscape-preferences.cpp:1513 -#: ../src/ui/widget/page-sizer.cpp:260 +#: ../src/ui/widget/page-sizer.cpp:285 msgid "Description" msgstr "" @@ -19235,7 +19194,7 @@ msgstr "" #: ../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 +#: ../src/ui/widget/preferences-widget.cpp:745 msgid "Reset" msgstr "" @@ -19545,8 +19504,8 @@ 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 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 +#: ../src/verbs.cpp:2337 msgid "Layer" msgstr "" @@ -19554,7 +19513,7 @@ msgstr "" msgid "_Rename" msgstr "" -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:758 msgid "Rename layer" msgstr "" @@ -19580,8 +19539,8 @@ 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 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:116 +#: ../src/ui/dialog/transformation.cpp:108 msgid "_Move" msgstr "" @@ -19602,40 +19561,40 @@ msgid "Unlock layer" msgstr "" #: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 -#: ../src/verbs.cpp:1438 +#: ../src/verbs.cpp:1407 msgid "Toggle layer solo" msgstr "" #: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 -#: ../src/verbs.cpp:1462 +#: ../src/verbs.cpp:1431 msgid "Lock other layers" msgstr "" -#: ../src/ui/dialog/layers.cpp:721 +#: ../src/ui/dialog/layers.cpp:730 msgid "Moved layer" msgstr "" -#: ../src/ui/dialog/layers.cpp:884 +#: ../src/ui/dialog/layers.cpp:892 msgctxt "Layers" msgid "New" msgstr "" -#: ../src/ui/dialog/layers.cpp:889 +#: ../src/ui/dialog/layers.cpp:897 msgctxt "Layers" msgid "Bot" msgstr "" -#: ../src/ui/dialog/layers.cpp:895 +#: ../src/ui/dialog/layers.cpp:903 msgctxt "Layers" msgid "Dn" msgstr "" -#: ../src/ui/dialog/layers.cpp:901 +#: ../src/ui/dialog/layers.cpp:909 msgctxt "Layers" msgid "Up" msgstr "" -#: ../src/ui/dialog/layers.cpp:907 +#: ../src/ui/dialog/layers.cpp:915 msgctxt "Layers" msgid "Top" msgstr "" @@ -19714,43 +19673,43 @@ msgstr "" msgid "Deactivate path effect" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:57 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:52 msgid "Radius (pixels):" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:64 msgid "Chamfer subdivisions:" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:144 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:135 msgid "Modify Fillet-Chamfer" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:145 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:136 msgid "_Modify" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:210 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:200 msgid "Radius" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:202 msgid "Radius approximated" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:205 msgid "Knot distance" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:222 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 msgid "Position (%):" msgstr "" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:225 -msgid "%1 (%2):" +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +msgid "%1:" msgstr "" -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:119 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:115 msgid "Modify Node Position" msgstr "" @@ -19904,8 +19863,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2711 -#: ../src/verbs.cpp:2717 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2686 msgid "_Set" msgstr "" @@ -19943,19 +19902,23 @@ msgstr "" msgid "Set object description" msgstr "" -#: ../src/ui/dialog/object-properties.cpp:552 +#: ../src/ui/dialog/object-properties.cpp:535 +msgid "Set image rendering option" +msgstr "" + +#: ../src/ui/dialog/object-properties.cpp:554 msgid "Lock object" msgstr "" -#: ../src/ui/dialog/object-properties.cpp:552 +#: ../src/ui/dialog/object-properties.cpp:554 msgid "Unlock object" msgstr "" -#: ../src/ui/dialog/object-properties.cpp:568 +#: ../src/ui/dialog/object-properties.cpp:570 msgid "Hide object" msgstr "" -#: ../src/ui/dialog/object-properties.cpp:568 +#: ../src/ui/dialog/object-properties.cpp:570 msgid "Unhide object" msgstr "" @@ -19987,8 +19950,8 @@ msgstr "" msgid "Moved objects" msgstr "" -#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:856 -#: ../src/ui/dialog/tags.cpp:863 +#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:857 +#: ../src/ui/dialog/tags.cpp:864 msgid "Rename object" msgstr "" @@ -20269,11 +20232,11 @@ msgstr "" msgid "Rotate objects" msgstr "" -#: ../src/ui/dialog/polar-arrange-tab.cpp:338 +#: ../src/ui/dialog/polar-arrange-tab.cpp:336 msgid "Couldn't find an ellipse in selection" msgstr "" -#: ../src/ui/dialog/polar-arrange-tab.cpp:403 +#: ../src/ui/dialog/polar-arrange-tab.cpp:399 msgid "Arrange on ellipse" msgstr "" @@ -20537,7 +20500,7 @@ msgstr "" #: ../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 +#: ../src/widgets/gradient-vector.cpp:795 msgid "Add gradient stop" msgstr "" @@ -20565,69 +20528,69 @@ msgid "Palettes directory (%s) is unavailable." msgstr "" #. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:139 +#: ../src/ui/dialog/symbols.cpp:135 msgid "Symbol set: " msgstr "" #. Fill in later -#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 +#: ../src/ui/dialog/symbols.cpp:144 ../src/ui/dialog/symbols.cpp:145 msgid "Current Document" msgstr "" -#: ../src/ui/dialog/symbols.cpp:216 +#: ../src/ui/dialog/symbols.cpp:212 msgid "Add Symbol from the current document." msgstr "" -#: ../src/ui/dialog/symbols.cpp:225 +#: ../src/ui/dialog/symbols.cpp:221 msgid "Remove Symbol from the current document." msgstr "" -#: ../src/ui/dialog/symbols.cpp:239 +#: ../src/ui/dialog/symbols.cpp:235 msgid "Display more icons in row." msgstr "" -#: ../src/ui/dialog/symbols.cpp:248 +#: ../src/ui/dialog/symbols.cpp:244 msgid "Display fewer icons in row." msgstr "" -#: ../src/ui/dialog/symbols.cpp:258 +#: ../src/ui/dialog/symbols.cpp:254 msgid "Toggle 'fit' symbols in icon space." msgstr "" -#: ../src/ui/dialog/symbols.cpp:270 +#: ../src/ui/dialog/symbols.cpp:266 msgid "Make symbols smaller by zooming out." msgstr "" -#: ../src/ui/dialog/symbols.cpp:280 +#: ../src/ui/dialog/symbols.cpp:276 msgid "Make symbols bigger by zooming in." msgstr "" -#: ../src/ui/dialog/symbols.cpp:641 +#: ../src/ui/dialog/symbols.cpp:637 msgid "Unnamed Symbols" msgstr "" -#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:572 -#: ../src/ui/dialog/tags.cpp:686 +#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:573 +#: ../src/ui/dialog/tags.cpp:687 msgid "Remove from selection set" msgstr "" -#: ../src/ui/dialog/tags.cpp:430 +#: ../src/ui/dialog/tags.cpp:431 msgid "Items" msgstr "" -#: ../src/ui/dialog/tags.cpp:669 +#: ../src/ui/dialog/tags.cpp:670 msgid "Add selection to set" msgstr "" -#: ../src/ui/dialog/tags.cpp:827 +#: ../src/ui/dialog/tags.cpp:828 msgid "Moved sets" msgstr "" -#: ../src/ui/dialog/tags.cpp:997 +#: ../src/ui/dialog/tags.cpp:998 msgid "Add a new selection set" msgstr "" -#: ../src/ui/dialog/tags.cpp:1006 +#: ../src/ui/dialog/tags.cpp:1007 msgid "Remove Item/Set" msgstr "" @@ -20664,31 +20627,31 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1333 -#: ../src/widgets/text-toolbar.cpp:1334 +#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1339 +#: ../src/widgets/text-toolbar.cpp:1340 msgid "Align left" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1341 -#: ../src/widgets/text-toolbar.cpp:1342 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1347 +#: ../src/widgets/text-toolbar.cpp:1348 msgid "Align center" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1349 -#: ../src/widgets/text-toolbar.cpp:1350 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1355 +#: ../src/widgets/text-toolbar.cpp:1356 msgid "Align right" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1364 msgid "Justify (only flowed text)" msgstr "" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 +#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1399 msgid "Horizontal text" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1400 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1406 msgid "Vertical text" msgstr "" @@ -20700,7 +20663,7 @@ msgstr "" msgid "Text path offset" msgstr "" -#: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 +#: ../src/ui/dialog/text-edit.cpp:584 ../src/ui/dialog/text-edit.cpp:658 #: ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "" @@ -20961,154 +20924,154 @@ msgstr "" msgid "Preview" msgstr "" -#: ../src/ui/dialog/transformation.cpp:74 -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:70 +#: ../src/ui/dialog/transformation.cpp:80 msgid "_Horizontal:" msgstr "" -#: ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/dialog/transformation.cpp:70 msgid "Horizontal displacement (relative) or position (absolute)" msgstr "" -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:72 +#: ../src/ui/dialog/transformation.cpp:82 msgid "_Vertical:" msgstr "" -#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:72 msgid "Vertical displacement (relative) or position (absolute)" msgstr "" -#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:74 msgid "Horizontal size (absolute or percentage of current)" msgstr "" -#: ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/dialog/transformation.cpp:76 msgid "Vertical size (absolute or percentage of current)" msgstr "" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:78 msgid "A_ngle:" msgstr "" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:78 #: ../src/ui/dialog/transformation.cpp:1103 msgid "Rotation angle (positive = counterclockwise)" msgstr "" -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:80 msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" msgstr "" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:82 msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" msgstr "" -#: ../src/ui/dialog/transformation.cpp:89 +#: ../src/ui/dialog/transformation.cpp:85 msgid "Transformation matrix element A" msgstr "" -#: ../src/ui/dialog/transformation.cpp:90 +#: ../src/ui/dialog/transformation.cpp:86 msgid "Transformation matrix element B" msgstr "" -#: ../src/ui/dialog/transformation.cpp:91 +#: ../src/ui/dialog/transformation.cpp:87 msgid "Transformation matrix element C" msgstr "" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:88 msgid "Transformation matrix element D" msgstr "" -#: ../src/ui/dialog/transformation.cpp:93 +#: ../src/ui/dialog/transformation.cpp:89 msgid "Transformation matrix element E" msgstr "" -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:90 msgid "Transformation matrix element F" msgstr "" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Rela_tive move" msgstr "" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "" "Add the specified relative displacement to the current position; otherwise, " "edit the current absolute position directly" msgstr "" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "_Scale proportionally" msgstr "" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "Preserve the width/height ratio of the scaled objects" msgstr "" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 msgid "Apply to each _object separately" msgstr "" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 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 +#: ../src/ui/dialog/transformation.cpp:98 msgid "Edit c_urrent matrix" msgstr "" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:98 msgid "" "Edit the current transform= matrix; otherwise, post-multiply transform= by " "this matrix" msgstr "" -#: ../src/ui/dialog/transformation.cpp:115 +#: ../src/ui/dialog/transformation.cpp:111 msgid "_Scale" msgstr "" -#: ../src/ui/dialog/transformation.cpp:118 +#: ../src/ui/dialog/transformation.cpp:114 msgid "_Rotate" msgstr "" -#: ../src/ui/dialog/transformation.cpp:121 +#: ../src/ui/dialog/transformation.cpp:117 msgid "Ske_w" msgstr "" -#: ../src/ui/dialog/transformation.cpp:124 +#: ../src/ui/dialog/transformation.cpp:120 msgid "Matri_x" msgstr "" -#: ../src/ui/dialog/transformation.cpp:148 +#: ../src/ui/dialog/transformation.cpp:144 msgid "Reset the values on the current tab to defaults" msgstr "" -#: ../src/ui/dialog/transformation.cpp:155 +#: ../src/ui/dialog/transformation.cpp:151 msgid "Apply transformation to selection" msgstr "" -#: ../src/ui/dialog/transformation.cpp:331 +#: ../src/ui/dialog/transformation.cpp:327 msgid "Rotate in a counterclockwise direction" msgstr "" -#: ../src/ui/dialog/transformation.cpp:337 +#: ../src/ui/dialog/transformation.cpp:333 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 +#: ../src/ui/dialog/transformation.cpp:906 +#: ../src/ui/dialog/transformation.cpp:917 +#: ../src/ui/dialog/transformation.cpp:931 +#: ../src/ui/dialog/transformation.cpp:950 +#: ../src/ui/dialog/transformation.cpp:961 +#: ../src/ui/dialog/transformation.cpp:971 +#: ../src/ui/dialog/transformation.cpp:995 msgid "Transform matrix is singular, not used." msgstr "" @@ -21306,7 +21269,7 @@ msgid "Enter group #%1" msgstr "" #. Item dialog -#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2932 +#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2901 msgid "_Object Properties..." msgstr "" @@ -21379,7 +21342,7 @@ msgid "Release C_lip" msgstr "" #. Group -#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2565 +#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2534 msgid "_Group" msgstr "" @@ -21388,165 +21351,165 @@ msgid "Create link" msgstr "" #. Ungroup -#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2567 +#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2536 msgid "_Ungroup" msgstr "" #. Link dialog -#: ../src/ui/interface.cpp:1921 +#: ../src/ui/interface.cpp:1920 msgid "Link _Properties..." msgstr "" #. Select item -#: ../src/ui/interface.cpp:1927 +#: ../src/ui/interface.cpp:1926 msgid "_Follow Link" msgstr "" #. Reset transformations -#: ../src/ui/interface.cpp:1933 +#: ../src/ui/interface.cpp:1932 msgid "_Remove Link" msgstr "" -#: ../src/ui/interface.cpp:1964 +#: ../src/ui/interface.cpp:1963 msgid "Remove link" msgstr "" #. Image properties -#: ../src/ui/interface.cpp:1975 +#: ../src/ui/interface.cpp:1973 msgid "Image _Properties..." msgstr "" #. Edit externally -#: ../src/ui/interface.cpp:1981 +#: ../src/ui/interface.cpp:1979 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 +#: ../src/ui/interface.cpp:1988 ../src/verbs.cpp:2597 msgid "_Trace Bitmap..." msgstr "" #. Trace Pixel Art -#: ../src/ui/interface.cpp:1999 +#: ../src/ui/interface.cpp:1997 msgid "Trace Pixel Art" msgstr "" -#: ../src/ui/interface.cpp:2009 +#: ../src/ui/interface.cpp:2007 msgctxt "Context menu" msgid "Embed Image" msgstr "" -#: ../src/ui/interface.cpp:2020 +#: ../src/ui/interface.cpp:2018 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 +#: ../src/ui/interface.cpp:2162 ../src/ui/interface.cpp:2182 +#: ../src/verbs.cpp:2864 msgid "_Fill and Stroke..." msgstr "" #. Edit Text dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2914 +#: ../src/ui/interface.cpp:2188 ../src/verbs.cpp:2883 msgid "_Text and Font..." msgstr "" #. Spellcheck dialog -#: ../src/ui/interface.cpp:2197 ../src/verbs.cpp:2922 +#: ../src/ui/interface.cpp:2194 ../src/verbs.cpp:2891 msgid "Check Spellin_g..." msgstr "" -#: ../src/ui/object-edit.cpp:464 +#: ../src/ui/object-edit.cpp:450 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:455 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:460 ../src/ui/object-edit.cpp:465 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 +#: ../src/ui/object-edit.cpp:712 ../src/ui/object-edit.cpp:716 +#: ../src/ui/object-edit.cpp:720 ../src/ui/object-edit.cpp:724 msgid "" "Resize box in X/Y direction; with 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 +#: ../src/ui/object-edit.cpp:728 ../src/ui/object-edit.cpp:732 +#: ../src/ui/object-edit.cpp:736 ../src/ui/object-edit.cpp:740 msgid "" "Resize box along the Z axis; with 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:744 msgid "Move the box in perspective" msgstr "" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:983 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1001 +#: ../src/ui/object-edit.cpp:987 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "" -#: ../src/ui/object-edit.cpp:1005 +#: ../src/ui/object-edit.cpp:991 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:996 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:1142 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:1150 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:1345 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:1349 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:1396 msgid "Adjust the offset distance" msgstr "" -#: ../src/ui/object-edit.cpp:1447 +#: ../src/ui/object-edit.cpp:1433 msgid "Drag to resize the flowed text frame" msgstr "" @@ -21586,7 +21549,7 @@ msgstr "" msgid "Retract handles" msgstr "" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:295 msgid "Change node type" msgstr "" @@ -21669,38 +21632,38 @@ msgstr "" msgid "Flip nodes vertically" msgstr "" -#: ../src/ui/tool/node.cpp:271 +#: ../src/ui/tool/node.cpp:270 msgid "Cusp node handle" msgstr "" -#: ../src/ui/tool/node.cpp:272 +#: ../src/ui/tool/node.cpp:271 msgid "Smooth node handle" msgstr "" -#: ../src/ui/tool/node.cpp:273 +#: ../src/ui/tool/node.cpp:272 msgid "Symmetric node handle" msgstr "" -#: ../src/ui/tool/node.cpp:274 +#: ../src/ui/tool/node.cpp:273 msgid "Auto-smooth node handle" msgstr "" -#: ../src/ui/tool/node.cpp:493 +#: ../src/ui/tool/node.cpp:492 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" msgstr "" -#: ../src/ui/tool/node.cpp:495 +#: ../src/ui/tool/node.cpp:494 msgctxt "Path handle tip" msgid "more: Ctrl" msgstr "" -#: ../src/ui/tool/node.cpp:497 +#: ../src/ui/tool/node.cpp:496 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" msgstr "" -#: ../src/ui/tool/node.cpp:503 +#: ../src/ui/tool/node.cpp:502 #, c-format msgctxt "Path handle tip" msgid "" @@ -21708,24 +21671,24 @@ msgid "" "increments while rotating both handles" msgstr "" -#: ../src/ui/tool/node.cpp:508 +#: ../src/ui/tool/node.cpp:507 #, 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 +#: ../src/ui/tool/node.cpp:513 msgctxt "Path handle tip" msgid "Shift+Alt: preserve handle length and rotate both handles" msgstr "" -#: ../src/ui/tool/node.cpp:517 +#: ../src/ui/tool/node.cpp:516 msgctxt "Path handle tip" msgid "Alt: preserve handle length while dragging" msgstr "" -#: ../src/ui/tool/node.cpp:524 +#: ../src/ui/tool/node.cpp:523 #, c-format msgctxt "Path handle tip" msgid "" @@ -21733,85 +21696,87 @@ msgid "" "handles" msgstr "" -#: ../src/ui/tool/node.cpp:528 +#: ../src/ui/tool/node.cpp:527 msgctxt "Path handle tip" msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" msgstr "" -#: ../src/ui/tool/node.cpp:531 +#: ../src/ui/tool/node.cpp:530 #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" -#: ../src/ui/tool/node.cpp:536 +#: ../src/ui/tool/node.cpp:535 msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" msgstr "" -#: ../src/ui/tool/node.cpp:539 +#: ../src/ui/tool/node.cpp:538 msgctxt "Path hande tip" msgid "Shift: move handle" msgstr "" -#: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 +#: ../src/ui/tool/node.cpp:545 ../src/ui/tool/node.cpp:549 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" msgstr "" -#: ../src/ui/tool/node.cpp:553 +#: ../src/ui/tool/node.cpp:552 #, c-format msgctxt "Path handle tip" -msgid "BSpline node handle: Shift to drag, double click to reset (%s)" +msgid "" +"BSpline node handle: Shift to drag, double click to reset (%s). %g " +"power" msgstr "" -#: ../src/ui/tool/node.cpp:573 +#: ../src/ui/tool/node.cpp:572 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" msgstr "" -#: ../src/ui/tool/node.cpp:1447 +#: ../src/ui/tool/node.cpp:1448 msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "" -#: ../src/ui/tool/node.cpp:1449 +#: ../src/ui/tool/node.cpp:1450 msgctxt "Path node tip" msgid "Shift: click to toggle selection" msgstr "" -#: ../src/ui/tool/node.cpp:1454 +#: ../src/ui/tool/node.cpp:1455 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" msgstr "" -#: ../src/ui/tool/node.cpp:1457 +#: ../src/ui/tool/node.cpp:1458 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" msgstr "" -#: ../src/ui/tool/node.cpp:1461 +#: ../src/ui/tool/node.cpp:1462 msgctxt "Path node tip" msgid "Alt: sculpt nodes" msgstr "" -#: ../src/ui/tool/node.cpp:1469 +#: ../src/ui/tool/node.cpp:1470 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1472 +#: ../src/ui/tool/node.cpp:1473 #, c-format msgctxt "Path node tip" msgid "" -"BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, " -"Alt)" +"BSpline node: drag to shape the path (more: Shift, Ctrl, Alt). %g " +"power" msgstr "" -#: ../src/ui/tool/node.cpp:1475 +#: ../src/ui/tool/node.cpp:1476 #, c-format msgctxt "Path node tip" msgid "" @@ -21819,7 +21784,7 @@ msgid "" "(more: Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1479 +#: ../src/ui/tool/node.cpp:1480 #, c-format msgctxt "Path node tip" msgid "" @@ -21827,50 +21792,51 @@ msgid "" "Shift, Ctrl, Alt)" msgstr "" -#: ../src/ui/tool/node.cpp:1482 +#: ../src/ui/tool/node.cpp:1483 +#, c-format msgctxt "Path node tip" msgid "" "BSpline node: drag to shape the path, click to select only this node " -"(more: Shift, Ctrl, Alt)" +"(more: Shift, Ctrl, Alt). %g power" msgstr "" -#: ../src/ui/tool/node.cpp:1495 +#: ../src/ui/tool/node.cpp:1496 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" msgstr "" -#: ../src/ui/tool/node.cpp:1506 +#: ../src/ui/tool/node.cpp:1507 msgid "Symmetric node" msgstr "" -#: ../src/ui/tool/node.cpp:1507 +#: ../src/ui/tool/node.cpp:1508 msgid "Auto-smooth node" msgstr "" -#: ../src/ui/tool/path-manipulator.cpp:836 +#: ../src/ui/tool/path-manipulator.cpp:837 msgid "Scale handle" msgstr "" -#: ../src/ui/tool/path-manipulator.cpp:860 +#: ../src/ui/tool/path-manipulator.cpp:861 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/ui/tool/path-manipulator.cpp:1534 #: ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" msgstr "" -#: ../src/ui/tool/path-manipulator.cpp:1532 +#: ../src/ui/tool/path-manipulator.cpp:1542 msgid "Cycle node type" msgstr "" -#: ../src/ui/tool/path-manipulator.cpp:1547 +#: ../src/ui/tool/path-manipulator.cpp:1557 msgid "Drag handle" msgstr "" -#: ../src/ui/tool/path-manipulator.cpp:1556 +#: ../src/ui/tool/path-manipulator.cpp:1566 msgid "Retract handle" msgstr "" @@ -22055,7 +22021,7 @@ msgid "" "path. Arrow keys adjust width (left/right) and angle (up/down)." msgstr "" -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1584 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1583 msgid "" "Click to select or create text, drag to create flowed text; " "then type." @@ -22114,7 +22080,7 @@ msgid "" "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "" -#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:279 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:278 msgid "Shift: draw around the starting point" msgstr "" @@ -22200,17 +22166,17 @@ msgstr "" msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "" -#: ../src/ui/tools/connector-tool.cpp:1326 +#: ../src/ui/tools/connector-tool.cpp:1324 msgid "Select at least one non-connector object." msgstr "" -#: ../src/ui/tools/connector-tool.cpp:1331 -#: ../src/widgets/connector-toolbar.cpp:314 +#: ../src/ui/tools/connector-tool.cpp:1329 +#: ../src/widgets/connector-toolbar.cpp:310 msgid "Make connectors avoid selected objects" msgstr "" -#: ../src/ui/tools/connector-tool.cpp:1332 -#: ../src/widgets/connector-toolbar.cpp:324 +#: ../src/ui/tools/connector-tool.cpp:1330 +#: ../src/widgets/connector-toolbar.cpp:320 msgid "Make connectors ignore selected objects" msgstr "" @@ -22244,39 +22210,39 @@ msgstr "" msgid "Drawing an eraser stroke" msgstr "" -#: ../src/ui/tools/eraser-tool.cpp:760 +#: ../src/ui/tools/eraser-tool.cpp:753 msgid "Draw eraser stroke" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:182 +#: ../src/ui/tools/flood-tool.cpp:90 msgid "Visible Colors" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:200 +#: ../src/ui/tools/flood-tool.cpp:102 msgctxt "Flood autogap" msgid "None" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:201 +#: ../src/ui/tools/flood-tool.cpp:103 msgctxt "Flood autogap" msgid "Small" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:202 +#: ../src/ui/tools/flood-tool.cpp:104 msgctxt "Flood autogap" msgid "Medium" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:203 +#: ../src/ui/tools/flood-tool.cpp:105 msgctxt "Flood autogap" msgid "Large" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:425 +#: ../src/ui/tools/flood-tool.cpp:415 msgid "Too much inset, the result is empty." msgstr "" -#: ../src/ui/tools/flood-tool.cpp:466 +#: ../src/ui/tools/flood-tool.cpp:456 #, c-format msgid "" "Area filled, path with %d node created and unioned with selection." @@ -22285,32 +22251,32 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/flood-tool.cpp:472 +#: ../src/ui/tools/flood-tool.cpp:462 #, 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:740 ../src/ui/tools/flood-tool.cpp:1050 +#: ../src/ui/tools/flood-tool.cpp:730 ../src/ui/tools/flood-tool.cpp:1040 msgid "Area is not bounded, cannot fill." msgstr "" -#: ../src/ui/tools/flood-tool.cpp:1055 +#: ../src/ui/tools/flood-tool.cpp:1045 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:1073 ../src/ui/tools/flood-tool.cpp:1224 +#: ../src/ui/tools/flood-tool.cpp:1063 ../src/ui/tools/flood-tool.cpp:1214 msgid "Fill bounded area" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:1089 +#: ../src/ui/tools/flood-tool.cpp:1079 msgid "Set style on object" msgstr "" -#: ../src/ui/tools/flood-tool.cpp:1149 +#: ../src/ui/tools/flood-tool.cpp:1139 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" @@ -22391,30 +22357,30 @@ msgstr[1] "" msgid "Simplify gradient" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:509 +#: ../src/ui/tools/gradient-tool.cpp:510 msgid "Create default gradient" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:560 +#: ../src/ui/tools/gradient-tool.cpp:569 ../src/ui/tools/mesh-tool.cpp:561 msgid "Draw around handles to select them" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:691 +#: ../src/ui/tools/gradient-tool.cpp:692 msgid "Ctrl: snap gradient angle" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:692 +#: ../src/ui/tools/gradient-tool.cpp:693 msgid "Shift: draw gradient around the starting point" msgstr "" -#: ../src/ui/tools/gradient-tool.cpp:946 ../src/ui/tools/mesh-tool.cpp:983 +#: ../src/ui/tools/gradient-tool.cpp:947 ../src/ui/tools/mesh-tool.cpp:984 #, 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:950 ../src/ui/tools/mesh-tool.cpp:987 +#: ../src/ui/tools/gradient-tool.cpp:951 ../src/ui/tools/mesh-tool.cpp:988 msgid "Select objects on which to create gradient." msgstr "" @@ -22469,70 +22435,70 @@ msgstr "" msgid "Picked mesh corner color." msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:488 +#: ../src/ui/tools/mesh-tool.cpp:489 msgid "Create default mesh" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:708 +#: ../src/ui/tools/mesh-tool.cpp:709 msgid "FIXMECtrl: snap mesh angle" msgstr "" -#: ../src/ui/tools/mesh-tool.cpp:709 +#: ../src/ui/tools/mesh-tool.cpp:710 msgid "FIXMEShift: draw mesh around the starting point" msgstr "" -#: ../src/ui/tools/node-tool.cpp:602 +#: ../src/ui/tools/node-tool.cpp:601 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:606 +#: ../src/ui/tools/node-tool.cpp:605 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:618 +#: ../src/ui/tools/node-tool.cpp:617 #, 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:624 +#: ../src/ui/tools/node-tool.cpp:623 #, 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:630 +#: ../src/ui/tools/node-tool.cpp:629 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:639 +#: ../src/ui/tools/node-tool.cpp:638 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "" -#: ../src/ui/tools/node-tool.cpp:642 +#: ../src/ui/tools/node-tool.cpp:641 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "" -#: ../src/ui/tools/node-tool.cpp:647 +#: ../src/ui/tools/node-tool.cpp:646 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:650 +#: ../src/ui/tools/node-tool.cpp:649 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "" -#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:457 +#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:454 msgid "Drawing cancelled" msgstr "" @@ -22635,55 +22601,55 @@ msgid "Drag to continue the path from this point." msgstr "" #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:403 +#: ../src/ui/tools/pencil-tool.cpp:401 msgid "Finishing freehand" msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:506 +#: ../src/ui/tools/pencil-tool.cpp:503 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." msgstr "" -#: ../src/ui/tools/pencil-tool.cpp:533 +#: ../src/ui/tools/pencil-tool.cpp:530 msgid "Finishing freehand sketch" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:278 +#: ../src/ui/tools/rect-tool.cpp:277 msgid "" "Ctrl: make square or integer-ratio rect, lock a rounded corner " "circular" msgstr "" -#: ../src/ui/tools/rect-tool.cpp:439 +#: ../src/ui/tools/rect-tool.cpp:438 #, 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:442 +#: ../src/ui/tools/rect-tool.cpp:441 #, 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:444 +#: ../src/ui/tools/rect-tool.cpp:443 #, 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:448 +#: ../src/ui/tools/rect-tool.cpp:447 #, 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:471 +#: ../src/ui/tools/rect-tool.cpp:470 msgid "Create rectangle" msgstr "" @@ -22717,21 +22683,21 @@ msgid "" "touch selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:941 +#: ../src/ui/tools/select-tool.cpp:939 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" -#: ../src/ui/tools/select-tool.cpp:942 +#: ../src/ui/tools/select-tool.cpp:940 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" -#: ../src/ui/tools/select-tool.cpp:943 +#: ../src/ui/tools/select-tool.cpp:941 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:1151 +#: ../src/ui/tools/select-tool.cpp:1149 msgid "Selected object is not a group. Cannot enter." msgstr "" @@ -22785,19 +22751,19 @@ msgid "" "initial selection." msgstr "" -#: ../src/ui/tools/spray-tool.cpp:654 +#: ../src/ui/tools/spray-tool.cpp:648 msgid "Nothing selected! Select objects to spray." msgstr "" -#: ../src/ui/tools/spray-tool.cpp:729 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:723 ../src/widgets/spray-toolbar.cpp:166 msgid "Spray with copies" msgstr "" -#: ../src/ui/tools/spray-tool.cpp:733 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:727 ../src/widgets/spray-toolbar.cpp:173 msgid "Spray with clones" msgstr "" -#: ../src/ui/tools/spray-tool.cpp:737 +#: ../src/ui/tools/spray-tool.cpp:731 msgid "Spray in single path" msgstr "" @@ -22941,7 +22907,7 @@ msgstr "" msgid "Paste text" msgstr "" -#: ../src/ui/tools/text-tool.cpp:1574 +#: ../src/ui/tools/text-tool.cpp:1573 #, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " @@ -22952,7 +22918,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/text-tool.cpp:1576 +#: ../src/ui/tools/text-tool.cpp:1575 #, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" @@ -22960,11 +22926,11 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/ui/tools/text-tool.cpp:1686 +#: ../src/ui/tools/text-tool.cpp:1685 msgid "Type text" msgstr "" -#: ../src/ui/tools/tool-base.cpp:705 +#: ../src/ui/tools/tool-base.cpp:701 msgid "Space+mouse move to pan canvas" msgstr "" @@ -23036,59 +23002,59 @@ msgid "" "%s. Drag or click to increase blur; with Shift to decrease." msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1195 +#: ../src/ui/tools/tweak-tool.cpp:1192 msgid "Nothing selected! Select objects to tweak." msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1229 +#: ../src/ui/tools/tweak-tool.cpp:1226 msgid "Move tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1233 +#: ../src/ui/tools/tweak-tool.cpp:1230 msgid "Move in/out tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1237 +#: ../src/ui/tools/tweak-tool.cpp:1234 msgid "Move jitter tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1241 +#: ../src/ui/tools/tweak-tool.cpp:1238 msgid "Scale tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1245 +#: ../src/ui/tools/tweak-tool.cpp:1242 msgid "Rotate tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1249 +#: ../src/ui/tools/tweak-tool.cpp:1246 msgid "Duplicate/delete tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1253 +#: ../src/ui/tools/tweak-tool.cpp:1250 msgid "Push path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1257 +#: ../src/ui/tools/tweak-tool.cpp:1254 msgid "Shrink/grow path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1261 +#: ../src/ui/tools/tweak-tool.cpp:1258 msgid "Attract/repel path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1265 +#: ../src/ui/tools/tweak-tool.cpp:1262 msgid "Roughen path tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1269 +#: ../src/ui/tools/tweak-tool.cpp:1266 msgid "Color paint tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1273 +#: ../src/ui/tools/tweak-tool.cpp:1270 msgid "Color jitter tweak" msgstr "" -#: ../src/ui/tools/tweak-tool.cpp:1277 +#: ../src/ui/tools/tweak-tool.cpp:1274 msgid "Blur tweak" msgstr "" @@ -23134,190 +23100,229 @@ msgstr "" msgid "Opacity (%)" msgstr "" -#: ../src/ui/widget/object-composite-settings.cpp:159 +#: ../src/ui/widget/object-composite-settings.cpp:160 msgid "Change blur" msgstr "" -#: ../src/ui/widget/object-composite-settings.cpp:199 +#: ../src/ui/widget/object-composite-settings.cpp:200 #: ../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 +#: ../src/ui/widget/page-sizer.cpp:236 msgid "U_nits:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:236 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "Width of paper" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "Height of paper" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "T_op margin:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "Top margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "L_eft:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "Left margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Ri_ght:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Right margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Botto_m:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Bottom margin" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:296 +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale _x:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale X" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale _y:" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale Y" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:321 msgid "Orientation:" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:299 +#: ../src/ui/widget/page-sizer.cpp:324 msgid "_Landscape" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:304 +#: ../src/ui/widget/page-sizer.cpp:329 msgid "_Portrait" msgstr "" #. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:322 +#: ../src/ui/widget/page-sizer.cpp:348 msgid "Custom size" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:367 +#: ../src/ui/widget/page-sizer.cpp:393 msgid "Resi_ze page to content..." msgstr "" -#: ../src/ui/widget/page-sizer.cpp:419 +#: ../src/ui/widget/page-sizer.cpp:445 msgid "_Resize page to drawing or selection" msgstr "" -#: ../src/ui/widget/page-sizer.cpp:420 +#: ../src/ui/widget/page-sizer.cpp:446 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 +#: ../src/ui/widget/page-sizer.cpp:477 +msgid "" +"While SVG allows non-uniform scaling it is recommended to use only uniform " +"scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' " +"directly." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:481 +msgid "_Viewbox..." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:588 msgid "Set page size" msgstr "" -#: ../src/ui/widget/panel.cpp:117 +#: ../src/ui/widget/page-sizer.cpp:834 +msgid "User units per " +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:930 +msgid "Set page scale" +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:956 +msgid "Set 'viewBox'" +msgstr "" + +#: ../src/ui/widget/panel.cpp:113 msgid "List" msgstr "" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:136 msgctxt "Swatches" msgid "Size" msgstr "" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:140 msgctxt "Swatches height" msgid "Tiny" msgstr "" -#: ../src/ui/widget/panel.cpp:145 +#: ../src/ui/widget/panel.cpp:141 msgctxt "Swatches height" msgid "Small" msgstr "" -#: ../src/ui/widget/panel.cpp:146 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:147 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Large" msgstr "" -#: ../src/ui/widget/panel.cpp:148 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Huge" msgstr "" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:166 msgctxt "Swatches" msgid "Width" msgstr "" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:170 msgctxt "Swatches width" msgid "Narrower" msgstr "" -#: ../src/ui/widget/panel.cpp:175 +#: ../src/ui/widget/panel.cpp:171 msgctxt "Swatches width" msgid "Narrow" msgstr "" -#: ../src/ui/widget/panel.cpp:176 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Medium" msgstr "" -#: ../src/ui/widget/panel.cpp:177 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Wide" msgstr "" -#: ../src/ui/widget/panel.cpp:178 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Wider" msgstr "" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:204 msgctxt "Swatches" msgid "Border" msgstr "" -#: ../src/ui/widget/panel.cpp:212 +#: ../src/ui/widget/panel.cpp:208 msgctxt "Swatches border" msgid "None" msgstr "" -#: ../src/ui/widget/panel.cpp:213 +#: ../src/ui/widget/panel.cpp:209 msgctxt "Swatches border" msgid "Solid" msgstr "" -#: ../src/ui/widget/panel.cpp:214 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "Wide" msgstr "" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:245 +#: ../src/ui/widget/panel.cpp:241 msgctxt "Swatches" msgid "Wrap" msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:802 +#: ../src/ui/widget/preferences-widget.cpp:798 msgid "_Browse..." msgstr "" -#: ../src/ui/widget/preferences-widget.cpp:888 +#: ../src/ui/widget/preferences-widget.cpp:884 msgid "Select a bitmap editor" msgstr "" @@ -23377,7 +23382,7 @@ 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 +#: ../src/widgets/gradient-toolbar.cpp:163 msgid "Nothing selected" msgstr "" @@ -23404,7 +23409,7 @@ msgid "No stroke" msgstr "" #: ../src/ui/widget/selected-style.cpp:192 -#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:234 +#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:231 msgid "Pattern" msgstr "" @@ -23479,14 +23484,14 @@ msgstr "" #: ../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 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:705 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 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:705 msgid "Unset stroke" msgstr "" @@ -23564,12 +23569,12 @@ 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 +#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:504 msgid "Remove fill" msgstr "" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:508 +#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:504 msgid "Remove stroke" msgstr "" @@ -23760,7 +23765,7 @@ msgstr "" msgid "3D box: Move vanishing point" msgstr "" -#: ../src/vanishing-point.cpp:327 +#: ../src/vanishing-point.cpp:328 #, c-format msgid "Finite vanishing point shared by %d box" msgid_plural "" @@ -23771,7 +23776,7 @@ 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 +#: ../src/vanishing-point.cpp:335 #, c-format msgid "Infinite vanishing point shared by %d box" msgid_plural "" @@ -23780,7 +23785,7 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/vanishing-point.cpp:342 +#: ../src/vanishing-point.cpp:343 #, c-format msgid "" "shared by %d box; drag with Shift to separate selected box(es)" @@ -23790,2374 +23795,2369 @@ msgid_plural "" msgstr[0] "" msgstr[1] "" -#: ../src/verbs.cpp:138 +#: ../src/verbs.cpp:137 msgid "File" msgstr "" -#: ../src/verbs.cpp:233 ../share/extensions/interp_att_g.inx.h:22 +#: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:22 msgid "Tag" msgstr "" -#: ../src/verbs.cpp:252 +#: ../src/verbs.cpp:251 msgid "Context" msgstr "" -#: ../src/verbs.cpp:271 ../src/verbs.cpp:2302 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2271 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" msgstr "" -#: ../src/verbs.cpp:291 +#: ../src/verbs.cpp:290 msgid "Dialog" msgstr "" -#: ../src/verbs.cpp:1260 +#: ../src/verbs.cpp:1259 msgid "Switch to next layer" msgstr "" -#: ../src/verbs.cpp:1261 +#: ../src/verbs.cpp:1260 msgid "Switched to next layer." msgstr "" -#: ../src/verbs.cpp:1263 +#: ../src/verbs.cpp:1262 msgid "Cannot go past last layer." msgstr "" -#: ../src/verbs.cpp:1272 +#: ../src/verbs.cpp:1271 msgid "Switch to previous layer" msgstr "" -#: ../src/verbs.cpp:1273 +#: ../src/verbs.cpp:1272 msgid "Switched to previous layer." msgstr "" -#: ../src/verbs.cpp:1275 +#: ../src/verbs.cpp:1274 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 +#: ../src/verbs.cpp:1295 ../src/verbs.cpp:1362 ../src/verbs.cpp:1398 +#: ../src/verbs.cpp:1404 ../src/verbs.cpp:1428 ../src/verbs.cpp:1443 msgid "No current layer." msgstr "" -#: ../src/verbs.cpp:1325 ../src/verbs.cpp:1329 +#: ../src/verbs.cpp:1324 ../src/verbs.cpp:1328 #, c-format msgid "Raised layer %s." msgstr "" -#: ../src/verbs.cpp:1326 +#: ../src/verbs.cpp:1325 msgid "Layer to top" msgstr "" -#: ../src/verbs.cpp:1330 +#: ../src/verbs.cpp:1329 msgid "Raise layer" msgstr "" -#: ../src/verbs.cpp:1333 ../src/verbs.cpp:1337 +#: ../src/verbs.cpp:1332 ../src/verbs.cpp:1336 #, c-format msgid "Lowered layer %s." msgstr "" -#: ../src/verbs.cpp:1334 +#: ../src/verbs.cpp:1333 msgid "Layer to bottom" msgstr "" -#: ../src/verbs.cpp:1338 +#: ../src/verbs.cpp:1337 msgid "Lower layer" msgstr "" -#: ../src/verbs.cpp:1347 +#: ../src/verbs.cpp:1346 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 +#: ../src/verbs.cpp:1357 msgid "Duplicate layer" msgstr "" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1391 +#: ../src/verbs.cpp:1360 msgid "Duplicated layer." msgstr "" -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1393 msgid "Delete layer" msgstr "" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1427 +#: ../src/verbs.cpp:1396 msgid "Deleted layer." msgstr "" -#: ../src/verbs.cpp:1444 +#: ../src/verbs.cpp:1413 msgid "Show all layers" msgstr "" -#: ../src/verbs.cpp:1449 +#: ../src/verbs.cpp:1418 msgid "Hide all layers" msgstr "" -#: ../src/verbs.cpp:1454 +#: ../src/verbs.cpp:1423 msgid "Lock all layers" msgstr "" -#: ../src/verbs.cpp:1468 +#: ../src/verbs.cpp:1437 msgid "Unlock all layers" msgstr "" -#: ../src/verbs.cpp:1552 +#: ../src/verbs.cpp:1521 msgid "Flip horizontally" msgstr "" -#: ../src/verbs.cpp:1557 +#: ../src/verbs.cpp:1526 msgid "Flip vertically" msgstr "" -#: ../src/verbs.cpp:1614 ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:1583 ../src/verbs.cpp:2696 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 +#: ../src/verbs.cpp:2153 msgid "tutorial-basic.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2188 +#: ../src/verbs.cpp:2157 msgid "tutorial-shapes.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2192 +#: ../src/verbs.cpp:2161 msgid "tutorial-advanced.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2196 +#: ../src/verbs.cpp:2165 msgid "tutorial-tracing.svg" msgstr "" -#: ../src/verbs.cpp:2199 +#: ../src/verbs.cpp:2168 msgid "tutorial-tracing-pixelart.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2203 +#: ../src/verbs.cpp:2172 msgid "tutorial-calligraphy.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2207 +#: ../src/verbs.cpp:2176 msgid "tutorial-interpolate.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2211 +#: ../src/verbs.cpp:2180 msgid "tutorial-elements.svg" msgstr "" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2215 +#: ../src/verbs.cpp:2184 msgid "tutorial-tips.svg" msgstr "" -#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3000 +#: ../src/verbs.cpp:2370 ../src/verbs.cpp:2969 msgid "Unlock all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3002 +#: ../src/verbs.cpp:2374 ../src/verbs.cpp:2971 msgid "Unlock all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3004 +#: ../src/verbs.cpp:2378 ../src/verbs.cpp:2973 msgid "Unhide all objects in the current layer" msgstr "" -#: ../src/verbs.cpp:2413 ../src/verbs.cpp:3006 +#: ../src/verbs.cpp:2382 ../src/verbs.cpp:2975 msgid "Unhide all objects in all layers" msgstr "" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgctxt "Verb" msgid "None" msgstr "" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgid "Does nothing" msgstr "" #. File #. Tag -#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:2695 msgid "_New" msgstr "" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2400 msgid "Create new document from the default template" msgstr "" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2402 msgid "_Open..." msgstr "" -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2403 msgid "Open an existing document" msgstr "" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2404 msgid "Re_vert" msgstr "" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2405 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2406 msgid "Save document" msgstr "" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2408 msgid "Save _As..." msgstr "" -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2409 msgid "Save document under a new name" msgstr "" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2410 msgid "Save a Cop_y..." msgstr "" -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2411 msgid "Save a copy of the document under a new name" msgstr "" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "_Print..." msgstr "" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "Print document" msgstr "" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "Clean _up document" msgstr "" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" msgstr "" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2417 msgid "_Import..." msgstr "" -#: ../src/verbs.cpp:2449 +#: ../src/verbs.cpp:2418 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 +#: ../src/verbs.cpp:2420 msgid "Import Clip Art..." msgstr "" -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2421 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 +#: ../src/verbs.cpp:2423 msgid "N_ext Window" msgstr "" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2424 msgid "Switch to the next document window" msgstr "" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2425 msgid "P_revious Window" msgstr "" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2426 msgid "Switch to the previous document window" msgstr "" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2427 msgid "_Close" msgstr "" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2428 msgid "Close this document window" msgstr "" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "_Quit" msgstr "" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "Quit Inkscape" msgstr "" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2430 msgid "New from _Template..." msgstr "" -#: ../src/verbs.cpp:2462 +#: ../src/verbs.cpp:2431 msgid "Create new project from template" msgstr "" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2434 msgid "Undo last action" msgstr "" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2437 msgid "Do again the last undone action" msgstr "" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2438 msgid "Cu_t" msgstr "" -#: ../src/verbs.cpp:2470 +#: ../src/verbs.cpp:2439 msgid "Cut selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2440 msgid "_Copy" msgstr "" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2441 msgid "Copy selection to clipboard" msgstr "" -#: ../src/verbs.cpp:2473 +#: ../src/verbs.cpp:2442 msgid "_Paste" msgstr "" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2443 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2444 msgid "Paste _Style" msgstr "" -#: ../src/verbs.cpp:2476 +#: ../src/verbs.cpp:2445 msgid "Apply the style of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2447 msgid "Scale selection to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2448 msgid "Paste _Width" msgstr "" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2449 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2450 msgid "Paste _Height" msgstr "" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2451 msgid "Scale selection vertically to match the height of the copied object" msgstr "" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2452 msgid "Paste Size Separately" msgstr "" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2453 msgid "Scale each selected object to match the size of the copied object" msgstr "" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2454 msgid "Paste Width Separately" msgstr "" -#: ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2455 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2456 msgid "Paste Height Separately" msgstr "" -#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2457 msgid "" "Scale each selected object vertically to match the height of the copied " "object" msgstr "" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2458 msgid "Paste _In Place" msgstr "" -#: ../src/verbs.cpp:2490 +#: ../src/verbs.cpp:2459 msgid "Paste objects from clipboard to the original location" msgstr "" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2460 msgid "Paste Path _Effect" msgstr "" -#: ../src/verbs.cpp:2492 +#: ../src/verbs.cpp:2461 msgid "Apply the path effect of the copied object to selection" msgstr "" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2462 msgid "Remove Path _Effect" msgstr "" -#: ../src/verbs.cpp:2494 +#: ../src/verbs.cpp:2463 msgid "Remove any path effects from selected objects" msgstr "" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2464 msgid "_Remove Filters" msgstr "" -#: ../src/verbs.cpp:2496 +#: ../src/verbs.cpp:2465 msgid "Remove any filters from selected objects" msgstr "" -#: ../src/verbs.cpp:2497 +#: ../src/verbs.cpp:2466 msgid "_Delete" msgstr "" -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2467 msgid "Delete selection" msgstr "" -#: ../src/verbs.cpp:2499 +#: ../src/verbs.cpp:2468 msgid "Duplic_ate" msgstr "" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2469 msgid "Duplicate selected objects" msgstr "" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2470 msgid "Create Clo_ne" msgstr "" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2471 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2472 msgid "Unlin_k Clone" msgstr "" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2473 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" msgstr "" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2474 msgid "Relink to Copied" msgstr "" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2475 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2476 msgid "Select _Original" msgstr "" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2477 msgid "Select the object to which the selected clone is linked" msgstr "" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2478 msgid "Clone original path (LPE)" msgstr "" -#: ../src/verbs.cpp:2510 +#: ../src/verbs.cpp:2479 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" msgstr "" -#: ../src/verbs.cpp:2511 +#: ../src/verbs.cpp:2480 msgid "Objects to _Marker" msgstr "" -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2481 msgid "Convert selection to a line marker" msgstr "" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2482 msgid "Objects to Gu_ides" msgstr "" -#: ../src/verbs.cpp:2514 +#: ../src/verbs.cpp:2483 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" msgstr "" -#: ../src/verbs.cpp:2515 +#: ../src/verbs.cpp:2484 msgid "Objects to Patter_n" msgstr "" -#: ../src/verbs.cpp:2516 +#: ../src/verbs.cpp:2485 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2486 msgid "Pattern to _Objects" msgstr "" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2487 msgid "Extract objects from a tiled pattern fill" msgstr "" -#: ../src/verbs.cpp:2519 +#: ../src/verbs.cpp:2488 msgid "Group to Symbol" msgstr "" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2489 msgid "Convert group to a symbol" msgstr "" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2490 msgid "Symbol to Group" msgstr "" -#: ../src/verbs.cpp:2522 +#: ../src/verbs.cpp:2491 msgid "Extract group from a symbol" msgstr "" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2492 msgid "Clea_r All" msgstr "" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2493 msgid "Delete all objects from document" msgstr "" -#: ../src/verbs.cpp:2525 +#: ../src/verbs.cpp:2494 msgid "Select Al_l" msgstr "" -#: ../src/verbs.cpp:2526 +#: ../src/verbs.cpp:2495 msgid "Select all objects or all nodes" msgstr "" -#: ../src/verbs.cpp:2527 +#: ../src/verbs.cpp:2496 msgid "Select All in All La_yers" msgstr "" -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2497 msgid "Select all objects in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2498 msgid "Fill _and Stroke" msgstr "" -#: ../src/verbs.cpp:2530 +#: ../src/verbs.cpp:2499 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2500 msgid "_Fill Color" msgstr "" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2501 msgid "Select all objects with the same fill as the selected objects" msgstr "" -#: ../src/verbs.cpp:2533 +#: ../src/verbs.cpp:2502 msgid "_Stroke Color" msgstr "" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2503 msgid "Select all objects with the same stroke as the selected objects" msgstr "" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2504 msgid "Stroke St_yle" msgstr "" -#: ../src/verbs.cpp:2536 +#: ../src/verbs.cpp:2505 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" msgstr "" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2506 msgid "_Object Type" msgstr "" -#: ../src/verbs.cpp:2538 +#: ../src/verbs.cpp:2507 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" msgstr "" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2508 msgid "In_vert Selection" msgstr "" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2509 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" -#: ../src/verbs.cpp:2541 +#: ../src/verbs.cpp:2510 msgid "Invert in All Layers" msgstr "" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2511 msgid "Invert selection in all visible and unlocked layers" msgstr "" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2512 msgid "Select Next" msgstr "" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2513 msgid "Select next object or node" msgstr "" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2514 msgid "Select Previous" msgstr "" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2515 msgid "Select previous object or node" msgstr "" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2516 msgid "D_eselect" msgstr "" -#: ../src/verbs.cpp:2548 +#: ../src/verbs.cpp:2517 msgid "Deselect any selected objects or nodes" msgstr "" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2519 msgid "Delete all the guides in the document" msgstr "" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2520 msgid "Create _Guides Around the Page" msgstr "" -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2521 msgid "Create four guides aligned with the page borders" msgstr "" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2522 msgid "Next path effect parameter" msgstr "" -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2523 msgid "Show next editable path effect parameter" msgstr "" #. Selection -#: ../src/verbs.cpp:2557 +#: ../src/verbs.cpp:2526 msgid "Raise to _Top" msgstr "" -#: ../src/verbs.cpp:2558 +#: ../src/verbs.cpp:2527 msgid "Raise selection to top" msgstr "" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2528 msgid "Lower to _Bottom" msgstr "" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2529 msgid "Lower selection to bottom" msgstr "" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2530 msgid "_Raise" msgstr "" -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2531 msgid "Raise selection one step" msgstr "" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2532 msgid "_Lower" msgstr "" -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2533 msgid "Lower selection one step" msgstr "" -#: ../src/verbs.cpp:2566 +#: ../src/verbs.cpp:2535 msgid "Group selected objects" msgstr "" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2537 msgid "Ungroup selected groups" msgstr "" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2539 msgid "_Put on Path" msgstr "" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2541 msgid "_Remove from Path" msgstr "" -#: ../src/verbs.cpp:2574 +#: ../src/verbs.cpp:2543 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 +#: ../src/verbs.cpp:2546 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2548 msgid "_Union" msgstr "" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2549 msgid "Create union of selected paths" msgstr "" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2550 msgid "_Intersection" msgstr "" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2551 msgid "Create intersection of selected paths" msgstr "" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2552 msgid "_Difference" msgstr "" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2553 msgid "Create difference of selected paths (bottom minus top)" msgstr "" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2554 msgid "E_xclusion" msgstr "" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2555 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" msgstr "" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2556 msgid "Di_vision" msgstr "" -#: ../src/verbs.cpp:2588 +#: ../src/verbs.cpp:2557 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 +#: ../src/verbs.cpp:2560 msgid "Cut _Path" msgstr "" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2561 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 +#: ../src/verbs.cpp:2565 msgid "Outs_et" msgstr "" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2566 msgid "Outset selected paths" msgstr "" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2568 msgid "O_utset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2569 msgid "Outset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2571 msgid "O_utset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2572 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 +#: ../src/verbs.cpp:2576 msgid "I_nset" msgstr "" -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2577 msgid "Inset selected paths" msgstr "" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2579 msgid "I_nset Path by 1 px" msgstr "" -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2580 msgid "Inset selected paths by 1 px" msgstr "" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2582 msgid "I_nset Path by 10 px" msgstr "" -#: ../src/verbs.cpp:2614 +#: ../src/verbs.cpp:2583 msgid "Inset selected paths by 10 px" msgstr "" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "D_ynamic Offset" msgstr "" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "Create a dynamic offset object" msgstr "" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2587 msgid "_Linked Offset" msgstr "" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2588 msgid "Create a dynamic offset object linked to the original path" msgstr "" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2590 msgid "_Stroke to Path" msgstr "" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2591 msgid "Convert selected object's stroke to paths" msgstr "" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2592 msgid "Si_mplify" msgstr "" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2593 msgid "Simplify selected paths (remove extra nodes)" msgstr "" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2594 msgid "_Reverse" msgstr "" -#: ../src/verbs.cpp:2626 +#: ../src/verbs.cpp:2595 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" -#: ../src/verbs.cpp:2629 +#: ../src/verbs.cpp:2598 msgid "Create one or more paths from a bitmap by tracing it" msgstr "" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2599 msgid "Trace Pixel Art..." msgstr "" -#: ../src/verbs.cpp:2631 +#: ../src/verbs.cpp:2600 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" -#: ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2601 msgid "Make a _Bitmap Copy" msgstr "" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2602 msgid "Export selection to a bitmap and insert it into document" msgstr "" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2603 msgid "_Combine" msgstr "" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2604 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 +#: ../src/verbs.cpp:2607 msgid "Break _Apart" msgstr "" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2608 msgid "Break selected paths into subpaths" msgstr "" -#: ../src/verbs.cpp:2640 +#: ../src/verbs.cpp:2609 msgid "_Arrange..." msgstr "" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2610 msgid "Arrange selected objects in a table or circle" msgstr "" #. Layer -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2612 msgid "_Add Layer..." msgstr "" -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2613 msgid "Create a new layer" msgstr "" -#: ../src/verbs.cpp:2645 +#: ../src/verbs.cpp:2614 msgid "Re_name Layer..." msgstr "" -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2615 msgid "Rename the current layer" msgstr "" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2616 msgid "Switch to Layer Abov_e" msgstr "" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2617 msgid "Switch to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2618 msgid "Switch to Layer Belo_w" msgstr "" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2619 msgid "Switch to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2620 msgid "Move Selection to Layer Abo_ve" msgstr "" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2621 msgid "Move selection to the layer above the current" msgstr "" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2622 msgid "Move Selection to Layer Bel_ow" msgstr "" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2623 msgid "Move selection to the layer below the current" msgstr "" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2624 msgid "Move Selection to Layer..." msgstr "" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2626 msgid "Layer to _Top" msgstr "" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2627 msgid "Raise the current layer to the top" msgstr "" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2628 msgid "Layer to _Bottom" msgstr "" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2629 msgid "Lower the current layer to the bottom" msgstr "" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2630 msgid "_Raise Layer" msgstr "" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2631 msgid "Raise the current layer" msgstr "" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2632 msgid "_Lower Layer" msgstr "" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2633 msgid "Lower the current layer" msgstr "" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2634 msgid "D_uplicate Current Layer" msgstr "" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2635 msgid "Duplicate an existing layer" msgstr "" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2636 msgid "_Delete Current Layer" msgstr "" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2637 msgid "Delete the current layer" msgstr "" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2638 msgid "_Show/hide other layers" msgstr "" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2639 msgid "Solo the current layer" msgstr "" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2640 msgid "_Show all layers" msgstr "" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2641 msgid "Show all the layers" msgstr "" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2642 msgid "_Hide all layers" msgstr "" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2643 msgid "Hide all the layers" msgstr "" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2644 msgid "_Lock all layers" msgstr "" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2645 msgid "Lock all the layers" msgstr "" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2646 msgid "Lock/Unlock _other layers" msgstr "" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2647 msgid "Lock all the other layers" msgstr "" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2648 msgid "_Unlock all layers" msgstr "" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2649 msgid "Unlock all the layers" msgstr "" -#: ../src/verbs.cpp:2681 +#: ../src/verbs.cpp:2650 msgid "_Lock/Unlock Current Layer" msgstr "" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2651 msgid "Toggle lock on current layer" msgstr "" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2652 msgid "_Show/hide Current Layer" msgstr "" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2653 msgid "Toggle visibility of current layer" msgstr "" #. Object -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2656 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 +#: ../src/verbs.cpp:2659 msgid "Rotate selection 90° clockwise" msgstr "" -#: ../src/verbs.cpp:2691 +#: ../src/verbs.cpp:2660 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 +#: ../src/verbs.cpp:2663 msgid "Rotate selection 90° counter-clockwise" msgstr "" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2664 msgid "Remove _Transformations" msgstr "" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2665 msgid "Remove transformations from object" msgstr "" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2666 msgid "_Object to Path" msgstr "" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2667 msgid "Convert selected object to path" msgstr "" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2668 msgid "_Flow into Frame" msgstr "" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2669 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" msgstr "" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2670 msgid "_Unflow" msgstr "" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2671 msgid "Remove text from frame (creates a single-line text object)" msgstr "" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2672 msgid "_Convert to Text" msgstr "" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2673 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip _Horizontal" msgstr "" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip selected objects horizontally" msgstr "" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip _Vertical" msgstr "" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip selected objects vertically" msgstr "" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2681 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" -#: ../src/verbs.cpp:2714 +#: ../src/verbs.cpp:2683 msgid "Edit mask" msgstr "" -#: ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2684 ../src/verbs.cpp:2692 msgid "_Release" msgstr "" -#: ../src/verbs.cpp:2716 +#: ../src/verbs.cpp:2685 msgid "Remove mask from selection" msgstr "" -#: ../src/verbs.cpp:2718 +#: ../src/verbs.cpp:2687 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2688 msgid "Create Cl_ip Group" msgstr "" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2689 msgid "Creates a clip group using the selected objects as a base" msgstr "" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2691 msgid "Edit clipping path" msgstr "" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2693 msgid "Remove clipping path from selection" msgstr "" #. Tools -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2698 msgctxt "ContextVerb" msgid "Select" msgstr "" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2699 msgid "Select and transform objects" msgstr "" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2700 msgctxt "ContextVerb" msgid "Node Edit" msgstr "" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2701 msgid "Edit paths by nodes" msgstr "" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2702 msgctxt "ContextVerb" msgid "Tweak" msgstr "" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2703 msgid "Tweak objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2704 msgctxt "ContextVerb" msgid "Spray" msgstr "" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2705 msgid "Spray objects by sculpting or painting" msgstr "" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2706 msgctxt "ContextVerb" msgid "Rectangle" msgstr "" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2707 msgid "Create rectangles and squares" msgstr "" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2708 msgctxt "ContextVerb" msgid "3D Box" msgstr "" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2709 msgid "Create 3D boxes" msgstr "" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2710 msgctxt "ContextVerb" msgid "Ellipse" msgstr "" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2711 msgid "Create circles, ellipses, and arcs" msgstr "" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2712 msgctxt "ContextVerb" msgid "Star" msgstr "" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2713 msgid "Create stars and polygons" msgstr "" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2714 msgctxt "ContextVerb" msgid "Spiral" msgstr "" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2715 msgid "Create spirals" msgstr "" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2716 msgctxt "ContextVerb" msgid "Pencil" msgstr "" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2717 msgid "Draw freehand lines" msgstr "" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2718 msgctxt "ContextVerb" msgid "Pen" msgstr "" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2719 msgid "Draw Bezier curves and straight lines" msgstr "" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2720 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "" -#: ../src/verbs.cpp:2752 +#: ../src/verbs.cpp:2721 msgid "Draw calligraphic or brush strokes" msgstr "" -#: ../src/verbs.cpp:2754 +#: ../src/verbs.cpp:2723 msgid "Create and edit text objects" msgstr "" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2724 msgctxt "ContextVerb" msgid "Gradient" msgstr "" -#: ../src/verbs.cpp:2756 +#: ../src/verbs.cpp:2725 msgid "Create and edit gradients" msgstr "" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2726 msgctxt "ContextVerb" msgid "Mesh" msgstr "" -#: ../src/verbs.cpp:2758 +#: ../src/verbs.cpp:2727 msgid "Create and edit meshes" msgstr "" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2728 msgctxt "ContextVerb" msgid "Zoom" msgstr "" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2729 msgid "Zoom in or out" msgstr "" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2731 msgid "Measurement tool" msgstr "" -#: ../src/verbs.cpp:2763 +#: ../src/verbs.cpp:2732 msgctxt "ContextVerb" msgid "Dropper" msgstr "" -#: ../src/verbs.cpp:2764 ../src/widgets/sp-color-notebook.cpp:396 +#: ../src/verbs.cpp:2733 ../src/widgets/sp-color-notebook.cpp:396 msgid "Pick colors from image" msgstr "" -#: ../src/verbs.cpp:2765 +#: ../src/verbs.cpp:2734 msgctxt "ContextVerb" msgid "Connector" msgstr "" -#: ../src/verbs.cpp:2766 +#: ../src/verbs.cpp:2735 msgid "Create diagram connectors" msgstr "" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2736 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "" -#: ../src/verbs.cpp:2768 +#: ../src/verbs.cpp:2737 msgid "Fill bounded areas" msgstr "" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2738 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "" -#: ../src/verbs.cpp:2770 +#: ../src/verbs.cpp:2739 msgid "Edit Path Effect parameters" msgstr "" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2740 msgctxt "ContextVerb" msgid "Eraser" msgstr "" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2741 msgid "Erase existing paths" msgstr "" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2742 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "" -#: ../src/verbs.cpp:2774 +#: ../src/verbs.cpp:2743 msgid "Do geometric constructions" msgstr "" #. Tool prefs -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2745 msgid "Selector Preferences" msgstr "" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2746 msgid "Open Preferences for the Selector tool" msgstr "" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2747 msgid "Node Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2748 msgid "Open Preferences for the Node tool" msgstr "" -#: ../src/verbs.cpp:2780 +#: ../src/verbs.cpp:2749 msgid "Tweak Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2750 msgid "Open Preferences for the Tweak tool" msgstr "" -#: ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2751 msgid "Spray Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2752 msgid "Open Preferences for the Spray tool" msgstr "" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2753 msgid "Rectangle Preferences" msgstr "" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2754 msgid "Open Preferences for the Rectangle tool" msgstr "" -#: ../src/verbs.cpp:2786 +#: ../src/verbs.cpp:2755 msgid "3D Box Preferences" msgstr "" -#: ../src/verbs.cpp:2787 +#: ../src/verbs.cpp:2756 msgid "Open Preferences for the 3D Box tool" msgstr "" -#: ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2757 msgid "Ellipse Preferences" msgstr "" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2758 msgid "Open Preferences for the Ellipse tool" msgstr "" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2759 msgid "Star Preferences" msgstr "" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2760 msgid "Open Preferences for the Star tool" msgstr "" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2761 msgid "Spiral Preferences" msgstr "" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2762 msgid "Open Preferences for the Spiral tool" msgstr "" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2763 msgid "Pencil Preferences" msgstr "" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2764 msgid "Open Preferences for the Pencil tool" msgstr "" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2765 msgid "Pen Preferences" msgstr "" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2766 msgid "Open Preferences for the Pen tool" msgstr "" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2767 msgid "Calligraphic Preferences" msgstr "" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2768 msgid "Open Preferences for the Calligraphy tool" msgstr "" -#: ../src/verbs.cpp:2800 +#: ../src/verbs.cpp:2769 msgid "Text Preferences" msgstr "" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2770 msgid "Open Preferences for the Text tool" msgstr "" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2771 msgid "Gradient Preferences" msgstr "" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2772 msgid "Open Preferences for the Gradient tool" msgstr "" -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2773 msgid "Mesh Preferences" msgstr "" -#: ../src/verbs.cpp:2805 +#: ../src/verbs.cpp:2774 msgid "Open Preferences for the Mesh tool" msgstr "" -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2775 msgid "Zoom Preferences" msgstr "" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2776 msgid "Open Preferences for the Zoom tool" msgstr "" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2777 msgid "Measure Preferences" msgstr "" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2778 msgid "Open Preferences for the Measure tool" msgstr "" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2779 msgid "Dropper Preferences" msgstr "" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2780 msgid "Open Preferences for the Dropper tool" msgstr "" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2781 msgid "Connector Preferences" msgstr "" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2782 msgid "Open Preferences for the Connector tool" msgstr "" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2783 msgid "Paint Bucket Preferences" msgstr "" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2784 msgid "Open Preferences for the Paint Bucket tool" msgstr "" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2785 msgid "Eraser Preferences" msgstr "" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2786 msgid "Open Preferences for the Eraser tool" msgstr "" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2787 msgid "LPE Tool Preferences" msgstr "" -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2788 msgid "Open Preferences for the LPETool tool" msgstr "" #. Zoom/View -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom In" msgstr "" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom in" msgstr "" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom Out" msgstr "" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom out" msgstr "" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "_Rulers" msgstr "" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "Show or hide the canvas rulers" msgstr "" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Scroll_bars" msgstr "" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Show or hide the canvas scrollbars" msgstr "" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Page _Grid" msgstr "" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Show or hide the page grid" msgstr "" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "G_uides" msgstr "" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2796 msgid "Enable snapping" msgstr "" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "_Commands Bar" msgstr "" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "Show or hide the Commands bar (under the menu)" msgstr "" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Sn_ap Controls Bar" msgstr "" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Show or hide the snapping controls" msgstr "" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "T_ool Controls Bar" msgstr "" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "Show or hide the Tool Controls bar" msgstr "" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "_Toolbox" msgstr "" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "Show or hide the main toolbox (on the left)" msgstr "" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "_Palette" msgstr "" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "Show or hide the color palette" msgstr "" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "_Statusbar" msgstr "" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Nex_t Zoom" msgstr "" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Next zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Pre_vious Zoom" msgstr "" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Previous zoom (from the history of zooms)" msgstr "" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom 1:_1" msgstr "" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom to 1:1" msgstr "" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom 1:_2" msgstr "" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom to 1:2" msgstr "" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "_Zoom 2:1" msgstr "" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "Zoom to 2:1" msgstr "" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2814 msgid "_Fullscreen" msgstr "" -#: ../src/verbs.cpp:2845 ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2814 ../src/verbs.cpp:2816 msgid "Stretch this document window to full screen" msgstr "" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2816 msgid "Fullscreen & Focus Mode" msgstr "" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Toggle _Focus Mode" msgstr "" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Remove excess toolbars to focus on drawing" msgstr "" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Duplic_ate Window" msgstr "" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Open a new window with the same document" msgstr "" -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2823 msgid "_New View Preview" msgstr "" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2824 msgid "New View Preview" msgstr "" #. "view_new_preview" -#: ../src/verbs.cpp:2857 ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2826 ../src/verbs.cpp:2834 msgid "_Normal" msgstr "" -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2827 msgid "Switch to normal display mode" msgstr "" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2828 msgid "No _Filters" msgstr "" -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2829 msgid "Switch to normal display without filters" msgstr "" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2830 msgid "_Outline" msgstr "" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2831 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 +#: ../src/verbs.cpp:2832 ../src/verbs.cpp:2840 msgid "_Toggle" msgstr "" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2833 msgid "Toggle between normal and outline display modes" msgstr "" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2835 msgid "Switch to normal color display mode" msgstr "" -#: ../src/verbs.cpp:2867 +#: ../src/verbs.cpp:2836 msgid "_Grayscale" msgstr "" -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2837 msgid "Switch to grayscale display mode" msgstr "" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2841 msgid "Toggle between normal and grayscale color display modes" msgstr "" -#: ../src/verbs.cpp:2874 +#: ../src/verbs.cpp:2843 msgid "Color-managed view" msgstr "" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2844 msgid "Toggle color-managed display for this document window" msgstr "" -#: ../src/verbs.cpp:2877 +#: ../src/verbs.cpp:2846 msgid "Ico_n Preview..." msgstr "" -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2847 msgid "Open a window to preview objects at different icon resolutions" msgstr "" -#: ../src/verbs.cpp:2880 +#: ../src/verbs.cpp:2849 msgid "Zoom to fit page in window" msgstr "" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2850 msgid "Page _Width" msgstr "" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2851 msgid "Zoom to fit page width in window" msgstr "" -#: ../src/verbs.cpp:2884 +#: ../src/verbs.cpp:2853 msgid "Zoom to fit drawing in window" msgstr "" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2855 msgid "Zoom to fit selection in window" msgstr "" #. Dialogs -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2858 msgid "P_references..." msgstr "" -#: ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:2859 msgid "Edit global Inkscape preferences" msgstr "" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2860 msgid "_Document Properties..." msgstr "" -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2861 msgid "Edit properties of this document (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2862 msgid "Document _Metadata..." msgstr "" -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2863 msgid "Edit document metadata (to be saved with the document)" msgstr "" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2865 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 +#: ../src/verbs.cpp:2867 msgid "Gl_yphs..." msgstr "" -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2868 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 +#: ../src/verbs.cpp:2871 msgid "S_watches..." msgstr "" -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2872 msgid "Select colors from a swatches palette" msgstr "" -#: ../src/verbs.cpp:2904 +#: ../src/verbs.cpp:2873 msgid "S_ymbols..." msgstr "" -#: ../src/verbs.cpp:2905 +#: ../src/verbs.cpp:2874 msgid "Select symbol from a symbols palette" msgstr "" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2875 msgid "Transfor_m..." msgstr "" -#: ../src/verbs.cpp:2907 +#: ../src/verbs.cpp:2876 msgid "Precisely control objects' transformations" msgstr "" -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:2877 msgid "_Align and Distribute..." msgstr "" -#: ../src/verbs.cpp:2909 +#: ../src/verbs.cpp:2878 msgid "Align and distribute objects" msgstr "" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2879 msgid "_Spray options..." msgstr "" -#: ../src/verbs.cpp:2911 +#: ../src/verbs.cpp:2880 msgid "Some options for the spray" msgstr "" -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2881 msgid "Undo _History..." msgstr "" -#: ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2882 msgid "Undo History" msgstr "" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2884 msgid "View and select font family, font size and other text properties" msgstr "" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2885 msgid "_XML Editor..." msgstr "" -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2886 msgid "View and edit the XML tree of the document" msgstr "" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2887 msgid "_Find/Replace..." msgstr "" -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2888 msgid "Find objects in document" msgstr "" -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2889 msgid "Find and _Replace Text..." msgstr "" -#: ../src/verbs.cpp:2921 +#: ../src/verbs.cpp:2890 msgid "Find and replace text in document" msgstr "" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2892 msgid "Check spelling of text in document" msgstr "" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2893 msgid "_Messages..." msgstr "" -#: ../src/verbs.cpp:2925 +#: ../src/verbs.cpp:2894 msgid "View debug messages" msgstr "" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2895 msgid "Show/Hide D_ialogs" msgstr "" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2896 msgid "Show or hide all open dialogs" msgstr "" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2897 msgid "Create Tiled Clones..." msgstr "" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2898 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" msgstr "" -#: ../src/verbs.cpp:2930 +#: ../src/verbs.cpp:2899 msgid "_Object attributes..." msgstr "" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2900 msgid "Edit the object attributes..." msgstr "" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2902 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" -#: ../src/verbs.cpp:2934 +#: ../src/verbs.cpp:2903 msgid "_Input Devices..." msgstr "" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2904 msgid "Configure extended input devices, such as a graphics tablet" msgstr "" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2905 msgid "_Extensions..." msgstr "" -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2906 msgid "Query information about extensions" msgstr "" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2907 msgid "Layer_s..." msgstr "" -#: ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2908 msgid "View Layers" msgstr "" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2909 msgid "Object_s..." msgstr "" -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2910 msgid "View Objects" msgstr "" -#: ../src/verbs.cpp:2942 +#: ../src/verbs.cpp:2911 msgid "Selection se_ts..." msgstr "" -#: ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2912 msgid "View Tags" msgstr "" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2913 msgid "Path E_ffects ..." msgstr "" -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2914 msgid "Manage, edit, and apply path effects" msgstr "" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2915 msgid "Filter _Editor..." msgstr "" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2916 msgid "Manage, edit, and apply SVG filters" msgstr "" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2917 msgid "SVG Font Editor..." msgstr "" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2918 msgid "Edit SVG fonts" msgstr "" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2919 msgid "Print Colors..." msgstr "" -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2920 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2921 msgid "_Export PNG Image..." msgstr "" -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2922 msgid "Export this document or a selection as a PNG image" msgstr "" #. Help -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2924 msgid "About E_xtensions" msgstr "" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2925 msgid "Information on Inkscape extensions" msgstr "" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2926 msgid "About _Memory" msgstr "" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2927 msgid "Memory usage information" msgstr "" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2928 msgid "_About Inkscape" msgstr "" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2929 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 +#: ../src/verbs.cpp:2934 msgid "Inkscape: _Basic" msgstr "" -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2935 msgid "Getting started with Inkscape" msgstr "" #. "tutorial_basic" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2936 msgid "Inkscape: _Shapes" msgstr "" -#: ../src/verbs.cpp:2968 +#: ../src/verbs.cpp:2937 msgid "Using shape tools to create and edit shapes" msgstr "" -#: ../src/verbs.cpp:2969 +#: ../src/verbs.cpp:2938 msgid "Inkscape: _Advanced" msgstr "" -#: ../src/verbs.cpp:2970 +#: ../src/verbs.cpp:2939 msgid "Advanced Inkscape topics" msgstr "" #. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2972 +#: ../src/verbs.cpp:2941 msgid "Inkscape: T_racing" msgstr "" -#: ../src/verbs.cpp:2973 +#: ../src/verbs.cpp:2942 msgid "Using bitmap tracing" msgstr "" #. "tutorial_tracing" -#: ../src/verbs.cpp:2974 +#: ../src/verbs.cpp:2943 msgid "Inkscape: Tracing Pixel Art" msgstr "" -#: ../src/verbs.cpp:2975 +#: ../src/verbs.cpp:2944 msgid "Using Trace Pixel Art dialog" msgstr "" -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:2945 msgid "Inkscape: _Calligraphy" msgstr "" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:2946 msgid "Using the Calligraphy pen tool" msgstr "" -#: ../src/verbs.cpp:2978 +#: ../src/verbs.cpp:2947 msgid "Inkscape: _Interpolate" msgstr "" -#: ../src/verbs.cpp:2979 +#: ../src/verbs.cpp:2948 msgid "Using the interpolate extension" msgstr "" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2980 +#: ../src/verbs.cpp:2949 msgid "_Elements of Design" msgstr "" -#: ../src/verbs.cpp:2981 +#: ../src/verbs.cpp:2950 msgid "Principles of design in the tutorial form" msgstr "" #. "tutorial_design" -#: ../src/verbs.cpp:2982 +#: ../src/verbs.cpp:2951 msgid "_Tips and Tricks" msgstr "" -#: ../src/verbs.cpp:2983 +#: ../src/verbs.cpp:2952 msgid "Miscellaneous tips and tricks" msgstr "" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2986 +#: ../src/verbs.cpp:2955 msgid "Previous Exte_nsion" msgstr "" -#: ../src/verbs.cpp:2987 +#: ../src/verbs.cpp:2956 msgid "Repeat the last extension with the same settings" msgstr "" -#: ../src/verbs.cpp:2988 +#: ../src/verbs.cpp:2957 msgid "_Previous Extension Settings..." msgstr "" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:2958 msgid "Repeat the last extension with new settings" msgstr "" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2962 msgid "Fit the page to the current selection" msgstr "" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2964 msgid "Fit the page to the drawing" msgstr "" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2966 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" #. LockAndHide -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:2968 msgid "Unlock All" msgstr "" -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:2970 msgid "Unlock All in All Layers" msgstr "" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:2972 msgid "Unhide All" msgstr "" -#: ../src/verbs.cpp:3005 +#: ../src/verbs.cpp:2974 msgid "Unhide All in All Layers" msgstr "" -#: ../src/verbs.cpp:3009 +#: ../src/verbs.cpp:2978 msgid "Link an ICC color profile" msgstr "" -#: ../src/verbs.cpp:3010 +#: ../src/verbs.cpp:2979 msgid "Remove Color Profile" msgstr "" -#: ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:2980 msgid "Remove a linked ICC color profile" msgstr "" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add External Script" msgstr "" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add an external script" msgstr "" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add Embedded Script" msgstr "" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add an embedded script" msgstr "" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit Embedded Script" msgstr "" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit an embedded script" msgstr "" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove External Script" msgstr "" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove an external script" msgstr "" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove Embedded Script" msgstr "" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove an embedded script" msgstr "" -#: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 +#: ../src/verbs.cpp:3013 ../src/verbs.cpp:3014 msgid "Center on horizontal and vertical axis" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:132 +#: ../src/widgets/arc-toolbar.cpp:129 msgid "Arc: Change start/end" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:198 +#: ../src/widgets/arc-toolbar.cpp:191 msgid "Arc: Change open/closed" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 +#: ../src/widgets/arc-toolbar.cpp:280 ../src/widgets/arc-toolbar.cpp:310 #: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 +#: ../src/widgets/spiral-toolbar.cpp:210 ../src/widgets/spiral-toolbar.cpp:234 +#: ../src/widgets/star-toolbar.cpp:382 ../src/widgets/star-toolbar.cpp:444 msgid "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/arc-toolbar.cpp:283 ../src/widgets/arc-toolbar.cpp:294 #: ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:386 +#: ../src/widgets/spiral-toolbar.cpp:212 ../src/widgets/spiral-toolbar.cpp:223 +#: ../src/widgets/star-toolbar.cpp:384 msgid "Change:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:328 +#: ../src/widgets/arc-toolbar.cpp:319 msgid "Start:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:329 +#: ../src/widgets/arc-toolbar.cpp:320 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:341 +#: ../src/widgets/arc-toolbar.cpp:332 msgid "End:" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:342 +#: ../src/widgets/arc-toolbar.cpp:333 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:358 +#: ../src/widgets/arc-toolbar.cpp:349 msgid "Closed arc" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:359 +#: ../src/widgets/arc-toolbar.cpp:350 msgid "Switch to segment (closed shape with two radii)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:365 +#: ../src/widgets/arc-toolbar.cpp:356 msgid "Open Arc" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:366 +#: ../src/widgets/arc-toolbar.cpp:357 msgid "Switch to arc (unclosed shape)" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:389 +#: ../src/widgets/arc-toolbar.cpp:380 msgid "Make whole" msgstr "" -#: ../src/widgets/arc-toolbar.cpp:390 +#: ../src/widgets/arc-toolbar.cpp:381 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "" @@ -26503,87 +26503,87 @@ msgstr "" msgid "Add or edit calligraphic profile" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: orthogonal" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: polyline" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/widgets/connector-toolbar.cpp:165 msgid "Change connector curvature" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:220 +#: ../src/widgets/connector-toolbar.cpp:216 msgid "Change connector spacing" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:313 +#: ../src/widgets/connector-toolbar.cpp:309 msgid "Avoid" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:323 +#: ../src/widgets/connector-toolbar.cpp:319 msgid "Ignore" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:334 +#: ../src/widgets/connector-toolbar.cpp:330 msgid "Orthogonal" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:335 +#: ../src/widgets/connector-toolbar.cpp:331 msgid "Make connector orthogonal or polyline" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Connector Curvature" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Curvature:" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:350 +#: ../src/widgets/connector-toolbar.cpp:346 msgid "The amount of connectors curvature" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Connector Spacing" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Spacing:" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:361 +#: ../src/widgets/connector-toolbar.cpp:357 msgid "The amount of space left around objects by auto-routing connectors" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:372 +#: ../src/widgets/connector-toolbar.cpp:368 msgid "Graph" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Connector Length" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Length:" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:383 +#: ../src/widgets/connector-toolbar.cpp:379 msgid "Ideal length for connectors when layout is applied" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:395 +#: ../src/widgets/connector-toolbar.cpp:391 msgid "Downwards" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:396 +#: ../src/widgets/connector-toolbar.cpp:392 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "" -#: ../src/widgets/connector-toolbar.cpp:412 +#: ../src/widgets/connector-toolbar.cpp:408 msgid "Do not allow overlapping shapes" msgstr "" @@ -26754,36 +26754,36 @@ msgstr "" msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "" -#: ../src/widgets/fill-style.cpp:360 +#: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" msgstr "" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set fill color" msgstr "" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set stroke color" msgstr "" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on fill" msgstr "" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on stroke" msgstr "" -#: ../src/widgets/fill-style.cpp:682 +#: ../src/widgets/fill-style.cpp:678 msgid "Set pattern on fill" msgstr "" -#: ../src/widgets/fill-style.cpp:683 +#: ../src/widgets/fill-style.cpp:679 msgid "Set pattern on stroke" msgstr "" -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:947 -#: ../src/widgets/text-toolbar.cpp:1259 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:953 +#: ../src/widgets/text-toolbar.cpp:1265 msgid "Font size" msgstr "" @@ -26815,7 +26815,7 @@ msgid "Edit gradient" msgstr "" #: ../src/widgets/gradient-selector.cpp:281 -#: ../src/widgets/paint-selector.cpp:236 +#: ../src/widgets/paint-selector.cpp:233 msgid "Swatch" msgstr "" @@ -26823,112 +26823,116 @@ msgstr "" 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 +#: ../src/widgets/gradient-toolbar.cpp:157 +#: ../src/widgets/gradient-toolbar.cpp:170 +#: ../src/widgets/gradient-toolbar.cpp:761 +#: ../src/widgets/gradient-toolbar.cpp:1100 msgid "No gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:176 +#: ../src/widgets/gradient-toolbar.cpp:177 msgid "Multiple gradients" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:678 +#: ../src/widgets/gradient-toolbar.cpp:681 msgid "Multiple stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:776 -#: ../src/widgets/gradient-vector.cpp:609 +#: ../src/widgets/gradient-toolbar.cpp:779 +#: ../src/widgets/gradient-vector.cpp:610 msgid "No stops in gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:930 +#: ../src/widgets/gradient-toolbar.cpp:933 msgid "Assign gradient to object" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:952 +#: ../src/widgets/gradient-toolbar.cpp:955 msgid "Set gradient repeat" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:990 -#: ../src/widgets/gradient-vector.cpp:720 +#: ../src/widgets/gradient-toolbar.cpp:993 +#: ../src/widgets/gradient-vector.cpp:721 msgid "Change gradient stop offset" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "linear" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "Create linear gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 msgid "radial" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 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:1047 +#: ../src/widgets/mesh-toolbar.cpp:343 msgid "New:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:366 msgid "fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:366 msgid "Create gradient in the fill" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:370 msgid "stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:370 msgid "Create gradient in the stroke" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1074 -#: ../src/widgets/mesh-toolbar.cpp:371 +#: ../src/widgets/gradient-toolbar.cpp:1077 +#: ../src/widgets/mesh-toolbar.cpp:373 msgid "on:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Select" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Choose a gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1100 +#: ../src/widgets/gradient-toolbar.cpp:1103 msgid "Select:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgctxt "Gradient repeat type" msgid "None" msgstr "" #: ../src/widgets/gradient-toolbar.cpp:1121 +msgid "Reflected" +msgstr "" + +#: ../src/widgets/gradient-toolbar.cpp:1124 msgid "Direct" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1123 +#: ../src/widgets/gradient-toolbar.cpp:1126 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:1128 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -26936,62 +26940,62 @@ msgid "" "directions (spreadMethod=\"reflect\")" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1130 +#: ../src/widgets/gradient-toolbar.cpp:1133 msgid "Repeat:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "No stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Stops" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Select a stop for the current gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1147 +#: ../src/widgets/gradient-toolbar.cpp:1150 msgid "Stops:" msgstr "" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1159 -#: ../src/widgets/gradient-vector.cpp:906 +#: ../src/widgets/gradient-toolbar.cpp:1162 +#: ../src/widgets/gradient-vector.cpp:907 msgctxt "Gradient" msgid "Offset:" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset of selected stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1177 -#: ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1180 +#: ../src/widgets/gradient-toolbar.cpp:1181 msgid "Insert new stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1191 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-vector.cpp:888 +#: ../src/widgets/gradient-toolbar.cpp:1194 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-vector.cpp:889 msgid "Delete stop" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1209 msgid "Reverse the direction of the gradient" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1220 +#: ../src/widgets/gradient-toolbar.cpp:1223 msgid "Link gradients" msgstr "" -#: ../src/widgets/gradient-toolbar.cpp:1221 +#: ../src/widgets/gradient-toolbar.cpp:1224 msgid "Link gradients to change all related gradients" msgstr "" #: ../src/widgets/gradient-vector.cpp:312 -#: ../src/widgets/paint-selector.cpp:947 +#: ../src/widgets/paint-selector.cpp:957 #: ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" msgstr "" @@ -27005,28 +27009,28 @@ msgid "No gradient selected" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:883 +#: ../src/widgets/gradient-vector.cpp:884 msgid "Add stop" msgstr "" -#: ../src/widgets/gradient-vector.cpp:886 +#: ../src/widgets/gradient-vector.cpp:887 msgid "Add another control stop to gradient" msgstr "" -#: ../src/widgets/gradient-vector.cpp:891 +#: ../src/widgets/gradient-vector.cpp:892 msgid "Delete current control stop from gradient" msgstr "" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:959 +#: ../src/widgets/gradient-vector.cpp:960 msgid "Stop Color" msgstr "" -#: ../src/widgets/gradient-vector.cpp:987 +#: ../src/widgets/gradient-vector.cpp:988 msgid "Gradient editor" msgstr "" -#: ../src/widgets/gradient-vector.cpp:1324 +#: ../src/widgets/gradient-vector.cpp:1325 msgid "Change gradient stop color" msgstr "" @@ -27086,7 +27090,7 @@ 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/paintbucket-toolbar.cpp:167 #: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 msgid "Units" msgstr "" @@ -27099,7 +27103,7 @@ msgstr "" msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1268 msgid "Font Size" msgstr "" @@ -27116,99 +27120,99 @@ msgstr "" msgid "The units to be used for the measurements" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:311 +#: ../src/widgets/mesh-toolbar.cpp:313 msgid "Set mesh type" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "normal" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "Create mesh gradient" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "conical" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "Create conical gradient" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 msgid "Rows" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 #: ../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:395 msgid "Number of rows in new mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Columns" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Number of columns in new mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:423 +#: ../src/widgets/mesh-toolbar.cpp:425 msgid "Edit Fill" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:424 +#: ../src/widgets/mesh-toolbar.cpp:426 msgid "Edit fill mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:435 +#: ../src/widgets/mesh-toolbar.cpp:437 msgid "Edit Stroke" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:436 +#: ../src/widgets/mesh-toolbar.cpp:438 msgid "Edit stroke mesh" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:449 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:448 +#: ../src/widgets/mesh-toolbar.cpp:450 msgid "Show side and tensor handles" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:463 +#: ../src/widgets/mesh-toolbar.cpp:465 msgid "WARNING: Mesh SVG Syntax Subject to Change" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:473 +#: ../src/widgets/mesh-toolbar.cpp:475 msgctxt "Type" msgid "Coons" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:476 +#: ../src/widgets/mesh-toolbar.cpp:478 msgid "Bicubic" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:478 +#: ../src/widgets/mesh-toolbar.cpp:480 msgid "Coons" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:479 +#: ../src/widgets/mesh-toolbar.cpp:481 msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:481 ../src/widgets/pencil-toolbar.cpp:278 +#: ../src/widgets/mesh-toolbar.cpp:483 ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing:" msgstr "" @@ -27404,137 +27408,137 @@ msgstr "" msgid "Y coordinate of selected node(s)" msgstr "" -#: ../src/widgets/paint-selector.cpp:222 +#: ../src/widgets/paint-selector.cpp:219 msgid "No paint" msgstr "" -#: ../src/widgets/paint-selector.cpp:224 +#: ../src/widgets/paint-selector.cpp:221 msgid "Flat color" msgstr "" -#: ../src/widgets/paint-selector.cpp:226 +#: ../src/widgets/paint-selector.cpp:223 msgid "Linear gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:228 +#: ../src/widgets/paint-selector.cpp:225 msgid "Radial gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:231 +#: ../src/widgets/paint-selector.cpp:228 msgid "Mesh gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:238 +#: ../src/widgets/paint-selector.cpp:235 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 +#: ../src/widgets/paint-selector.cpp:252 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 +#: ../src/widgets/paint-selector.cpp:263 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" -#: ../src/widgets/paint-selector.cpp:600 +#: ../src/widgets/paint-selector.cpp:597 msgid "No objects" msgstr "" -#: ../src/widgets/paint-selector.cpp:611 +#: ../src/widgets/paint-selector.cpp:608 msgid "Multiple styles" msgstr "" -#: ../src/widgets/paint-selector.cpp:622 +#: ../src/widgets/paint-selector.cpp:619 msgid "Paint is undefined" msgstr "" -#: ../src/widgets/paint-selector.cpp:633 +#: ../src/widgets/paint-selector.cpp:630 msgid "No paint" msgstr "" -#: ../src/widgets/paint-selector.cpp:704 +#: ../src/widgets/paint-selector.cpp:714 msgid "Flat color" msgstr "" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:773 +#: ../src/widgets/paint-selector.cpp:783 msgid "Linear gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:776 +#: ../src/widgets/paint-selector.cpp:786 msgid "Radial gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:781 +#: ../src/widgets/paint-selector.cpp:791 msgid "Mesh gradient" msgstr "" -#: ../src/widgets/paint-selector.cpp:1080 +#: ../src/widgets/paint-selector.cpp:1090 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 +#: ../src/widgets/paint-selector.cpp:1103 msgid "Pattern fill" msgstr "" -#: ../src/widgets/paint-selector.cpp:1187 +#: ../src/widgets/paint-selector.cpp:1197 msgid "Swatch fill" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:135 +#: ../src/widgets/paintbucket-toolbar.cpp:134 msgid "Fill by" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:136 +#: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by:" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Fill Threshold" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:149 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by:" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:177 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:202 +#: ../src/widgets/paintbucket-toolbar.cpp:199 msgid "Close gaps" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:203 +#: ../src/widgets/paintbucket-toolbar.cpp:200 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 +#: ../src/widgets/paintbucket-toolbar.cpp:211 +#: ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:285 +#: ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "" -#: ../src/widgets/paintbucket-toolbar.cpp:215 +#: ../src/widgets/paintbucket-toolbar.cpp:212 msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" @@ -27627,7 +27631,7 @@ msgid "" "change defaults)" msgstr "" -#: ../src/widgets/rect-toolbar.cpp:124 +#: ../src/widgets/rect-toolbar.cpp:125 msgid "Change rectangle" msgstr "" @@ -27992,91 +27996,91 @@ msgstr "" msgid "Type text in a text node" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:100 +#: ../src/widgets/spiral-toolbar.cpp:98 msgid "Change spiral" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "just a curve" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "one full revolution" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of turns" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Turns:" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of revolutions" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "circle" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is much denser" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is denser" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "even" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is denser" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is much denser" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence:" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts from center" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts mid-way" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts near edge" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius:" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:567 +#: ../src/widgets/spiral-toolbar.cpp:286 ../src/widgets/star-toolbar.cpp:565 msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -28240,149 +28244,149 @@ msgstr "" msgid "Star: Change randomization" msgstr "" -#: ../src/widgets/star-toolbar.cpp:465 +#: ../src/widgets/star-toolbar.cpp:463 msgid "Regular polygon (with one handle) instead of a star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:472 +#: ../src/widgets/star-toolbar.cpp:470 msgid "Star instead of a regular polygon (with one handle)" msgstr "" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "triangle/tri-star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "square/quad-star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "pentagon/five-pointed star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "hexagon/six-pointed star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners" msgstr "" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners:" msgstr "" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Number of corners of a polygon or star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "thin-ray star" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "pentagram" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "hexagram" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "heptagram" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "octagram" msgstr "" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "regular polygon" msgstr "" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 msgid "Spoke ratio" msgstr "" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 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 +#: ../src/widgets/star-toolbar.cpp:513 msgid "Base radius to tip radius ratio" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "stretched" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "twisted" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly pinched" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "NOT rounded" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly rounded" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "visibly rounded" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "well rounded" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "amply rounded" msgstr "" -#: ../src/widgets/star-toolbar.cpp:533 ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 msgid "blown up" msgstr "" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded:" msgstr "" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "How much rounded are the corners (0 for sharp)" msgstr "" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "NOT randomized" msgstr "" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "slightly irregular" msgstr "" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "visibly randomized" msgstr "" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "strongly randomized" msgstr "" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized" msgstr "" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized:" msgstr "" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Scatter randomly the corners and angles" msgstr "" @@ -28480,7 +28484,7 @@ msgstr "" msgid "Set markers" msgstr "" -#: ../src/widgets/stroke-style.cpp:1030 ../src/widgets/stroke-style.cpp:1114 +#: ../src/widgets/stroke-style.cpp:1029 ../src/widgets/stroke-style.cpp:1113 msgid "Set stroke style" msgstr "" @@ -28492,410 +28496,410 @@ msgstr "" msgid "Change swatch color" msgstr "" -#: ../src/widgets/text-toolbar.cpp:169 +#: ../src/widgets/text-toolbar.cpp:173 msgid "Text: Change font family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:233 +#: ../src/widgets/text-toolbar.cpp:239 msgid "Text: Change font size" msgstr "" -#: ../src/widgets/text-toolbar.cpp:269 +#: ../src/widgets/text-toolbar.cpp:275 msgid "Text: Change font style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:347 +#: ../src/widgets/text-toolbar.cpp:353 msgid "Text: Change superscript or subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:489 +#: ../src/widgets/text-toolbar.cpp:496 msgid "Text: Change alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:532 +#: ../src/widgets/text-toolbar.cpp:539 msgid "Text: Change line-height" msgstr "" -#: ../src/widgets/text-toolbar.cpp:580 +#: ../src/widgets/text-toolbar.cpp:587 msgid "Text: Change word-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:620 +#: ../src/widgets/text-toolbar.cpp:627 msgid "Text: Change letter-spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:658 +#: ../src/widgets/text-toolbar.cpp:665 msgid "Text: Change dx (kern)" msgstr "" -#: ../src/widgets/text-toolbar.cpp:692 +#: ../src/widgets/text-toolbar.cpp:699 msgid "Text: Change dy" msgstr "" -#: ../src/widgets/text-toolbar.cpp:727 +#: ../src/widgets/text-toolbar.cpp:734 msgid "Text: Change rotate" msgstr "" -#: ../src/widgets/text-toolbar.cpp:774 +#: ../src/widgets/text-toolbar.cpp:781 msgid "Text: Change orientation" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1210 +#: ../src/widgets/text-toolbar.cpp:1216 msgid "Font Family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1211 +#: ../src/widgets/text-toolbar.cpp:1217 msgid "Select Font Family (Alt-X to access)" msgstr "" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1221 +#: ../src/widgets/text-toolbar.cpp:1227 msgid "Select all text with this font-family" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1225 +#: ../src/widgets/text-toolbar.cpp:1231 msgid "Font not found on system" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1284 +#: ../src/widgets/text-toolbar.cpp:1290 msgid "Font Style" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1285 +#: ../src/widgets/text-toolbar.cpp:1291 msgid "Font style" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1302 +#: ../src/widgets/text-toolbar.cpp:1308 msgid "Toggle Superscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1303 +#: ../src/widgets/text-toolbar.cpp:1309 msgid "Toggle superscript" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1315 +#: ../src/widgets/text-toolbar.cpp:1321 msgid "Toggle Subscript" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1316 +#: ../src/widgets/text-toolbar.cpp:1322 msgid "Toggle subscript" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1357 +#: ../src/widgets/text-toolbar.cpp:1363 msgid "Justify" msgstr "" #. Name -#: ../src/widgets/text-toolbar.cpp:1364 +#: ../src/widgets/text-toolbar.cpp:1370 msgid "Alignment" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1365 +#: ../src/widgets/text-toolbar.cpp:1371 msgid "Text alignment" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1392 +#: ../src/widgets/text-toolbar.cpp:1398 msgid "Horizontal" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1399 +#: ../src/widgets/text-toolbar.cpp:1405 msgid "Vertical" msgstr "" #. Label -#: ../src/widgets/text-toolbar.cpp:1406 +#: ../src/widgets/text-toolbar.cpp:1412 msgid "Text orientation" msgstr "" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Smaller spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1429 ../src/widgets/text-toolbar.cpp:1460 -#: ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1435 ../src/widgets/text-toolbar.cpp:1466 +#: ../src/widgets/text-toolbar.cpp:1497 msgctxt "Text tool" msgid "Normal" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Larger spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1434 +#: ../src/widgets/text-toolbar.cpp:1440 msgid "Line Height" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1435 +#: ../src/widgets/text-toolbar.cpp:1441 msgid "Line:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1436 +#: ../src/widgets/text-toolbar.cpp:1442 msgid "Spacing between lines (times font size)" msgstr "" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Negative spacing" msgstr "" -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Positive spacing" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1465 +#: ../src/widgets/text-toolbar.cpp:1471 msgid "Word spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1466 +#: ../src/widgets/text-toolbar.cpp:1472 msgid "Word:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1467 +#: ../src/widgets/text-toolbar.cpp:1473 msgid "Spacing between words (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1496 +#: ../src/widgets/text-toolbar.cpp:1502 msgid "Letter spacing" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1497 +#: ../src/widgets/text-toolbar.cpp:1503 msgid "Letter:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1498 +#: ../src/widgets/text-toolbar.cpp:1504 msgid "Spacing between letters (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1527 +#: ../src/widgets/text-toolbar.cpp:1533 msgid "Kerning" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1528 +#: ../src/widgets/text-toolbar.cpp:1534 msgid "Kern:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1529 +#: ../src/widgets/text-toolbar.cpp:1535 msgid "Horizontal kerning (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1558 +#: ../src/widgets/text-toolbar.cpp:1564 msgid "Vertical Shift" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1559 +#: ../src/widgets/text-toolbar.cpp:1565 msgid "Vert:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1560 +#: ../src/widgets/text-toolbar.cpp:1566 msgid "Vertical shift (px)" msgstr "" #. name -#: ../src/widgets/text-toolbar.cpp:1589 +#: ../src/widgets/text-toolbar.cpp:1595 msgid "Letter rotation" msgstr "" #. label -#: ../src/widgets/text-toolbar.cpp:1590 +#: ../src/widgets/text-toolbar.cpp:1596 msgid "Rot:" msgstr "" #. short label -#: ../src/widgets/text-toolbar.cpp:1591 +#: ../src/widgets/text-toolbar.cpp:1597 msgid "Character rotation (degrees)" msgstr "" -#: ../src/widgets/toolbox.cpp:181 +#: ../src/widgets/toolbox.cpp:177 msgid "Color/opacity used for color tweaking" msgstr "" -#: ../src/widgets/toolbox.cpp:189 +#: ../src/widgets/toolbox.cpp:185 msgid "Style of new stars" msgstr "" -#: ../src/widgets/toolbox.cpp:191 +#: ../src/widgets/toolbox.cpp:187 msgid "Style of new rectangles" msgstr "" -#: ../src/widgets/toolbox.cpp:193 +#: ../src/widgets/toolbox.cpp:189 msgid "Style of new 3D boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:195 +#: ../src/widgets/toolbox.cpp:191 msgid "Style of new ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:197 +#: ../src/widgets/toolbox.cpp:193 msgid "Style of new spirals" msgstr "" -#: ../src/widgets/toolbox.cpp:199 +#: ../src/widgets/toolbox.cpp:195 msgid "Style of new paths created by Pencil" msgstr "" -#: ../src/widgets/toolbox.cpp:201 +#: ../src/widgets/toolbox.cpp:197 msgid "Style of new paths created by Pen" msgstr "" -#: ../src/widgets/toolbox.cpp:203 +#: ../src/widgets/toolbox.cpp:199 msgid "Style of new calligraphic strokes" msgstr "" -#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 +#: ../src/widgets/toolbox.cpp:201 ../src/widgets/toolbox.cpp:203 msgid "TBD" msgstr "" -#: ../src/widgets/toolbox.cpp:219 +#: ../src/widgets/toolbox.cpp:215 msgid "Style of Paint Bucket fill objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Snap bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Snap to edges of a bounding box" msgstr "" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Snap bounding box corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "BBox Edge Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "Snap midpoints of bounding box edges" msgstr "" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "BBox Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "Snapping centers of bounding boxes" msgstr "" -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/widgets/toolbox.cpp:1725 msgid "Snap nodes, paths, and handles" msgstr "" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1733 msgid "Snap to paths" msgstr "" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap to path intersections" msgstr "" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "To nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Smooth nodes" msgstr "" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Line Midpoints" msgstr "" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of line segments" msgstr "" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Others" msgstr "" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Object Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Snap centers of objects" msgstr "" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Rotation Centers" msgstr "" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Snap an item's rotation center" msgstr "" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Text baseline" msgstr "" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Snap text anchors and baselines" msgstr "" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap to the page border" msgstr "" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap to grids" msgstr "" -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap guides" msgstr "" @@ -29782,16 +29786,16 @@ msgid "" msgstr "" #. issue error if no paths found -#: ../share/extensions/plotter.py:67 +#: ../share/extensions/plotter.py:70 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" -#: ../share/extensions/plotter.py:144 +#: ../share/extensions/plotter.py:148 msgid "pySerial is not installed." msgstr "" -#: ../share/extensions/plotter.py:164 +#: ../share/extensions/plotter.py:200 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." @@ -32295,13 +32299,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:34 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:35 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -32309,13 +32313,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:36 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:37 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -32330,7 +32334,7 @@ msgid "Check this to show movements between paths (Default: Unchecked)" msgstr "" #: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/hpgl_output.inx.h:35 msgid "HP Graphics Language file (*.hpgl)" msgstr "" @@ -32350,34 +32354,34 @@ msgid "" msgstr "" #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:33 msgid "Plotter Settings " msgstr "" #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:38 msgid "Pen number:" msgstr "" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:39 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:40 msgid "Pen force (g):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:41 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:42 msgid "Pen speed (cm/s or mm/s):" msgstr "" @@ -32393,115 +32397,123 @@ msgid "Rotation (°, Clockwise):" msgstr "" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:45 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:46 msgid "Mirror X axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:47 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:48 msgid "Mirror Y axis" msgstr "" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:49 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:50 msgid "Center zero point" msgstr "" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/plotter.inx.h:51 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 " +#: ../share/extensions/plotter.inx.h:52 +msgid "" +"If you want to use multiple pens on your pen plotter create one layer for " +"each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings " +"in the corresponding layers. This overrules the pen number option above." msgstr "" #: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:44 -msgid "Overcut (mm):" +#: ../share/extensions/plotter.inx.h:53 +msgid "Plot Features " msgstr "" #: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/plotter.inx.h:54 +msgid "Overcut (mm):" +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:55 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/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:56 msgid "Tool offset (mm):" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:57 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/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:58 msgid "Use precut" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:59 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/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:60 msgid "Curve flatness:" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:61 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/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:62 msgid "Auto align" msgstr "" -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:63 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 +#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/plotter.inx.h:66 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." msgstr "" -#: ../share/extensions/hpgl_output.inx.h:35 +#: ../share/extensions/hpgl_output.inx.h:36 msgid "Export an HP Graphics Language file" msgstr "" @@ -33772,94 +33784,127 @@ msgid "The Baud rate of your serial connection (Default: 9600)" msgstr "" #: ../share/extensions/plotter.inx.h:8 -msgid "Flow control:" +msgid "Serial byte size:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:10 +#, no-c-format +msgid "" +"The Byte size of your serial connection, 99% of all plotters use the default " +"setting (Default: 8 Bits)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:11 +msgid "Serial stop bits:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:13 +#, no-c-format +msgid "" +"The Stop bits of your serial connection, 99% of all plotters use the default " +"setting (Default: 1 Bit)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 +msgid "Serial parity:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:16 +#, no-c-format +msgid "" +"The Parity of your serial connection, 99% of all plotters use the default " +"setting (Default: None)" msgstr "" -#: ../share/extensions/plotter.inx.h:9 +#: ../share/extensions/plotter.inx.h:17 +msgid "Serial flow control:" +msgstr "" + +#: ../share/extensions/plotter.inx.h:18 msgid "" "The Software / Hardware flow control of your serial connection (Default: " "Software)" msgstr "" -#: ../share/extensions/plotter.inx.h:10 +#: ../share/extensions/plotter.inx.h:19 msgid "Command language:" msgstr "" -#: ../share/extensions/plotter.inx.h:11 +#: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" msgstr "" -#: ../share/extensions/plotter.inx.h:12 +#: ../share/extensions/plotter.inx.h:21 msgid "Initialization commands:" msgstr "" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:22 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 +#: ../share/extensions/plotter.inx.h:23 msgid "Software (XON/XOFF)" msgstr "" -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:24 msgid "Hardware (RTS/CTS)" msgstr "" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:25 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:26 msgctxt "Flow control" msgid "None" msgstr "" -#: ../share/extensions/plotter.inx.h:18 +#: ../share/extensions/plotter.inx.h:27 msgid "HPGL" msgstr "" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:28 msgid "DMPL" msgstr "" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:29 msgid "KNK Plotter (HPGL variant)" msgstr "" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:30 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:31 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:32 msgid "Parallel (LPT) connections are not supported." msgstr "" -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:43 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:44 msgid "Rotation (°, clockwise):" msgstr "" -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:64 msgid "Show debug information" msgstr "" -#: ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/plotter.inx.h:65 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" diff --git a/po/uk.po b/po/uk.po index 4ee869eef..aa2e5e4d0 100644 --- a/po/uk.po +++ b/po/uk.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: uk\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-03-08 13:33+0200\n" -"PO-Revision-Date: 2015-03-08 15:38+0200\n" +"POT-Creation-Date: 2015-05-09 20:40+0300\n" +"PO-Revision-Date: 2015-05-09 21:04+0300\n" "Last-Translator: Yuri Chornoivan \n" "Language-Team: Ukrainian \n" "Language: uk\n" @@ -1060,26 +1060,27 @@ msgstr "Чорне Ñвітло" #: ../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 @@ -4514,112 +4515,112 @@ msgstr "Ðемає попереднього маÑштабу." msgid "No next zoom." msgstr "Ðемає наÑтупного маÑштабу." -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-axonomgrid.cpp:357 ../src/display/canvas-grid.cpp:697 msgid "Grid _units:" msgstr "О_диниці Ñітки:" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 msgid "_Origin X:" msgstr "_Початок за X:" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 #: ../src/ui/dialog/inkscape-preferences.cpp:746 #: ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "X coordinate of grid origin" msgstr "Координата X початку Ñітки" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 msgid "O_rigin Y:" msgstr "П_очаток по Y:" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 #: ../src/ui/dialog/inkscape-preferences.cpp:747 #: ../src/ui/dialog/inkscape-preferences.cpp:772 msgid "Y coordinate of grid origin" msgstr "Координата Y початку Ñітки" -#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 +#: ../src/display/canvas-axonomgrid.cpp:365 ../src/display/canvas-grid.cpp:708 msgid "Spacing _Y:" msgstr "Інтервал за _Y:" -#: ../src/display/canvas-axonomgrid.cpp:369 +#: ../src/display/canvas-axonomgrid.cpp:365 #: ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Base length of z-axis" msgstr "Базова довжина віÑÑ– z" -#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/display/canvas-axonomgrid.cpp:368 #: ../src/ui/dialog/inkscape-preferences.cpp:778 #: ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Кут X:" -#: ../src/display/canvas-axonomgrid.cpp:372 +#: ../src/display/canvas-axonomgrid.cpp:368 #: ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "Кут віÑÑ– x" -#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:779 #: ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Кут Z:" -#: ../src/display/canvas-axonomgrid.cpp:374 +#: ../src/display/canvas-axonomgrid.cpp:370 #: ../src/ui/dialog/inkscape-preferences.cpp:779 msgid "Angle of z-axis" msgstr "Кут віÑÑ– z" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 msgid "Minor grid line _color:" msgstr "Колір _другорÑдної лінії Ñітки:" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 #: ../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:374 ../src/display/canvas-grid.cpp:713 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:379 ../src/display/canvas-grid.cpp:718 msgid "Ma_jor grid line color:" msgstr "Колір о_Ñновної лінії Ñітки:" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 #: ../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:380 ../src/display/canvas-grid.cpp:719 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:384 ../src/display/canvas-grid.cpp:723 msgid "_Major grid line every:" msgstr "ОÑно_вна Ð»Ñ–Ð½Ñ–Ñ Ñ‡ÐµÑ€ÐµÐ· кожні:" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "lines" msgstr "ліній" -#: ../src/display/canvas-grid.cpp:64 +#: ../src/display/canvas-grid.cpp:60 msgid "Rectangular grid" msgstr "ПрÑмокутна Ñітка" -#: ../src/display/canvas-grid.cpp:65 +#: ../src/display/canvas-grid.cpp:61 msgid "Axonometric grid" msgstr "ÐкÑонометрична Ñітка" -#: ../src/display/canvas-grid.cpp:250 +#: ../src/display/canvas-grid.cpp:246 msgid "Create new grid" msgstr "Створити нову Ñітку" -#: ../src/display/canvas-grid.cpp:316 +#: ../src/display/canvas-grid.cpp:312 msgid "_Enabled" msgstr "_Увімкнено" -#: ../src/display/canvas-grid.cpp:317 +#: ../src/display/canvas-grid.cpp:313 msgid "" "Determines whether to snap to this grid or not. Can be 'on' for invisible " "grids." @@ -4627,11 +4628,11 @@ msgstr "" "Визначає чи будуть об'єкти прилипати до цієї Ñітки, чи ні. Може бути " "увімкнено Ð´Ð»Ñ Ð½ÐµÐ²Ð¸Ð´Ð¸Ð¼Ð¾Ñ— Ñітки." -#: ../src/display/canvas-grid.cpp:321 +#: ../src/display/canvas-grid.cpp:317 msgid "Snap to visible _grid lines only" msgstr "Прилипати лише до в_идимих ліній Ñітки" -#: ../src/display/canvas-grid.cpp:322 +#: ../src/display/canvas-grid.cpp:318 msgid "" "When zoomed out, not all grid lines will be displayed. Only the visible ones " "will be snapped to" @@ -4639,11 +4640,11 @@ msgstr "" "Під Ñ‡Ð°Ñ Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ð¼Ð°Ñштабу програма зменшуватиме кількіÑть показаних ліній " "Ñітки. ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð±ÑƒÐ²Ð°Ñ‚Ð¸Ð¼ÐµÑ‚ÑŒÑÑ Ð»Ð¸ÑˆÐµ до видимих ліній." -#: ../src/display/canvas-grid.cpp:326 +#: ../src/display/canvas-grid.cpp:322 msgid "_Visible" msgstr "_ВидиміÑть" -#: ../src/display/canvas-grid.cpp:327 +#: ../src/display/canvas-grid.cpp:323 msgid "" "Determines whether the grid is displayed or not. Objects are still snapped " "to invisible grids." @@ -4651,25 +4652,25 @@ msgstr "" "Визначає чи буде показано Ñітку, чи ні. Об'єкти, Ñк Ñ– раніше, буде " "прив'Ñзано до невидимої Ñітки." -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:705 msgid "Spacing _X:" msgstr "Інтервал за _X:" -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:705 #: ../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:708 #: ../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:740 msgid "_Show dots instead of lines" msgstr "_Показувати точки заміÑть ліній" -#: ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-grid.cpp:741 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "Якщо вÑтановлено, заміÑть напрÑмних відображаютьÑÑ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ñітки" @@ -4819,11 +4820,11 @@ msgstr "Ð¡ÐµÑ€ÐµÐ´Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ° рамки-обгортки" msgid "Bounding box side midpoint" msgstr "Бокова ÑÐµÑ€ÐµÐ´Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ° рамки-обгортки" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1506 msgid "Smooth node" msgstr "Гладкий вузол" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1505 msgid "Cusp node" msgstr "ГоÑтрий вузол" @@ -4893,7 +4894,7 @@ msgstr "Документ у пам'Ñті %d" msgid "Memory document %1" msgstr "Документ у пам'Ñті %1" -#: ../src/document.cpp:855 +#: ../src/document.cpp:886 #, c-format msgid "Unnamed document %d" msgstr "Документ без назви %d" @@ -4903,11 +4904,11 @@ msgid "[Unchanged]" msgstr "(Ðе змінено)" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2465 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2434 msgid "_Undo" msgstr "Ð’_ернути" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2467 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2436 msgid "_Redo" msgstr "Повт_орити" @@ -4935,7 +4936,7 @@ msgstr " опиÑ: " msgid " (No preferences)" msgstr " (Ðемає уподобань)" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2239 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2208 msgid "Extensions" msgstr "Додатки" @@ -4961,14 +4962,14 @@ msgstr "" msgid "Show dialog on startup" msgstr "Показувати діалогове вікно при запуÑку" -#: ../src/extension/execution-env.cpp:144 +#: ../src/extension/execution-env.cpp:138 #, c-format msgid "'%s' working, please wait..." msgstr "ЗаÑтоÑовуєтьÑÑ ÐµÑ„ÐµÐºÑ‚ '%s', зачекайте…" #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:271 +#: ../src/extension/extension.cpp:267 msgid "" " This is caused by an improper .inx file for this extension. An improper ." "inx file could have been caused by a faulty installation of Inkscape." @@ -4976,70 +4977,70 @@ msgstr "" " Це викликано неправильним файлом .inx Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ додатку. Причиною поÑви " "неправильного файла .inx може бути некоректне вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Inkscape." -#: ../src/extension/extension.cpp:281 +#: ../src/extension/extension.cpp:277 msgid "the extension is designed for Windows only." msgstr "Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ€Ð¾Ð±Ð»ÐµÐ½Ð¾ лише Ð´Ð»Ñ Windows." -#: ../src/extension/extension.cpp:286 +#: ../src/extension/extension.cpp:282 msgid "an ID was not defined for it." msgstr "Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ не вказано ідентифікатор ID." -#: ../src/extension/extension.cpp:290 +#: ../src/extension/extension.cpp:286 msgid "there was no name defined for it." msgstr "Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ не вказано назви." -#: ../src/extension/extension.cpp:294 +#: ../src/extension/extension.cpp:290 msgid "the XML description of it got lost." msgstr "втрачено його XML опиÑ." -#: ../src/extension/extension.cpp:298 +#: ../src/extension/extension.cpp:294 msgid "no implementation was defined for the extension." msgstr "Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÑƒ не вказано реалізацію." #. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:305 +#: ../src/extension/extension.cpp:301 msgid "a dependency was not met." msgstr "залежніÑть не було задоволено." -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "Extension \"" msgstr "Помилка у додатку «" -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "\" failed to load because " msgstr "». Причина: " -#: ../src/extension/extension.cpp:674 +#: ../src/extension/extension.cpp:670 #, c-format msgid "Could not create extension error log file '%s'" msgstr "Ðе вдаєтьÑÑ Ñтворити файл журналу помилок додатків «%s»" -#: ../src/extension/extension.cpp:782 +#: ../src/extension/extension.cpp:778 #: ../share/extensions/webslicer_create_rect.inx.h:2 msgid "Name:" msgstr "Ðазва:" -#: ../src/extension/extension.cpp:783 +#: ../src/extension/extension.cpp:779 msgid "ID:" msgstr "Ідентифікатор:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "State:" msgstr "Стан:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Loaded" msgstr "Завантажено" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Unloaded" msgstr "Розвантажено" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Deactivated" msgstr "Вимкнено" -#: ../src/extension/extension.cpp:824 +#: ../src/extension/extension.cpp:820 msgid "" "Currently there is no help available for this Extension. Please look on the " "Inkscape website or ask on the mailing lists if you have questions regarding " @@ -5049,7 +5050,7 @@ msgstr "" "відвідайте Ñайт Inkscape або запитайте у ÑпиÑках лиÑтуваннÑ, Ñкщо у Ð²Ð°Ñ " "виникли питаннÑ, що ÑтоÑуютьÑÑ Ñ†ÑŒÐ¾Ð³Ð¾ додатка." -#: ../src/extension/implementation/script.cpp:1057 +#: ../src/extension/implementation/script.cpp:1063 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 " @@ -5082,10 +5083,11 @@ 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/extension/internal/bluredge.cpp:136 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 #: ../src/ui/dialog/object-attributes.cpp:68 #: ../src/ui/dialog/object-attributes.cpp:77 +#: ../src/ui/widget/page-sizer.cpp:249 #: ../src/widgets/calligraphy-toolbar.cpp:430 #: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 #: ../src/widgets/tweak-toolbar.cpp:128 @@ -5098,7 +5100,7 @@ msgstr "Ширина:" #: ../src/extension/internal/bitmap/sample.cpp:42 #: ../src/ui/dialog/object-attributes.cpp:69 #: ../src/ui/dialog/object-attributes.cpp:78 -#: ../share/extensions/foldablebox.inx.h:3 +#: ../src/ui/widget/page-sizer.cpp:250 ../share/extensions/foldablebox.inx.h:3 msgid "Height:" msgstr "ВиÑота:" @@ -5155,13 +5157,13 @@ 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/color.h:501 +#: ../src/extension/internal/filter/color.h:1572 +#: ../src/extension/internal/filter/color.h:1660 #: ../src/extension/internal/filter/distort.h:69 #: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 #: ../src/ui/dialog/object-attributes.cpp:49 #: ../share/extensions/jessyInk_effects.inx.h:5 #: ../share/extensions/jessyInk_export.inx.h:3 @@ -5213,7 +5215,7 @@ msgstr "РозмиттÑ" #: ../src/extension/internal/bitmap/oilPaint.cpp:39 #: ../src/extension/internal/bitmap/sharpen.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:43 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2910 msgid "Radius:" msgstr "РадіуÑ:" @@ -5296,7 +5298,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 "Зробити кольоровим" @@ -5307,7 +5309,7 @@ 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 "КонтраÑÑ‚" @@ -5428,7 +5430,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 @@ -5463,7 +5465,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 "Канал:" @@ -5549,7 +5551,7 @@ msgid "Opacity" msgstr "ÐепрозоріÑть" #: ../src/extension/internal/bitmap/opacity.cpp:40 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 #: ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "ÐепрозоріÑть:" @@ -5627,8 +5629,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 "СонÑчне Ñвітло" @@ -5667,7 +5669,7 @@ msgstr "ПоÑтеризаціÑ" #: ../src/extension/internal/bitmap/threshold.cpp:40 #: ../src/extension/internal/bitmap/unsharpmask.cpp:46 -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Threshold:" msgstr "Поріг:" @@ -5700,23 +5702,23 @@ msgstr "Довжина хвилі:" msgid "Alter selected bitmap(s) along sine wave" msgstr "Змінити вибрані раÑтрові Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð° хвилею ÑинуÑоїди" -#: ../src/extension/internal/bluredge.cpp:136 +#: ../src/extension/internal/bluredge.cpp:134 msgid "Inset/Outset Halo" msgstr "Ð’Ñ‚ÑгуваннÑ/РозтÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ñ€ÐµÐ¾Ð»Ð°" -#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/extension/internal/bluredge.cpp:136 msgid "Width in px of the halo" msgstr "Ширина ореолу у точках" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of steps:" msgstr "КількіÑть кроків:" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of inset/outset copies of the object to make" msgstr "КількіÑть копій втÑгуваннÑ/розтÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єкта" -#: ../src/extension/internal/bluredge.cpp:143 +#: ../src/extension/internal/bluredge.cpp:141 #: ../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 @@ -5920,80 +5922,80 @@ msgstr "Файли обміну презентаціÑми Corel DRAW (*.cmx)" msgid "Open presentation exchange files saved in Corel DRAW" msgstr "Відкрити файли обміну презентаціÑми, збережені за допомогою Corel DRAW" -#: ../src/extension/internal/emf-inout.cpp:3562 +#: ../src/extension/internal/emf-inout.cpp:3584 msgid "EMF Input" msgstr "Імпорт EMF" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3589 msgid "Enhanced Metafiles (*.emf)" msgstr "Розширений метафайл (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3568 +#: ../src/extension/internal/emf-inout.cpp:3590 msgid "Enhanced Metafiles" msgstr "Розширені метафайли" -#: ../src/extension/internal/emf-inout.cpp:3576 +#: ../src/extension/internal/emf-inout.cpp:3598 msgid "EMF Output" msgstr "ЕкÑпорт до EMF" -#: ../src/extension/internal/emf-inout.cpp:3578 -#: ../src/extension/internal/wmf-inout.cpp:3152 +#: ../src/extension/internal/emf-inout.cpp:3600 +#: ../src/extension/internal/wmf-inout.cpp:3174 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:3601 +#: ../src/extension/internal/wmf-inout.cpp:3175 msgid "Map Unicode to Symbol font" msgstr "Пов’Ñзати Unicode зі шрифтом Symbol" -#: ../src/extension/internal/emf-inout.cpp:3580 -#: ../src/extension/internal/wmf-inout.cpp:3154 +#: ../src/extension/internal/emf-inout.cpp:3602 +#: ../src/extension/internal/wmf-inout.cpp:3176 msgid "Map Unicode to Wingdings" msgstr "Пов’Ñзати Unicode з Wingdings" -#: ../src/extension/internal/emf-inout.cpp:3581 -#: ../src/extension/internal/wmf-inout.cpp:3155 +#: ../src/extension/internal/emf-inout.cpp:3603 +#: ../src/extension/internal/wmf-inout.cpp:3177 msgid "Map Unicode to Zapf Dingbats" msgstr "Пов’Ñзати Unicode з Zapf Dingbats" -#: ../src/extension/internal/emf-inout.cpp:3582 -#: ../src/extension/internal/wmf-inout.cpp:3156 +#: ../src/extension/internal/emf-inout.cpp:3604 +#: ../src/extension/internal/wmf-inout.cpp:3178 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "" "ВикориÑтовувати Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð¸Ñ… Ñимволів MS Unicode PUA (0xF020-0xF0FF)" -#: ../src/extension/internal/emf-inout.cpp:3583 -#: ../src/extension/internal/wmf-inout.cpp:3157 +#: ../src/extension/internal/emf-inout.cpp:3605 +#: ../src/extension/internal/wmf-inout.cpp:3179 msgid "Compensate for PPT font bug" msgstr "КомпенÑувати ваду щодо шрифтів у PPT" -#: ../src/extension/internal/emf-inout.cpp:3584 -#: ../src/extension/internal/wmf-inout.cpp:3158 +#: ../src/extension/internal/emf-inout.cpp:3606 +#: ../src/extension/internal/wmf-inout.cpp:3180 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:3607 +#: ../src/extension/internal/wmf-inout.cpp:3181 msgid "Convert gradients to colored polygon series" msgstr "Перетворити градієнти на поÑлідовніÑть кольорових багатокутників" -#: ../src/extension/internal/emf-inout.cpp:3586 +#: ../src/extension/internal/emf-inout.cpp:3608 msgid "Use native rectangular linear gradients" msgstr "ВикориÑтовувати природні прÑмокутні лінійні градієнти" -#: ../src/extension/internal/emf-inout.cpp:3587 +#: ../src/extension/internal/emf-inout.cpp:3609 msgid "Map all fill patterns to standard EMF hatches" msgstr "Пов’Ñзати уÑÑ– Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ°Ð¼Ð¸ зі Ñтандартними шаблонами EMF" -#: ../src/extension/internal/emf-inout.cpp:3588 +#: ../src/extension/internal/emf-inout.cpp:3610 msgid "Ignore image rotations" msgstr "Ігнорувати Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ" -#: ../src/extension/internal/emf-inout.cpp:3592 +#: ../src/extension/internal/emf-inout.cpp:3614 msgid "Enhanced Metafile (*.emf)" msgstr "Розширений метафайл (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3593 +#: ../src/extension/internal/emf-inout.cpp:3615 msgid "Enhanced Metafile" msgstr "Розширений метафайл" @@ -6037,27 +6039,28 @@ 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 -#: ../src/extension/internal/filter/filter.cpp:214 +#: ../src/extension/internal/filter/filter.cpp:212 #: ../src/extension/internal/filter/image.h:61 #: ../src/extension/internal/filter/morphology.h:75 #: ../src/extension/internal/filter/morphology.h:202 @@ -6094,7 +6097,7 @@ 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 +#: ../src/extension/internal/filter/color.h:75 msgid "Brightness" msgstr "ЯÑкравіÑть" @@ -6166,11 +6169,11 @@ msgstr "ÐакладеннÑ:" #: ../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 @@ -6182,12 +6185,12 @@ msgstr "Темніше" #: ../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 @@ -6199,13 +6202,13 @@ msgstr "Ширма" #: ../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 @@ -6217,10 +6220,10 @@ msgstr "МноженнÑ" #: ../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 @@ -6265,8 +6268,8 @@ 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/extension/internal/filter/color.h:1280 +#: ../src/extension/internal/filter/color.h:1392 #: ../src/ui/dialog/document-properties.cpp:122 msgid "Background color" msgstr "Колір тла" @@ -6280,13 +6283,13 @@ msgstr "Тип змішуваннÑ:" #: ../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 @@ -6324,11 +6327,11 @@ 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/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:183 +#: ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 #: ../src/widgets/sp-color-icc-selector.cpp:330 #: ../src/widgets/sp-color-scales.cpp:415 #: ../src/widgets/sp-color-scales.cpp:416 @@ -6337,11 +6340,11 @@ 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/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:184 +#: ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 #: ../src/widgets/sp-color-icc-selector.cpp:331 #: ../src/widgets/sp-color-scales.cpp:418 #: ../src/widgets/sp-color-scales.cpp:419 @@ -6350,11 +6353,11 @@ 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/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:185 +#: ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 #: ../src/widgets/sp-color-icc-selector.cpp:332 #: ../src/widgets/sp-color-scales.cpp:421 #: ../src/widgets/sp-color-scales.cpp:422 @@ -6380,20 +6383,20 @@ 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:334 +#: ../src/ui/widget/page-sizer.cpp:250 ../src/widgets/rect-toolbar.cpp:334 #: ../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/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:188 +#: ../src/ui/tools/flood-tool.cpp:96 #: ../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 @@ -6433,13 +6436,13 @@ msgstr "Параметри віддаленого джерела" #: ../src/extension/internal/filter/bumps.h:110 #: ../src/extension/internal/filter/bumps.h:332 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Azimuth" msgstr "Ðзимут" #: ../src/extension/internal/filter/bumps.h:111 #: ../src/extension/internal/filter/bumps.h:333 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Elevation" msgstr "ВиÑота" @@ -6521,7 +6524,7 @@ msgid "Background opacity" msgstr "ÐепрозоріÑть тла" #: ../src/extension/internal/filter/bumps.h:327 -#: ../src/extension/internal/filter/color.h:1040 +#: ../src/extension/internal/filter/color.h:1115 msgid "Lighting" msgstr "ПідÑвічуваннÑ" @@ -6562,17 +6565,17 @@ msgstr "Вхід" msgid "Turns an image to jelly" msgstr "Перетворює Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° желе" -#: ../src/extension/internal/filter/color.h:72 +#: ../src/extension/internal/filter/color.h:73 msgid "Brilliance" msgstr "БлиÑкучіÑть" -#: ../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 "ПеренаÑиченіÑть" -#: ../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 @@ -6581,19 +6584,19 @@ msgstr "ПеренаÑиченіÑть" msgid "Inverted" msgstr "ІнвертуваннÑ" -#: ../src/extension/internal/filter/color.h:85 +#: ../src/extension/internal/filter/color.h:86 msgid "Brightness filter" msgstr "Фільтр ÑÑкравоÑті" -#: ../src/extension/internal/filter/color.h:152 +#: ../src/extension/internal/filter/color.h:153 msgid "Channel Painting" msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð° каналами" -#: ../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:187 +#: ../src/ui/tools/flood-tool.cpp:95 #: ../src/widgets/sp-color-icc-selector.cpp:337 #: ../src/widgets/sp-color-icc-selector.cpp:342 #: ../src/widgets/sp-color-scales.cpp:444 @@ -6602,133 +6605,177 @@ msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð·Ð° каналами" msgid "Saturation" msgstr "ÐаÑиченіÑть" -#: ../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:189 +#: ../src/filter-enums.cpp:131 ../src/ui/tools/flood-tool.cpp:97 msgid "Alpha" msgstr "Ðльфа-канал" -#: ../src/extension/internal/filter/color.h:174 +#: ../src/extension/internal/filter/color.h:175 msgid "Replace RGB by any color" msgstr "Замінити колір RGB на довільний колір" #: ../src/extension/internal/filter/color.h:254 +msgid "Color Blindness" +msgstr "Дальтонізм" + +#: ../src/extension/internal/filter/color.h:258 +msgid "Blindness type:" +msgstr "Тип дальтонізму:" + +#: ../src/extension/internal/filter/color.h:259 +msgid "Rod monochromacy (atypical achromatopsia)" +msgstr "ÐœÐ¾Ð½Ð¾Ñ…Ñ€Ð¾Ð¼Ð°Ð·Ñ–Ñ Ð¿Ð°Ð»Ð¸Ñ‡Ð¾Ðº (нетипова ахроматопÑÑ–Ñ)" + +#: ../src/extension/internal/filter/color.h:260 +msgid "Cone monochromacy (typical achromatopsia)" +msgstr "ÐœÐ¾Ð½Ð¾Ñ…Ñ€Ð¾Ð¼Ð°Ð·Ñ–Ñ ÐºÐ¾Ð»Ð±Ð¾Ñ‡Ð¾Ðº (типова ахроматопÑÑ–Ñ)" + +#: ../src/extension/internal/filter/color.h:261 +msgid "Green weak (deuteranomaly)" +msgstr "Слабке Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ð·ÐµÐ»ÐµÐ½Ð¾Ð³Ð¾ (дейтераномаліÑ)" + +#: ../src/extension/internal/filter/color.h:262 +msgid "Green blind (deuteranopia)" +msgstr "Сліпота до зеленого (дейтеранопіÑ)" + +#: ../src/extension/internal/filter/color.h:263 +msgid "Red weak (protanomaly)" +msgstr "Слабке Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ñ‡ÐµÑ€Ð²Ð¾Ð½Ð¾Ð³Ð¾ (протаномаліÑ)" + +#: ../src/extension/internal/filter/color.h:264 +msgid "Red blind (protanopia)" +msgstr "Сліпота до червоного (протанопіÑ)" + +#: ../src/extension/internal/filter/color.h:265 +msgid "Blue weak (tritanomaly)" +msgstr "Слабке Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð½ÐµÐ½Ð½Ñ Ñинього (трітаномаліÑ)" + +#: ../src/extension/internal/filter/color.h:266 +msgid "Blue blind (tritanopia)" +msgstr "Сліпота до Ñинього (трітанопіÑ)" + +#: ../src/extension/internal/filter/color.h:286 +msgid "Simulate color blindness" +msgstr "Імітувати кольорову Ñліпоту" + +#: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" msgstr "ЗÑув кольорів" -#: ../src/extension/internal/filter/color.h:256 +#: ../src/extension/internal/filter/color.h:331 msgid "Shift (°)" msgstr "ЗÑув (у °)" -#: ../src/extension/internal/filter/color.h:265 +#: ../src/extension/internal/filter/color.h:340 msgid "Rotate and desaturate hue" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ñ– зненаÑÐ¸Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñ‚Ñ–Ð½ÐºÑ–Ð²" -#: ../src/extension/internal/filter/color.h:321 +#: ../src/extension/internal/filter/color.h:396 msgid "Harsh light" msgstr "ЯÑкраве оÑвітленнÑ" -#: ../src/extension/internal/filter/color.h:322 +#: ../src/extension/internal/filter/color.h:397 msgid "Normal light" msgstr "Звичайне оÑвітленнÑ" -#: ../src/extension/internal/filter/color.h:323 +#: ../src/extension/internal/filter/color.h:398 msgid "Duotone" msgstr "Два тони" -#: ../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 "ÐÐ°ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ 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 "ÐÐ°ÐºÐ»Ð°Ð´ÐµÐ½Ð½Ñ 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 "ТотожніÑть" -#: ../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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1051 msgid "Table" msgstr "Табличний" -#: ../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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1054 msgid "Discrete" msgstr "ДиÑкретний" -#: ../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 "Лінійна" -#: ../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 "Гама" -#: ../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 "Два кольори" -#: ../src/extension/internal/filter/color.h:513 +#: ../src/extension/internal/filter/color.h:588 msgid "Fluorescence level" msgstr "Рівень ÑвіченнÑ" -#: ../src/extension/internal/filter/color.h:514 +#: ../src/extension/internal/filter/color.h:589 msgid "Swap:" msgstr "Обмін:" -#: ../src/extension/internal/filter/color.h:515 +#: ../src/extension/internal/filter/color.h:590 msgid "No swap" msgstr "Без обміну" -#: ../src/extension/internal/filter/color.h:516 +#: ../src/extension/internal/filter/color.h:591 msgid "Color and alpha" msgstr "Колір Ñ– α-канал" -#: ../src/extension/internal/filter/color.h:517 +#: ../src/extension/internal/filter/color.h:592 msgid "Color only" msgstr "Лише колір" -#: ../src/extension/internal/filter/color.h:518 +#: ../src/extension/internal/filter/color.h:593 msgid "Alpha only" msgstr "Лише α-канал" -#: ../src/extension/internal/filter/color.h:522 +#: ../src/extension/internal/filter/color.h:597 msgid "Color 1" msgstr "Колір 1" -#: ../src/extension/internal/filter/color.h:525 +#: ../src/extension/internal/filter/color.h:600 msgid "Color 2" msgstr "Колір 2" -#: ../src/extension/internal/filter/color.h:535 +#: ../src/extension/internal/filter/color.h:610 msgid "Convert luminance values to a duochrome palette" msgstr "Перетворити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾ÑвітленоÑті на кольори двотонової палітри" -#: ../src/extension/internal/filter/color.h:634 +#: ../src/extension/internal/filter/color.h:709 msgid "Extract Channel" msgstr "Ð’Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ" -#: ../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 @@ -6736,7 +6783,7 @@ msgstr "Ð’Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ" msgid "Cyan" msgstr "Блакитний" -#: ../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 @@ -6744,7 +6791,7 @@ msgstr "Блакитний" msgid "Magenta" msgstr "Бузковий" -#: ../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 @@ -6752,27 +6799,27 @@ msgstr "Бузковий" msgid "Yellow" msgstr "Жовтий" -#: ../src/extension/internal/filter/color.h:644 +#: ../src/extension/internal/filter/color.h:719 msgid "Background blend mode:" msgstr "Режим об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· тлом:" -#: ../src/extension/internal/filter/color.h:649 +#: ../src/extension/internal/filter/color.h:724 msgid "Channel to alpha" msgstr "Перетворити канал на прозорий" -#: ../src/extension/internal/filter/color.h:657 +#: ../src/extension/internal/filter/color.h:732 msgid "Extract color channel as a transparent image" msgstr "Видобути канал кольору Ñк прозоре зображеннÑ" -#: ../src/extension/internal/filter/color.h:740 +#: ../src/extension/internal/filter/color.h:815 msgid "Fade to Black or White" msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° чорний або білий" -#: ../src/extension/internal/filter/color.h:743 +#: ../src/extension/internal/filter/color.h:818 msgid "Fade to:" msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°:" -#: ../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 @@ -6780,240 +6827,241 @@ msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°:" msgid "Black" msgstr "Чорний" -#: ../src/extension/internal/filter/color.h:745 +#: ../src/extension/internal/filter/color.h:820 #: ../src/ui/widget/selected-style.cpp:270 msgid "White" msgstr "Білий" -#: ../src/extension/internal/filter/color.h:754 +#: ../src/extension/internal/filter/color.h:829 msgid "Fade to black or white" msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° чорний або білий" -#: ../src/extension/internal/filter/color.h:819 +#: ../src/extension/internal/filter/color.h:894 msgid "Greyscale" msgstr "Градації Ñірого" -#: ../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 "ПрозоріÑть" -#: ../src/extension/internal/filter/color.h:833 +#: ../src/extension/internal/filter/color.h:908 msgid "Customize greyscale components" msgstr "Ðалаштувати компоненти відтінків Ñірого" -#: ../src/extension/internal/filter/color.h:905 +#: ../src/extension/internal/filter/color.h:980 #: ../src/ui/widget/selected-style.cpp:266 msgid "Invert" msgstr "Інвертувати" -#: ../src/extension/internal/filter/color.h:907 +#: ../src/extension/internal/filter/color.h:982 msgid "Invert channels:" msgstr "Ð†Ð½Ð²ÐµÑ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñ–Ð²:" -#: ../src/extension/internal/filter/color.h:908 +#: ../src/extension/internal/filter/color.h:983 msgid "No inversion" msgstr "Без інверÑÑ–Ñ—" -#: ../src/extension/internal/filter/color.h:909 +#: ../src/extension/internal/filter/color.h:984 msgid "Red and blue" msgstr "Червоний Ñ– Ñиній" -#: ../src/extension/internal/filter/color.h:910 +#: ../src/extension/internal/filter/color.h:985 msgid "Red and green" msgstr "Червоний Ñ– зелений" -#: ../src/extension/internal/filter/color.h:911 +#: ../src/extension/internal/filter/color.h:986 msgid "Green and blue" msgstr "Зелений Ñ– Ñиній" -#: ../src/extension/internal/filter/color.h:913 +#: ../src/extension/internal/filter/color.h:988 msgid "Light transparency" msgstr "ПрозоріÑть Ñвітлого" -#: ../src/extension/internal/filter/color.h:914 +#: ../src/extension/internal/filter/color.h:989 msgid "Invert hue" msgstr "ІнверÑÑ–Ñ Ð²Ñ–Ð´Ñ‚Ñ–Ð½ÐºÑƒ" -#: ../src/extension/internal/filter/color.h:915 +#: ../src/extension/internal/filter/color.h:990 msgid "Invert lightness" msgstr "Інвертувати оÑвітленіÑть" -#: ../src/extension/internal/filter/color.h:916 +#: ../src/extension/internal/filter/color.h:991 msgid "Invert transparency" msgstr "Інвертувати прозоріÑть" -#: ../src/extension/internal/filter/color.h:924 +#: ../src/extension/internal/filter/color.h:999 msgid "Manage hue, lightness and transparency inversions" msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð½Ð²ÐµÑ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñм за відтінком, оÑвітленіÑтю та прозоріÑтю" -#: ../src/extension/internal/filter/color.h:1042 +#: ../src/extension/internal/filter/color.h:1117 msgid "Lights" msgstr "ОÑвітленнÑ" -#: ../src/extension/internal/filter/color.h:1043 +#: ../src/extension/internal/filter/color.h:1118 msgid "Shadows" msgstr "Тіні" -#: ../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:1159 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1048 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset" msgstr "ЗміщеннÑ" -#: ../src/extension/internal/filter/color.h:1052 +#: ../src/extension/internal/filter/color.h:1127 msgid "Modify lights and shadows separately" msgstr "Змінювати оÑÐ²Ñ–Ñ‚Ð»ÐµÐ½Ð½Ñ Ñ– тіні окремо" -#: ../src/extension/internal/filter/color.h:1111 +#: ../src/extension/internal/filter/color.h:1186 msgid "Lightness-Contrast" msgstr "ЯÑкравіÑть-КонтраÑтніÑть" -#: ../src/extension/internal/filter/color.h:1122 +#: ../src/extension/internal/filter/color.h:1197 msgid "Modify lightness and contrast separately" msgstr "Змінювати оÑÐ²Ñ–Ñ‚Ð»ÐµÐ½Ð½Ñ Ñ– контраÑтніÑть окремо" -#: ../src/extension/internal/filter/color.h:1190 +#: ../src/extension/internal/filter/color.h:1265 msgid "Nudge RGB" msgstr "Поштовх 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 +#: ../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 +#: ../src/ui/widget/page-sizer.cpp:247 msgid "X" msgstr "X" -#: ../src/extension/internal/filter/color.h:1196 -#: ../src/extension/internal/filter/color.h:1199 -#: ../src/extension/internal/filter/color.h:1202 -#: ../src/extension/internal/filter/color.h:1308 -#: ../src/extension/internal/filter/color.h:1311 -#: ../src/extension/internal/filter/color.h:1314 -#: ../src/ui/dialog/input.cpp:1616 +#: ../src/extension/internal/filter/color.h:1271 +#: ../src/extension/internal/filter/color.h:1274 +#: ../src/extension/internal/filter/color.h:1277 +#: ../src/extension/internal/filter/color.h:1383 +#: ../src/extension/internal/filter/color.h:1386 +#: ../src/extension/internal/filter/color.h:1389 +#: ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/page-sizer.cpp:248 msgid "Y" msgstr "Y" -#: ../src/extension/internal/filter/color.h:1197 +#: ../src/extension/internal/filter/color.h:1272 msgid "Green offset" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·ÐµÐ»ÐµÐ½Ð¾Ð³Ð¾" -#: ../src/extension/internal/filter/color.h:1200 +#: ../src/extension/internal/filter/color.h:1275 msgid "Blue offset" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñинього" -#: ../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 "ПереÑунути окремо вÑÑ– канали RGB Ñ– змішати Ñ—Ñ… з різними типами тла" -#: ../src/extension/internal/filter/color.h:1302 +#: ../src/extension/internal/filter/color.h:1377 msgid "Nudge CMY" msgstr "Поштовх CMY" -#: ../src/extension/internal/filter/color.h:1306 +#: ../src/extension/internal/filter/color.h:1381 msgid "Cyan offset" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð±Ð»Ð°ÐºÐ¸Ñ‚Ð½Ð¾Ð³Ð¾" -#: ../src/extension/internal/filter/color.h:1309 +#: ../src/extension/internal/filter/color.h:1384 msgid "Magenta offset" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð±ÑƒÐ·ÐºÐ¾Ð²Ð¾Ð³Ð¾" -#: ../src/extension/internal/filter/color.h:1312 +#: ../src/extension/internal/filter/color.h:1387 msgid "Yellow offset" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¶Ð¾Ð²Ñ‚Ð¾Ð³Ð¾" -#: ../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 "ПереÑунути окремо вÑÑ– канали CMY Ñ– змішати Ñ—Ñ… з різними типами тла" -#: ../src/extension/internal/filter/color.h:1408 +#: ../src/extension/internal/filter/color.h:1483 msgid "Quadritone fantasy" msgstr "Ð¤Ð°Ð½Ñ‚Ð°Ð·Ñ–Ñ Ð· чотирьох тонів" -#: ../src/extension/internal/filter/color.h:1410 +#: ../src/extension/internal/filter/color.h:1485 msgid "Hue distribution (°)" msgstr "Розподіл відтінку (у °)" -#: ../src/extension/internal/filter/color.h:1411 +#: ../src/extension/internal/filter/color.h:1486 #: ../share/extensions/svgcalendar.inx.h:19 msgid "Colors" msgstr "Кольори" -#: ../src/extension/internal/filter/color.h:1432 +#: ../src/extension/internal/filter/color.h:1507 msgid "Replace hue by two colors" msgstr "Замінити відтінок на два кольори" -#: ../src/extension/internal/filter/color.h:1496 +#: ../src/extension/internal/filter/color.h:1571 msgid "Hue rotation (°)" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ñ‚Ñ–Ð½ÐºÑƒ (у °)" -#: ../src/extension/internal/filter/color.h:1499 +#: ../src/extension/internal/filter/color.h:1574 msgid "Moonarize" msgstr "МіÑÑцезаціÑ" -#: ../src/extension/internal/filter/color.h:1508 +#: ../src/extension/internal/filter/color.h:1583 msgid "Classic photographic solarization effect" msgstr "КлаÑичний фотографічний ефект вигораннÑ" -#: ../src/extension/internal/filter/color.h:1581 +#: ../src/extension/internal/filter/color.h:1656 msgid "Tritone" msgstr "Тритон" -#: ../src/extension/internal/filter/color.h:1587 +#: ../src/extension/internal/filter/color.h:1662 msgid "Enhance hue" msgstr "ПоÑÐ¸Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñ‚Ñ–Ð½ÐºÑƒ" -#: ../src/extension/internal/filter/color.h:1588 +#: ../src/extension/internal/filter/color.h:1663 msgid "Phosphorescence" msgstr "ФоÑфореÑценціÑ" -#: ../src/extension/internal/filter/color.h:1589 +#: ../src/extension/internal/filter/color.h:1664 msgid "Colored nights" msgstr "Кольорові ночі" -#: ../src/extension/internal/filter/color.h:1590 +#: ../src/extension/internal/filter/color.h:1665 msgid "Hue to background" msgstr "Відтінок у тло" -#: ../src/extension/internal/filter/color.h:1592 +#: ../src/extension/internal/filter/color.h:1667 msgid "Global blend:" msgstr "Загальне змішуваннÑ:" -#: ../src/extension/internal/filter/color.h:1598 +#: ../src/extension/internal/filter/color.h:1673 msgid "Glow" msgstr "Ðімб" -#: ../src/extension/internal/filter/color.h:1599 +#: ../src/extension/internal/filter/color.h:1674 msgid "Glow blend:" msgstr "Ð—Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ñ–Ð¼Ð±Ð°:" -#: ../src/extension/internal/filter/color.h:1604 +#: ../src/extension/internal/filter/color.h:1679 msgid "Local light" msgstr "Локальне оÑвітленнÑ" -#: ../src/extension/internal/filter/color.h:1605 +#: ../src/extension/internal/filter/color.h:1680 msgid "Global light" msgstr "Загальне оÑвітленнÑ" -#: ../src/extension/internal/filter/color.h:1608 +#: ../src/extension/internal/filter/color.h:1683 msgid "Hue distribution (°):" msgstr "Розподіл відтінку (у °):" -#: ../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" @@ -7188,8 +7236,8 @@ 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:317 ../src/widgets/spray-toolbar.cpp:116 -#: ../src/widgets/tweak-toolbar.cpp:128 +#: ../src/ui/widget/page-sizer.cpp:249 ../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" msgstr "Ширина" @@ -7235,7 +7283,7 @@ msgstr "Виключне ÐБО (XOR)" #: ../src/extension/internal/filter/morphology.h:179 #: ../src/ui/dialog/layer-properties.cpp:185 -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:55 msgid "Position:" msgstr "РозміщеннÑ:" @@ -7425,8 +7473,8 @@ msgstr "" "горизонтальних ліній" #: ../src/extension/internal/filter/paint.h:331 -#: ../src/ui/dialog/align-and-distribute.cpp:1003 -#: ../src/widgets/desktop-widget.cpp:1996 +#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/widgets/desktop-widget.cpp:1998 msgid "Drawing" msgstr "Малюнок" @@ -7435,7 +7483,7 @@ msgstr "Малюнок" #: ../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 +#: ../src/live_effects/effect.cpp:151 ../src/splivarot.cpp:2201 msgid "Simplify" msgstr "СпроÑтити" @@ -7717,7 +7765,7 @@ msgid "Background" msgstr "Тло" #: ../src/extension/internal/filter/transparency.h:59 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2839 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 #: ../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 @@ -7877,31 +7925,31 @@ msgstr "Градієнт GIMP (*.ggr)" msgid "Gradients used in GIMP" msgstr "Градієнти, що викориÑтовуютьÑÑ Ñƒ GIMP" -#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:118 +#: ../src/extension/internal/grid.cpp:205 ../src/ui/widget/panel.cpp:114 msgid "Grid" msgstr "Сітка" -#: ../src/extension/internal/grid.cpp:214 +#: ../src/extension/internal/grid.cpp:207 msgid "Line Width:" msgstr "Товщина ліній:" -#: ../src/extension/internal/grid.cpp:215 +#: ../src/extension/internal/grid.cpp:208 msgid "Horizontal Spacing:" msgstr "Горизонтальний інтервал:" -#: ../src/extension/internal/grid.cpp:216 +#: ../src/extension/internal/grid.cpp:209 msgid "Vertical Spacing:" msgstr "Вертикальний інтервал:" -#: ../src/extension/internal/grid.cpp:217 +#: ../src/extension/internal/grid.cpp:210 msgid "Horizontal Offset:" msgstr "Горизонтальний зÑув:" -#: ../src/extension/internal/grid.cpp:218 +#: ../src/extension/internal/grid.cpp:211 msgid "Vertical Offset:" msgstr "Вертикальний зÑув:" -#: ../src/extension/internal/grid.cpp:222 +#: ../src/extension/internal/grid.cpp:215 #: ../src/ui/dialog/inkscape-preferences.cpp:1477 #: ../share/extensions/draw_from_triangle.inx.h:58 #: ../share/extensions/eqtexsvg.inx.h:4 @@ -7932,14 +7980,14 @@ msgstr "Вертикальний зÑув:" msgid "Render" msgstr "ВідтвореннÑ" -#: ../src/extension/internal/grid.cpp:223 +#: ../src/extension/internal/grid.cpp:216 #: ../src/ui/dialog/document-properties.cpp:162 #: ../src/ui/dialog/inkscape-preferences.cpp:787 -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1823 msgid "Grids" msgstr "Сітки" -#: ../src/extension/internal/grid.cpp:226 +#: ../src/extension/internal/grid.cpp:219 msgid "Draw a path which is a grid" msgstr "Ðамалювати контур у формі Ñітки" @@ -8228,33 +8276,33 @@ msgstr "Імпорт з VSDX" msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "Малюнок Microsoft Visio 2013 (*.vsdx)" -#: ../src/extension/internal/wmf-inout.cpp:3136 +#: ../src/extension/internal/wmf-inout.cpp:3158 msgid "WMF Input" msgstr "Імпорт WMF" -#: ../src/extension/internal/wmf-inout.cpp:3141 +#: ../src/extension/internal/wmf-inout.cpp:3163 msgid "Windows Metafiles (*.wmf)" msgstr "Метафайл Windows (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3142 +#: ../src/extension/internal/wmf-inout.cpp:3164 msgid "Windows Metafiles" msgstr "Метафайл Windows" -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/wmf-inout.cpp:3172 msgid "WMF Output" msgstr "ЕкÑпорт до WMF" -#: ../src/extension/internal/wmf-inout.cpp:3160 +#: ../src/extension/internal/wmf-inout.cpp:3182 msgid "Map all fill patterns to standard WMF hatches" msgstr "Пов’Ñзати уÑÑ– Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ°Ð¼Ð¸ зі Ñтандартними шаблонами WMF" -#: ../src/extension/internal/wmf-inout.cpp:3164 +#: ../src/extension/internal/wmf-inout.cpp:3186 #: ../share/extensions/wmf_input.inx.h:2 #: ../share/extensions/wmf_output.inx.h:2 msgid "Windows Metafile (*.wmf)" msgstr "Метафайл Windows (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3165 +#: ../src/extension/internal/wmf-inout.cpp:3187 msgid "Windows Metafile" msgstr "Метафайл Windows (WMF)" @@ -8290,7 +8338,7 @@ msgstr "типовий.svg" msgid "Broken links have been changed to point to existing files." msgstr "Помилкові поÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½ÐµÐ½Ð¾ так, щоб вони вказували на поточні файли." -#: ../src/file.cpp:339 ../src/file.cpp:1255 +#: ../src/file.cpp:339 ../src/file.cpp:1252 #, c-format msgid "Failed to load the requested file %s" msgstr "Ðе вдаєтьÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ потрібний файл %s" @@ -8365,7 +8413,7 @@ msgid "Document saved." msgstr "Документ збережено." #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:866 ../src/file.cpp:1414 +#: ../src/file.cpp:866 ../src/file.cpp:1411 msgid "drawing" msgstr "риÑунок" @@ -8389,20 +8437,20 @@ msgstr "Файл не було змінено. Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð½ÐµÐ¿Ð¾Ñ‚Ñ€ msgid "Saving document..." msgstr "Ð—Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°â€¦" -#: ../src/file.cpp:1252 ../src/ui/dialog/inkscape-preferences.cpp:1450 +#: ../src/file.cpp:1249 ../src/ui/dialog/inkscape-preferences.cpp:1450 #: ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "Імпорт" -#: ../src/file.cpp:1302 +#: ../src/file.cpp:1299 msgid "Select file to import" msgstr "Виберіть файл Ð´Ð»Ñ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚Ñƒ" -#: ../src/file.cpp:1435 +#: ../src/file.cpp:1432 msgid "Select file to export to" msgstr "Оберіть файл Ð´Ð»Ñ ÐµÐºÑпорту" -#: ../src/file.cpp:1688 +#: ../src/file.cpp:1685 msgid "Import Clip Art" msgstr "Ð†Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ°Ð±Ð»Ð¾Ð½Ñ–Ð²" @@ -8495,7 +8543,7 @@ msgstr "РізницÑ" msgid "Exclusion" msgstr "ВиключеннÑ" -#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:186 +#: ../src/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 #: ../src/widgets/sp-color-icc-selector.cpp:336 #: ../src/widgets/sp-color-icc-selector.cpp:340 #: ../src/widgets/sp-color-scales.cpp:441 @@ -8567,7 +8615,7 @@ msgstr "Світліше" msgid "Arithmetic" msgstr "Ðрифметичний" -#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:546 +#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 msgid "Duplicate" msgstr "Дублювати" @@ -8604,15 +8652,15 @@ msgstr "Точкове джерело" msgid "Spot Light" msgstr "Прожектор" -#: ../src/gradient-chemistry.cpp:1579 +#: ../src/gradient-chemistry.cpp:1580 msgid "Invert gradient colors" msgstr "Інвертувати кольори градієнта" -#: ../src/gradient-chemistry.cpp:1605 +#: ../src/gradient-chemistry.cpp:1607 msgid "Reverse gradient" msgstr "Обернути градієнт" -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:222 +#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "Вилучити зразок" @@ -8673,7 +8721,7 @@ msgstr "Об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²ÑƒÑів градієнта" msgid "Move gradient handle" msgstr "ПереміÑтити Ð²ÑƒÑ Ð³Ñ€Ð°Ð´Ñ–Ñ”Ð½Ñ‚Ð°" -#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 +#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:828 msgid "Delete gradient stop" msgstr "Вилучити опорну точку градієнта" @@ -8725,67 +8773,67 @@ msgstr[2] "" "Точка градієнта Ñпільна Ð´Ð»Ñ %d градієнтів; Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ " "перетÑгуйте з Shift" -#: ../src/gradient-drag.cpp:2378 +#: ../src/gradient-drag.cpp:2379 msgid "Move gradient handle(s)" msgstr "ПереміÑтити вуÑ(а) градієнта" -#: ../src/gradient-drag.cpp:2414 +#: ../src/gradient-drag.cpp:2415 msgid "Move gradient mid stop(s)" msgstr "ПереміÑтити опорні точки градієнта" -#: ../src/gradient-drag.cpp:2703 +#: ../src/gradient-drag.cpp:2704 msgid "Delete gradient stop(s)" msgstr "Вилучити опорні точки градієнта" -#: ../src/inkscape.cpp:246 +#: ../src/inkscape.cpp:242 msgid "Autosave failed! Cannot create directory %1." msgstr "" "Спроба автоматичного Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі! Ðе вдалоÑÑ Ñтворити каталог " "%1." -#: ../src/inkscape.cpp:255 +#: ../src/inkscape.cpp:251 msgid "Autosave failed! Cannot open directory %1." msgstr "" "Спроба автоматичного Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі! Ðе вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ каталог " "%1." -#: ../src/inkscape.cpp:271 +#: ../src/inkscape.cpp:267 msgid "Autosaving documents..." msgstr "ÐÐ²Ñ‚Ð¾Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²â€¦" -#: ../src/inkscape.cpp:339 +#: ../src/inkscape.cpp:335 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "" "Спроба автоматичного Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі! Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ додаток " "inkscape Ð´Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°." -#: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 +#: ../src/inkscape.cpp:338 ../src/inkscape.cpp:345 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "" "Спроба автоматичного Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð° невдачі! Файл %s неможливо зберегти." -#: ../src/inkscape.cpp:364 +#: ../src/inkscape.cpp:360 msgid "Autosave complete." msgstr "Ðвтоматичне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¾." -#: ../src/inkscape.cpp:622 +#: ../src/inkscape.cpp:618 msgid "Untitled document" msgstr "Без назви" #. Show nice dialog box -#: ../src/inkscape.cpp:654 +#: ../src/inkscape.cpp:650 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "Ð’Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°. Зараз роботу Inkscape буде завершено.\n" -#: ../src/inkscape.cpp:655 +#: ../src/inkscape.cpp:651 msgid "" "Automatic backups of unsaved documents were done to the following " "locations:\n" msgstr "" "Виконано автоматичне Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¸Ñ… копій незбережених документів:\n" -#: ../src/inkscape.cpp:656 +#: ../src/inkscape.cpp:652 msgid "Automatic backup of the following documents failed:\n" msgstr "Ðе вдаєтьÑÑ Ñтворити резервну копію такого документа:\n" @@ -8793,26 +8841,26 @@ msgstr "Ðе вдаєтьÑÑ Ñтворити резервну копію та msgid "Node or handle drag canceled." msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ð° ÑкаÑовано." -#: ../src/knotholder.cpp:170 +#: ../src/knotholder.cpp:171 msgid "Change handle" msgstr "Змінити вуÑ" -#: ../src/knotholder.cpp:257 +#: ../src/knotholder.cpp:258 msgid "Move handle" msgstr "ПереміÑтити вуÑ" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:276 ../src/knotholder.cpp:298 +#: ../src/knotholder.cpp:277 ../src/knotholder.cpp:299 msgid "Move the pattern fill inside the object" msgstr "Переміщувати Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼ вÑередині об'єкта" -#: ../src/knotholder.cpp:280 ../src/knotholder.cpp:302 +#: ../src/knotholder.cpp:281 ../src/knotholder.cpp:303 msgid "Scale the pattern fill; uniformly if with Ctrl" msgstr "" "МаÑштабувати Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼; рівномірно, Ñкщо натиÑнуто " "Ctrl" -#: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 +#: ../src/knotholder.cpp:285 ../src/knotholder.cpp:307 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "Обертати Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼, Ctrl обмежує кут" @@ -8851,7 +8899,7 @@ msgstr "Елемент, що Ñ” «володарем» цього" #. Name #: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 -#: ../src/widgets/text-toolbar.cpp:1405 +#: ../src/widgets/text-toolbar.cpp:1411 #: ../share/extensions/gcodetools_graffiti.inx.h:9 #: ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" @@ -8997,10 +9045,10 @@ msgstr "" "панелей можна називати контролерами." #: ../src/libgdl/gdl-dock-notebook.c:132 -#: ../src/ui/dialog/align-and-distribute.cpp:1002 +#: ../src/ui/dialog/align-and-distribute.cpp:998 #: ../src/ui/dialog/document-properties.cpp:160 #: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 -#: ../src/widgets/desktop-widget.cpp:1992 +#: ../src/widgets/desktop-widget.cpp:1994 #: ../share/extensions/empty_page.inx.h:1 #: ../share/extensions/voronoi2svg.inx.h:9 msgid "Page" @@ -9011,9 +9059,9 @@ msgid "The index of the current page" msgstr "Ð†Ð½Ð´ÐµÐºÑ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ñ— Ñторінки" #: ../src/libgdl/gdl-dock-object.c:125 -#: ../src/live_effects/parameter/originalpatharray.cpp:86 +#: ../src/live_effects/parameter/originalpatharray.cpp:82 #: ../src/ui/dialog/inkscape-preferences.cpp:1511 -#: ../src/ui/widget/page-sizer.cpp:258 +#: ../src/ui/widget/page-sizer.cpp:283 #: ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" @@ -9393,7 +9441,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:2871 msgid "Fill between many" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶ багатьма" @@ -9433,23 +9481,23 @@ msgstr "" "Якщо не буде позначено цей пункт, ефект залишатиметьÑÑ Ð·Ð°ÑтоÑованим до " "об'єкта, але його буде тимчаÑово вимкнено на полотні." -#: ../src/live_effects/effect.cpp:384 +#: ../src/live_effects/effect.cpp:387 msgid "No effect" msgstr "Без ефекту" -#: ../src/live_effects/effect.cpp:492 +#: ../src/live_effects/effect.cpp:495 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "" "Будь лаÑка, вкажіть параметр контуру Ð´Ð»Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ… побудов «%s» за " "допомогою %d клацань мишею" -#: ../src/live_effects/effect.cpp:759 +#: ../src/live_effects/effect.cpp:762 #, c-format msgid "Editing parameter %s." msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° %s." -#: ../src/live_effects/effect.cpp:764 +#: ../src/live_effects/effect.cpp:767 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "" "Жоден із заÑтоÑованих параметрів ефекту контуру не можна редагувати на " @@ -9526,8 +9574,8 @@ 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 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "_Width:" msgstr "_Ширина:" @@ -9572,47 +9620,50 @@ msgstr "Видимі рамки" 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 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Steps with CTRL:" msgstr "Кроки з Ctrl:" -#: ../src/live_effects/lpe-bspline.cpp:60 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Change number of steps with CTRL pressed" msgstr "Змінити кількіÑть кроків, Ñкі виконуватимутьÑÑ, Ñкщо натиÑнуто Ctrl" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:26 +#: ../src/live_effects/lpe-simplify.cpp:33 +msgid "Helper size:" +msgstr "Допоміжний розмір:" + +#: ../src/live_effects/lpe-bspline.cpp:26 +#: ../src/live_effects/lpe-simplify.cpp:33 +msgid "Helper size" +msgstr "Допоміжні розміри" + +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Ignore cusp nodes" msgstr "Ігнорувати гоÑтрі вузли" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Change ignoring cusp nodes" msgstr "Змінити з ігноруваннÑм гоÑтрих вузлів" -#: ../src/live_effects/lpe-bspline.cpp:62 -#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:28 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 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:29 msgid "Change weight:" msgstr "Змінити потужніÑть:" -#: ../src/live_effects/lpe-bspline.cpp:64 +#: ../src/live_effects/lpe-bspline.cpp:29 msgid "Change weight of the effect" msgstr "Змінити потужніÑть ефекту" -#: ../src/live_effects/lpe-bspline.cpp:291 +#: ../src/live_effects/lpe-bspline.cpp:260 msgid "Default weight" msgstr "Типова потужніÑть" -#: ../src/live_effects/lpe-bspline.cpp:296 +#: ../src/live_effects/lpe-bspline.cpp:265 msgid "Make cusp" msgstr "Створити загоÑтреннÑ" @@ -9798,104 +9849,88 @@ msgstr "Обернути другий" msgid "Reverses the second path order" msgstr "Обернути напрÑмок другого контуру" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:41 #: ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "Ðвто" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 msgid "Force arc" msgstr "ПримуÑова дуга" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:44 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 msgid "Force bezier" msgstr "ПримуÑово крива Безьє" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:53 msgid "Fillet point" msgstr "Точка кномки" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 msgid "Hide knots" msgstr "Приховати вузли" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 msgid "Ignore 0 radius knots" msgstr "Ігнорувати вузли радіуÑа 0" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 msgid "Flexible radius size (%)" msgstr "Гнучкий розмір радіуÑа (у %)" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 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:202 -msgid "Unit" -msgstr "ОдиницÑ" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Method:" msgstr "СпоÑіб:" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Fillets methods" msgstr "СпоÑоби ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÑ€Ð¾Ð¼ÐºÐ¸" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius (unit or %):" msgstr "Ð Ð°Ð´Ñ–ÑƒÑ (у одиницÑÑ… або %):" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius, in unit or %" msgstr "Ð Ð°Ð´Ñ–ÑƒÑ Ñƒ одиницÑÑ… або %" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps:" msgstr "Кроки фаÑки:" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps" msgstr "Кроки фаÑки" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 msgid "Helper size with direction:" msgstr "Допоміжний розмір із напрÑмком:" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 msgid "Helper size with direction" msgstr "Допоміжний розмір із напрÑмком" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:154 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:71 msgid "Fillet" msgstr "Кромка" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:158 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:73 msgid "Inverse fillet" msgstr "Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ ÐºÑ€Ð¾Ð¼ÐºÐ°" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:80 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:163 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:75 msgid "Chamfer" msgstr "ФаÑка" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:82 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:167 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:77 msgid "Inverse chamfer" msgstr "Ð—Ð²Ð¾Ñ€Ð¾Ñ‚Ð½Ñ Ñ„Ð°Ñка" @@ -9985,15 +10020,15 @@ msgstr "" #: ../src/live_effects/lpe-jointype.cpp:31 #: ../src/live_effects/lpe-powerstroke.cpp:227 -#: ../src/live_effects/lpe-taperstroke.cpp:63 +#: ../src/live_effects/lpe-taperstroke.cpp:64 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 +#: ../src/live_effects/lpe-taperstroke.cpp:65 +#: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded" msgstr "ОкругленіÑть" @@ -10004,10 +10039,8 @@ 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 "Відбитий" +msgid "Miter Clip" +msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ñ†ÐµÑ‚Ð°" #. {LINEJOIN_EXTRP_MITER, N_("Extrapolated"), "extrapolated"}, // disabled because doesn't work well #: ../src/live_effects/lpe-jointype.cpp:35 @@ -10030,10 +10063,6 @@ msgstr "Квадрат" 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 "Товщина штриха" @@ -10060,14 +10089,8 @@ msgstr "З'єднаннÑ:" 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 "Кінець контуру нахилу" - +#. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), +#. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:56 #: ../src/live_effects/lpe-powerstroke.cpp:244 #: ../src/live_effects/lpe-taperstroke.cpp:79 @@ -10144,303 +10167,289 @@ msgstr "ПеретÑгніть, щоб вибрати перехреÑÑ‚Ñ, кл msgid "Change knot crossing" msgstr "Змінити перехреÑÑ‚Ñ Ñƒ вузлі" -#. initialise your parameters here: #: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 0:" - -#: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "" -"Control handle 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 0 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " -"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +#: ../src/live_effects/lpe-perspective-envelope.cpp:43 +msgid "Mirror movements in horizontal" +msgstr "Дзеркальні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾" #: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 1:" - -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "" -"Control handle 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 1 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " -"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +#: ../src/live_effects/lpe-perspective-envelope.cpp:44 +msgid "Mirror movements in vertical" +msgstr "Дзеркальні переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 2:" +msgid "Control 0:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 0:" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "" -"Control handle 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 2 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 0 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 3:" +msgid "Control 1:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 1:" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "" -"Control handle 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 3 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 1 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 4:" +msgid "Control 2:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 2:" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "" -"Control handle 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 4 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 2 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 5:" +msgid "Control 3:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 3:" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "" -"Control handle 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 5 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 3 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 6:" +msgid "Control 4:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 4:" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "" -"Control handle 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 6 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 4 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 7:" +msgid "Control 5:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 5:" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "" -"Control handle 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 7 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 5 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 8⨯9:" +msgid "Control 6:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 6:" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "" -"Control handle 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 8⨯9 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl" -", щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 6 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 10⨯11:" +msgid "Control 7:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 7:" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "" -"Control handle 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 10⨯11 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 7 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 12:" +msgid "Control 8x9:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 8⨯9:" #: ../src/live_effects/lpe-lattice2.cpp:57 msgid "" -"Control handle 12 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 12 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " -"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 8⨯9 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 13:" +msgid "Control 10x11:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 10⨯11:" #: ../src/live_effects/lpe-lattice2.cpp:58 msgid "" -"Control handle 13 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 13 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " -"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 10⨯11 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 14:" +msgid "Control 12:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 12:" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "" -"Control handle 14 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 14 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 12 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 15:" +msgid "Control 13:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 13:" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "" -"Control handle 15 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 15 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 13 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 16:" +msgid "Control 14:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 14:" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "" -"Control handle 16 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 16 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 14 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 17:" +msgid "Control 15:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 15:" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "" -"Control handle 17 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 17 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 15 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 18:" +msgid "Control 16:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 16:" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "" -"Control handle 18 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 18 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 16 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 19:" +msgid "Control 17:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 17:" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "" -"Control handle 19 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 19 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 17 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " "щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 20⨯21:" +msgid "Control 18:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 18:" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "" -"Control handle 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 20⨯21 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 18 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 22⨯23:" +msgid "Control 19:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 19:" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "" -"Control handle 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 22⨯23 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 19 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, " +"щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 24⨯26:" +msgid "Control 20x21:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 20⨯21:" #: ../src/live_effects/lpe-lattice2.cpp:67 msgid "" -"Control handle 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 24⨯26 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 20⨯21 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 25⨯27:" +msgid "Control 22x23:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 22⨯23:" #: ../src/live_effects/lpe-lattice2.cpp:68 msgid "" -"Control handle 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 25⨯27 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 22⨯23 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 28⨯30:" +msgid "Control 24x26:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 24⨯26:" #: ../src/live_effects/lpe-lattice2.cpp:69 msgid "" -"Control handle 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 28⨯30 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 24⨯26 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 29⨯31:" +msgid "Control 25x27:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 25⨯27:" #: ../src/live_effects/lpe-lattice2.cpp:70 msgid "" -"Control handle 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along " -"axes" +"Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 29⨯31 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl<" -"/b>, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 25⨯27 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35:" -msgstr "ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 32⨯33⨯34⨯35:" +msgid "Control 28x30:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 28⨯30:" #: ../src/live_effects/lpe-lattice2.cpp:71 msgid "" -"Control handle 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move " -"along axes" +"Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" -"ІнÑтрумент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 32⨯33⨯34⨯35 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, " -"Ctrl, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 28⨯30 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +msgid "Control 29x31:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 29⨯31:" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +msgid "" +"Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 29⨯31 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " +"рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" -#: ../src/live_effects/lpe-lattice2.cpp:224 +#: ../src/live_effects/lpe-lattice2.cpp:73 +msgid "Control 32x33x34x35:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 32⨯33⨯34⨯35:" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +msgid "" +"Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along " +"axes" +msgstr "" +"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ 32⨯33⨯34⨯35 — Ctrl+Alt+клацаннÑ, щоб Ñкинути, " +"Ctrl, щоб рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" + +#: ../src/live_effects/lpe-lattice2.cpp:236 msgid "Reset grid" msgstr "Скинути Ñітку" +#: ../src/live_effects/lpe-lattice2.cpp:268 +#: ../src/live_effects/lpe-lattice2.cpp:283 +msgid "Show Points" +msgstr "Показати точки" + +#: ../src/live_effects/lpe-lattice2.cpp:281 +msgid "Hide Points" +msgstr "Приховати точки" + #: ../src/live_effects/lpe-patternalongpath.cpp:50 #: ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -10539,65 +10548,64 @@ msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "" "Об'єднувати кінці, ближчі за вказане значеннÑ. 0 означає «не об'єднувати»." -#: ../src/live_effects/lpe-perspective-envelope.cpp:37 +#: ../src/live_effects/lpe-perspective-envelope.cpp:35 #: ../share/extensions/perspective.inx.h:1 msgid "Perspective" msgstr "ПерÑпектива" -#: ../src/live_effects/lpe-perspective-envelope.cpp:38 +#: ../src/live_effects/lpe-perspective-envelope.cpp:36 msgid "Envelope deformation" msgstr "Ð’Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ð¾Ð±Ð³Ð¾Ñ€Ñ‚ÐºÐ¸" -#. initialise your parameters here: -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Type" msgstr "Тип" -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Select the type of deformation" msgstr "Виберіть тип деформуваннÑ" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left" msgstr "Верхній лівий" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Верхній лівий — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " "рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right" msgstr "Верхній правий" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Верхній правий — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " "рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left" msgstr "Ðижній лівий" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Ðижній лівий — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " "рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right" msgstr "Ðижній правий" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" "Ðижній правий — Ctrl+Alt+клацаннÑ, щоб Ñкинути, Ctrl, щоб " "рухатиÑÑ Ð²Ð·Ð´Ð¾Ð²Ð¶ оÑей" -#: ../src/live_effects/lpe-perspective-envelope.cpp:257 +#: ../src/live_effects/lpe-perspective-envelope.cpp:268 msgid "Handles:" msgstr "Елементи керуваннÑ:" @@ -10854,66 +10862,63 @@ msgid "" msgstr "" "ВідноÑна Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ ÐµÑ‚Ð°Ð»Ð¾Ð½Ð½Ð¾Ñ— точки визначає напрÑм Ñ– величину загального вигину" -#: ../src/live_effects/lpe-roughen.cpp:30 ../share/extensions/addnodes.inx.h:4 +#: ../src/live_effects/lpe-roughen.cpp:29 ../share/extensions/addnodes.inx.h:4 msgid "By number of segments" msgstr "За кількіÑтю Ñегментів" -#: ../src/live_effects/lpe-roughen.cpp:31 +#: ../src/live_effects/lpe-roughen.cpp:30 msgid "By max. segment size" msgstr "За макÑ. розміром Ñегмента" -#: ../src/live_effects/lpe-roughen.cpp:40 +#. initialise your parameters here: +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Method" msgstr "СпоÑіб" -#: ../src/live_effects/lpe-roughen.cpp:40 +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Division method" msgstr "Метод поділу" -#: ../src/live_effects/lpe-roughen.cpp:42 +#: ../src/live_effects/lpe-roughen.cpp:40 msgid "Max. segment size" msgstr "МакÑимальний розмір Ñегмента" -#: ../src/live_effects/lpe-roughen.cpp:44 +#: ../src/live_effects/lpe-roughen.cpp:42 msgid "Number of segments" msgstr "КількіÑть Ñегментів" -#: ../src/live_effects/lpe-roughen.cpp:46 +#: ../src/live_effects/lpe-roughen.cpp:44 msgid "Max. displacement in X" msgstr "МакÑимальне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° X" -#: ../src/live_effects/lpe-roughen.cpp:48 +#: ../src/live_effects/lpe-roughen.cpp:46 msgid "Max. displacement in Y" msgstr "МакÑимальне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° Y" -#: ../src/live_effects/lpe-roughen.cpp:50 +#: ../src/live_effects/lpe-roughen.cpp:48 msgid "Global randomize" msgstr "Загальна випадковіÑть" -#: ../src/live_effects/lpe-roughen.cpp:52 +#: ../src/live_effects/lpe-roughen.cpp:50 #: ../share/extensions/radiusrand.inx.h:5 msgid "Shift nodes" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²ÑƒÐ·Ð»Ñ–Ð²" -#: ../src/live_effects/lpe-roughen.cpp:54 +#: ../src/live_effects/lpe-roughen.cpp:52 #: ../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 +#: ../src/live_effects/lpe-roughen.cpp:100 msgid "Add nodes Subdivide each segment" msgstr "Додати вузли — поділити кожен із Ñегментів" -#: ../src/live_effects/lpe-roughen.cpp:120 +#: ../src/live_effects/lpe-roughen.cpp:109 msgid "Jitter nodes Move nodes/handles" msgstr "" "Ð¢Ñ€ÐµÐ¼Ñ‚Ñ–Ð½Ð½Ñ Ð²ÑƒÐ·Ð»Ñ–Ð² — переÑунути вузли або елементи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ (вуÑа)" -#: ../src/live_effects/lpe-roughen.cpp:129 +#: ../src/live_effects/lpe-roughen.cpp:118 msgid "Extra roughen Add a extra layer of rough" msgstr "Додаткове Ð·Ð³Ñ€ÑƒÐ±Ñ–ÑˆÐ°Ð½Ð½Ñ â€” додати додатковий шар згрубішаннÑ" @@ -10938,11 +10943,11 @@ msgctxt "Border mark" msgid "None" msgstr "Ðемає" -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:328 +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:319 msgid "Start" msgstr "Початок" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:341 +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:332 msgid "End" msgstr "Кінець" @@ -10954,6 +10959,18 @@ msgstr "Ð’Ñ–_дÑтань між позначками:" msgid "Distance between successive ruler marks" msgstr "ВідÑтань між поÑлідовними позначками на лінійці" +#: ../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 "ОдиницÑ:" + +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:202 +msgid "Unit" +msgstr "ОдиницÑ" + #: ../src/live_effects/lpe-ruler.cpp:43 msgid "Ma_jor length:" msgstr "_ОÑновна довжина:" @@ -11037,26 +11054,18 @@ msgstr "" "об’єкта, Ñкі було до нього заÑтоÑовано. Якщо ви цього не бажаєте, натиÑніть " "кнопку «СкаÑувати»." -#: ../src/live_effects/lpe-simplify.cpp:29 +#: ../src/live_effects/lpe-simplify.cpp:30 msgid "Steps:" msgstr "Кроків:" -#: ../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:" -msgstr "Допоміжний розмір:" - -#: ../src/live_effects/lpe-simplify.cpp:31 -msgid "Helper size" -msgstr "Допоміжні розміри" - #: ../src/live_effects/lpe-simplify.cpp:32 msgid "Smooth angles:" msgstr "Плавні кути:" @@ -11064,38 +11073,22 @@ msgstr "Плавні кути:" #: ../src/live_effects/lpe-simplify.cpp:32 msgid "Max degree difference on handles to preform a smooth" msgstr "" -"МакÑимальна Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ Ñƒ градуÑах Ð´Ð»Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² керуваннÑ, щоб програма виконала " -"згладжуваннÑ" +"МакÑимальна Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ Ñƒ градуÑах Ð´Ð»Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² керуваннÑ, щоб програма " +"виконала згладжуваннÑ" -#: ../src/live_effects/lpe-simplify.cpp:33 -msgid "Helper nodes" -msgstr "Допоміжні вузли" - -#: ../src/live_effects/lpe-simplify.cpp:33 -msgid "Show helper nodes" -msgstr "Показувати допоміжні вузли" - -#: ../src/live_effects/lpe-simplify.cpp:35 -msgid "Helper handles" -msgstr "Допоміжні вуÑа" - -#: ../src/live_effects/lpe-simplify.cpp:35 -msgid "Show helper handles" -msgstr "Показувати допоміжні елементи керуваннÑ" - -#: ../src/live_effects/lpe-simplify.cpp:37 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Paths separately" msgstr "Контури окремо" -#: ../src/live_effects/lpe-simplify.cpp:37 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Simplifying paths (separately)" msgstr "Ð¡Ð¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð² (окремо)" -#: ../src/live_effects/lpe-simplify.cpp:39 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Just coalesce" msgstr "ПроÑто об’єднати" -#: ../src/live_effects/lpe-simplify.cpp:39 +#: ../src/live_effects/lpe-simplify.cpp:36 msgid "Simplify just coalesce" msgstr "СпроÑтити об’єднаннÑ" @@ -11188,7 +11181,7 @@ msgid "How many construction lines (tangents) to draw" msgstr "КількіÑть ліній побудови (дотичних) Ð´Ð»Ñ Ð¼Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ" #: ../src/live_effects/lpe-sketch.cpp:58 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 #: ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "МаÑштаб:" @@ -11291,11 +11284,11 @@ msgstr "Тип Ð·â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð½ÐµÐ³Ð»Ð°Ð´ÐºÐ¸Ñ… вузлів" msgid "Limit for miter joins" msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ„Ð°Ñ†ÐµÑ‚Ð½Ð¸Ñ… з’єднань" -#: ../src/live_effects/lpe-taperstroke.cpp:536 +#: ../src/live_effects/lpe-taperstroke.cpp:448 msgid "Start point of the taper" msgstr "Початкова точка звужуваннÑ" -#: ../src/live_effects/lpe-taperstroke.cpp:540 +#: ../src/live_effects/lpe-taperstroke.cpp:452 msgid "End point of the taper" msgstr "Кінцева точка звуженнÑ" @@ -11363,8 +11356,8 @@ msgstr "Змінити булівÑький параметр" msgid "Change enumeration parameter" msgstr "Зміна параметра нумерації" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:843 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:771 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:832 msgid "" "Chamfer: Ctrl+Click toggle type, Shift+Click open " "dialog, Ctrl+Alt+Click reset" @@ -11372,8 +11365,8 @@ msgstr "" "ФаÑка: Ctrl+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” перемкнути тип, Shift+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” " "відкрити діалогове вікно, Ctrl+Alt+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути." -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:847 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:775 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:836 msgid "" "Inverse Chamfer: Ctrl+Click toggle type, Shift+Click " "open dialog, Ctrl+Alt+Click reset" @@ -11381,8 +11374,8 @@ msgstr "" "Зворотна фаÑка: Ctrl+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” перемкнути тип, Shift" "+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” відкрити діалогове вікно, Ctrl+Alt+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути." -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:851 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:779 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:840 msgid "" "Inverse Fillet: Ctrl+Click toggle type, Shift+Click " "open dialog, Ctrl+Alt+Click reset" @@ -11390,8 +11383,8 @@ msgstr "" "Зворотна кромка: Ctrl+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” перемкнути тип, Shift" "+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” відкрити діалогове вікно, Ctrl+Alt+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути." -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:794 -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:855 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:783 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:844 msgid "" "Fillet: Ctrl+Click toggle type, Shift+Click open " "dialog, Ctrl+Alt+Click reset" @@ -11399,49 +11392,49 @@ msgstr "" "Кромка: Ctrl+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” перемкнути тип, Shift+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ " "— відкрити діалогове вікно, Ctrl+Alt+ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути" -#: ../src/live_effects/parameter/originalpath.cpp:71 -#: ../src/live_effects/parameter/originalpatharray.cpp:159 +#: ../src/live_effects/parameter/originalpath.cpp:67 +#: ../src/live_effects/parameter/originalpatharray.cpp:155 msgid "Link to path" msgstr "Пов'Ñзати з контуром" -#: ../src/live_effects/parameter/originalpath.cpp:83 +#: ../src/live_effects/parameter/originalpath.cpp:79 msgid "Select original" msgstr "Позначити оригінал" -#: ../src/live_effects/parameter/originalpatharray.cpp:94 -#: ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/live_effects/parameter/originalpatharray.cpp:90 +#: ../src/widgets/gradient-toolbar.cpp:1208 msgid "Reverse" msgstr "Обернути" -#: ../src/live_effects/parameter/originalpatharray.cpp:134 -#: ../src/live_effects/parameter/originalpatharray.cpp:319 -#: ../src/live_effects/parameter/path.cpp:475 +#: ../src/live_effects/parameter/originalpatharray.cpp:130 +#: ../src/live_effects/parameter/originalpatharray.cpp:315 +#: ../src/live_effects/parameter/path.cpp:481 msgid "Link path parameter to path" msgstr "Пов'Ñзати параметр контуру з контуром" -#: ../src/live_effects/parameter/originalpatharray.cpp:171 +#: ../src/live_effects/parameter/originalpatharray.cpp:167 msgid "Remove Path" msgstr "Вилучити контур" -#: ../src/live_effects/parameter/originalpatharray.cpp:183 +#: ../src/live_effects/parameter/originalpatharray.cpp:179 #: ../src/ui/dialog/objects.cpp:1823 msgid "Move Down" msgstr "ПереÑунути нижче" -#: ../src/live_effects/parameter/originalpatharray.cpp:195 +#: ../src/live_effects/parameter/originalpatharray.cpp:191 #: ../src/ui/dialog/objects.cpp:1831 msgid "Move Up" msgstr "ПереÑунути вище" -#: ../src/live_effects/parameter/originalpatharray.cpp:235 +#: ../src/live_effects/parameter/originalpatharray.cpp:231 msgid "Move path up" msgstr "ПереÑунути контур вище" -#: ../src/live_effects/parameter/originalpatharray.cpp:265 +#: ../src/live_effects/parameter/originalpatharray.cpp:261 msgid "Move path down" msgstr "ПереÑунути контур нижче" -#: ../src/live_effects/parameter/originalpatharray.cpp:283 +#: ../src/live_effects/parameter/originalpatharray.cpp:279 msgid "Remove path" msgstr "Вилучити контур" @@ -11465,11 +11458,11 @@ msgstr "Ð’Ñтавити контур" msgid "Link to path on clipboard" msgstr "Пов’Ñзати з контуром у буфері обміну" -#: ../src/live_effects/parameter/path.cpp:443 +#: ../src/live_effects/parameter/path.cpp:449 msgid "Paste path parameter" msgstr "Ð’Ñтавити параметр контуру" -#: ../src/live_effects/parameter/point.cpp:103 +#: ../src/live_effects/parameter/point.cpp:124 msgid "Change point parameter" msgstr "Змінити параметр точки" @@ -11818,7 +11811,7 @@ msgstr "ІД-ОБ'ЄКТÐ" msgid "Start Inkscape in interactive shell mode." msgstr "ЗапуÑтити Inkscape у режимі інтерактивної оболонки." -#: ../src/main.cpp:871 ../src/main.cpp:1283 +#: ../src/main.cpp:871 ../src/main.cpp:1280 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -11829,17 +11822,17 @@ msgstr "" "ДоÑтупні параметри:" #. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:79 msgid "_File" msgstr "_Файл" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 +#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2682 ../src/verbs.cpp:2690 msgid "_Edit" msgstr "_Зміни" -#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 +#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2446 msgid "Paste Si_ze" msgstr "Ð’Ñтавити за Ñ€_озміром" @@ -11924,27 +11917,27 @@ msgstr "_Довідка" msgid "Tutorials" msgstr "Підручники" -#: ../src/path-chemistry.cpp:54 +#: ../src/path-chemistry.cpp:63 msgid "Select object(s) to combine." msgstr "Оберіть об'єкт(и) Ð´Ð»Ñ ÐºÐ¾Ð¼Ð±Ñ–Ð½ÑƒÐ²Ð°Ð½Ð½Ñ." -#: ../src/path-chemistry.cpp:58 +#: ../src/path-chemistry.cpp:67 msgid "Combining paths..." msgstr "Ð¡Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð²â€¦" -#: ../src/path-chemistry.cpp:174 +#: ../src/path-chemistry.cpp:177 msgid "Combine" msgstr "Об'єднаннÑ" -#: ../src/path-chemistry.cpp:181 +#: ../src/path-chemistry.cpp:184 msgid "No path(s) to combine in the selection." msgstr "Ðе вказано контурів Ð´Ð»Ñ ÐºÐ¾Ð¼Ð±Ñ–Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ вибраному." -#: ../src/path-chemistry.cpp:193 +#: ../src/path-chemistry.cpp:196 msgid "Select path(s) to break apart." msgstr "Виберіть контур(и) Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÐµÐ½Ð½Ñ." -#: ../src/path-chemistry.cpp:197 +#: ../src/path-chemistry.cpp:200 msgid "Breaking apart paths..." msgstr "Поділ контурів на чаÑтини…" @@ -11964,27 +11957,27 @@ msgstr "Позначте об'єкти Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ msgid "Converting objects to paths..." msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±'єктів на контури…" -#: ../src/path-chemistry.cpp:327 +#: ../src/path-chemistry.cpp:324 msgid "Object to path" msgstr "Об'єкт у контур" -#: ../src/path-chemistry.cpp:329 +#: ../src/path-chemistry.cpp:326 msgid "No objects to convert to path in the selection." msgstr "У позначеному немає об'єктів, що перетворюютьÑÑ Ñƒ контур." -#: ../src/path-chemistry.cpp:618 +#: ../src/path-chemistry.cpp:613 msgid "Select path(s) to reverse." msgstr "Виберіть контур(и) Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ напрÑму." -#: ../src/path-chemistry.cpp:627 +#: ../src/path-chemistry.cpp:622 msgid "Reversing paths..." msgstr "Ð Ð¾Ð·Ð²ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð²â€¦" -#: ../src/path-chemistry.cpp:662 +#: ../src/path-chemistry.cpp:657 msgid "Reverse path" msgstr "Розвернути контур" -#: ../src/path-chemistry.cpp:664 +#: ../src/path-chemistry.cpp:659 msgid "No paths to reverse in the selection." msgstr "У позначеному немає контурів Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ напрÑму." @@ -12109,7 +12102,7 @@ msgstr "Ð›Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Open Font" #. Create the Title label and edit control #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/linking.html#AElementXLinkTitleAttribute -#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1952 +#: ../src/rdf.cpp:235 ../src/ui/dialog/filedialogimpl-win32.cpp:1960 #: ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "Заголовок:" @@ -12256,51 +12249,56 @@ msgstr "XML-фрагмент RDF-розділу «ЛіцензіÑ»" msgid "Fixup broken links" msgstr "Ð’Ð¸Ð¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… поÑилань" -#: ../src/selection-chemistry.cpp:406 +#: ../src/selection-chemistry.cpp:401 msgid "Delete text" msgstr "Вилучити текÑÑ‚" -#: ../src/selection-chemistry.cpp:414 +#: ../src/selection-chemistry.cpp:409 msgid "Nothing was deleted." msgstr "Ðічого не було вилучено." -#: ../src/selection-chemistry.cpp:433 +#: ../src/selection-chemistry.cpp:426 #: ../src/ui/dialog/calligraphic-profile-rename.cpp:75 #: ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 #: ../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:1184 +#: ../src/widgets/gradient-toolbar.cpp:1198 +#: ../src/widgets/gradient-toolbar.cpp:1212 #: ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "Вилучити" -#: ../src/selection-chemistry.cpp:461 +#: ../src/selection-chemistry.cpp:454 msgid "Select object(s) to duplicate." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ." -#: ../src/selection-chemistry.cpp:572 +#: ../src/selection-chemistry.cpp:551 +#, c-format +msgid "%s copy" +msgstr "ÐšÐ¾Ð¿Ñ–Ñ %s" + +#: ../src/selection-chemistry.cpp:574 msgid "Delete all" msgstr "Вилучити вÑе" -#: ../src/selection-chemistry.cpp:763 +#: ../src/selection-chemistry.cpp:762 msgid "Select some objects to group." msgstr "Позначте два або більше об'єктів Ð´Ð»Ñ Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ." -#: ../src/selection-chemistry.cpp:778 +#: ../src/selection-chemistry.cpp:775 msgctxt "Verb" msgid "Group" msgstr "Згрупувати" -#: ../src/selection-chemistry.cpp:801 +#: ../src/selection-chemistry.cpp:798 msgid "Select a group to ungroup." msgstr "Позначте групу Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ñ€ÑƒÐ¿ÑƒÐ²Ð°Ð½Ð½Ñ." -#: ../src/selection-chemistry.cpp:816 +#: ../src/selection-chemistry.cpp:813 msgid "No groups to ungroup in the selection." msgstr "У позначеному немає груп." -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:575 +#: ../src/selection-chemistry.cpp:869 ../src/sp-item-group.cpp:554 msgid "Ungroup" msgstr "Розгрупувати" @@ -12308,223 +12306,223 @@ msgstr "Розгрупувати" 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 +#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1015 +#: ../src/selection-chemistry.cpp:1041 ../src/selection-chemistry.cpp:1099 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 +#: ../src/selection-chemistry.cpp:999 msgctxt "Undo action" msgid "Raise" msgstr "піднÑттÑ" -#: ../src/selection-chemistry.cpp:1011 +#: ../src/selection-chemistry.cpp:1007 msgid "Select object(s) to raise to top." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¿Ñ–Ð´Ð½Ñ–Ð¼Ð°Ð½Ð½Ñ Ð½Ð°Ð³Ð¾Ñ€Ñƒ." -#: ../src/selection-chemistry.cpp:1034 +#: ../src/selection-chemistry.cpp:1028 msgid "Raise to top" msgstr "ПіднÑти на передній план" -#: ../src/selection-chemistry.cpp:1041 +#: ../src/selection-chemistry.cpp:1035 msgid "Select object(s) to lower." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¾Ð¿ÑƒÑканнÑ." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1093 +#: ../src/selection-chemistry.cpp:1083 msgctxt "Undo action" msgid "Lower" msgstr "опуÑканнÑ" -#: ../src/selection-chemistry.cpp:1101 +#: ../src/selection-chemistry.cpp:1091 msgid "Select object(s) to lower to bottom." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¾Ð¿ÑƒÑÐºÐ°Ð½Ð½Ñ Ð½Ð° низ." -#: ../src/selection-chemistry.cpp:1136 +#: ../src/selection-chemistry.cpp:1122 msgid "Lower to bottom" msgstr "ОпуÑтити на задній план" -#: ../src/selection-chemistry.cpp:1146 +#: ../src/selection-chemistry.cpp:1132 msgid "Nothing to undo." msgstr "Ðемає операцій, що можна ÑкаÑувати." -#: ../src/selection-chemistry.cpp:1157 +#: ../src/selection-chemistry.cpp:1143 msgid "Nothing to redo." msgstr "Ðемає операцій, що можна вернути." -#: ../src/selection-chemistry.cpp:1229 +#: ../src/selection-chemistry.cpp:1215 msgid "Paste" msgstr "Ð’Ñтавити" -#: ../src/selection-chemistry.cpp:1237 +#: ../src/selection-chemistry.cpp:1223 msgid "Paste style" msgstr "Ð’Ñтавити Ñтиль" -#: ../src/selection-chemistry.cpp:1247 +#: ../src/selection-chemistry.cpp:1233 msgid "Paste live path effect" msgstr "Ð’Ñтавити ефект динамічного контуру" -#: ../src/selection-chemistry.cpp:1269 +#: ../src/selection-chemistry.cpp:1255 msgid "Select object(s) to remove live path effects from." msgstr "Оберіть об'єкт(и) Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ð°Ð½Ñ–Ð¼Ð¾Ð²Ð°Ð½Ð¸Ñ… ефектів контурів." -#: ../src/selection-chemistry.cpp:1281 +#: ../src/selection-chemistry.cpp:1267 msgid "Remove live path effect" msgstr "Вилучити анімований ефект контуру" -#: ../src/selection-chemistry.cpp:1292 +#: ../src/selection-chemistry.cpp:1278 msgid "Select object(s) to remove filters from." msgstr "Виберіть об'єкт(и), з Ñких Ñлід вилучити фільтри." -#: ../src/selection-chemistry.cpp:1302 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1678 +#: ../src/selection-chemistry.cpp:1288 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1693 msgid "Remove filter" msgstr "Вилучити фільтр" -#: ../src/selection-chemistry.cpp:1311 +#: ../src/selection-chemistry.cpp:1297 msgid "Paste size" msgstr "Ð’Ñтавити розмір" -#: ../src/selection-chemistry.cpp:1320 +#: ../src/selection-chemistry.cpp:1306 msgid "Paste size separately" msgstr "Ð’Ñтавити розмір окремо" -#: ../src/selection-chemistry.cpp:1349 +#: ../src/selection-chemistry.cpp:1335 msgid "Select object(s) to move to the layer above." msgstr "Позначте об'єкти Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° шар вище." -#: ../src/selection-chemistry.cpp:1376 +#: ../src/selection-chemistry.cpp:1360 msgid "Raise to next layer" msgstr "ПіднÑтиÑÑ Ð½Ð° наÑтупний шар" -#: ../src/selection-chemistry.cpp:1383 +#: ../src/selection-chemistry.cpp:1367 msgid "No more layers above." msgstr "Більше немає вищих шарів." -#: ../src/selection-chemistry.cpp:1395 +#: ../src/selection-chemistry.cpp:1378 msgid "Select object(s) to move to the layer below." msgstr "Позначте об'єкти Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð½Ð° шар нижче." -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1403 msgid "Lower to previous layer" msgstr "ОпуÑтитиÑÑ Ð½Ð° попередній шар" -#: ../src/selection-chemistry.cpp:1429 +#: ../src/selection-chemistry.cpp:1410 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:2625 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:1526 ../src/seltrans.cpp:390 msgid "Cannot transform an embedded SVG." msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¾Ð³Ð¾ SVG неможливе." -#: ../src/selection-chemistry.cpp:1720 +#: ../src/selection-chemistry.cpp:1696 msgid "Remove transform" msgstr "Прибрати транÑформацію" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CCW" msgstr "Обернути на 90° проти годинникової Ñтрілки" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CW" msgstr "Обернути на 90° за годинниковою Ñтрілкою" -#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 -#: ../src/ui/dialog/transformation.cpp:893 +#: ../src/selection-chemistry.cpp:1824 ../src/seltrans.cpp:483 +#: ../src/ui/dialog/transformation.cpp:891 msgid "Rotate" msgstr "Обертати" -#: ../src/selection-chemistry.cpp:2204 +#: ../src/selection-chemistry.cpp:2173 msgid "Rotate by pixels" msgstr "Обертати поточково" -#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 -#: ../src/ui/dialog/transformation.cpp:868 +#: ../src/selection-chemistry.cpp:2203 ../src/seltrans.cpp:480 +#: ../src/ui/dialog/transformation.cpp:865 ../src/ui/widget/page-sizer.cpp:448 #: ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "МаÑштабувати" -#: ../src/selection-chemistry.cpp:2259 +#: ../src/selection-chemistry.cpp:2228 msgid "Scale by whole factor" msgstr "МаÑштабувати за повним коефіцієнтом" -#: ../src/selection-chemistry.cpp:2274 +#: ../src/selection-chemistry.cpp:2243 msgid "Move vertically" msgstr "ПереміÑтити вертикально" -#: ../src/selection-chemistry.cpp:2277 +#: ../src/selection-chemistry.cpp:2246 msgid "Move horizontally" msgstr "ПереміÑтити горизонтально" -#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 -#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 +#: ../src/selection-chemistry.cpp:2249 ../src/selection-chemistry.cpp:2275 +#: ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:802 msgid "Move" msgstr "ПереміÑтити" -#: ../src/selection-chemistry.cpp:2300 +#: ../src/selection-chemistry.cpp:2269 msgid "Move vertically by pixels" msgstr "ПереміÑтити вертикально поточково" -#: ../src/selection-chemistry.cpp:2303 +#: ../src/selection-chemistry.cpp:2272 msgid "Move horizontally by pixels" msgstr "ПереміÑтити горизонтально поточково" -#: ../src/selection-chemistry.cpp:2435 +#: ../src/selection-chemistry.cpp:2475 msgid "The selection has no applied path effect." msgstr "Обране не має заÑтоÑованого ефекту контуру." -#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2567 ../src/ui/dialog/clonetiler.cpp:2221 msgid "Select an object to clone." msgstr "Позначте об'єкт Ð´Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ." -#: ../src/selection-chemistry.cpp:2643 +#: ../src/selection-chemistry.cpp:2602 msgctxt "Action" msgid "Clone" msgstr "Клонувати" -#: ../src/selection-chemistry.cpp:2659 +#: ../src/selection-chemistry.cpp:2616 msgid "Select clones to relink." msgstr "Позначте клон Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·'єднаннÑ." -#: ../src/selection-chemistry.cpp:2666 +#: ../src/selection-chemistry.cpp:2623 msgid "Copy an object to clipboard to relink clones to." msgstr "" "Копіювати об'єкт до буфера обміну інформації Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ ÐºÐ»Ð¾Ð½Ñ–Ð²." -#: ../src/selection-chemistry.cpp:2689 +#: ../src/selection-chemistry.cpp:2644 msgid "No clones to relink in the selection." msgstr "У позначеному немає клонів Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ·'єднаннÑ." -#: ../src/selection-chemistry.cpp:2692 +#: ../src/selection-chemistry.cpp:2647 msgid "Relink clone" msgstr "Перез'єднати клон" -#: ../src/selection-chemistry.cpp:2706 +#: ../src/selection-chemistry.cpp:2661 msgid "Select clones to unlink." msgstr "Позначте клон Ð´Ð»Ñ Ð²Ñ–Ð´'єднаннÑ." -#: ../src/selection-chemistry.cpp:2762 +#: ../src/selection-chemistry.cpp:2714 msgid "No clones to unlink in the selection." msgstr "У позначеному немає клонів." -#: ../src/selection-chemistry.cpp:2766 +#: ../src/selection-chemistry.cpp:2718 msgid "Unlink clone" msgstr "Від'єднати клон" -#: ../src/selection-chemistry.cpp:2779 +#: ../src/selection-chemistry.cpp:2731 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 " @@ -12534,7 +12532,7 @@ msgstr "" "перейти до Ñ—Ñ— контуру; текÑÑ‚ вздовж контуру, щоб перейти до його " "контуру. Позначте текÑÑ‚ у рамці, щоб перейти до рамки." -#: ../src/selection-chemistry.cpp:2827 +#: ../src/selection-chemistry.cpp:2781 msgid "" "Cannot find the object to select (orphaned clone, offset, textpath, " "flowed text?)" @@ -12542,7 +12540,7 @@ msgstr "" "Ðе вдаєтьÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ об'єкт, що позначаєтьÑÑ (оÑиротілий клон, втÑжка, " "текÑÑ‚ вздовж контуру чи текÑÑ‚ у рамці?)" -#: ../src/selection-chemistry.cpp:2833 +#: ../src/selection-chemistry.cpp:2787 msgid "" "The object you're trying to select is not visible (it is in <" "defs>)" @@ -12550,132 +12548,132 @@ msgstr "" "Об'єкт, Ñкий ви намагаєтеÑÑŒ позначити, Ñ” невидимим (знаходитьÑÑ Ñƒ <" "defs>)" -#: ../src/selection-chemistry.cpp:2922 +#: ../src/selection-chemistry.cpp:2877 msgid "Select path(s) to fill." msgstr "Позначте контури Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ." -#: ../src/selection-chemistry.cpp:2940 +#: ../src/selection-chemistry.cpp:2895 msgid "Select object(s) to convert to marker." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ маркер." -#: ../src/selection-chemistry.cpp:3015 +#: ../src/selection-chemistry.cpp:2969 msgid "Objects to marker" msgstr "Об'єкти у маркер" -#: ../src/selection-chemistry.cpp:3040 +#: ../src/selection-chemistry.cpp:2995 msgid "Select object(s) to convert to guides." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ напрÑмні." -#: ../src/selection-chemistry.cpp:3063 +#: ../src/selection-chemistry.cpp:3016 msgid "Objects to guides" msgstr "Об'єкти у напрÑмні" -#: ../src/selection-chemistry.cpp:3099 +#: ../src/selection-chemistry.cpp:3052 msgid "Select objects to convert to symbol." msgstr "Позначте об’єкти Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° Ñимвол." -#: ../src/selection-chemistry.cpp:3202 +#: ../src/selection-chemistry.cpp:3153 msgid "Group to symbol" msgstr "Групу у Ñимвол" -#: ../src/selection-chemistry.cpp:3221 +#: ../src/selection-chemistry.cpp:3172 msgid "Select a symbol to extract objects from." msgstr "Позначте Ñимвол Ð´Ð»Ñ Ð²Ð¸Ð´Ð¾Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð· нього об’єктів." -#: ../src/selection-chemistry.cpp:3230 +#: ../src/selection-chemistry.cpp:3181 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "" "Позначте лише один Ñимвол у діалоговому вікні Ñимволів Ð´Ð»Ñ " "Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° групу." -#: ../src/selection-chemistry.cpp:3288 +#: ../src/selection-chemistry.cpp:3237 msgid "Group from symbol" msgstr "Група з Ñимволу" -#: ../src/selection-chemistry.cpp:3306 +#: ../src/selection-chemistry.cpp:3255 msgid "Select object(s) to convert to pattern." msgstr "Позначте об'єкт(и) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñƒ візерунок." -#: ../src/selection-chemistry.cpp:3405 +#: ../src/selection-chemistry.cpp:3351 msgid "Objects to pattern" msgstr "Об'єкти у візерунок" -#: ../src/selection-chemistry.cpp:3421 +#: ../src/selection-chemistry.cpp:3367 msgid "Select an object with pattern fill to extract objects from." msgstr "" "Позначте об'єкт із заповненнÑм візерунком Ð´Ð»Ñ Ð²Ð¸Ñ‚ÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±'єктів з " "нього." -#: ../src/selection-chemistry.cpp:3482 +#: ../src/selection-chemistry.cpp:3426 msgid "No pattern fills in the selection." msgstr "У позначеному немає Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼." -#: ../src/selection-chemistry.cpp:3485 +#: ../src/selection-chemistry.cpp:3429 msgid "Pattern to objects" msgstr "Візерунок у об'єкти" -#: ../src/selection-chemistry.cpp:3576 +#: ../src/selection-chemistry.cpp:3516 msgid "Select object(s) to make a bitmap copy." msgstr "Позначте об'єкти Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ—Ñ…Ð½ÑŒÐ¾Ñ— раÑтрової копії." -#: ../src/selection-chemistry.cpp:3580 +#: ../src/selection-chemistry.cpp:3520 msgid "Rendering bitmap..." msgstr "Показ раÑтрового зображеннÑ…" -#: ../src/selection-chemistry.cpp:3767 +#: ../src/selection-chemistry.cpp:3705 msgid "Create bitmap" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ð°Ñтрового зображеннÑ" -#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 +#: ../src/selection-chemistry.cpp:3730 ../src/selection-chemistry.cpp:3842 msgid "Select object(s) to create clippath or mask from." msgstr "" "Оберіть об'єкт(и) Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð· них контуру Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ маÑки." -#: ../src/selection-chemistry.cpp:3885 +#: ../src/selection-chemistry.cpp:3816 msgid "Create Clip Group" msgstr "Створити групу-обгортку" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:3845 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "" "Оберіть об'єкт-маÑку та об'єкт(и) Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ " "маÑкуваннÑ." -#: ../src/selection-chemistry.cpp:4095 +#: ../src/selection-chemistry.cpp:3992 msgid "Set clipping path" msgstr "Задати контур вирізаннÑ" -#: ../src/selection-chemistry.cpp:4097 +#: ../src/selection-chemistry.cpp:3994 msgid "Set mask" msgstr "Задати маÑку" -#: ../src/selection-chemistry.cpp:4112 +#: ../src/selection-chemistry.cpp:4009 msgid "Select object(s) to remove clippath or mask from." msgstr "" "Оберіть об'єкт(и) Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñƒ Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ маÑкуваннÑ." -#: ../src/selection-chemistry.cpp:4232 +#: ../src/selection-chemistry.cpp:4125 msgid "Release clipping path" msgstr "Від'єднати закріплений контур" -#: ../src/selection-chemistry.cpp:4234 +#: ../src/selection-chemistry.cpp:4127 msgid "Release mask" msgstr "МаÑку знÑто" -#: ../src/selection-chemistry.cpp:4253 +#: ../src/selection-chemistry.cpp:4146 msgid "Select object(s) to fit canvas to." msgstr "Оберіть об'єкт(и) Ð´Ð»Ñ Ð¿Ñ–Ð´Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ñ—Ñ…Ð½Ñ–Ñ… розмірів під полотно." #. Fit Page -#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4166 ../src/verbs.cpp:2961 msgid "Fit Page to Selection" msgstr "Підігнати полотно до позначеної облаÑті" -#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4195 ../src/verbs.cpp:2963 msgid "Fit Page to Drawing" msgstr "Підігнати полотно під намальоване" -#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4216 ../src/verbs.cpp:2965 msgid "Fit Page to Selection or Drawing" msgstr "Підігнати полотно під позначену облаÑть чи облаÑть креÑленнÑ" @@ -12814,23 +12812,23 @@ msgstr "" "Центр Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° нахилу: його можна перетÑгнути; зміна розміру з " "Shift також відбуваєтьÑÑ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ нього" -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:981 +#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:980 msgid "Skew" msgstr "Ðахил" -#: ../src/seltrans.cpp:499 +#: ../src/seltrans.cpp:500 msgid "Set center" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ" -#: ../src/seltrans.cpp:574 +#: ../src/seltrans.cpp:573 msgid "Stamp" msgstr "Штамп" -#: ../src/seltrans.cpp:723 +#: ../src/seltrans.cpp:722 msgid "Reset center" msgstr "ÐŸÐ¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ початкового центру" -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#: ../src/seltrans.cpp:954 ../src/seltrans.cpp:1059 #, c-format msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "" @@ -12838,24 +12836,24 @@ msgstr "" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1199 +#: ../src/seltrans.cpp:1198 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" msgstr "Ðахил: %0.2f°; з Ctrl — обмежити кут" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1274 +#: ../src/seltrans.cpp:1273 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" msgstr "ОбертаннÑ: %0.2f°; з Ctrl — обмежити кут" -#: ../src/seltrans.cpp:1311 +#: ../src/seltrans.cpp:1310 #, c-format msgid "Move center to %s, %s" msgstr "ПереміÑтити центр до %s, %s" -#: ../src/seltrans.cpp:1465 +#: ../src/seltrans.cpp:1464 #, c-format msgid "" "Move by %s, %s; with Ctrl to restrict to horizontal/vertical; " @@ -12869,8 +12867,8 @@ msgstr "" msgid "Keyboard directory (%s) is unavailable." msgstr "Каталог з параметрами клавіатури (%s) недоÑтупний." -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1298 -#: ../src/ui/dialog/export.cpp:1332 +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1296 +#: ../src/ui/dialog/export.cpp:1330 msgid "Select a filename for exporting" msgstr "Виберіть назву файла Ð´Ð»Ñ ÐµÐºÑпорту" @@ -12887,22 +12885,22 @@ msgstr "до %s" msgid "without URI" msgstr "без адреÑи" -#: ../src/sp-ellipse.cpp:344 +#: ../src/sp-ellipse.cpp:361 msgid "Segment" msgstr "Відрізок" -#: ../src/sp-ellipse.cpp:346 +#: ../src/sp-ellipse.cpp:363 msgid "Arc" msgstr "Дуга" #. Ellipse -#: ../src/sp-ellipse.cpp:349 ../src/sp-ellipse.cpp:356 +#: ../src/sp-ellipse.cpp:366 ../src/sp-ellipse.cpp:373 #: ../src/ui/dialog/inkscape-preferences.cpp:412 #: ../src/widgets/pencil-toolbar.cpp:163 msgid "Ellipse" msgstr "ЕліпÑ" -#: ../src/sp-ellipse.cpp:353 +#: ../src/sp-ellipse.cpp:370 msgid "Circle" msgstr "Коло" @@ -12928,7 +12926,7 @@ msgid "Linked Flowed Text" msgstr "Пов’Ñзаний контурний текÑÑ‚" #: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 -#: ../src/ui/tools/text-tool.cpp:1557 +#: ../src/ui/tools/text-tool.cpp:1556 msgid " [truncated]" msgstr " (обрізано)" @@ -12944,7 +12942,7 @@ msgstr[2] "(%d Ñимволів%s)" msgid "Create Guides Around the Page" msgstr "Створити напрÑмні навколо Ñторінки" -#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2518 msgid "Delete All Guides" msgstr "Вилучити вÑÑ– напрÑмні" @@ -12990,40 +12988,40 @@ msgstr "[помилкове поÑиланнÑ]: %s" msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:322 +#: ../src/sp-item-group.cpp:307 msgid "Group" msgstr "Згрупувати" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d object" msgstr "з %d об'єкта" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d objects" msgstr "з %d об'єкта" -#: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 +#: ../src/sp-item.cpp:1042 ../src/verbs.cpp:213 msgid "Object" msgstr "Об'єкт" -#: ../src/sp-item.cpp:1063 +#: ../src/sp-item.cpp:1054 #, c-format msgid "%s; clipped" msgstr "%s; закріплено" -#: ../src/sp-item.cpp:1069 +#: ../src/sp-item.cpp:1060 #, c-format msgid "%s; masked" msgstr "%s; маÑковано" -#: ../src/sp-item.cpp:1079 +#: ../src/sp-item.cpp:1070 #, c-format msgid "%s; filtered (%s)" msgstr "%s; відфільтровано (%s)" -#: ../src/sp-item.cpp:1081 +#: ../src/sp-item.cpp:1072 #, c-format msgid "%s; filtered" msgstr "%s; відфільтровано" @@ -13086,7 +13084,7 @@ msgid "Polyline" msgstr "ПолілініÑ" #. Rectangle -#: ../src/sp-rect.cpp:153 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Rectangle" msgstr "ПрÑмокутник" @@ -13105,11 +13103,11 @@ msgstr "з %3f обертами" #. Star #: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 -#: ../src/widgets/star-toolbar.cpp:471 +#: ../src/widgets/star-toolbar.cpp:469 msgid "Star" msgstr "Зірка" -#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:464 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:462 msgid "Polygon" msgstr "Багатокутник" @@ -13126,11 +13124,11 @@ msgstr "з %d вершиною" msgid "with %d vertices" msgstr "з %d вершинами" -#: ../src/sp-switch.cpp:62 +#: ../src/sp-switch.cpp:63 msgid "Conditional Group" msgstr "Умовна група" -#: ../src/sp-text.cpp:351 ../src/verbs.cpp:348 +#: ../src/sp-text.cpp:351 ../src/verbs.cpp:347 #: ../share/extensions/lorem_ipsum.inx.h:8 #: ../share/extensions/replace_font.inx.h:11 #: ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 @@ -13163,7 +13161,7 @@ msgstr "Клоновані Ñимвольні дані" msgid " from " msgstr " з " -#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:269 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:271 msgid "[orphaned]" msgstr "[оÑиротілий]" @@ -13171,30 +13169,30 @@ msgstr "[оÑиротілий]" msgid "Text Span" msgstr "Блок текÑту" -#: ../src/sp-use.cpp:232 +#: ../src/sp-use.cpp:234 msgid "Symbol" msgstr "Символ" -#: ../src/sp-use.cpp:234 +#: ../src/sp-use.cpp:236 msgid "Clone" msgstr "Клон" -#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 ../src/sp-use.cpp:248 #, c-format msgid "called %s" msgstr "викликано %s" -#: ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:248 msgid "Unnamed Symbol" msgstr "Символ без назви" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:255 +#: ../src/sp-use.cpp:257 msgid "..." msgstr "…" -#: ../src/sp-use.cpp:264 +#: ../src/sp-use.cpp:266 #, c-format msgid "of: %s" msgstr "з: %s" @@ -13239,84 +13237,84 @@ msgstr "" "об'єктів, позначених Ð´Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— різниці, виключного ÐБО, Ð´Ñ–Ð»ÐµÐ½Ð½Ñ " "Ñ€Ð¾Ð·Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñƒ." -#: ../src/splivarot.cpp:407 +#: ../src/splivarot.cpp:406 msgid "" "One of the objects is not a path, cannot perform boolean operation." msgstr "Один з об'єктів не Ñ” контуром, логічна Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ð°." -#: ../src/splivarot.cpp:1157 +#: ../src/splivarot.cpp:1150 msgid "Select stroked path(s) to convert stroke to path." msgstr "Оберіть контур(и) з штрихів Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð° контур." -#: ../src/splivarot.cpp:1516 +#: ../src/splivarot.cpp:1506 msgid "Convert stroke to path" msgstr "Перетворити штрих на контур" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 +#: ../src/splivarot.cpp:1509 msgid "No stroked paths in the selection." msgstr "У позначеному немає контурів зі штрихів." -#: ../src/splivarot.cpp:1590 +#: ../src/splivarot.cpp:1580 msgid "Selected object is not a path, cannot inset/outset." msgstr "" "позначений об'єкт не Ñ” контуром, втÑгуваннÑ/розтÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ñ–." -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +#: ../src/splivarot.cpp:1671 ../src/splivarot.cpp:1738 msgid "Create linked offset" msgstr "Створити зв'Ñзану втÑжку" -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +#: ../src/splivarot.cpp:1672 ../src/splivarot.cpp:1739 msgid "Create dynamic offset" msgstr "Створити динамічний відÑтуп" -#: ../src/splivarot.cpp:1772 +#: ../src/splivarot.cpp:1764 msgid "Select path(s) to inset/outset." msgstr "Позначте контур(и) Ð´Ð»Ñ Ð²Ñ‚ÑгуваннÑ/розтÑгуваннÑ." -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Outset path" msgstr "РозтÑгнений контур" -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Inset path" msgstr "Ð’Ñ‚Ñгнутий контур" -#: ../src/splivarot.cpp:1970 +#: ../src/splivarot.cpp:1959 msgid "No paths to inset/outset in the selection." msgstr "У позначеному немає контурів Ð´Ð»Ñ Ð²Ñ‚ÑгуваннÑ/розтÑгуваннÑ." -#: ../src/splivarot.cpp:2132 +#: ../src/splivarot.cpp:2121 msgid "Simplifying paths (separately):" msgstr "Ð¡Ð¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð² (окремо):" -#: ../src/splivarot.cpp:2134 +#: ../src/splivarot.cpp:2123 msgid "Simplifying paths:" msgstr "Ð¡Ð¿Ñ€Ð¾Ñ‰ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð²:" -#: ../src/splivarot.cpp:2171 +#: ../src/splivarot.cpp:2160 #, c-format msgid "%s %d of %d paths simplified..." msgstr "%s %d з %d контурів Ñпрощено…" -#: ../src/splivarot.cpp:2184 +#: ../src/splivarot.cpp:2173 #, c-format msgid "%d paths simplified." msgstr "%d контурів Ñпрощено." -#: ../src/splivarot.cpp:2198 +#: ../src/splivarot.cpp:2187 msgid "Select path(s) to simplify." msgstr "Позначте контур(и) Ð´Ð»Ñ ÑпрощеннÑ." -#: ../src/splivarot.cpp:2214 +#: ../src/splivarot.cpp:2203 msgid "No paths to simplify in the selection." msgstr "У позначеному немає контурів Ð´Ð»Ñ ÑпрощеннÑ." -#: ../src/text-chemistry.cpp:94 +#: ../src/text-chemistry.cpp:91 msgid "Select a text and a path to put text on path." msgstr "Позначте текÑÑ‚ та контур Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту за контуром." -#: ../src/text-chemistry.cpp:99 +#: ../src/text-chemistry.cpp:96 msgid "" "This text object is already put on a path. Remove it from the path " "first. Use Shift+D to look up its path." @@ -13325,7 +13323,7 @@ msgstr "" "контуру. ÐатиÑніть Shift+D Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ до його контуру." #. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 +#: ../src/text-chemistry.cpp:102 msgid "" "You cannot put text on a rectangle in this version. Convert rectangle to " "path first." @@ -13333,37 +13331,37 @@ msgstr "" "У цій верÑÑ–Ñ— програми не можна розміщувати текÑÑ‚ вздовж контуру " "прÑмокутника. Перетворіть прÑмокутник у контур Ñ– Ñпробуйте знову." -#: ../src/text-chemistry.cpp:115 +#: ../src/text-chemistry.cpp:112 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 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2540 msgid "Put text on path" msgstr "РозміÑтити текÑÑ‚ вздовж контуру" -#: ../src/text-chemistry.cpp:197 +#: ../src/text-chemistry.cpp:194 msgid "Select a text on path to remove it from path." msgstr "Позначте текÑÑ‚ вздовж контуру, щоб вилучити його з контуру." -#: ../src/text-chemistry.cpp:218 +#: ../src/text-chemistry.cpp:213 msgid "No texts-on-paths in the selection." msgstr "У позначеному немає текÑту на контурі." -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2542 msgid "Remove text from path" msgstr "ЗнÑти текÑÑ‚ з контуру" -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +#: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 msgid "Select text(s) to remove kerns from." msgstr "Позначте текÑÑ‚ Ð´Ð»Ñ Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñ€ÑƒÑ‡Ð½Ð¾Ð³Ð¾ міжлітерного інтервалу." -#: ../src/text-chemistry.cpp:286 +#: ../src/text-chemistry.cpp:280 msgid "Remove manual kerns" msgstr "Вилучити ручний міжлітерний інтервал" -#: ../src/text-chemistry.cpp:306 +#: ../src/text-chemistry.cpp:300 msgid "" "Select a text and one or more paths or shapes to flow text " "into frame." @@ -13371,31 +13369,31 @@ msgstr "" "Позначте текÑÑ‚ та контур чи фігуру Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚ÐµÐºÑту у " "рамку." -#: ../src/text-chemistry.cpp:376 +#: ../src/text-chemistry.cpp:369 msgid "Flow text into shape" msgstr "ВерÑÑ‚Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту у фігуру" -#: ../src/text-chemistry.cpp:398 +#: ../src/text-chemistry.cpp:391 msgid "Select a flowed text to unflow it." msgstr "Позначте текÑÑ‚ у рамці, щоб вийнÑти його з рамки." -#: ../src/text-chemistry.cpp:472 +#: ../src/text-chemistry.cpp:464 msgid "Unflow flowed text" msgstr "Зробити текÑÑ‚ неконтурним" -#: ../src/text-chemistry.cpp:484 +#: ../src/text-chemistry.cpp:476 msgid "Select flowed text(s) to convert." msgstr "Оберіть контурний текÑÑ‚(и) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ." -#: ../src/text-chemistry.cpp:502 +#: ../src/text-chemistry.cpp:494 msgid "The flowed text(s) must be visible in order to be converted." msgstr "Ð”Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¢ÐµÐºÑÑ‚-вздовж-контуру має бути видимим." -#: ../src/text-chemistry.cpp:530 +#: ../src/text-chemistry.cpp:521 msgid "Convert flowed text to text" msgstr "ÐŸÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ð½Ð¾Ð³Ð¾ текÑту на звичайний" -#: ../src/text-chemistry.cpp:535 +#: ../src/text-chemistry.cpp:526 msgid "No flowed text(s) to convert in the selection." msgstr "У позначеному немає контурного текÑту(ів) Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ." @@ -13458,8 +13456,8 @@ msgstr "ВекторизаціÑ: Завершено. Створено %ld ву msgid "Nothing was copied." msgstr "Ðічого не було Ñкопійовано." -#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 -#: ../src/ui/clipboard.cpp:634 +#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:607 +#: ../src/ui/clipboard.cpp:636 msgid "Nothing on the clipboard." msgstr "У буфері обміну нічого немає." @@ -13479,16 +13477,16 @@ msgstr "Оберіть об'єкт(и) Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ msgid "No size on the clipboard." msgstr "У буфері обміну немає розмірів." -#: ../src/ui/clipboard.cpp:567 +#: ../src/ui/clipboard.cpp:568 msgid "Select object(s) to paste live path effect to." msgstr "Оберіть об'єкти Ð´Ð»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ ÐµÑ„ÐµÐºÑ‚Ñƒ динамічного контуру." #. no_effect: -#: ../src/ui/clipboard.cpp:592 +#: ../src/ui/clipboard.cpp:594 msgid "No effect on the clipboard." msgstr "У буфері обміну немає ефектів." -#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 +#: ../src/ui/clipboard.cpp:613 ../src/ui/clipboard.cpp:650 msgid "Clipboard does not contain a path." msgstr "У буфері обміну відÑутній контур." @@ -13540,252 +13538,252 @@ msgstr "" "МакÑим Дзюманенко (dziumanenko@gmail.com)\n" "Юрій Чорноіван (yurchor@ukr.net)" -#: ../src/ui/dialog/align-and-distribute.cpp:171 -#: ../src/ui/dialog/align-and-distribute.cpp:851 +#: ../src/ui/dialog/align-and-distribute.cpp:170 +#: ../src/ui/dialog/align-and-distribute.cpp:847 msgid "Align" msgstr "ВирівнюваннÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:341 -#: ../src/ui/dialog/align-and-distribute.cpp:852 +#: ../src/ui/dialog/align-and-distribute.cpp:338 +#: ../src/ui/dialog/align-and-distribute.cpp:848 msgid "Distribute" msgstr "РозÑтавити" -#: ../src/ui/dialog/align-and-distribute.cpp:420 +#: ../src/ui/dialog/align-and-distribute.cpp:417 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 +#: ../src/ui/dialog/align-and-distribute.cpp:419 msgctxt "Gap" msgid "_H:" msgstr "_Г:" -#: ../src/ui/dialog/align-and-distribute.cpp:430 +#: ../src/ui/dialog/align-and-distribute.cpp:427 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "Мінімальна вертикальна відÑтань (у точках) між рамками" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 +#: ../src/ui/dialog/align-and-distribute.cpp:429 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 +#: ../src/ui/dialog/align-and-distribute.cpp:464 +#: ../src/ui/dialog/align-and-distribute.cpp:850 +#: ../src/widgets/connector-toolbar.cpp:407 msgid "Remove overlaps" msgstr "Вилучити перекриттÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:498 -#: ../src/widgets/connector-toolbar.cpp:240 +#: ../src/ui/dialog/align-and-distribute.cpp:495 +#: ../src/widgets/connector-toolbar.cpp:236 msgid "Arrange connector network" msgstr "ВпорÑдкувати Ñітку з'єднувальних ліній" -#: ../src/ui/dialog/align-and-distribute.cpp:591 +#: ../src/ui/dialog/align-and-distribute.cpp:588 msgid "Exchange Positions" msgstr "ОбмінÑти позиціÑми" -#: ../src/ui/dialog/align-and-distribute.cpp:625 +#: ../src/ui/dialog/align-and-distribute.cpp:622 msgid "Unclump" msgstr "Розгрупувати" -#: ../src/ui/dialog/align-and-distribute.cpp:697 +#: ../src/ui/dialog/align-and-distribute.cpp:693 msgid "Randomize positions" msgstr "Зробити позиції випадковими" -#: ../src/ui/dialog/align-and-distribute.cpp:800 +#: ../src/ui/dialog/align-and-distribute.cpp:795 msgid "Distribute text baselines" msgstr "РозÑтавити базові Ñ€Ñдки текÑту" -#: ../src/ui/dialog/align-and-distribute.cpp:823 +#: ../src/ui/dialog/align-and-distribute.cpp:819 msgid "Align text baselines" msgstr "ВирівнÑти базові лінії текÑту" -#: ../src/ui/dialog/align-and-distribute.cpp:853 +#: ../src/ui/dialog/align-and-distribute.cpp:849 msgid "Rearrange" msgstr "ПеревпорÑдкувати" -#: ../src/ui/dialog/align-and-distribute.cpp:855 -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/ui/dialog/align-and-distribute.cpp:851 +#: ../src/widgets/toolbox.cpp:1725 msgid "Nodes" msgstr "Вузли" -#: ../src/ui/dialog/align-and-distribute.cpp:869 +#: ../src/ui/dialog/align-and-distribute.cpp:865 msgid "Relative to: " msgstr "ВідноÑно: " -#: ../src/ui/dialog/align-and-distribute.cpp:870 +#: ../src/ui/dialog/align-and-distribute.cpp:866 msgid "_Treat selection as group: " msgstr "Вва_жати вибране групою: " #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 -#: ../src/verbs.cpp:3025 +#: ../src/ui/dialog/align-and-distribute.cpp:872 ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2994 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 +#: ../src/ui/dialog/align-and-distribute.cpp:875 ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2996 msgid "Align left edges" msgstr "ВирівнÑти ліві Ñторони" -#: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 -#: ../src/verbs.cpp:3029 +#: ../src/ui/dialog/align-and-distribute.cpp:878 ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2998 msgid "Center on vertical axis" msgstr "Центрувати за вертикальною віÑÑÑŽ" -#: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 -#: ../src/verbs.cpp:3031 +#: ../src/ui/dialog/align-and-distribute.cpp:881 ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:3000 msgid "Align right sides" msgstr "ВирівнÑти праві Ñторони" -#: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 -#: ../src/verbs.cpp:3033 +#: ../src/ui/dialog/align-and-distribute.cpp:884 ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:3002 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 +#: ../src/ui/dialog/align-and-distribute.cpp:887 ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:3004 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 +#: ../src/ui/dialog/align-and-distribute.cpp:890 ../src/verbs.cpp:3005 +#: ../src/verbs.cpp:3006 msgid "Align top edges" msgstr "ВирівнÑти верхні Ñторони" -#: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 -#: ../src/verbs.cpp:3039 +#: ../src/ui/dialog/align-and-distribute.cpp:893 ../src/verbs.cpp:3007 +#: ../src/verbs.cpp:3008 msgid "Center on horizontal axis" msgstr "Центрувати на горизонтальній оÑÑ–" -#: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 -#: ../src/verbs.cpp:3041 +#: ../src/ui/dialog/align-and-distribute.cpp:896 ../src/verbs.cpp:3009 +#: ../src/verbs.cpp:3010 msgid "Align bottom edges" msgstr "ВирівнÑти нижні Ñторони" -#: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 -#: ../src/verbs.cpp:3043 +#: ../src/ui/dialog/align-and-distribute.cpp:899 ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:3012 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "ВирівнÑти верхні краї об'єктів до нижнього краю ÑкорÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:908 +#: ../src/ui/dialog/align-and-distribute.cpp:904 msgid "Align baseline anchors of texts horizontally" msgstr "Розташувати базову лінію текÑту горизонтально" -#: ../src/ui/dialog/align-and-distribute.cpp:911 +#: ../src/ui/dialog/align-and-distribute.cpp:907 msgid "Align baselines of texts" msgstr "ВирівнÑти базові лінії текÑту" -#: ../src/ui/dialog/align-and-distribute.cpp:916 +#: ../src/ui/dialog/align-and-distribute.cpp:912 msgid "Make horizontal gaps between objects equal" msgstr "Зробити однаковими інтервали між об'єктами по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:920 +#: ../src/ui/dialog/align-and-distribute.cpp:916 msgid "Distribute left edges equidistantly" msgstr "Рівномірно розподілити ліві краї" -#: ../src/ui/dialog/align-and-distribute.cpp:923 +#: ../src/ui/dialog/align-and-distribute.cpp:919 msgid "Distribute centers equidistantly horizontally" msgstr "РозÑтавити центри об'єктів на однаковій відÑтані по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:926 +#: ../src/ui/dialog/align-and-distribute.cpp:922 msgid "Distribute right edges equidistantly" msgstr "Рівномірно розподілити праві краї" -#: ../src/ui/dialog/align-and-distribute.cpp:930 +#: ../src/ui/dialog/align-and-distribute.cpp:926 msgid "Make vertical gaps between objects equal" msgstr "ВирівнÑти інтервали між об'єктами по вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:934 +#: ../src/ui/dialog/align-and-distribute.cpp:930 msgid "Distribute top edges equidistantly" msgstr "Рівномірно розподілити верхні краї" -#: ../src/ui/dialog/align-and-distribute.cpp:937 +#: ../src/ui/dialog/align-and-distribute.cpp:933 msgid "Distribute centers equidistantly vertically" msgstr "РозÑтавити центри об'єктів на однаковій відÑтані по вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:940 +#: ../src/ui/dialog/align-and-distribute.cpp:936 msgid "Distribute bottom edges equidistantly" msgstr "Рівномірно розподілити нижні краї" -#: ../src/ui/dialog/align-and-distribute.cpp:945 +#: ../src/ui/dialog/align-and-distribute.cpp:941 msgid "Distribute baseline anchors of texts horizontally" msgstr "Розподілити базові Ñкорі Ñимволів рівномірно по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:948 +#: ../src/ui/dialog/align-and-distribute.cpp:944 msgid "Distribute baselines of texts vertically" msgstr "Розподілити базові лінії текÑту вертикально" -#: ../src/ui/dialog/align-and-distribute.cpp:954 -#: ../src/widgets/connector-toolbar.cpp:373 +#: ../src/ui/dialog/align-and-distribute.cpp:950 +#: ../src/widgets/connector-toolbar.cpp:369 msgid "Nicely arrange selected connector network" msgstr "Гармонійно розташувати вибране з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¾Ð±'єктів" -#: ../src/ui/dialog/align-and-distribute.cpp:957 +#: ../src/ui/dialog/align-and-distribute.cpp:953 msgid "Exchange positions of selected objects - selection order" msgstr "Обмін позиціÑми позначених об'єктів — порÑдок позначеннÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:960 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Exchange positions of selected objects - stacking order" msgstr "Обмін позиціÑми позначених об'єктів — порÑдок ÑтоÑуваннÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:963 +#: ../src/ui/dialog/align-and-distribute.cpp:959 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "" "Обмін позиціÑми позначених об'єктів — циклічний перехід за годинниковою " "Ñтрілкою" -#: ../src/ui/dialog/align-and-distribute.cpp:968 +#: ../src/ui/dialog/align-and-distribute.cpp:964 msgid "Randomize centers in both dimensions" msgstr "Випадково розташувати центри у обох напрÑмках" -#: ../src/ui/dialog/align-and-distribute.cpp:971 +#: ../src/ui/dialog/align-and-distribute.cpp:967 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "" "Розгрупувати об'єкт: Ñпробувати вÑтановити рівну відÑтань між межами об'єктів" -#: ../src/ui/dialog/align-and-distribute.cpp:976 +#: ../src/ui/dialog/align-and-distribute.cpp:972 msgid "" "Move objects as little as possible so that their bounding boxes do not " "overlap" msgstr "" "Переміщувати об'єкти Ñкомога менше, так щоб їхні рамки не перекривалиÑÑ" -#: ../src/ui/dialog/align-and-distribute.cpp:984 +#: ../src/ui/dialog/align-and-distribute.cpp:980 msgid "Align selected nodes to a common horizontal line" msgstr "ВирівнÑти вибрані вузли до Ñпільної горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:987 +#: ../src/ui/dialog/align-and-distribute.cpp:983 msgid "Align selected nodes to a common vertical line" msgstr "ВирівнÑти вибрані вузли до Ñпільної вертикалі" -#: ../src/ui/dialog/align-and-distribute.cpp:990 +#: ../src/ui/dialog/align-and-distribute.cpp:986 msgid "Distribute selected nodes horizontally" msgstr "Розподілити вибрані вузли по горизонталі" -#: ../src/ui/dialog/align-and-distribute.cpp:993 +#: ../src/ui/dialog/align-and-distribute.cpp:989 msgid "Distribute selected nodes vertically" msgstr "Розподілити вибрані вузли по вертикалі" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:998 +#: ../src/ui/dialog/align-and-distribute.cpp:994 msgid "Last selected" msgstr "ОÑтанній позначений" -#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "First selected" msgstr "Перший позначений" -#: ../src/ui/dialog/align-and-distribute.cpp:1000 +#: ../src/ui/dialog/align-and-distribute.cpp:996 msgid "Biggest object" msgstr "Ðайбільший об'єкт" -#: ../src/ui/dialog/align-and-distribute.cpp:1001 +#: ../src/ui/dialog/align-and-distribute.cpp:997 msgid "Smallest object" msgstr "Ðайменший об'єкт" -#: ../src/ui/dialog/align-and-distribute.cpp:1004 +#: ../src/ui/dialog/align-and-distribute.cpp:1000 msgid "Selection Area" msgstr "Позначена облаÑть" @@ -14485,19 +14483,19 @@ msgstr "Об'єкт не має мозаїчних клонів." msgid "Select one object whose tiled clones to unclump." msgstr "Позначте один об'єкт, клони Ñкого Ñлід розгрупувати." -#: ../src/ui/dialog/clonetiler.cpp:2122 +#: ../src/ui/dialog/clonetiler.cpp:2120 msgid "Unclump tiled clones" msgstr "Розгрупувати мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2151 +#: ../src/ui/dialog/clonetiler.cpp:2149 msgid "Select one object whose tiled clones to remove." msgstr "Позначте один об'єкт, клони Ñкого Ñлід вилучити." -#: ../src/ui/dialog/clonetiler.cpp:2176 +#: ../src/ui/dialog/clonetiler.cpp:2174 msgid "Delete tiled clones" msgstr "Вилучити мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2229 +#: ../src/ui/dialog/clonetiler.cpp:2227 msgid "" "If you want to clone several objects, group them and clone the " "group." @@ -14505,27 +14503,27 @@ msgstr "" "Ð”Ð»Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾Ñ… об'єктів, згрупуйте Ñ—Ñ… та клонуйте групу." -#: ../src/ui/dialog/clonetiler.cpp:2238 +#: ../src/ui/dialog/clonetiler.cpp:2236 msgid "Creating tiled clones..." msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¼Ð¾Ð·Ð°Ñ—Ñ‡Ð½Ð¸Ñ… клонів…" -#: ../src/ui/dialog/clonetiler.cpp:2654 +#: ../src/ui/dialog/clonetiler.cpp:2652 msgid "Create tiled clones" msgstr "Створити мозаїку з клонів" -#: ../src/ui/dialog/clonetiler.cpp:2887 +#: ../src/ui/dialog/clonetiler.cpp:2885 msgid "Per row:" msgstr "Ðа Ñ€Ñдок:" -#: ../src/ui/dialog/clonetiler.cpp:2905 +#: ../src/ui/dialog/clonetiler.cpp:2903 msgid "Per column:" msgstr "Ðа Ñтовпчик:" -#: ../src/ui/dialog/clonetiler.cpp:2913 +#: ../src/ui/dialog/clonetiler.cpp:2911 msgid "Randomize:" msgstr "ВипадковіÑть:" -#: ../src/ui/dialog/color-item.cpp:131 +#: ../src/ui/dialog/color-item.cpp:127 #, c-format msgid "" "Color: %s; Click to set fill, Shift+click to set stroke" @@ -14533,47 +14531,47 @@ msgstr "" "Колір: %s; ÐšÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð²Ñтановить колір заповненнÑ, Shift" "+ÐšÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð²Ñтановить колір штриха" -#: ../src/ui/dialog/color-item.cpp:509 +#: ../src/ui/dialog/color-item.cpp:505 msgid "Change color definition" msgstr "Зміна Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove stroke color" msgstr "Вилучити колір штриха" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove fill color" msgstr "Вилучити колір заповненнÑ" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set stroke color to none" msgstr "ЗнÑти колір з штриха" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set fill color to none" msgstr "ЗнÑти колір заповненнÑ" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set stroke color from swatch" msgstr "Ð’Ñтановити колір штриха зі зразків" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set fill color from swatch" msgstr "Ð’Ñтановити колір Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ñ– зразків" -#: ../src/ui/dialog/debug.cpp:73 +#: ../src/ui/dialog/debug.cpp:69 msgid "Messages" msgstr "ПовідомленнÑ" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +#: ../src/ui/dialog/debug.cpp:83 ../src/ui/dialog/messages.cpp:47 msgid "_Clear" msgstr "О_чиÑтити" -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:48 msgid "Capture log messages" msgstr "Перехоплювати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ" -#: ../src/ui/dialog/debug.cpp:95 +#: ../src/ui/dialog/debug.cpp:91 msgid "Release log messages" msgstr "Вимкнути Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ" @@ -14833,11 +14831,11 @@ msgid "Remove selected grid." msgstr "Вилучити вибрану Ñітку." #: ../src/ui/dialog/document-properties.cpp:161 -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1832 msgid "Guides" msgstr "ÐапрÑмні" -#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2827 +#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2796 msgid "Snap" msgstr "ПрилипаннÑ" @@ -14881,7 +14879,7 @@ msgstr "Інше" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:3008 +#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:2977 msgid "Link Color Profile" msgstr "Пов'Ñзати профіль кольорів" @@ -15005,45 +15003,45 @@ msgstr "СтвореннÑ" msgid "Defined grids" msgstr "Визначені Ñітки" -#: ../src/ui/dialog/document-properties.cpp:1653 +#: ../src/ui/dialog/document-properties.cpp:1654 msgid "Remove grid" msgstr "Вилучити Ñітку" -#: ../src/ui/dialog/document-properties.cpp:1741 +#: ../src/ui/dialog/document-properties.cpp:1746 msgid "Changed default display unit" msgstr "Змінено типову одиницю виміру" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2879 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2848 msgid "_Page" msgstr "_Сторінка" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2883 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2852 msgid "_Drawing" msgstr "_Малюнок" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2885 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2854 msgid "_Selection" msgstr "Поз_начене" -#: ../src/ui/dialog/export.cpp:151 +#: ../src/ui/dialog/export.cpp:147 msgid "_Custom" msgstr "_Інше" -#: ../src/ui/dialog/export.cpp:169 ../src/widgets/measure-toolbar.cpp:99 +#: ../src/ui/dialog/export.cpp:165 ../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 +#: ../src/ui/dialog/export.cpp:167 msgid "_Export As..." msgstr "_ЕкÑпортувати Ñк…" -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "B_atch export all selected objects" msgstr "Па_кетний екÑпорт уÑÑ–Ñ… позначених об'єктів" -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "" "Export each selected object into its own PNG file, using export hints if any " "(caution, overwrites without asking!)" @@ -15052,88 +15050,88 @@ msgstr "" "підказки екÑпорту, Ñкщо вони Ñ” (заÑтереженнÑ, Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿Ð¸Ñ Ð²ÐµÐ´ÐµÑ‚ÑŒÑÑ Ð±ÐµÐ· " "попередженнÑ!)" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "Hide a_ll except selected" msgstr "С_ховати вÑе за винÑтком позначених" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "In the exported image, hide all objects except those that are selected" msgstr "" "Ð’ екÑпортованому зображенні приховувати вÑÑ– об'єкти, за винÑтком позначених" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Close when complete" msgstr "Закрити піÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Once the export completes, close this dialog" msgstr "ПіÑÐ»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ ÐµÐºÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°ÐºÑ€Ð¸Ñ‚Ð¸ це діалогове вікно" -#: ../src/ui/dialog/export.cpp:179 +#: ../src/ui/dialog/export.cpp:175 msgid "_Export" msgstr "_ЕкÑпортувати" -#: ../src/ui/dialog/export.cpp:197 +#: ../src/ui/dialog/export.cpp:193 msgid "Export area" msgstr "ЕкÑпортувати ділÑнку" -#: ../src/ui/dialog/export.cpp:236 +#: ../src/ui/dialog/export.cpp:232 msgid "_x0:" msgstr "_x0:" -#: ../src/ui/dialog/export.cpp:240 +#: ../src/ui/dialog/export.cpp:236 msgid "x_1:" msgstr "x_1:" -#: ../src/ui/dialog/export.cpp:244 +#: ../src/ui/dialog/export.cpp:240 msgid "Wid_th:" msgstr "Ши_рина:" -#: ../src/ui/dialog/export.cpp:248 +#: ../src/ui/dialog/export.cpp:244 msgid "_y0:" msgstr "_y0:" -#: ../src/ui/dialog/export.cpp:252 +#: ../src/ui/dialog/export.cpp:248 msgid "y_1:" msgstr "y_1:" -#: ../src/ui/dialog/export.cpp:256 +#: ../src/ui/dialog/export.cpp:252 msgid "Hei_ght:" msgstr "Ви_Ñота:" -#: ../src/ui/dialog/export.cpp:271 +#: ../src/ui/dialog/export.cpp:267 msgid "Image size" msgstr "Розмір зображеннÑ" -#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/export.cpp:300 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/export.cpp:296 msgid "pixels at" msgstr "точок" -#: ../src/ui/dialog/export.cpp:295 +#: ../src/ui/dialog/export.cpp:291 msgid "dp_i" msgstr "dp_i" -#: ../src/ui/dialog/export.cpp:300 ../src/ui/dialog/transformation.cpp:80 -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/dialog/export.cpp:296 ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "_Height:" msgstr "_ВиÑота:" -#: ../src/ui/dialog/export.cpp:308 +#: ../src/ui/dialog/export.cpp:304 #: ../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 +#: ../src/ui/dialog/export.cpp:312 msgid "_Filename" msgstr "_Ðазва файла" -#: ../src/ui/dialog/export.cpp:358 +#: ../src/ui/dialog/export.cpp:354 msgid "Export the bitmap file with these settings" msgstr "ЕкÑпортувати файл з цими параметрами" -#: ../src/ui/dialog/export.cpp:611 +#: ../src/ui/dialog/export.cpp:607 #, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" @@ -15141,81 +15139,81 @@ msgstr[0] "Па_кетний екÑпорт %d позначеного об'єк msgstr[1] "Па_кетний екÑпорт %d позначених об'єктів" msgstr[2] "Па_кетний екÑпорт %d позначених об'єктів" -#: ../src/ui/dialog/export.cpp:927 +#: ../src/ui/dialog/export.cpp:923 msgid "Export in progress" msgstr "Триває екÑпортуваннÑ" -#: ../src/ui/dialog/export.cpp:1017 +#: ../src/ui/dialog/export.cpp:1013 msgid "No items selected." msgstr "Ðе позначено жодного пункту." -#: ../src/ui/dialog/export.cpp:1021 ../src/ui/dialog/export.cpp:1023 +#: ../src/ui/dialog/export.cpp:1017 ../src/ui/dialog/export.cpp:1019 msgid "Exporting %1 files" msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %1 файлів" -#: ../src/ui/dialog/export.cpp:1063 ../src/ui/dialog/export.cpp:1065 +#: ../src/ui/dialog/export.cpp:1060 ../src/ui/dialog/export.cpp:1062 #, c-format msgid "Exporting file %s..." msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° %s…" -#: ../src/ui/dialog/export.cpp:1074 ../src/ui/dialog/export.cpp:1165 +#: ../src/ui/dialog/export.cpp:1071 ../src/ui/dialog/export.cpp:1163 #, c-format msgid "Could not export to filename %s.\n" msgstr "Ðе вдаєтьÑÑ ÐµÐºÑпортувати до файла %s.\n" -#: ../src/ui/dialog/export.cpp:1077 +#: ../src/ui/dialog/export.cpp:1074 #, c-format msgid "Could not export to filename %s." msgstr "Ðе вдалоÑÑ ÐµÐºÑпортувати до файла %s." -#: ../src/ui/dialog/export.cpp:1092 +#: ../src/ui/dialog/export.cpp:1089 #, c-format msgid "Successfully exported %d files from %d selected items." msgstr "УÑпішно екÑпортовано %d файлів з %d позначених пунктів." -#: ../src/ui/dialog/export.cpp:1103 +#: ../src/ui/dialog/export.cpp:1100 msgid "You have to enter a filename." msgstr "Слід вказати назву файла." -#: ../src/ui/dialog/export.cpp:1104 +#: ../src/ui/dialog/export.cpp:1101 msgid "You have to enter a filename" msgstr "Ðеобхідно ввеÑти назву файла" -#: ../src/ui/dialog/export.cpp:1118 +#: ../src/ui/dialog/export.cpp:1115 msgid "The chosen area to be exported is invalid." msgstr "Ðекоректна облаÑть Ð´Ð»Ñ ÐµÐºÑпортуваннÑ." -#: ../src/ui/dialog/export.cpp:1119 +#: ../src/ui/dialog/export.cpp:1116 msgid "The chosen area to be exported is invalid" msgstr "Ðекоректна облаÑть Ð´Ð»Ñ ÐµÐºÑпорту" -#: ../src/ui/dialog/export.cpp:1134 +#: ../src/ui/dialog/export.cpp:1131 #, c-format msgid "Directory %s does not exist or is not a directory.\n" msgstr "Каталог %s не Ñ–Ñнує, або ж це не каталог.\n" #. 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 +#: ../src/ui/dialog/export.cpp:1145 ../src/ui/dialog/export.cpp:1147 msgid "Exporting %1 (%2 x %3)" msgstr "ЕкÑÐ¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ %1 (%2 ⨯ %3)" -#: ../src/ui/dialog/export.cpp:1176 +#: ../src/ui/dialog/export.cpp:1174 #, c-format msgid "Drawing exported to %s." msgstr "Малюнок екÑпортовано до %s." -#: ../src/ui/dialog/export.cpp:1180 +#: ../src/ui/dialog/export.cpp:1178 msgid "Export aborted." msgstr "ЕкÑпорт перервано." -#: ../src/ui/dialog/export.cpp:1301 ../src/ui/interface.cpp:1392 +#: ../src/ui/dialog/export.cpp:1299 ../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 +#: ../src/ui/dialog/export.cpp:1300 ../src/ui/dialog/input.cpp:1082 +#: ../src/verbs.cpp:2406 ../src/widgets/desktop-widget.cpp:1123 msgid "_Save" msgstr "З_берегти" @@ -15223,8 +15221,8 @@ msgstr "З_берегти" 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 +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 +#: ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 #: ../share/extensions/color_custom.inx.h:7 #: ../share/extensions/color_randomize.inx.h:6 #: ../share/extensions/dots.inx.h:7 @@ -15296,36 +15294,36 @@ msgstr "Дозволити переглÑд" #: ../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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:286 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:417 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:287 msgid "All Inkscape Files" msgstr "УÑÑ– файли Inkscape" #: ../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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:288 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:289 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 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:290 msgid "All Bitmaps" msgstr "Ð’ÑÑ– раÑтрові" @@ -15385,8 +15383,8 @@ msgstr "Роздільна здатніÑть (у Ñ‚./дюйм)" msgid "Document" msgstr "Документ" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:176 -#: ../src/widgets/desktop-widget.cpp:2000 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:175 +#: ../src/widgets/desktop-widget.cpp:2002 #: ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "позначене" @@ -15408,15 +15406,15 @@ msgstr "Cairo" msgid "Antialias" msgstr "Плавне змінюваннÑ" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:418 msgid "All Executable Files" msgstr "УÑÑ– виконувані файли" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:610 msgid "Show Preview" msgstr "Показати попередній переглÑд" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:748 msgid "No file selected" msgstr "Ðе вибрано файла" @@ -15433,7 +15431,7 @@ msgid "Stroke st_yle" msgstr "С_тиль штриха" #. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +#: ../src/ui/dialog/filter-effects-dialog.cpp:547 msgid "" "This matrix determines a linear transform on color space. Each line affects " "one of the color components. Each column determines how much of each color " @@ -15446,64 +15444,64 @@ msgstr "" "не залежить від вхідних кольорів, отже, може бути викориÑтаний Ð´Ð»Ñ " "Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñталого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ компоненті." -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 +#: ../src/ui/dialog/filter-effects-dialog.cpp:550 #: ../share/extensions/grid_polar.inx.h:4 msgctxt "Label" msgid "None" msgstr "Ðемає" -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +#: ../src/ui/dialog/filter-effects-dialog.cpp:657 msgid "Image File" msgstr "Файл зображеннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +#: ../src/ui/dialog/filter-effects-dialog.cpp:660 msgid "Selected SVG Element" msgstr "Вибраний елемент SVG" #. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:730 msgid "Select an image to be used as feImage input" msgstr "Оберіть зображеннÑ, що буде викориÑтано Ñк вхідні дані feImage" -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +#: ../src/ui/dialog/filter-effects-dialog.cpp:822 msgid "This SVG filter effect does not require any parameters." msgstr "Цей примітив ефекту SVG не потребує параметрів." -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +#: ../src/ui/dialog/filter-effects-dialog.cpp:828 msgid "This SVG filter effect is not yet implemented in Inkscape." msgstr "Цей фільтр ефекту SVG ще не реалізовано у Inkscape." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 msgid "Slope" msgstr "ПерÑпектива" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1043 msgid "Intercept" msgstr "Перетин" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 msgid "Amplitude" msgstr "Ðмплітуда" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 msgid "Exponent" msgstr "ЕкÑпонента" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1144 msgid "New transfer function type" msgstr "Тип нової функції перенеÑеннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1179 msgid "Light Source:" msgstr "Джерело Ñвітла:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Direction angle for the light source on the XY plane, in degrees" msgstr "" "Кут напрÑмку, під Ñким джерело Ñвітла знаходитьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ñно площини XY (у " "градуÑах)" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Direction angle for the light source on the YZ plane, in degrees" msgstr "" "Кут напрÑмку, під Ñким джерело Ñвітла знаходитьÑÑ Ð²Ñ–Ð´Ð½Ð¾Ñно площини YZ (у " @@ -15512,47 +15510,47 @@ msgstr "" #. default x: #. default y: #. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 msgid "Location:" msgstr "РозташуваннÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "X coordinate" msgstr "Координата X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Y coordinate" msgstr "Координата Y" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1202 -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1203 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Z coordinate" msgstr "Координата Z" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Points At" msgstr "Вказує на" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Specular Exponent" msgstr "Степінь відбиттÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Exponent value controlling the focus for the light source" msgstr "Показник екÑпоненти, що керує фокуÑом джерела Ñвітла" #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "Cone Angle" msgstr "Кут конуÑа" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "" "This is the angle between the spot light axis (i.e. the axis between the " "light source and the point to which it is pointing at) and the spot light " @@ -15562,111 +15560,111 @@ msgstr "" "Ñвітла Ñ– точку, на Ñку його ÑпрÑмовано) Ñ– конуÑом прожектора. За межі конуÑа " "Ñвітло не проектуєтьÑÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1275 msgid "New light source" msgstr "Ðове джерело Ñвітла" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1326 msgid "_Duplicate" msgstr "_Дублювати" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1360 msgid "_Filter" msgstr "_Фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1387 msgid "R_ename" msgstr "Пере_йменувати" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1521 msgid "Rename filter" msgstr "Перейменувати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1573 msgid "Apply filter" msgstr "ЗаÑтоÑувати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1652 msgid "filter" msgstr "фільтрувати" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1659 msgid "Add filter" msgstr "Додати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1709 msgid "Duplicate filter" msgstr "Дублювати фільтр" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1808 msgid "_Effect" msgstr "_Ефект" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1818 msgid "Connections" msgstr "З'єднаннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1956 msgid "Remove filter primitive" msgstr "Вилучити примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2543 msgid "Remove merge node" msgstr "Вилучити вузол об'єднаннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2663 msgid "Reorder filter primitive" msgstr "Зміна порÑдку примітивів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Add Effect:" msgstr "Додати ефект:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2744 msgid "No effect selected" msgstr "Ðе вибрано жодного ефекту" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "No filter selected" msgstr "Ðе вибрано жодного фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2792 msgid "Effect parameters" msgstr "Параметри ефекту" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2793 msgid "Filter General Settings" msgstr "Загальні параметри фільтра" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Coordinates:" msgstr "Координати:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "X coordinate of the left corners of filter effects region" msgstr "Координата X лівих кутів облаÑті дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Y coordinate of the upper corners of filter effects region" msgstr "Координата X верхніх кутів облаÑті дії ефектів фільтра" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Dimensions:" msgstr "Розміри:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Width of filter effects region" msgstr "Ширина облаÑті дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Height of filter effects region" msgstr "ВиÑота облаÑті дії ефектів фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 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 " @@ -15677,40 +15675,40 @@ msgstr "" "матрицю значень розміром 5×4. Інші варіанти — це проÑтий ÑпоÑіб виконати " "найпроÑтіші операції без Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñієї матриці вручну." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2859 msgid "Value(s):" msgstr "ЗначеннÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "R:" msgstr "Ч:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2864 #: ../src/widgets/sp-color-icc-selector.cpp:334 msgid "G:" msgstr "З:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 msgid "B:" msgstr "С:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 msgid "A:" msgstr "П:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "Operator:" msgstr "Оператор:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 msgid "K1:" msgstr "K1:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 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 " @@ -15720,38 +15718,38 @@ msgstr "" "за формулою k1*i1*i2 + k2*i1 + k3*i2 + k4, де i1 Ñ– i2 — Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ–ÐºÑелів " "першого Ñ– другого вхідних значень відповідно." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 msgid "K2:" msgstr "K2:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 msgid "K3:" msgstr "K3:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 msgid "K4:" msgstr "K4:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Size:" msgstr "Розмір:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "width of the convolve matrix" msgstr "ширина матриці згортки" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "height of the convolve matrix" msgstr "виÑота матриці згортки" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 #: ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "Target:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 msgid "" "X coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15759,7 +15757,7 @@ msgstr "" "Координата X кінцевої точки матриці згортки. Згортка заÑтоÑовуєтьÑÑ Ð´Ð¾ " "пікÑелів навколо цієї точки." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 msgid "" "Y coordinate of the target point in the convolve matrix. The convolution is " "applied to pixels around this point." @@ -15768,11 +15766,11 @@ msgstr "" "пікÑелів навколо цієї точки." #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 msgid "Kernel:" msgstr "Ядро:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 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 " @@ -15787,11 +15785,11 @@ msgstr "" "у той чаÑ, Ñк матрицÑ, заповнена Ñталим ненульовим значеннÑм даÑть звичайний " "ефект розмиваннÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 msgid "Divisor:" msgstr "Дільник:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 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 " @@ -15803,11 +15801,11 @@ msgstr "" "кольору. Дільник, що Ñ” Ñумою вÑÑ–Ñ… значень матриці, приглушує загальну " "інтенÑивніÑть кольорів оÑтаточного зображеннÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "Bias:" msgstr "ЗміщеннÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "" "This value is added to each component. This is useful to define a constant " "value as the zero response of the filter." @@ -15815,11 +15813,11 @@ msgstr "" "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð¾ кожного компонента. КориÑно Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ñталої, Ñк " "нульового відгуку фільтра." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Edge Mode:" msgstr "Режим країв:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 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 " @@ -15829,31 +15827,31 @@ msgstr "" "щоб матричні операції могли працювати з Ñдром, розташованим на краю " "Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ поблизу нього." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 msgid "Preserve Alpha" msgstr "Зберігати α-канал" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "Diffuse Color:" msgstr "Колір дифузії:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 msgid "Surface Scale:" msgstr "МаÑштаб поверхні:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2921 msgid "" "This value amplifies the heights of the bump map defined by the input alpha " "channel" @@ -15861,59 +15859,59 @@ msgstr "" "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” множник виÑоти карти рельєфу, що задаєтьÑÑ Ð²Ñ…Ñ–Ð´Ð½Ð¸Ð¼ α-" "каналом" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 msgid "Constant:" msgstr "КонÑтанта:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 -#: ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2922 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 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2924 msgid "Kernel Unit Length:" msgstr "ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ у Ñдрі:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "This defines the intensity of the displacement effect." msgstr "Ð¦Ñ Ð²ÐµÐ»Ð¸Ñ‡Ð¸Ð½Ð° визначає інтенÑивніÑть ефекту зміщеннÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "X displacement:" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "Color component that controls the displacement in the X direction" msgstr "Компонент кольору, що керує зміщеннÑм у напрÑмку оÑÑ– X" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Y displacement:" msgstr "Ð—Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð·Ð° Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Color component that controls the displacement in the Y direction" msgstr "Компонент кольору, що керує зміщеннÑм у напрÑмку оÑÑ– Y" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "Flood Color:" msgstr "Колір заливки:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "The whole filter region will be filled with this color." msgstr "Ð’ÑÑŽ облаÑть дії фільтра буде залито цим кольором." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Standard Deviation:" msgstr "Стандартне відхиленнÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "The standard deviation for the blur operation." msgstr "Стандартне Ð²Ñ–Ð´Ñ…Ð¸Ð»ÐµÐ½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ñ–Ñ— розмиваннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." @@ -15921,41 +15919,41 @@ msgstr "" "ЕрозіÑ: виконує «витонченнÑ» вхідного зображеннÑ\n" "РозтÑгуваннÑ: «потовщує» вхідне зображеннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 msgid "Source of Image:" msgstr "Джерело зображеннÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "Delta X:" msgstr "Крок за X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "This is how far the input image gets shifted to the right" msgstr "Визначає Ñк далеко вхідне Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ñ‰ÑƒÑ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "Delta Y:" msgstr "Крок за Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "This is how far the input image gets shifted downwards" msgstr "Визначає Ñк далеко вхідне Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ñ‰ÑƒÑ”Ñ‚ÑŒÑÑ Ð´Ð¾Ð½Ð¸Ð·Ñƒ" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Specular Color:" msgstr "Колір відбиттÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 #: ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "ЕкÑпонента:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "Степінь відбиттÑ: більше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð°Ñ” «ÑÑкравіше»." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 msgid "" "Indicates whether the filter primitive should perform a noise or turbulence " "function." @@ -15963,27 +15961,27 @@ msgstr "" "Позначає чи повинен примітив виконувати функцію ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚ÑƒÑ€Ð±ÑƒÐ»ÐµÐ½Ñ‚Ð½Ð¾Ñті або " "шуму." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Base Frequency:" msgstr "Опорна чаÑтота:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Octaves:" msgstr "Октави:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "Seed:" msgstr "Випадкове значеннÑ:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "The starting number for the pseudo random number generator." msgstr "Початкове чиÑло Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ð° пÑевдовипадкових чиÑел." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Add filter primitive" msgstr "Додати примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 msgid "" "The feBlend filter primitive provides 4 image blending modes: screen, " "multiply, darken and lighten." @@ -15991,7 +15989,7 @@ msgstr "" "Примітив фільтра feBlend надає можливіÑть викориÑтовувати 4 режими " "змішуваннÑ: проÑвічуваннÑ, множеннÑ, Ñ‚ÐµÐ¼Ð½Ñ–ÑˆÐ°Ð½Ð½Ñ Ñ‚Ð° ÑвітлішаннÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 msgid "" "The feColorMatrix filter primitive applies a matrix transformation to " "color of each rendered pixel. This allows for effects like turning object to " @@ -16001,7 +15999,7 @@ msgstr "" "кольору до кожної відображеної точки. Ð’Ñе це включає до Ñебе Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ " "об'єкта до півтонів Ñірого, зміну наÑиченоÑті кольору Ñ– зміну відтінку." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 msgid "" "The feComponentTransfer filter primitive manipulates the input's " "color components (red, green, blue, and alpha) according to particular " @@ -16013,7 +16011,7 @@ msgstr "" "з окремими функціÑми переходу, роблÑчи можливим операції на зразок " "Ñ€ÐµÐ³ÑƒÐ»ÑŽÐ²Ð°Ð½Ð½Ñ ÑÑкравоÑті Ñ– контраÑту, Ð±Ð°Ð»Ð°Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² та поÑтеризацію." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 msgid "" "The feComposite filter primitive composites two images using one of " "the Porter-Duff blending modes or the arithmetic mode described in SVG " @@ -16025,7 +16023,7 @@ msgstr "" "опиÑаного у Ñтандарті SVG. Режими Ð·Ð¼Ñ–ÑˆÑƒÐ²Ð°Ð½Ð½Ñ ÐŸÐ¾Ñ€Ñ‚ÐµÑ€Ð°-Даффа по Ñуті Ñ” " "булівÑькими операціÑми між значеннÑми кольорів відповідних точок зображень." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 msgid "" "The feConvolveMatrix lets you specify a Convolution to be applied on " "the image. Common effects created using convolution matrices are blur, " @@ -16040,7 +16038,7 @@ msgstr "" "за допомогою цього примітиву фільтра, оÑобливий примітив фільтра Ð´Ð»Ñ " "ГауÑового Ñ€Ð¾Ð·Ð¼Ð¸Ð²Ð°Ð½Ð½Ñ Ñ” швидшим та незалежним від роздільної здатноÑті." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives create " "\"embossed\" shadings. The input's alpha channel is used to provide depth " @@ -16052,7 +16050,7 @@ msgstr "" "викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ð»Ð¸Ð±Ð¸Ð½Ð¸: непрозоріші облаÑті наближаютьÑÑ " "до глÑдача, а прозоріші — віддалÑютьÑÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 msgid "" "The feDisplacementMap filter primitive displaces the pixels in the " "first input using the second input as a displacement map, that shows from " @@ -16064,7 +16062,7 @@ msgstr "" "у Ñкому напрÑмку Ñ– на Ñку відÑтань Ñлід зміÑтити точку. КлаÑичними " "прикладами фільтра Ñ” ефекти «вихор» Ñ– «затиÑканнÑ»." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 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 " @@ -16074,7 +16072,7 @@ msgstr "" "непрозоріÑтю. Зазвичай, його викориÑтовують Ñк початковий Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… " "фільтрів, з метою надати графіці кольору." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 msgid "" "The feGaussianBlur filter primitive uniformly blurs its input. It is " "commonly used together with feOffset to create a drop shadow effect." @@ -16083,7 +16081,7 @@ msgstr "" "його заÑтоÑовано. Зазвичай, він викориÑтовуєтьÑÑ Ñ€Ð°Ð·Ð¾Ð¼ з feOffset Ð´Ð»Ñ " "ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐµÑ„ÐµÐºÑ‚Ñƒ Ð²Ñ–Ð´ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ñ‚Ñ–Ð½Ñ–." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 msgid "" "The feImage filter primitive fills the region with an external image " "or another part of the document." @@ -16091,7 +16089,7 @@ msgstr "" "Примітив фільтра feImage заливає облаÑть зовнішнім зображеннÑм або " "іншою чаÑтиною документа." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 msgid "" "The feMerge filter primitive composites several temporary images " "inside the filter primitive to a single image. It uses normal alpha " @@ -16104,7 +16102,7 @@ msgstr "" "кратне заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ‚Ð¸Ð²Ñ–Ð² feBlend у 'звичайному' режимі або кратне " "заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð¼Ñ–Ñ‚Ð¸Ð²Ñ–Ð² feComposite у 'над'-режимі." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 msgid "" "The feMorphology filter primitive provides erode and dilate effects. " "For single-color objects erode makes the object thinner and dilate makes it " @@ -16114,7 +16112,7 @@ msgstr "" "ерозії та розширеннÑ. Ð”Ð»Ñ Ð¾Ð´Ð½Ð¾ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð²Ð¸Ñ… об'єктів ÐµÑ€Ð¾Ð·Ñ–Ñ Ñ€Ð¾Ð±Ð¸Ñ‚ÑŒ об'єкт " "меншим, а Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð½Ñ â€” більшим." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3012 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 " @@ -16124,7 +16122,7 @@ msgstr "" "відÑтань. Це, наприклад, кориÑно Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ñ–Ð½ÐµÐ¹, коли тінь " "розташовано з невеликим зÑувом відноÑно об'єкта, що Ñ—Ñ— відкидає." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3016 msgid "" "The feDiffuseLighting and feSpecularLighting filter primitives " "create \"embossed\" shadings. The input's alpha channel is used to provide " @@ -16136,14 +16134,14 @@ msgstr "" "матеріалу, викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ñ–Ð´Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð³Ð»Ð¸Ð±Ð¸Ð½Ð¸: непрозоріші облаÑті " "наближаютьÑÑ Ð´Ð¾ глÑдача, а прозоріші — віддалÑютьÑÑ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3020 msgid "" "The feTile filter primitive tiles a region with its input graphic" msgstr "" "Примітив фільтра feTile заповнює облаÑть мозаїкою у формі вхідного " "графічного зображеннÑ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3024 msgid "" "The feTurbulence filter primitive renders Perlin noise. This kind of " "noise is useful in simulating several nature phenomena like clouds, fire and " @@ -16153,11 +16151,11 @@ msgstr "" "шумів кориÑний Ð´Ð»Ñ Ñ–Ð¼Ñ–Ñ‚Ð°Ñ†Ñ–Ñ— деÑких природних Ñвищ на зразок хмар, полум'Ñ Ñ‚Ð° " "диму, та під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñкладних текÑтур на зразок мармуру та граніту." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3043 msgid "Duplicate filter primitive" msgstr "Дублювати примітив фільтра" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3096 msgid "Set filter primitive attribute" msgstr "Ð’Ñтановити атрибут примітива фільтра" @@ -16343,7 +16341,7 @@ msgstr "Спіралі" msgid "Search spirals" msgstr "Шукати Ñпіралі" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1733 msgid "Paths" msgstr "Контури" @@ -16471,7 +16469,7 @@ msgstr "Виберіть тип об'єкта" msgid "Select a property" msgstr "Виберіть влаÑтивіÑть" -#: ../src/ui/dialog/font-substitution.cpp:87 +#: ../src/ui/dialog/font-substitution.cpp:79 msgid "" "\n" "Some fonts are not available and have been substituted." @@ -16479,19 +16477,19 @@ msgstr "" "\n" "ДеÑких шрифтів не знайдено, тому ці шрифти було замінено." -#: ../src/ui/dialog/font-substitution.cpp:90 +#: ../src/ui/dialog/font-substitution.cpp:82 msgid "Font substitution" msgstr "Заміна шрифтів" -#: ../src/ui/dialog/font-substitution.cpp:109 +#: ../src/ui/dialog/font-substitution.cpp:101 msgid "Select all the affected items" msgstr "Позначити вÑÑ– задіÑні елементи" -#: ../src/ui/dialog/font-substitution.cpp:114 +#: ../src/ui/dialog/font-substitution.cpp:106 msgid "Don't show this warning again" msgstr "Більше не показувати це попередженнÑ" -#: ../src/ui/dialog/font-substitution.cpp:255 +#: ../src/ui/dialog/font-substitution.cpp:245 msgid "Font '%1' substituted with '%2'" msgstr "Шрифт «%1» замінено шрифтом «%2»" @@ -17216,7 +17214,7 @@ msgstr "Діапазон: " msgid "Append" msgstr "Додати" -#: ../src/ui/dialog/glyphs.cpp:618 +#: ../src/ui/dialog/glyphs.cpp:619 msgid "Append text" msgstr "Додати текÑÑ‚" @@ -17224,76 +17222,78 @@ msgstr "Додати текÑÑ‚" msgid "Arrange in a grid" msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ñітці" -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 #: ../src/ui/dialog/object-attributes.cpp:66 #: ../src/ui/dialog/object-attributes.cpp:75 -#: ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 +#: ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:666 +#: ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "X:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 msgid "Horizontal spacing between columns." msgstr "Горизонтальний інтервал між Ñтовпчиками." -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 #: ../src/ui/dialog/object-attributes.cpp:67 #: ../src/ui/dialog/object-attributes.cpp:76 -#: ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 +#: ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:676 +#: ../src/widgets/node-toolbar.cpp:599 msgid "Y:" msgstr "Y:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 msgid "Vertical spacing between rows." msgstr "Вертикальний проміжок між Ñ€Ñдками." -#: ../src/ui/dialog/grid-arrange-tab.cpp:626 +#: ../src/ui/dialog/grid-arrange-tab.cpp:624 msgid "_Rows:" msgstr "_РÑдків:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:635 +#: ../src/ui/dialog/grid-arrange-tab.cpp:633 msgid "Number of rows" msgstr "КількіÑть Ñ€Ñдків" -#: ../src/ui/dialog/grid-arrange-tab.cpp:639 +#: ../src/ui/dialog/grid-arrange-tab.cpp:637 msgid "Equal _height" msgstr "Однакова _виÑота" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +#: ../src/ui/dialog/grid-arrange-tab.cpp:648 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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:664 msgid "_Columns:" msgstr "Ст_овпчиків:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:675 +#: ../src/ui/dialog/grid-arrange-tab.cpp:673 msgid "Number of columns" msgstr "КількіÑть Ñтовпчиків" -#: ../src/ui/dialog/grid-arrange-tab.cpp:679 +#: ../src/ui/dialog/grid-arrange-tab.cpp:677 msgid "Equal _width" msgstr "О_днакова ширина" -#: ../src/ui/dialog/grid-arrange-tab.cpp:689 +#: ../src/ui/dialog/grid-arrange-tab.cpp:687 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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:698 msgid "Alignment:" msgstr "ВирівнюваннÑ:" #. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:709 +#: ../src/ui/dialog/grid-arrange-tab.cpp:707 msgid "_Fit into selection box" msgstr "З_берегти ширину та виÑоту позначеннÑ" -#: ../src/ui/dialog/grid-arrange-tab.cpp:716 +#: ../src/ui/dialog/grid-arrange-tab.cpp:714 msgid "_Set spacing:" msgstr "Ð’Ñ_тановити інтервал:" @@ -17345,25 +17345,25 @@ msgstr "Ід. напрÑмної: %s" msgid "Current: %s" msgstr "Поточний: %s" -#: ../src/ui/dialog/icon-preview.cpp:159 +#: ../src/ui/dialog/icon-preview.cpp:155 #, c-format msgid "%d x %d" msgstr "%d x %d" -#: ../src/ui/dialog/icon-preview.cpp:171 +#: ../src/ui/dialog/icon-preview.cpp:167 msgid "Magnified:" msgstr "Збільшена:" -#: ../src/ui/dialog/icon-preview.cpp:240 +#: ../src/ui/dialog/icon-preview.cpp:236 msgid "Actual Size:" msgstr "Фактичні розміри:" -#: ../src/ui/dialog/icon-preview.cpp:245 +#: ../src/ui/dialog/icon-preview.cpp:241 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "Позна_ченнÑ" -#: ../src/ui/dialog/icon-preview.cpp:247 +#: ../src/ui/dialog/icon-preview.cpp:243 msgid "Selection only or whole document" msgstr "Лише вибране або веÑÑŒ документ" @@ -17718,7 +17718,7 @@ msgid "Zoom" msgstr "МаÑштаб" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2761 +#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2730 msgctxt "ContextVerb" msgid "Measure" msgstr "Міра" @@ -17783,7 +17783,7 @@ msgstr "" "знімаєтьÑÑ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ” позначеннÑ)" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2753 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2722 msgctxt "ContextVerb" msgid "Text" msgstr "ТекÑÑ‚" @@ -19922,7 +19922,7 @@ msgid "Rendering" msgstr "Обробка" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:157 +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:156 #: ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "Змінити" @@ -19941,7 +19941,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:67 #: ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "ЕкÑпорт" @@ -20043,7 +20043,7 @@ msgid "Shortcut" msgstr "СкороченнÑ" #: ../src/ui/dialog/inkscape-preferences.cpp:1513 -#: ../src/ui/widget/page-sizer.cpp:260 +#: ../src/ui/widget/page-sizer.cpp:285 msgid "Description" msgstr "ОпиÑ" @@ -20051,7 +20051,7 @@ msgstr "ОпиÑ" #: ../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 +#: ../src/ui/widget/preferences-widget.cpp:745 msgid "Reset" msgstr "Скинути" @@ -20378,8 +20378,8 @@ 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 +#: ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 +#: ../src/verbs.cpp:2337 msgid "Layer" msgstr "Шар" @@ -20413,8 +20413,8 @@ 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 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:116 +#: ../src/ui/dialog/transformation.cpp:108 msgid "_Move" msgstr "_ПереміщеннÑ" @@ -20435,12 +20435,12 @@ msgid "Unlock layer" msgstr "Розблокувати шар" #: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 -#: ../src/verbs.cpp:1438 +#: ../src/verbs.cpp:1407 msgid "Toggle layer solo" msgstr "Увімкнути або вимкнути Ñоло шару" #: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 -#: ../src/verbs.cpp:1462 +#: ../src/verbs.cpp:1431 msgid "Lock other layers" msgstr "Заблокувати інші шари" @@ -20547,43 +20547,43 @@ msgstr "ЗадіÑти ефект контуру" msgid "Deactivate path effect" msgstr "Вимкнути ефект контуру" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:57 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:52 msgid "Radius (pixels):" msgstr "Ð Ð°Ð´Ñ–ÑƒÑ (у пк):" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:64 msgid "Chamfer subdivisions:" msgstr "Піделементи фаÑки:" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:144 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:135 msgid "Modify Fillet-Chamfer" msgstr "Змінити кромку/фаÑку" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:145 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:136 msgid "_Modify" msgstr "З_мінити" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:210 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:200 msgid "Radius" msgstr "РадіуÑ" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:202 msgid "Radius approximated" msgstr "Приблизний радіуÑ" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:205 msgid "Knot distance" msgstr "ВідÑтань від вузла" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:222 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 msgid "Position (%):" msgstr "Ð Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ (%):" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:225 -msgid "%1 (%2):" -msgstr "%1 (%2):" +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +msgid "%1:" +msgstr "%1:" -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:119 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:115 msgid "Modify Node Position" msgstr "Змінити позицію вузла" @@ -20745,8 +20745,8 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "Зробити цей об'єкт нечутливим до позначеннÑ" #. Button for setting the object's id, label, title and description. -#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2711 -#: ../src/verbs.cpp:2717 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2686 msgid "_Set" msgstr "_Ð’Ñтановити" @@ -20828,8 +20828,8 @@ msgstr "Групу на шар" msgid "Moved objects" msgstr "ПереÑунуті об’єкти" -#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:856 -#: ../src/ui/dialog/tags.cpp:863 +#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:857 +#: ../src/ui/dialog/tags.cpp:864 msgid "Rename object" msgstr "Перейменувати об'єкт" @@ -21116,11 +21116,11 @@ msgstr "Кут X/Y:" msgid "Rotate objects" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð¾Ð±â€™Ñ”ÐºÑ‚Ñ–Ð²" -#: ../src/ui/dialog/polar-arrange-tab.cpp:338 +#: ../src/ui/dialog/polar-arrange-tab.cpp:336 msgid "Couldn't find an ellipse in selection" msgstr "Ðе вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ÐµÐ»Ñ–Ð¿Ñ Ñƒ позначеному" -#: ../src/ui/dialog/polar-arrange-tab.cpp:403 +#: ../src/ui/dialog/polar-arrange-tab.cpp:399 msgid "Arrange on ellipse" msgstr "Компонувати за еліпÑом" @@ -21384,7 +21384,7 @@ msgstr "ПереглÑд текÑту:" #: ../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 +#: ../src/widgets/gradient-vector.cpp:795 msgid "Add gradient stop" msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð¾Ð¿Ð¾Ñ€Ð½Ð¾Ñ— точки градієнта" @@ -21412,69 +21412,69 @@ msgid "Palettes directory (%s) is unavailable." msgstr "Каталог з палітрами (%s) недоÑтупний." #. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:139 +#: ../src/ui/dialog/symbols.cpp:135 msgid "Symbol set: " msgstr "Ðабір Ñимволів: " #. Fill in later -#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 +#: ../src/ui/dialog/symbols.cpp:144 ../src/ui/dialog/symbols.cpp:145 msgid "Current Document" msgstr "Поточний документ" -#: ../src/ui/dialog/symbols.cpp:216 +#: ../src/ui/dialog/symbols.cpp:212 msgid "Add Symbol from the current document." msgstr "Додати Ñимвол до поточного документа." -#: ../src/ui/dialog/symbols.cpp:225 +#: ../src/ui/dialog/symbols.cpp:221 msgid "Remove Symbol from the current document." msgstr "Вилучити Ñимвол з поточного документа." -#: ../src/ui/dialog/symbols.cpp:239 +#: ../src/ui/dialog/symbols.cpp:235 msgid "Display more icons in row." msgstr "Показувати більше піктограм у Ñ€Ñдку." -#: ../src/ui/dialog/symbols.cpp:248 +#: ../src/ui/dialog/symbols.cpp:244 msgid "Display fewer icons in row." msgstr "Показувати менше піктограм у Ñ€Ñдку." -#: ../src/ui/dialog/symbols.cpp:258 +#: ../src/ui/dialog/symbols.cpp:254 msgid "Toggle 'fit' symbols in icon space." msgstr "Вмикати/Вимикати Ñимволи Ð¿Ñ–Ð´Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñ–Ð² у проÑторі піктограм." -#: ../src/ui/dialog/symbols.cpp:270 +#: ../src/ui/dialog/symbols.cpp:266 msgid "Make symbols smaller by zooming out." msgstr "Робити позначки меншими зменшеннÑм маÑштабу." -#: ../src/ui/dialog/symbols.cpp:280 +#: ../src/ui/dialog/symbols.cpp:276 msgid "Make symbols bigger by zooming in." msgstr "Робити позначки більшими збільшеннÑм маÑштабу." -#: ../src/ui/dialog/symbols.cpp:641 +#: ../src/ui/dialog/symbols.cpp:637 msgid "Unnamed Symbols" msgstr "Символи без назв" -#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:572 -#: ../src/ui/dialog/tags.cpp:686 +#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:573 +#: ../src/ui/dialog/tags.cpp:687 msgid "Remove from selection set" msgstr "Вилучити із набору позначеного" -#: ../src/ui/dialog/tags.cpp:430 +#: ../src/ui/dialog/tags.cpp:431 msgid "Items" msgstr "Елементи" -#: ../src/ui/dialog/tags.cpp:669 +#: ../src/ui/dialog/tags.cpp:670 msgid "Add selection to set" msgstr "Додати позначене до набору" -#: ../src/ui/dialog/tags.cpp:827 +#: ../src/ui/dialog/tags.cpp:828 msgid "Moved sets" msgstr "ПереÑунуті набори" -#: ../src/ui/dialog/tags.cpp:997 +#: ../src/ui/dialog/tags.cpp:998 msgid "Add a new selection set" msgstr "Додати новий набір позначеного" -#: ../src/ui/dialog/tags.cpp:1006 +#: ../src/ui/dialog/tags.cpp:1007 msgid "Remove Item/Set" msgstr "Вилучити елемент або набір" @@ -21511,31 +21511,31 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "ÐаБбВвЇїЄєÒÒ‘IiPpQq12369$€¢?.;/()" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1333 -#: ../src/widgets/text-toolbar.cpp:1334 +#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1339 +#: ../src/widgets/text-toolbar.cpp:1340 msgid "Align left" msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡" -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1341 -#: ../src/widgets/text-toolbar.cpp:1342 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1347 +#: ../src/widgets/text-toolbar.cpp:1348 msgid "Align center" msgstr "ПоÑередині" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1349 -#: ../src/widgets/text-toolbar.cpp:1350 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1355 +#: ../src/widgets/text-toolbar.cpp:1356 msgid "Align right" msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1364 msgid "Justify (only flowed text)" msgstr "ВирівнÑти раз шириною (лише неконтурний текÑÑ‚)" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 +#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1399 msgid "Horizontal text" msgstr "Горизонтальний текÑÑ‚" -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1400 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1406 msgid "Vertical text" msgstr "Вертикальний текÑÑ‚" @@ -21547,7 +21547,7 @@ msgstr "Інтервал між Ñ€Ñдками (у відÑотках щодо msgid "Text path offset" msgstr "ВідÑтуп текÑту від контуру" -#: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 +#: ../src/ui/dialog/text-edit.cpp:584 ../src/ui/dialog/text-edit.cpp:658 #: ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "Ð’Ñтановити Ñтиль текÑту" @@ -21821,42 +21821,42 @@ msgstr "Попередній переглÑд без фактичної вект msgid "Preview" msgstr "ПереглÑд" -#: ../src/ui/dialog/transformation.cpp:74 -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:70 +#: ../src/ui/dialog/transformation.cpp:80 msgid "_Horizontal:" msgstr "_Горизонтальне:" -#: ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/dialog/transformation.cpp:70 msgid "Horizontal displacement (relative) or position (absolute)" msgstr "Горизонтальний зÑув (відноÑний) або Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ (абÑолютна)" -#: ../src/ui/dialog/transformation.cpp:76 -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:72 +#: ../src/ui/dialog/transformation.cpp:82 msgid "_Vertical:" msgstr "_Вертикальний:" -#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:72 msgid "Vertical displacement (relative) or position (absolute)" msgstr "Вертикальний зÑув (відноÑний) або Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ (абÑолютна)" -#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:74 msgid "Horizontal size (absolute or percentage of current)" msgstr "Горизонтальний розмір (абÑолютний або у відÑотках до поточного)" -#: ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/dialog/transformation.cpp:76 msgid "Vertical size (absolute or percentage of current)" msgstr "Вертикальний розмір (абÑолютний або у відÑотках до поточного)" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:78 msgid "A_ngle:" msgstr "_Кут:" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:78 #: ../src/ui/dialog/transformation.cpp:1103 msgid "Rotation angle (positive = counterclockwise)" msgstr "Кут повороту (додатній = проти годинникової Ñтрілки)" -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:80 msgid "" "Horizontal skew angle (positive = counterclockwise), or absolute " "displacement, or percentage displacement" @@ -21864,7 +21864,7 @@ msgstr "" "Кут горизонтального ухилу (додатній = проти годинникової Ñтрілки), або " "абÑолютне зміщеннÑ, або відÑоткове зміщеннÑ" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:82 msgid "" "Vertical skew angle (positive = counterclockwise), or absolute displacement, " "or percentage displacement" @@ -21872,35 +21872,35 @@ msgstr "" "Кут вертикального ухилу (додатній = проти годинникової Ñтрілки), або " "абÑолютне зміщеннÑ, або відÑоткове зміщеннÑ" -#: ../src/ui/dialog/transformation.cpp:89 +#: ../src/ui/dialog/transformation.cpp:85 msgid "Transformation matrix element A" msgstr "Елемент матриці транÑформації A" -#: ../src/ui/dialog/transformation.cpp:90 +#: ../src/ui/dialog/transformation.cpp:86 msgid "Transformation matrix element B" msgstr "Елемент матриці транÑформації B" -#: ../src/ui/dialog/transformation.cpp:91 +#: ../src/ui/dialog/transformation.cpp:87 msgid "Transformation matrix element C" msgstr "Елемент матриці транÑформації C" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:88 msgid "Transformation matrix element D" msgstr "Елемент матриці транÑформації D" -#: ../src/ui/dialog/transformation.cpp:93 +#: ../src/ui/dialog/transformation.cpp:89 msgid "Transformation matrix element E" msgstr "Елемент матриці транÑформації E" -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:90 msgid "Transformation matrix element F" msgstr "Елемент матриці транÑформації F" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Rela_tive move" msgstr "Відно_Ñне переміщеннÑ" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "" "Add the specified relative displacement to the current position; otherwise, " "edit the current absolute position directly" @@ -21908,19 +21908,19 @@ msgstr "" "Додати задане відноÑне Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð´Ð¾ поточної позиції; або відредагуйте " "поточну абÑолютну позицію напрÑму" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "_Scale proportionally" msgstr "МаÑ_штабувати пропорційно" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "Preserve the width/height ratio of the scaled objects" msgstr "Зберегти ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð°/виÑота Ð´Ð»Ñ Ð¼Ð°Ñштабованих об'єктів" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 msgid "Apply to each _object separately" msgstr "ЗаÑтоÑувати до кожного о_б'єкта окремо" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 msgid "" "Apply the scale/rotate/skew to each selected object separately; otherwise, " "transform the selection as a whole" @@ -21929,11 +21929,11 @@ msgstr "" "позначеного об'єкта; інакше Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ заÑтоÑовано до позначеного " "об'єкта цілком" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:98 msgid "Edit c_urrent matrix" msgstr "Редагувати по_точну матрицю" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:98 msgid "" "Edit the current transform= matrix; otherwise, post-multiply transform= by " "this matrix" @@ -21941,45 +21941,45 @@ msgstr "" "Редагувати поточний transform= матрицю; інакше transform= буде помножено на " "цю матрицю" -#: ../src/ui/dialog/transformation.cpp:115 +#: ../src/ui/dialog/transformation.cpp:111 msgid "_Scale" msgstr "_МаÑштаб" -#: ../src/ui/dialog/transformation.cpp:118 +#: ../src/ui/dialog/transformation.cpp:114 msgid "_Rotate" msgstr "_ОбертаннÑ" -#: ../src/ui/dialog/transformation.cpp:121 +#: ../src/ui/dialog/transformation.cpp:117 msgid "Ske_w" msgstr "_Ðахил" -#: ../src/ui/dialog/transformation.cpp:124 +#: ../src/ui/dialog/transformation.cpp:120 msgid "Matri_x" msgstr "Матри_цÑ" -#: ../src/ui/dialog/transformation.cpp:148 +#: ../src/ui/dialog/transformation.cpp:144 msgid "Reset the values on the current tab to defaults" msgstr "Змінити величини у поточній вкладці на типові" -#: ../src/ui/dialog/transformation.cpp:155 +#: ../src/ui/dialog/transformation.cpp:151 msgid "Apply transformation to selection" msgstr "ЗаÑтоÑувати Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð´Ð¾ позначених об'єктів" -#: ../src/ui/dialog/transformation.cpp:331 +#: ../src/ui/dialog/transformation.cpp:327 msgid "Rotate in a counterclockwise direction" msgstr "Обернути проти годинникової Ñтрілки" -#: ../src/ui/dialog/transformation.cpp:337 +#: ../src/ui/dialog/transformation.cpp:333 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 +#: ../src/ui/dialog/transformation.cpp:906 +#: ../src/ui/dialog/transformation.cpp:917 +#: ../src/ui/dialog/transformation.cpp:931 +#: ../src/ui/dialog/transformation.cpp:950 +#: ../src/ui/dialog/transformation.cpp:961 +#: ../src/ui/dialog/transformation.cpp:971 +#: ../src/ui/dialog/transformation.cpp:995 msgid "Transform matrix is singular, not used." msgstr "ÐœÐ°Ñ‚Ñ€Ð¸Ñ†Ñ Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ” виродженою, не викориÑтовуємо Ñ—Ñ—." @@ -22185,7 +22185,7 @@ msgid "Enter group #%1" msgstr "Увійти до групи â„–%1" #. Item dialog -#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2932 +#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2901 msgid "_Object Properties..." msgstr "Ð’_лаÑтивоÑті об'єкта…" @@ -22258,7 +22258,7 @@ msgid "Release C_lip" msgstr "Зн_Ñти обрізаннÑ" #. Group -#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2565 +#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2534 msgid "_Group" msgstr "З_групувати" @@ -22267,78 +22267,78 @@ msgid "Create link" msgstr "Створити поÑиланнÑ" #. Ungroup -#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2567 +#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2536 msgid "_Ungroup" msgstr "Розгр_упувати" #. Link dialog -#: ../src/ui/interface.cpp:1921 +#: ../src/ui/interface.cpp:1920 msgid "Link _Properties..." msgstr "Ð’_лаÑтивоÑті поÑиланнÑ…" #. Select item -#: ../src/ui/interface.cpp:1927 +#: ../src/ui/interface.cpp:1926 msgid "_Follow Link" msgstr "_Перейти за поÑиланнÑм" #. Reset transformations -#: ../src/ui/interface.cpp:1933 +#: ../src/ui/interface.cpp:1932 msgid "_Remove Link" msgstr "Ви_лучити поÑиланнÑ" -#: ../src/ui/interface.cpp:1964 +#: ../src/ui/interface.cpp:1963 msgid "Remove link" msgstr "Вилучити прив'Ñзку" #. Image properties -#: ../src/ui/interface.cpp:1975 +#: ../src/ui/interface.cpp:1973 msgid "Image _Properties..." msgstr "Ð’_лаÑтивоÑті зображеннÑ…" #. Edit externally -#: ../src/ui/interface.cpp:1981 +#: ../src/ui/interface.cpp:1979 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 +#: ../src/ui/interface.cpp:1988 ../src/verbs.cpp:2597 msgid "_Trace Bitmap..." msgstr "_Векторизувати раÑтр" #. Trace Pixel Art -#: ../src/ui/interface.cpp:1999 +#: ../src/ui/interface.cpp:1997 msgid "Trace Pixel Art" msgstr "ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ñтрової графіки" -#: ../src/ui/interface.cpp:2009 +#: ../src/ui/interface.cpp:2007 msgctxt "Context menu" msgid "Embed Image" msgstr "Вбудувати зображеннÑ" -#: ../src/ui/interface.cpp:2020 +#: ../src/ui/interface.cpp:2018 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 +#: ../src/ui/interface.cpp:2162 ../src/ui/interface.cpp:2182 +#: ../src/verbs.cpp:2864 msgid "_Fill and Stroke..." msgstr "_Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚Ð° штрих" #. Edit Text dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2914 +#: ../src/ui/interface.cpp:2188 ../src/verbs.cpp:2883 msgid "_Text and Font..." msgstr "_ТекÑÑ‚ та шрифт…" #. Spellcheck dialog -#: ../src/ui/interface.cpp:2197 ../src/verbs.cpp:2922 +#: ../src/ui/interface.cpp:2194 ../src/verbs.cpp:2891 msgid "Check Spellin_g..." msgstr "Перевірити п_равопиÑ…" -#: ../src/ui/object-edit.cpp:464 +#: ../src/ui/object-edit.cpp:450 msgid "" "Adjust the horizontal rounding radius; with Ctrl to make the " "vertical radius the same" @@ -22346,7 +22346,7 @@ msgstr "" "Скоригувати Ñ€Ð°Ð´Ñ–ÑƒÑ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ округленнÑ. З Ctrl " "вертикальний Ñ€Ð°Ð´Ñ–ÑƒÑ Ð±ÑƒÐ´Ðµ таким Ñамим" -#: ../src/ui/object-edit.cpp:469 +#: ../src/ui/object-edit.cpp:455 msgid "" "Adjust the vertical rounding radius; with Ctrl to make the " "horizontal radius the same" @@ -22354,7 +22354,7 @@ msgstr "" "Скоригувати Ñ€Ð°Ð´Ñ–ÑƒÑ Ð²ÐµÑ€Ñ‚Ð¸ÐºÐ°Ð»ÑŒÐ½Ð¾Ð³Ð¾ округленнÑ. З Ctrl " "горизонтальний Ñ€Ð°Ð´Ñ–ÑƒÑ Ð±ÑƒÐ´Ðµ таким Ñамим" -#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 +#: ../src/ui/object-edit.cpp:460 ../src/ui/object-edit.cpp:465 msgid "" "Adjust the width and height of the rectangle; with Ctrl to " "lock ratio or stretch in one dimension only" @@ -22362,8 +22362,8 @@ msgstr "" "Скоригувати ширину та виÑоту прÑмокутника. Ctrl фікÑує " "ÑÐ¿Ñ–Ð²Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ‡Ð¸ розтÑгує/ÑтиÑкає лише один вимір" -#: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 -#: ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 +#: ../src/ui/object-edit.cpp:712 ../src/ui/object-edit.cpp:716 +#: ../src/ui/object-edit.cpp:720 ../src/ui/object-edit.cpp:724 msgid "" "Resize box in X/Y direction; with Shift along the Z axis; with " "Ctrl to constrain to the directions of edges or diagonals" @@ -22371,8 +22371,8 @@ msgstr "" "Змінити розмір об'єкта у напрÑмку оÑей X/Y; з Shift — вздовж оÑÑ– Z; " "Ctrl — фікÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ€Ñмків країв або діагоналей" -#: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 -#: ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 +#: ../src/ui/object-edit.cpp:728 ../src/ui/object-edit.cpp:732 +#: ../src/ui/object-edit.cpp:736 ../src/ui/object-edit.cpp:740 msgid "" "Resize box along the Z axis; with Shift in X/Y direction; with " "Ctrl to constrain to the directions of edges or diagonals" @@ -22380,19 +22380,19 @@ msgstr "" "Змінити розмір об'єкта вздовж оÑÑ– Z; з Shift — у напрÑмку оÑей X/Y; " "Ctrl — фікÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ€Ñмків країв або діагоналей" -#: ../src/ui/object-edit.cpp:758 +#: ../src/ui/object-edit.cpp:744 msgid "Move the box in perspective" msgstr "ÐŸÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð±'єкта у перÑпективі" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:983 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "Змінити велику віÑÑŒ еліпÑа. Ctrl Ñтворює коло" -#: ../src/ui/object-edit.cpp:1001 +#: ../src/ui/object-edit.cpp:987 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "Змінити малу віÑÑŒ еліпÑа. Ctrl Ñтворює коло" -#: ../src/ui/object-edit.cpp:1005 +#: ../src/ui/object-edit.cpp:991 msgid "" "Position the start point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " @@ -22401,7 +22401,7 @@ msgstr "" "Початкова точка Ñектора чи дуги. Ctrl обмежує кут. " "ПеретÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñередині еліпÑа дає дугу, зовні — Ñегмент" -#: ../src/ui/object-edit.cpp:1010 +#: ../src/ui/object-edit.cpp:996 msgid "" "Position the end point of the arc or segment; with Ctrl to " "snap angle; drag inside the ellipse for arc, outside for " @@ -22410,7 +22410,7 @@ msgstr "" "Кінцева точка Ñектора чи дуги. Ctrl обмежує кут. ПеретÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ " "вÑередині еліпÑа дає дугу, зовні — Ñегмент" -#: ../src/ui/object-edit.cpp:1156 +#: ../src/ui/object-edit.cpp:1142 msgid "" "Adjust the tip radius of the star or polygon; with Shift to " "round; with Alt to randomize" @@ -22418,7 +22418,7 @@ msgstr "" "Змінити великий Ñ€Ð°Ð´Ñ–ÑƒÑ Ð·Ñ–Ñ€ÐºÐ¸ чи багатокутника. Shift — " "округлÑÑ”; Alt — змішує" -#: ../src/ui/object-edit.cpp:1164 +#: ../src/ui/object-edit.cpp:1150 msgid "" "Adjust the base radius of the star; with Ctrl to keep star " "rays radial (no skew); with Shift to round; with Alt to " @@ -22427,7 +22427,7 @@ msgstr "" "Змінити малий Ñ€Ð°Ð´Ñ–ÑƒÑ Ð·Ñ–Ñ€ÐºÐ¸. Ctrl зберігає промені зірки " "радіальними (без нахилу), Shift — округлÑÑ”; Alt — змішує" -#: ../src/ui/object-edit.cpp:1359 +#: ../src/ui/object-edit.cpp:1345 msgid "" "Roll/unroll the spiral from inside; with Ctrl to snap angle; " "with Alt to converge/diverge" @@ -22435,7 +22435,7 @@ msgstr "" "Згорнути/розгорнути Ñпіраль вÑередині. Ctrl — обмежує кут, " "Alt змінює нелінійніÑть" -#: ../src/ui/object-edit.cpp:1363 +#: ../src/ui/object-edit.cpp:1349 msgid "" "Roll/unroll the spiral from outside; with Ctrl to snap angle; " "with Shift to scale/rotate; with Alt to lock radius" @@ -22443,11 +22443,11 @@ msgstr "" "Згорнути/розгорнути Ñпіраль зовні. Ctrl — обмежує кут, " "Shift — розтÑгує/обертає Ñк ціле. З Alt зі Ñталим радіуÑом." -#: ../src/ui/object-edit.cpp:1410 +#: ../src/ui/object-edit.cpp:1396 msgid "Adjust the offset distance" msgstr "МінÑти відÑтань втÑгуваннÑ" -#: ../src/ui/object-edit.cpp:1447 +#: ../src/ui/object-edit.cpp:1433 msgid "Drag to resize the flowed text frame" msgstr "ПеретÑгніть Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розміру текÑту у рамці" @@ -22493,7 +22493,7 @@ msgstr "" msgid "Retract handles" msgstr "Ð’Ñ‚Ñгнути вуÑа" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:295 msgid "Change node type" msgstr "Змінити тип вузла" @@ -22576,38 +22576,38 @@ msgstr "Віддзеркалити вузли горизонтально" msgid "Flip nodes vertically" msgstr "Віддзеркалити вузли вертикально" -#: ../src/ui/tool/node.cpp:271 +#: ../src/ui/tool/node.cpp:270 msgid "Cusp node handle" msgstr "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð³Ð¾Ñтрого вузла" -#: ../src/ui/tool/node.cpp:272 +#: ../src/ui/tool/node.cpp:271 msgid "Smooth node handle" msgstr "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð³Ð»Ð°Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ вузла" -#: ../src/ui/tool/node.cpp:273 +#: ../src/ui/tool/node.cpp:272 msgid "Symmetric node handle" msgstr "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñиметричного вузла" -#: ../src/ui/tool/node.cpp:274 +#: ../src/ui/tool/node.cpp:273 msgid "Auto-smooth node handle" msgstr "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð·Ð³Ð»Ð°Ð´Ð¶ÐµÐ½Ð¾Ð³Ð¾ вузла" -#: ../src/ui/tool/node.cpp:493 +#: ../src/ui/tool/node.cpp:492 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" msgstr "більше: Shift, Ctrl, Alt" -#: ../src/ui/tool/node.cpp:495 +#: ../src/ui/tool/node.cpp:494 msgctxt "Path handle tip" msgid "more: Ctrl" msgstr "більше: Ctrl" -#: ../src/ui/tool/node.cpp:497 +#: ../src/ui/tool/node.cpp:496 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" msgstr "більше: Ctrl, Alt" -#: ../src/ui/tool/node.cpp:503 +#: ../src/ui/tool/node.cpp:502 #, c-format msgctxt "Path handle tip" msgid "" @@ -22617,7 +22617,7 @@ msgstr "" "Shift+Ctrl+Alt: зберігати довжину, змінювати кут Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÑ€Ð¾ÐºÐ°Ð¼Ð¸ у " "%g°, обертати обидва елементи керуваннÑ" -#: ../src/ui/tool/node.cpp:508 +#: ../src/ui/tool/node.cpp:507 #, c-format msgctxt "Path handle tip" msgid "" @@ -22626,19 +22626,19 @@ msgstr "" "Ctrl+Alt: зберігати довжину елемента, змінювати кут Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÑ€Ð¾ÐºÐ°Ð¼Ð¸ " "%g°" -#: ../src/ui/tool/node.cpp:514 +#: ../src/ui/tool/node.cpp:513 msgctxt "Path handle tip" msgid "Shift+Alt: preserve handle length and rotate both handles" msgstr "" "Shift+Alt: зберегти довжину елемента керуваннÑ, обертати обидва " "елементи" -#: ../src/ui/tool/node.cpp:517 +#: ../src/ui/tool/node.cpp:516 msgctxt "Path handle tip" msgid "Alt: preserve handle length while dragging" msgstr "Alt: зберігати довжину елемента ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÑ‚ÑгуваннÑ" -#: ../src/ui/tool/node.cpp:524 +#: ../src/ui/tool/node.cpp:523 #, c-format msgctxt "Path handle tip" msgid "" @@ -22648,31 +22648,31 @@ msgstr "" "Shift+Ctrl: змінювати кут Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÑ€Ð¾ÐºÐ°Ð¼Ð¸ у %g°, обертати обидва " "елементи керуваннÑ" -#: ../src/ui/tool/node.cpp:528 +#: ../src/ui/tool/node.cpp:527 msgctxt "Path handle tip" msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" msgstr "" "Ctrl: переÑунути Ð²ÑƒÑ Ð·Ð° його Ñправжніми кроками у інтерактивному " "ефекті B-Ñплайнів" -#: ../src/ui/tool/node.cpp:531 +#: ../src/ui/tool/node.cpp:530 #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "" "Ctrl: змінювати кут Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÑ€Ð¾ÐºÐ°Ð¼Ð¸ у %g°, клацніть Ð´Ð»Ñ ÑкаÑуваннÑ" -#: ../src/ui/tool/node.cpp:536 +#: ../src/ui/tool/node.cpp:535 msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" msgstr "Shift: обертати на однаковий кут обидва елементи керуваннÑ" -#: ../src/ui/tool/node.cpp:539 +#: ../src/ui/tool/node.cpp:538 msgctxt "Path hande tip" msgid "Shift: move handle" msgstr "Shift: переÑунути вуÑ" -#: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 +#: ../src/ui/tool/node.cpp:545 ../src/ui/tool/node.cpp:549 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" @@ -22680,49 +22680,51 @@ msgstr "" "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸ÐºÐ¾ÑŽ вузла: перетÑгніть, щоб перетворити " "вузол на гладкий (%s)" -#: ../src/ui/tool/node.cpp:553 +#: ../src/ui/tool/node.cpp:552 #, c-format msgctxt "Path handle tip" -msgid "BSpline node handle: Shift to drag, double click to reset (%s)" +msgid "" +"BSpline node handle: Shift to drag, double click to reset (%s). %g " +"power" msgstr "" "Елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ B-Ñплайновим вузлом: Shift — перетÑгнути, подвійне " -"ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути (%s)" +"ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ â€” Ñкинути (%s). ПотужніÑть %g" -#: ../src/ui/tool/node.cpp:573 +#: ../src/ui/tool/node.cpp:572 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" msgstr "ПереÑунути елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° %s, %s; кут %.2f°, відÑтань %s" -#: ../src/ui/tool/node.cpp:1447 +#: ../src/ui/tool/node.cpp:1448 msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "" "Shift: перетÑгніть елемент керуваннÑ, клацніть, щоб увімкнути/" "вимкнути режим позначеннÑ" -#: ../src/ui/tool/node.cpp:1449 +#: ../src/ui/tool/node.cpp:1450 msgctxt "Path node tip" msgid "Shift: click to toggle selection" msgstr "Shift: клацніть, щоб увімкнути/вимкнути режим позначеннÑ" -#: ../src/ui/tool/node.cpp:1454 +#: ../src/ui/tool/node.cpp:1455 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" msgstr "" "Ctrl+Alt: переÑунути лінії елемента керуваннÑ, ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð²Ð¸Ð»ÑƒÑ‡Ð°Ñ” вузол" -#: ../src/ui/tool/node.cpp:1457 +#: ../src/ui/tool/node.cpp:1458 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" msgstr "Ctrl: переÑунути вздовж оÑей, ÐºÐ»Ð°Ñ†Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½ÑŽÑ” тип вузла" -#: ../src/ui/tool/node.cpp:1461 +#: ../src/ui/tool/node.cpp:1462 msgctxt "Path node tip" msgid "Alt: sculpt nodes" msgstr "Alt: надати форму вузлам" -#: ../src/ui/tool/node.cpp:1469 +#: ../src/ui/tool/node.cpp:1470 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" @@ -22730,17 +22732,17 @@ msgstr "" "%s: перетÑгніть вказівник, щоб змінити форму контуру (більше: Shift, " "Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1472 +#: ../src/ui/tool/node.cpp:1473 #, c-format msgctxt "Path node tip" msgid "" -"BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, " -"Alt)" +"BSpline node: drag to shape the path (more: Shift, Ctrl, Alt). %g " +"power" msgstr "" -"Вузол B-Ñплайна: вага %g, перетÑгніть вказівник, щоб змінити форму контуру " -"(більше: Shift, Ctrl, Alt)" +"Вузол B-Ñплайна: перетÑгніть вказівник, щоб змінити форму контуру " +"(більше: Shift, Ctrl, Alt). ПотужніÑть %g" -#: ../src/ui/tool/node.cpp:1475 +#: ../src/ui/tool/node.cpp:1476 #, c-format msgctxt "Path node tip" msgid "" @@ -22751,7 +22753,7 @@ msgstr "" "перемикає елементи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°ÑштабуваннÑ/Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ (більше: Shift, Ctrl, " "Alt)" -#: ../src/ui/tool/node.cpp:1479 +#: ../src/ui/tool/node.cpp:1480 #, c-format msgctxt "Path node tip" msgid "" @@ -22761,52 +22763,54 @@ msgstr "" "%s: перетÑгніть вказівник, щоб змінити форму контуру, клацніть, щоб " "позначити лише цей вузол (більше: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1482 +#: ../src/ui/tool/node.cpp:1483 +#, c-format msgctxt "Path node tip" msgid "" "BSpline node: drag to shape the path, click to select only this node " -"(more: Shift, Ctrl, Alt)" +"(more: Shift, Ctrl, Alt). %g power" msgstr "" "Вузол B-Ñплайна: перетÑгніть вказівник, щоб змінити форму контуру, " -"клацніть, щоб позначити лише цей вузол (більше: Shift, Ctrl, Alt)" +"клацніть, щоб позначити лише цей вузол (більше: Shift, Ctrl, Alt). ПотужніÑть " +"%g" -#: ../src/ui/tool/node.cpp:1495 +#: ../src/ui/tool/node.cpp:1496 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" msgstr "ПереÑунути вузол на %s, %s" -#: ../src/ui/tool/node.cpp:1506 +#: ../src/ui/tool/node.cpp:1507 msgid "Symmetric node" msgstr "Симетричний вузол" -#: ../src/ui/tool/node.cpp:1507 +#: ../src/ui/tool/node.cpp:1508 msgid "Auto-smooth node" msgstr "Ðвтоматично згладжений вузол" -#: ../src/ui/tool/path-manipulator.cpp:836 +#: ../src/ui/tool/path-manipulator.cpp:837 msgid "Scale handle" msgstr "МаÑштабувати вуÑ" -#: ../src/ui/tool/path-manipulator.cpp:860 +#: ../src/ui/tool/path-manipulator.cpp:861 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/ui/tool/path-manipulator.cpp:1534 #: ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" msgstr "Вилучити вузол" -#: ../src/ui/tool/path-manipulator.cpp:1532 +#: ../src/ui/tool/path-manipulator.cpp:1542 msgid "Cycle node type" msgstr "Циклічний перехід типами вузла" -#: ../src/ui/tool/path-manipulator.cpp:1547 +#: ../src/ui/tool/path-manipulator.cpp:1557 msgid "Drag handle" msgstr "ПеретÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÑƒÑа" -#: ../src/ui/tool/path-manipulator.cpp:1556 +#: ../src/ui/tool/path-manipulator.cpp:1566 msgid "Retract handle" msgstr "Вилучити вуÑ" @@ -23025,7 +23029,7 @@ msgstr "" "напрÑмної, Клавіші-Ñтрілки — Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ð²Ñ‰Ð¸Ð½Ð¸ (ліворуч/праворуч) " "Ñ– кута (вгору/вниз)." -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1584 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1583 msgid "" "Click to select or create text, drag to create flowed text; " "then type." @@ -23102,7 +23106,7 @@ msgstr "" "Ctrl: Ñтворює коло або ÐµÐ»Ñ–Ð¿Ñ Ð· цілим відношеннÑм Ñторін, обмежує кут " "дуги/Ñегмента" -#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:279 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:278 msgid "Shift: draw around the starting point" msgstr "Shift: малювати навколо початкової точки" @@ -23198,17 +23202,17 @@ msgstr "" "Кінцева з'єднувальна точка: перетÑгніть щоб змінити напрÑмок " "з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð· новими фігурами" -#: ../src/ui/tools/connector-tool.cpp:1326 +#: ../src/ui/tools/connector-tool.cpp:1324 msgid "Select at least one non-connector object." msgstr "Позначте принаймні два об'єкти Ð´Ð»Ñ Ð·'єднаннÑ." -#: ../src/ui/tools/connector-tool.cpp:1331 -#: ../src/widgets/connector-toolbar.cpp:314 +#: ../src/ui/tools/connector-tool.cpp:1329 +#: ../src/widgets/connector-toolbar.cpp:310 msgid "Make connectors avoid selected objects" msgstr "ЗмуÑити лінії огинати вибрані об'єкти" -#: ../src/ui/tools/connector-tool.cpp:1332 -#: ../src/widgets/connector-toolbar.cpp:324 +#: ../src/ui/tools/connector-tool.cpp:1330 +#: ../src/widgets/connector-toolbar.cpp:320 msgid "Make connectors ignore selected objects" msgstr "ЗмуÑити лінії ігнорувати вибрані об'єкти" @@ -23242,39 +23246,39 @@ msgstr "Ð’Ñтановити знÑтий піпеткою колір" msgid "Drawing an eraser stroke" msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÑˆÑ‚Ñ€Ð¸Ñ…Ð° гумки" -#: ../src/ui/tools/eraser-tool.cpp:760 +#: ../src/ui/tools/eraser-tool.cpp:753 msgid "Draw eraser stroke" msgstr "Ðамалювати штрих гумкою" -#: ../src/ui/tools/flood-tool.cpp:182 +#: ../src/ui/tools/flood-tool.cpp:90 msgid "Visible Colors" msgstr "Видимі кольори" -#: ../src/ui/tools/flood-tool.cpp:200 +#: ../src/ui/tools/flood-tool.cpp:102 msgctxt "Flood autogap" msgid "None" msgstr "Ðемає" -#: ../src/ui/tools/flood-tool.cpp:201 +#: ../src/ui/tools/flood-tool.cpp:103 msgctxt "Flood autogap" msgid "Small" msgstr "Малий" -#: ../src/ui/tools/flood-tool.cpp:202 +#: ../src/ui/tools/flood-tool.cpp:104 msgctxt "Flood autogap" msgid "Medium" msgstr "Середній" -#: ../src/ui/tools/flood-tool.cpp:203 +#: ../src/ui/tools/flood-tool.cpp:105 msgctxt "Flood autogap" msgid "Large" msgstr "Великий" -#: ../src/ui/tools/flood-tool.cpp:425 +#: ../src/ui/tools/flood-tool.cpp:415 msgid "Too much inset, the result is empty." msgstr "Ðадто багато втÑгувань, результат порожній." -#: ../src/ui/tools/flood-tool.cpp:466 +#: ../src/ui/tools/flood-tool.cpp:456 #, c-format msgid "" "Area filled, path with %d node created and unioned with selection." @@ -23290,7 +23294,7 @@ msgstr[2] "" "ОблаÑть заповнено, контур з %d вузлами Ñтворено та поєднано з " "позначеною облаÑтю." -#: ../src/ui/tools/flood-tool.cpp:472 +#: ../src/ui/tools/flood-tool.cpp:462 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." @@ -23298,11 +23302,11 @@ msgstr[0] "ОблаÑть заповнено, Ñтворено контур з < msgstr[1] "ОблаÑть заповнено, Ñтворено контур з %d вузлами." msgstr[2] "ОблаÑть заповнено, Ñтворено контур з %d вузлами." -#: ../src/ui/tools/flood-tool.cpp:740 ../src/ui/tools/flood-tool.cpp:1050 +#: ../src/ui/tools/flood-tool.cpp:730 ../src/ui/tools/flood-tool.cpp:1040 msgid "Area is not bounded, cannot fill." msgstr "ОблаÑть не обмежена, Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½ÐµÐ¼Ð¾Ð¶Ð»Ð¸Ð²Ðµ." -#: ../src/ui/tools/flood-tool.cpp:1055 +#: ../src/ui/tools/flood-tool.cpp:1045 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." @@ -23311,15 +23315,15 @@ msgstr "" "заповнити вÑÑŽ облаÑть, верніть зміни, зробіть меншим маÑштаб та заповніть " "знову." -#: ../src/ui/tools/flood-tool.cpp:1073 ../src/ui/tools/flood-tool.cpp:1224 +#: ../src/ui/tools/flood-tool.cpp:1063 ../src/ui/tools/flood-tool.cpp:1214 msgid "Fill bounded area" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð·Ð°Ð¼ÐºÐ½ÐµÐ½Ð¾Ñ— облаÑті" -#: ../src/ui/tools/flood-tool.cpp:1089 +#: ../src/ui/tools/flood-tool.cpp:1079 msgid "Set style on object" msgstr "Ð’Ñтановити Ñтиль об'єкта" -#: ../src/ui/tools/flood-tool.cpp:1149 +#: ../src/ui/tools/flood-tool.cpp:1139 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "" "Малювати по облаÑÑ‚Ñм Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ, при утриманні AltЖодного вуÑа градієнта з %d в %d виб msgid "Simplify gradient" msgstr "СпроÑтити градієнт" -#: ../src/ui/tools/gradient-tool.cpp:509 +#: ../src/ui/tools/gradient-tool.cpp:510 msgid "Create default gradient" msgstr "Створити типовий градієнт" -#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:560 +#: ../src/ui/tools/gradient-tool.cpp:569 ../src/ui/tools/mesh-tool.cpp:561 msgid "Draw around handles to select them" msgstr "Обведіть вуÑа, щоб вибрати Ñ—Ñ…" -#: ../src/ui/tools/gradient-tool.cpp:691 +#: ../src/ui/tools/gradient-tool.cpp:692 msgid "Ctrl: snap gradient angle" msgstr "Ctrl: обмежити кут градієнта" -#: ../src/ui/tools/gradient-tool.cpp:692 +#: ../src/ui/tools/gradient-tool.cpp:693 msgid "Shift: draw gradient around the starting point" msgstr "Shift: малювати навколо початкової точки" -#: ../src/ui/tools/gradient-tool.cpp:946 ../src/ui/tools/mesh-tool.cpp:983 +#: ../src/ui/tools/gradient-tool.cpp:947 ../src/ui/tools/mesh-tool.cpp:984 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" @@ -23437,7 +23441,7 @@ msgstr[0] "Градієнт Ð´Ð»Ñ %d об'єкта; Ctrl обме msgstr[1] "Градієнт Ð´Ð»Ñ %d об'єктів; Ctrl обмежує кут" msgstr[2] "Градієнт Ð´Ð»Ñ %d об'єктів; Ctrl обмежує кут" -#: ../src/ui/tools/gradient-tool.cpp:950 ../src/ui/tools/mesh-tool.cpp:987 +#: ../src/ui/tools/gradient-tool.cpp:951 ../src/ui/tools/mesh-tool.cpp:988 msgid "Select objects on which to create gradient." msgstr "Позначте об'єкти до Ñких буде заÑтоÑовано градієнт." @@ -23498,19 +23502,19 @@ msgstr "Колір згладженого кута Ñітки." msgid "Picked mesh corner color." msgstr "Вибраний колір кута Ñітки." -#: ../src/ui/tools/mesh-tool.cpp:488 +#: ../src/ui/tools/mesh-tool.cpp:489 msgid "Create default mesh" msgstr "Створити типову Ñітку" -#: ../src/ui/tools/mesh-tool.cpp:708 +#: ../src/ui/tools/mesh-tool.cpp:709 msgid "FIXMECtrl: snap mesh angle" msgstr "Ctrl: Ð¿Ñ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ кута Ñітки" -#: ../src/ui/tools/mesh-tool.cpp:709 +#: ../src/ui/tools/mesh-tool.cpp:710 msgid "FIXMEShift: draw mesh around the starting point" msgstr "Shift: намалювати навколо початкової точки Ñітку" -#: ../src/ui/tools/node-tool.cpp:602 +#: ../src/ui/tools/node-tool.cpp:601 msgctxt "Node tool tip" msgid "" "Shift: drag to add nodes to the selection, click to toggle object " @@ -23519,12 +23523,12 @@ msgstr "" "Shift: перетÑгніть, щоб додати вузли до позначеного, клацніть, щоб " "перемкнути режим Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±'єктів" -#: ../src/ui/tools/node-tool.cpp:606 +#: ../src/ui/tools/node-tool.cpp:605 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" msgstr "Shift: перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ” вузли до позначеного фрагмента" -#: ../src/ui/tools/node-tool.cpp:618 +#: ../src/ui/tools/node-tool.cpp:617 #, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." @@ -23532,7 +23536,7 @@ msgstr[0] "Позначено %u з %u вузла." msgstr[1] "Позначено %u з %u вузлів." msgstr[2] "Позначено %u з %u вузлів." -#: ../src/ui/tools/node-tool.cpp:624 +#: ../src/ui/tools/node-tool.cpp:623 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" @@ -23540,38 +23544,38 @@ msgstr "" "%s ПеретÑгніть, щоб позначити вузли, клацніть, щоб редагувати лише цей " "об'єкт (інше: Shift)" -#: ../src/ui/tools/node-tool.cpp:630 +#: ../src/ui/tools/node-tool.cpp:629 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "" "%s ПеретÑгніть вказівник, щоб позначити вузли, клацніть, щоб знÑти позначеннÑ" -#: ../src/ui/tools/node-tool.cpp:639 +#: ../src/ui/tools/node-tool.cpp:638 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "" "ПеретÑгніть, щоб позначити вузли, клацніть, щоб редагувати лише цей об'єкт" -#: ../src/ui/tools/node-tool.cpp:642 +#: ../src/ui/tools/node-tool.cpp:641 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "" "ПеретÑгніть вказівник, щоб позначити вузли, клацніть, щоб знÑти позначеннÑ" -#: ../src/ui/tools/node-tool.cpp:647 +#: ../src/ui/tools/node-tool.cpp:646 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "" "ПеретÑгніть, щоб позначити об'єкти редагуваннÑ, клацніть Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ " "поточного об'єкта (більше: Shift)" -#: ../src/ui/tools/node-tool.cpp:650 +#: ../src/ui/tools/node-tool.cpp:649 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "ПеретÑгніть вказівник Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±'єктів редагуваннÑ" -#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:457 +#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:454 msgid "Drawing cancelled" msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÑкаÑовано" @@ -23692,11 +23696,11 @@ msgid "Drag to continue the path from this point." msgstr "ПеретÑгніть Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð´Ð¾Ð²Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñƒ з цієї точки." #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:403 +#: ../src/ui/tools/pencil-tool.cpp:401 msgid "Finishing freehand" msgstr "Контур Ñтворено" -#: ../src/ui/tools/pencil-tool.cpp:506 +#: ../src/ui/tools/pencil-tool.cpp:503 msgid "" "Sketch mode: holding Alt interpolates between sketched paths. " "Release Alt to finalize." @@ -23704,11 +23708,11 @@ msgstr "" "Режим еÑкіза: ÑƒÑ‚Ñ€Ð¸Ð¼ÑƒÐ²Ð°Ð½Ð½Ñ Alt виконає інтерполÑцію контурів " "еÑкіза. ВідпуÑтіть Alt, щоб завершити малюваннÑ." -#: ../src/ui/tools/pencil-tool.cpp:533 +#: ../src/ui/tools/pencil-tool.cpp:530 msgid "Finishing freehand sketch" msgstr "Ð—Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¾Ð³Ð¾ еÑкіза" -#: ../src/ui/tools/rect-tool.cpp:278 +#: ../src/ui/tools/rect-tool.cpp:277 msgid "" "Ctrl: make square or integer-ratio rect, lock a rounded corner " "circular" @@ -23716,7 +23720,7 @@ msgstr "" "Ctrl: квадрати чи прÑмокутник з цілим відношеннÑм Ñторін, кругле " "округленнÑ" -#: ../src/ui/tools/rect-tool.cpp:439 +#: ../src/ui/tools/rect-tool.cpp:438 #, c-format msgid "" "Rectangle: %s × %s (constrained to ratio %d:%d); with ShiftПрÑмокутник: %s × %s (обмежено відношеннÑм %d:%d); за допомогою " "Shift можна малювати навколо початкової точки" -#: ../src/ui/tools/rect-tool.cpp:442 +#: ../src/ui/tools/rect-tool.cpp:441 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with " @@ -23734,7 +23738,7 @@ msgstr "" "ПрÑмокутник: %s × %s (обмежено параметром «золотого» перерізу " "1,618 : 1); за допомогою Shift можна малювати навколо початкової точки" -#: ../src/ui/tools/rect-tool.cpp:444 +#: ../src/ui/tools/rect-tool.cpp:443 #, c-format msgid "" "Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with " @@ -23743,7 +23747,7 @@ msgstr "" "ПрÑмокутник: %s × %s (обмежено параметром «золотого» перерізу " "1 : 1,618); за допомогою Shift можна малювати навколо початкової точки" -#: ../src/ui/tools/rect-tool.cpp:448 +#: ../src/ui/tools/rect-tool.cpp:447 #, c-format msgid "" "Rectangle: %s × %s; with Ctrl to make square or integer-" @@ -23752,7 +23756,7 @@ msgstr "" "ПрÑмокутник: %s × %s; Ctrl — квадрат чи прÑмокутник з " "цілим відношеннÑм Ñторін, Shift — малювати навколо початкової точки" -#: ../src/ui/tools/rect-tool.cpp:471 +#: ../src/ui/tools/rect-tool.cpp:470 msgid "Create rectangle" msgstr "Створити прÑмокутник" @@ -23793,19 +23797,19 @@ msgstr "" "Малювати навколо об'єктів Ð´Ð»Ñ Ñ—Ñ…Ð½ÑŒÐ¾Ð³Ð¾ позначеннÑ; відпуÑтіть Alt Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ñƒ до Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ‚Ð¸ÐºÐ¾Ð¼" -#: ../src/ui/tools/select-tool.cpp:941 +#: ../src/ui/tools/select-tool.cpp:939 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "" "Ctrl: Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ групі; перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ â€” Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾ горизонталі/" "вертикалі" -#: ../src/ui/tools/select-tool.cpp:942 +#: ../src/ui/tools/select-tool.cpp:940 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "" "Shift: позначити/знÑти позначеннÑ; перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ â€” Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð³ÑƒÐ¼Ð¾Ð²Ð¾ÑŽ " "ниткою" -#: ../src/ui/tools/select-tool.cpp:943 +#: ../src/ui/tools/select-tool.cpp:941 msgid "" "Alt: click to select under; scroll mouse-wheel to cycle-select; drag " "to move selected or select by touch" @@ -23813,7 +23817,7 @@ msgstr "" "Alt: клацніть Ð´Ð»Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ; Ð¿Ñ€Ð¾ÐºÑ€ÑƒÑ‡ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»Ñ–Ñ‰Ð°Ñ‚ÐºÐ° — циклічний " "вибір; перетÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ â€” Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾Ñ— облаÑті чи вибір торканнÑм" -#: ../src/ui/tools/select-tool.cpp:1151 +#: ../src/ui/tools/select-tool.cpp:1149 msgid "Selected object is not a group. Cannot enter." msgstr "позначений об'єкт не Ñ” групою. Ðеможливо увійти." @@ -23874,19 +23878,19 @@ msgstr "" "%s. ПеретÑгніть, клацніть або натиÑніть Ñ– прокрутіть коліщатко миші, щоб " "розкидати окремий контур позначеної облаÑті." -#: ../src/ui/tools/spray-tool.cpp:654 +#: ../src/ui/tools/spray-tool.cpp:648 msgid "Nothing selected! Select objects to spray." msgstr "Ðічого не позначено! Позначте об'єкти, Ñкі Ñлід розкидати." -#: ../src/ui/tools/spray-tool.cpp:729 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:723 ../src/widgets/spray-toolbar.cpp:166 msgid "Spray with copies" msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ ÐºÐ¾Ð¿Ñ–Ð¹" -#: ../src/ui/tools/spray-tool.cpp:733 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:727 ../src/widgets/spray-toolbar.cpp:173 msgid "Spray with clones" msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ ÐºÐ»Ð¾Ð½Ñ–Ð²" -#: ../src/ui/tools/spray-tool.cpp:737 +#: ../src/ui/tools/spray-tool.cpp:731 msgid "Spray in single path" msgstr "Ð Ð¾Ð·ÐºÐ¸Ð´Ð°Ð½Ð½Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ð³Ð¾ контуру" @@ -24037,7 +24041,7 @@ msgstr "Ð—Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ð¼Ñ–Ð¶Ñ€Ñдкового проміжку" msgid "Paste text" msgstr "Ð’Ñтавити текÑÑ‚" -#: ../src/ui/tools/text-tool.cpp:1574 +#: ../src/ui/tools/text-tool.cpp:1573 #, c-format msgid "" "Type or edit flowed text (%d character%s); Enter to start new " @@ -24055,7 +24059,7 @@ msgstr[2] "" "Введіть або змініть текÑÑ‚ за контуром (%d Ñимволів%s); Enter починає " "новий абзац." -#: ../src/ui/tools/text-tool.cpp:1576 +#: ../src/ui/tools/text-tool.cpp:1575 #, c-format msgid "Type or edit text (%d character%s); Enter to start new line." msgid_plural "" @@ -24069,11 +24073,11 @@ msgstr[2] "" "Введіть або змініть текÑÑ‚ (%d Ñимволів%s); Enter — початок нового " "Ñ€Ñдка." -#: ../src/ui/tools/text-tool.cpp:1686 +#: ../src/ui/tools/text-tool.cpp:1685 msgid "Type text" msgstr "Друк текÑту" -#: ../src/ui/tools/tool-base.cpp:705 +#: ../src/ui/tools/tool-base.cpp:701 msgid "Space+mouse move to pan canvas" msgstr "Пробіл+переÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¸ÑˆÑ– Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ð¾Ñ‚Ð½Ð°" @@ -24158,59 +24162,59 @@ msgstr "" "%s. ПеретÑгніть або клацніть Ð´Ð»Ñ Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ð¸Ð²Ð°Ð½Ð½Ñ; з Shift — Ð´Ð»Ñ " "зменшеннÑ." -#: ../src/ui/tools/tweak-tool.cpp:1195 +#: ../src/ui/tools/tweak-tool.cpp:1192 msgid "Nothing selected! Select objects to tweak." msgstr "Ðічого не вибрано! Оберіть об'єкт(и) Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ—." -#: ../src/ui/tools/tweak-tool.cpp:1229 +#: ../src/ui/tools/tweak-tool.cpp:1226 msgid "Move tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¿ÐµÑ€ÐµÑуваннÑм" -#: ../src/ui/tools/tweak-tool.cpp:1233 +#: ../src/ui/tools/tweak-tool.cpp:1230 msgid "Move in/out tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¿Ñ€Ð¸Ñ‚ÑгуваннÑм/відштовхуваннÑм" -#: ../src/ui/tools/tweak-tool.cpp:1237 +#: ../src/ui/tools/tweak-tool.cpp:1234 msgid "Move jitter tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð²Ð¸Ð¿Ð°Ð´ÐºÐ¾Ð²Ð¸Ð¼ переÑуваннÑм" -#: ../src/ui/tools/tweak-tool.cpp:1241 +#: ../src/ui/tools/tweak-tool.cpp:1238 msgid "Scale tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¼Ð°ÑштабуваннÑм" -#: ../src/ui/tools/tweak-tool.cpp:1245 +#: ../src/ui/tools/tweak-tool.cpp:1242 msgid "Rotate tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñм" -#: ../src/ui/tools/tweak-tool.cpp:1249 +#: ../src/ui/tools/tweak-tool.cpp:1246 msgid "Duplicate/delete tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð´ÑƒÐ±Ð»ÑŽÐ²Ð°Ð½Ð½Ñ/вилученнÑ" -#: ../src/ui/tools/tweak-tool.cpp:1253 +#: ../src/ui/tools/tweak-tool.cpp:1250 msgid "Push path tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ ÑˆÑ‚Ð¾Ð²Ñ…Ð°Ð½Ð½Ñм контурів" -#: ../src/ui/tools/tweak-tool.cpp:1257 +#: ../src/ui/tools/tweak-tool.cpp:1254 msgid "Shrink/grow path tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð²Ñ‚ÑгуваннÑм/витÑгуваннÑм контурів" -#: ../src/ui/tools/tweak-tool.cpp:1261 +#: ../src/ui/tools/tweak-tool.cpp:1258 msgid "Attract/repel path tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¿Ñ€Ð¸Ñ‚ÑганнÑм/відштовхуваннÑм контурів" -#: ../src/ui/tools/tweak-tool.cpp:1265 +#: ../src/ui/tools/tweak-tool.cpp:1262 msgid "Roughen path tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð³Ñ€ÑƒÐ±Ñ–ÑˆÐ°Ð½Ð½Ñм контурів" -#: ../src/ui/tools/tweak-tool.cpp:1269 +#: ../src/ui/tools/tweak-tool.cpp:1266 msgid "Color paint tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð·Ð°Ð»Ð¸Ð²Ð°Ð½Ð½Ñм кольором" -#: ../src/ui/tools/tweak-tool.cpp:1273 +#: ../src/ui/tools/tweak-tool.cpp:1270 msgid "Color jitter tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ð¿ÐµÑ€ÐµÐ±Ð¾Ñ€Ð¾Ð¼ кольорів" -#: ../src/ui/tools/tweak-tool.cpp:1277 +#: ../src/ui/tools/tweak-tool.cpp:1274 msgid "Blur tweak" msgstr "ÐšÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ Ñ€Ð¾Ð·Ð¼Ð¸Ð²Ð°Ð½Ð½Ñм" @@ -24256,86 +24260,102 @@ msgstr "Оновлено умови Ð»Ñ–Ñ†ÐµÐ½Ð·ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°" msgid "Opacity (%)" msgstr "ÐепрозоріÑть (у %)" -#: ../src/ui/widget/object-composite-settings.cpp:159 +#: ../src/ui/widget/object-composite-settings.cpp:160 msgid "Change blur" msgstr "Зміна розмиваннÑ" -#: ../src/ui/widget/object-composite-settings.cpp:199 +#: ../src/ui/widget/object-composite-settings.cpp:200 #: ../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 +#: ../src/ui/widget/page-sizer.cpp:236 msgid "U_nits:" msgstr "О_диниці:" -#: ../src/ui/widget/page-sizer.cpp:236 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "Width of paper" msgstr "Ширина полотна" -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "Height of paper" msgstr "ВиÑота полотна" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "T_op margin:" msgstr "_Верхнє поле:" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "Top margin" msgstr "Верхнє поле" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "L_eft:" msgstr "_Ліве:" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "Left margin" msgstr "Ліве поле" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Ri_ght:" msgstr "_Праве:" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Right margin" msgstr "Праве поле" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Botto_m:" msgstr "Ðи_жнє:" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Bottom margin" msgstr "Ðижнє поле" -#: ../src/ui/widget/page-sizer.cpp:296 +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale _x:" +msgstr "МаÑштаб за _x:" + +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale X" +msgstr "МаÑштаб за X" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale _y:" +msgstr "МаÑштаб за _y:" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale Y" +msgstr "МаÑштаб за Y" + +#: ../src/ui/widget/page-sizer.cpp:321 msgid "Orientation:" msgstr "ОрієнтаціÑ:" -#: ../src/ui/widget/page-sizer.cpp:299 +#: ../src/ui/widget/page-sizer.cpp:324 msgid "_Landscape" msgstr "_Ðльбомна" -#: ../src/ui/widget/page-sizer.cpp:304 +#: ../src/ui/widget/page-sizer.cpp:329 msgid "_Portrait" msgstr "Кни_жкова" #. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:322 +#: ../src/ui/widget/page-sizer.cpp:348 msgid "Custom size" msgstr "ОÑобливий розмір" -#: ../src/ui/widget/page-sizer.cpp:367 +#: ../src/ui/widget/page-sizer.cpp:393 msgid "Resi_ze page to content..." msgstr "_Розмір Ñторінки за вміÑтом…" -#: ../src/ui/widget/page-sizer.cpp:419 +#: ../src/ui/widget/page-sizer.cpp:445 msgid "_Resize page to drawing or selection" msgstr "_Підігнати розмір за малюнком або позначеною облаÑтю" -#: ../src/ui/widget/page-sizer.cpp:420 +#: ../src/ui/widget/page-sizer.cpp:446 msgid "" "Resize the page to fit the current selection, or the entire drawing if there " "is no selection" @@ -24343,105 +24363,131 @@ msgstr "" "Змінити маÑштаб Ñторінки Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾Ñті поточному фрагменту або вÑьому " "риÑунку, Ñкщо фрагмент не позначений" -#: ../src/ui/widget/page-sizer.cpp:489 +#: ../src/ui/widget/page-sizer.cpp:477 +msgid "" +"While SVG allows non-uniform scaling it is recommended to use only uniform " +"scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' " +"directly." +msgstr "" +"Хоча у SVG передбачено неоднорідне маÑштабуваннÑ, рекомендуємо вам " +"викориÑтовувати у Inkscape лише однорідне маÑштабуваннÑ. Щоб вÑтановити " +"неоднорідне маÑштабуваннÑ, вкажіть «viewBox» безпоÑередньо." + +#: ../src/ui/widget/page-sizer.cpp:481 +msgid "_Viewbox..." +msgstr "Поле п_ереглÑду…" + +#: ../src/ui/widget/page-sizer.cpp:588 msgid "Set page size" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ Ñторінки" -#: ../src/ui/widget/panel.cpp:117 +#: ../src/ui/widget/page-sizer.cpp:834 +msgid "User units per " +msgstr "Одиниць кориÑтувача " + +#: ../src/ui/widget/page-sizer.cpp:930 +msgid "Set page scale" +msgstr "Ð’Ñтановити маÑштаб Ñторінки" + +#: ../src/ui/widget/page-sizer.cpp:956 +msgid "Set 'viewBox'" +msgstr "Ð’Ñтановити «viewBox»" + +#: ../src/ui/widget/panel.cpp:113 msgid "List" msgstr "СпиÑок" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:136 msgctxt "Swatches" msgid "Size" msgstr "Розмір" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:140 msgctxt "Swatches height" msgid "Tiny" msgstr "Крихітна" -#: ../src/ui/widget/panel.cpp:145 +#: ../src/ui/widget/panel.cpp:141 msgctxt "Swatches height" msgid "Small" msgstr "Мала" -#: ../src/ui/widget/panel.cpp:146 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Medium" msgstr "СереднÑ" -#: ../src/ui/widget/panel.cpp:147 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Large" msgstr "Велика" -#: ../src/ui/widget/panel.cpp:148 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Huge" msgstr "Величезна" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:166 msgctxt "Swatches" msgid "Width" msgstr "Ширина" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:170 msgctxt "Swatches width" msgid "Narrower" msgstr "Вужча" -#: ../src/ui/widget/panel.cpp:175 +#: ../src/ui/widget/panel.cpp:171 msgctxt "Swatches width" msgid "Narrow" msgstr "Вузька" -#: ../src/ui/widget/panel.cpp:176 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Medium" msgstr "СереднÑ" -#: ../src/ui/widget/panel.cpp:177 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Wide" msgstr "Широка" -#: ../src/ui/widget/panel.cpp:178 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Wider" msgstr "Ширша" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:204 msgctxt "Swatches" msgid "Border" msgstr "Рамка" -#: ../src/ui/widget/panel.cpp:212 +#: ../src/ui/widget/panel.cpp:208 msgctxt "Swatches border" msgid "None" msgstr "Ðемає" -#: ../src/ui/widget/panel.cpp:213 +#: ../src/ui/widget/panel.cpp:209 msgctxt "Swatches border" msgid "Solid" msgstr "Суцільна" -#: ../src/ui/widget/panel.cpp:214 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "Wide" msgstr "Широка" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:245 +#: ../src/ui/widget/panel.cpp:241 msgctxt "Swatches" msgid "Wrap" msgstr "З перенеÑеннÑм" -#: ../src/ui/widget/preferences-widget.cpp:802 +#: ../src/ui/widget/preferences-widget.cpp:798 msgid "_Browse..." msgstr "Ви_брати…" -#: ../src/ui/widget/preferences-widget.cpp:888 +#: ../src/ui/widget/preferences-widget.cpp:884 msgid "Select a bitmap editor" msgstr "Виберіть редактор раÑтрової графіки" @@ -24509,7 +24555,7 @@ 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 +#: ../src/widgets/gradient-toolbar.cpp:163 msgid "Nothing selected" msgstr "Ðічого не позначено" @@ -24536,7 +24582,7 @@ msgid "No stroke" msgstr "Без штриха" #: ../src/ui/widget/selected-style.cpp:192 -#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:234 +#: ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:231 msgid "Pattern" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼" @@ -24611,14 +24657,14 @@ msgstr "Ðе вÑтановлено" #: ../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 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:705 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 +#: ../src/ui/widget/style-swatch.cpp:326 ../src/widgets/fill-style.cpp:705 msgid "Unset stroke" msgstr "ЗнÑÑ‚Ñ‚Ñ ÑˆÑ‚Ñ€Ð¸Ñ…Ð°" @@ -24696,12 +24742,12 @@ 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 +#: ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:504 msgid "Remove fill" msgstr "Вилучити заповненнÑ" #: ../src/ui/widget/selected-style.cpp:299 -#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:508 +#: ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:504 msgid "Remove stroke" msgstr "Вилучити штрих" @@ -24905,7 +24951,7 @@ msgstr "Об'єднати точки Ñходу" msgid "3D box: Move vanishing point" msgstr "ПроÑторовий об'єкт: ПереÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ñходу" -#: ../src/vanishing-point.cpp:327 +#: ../src/vanishing-point.cpp:328 #, c-format msgid "Finite vanishing point shared by %d box" msgid_plural "" @@ -24917,7 +24963,7 @@ msgstr[2] "Скінченна точка Ñходу, Ñпільна дл #. 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 +#: ../src/vanishing-point.cpp:335 #, c-format msgid "Infinite vanishing point shared by %d box" msgid_plural "" @@ -24927,7 +24973,7 @@ msgstr[0] "ÐеÑкінченна точка Ñходу Ð´Ð»Ñ %d msgstr[1] "ÐеÑкінченна точка Ñходу, Ñпільна Ð´Ð»Ñ %d об'єктів" msgstr[2] "ÐеÑкінченна точка Ñходу, Ñпільна Ð´Ð»Ñ %d об'єктів" -#: ../src/vanishing-point.cpp:342 +#: ../src/vanishing-point.cpp:343 #, c-format msgid "" "shared by %d box; drag with Shift to separate selected box(es)" @@ -24944,269 +24990,264 @@ msgstr[2] "" "міÑтитьÑÑ Ñƒ %d об'єктах; перетÑгніть, утримуючи Shift, щоб " "відокремити вибрані об'єкти" -#: ../src/verbs.cpp:138 +#: ../src/verbs.cpp:137 msgid "File" msgstr "Файл" -#: ../src/verbs.cpp:233 ../share/extensions/interp_att_g.inx.h:22 +#: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:22 msgid "Tag" msgstr "Мітка" -#: ../src/verbs.cpp:252 +#: ../src/verbs.cpp:251 msgid "Context" msgstr "КонтекÑÑ‚" -#: ../src/verbs.cpp:271 ../src/verbs.cpp:2302 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2271 #: ../share/extensions/jessyInk_view.inx.h:1 #: ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" msgstr "ПереглÑд" -#: ../src/verbs.cpp:291 +#: ../src/verbs.cpp:290 msgid "Dialog" msgstr "Діалогове вікно" -#: ../src/verbs.cpp:1260 +#: ../src/verbs.cpp:1259 msgid "Switch to next layer" msgstr "ПеремкнутиÑÑ Ð½Ð° наÑтупний шар" -#: ../src/verbs.cpp:1261 +#: ../src/verbs.cpp:1260 msgid "Switched to next layer." msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° наÑтупний шар." -#: ../src/verbs.cpp:1263 +#: ../src/verbs.cpp:1262 msgid "Cannot go past last layer." msgstr "Ðеможливо переміÑтитиÑÑ Ð²Ð¸Ñ‰Ðµ за оÑтанній шар." -#: ../src/verbs.cpp:1272 +#: ../src/verbs.cpp:1271 msgid "Switch to previous layer" msgstr "ПеремкнутиÑÑ Ð½Ð° попередній шар" -#: ../src/verbs.cpp:1273 +#: ../src/verbs.cpp:1272 msgid "Switched to previous layer." msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° попередній шар." -#: ../src/verbs.cpp:1275 +#: ../src/verbs.cpp:1274 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 +#: ../src/verbs.cpp:1295 ../src/verbs.cpp:1362 ../src/verbs.cpp:1398 +#: ../src/verbs.cpp:1404 ../src/verbs.cpp:1428 ../src/verbs.cpp:1443 msgid "No current layer." msgstr "Ðемає поточного шару." -#: ../src/verbs.cpp:1325 ../src/verbs.cpp:1329 +#: ../src/verbs.cpp:1324 ../src/verbs.cpp:1328 #, c-format msgid "Raised layer %s." msgstr "Шар %s піднÑто." -#: ../src/verbs.cpp:1326 +#: ../src/verbs.cpp:1325 msgid "Layer to top" msgstr "ПіднÑти шар нагору" -#: ../src/verbs.cpp:1330 +#: ../src/verbs.cpp:1329 msgid "Raise layer" msgstr "ПіднÑти шар" -#: ../src/verbs.cpp:1333 ../src/verbs.cpp:1337 +#: ../src/verbs.cpp:1332 ../src/verbs.cpp:1336 #, c-format msgid "Lowered layer %s." msgstr "Шар %s опущено." -#: ../src/verbs.cpp:1334 +#: ../src/verbs.cpp:1333 msgid "Layer to bottom" msgstr "ОпуÑтити шар додолу" -#: ../src/verbs.cpp:1338 +#: ../src/verbs.cpp:1337 msgid "Lower layer" msgstr "ОпуÑтити шар" -#: ../src/verbs.cpp:1347 +#: ../src/verbs.cpp:1346 msgid "Cannot move layer any further." msgstr "Ðеможливо переміÑтити шар далі." -#: ../src/verbs.cpp:1361 ../src/verbs.cpp:1380 -#, c-format -msgid "%s copy" -msgstr "ÐšÐ¾Ð¿Ñ–Ñ %s" - -#: ../src/verbs.cpp:1388 +#: ../src/verbs.cpp:1357 msgid "Duplicate layer" msgstr "Дублювати шар" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1391 +#: ../src/verbs.cpp:1360 msgid "Duplicated layer." msgstr "Дубльований шар." -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1393 msgid "Delete layer" msgstr "Вилучити шар" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1427 +#: ../src/verbs.cpp:1396 msgid "Deleted layer." msgstr "Шар вилучено." -#: ../src/verbs.cpp:1444 +#: ../src/verbs.cpp:1413 msgid "Show all layers" msgstr "Показати вÑÑ– шари" -#: ../src/verbs.cpp:1449 +#: ../src/verbs.cpp:1418 msgid "Hide all layers" msgstr "Приховати вÑÑ– шари" -#: ../src/verbs.cpp:1454 +#: ../src/verbs.cpp:1423 msgid "Lock all layers" msgstr "Заблокувати вÑÑ– шари" -#: ../src/verbs.cpp:1468 +#: ../src/verbs.cpp:1437 msgid "Unlock all layers" msgstr "Розблокувати вÑÑ– шари" -#: ../src/verbs.cpp:1552 +#: ../src/verbs.cpp:1521 msgid "Flip horizontally" msgstr "Віддзеркалити горизонтально" -#: ../src/verbs.cpp:1557 +#: ../src/verbs.cpp:1526 msgid "Flip vertically" msgstr "Віддзеркалити вертикально" -#: ../src/verbs.cpp:1614 ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:1583 ../src/verbs.cpp:2696 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 +#: ../src/verbs.cpp:2153 msgid "tutorial-basic.svg" msgstr "tutorial-basic.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2188 +#: ../src/verbs.cpp:2157 msgid "tutorial-shapes.svg" msgstr "tutorial-shapes.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2192 +#: ../src/verbs.cpp:2161 msgid "tutorial-advanced.svg" msgstr "tutorial-advanced.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2196 +#: ../src/verbs.cpp:2165 msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.svg" -#: ../src/verbs.cpp:2199 +#: ../src/verbs.cpp:2168 msgid "tutorial-tracing-pixelart.svg" msgstr "tutorial-tracing-pixelart.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2203 +#: ../src/verbs.cpp:2172 msgid "tutorial-calligraphy.svg" msgstr "tutorial-calligraphy.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2207 +#: ../src/verbs.cpp:2176 msgid "tutorial-interpolate.svg" msgstr "tutorial-interpolate.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2211 +#: ../src/verbs.cpp:2180 msgid "tutorial-elements.svg" msgstr "tutorial-elements.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2215 +#: ../src/verbs.cpp:2184 msgid "tutorial-tips.svg" msgstr "tutorial-tips.svg" -#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3000 +#: ../src/verbs.cpp:2370 ../src/verbs.cpp:2969 msgid "Unlock all objects in the current layer" msgstr "Розблокувати уÑÑ– об'єкти у поточному шарі" -#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3002 +#: ../src/verbs.cpp:2374 ../src/verbs.cpp:2971 msgid "Unlock all objects in all layers" msgstr "Розблокувати уÑÑ– об'єкти в уÑÑ–Ñ… шарах" -#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3004 +#: ../src/verbs.cpp:2378 ../src/verbs.cpp:2973 msgid "Unhide all objects in the current layer" msgstr "Розблокувати уÑÑ– об'єкти у поточному шарі" -#: ../src/verbs.cpp:2413 ../src/verbs.cpp:3006 +#: ../src/verbs.cpp:2382 ../src/verbs.cpp:2975 msgid "Unhide all objects in all layers" msgstr "Показати уÑÑ– об'єкти в уÑÑ–Ñ… шарах" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgctxt "Verb" msgid "None" msgstr "Ðемає" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgid "Does nothing" msgstr "Ðемає дій" #. File #. Tag -#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:2695 msgid "_New" msgstr "_Створити" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2400 msgid "Create new document from the default template" msgstr "Створити новий документ зі Ñтандартного шаблону" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2402 msgid "_Open..." msgstr "_Відкрити…" -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2403 msgid "Open an existing document" msgstr "Відкрити Ñ–Ñнуючий документ" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2404 msgid "Re_vert" msgstr "Від_новити" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2405 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "Відновити оÑтанню збережену верÑÑ–ÑŽ документа (зміни будуть втрачені)" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2406 msgid "Save document" msgstr "Зберегти документ" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2408 msgid "Save _As..." msgstr "Зберегти _Ñк…" -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2409 msgid "Save document under a new name" msgstr "Зберегти документ під іншою назвою" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2410 msgid "Save a Cop_y..." msgstr "Зберегти _копію…" -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2411 msgid "Save a copy of the document under a new name" msgstr "Зберегти копію документа під іншою назвою" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "_Print..." msgstr "Ðад_рукувати…" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "Print document" msgstr "Ðадрукувати документ" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "Clean _up document" msgstr "О_чиÑтити документ" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "" "Remove unused definitions (such as gradients or clipping paths) from the <" "defs> of the document" @@ -25214,145 +25255,145 @@ msgstr "" "Прибрати непотрібні Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (наприклад, градієнти чи вирізаннÑ) з <" "defs> документа" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2417 msgid "_Import..." msgstr "_Імпортувати…" -#: ../src/verbs.cpp:2449 +#: ../src/verbs.cpp:2418 msgid "Import a bitmap or SVG image into this document" msgstr "Імпортувати Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ (раÑтрове чи SVG) до документа" #. 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 +#: ../src/verbs.cpp:2420 msgid "Import Clip Art..." msgstr "_Імпортувати шаблон…" -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2421 msgid "Import clipart from Open Clip Art Library" msgstr "Імпортувати шаблон з бібліотеки Open Clip Art" #. 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 +#: ../src/verbs.cpp:2423 msgid "N_ext Window" msgstr "_ÐаÑтупне вікно" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2424 msgid "Switch to the next document window" msgstr "Перейти до наÑтупного вікна документа" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2425 msgid "P_revious Window" msgstr "_Попереднє вікно" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2426 msgid "Switch to the previous document window" msgstr "Перейти до попереднього вікна документа" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2427 msgid "_Close" msgstr "_Закрити" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2428 msgid "Close this document window" msgstr "Закрити це вікно документа" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "_Quit" msgstr "Ви_йти" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "Quit Inkscape" msgstr "Вийти з Inkscape" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2430 msgid "New from _Template..." msgstr "Створити з _шаблона…" -#: ../src/verbs.cpp:2462 +#: ../src/verbs.cpp:2431 msgid "Create new project from template" msgstr "Створити новий проект на оÑнові шаблону" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2434 msgid "Undo last action" msgstr "СкаÑувати оÑтанню операцію" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2437 msgid "Do again the last undone action" msgstr "Повторити оÑтанню ÑкаÑовану дію" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2438 msgid "Cu_t" msgstr "_Вирізати" -#: ../src/verbs.cpp:2470 +#: ../src/verbs.cpp:2439 msgid "Cut selection to clipboard" msgstr "Вирізати позначені об'єкти у буфер обміну" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2440 msgid "_Copy" msgstr "_Копіювати" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2441 msgid "Copy selection to clipboard" msgstr "Скопіювати позначені об'єкти у буфер обміну" -#: ../src/verbs.cpp:2473 +#: ../src/verbs.cpp:2442 msgid "_Paste" msgstr "Ð’ÑÑ‚_авити" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2443 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "Ð’Ñтавити об'єкти з буферу обміну або текÑÑ‚ у позицію курÑора миші" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2444 msgid "Paste _Style" msgstr "Ð’Ñтавити _Ñтиль" -#: ../src/verbs.cpp:2476 +#: ../src/verbs.cpp:2445 msgid "Apply the style of the copied object to selection" msgstr "ЗаÑтоÑувати Ñтиль Ñкопійованого об'єкта до позначених об'єктів" -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2447 msgid "Scale selection to match the size of the copied object" msgstr "" "Зміна маÑштабу позначених об'єктів з метою задовольнити розміру копійованого " "об'єкта" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2448 msgid "Paste _Width" msgstr "Ð’Ñтавити _ширину" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2449 msgid "Scale selection horizontally to match the width of the copied object" msgstr "" "Змінити маÑштаб позначених об'єктів за горизонтальним розміром з метою " "відповідноÑті ширині копійованого об'єкта" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2450 msgid "Paste _Height" msgstr "Ð’Ñтавити _виÑоту" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2451 msgid "Scale selection vertically to match the height of the copied object" msgstr "" "Змінити маÑштаб позначених об'єктів за вертикальним розміром з метою " "відповідноÑті виÑоті копійованого об'єкта" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2452 msgid "Paste Size Separately" msgstr "Ð’Ñтавити розмір окремо" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2453 msgid "Scale each selected object to match the size of the copied object" msgstr "" "Змінити кожного позначеного об'єкта з метою відповідноÑті розміру " "копійованого об'єкта" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2454 msgid "Paste Width Separately" msgstr "Ð’Ñтавити ширину окремо" -#: ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2455 msgid "" "Scale each selected object horizontally to match the width of the copied " "object" @@ -25360,11 +25401,11 @@ msgstr "" "Змінити маÑштаб кожного позначеного об'єкта за горизонтальним розміром з " "метою відповідноÑті ширині копійованого об'єкта" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2456 msgid "Paste Height Separately" msgstr "Ð’Ñтавити виÑоту окремо" -#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2457 msgid "" "Scale each selected object vertically to match the height of the copied " "object" @@ -25372,67 +25413,67 @@ msgstr "" "Змінити маÑштаб кожного позначеного об'єкта за вертикальним розміром з метою " "відповідноÑті виÑоті копійованого об'єкта" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2458 msgid "Paste _In Place" msgstr "Ð’Ñтавити на _міÑце" -#: ../src/verbs.cpp:2490 +#: ../src/verbs.cpp:2459 msgid "Paste objects from clipboard to the original location" msgstr "Ð’Ñтавити об'єкти з буфера у міÑце, де вони були раніше" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2460 msgid "Paste Path _Effect" msgstr "Ð’Ñтавити _ефект контуру" -#: ../src/verbs.cpp:2492 +#: ../src/verbs.cpp:2461 msgid "Apply the path effect of the copied object to selection" msgstr "ЗаÑтоÑувати ефект контуру Ñкопійованого об'єкта до позначених об'єктів" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2462 msgid "Remove Path _Effect" msgstr "Вилучити _ефект контуру" -#: ../src/verbs.cpp:2494 +#: ../src/verbs.cpp:2463 msgid "Remove any path effects from selected objects" msgstr "Вилучити вÑÑ– ефекти контурів з позначених об'єктів" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2464 msgid "_Remove Filters" msgstr "Ð’_илучити фільтри" -#: ../src/verbs.cpp:2496 +#: ../src/verbs.cpp:2465 msgid "Remove any filters from selected objects" msgstr "Вилучити вÑÑ– наÑлідки заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð² з позначених об'єктів" -#: ../src/verbs.cpp:2497 +#: ../src/verbs.cpp:2466 msgid "_Delete" msgstr "Ð’_илучити" -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2467 msgid "Delete selection" msgstr "Вилучити позначені об'єкти" -#: ../src/verbs.cpp:2499 +#: ../src/verbs.cpp:2468 msgid "Duplic_ate" msgstr "_Дублювати" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2469 msgid "Duplicate selected objects" msgstr "Дублювати позначені об'єкти" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2470 msgid "Create Clo_ne" msgstr "Створити к_лон" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2471 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "Створити клон (копію, пов'Ñзану з оригіналом) позначеного об'єкта" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2472 msgid "Unlin_k Clone" msgstr "Ð’_ід'єднати клон" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2473 msgid "" "Cut the selected clones' links to the originals, turning them into " "standalone objects" @@ -25440,29 +25481,29 @@ msgstr "" "Вирізати вибрані поÑÐ¸Ð»Ð°Ð½Ð½Ñ ÐºÐ»Ð¾Ð½Ñ–Ð² на оригінали з перетвореннÑм Ñ—Ñ… на окремі " "об'єкти" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2474 msgid "Relink to Copied" msgstr "Перез'єднати з копійованим" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2475 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "" "Перез'єднати вибрані клони з об'єктом, Ñкий зараз перебуває у буфері обміну " "даними" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2476 msgid "Select _Original" msgstr "Позначити о_ригінал" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2477 msgid "Select the object to which the selected clone is linked" msgstr "Позначити об'єкт, з Ñким пов'Ñзаний вибраний клон" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2478 msgid "Clone original path (LPE)" msgstr "Клонувати початковий контур (геометрично)" -#: ../src/verbs.cpp:2510 +#: ../src/verbs.cpp:2479 msgid "" "Creates a new path, applies the Clone original LPE, and refers it to the " "selected path" @@ -25470,19 +25511,19 @@ msgstr "" "Створює новий контур, заÑтоÑовує геометричне Ð¿ÐµÑ€ÐµÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ»Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ " "початкового контуру Ñ– пов'Ñзує його з вибраним контуром" -#: ../src/verbs.cpp:2511 +#: ../src/verbs.cpp:2480 msgid "Objects to _Marker" msgstr "Об'єкти у _маркер" -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2481 msgid "Convert selection to a line marker" msgstr "Перетворити вибране на маркер лінії" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2482 msgid "Objects to Gu_ides" msgstr "Об'єкти у на_прÑмні" -#: ../src/verbs.cpp:2514 +#: ../src/verbs.cpp:2483 msgid "" "Convert selected objects to a collection of guidelines aligned with their " "edges" @@ -25490,92 +25531,92 @@ msgstr "" "Перетворити вибрані об'єкти на декілька напрÑмних, вирівнÑних за краÑми " "об'єктів" -#: ../src/verbs.cpp:2515 +#: ../src/verbs.cpp:2484 msgid "Objects to Patter_n" msgstr "О_б'єкти у візерунок" -#: ../src/verbs.cpp:2516 +#: ../src/verbs.cpp:2485 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "Перетворити позначені об'єкти у прÑмокутник, заповнений візерунком" -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2486 msgid "Pattern to _Objects" msgstr "_Візерунок у об'єкти" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2487 msgid "Extract objects from a tiled pattern fill" msgstr "ВитÑгнути об'єкти з текÑтурного заповненнÑ" -#: ../src/verbs.cpp:2519 +#: ../src/verbs.cpp:2488 msgid "Group to Symbol" msgstr "Групу на Ñимвол" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2489 msgid "Convert group to a symbol" msgstr "Перетворити групу на Ñимвол" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2490 msgid "Symbol to Group" msgstr "Символ у групу" -#: ../src/verbs.cpp:2522 +#: ../src/verbs.cpp:2491 msgid "Extract group from a symbol" msgstr "Видобути групу з Ñимволу" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2492 msgid "Clea_r All" msgstr "О_чиÑтити вÑе" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2493 msgid "Delete all objects from document" msgstr "Вилучити уÑÑ– об'єкти з документа" -#: ../src/verbs.cpp:2525 +#: ../src/verbs.cpp:2494 msgid "Select Al_l" msgstr "Поз_начити вÑе" -#: ../src/verbs.cpp:2526 +#: ../src/verbs.cpp:2495 msgid "Select all objects or all nodes" msgstr "Позначити вÑÑ– об'єкти чи вÑÑ– вузли" -#: ../src/verbs.cpp:2527 +#: ../src/verbs.cpp:2496 msgid "Select All in All La_yers" msgstr "Позначити вÑе в уÑÑ–Ñ… _шарах" -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2497 msgid "Select all objects in all visible and unlocked layers" msgstr "Позначити уÑÑ– об'єкти в уÑÑ–Ñ… видимих та розблокованих шарах" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2498 msgid "Fill _and Stroke" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ _та штрих" -#: ../src/verbs.cpp:2530 +#: ../src/verbs.cpp:2499 msgid "" "Select all objects with the same fill and stroke as the selected objects" msgstr "Позначити вÑÑ– об'єкти з тим Ñамим заповненнÑм та штрихом" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2500 msgid "_Fill Color" msgstr "За_повнити кольором" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2501 msgid "Select all objects with the same fill as the selected objects" msgstr "Позначити вÑÑ– об'єкти з тим Ñамим заповненнÑм" -#: ../src/verbs.cpp:2533 +#: ../src/verbs.cpp:2502 msgid "_Stroke Color" msgstr "Колір _штриха" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2503 msgid "Select all objects with the same stroke as the selected objects" msgstr "Позначити вÑÑ– об'єкти з тим Ñамим штрихом" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2504 msgid "Stroke St_yle" msgstr "С_тиль штриха" -#: ../src/verbs.cpp:2536 +#: ../src/verbs.cpp:2505 msgid "" "Select all objects with the same stroke style (width, dash, markers) as the " "selected objects" @@ -25583,11 +25624,11 @@ msgstr "" "Позначити вÑÑ– об'єкти з тим Ñамим типом штриха (товщиною, риÑками, " "позначками)" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2506 msgid "_Object Type" msgstr "Тип _об'єкта" -#: ../src/verbs.cpp:2538 +#: ../src/verbs.cpp:2507 msgid "" "Select all objects with the same object type (rect, arc, text, path, bitmap " "etc) as the selected objects" @@ -25595,156 +25636,156 @@ msgstr "" "Позначити вÑÑ– об'єкти з тим Ñамим типом об'єкта (прÑмокутник, дуга, текÑÑ‚, " "контур, раÑтрове Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð¾Ñ‰Ð¾), що Ñ– позначені об'єкти" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2508 msgid "In_vert Selection" msgstr "_Інвертувати позначеннÑ" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2509 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "" "Інвертувати Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (знÑти Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· позначеного та позначити решту)" -#: ../src/verbs.cpp:2541 +#: ../src/verbs.cpp:2510 msgid "Invert in All Layers" msgstr "Інвертувати в уÑÑ–Ñ… шарах" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2511 msgid "Invert selection in all visible and unlocked layers" msgstr "Інвертувати Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² уÑÑ–Ñ… видимих та незаблокованих шарах" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2512 msgid "Select Next" msgstr "Обрати наÑтупний" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2513 msgid "Select next object or node" msgstr "Обрати наÑтупний об'єкт або вузол" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2514 msgid "Select Previous" msgstr "Обрати попереднє" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2515 msgid "Select previous object or node" msgstr "Обрати попередній об'єкт чи вузол" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2516 msgid "D_eselect" msgstr "Зн_Ñти позначеннÑ" -#: ../src/verbs.cpp:2548 +#: ../src/verbs.cpp:2517 msgid "Deselect any selected objects or nodes" msgstr "ЗнÑти Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· уÑÑ–Ñ… об'єктів чи вузлів" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2519 msgid "Delete all the guides in the document" msgstr "Вилучити уÑÑ– напрÑмні у документі" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2520 msgid "Create _Guides Around the Page" msgstr "Створити _напрÑмні навколо Ñторінки" -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2521 msgid "Create four guides aligned with the page borders" msgstr "Створити чотири напрÑмні за краÑми Ñторінки" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2522 msgid "Next path effect parameter" msgstr "ÐаÑтупний параметр ефекту контуру" -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2523 msgid "Show next editable path effect parameter" msgstr "Показати наÑтупний придатний до Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ ефекту контуру" #. Selection -#: ../src/verbs.cpp:2557 +#: ../src/verbs.cpp:2526 msgid "Raise to _Top" msgstr "ПіднÑти на п_ередній план" -#: ../src/verbs.cpp:2558 +#: ../src/verbs.cpp:2527 msgid "Raise selection to top" msgstr "ПіднÑти позначені об'єкти на передній план" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2528 msgid "Lower to _Bottom" msgstr "ОпуÑтити на з_адній план" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2529 msgid "Lower selection to bottom" msgstr "ОпуÑтити позначені об'єкти на задній план" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2530 msgid "_Raise" msgstr "_ПіднÑти" -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2531 msgid "Raise selection one step" msgstr "ПіднÑти позначені об'єкти на один рівень" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2532 msgid "_Lower" msgstr "_ОпуÑтити" -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2533 msgid "Lower selection one step" msgstr "ОпуÑтити позначені об'єкти на один рівень" -#: ../src/verbs.cpp:2566 +#: ../src/verbs.cpp:2535 msgid "Group selected objects" msgstr "Згрупувати позначені об'єкти" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2537 msgid "Ungroup selected groups" msgstr "Розгрупувати позначені групи" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2539 msgid "_Put on Path" msgstr "_РозміÑтити по контуру" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2541 msgid "_Remove from Path" msgstr "Відокрем_ити від контуру" -#: ../src/verbs.cpp:2574 +#: ../src/verbs.cpp:2543 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 +#: ../src/verbs.cpp:2546 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "" "Вилучити з текÑтового об'єкта уÑÑ– додані вручну повороти кернів та гліфів" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2548 msgid "_Union" msgstr "С_ума" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2549 msgid "Create union of selected paths" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð±'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ… контурів" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2550 msgid "_Intersection" msgstr "_Перетин" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2551 msgid "Create intersection of selected paths" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÑ‚Ð¸Ð½Ñƒ позначених контурів" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2552 msgid "_Difference" msgstr "Р_ізницÑ" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2553 msgid "Create difference of selected paths (bottom minus top)" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ– позначених контурів (низ Ð¼Ñ–Ð½ÑƒÑ Ð²ÐµÑ€Ñ…)" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2554 msgid "E_xclusion" msgstr "Виключне _ÐБО" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2555 msgid "" "Create exclusive OR of selected paths (those parts that belong to only one " "path)" @@ -25752,21 +25793,21 @@ msgstr "" "Створити контур шлÑхом виключного ÐБО з позначених контурів (ті чаÑтини, що " "належать тільки одному з контурів)" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2556 msgid "Di_vision" msgstr "_ДіленнÑ" -#: ../src/verbs.cpp:2588 +#: ../src/verbs.cpp:2557 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 +#: ../src/verbs.cpp:2560 msgid "Cut _Path" msgstr "Розрізати _контур" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2561 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "" "Розрізати штрих нижнього контуру верхнім на чаÑтини, з вилученнÑм заповненнÑ" @@ -25774,357 +25815,357 @@ 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 +#: ../src/verbs.cpp:2565 msgid "Outs_et" msgstr "Ро_зтÑгнути" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2566 msgid "Outset selected paths" msgstr "РозтÑгнути позначені контури" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2568 msgid "O_utset Path by 1 px" msgstr "Р_озтÑгнути на 1 точку" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2569 msgid "Outset selected paths by 1 px" msgstr "РозтÑгнути позначені контури на 1 точку" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2571 msgid "O_utset Path by 10 px" msgstr "Р_озтÑгнути на 10 точок" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2572 msgid "Outset selected paths by 10 px" msgstr "РозтÑгнути позначені контури на 10 точок" #. 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 +#: ../src/verbs.cpp:2576 msgid "I_nset" msgstr "Ð’_Ñ‚Ñгнути" -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2577 msgid "Inset selected paths" msgstr "Ð’Ñ‚Ñгнути позначені контури" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2579 msgid "I_nset Path by 1 px" msgstr "Ð’Ñ‚_Ñгнути контур на 1 точку" -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2580 msgid "Inset selected paths by 1 px" msgstr "Ð’Ñ‚Ñгнути позначені контури на 1 точку" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2582 msgid "I_nset Path by 10 px" msgstr "Ð’Ñ‚_Ñгнути контур на 10 точок" -#: ../src/verbs.cpp:2614 +#: ../src/verbs.cpp:2583 msgid "Inset selected paths by 10 px" msgstr "Ð’Ñ‚Ñгнути позначені контури на 10 точок" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "D_ynamic Offset" msgstr "Д_инамічний відÑтуп" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "Create a dynamic offset object" msgstr "" "Створити об'єкт, втÑгуваннÑ/розтÑÐ³ÑƒÐ²Ð°Ð½Ð½Ñ Ñкого можна змінювати динамічно" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2587 msgid "_Linked Offset" msgstr "Зв'_Ñзане втÑгуваннÑ" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2588 msgid "Create a dynamic offset object linked to the original path" msgstr "" "Створити втÑгуваннÑ/розтÑгуваннÑ, динамічно пов'Ñзане з початковим контуром" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2590 msgid "_Stroke to Path" msgstr "_Штрих у контур" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2591 msgid "Convert selected object's stroke to paths" msgstr "Перетворити штрих позначеного об'єкта на контури" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2592 msgid "Si_mplify" msgstr "_СпроÑтити" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2593 msgid "Simplify selected paths (remove extra nodes)" msgstr "СпроÑтити позначені контури вилученнÑм зайвих вузлів" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2594 msgid "_Reverse" msgstr "Роз_вернути" -#: ../src/verbs.cpp:2626 +#: ../src/verbs.cpp:2595 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "" "Змінити напрÑмок позначених контурів на протилежний (кориÑно Ð´Ð»Ñ " "Ð²Ñ–Ð´Ð´Ð·ÐµÑ€ÐºÐ°Ð»ÐµÐ½Ð½Ñ Ð¼Ð°Ñ€ÐºÐµÑ€Ñ–Ð²)" -#: ../src/verbs.cpp:2629 +#: ../src/verbs.cpp:2598 msgid "Create one or more paths from a bitmap by tracing it" msgstr "" "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ або більше контурів з раÑтрового файла шлÑхом траÑуваннÑ" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2599 msgid "Trace Pixel Art..." msgstr "ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ñтрової графіки…" -#: ../src/verbs.cpp:2631 +#: ../src/verbs.cpp:2600 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "" "Створити контури за алгоритмом Копфа-ЛіщинÑького Ð´Ð»Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ— раÑтрової " "графіки" -#: ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2601 msgid "Make a _Bitmap Copy" msgstr "З_робити раÑтрову копію" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2602 msgid "Export selection to a bitmap and insert it into document" msgstr "ЕкÑпортувати позначені об'єкти у раÑтр та вÑтавити його у документ" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2603 msgid "_Combine" msgstr "Об'_єднати" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2604 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 +#: ../src/verbs.cpp:2607 msgid "Break _Apart" msgstr "_Розділити" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2608 msgid "Break selected paths into subpaths" msgstr "Розділити позначені контури на чаÑтини" -#: ../src/verbs.cpp:2640 +#: ../src/verbs.cpp:2609 msgid "_Arrange..." msgstr "_Компонувати…" -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2610 msgid "Arrange selected objects in a table or circle" msgstr "Компонувати позначені об'єкти у формі таблиці або за колом" #. Layer -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2612 msgid "_Add Layer..." msgstr "_Додати шар…" -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2613 msgid "Create a new layer" msgstr "Створити новий шар" -#: ../src/verbs.cpp:2645 +#: ../src/verbs.cpp:2614 msgid "Re_name Layer..." msgstr "Пере_йменувати шар…" -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2615 msgid "Rename the current layer" msgstr "Перейменувати поточний шар" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2616 msgid "Switch to Layer Abov_e" msgstr "Перейти на шар _вище" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2617 msgid "Switch to the layer above the current" msgstr "Перейти на шар, що знаходитьÑÑ Ð²Ð¸Ñ‰Ðµ від поточного" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2618 msgid "Switch to Layer Belo_w" msgstr "Перейти на шар _нижче" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2619 msgid "Switch to the layer below the current" msgstr "Перейти на шар, що знаходитьÑÑ Ð½Ð¸Ð¶Ñ‡Ðµ від поточного" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2620 msgid "Move Selection to Layer Abo_ve" msgstr "ПереміÑтити позначені об'єкти на шар ви_ще" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2621 msgid "Move selection to the layer above the current" msgstr "ПереміÑтити на шар, що знаходитьÑÑ Ð½Ð°Ð´ поточним" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2622 msgid "Move Selection to Layer Bel_ow" msgstr "ПереміÑтити на шар ни_жче" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2623 msgid "Move selection to the layer below the current" msgstr "ПереміÑтити на шар, що знаходитьÑÑ Ð¿Ñ–Ð´ поточним" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2624 msgid "Move Selection to Layer..." msgstr "ПереÑунути позначене до шару…" -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2626 msgid "Layer to _Top" msgstr "ПіднÑти шар до_гори" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2627 msgid "Raise the current layer to the top" msgstr "ПіднÑти поточний шар догори" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2628 msgid "Layer to _Bottom" msgstr "ОпуÑтити шар в _оÑнову" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2629 msgid "Lower the current layer to the bottom" msgstr "ОпуÑтити поточний шар на найнижчий рівень" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2630 msgid "_Raise Layer" msgstr "_ПіднÑти шар" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2631 msgid "Raise the current layer" msgstr "ПіднÑти поточний шар" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2632 msgid "_Lower Layer" msgstr "_ОпуÑтити шар" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2633 msgid "Lower the current layer" msgstr "ОпуÑтити поточний шар" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2634 msgid "D_uplicate Current Layer" msgstr "Д_ублювати поточний шар" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2635 msgid "Duplicate an existing layer" msgstr "Дублювати поточний шар" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2636 msgid "_Delete Current Layer" msgstr "Ð’_илучити поточний шар" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2637 msgid "Delete the current layer" msgstr "Вилучити поточний шар" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2638 msgid "_Show/hide other layers" msgstr "_Показати або Ñховати інші шари" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2639 msgid "Solo the current layer" msgstr "Виокремити поточний шар" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2640 msgid "_Show all layers" msgstr "По_казати вÑÑ– шари" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2641 msgid "Show all the layers" msgstr "Показати вÑÑ– шари" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2642 msgid "_Hide all layers" msgstr "При_ховати вÑÑ– шари" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2643 msgid "Hide all the layers" msgstr "Приховати вÑÑ– шари" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2644 msgid "_Lock all layers" msgstr "За_блокувати вÑÑ– шари" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2645 msgid "Lock all the layers" msgstr "Заблокувати вÑÑ– шари" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2646 msgid "Lock/Unlock _other layers" msgstr "Заблокувати чи розблокувати ін_ші шари" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2647 msgid "Lock all the other layers" msgstr "Заблокувати вÑÑ– інші шари" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2648 msgid "_Unlock all layers" msgstr "_Розблокувати вÑÑ– шари" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2649 msgid "Unlock all the layers" msgstr "Розблокувати вÑÑ– шари" -#: ../src/verbs.cpp:2681 +#: ../src/verbs.cpp:2650 msgid "_Lock/Unlock Current Layer" msgstr "За_блокувати чи розблокувати поточний шар" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2651 msgid "Toggle lock on current layer" msgstr "Заблокувати або розблокувати поточний шар" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2652 msgid "_Show/hide Current Layer" msgstr "_Показати або Ñховати поточний шар" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2653 msgid "Toggle visibility of current layer" msgstr "Увімкнути/Вимкнути видиміÑть поточного шару" #. Object -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2656 msgid "Rotate _90° CW" msgstr "Обернути на _90° за годинниковою Ñтрілкою" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2690 +#: ../src/verbs.cpp:2659 msgid "Rotate selection 90° clockwise" msgstr "Обернути позначені об'єкти на 90° за годинниковою Ñтрілкою" -#: ../src/verbs.cpp:2691 +#: ../src/verbs.cpp:2660 msgid "Rotate 9_0° CCW" msgstr "Обернути на 9_0° проти годинникової Ñтрілки" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2663 msgid "Rotate selection 90° counter-clockwise" msgstr "Обернути позначені об'єкти на 90° проти годинникової Ñтрілки" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2664 msgid "Remove _Transformations" msgstr "Прибрати _транÑформацію" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2665 msgid "Remove transformations from object" msgstr "Прибрати транÑформації з об'єкта" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2666 msgid "_Object to Path" msgstr "_Об'єкт у контур" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2667 msgid "Convert selected object to path" msgstr "Перетворити позначений об'єкт на контур" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2668 msgid "_Flow into Frame" msgstr "_Огорнути в рамку" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2669 msgid "" "Put text into a frame (path or shape), creating a flowed text linked to the " "frame object" @@ -26132,750 +26173,750 @@ msgstr "" "ВклаÑти текÑÑ‚ у рамку (контур чи форму), Ñтворивши контурний текÑÑ‚ " "прив'Ñзаний до об'єкта рамки" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2670 msgid "_Unflow" msgstr "_ВийнÑти з рамки" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2671 msgid "Remove text from frame (creates a single-line text object)" msgstr "ВийнÑти теÑÑ‚ з рамки, Ñтворивши звичайний теÑтовий об'єкт в один Ñ€Ñдок" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2672 msgid "_Convert to Text" msgstr "_Перетворити у текÑÑ‚" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2673 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "Перетворити контурний текÑÑ‚ у звичайний текÑÑ‚ (із збереженнÑм виглÑду)" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip _Horizontal" msgstr "Віддзеркалити гор_изонтально" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip selected objects horizontally" msgstr "Віддзеркалити позначені об'єкти горизонтально" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip _Vertical" msgstr "Віддзеркалити _вертикально" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip selected objects vertically" msgstr "Віддзеркалити позначені об'єкти вертикально" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2681 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "" "ЗаÑтоÑувати маÑку до позначених об'єктів (викориÑтовуючи найвищий об'єкт Ñк " "маÑку)" -#: ../src/verbs.cpp:2714 +#: ../src/verbs.cpp:2683 msgid "Edit mask" msgstr "Змінити маÑку" -#: ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2684 ../src/verbs.cpp:2692 msgid "_Release" msgstr "_Скинути" -#: ../src/verbs.cpp:2716 +#: ../src/verbs.cpp:2685 msgid "Remove mask from selection" msgstr "Вилучити маÑку з позначеного" -#: ../src/verbs.cpp:2718 +#: ../src/verbs.cpp:2687 msgid "" "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "" "ЗаÑтоÑувати контур-обгортку до позначених об'єктів (викориÑтовуючи найвищий " "об'єкт Ñк контур-обгортку)" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2688 msgid "Create Cl_ip Group" msgstr "Створити групу-обгор_тку" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2689 msgid "Creates a clip group using the selected objects as a base" msgstr "Створити групу-обгортку на оÑнові позначених об’єктів" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2691 msgid "Edit clipping path" msgstr "Змінити контур-обгортку" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2693 msgid "Remove clipping path from selection" msgstr "Вилучити контур-обгортку з позначених об'єктів'" #. Tools -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2698 msgctxt "ContextVerb" msgid "Select" msgstr "ПозначеннÑ" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2699 msgid "Select and transform objects" msgstr "ÐŸÐ¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° транÑÑ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¾Ð±'єктів" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2700 msgctxt "ContextVerb" msgid "Node Edit" msgstr "Редактор вузлів" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2701 msgid "Edit paths by nodes" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð½Ñ‚ÑƒÑ€Ñ–Ð² за вузлами" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2702 msgctxt "ContextVerb" msgid "Tweak" msgstr "КорекціÑ" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2703 msgid "Tweak objects by sculpting or painting" msgstr "Коригувати об'єкти за допомогою Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розфарбовуваннÑ" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2704 msgctxt "ContextVerb" msgid "Spray" msgstr "РозкиданнÑ" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2705 msgid "Spray objects by sculpting or painting" msgstr "Розкидати об'єкти за допомогою Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розфарбовуваннÑ" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2706 msgctxt "ContextVerb" msgid "Rectangle" msgstr "ПрÑмокутник" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2707 msgid "Create rectangles and squares" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ñмокутників та квадратів" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2708 msgctxt "ContextVerb" msgid "3D Box" msgstr "ПроÑторовий об'єкт" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2709 msgid "Create 3D boxes" msgstr "Створити тривимірні об'єкти" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2710 msgctxt "ContextVerb" msgid "Ellipse" msgstr "ЕліпÑ" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2711 msgid "Create circles, ellipses, and arcs" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÑ–Ð», еліпÑів та дуг" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2712 msgctxt "ContextVerb" msgid "Star" msgstr "Зірка" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2713 msgid "Create stars and polygons" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð·Ñ–Ñ€Ð¾Ðº та багатокутників" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2714 msgctxt "ContextVerb" msgid "Spiral" msgstr "Спіраль" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2715 msgid "Create spirals" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñпіралей" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2716 msgctxt "ContextVerb" msgid "Pencil" msgstr "Олівець" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2717 msgid "Draw freehand lines" msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð»ÑŒÐ½Ð¸Ñ… контурів" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2718 msgctxt "ContextVerb" msgid "Pen" msgstr "Перо" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2719 msgid "Draw Bezier curves and straight lines" msgstr "ÐœÐ°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ ÐºÑ€Ð¸Ð²Ð¸Ñ… Безьє чи прÑмих ліній" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2720 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "КаліграфіÑ" -#: ../src/verbs.cpp:2752 +#: ../src/verbs.cpp:2721 msgid "Draw calligraphic or brush strokes" msgstr "Малювати каліграфічним пером або пензлем" -#: ../src/verbs.cpp:2754 +#: ../src/verbs.cpp:2723 msgid "Create and edit text objects" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° зміна текÑтових об'єктів" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2724 msgctxt "ContextVerb" msgid "Gradient" msgstr "Градієнт" -#: ../src/verbs.cpp:2756 +#: ../src/verbs.cpp:2725 msgid "Create and edit gradients" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° зміна градієнтів" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2726 msgctxt "ContextVerb" msgid "Mesh" msgstr "Сітка" -#: ../src/verbs.cpp:2758 +#: ../src/verbs.cpp:2727 msgid "Create and edit meshes" msgstr "Ð¡Ñ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ‚Ð° зміна Ñіток" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2728 msgctxt "ContextVerb" msgid "Zoom" msgstr "МаÑштаб" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2729 msgid "Zoom in or out" msgstr "Змінити маÑштаб" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2731 msgid "Measurement tool" msgstr "ІнÑтрумент вимірюваннÑ" -#: ../src/verbs.cpp:2763 +#: ../src/verbs.cpp:2732 msgctxt "ContextVerb" msgid "Dropper" msgstr "Піпетка" -#: ../src/verbs.cpp:2764 ../src/widgets/sp-color-notebook.cpp:396 +#: ../src/verbs.cpp:2733 ../src/widgets/sp-color-notebook.cpp:396 msgid "Pick colors from image" msgstr "ВзÑти кольори з зображеннÑ" -#: ../src/verbs.cpp:2765 +#: ../src/verbs.cpp:2734 msgctxt "ContextVerb" msgid "Connector" msgstr "Ð›Ñ–Ð½Ñ–Ñ Ð·'єднаннÑ" -#: ../src/verbs.cpp:2766 +#: ../src/verbs.cpp:2735 msgid "Create diagram connectors" msgstr "Створити лінії з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ð° діаграмі" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2736 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "Відро з фарбою" -#: ../src/verbs.cpp:2768 +#: ../src/verbs.cpp:2737 msgid "Fill bounded areas" msgstr "Заповнити замкнені облаÑті" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2738 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð³ÐµÐ¾Ð¼ÐµÑ‚Ñ€Ð¸Ñ‡Ð½Ð¸Ñ… побудов" -#: ../src/verbs.cpp:2770 +#: ../src/verbs.cpp:2739 msgid "Edit Path Effect parameters" msgstr "Змінити параметри ефекту контуру" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2740 msgctxt "ContextVerb" msgid "Eraser" msgstr "Гумка" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2741 msgid "Erase existing paths" msgstr "Витерти Ñ–Ñнуючі контури" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2742 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "ІнÑтрумент геометричної побудови" -#: ../src/verbs.cpp:2774 +#: ../src/verbs.cpp:2743 msgid "Do geometric constructions" msgstr "Виконати геометричну побудову" #. Tool prefs -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2745 msgid "Selector Preferences" msgstr "Параметри Ñелектора" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2746 msgid "Open Preferences for the Selector tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента позначеннÑ" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2747 msgid "Node Tool Preferences" msgstr "Параметри редактора вузлів" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2748 msgid "Open Preferences for the Node tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Редактор вузлів»" -#: ../src/verbs.cpp:2780 +#: ../src/verbs.cpp:2749 msgid "Tweak Tool Preferences" msgstr "Параметри інÑтрумента «КорекціÑ»" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2750 msgid "Open Preferences for the Tweak tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «КорекціÑ»" -#: ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2751 msgid "Spray Tool Preferences" msgstr "Параметри інÑтрумента «РозкиданнÑ»" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2752 msgid "Open Preferences for the Spray tool" msgstr "Відкрити вікно параметрів Ð´Ð»Ñ Ñ–Ð½Ñтрумента «РозкиданнÑ»" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2753 msgid "Rectangle Preferences" msgstr "Параметри прÑмокутника" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2754 msgid "Open Preferences for the Rectangle tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «ПрÑмокутник»" -#: ../src/verbs.cpp:2786 +#: ../src/verbs.cpp:2755 msgid "3D Box Preferences" msgstr "Параметри проÑторового об'єкта" -#: ../src/verbs.cpp:2787 +#: ../src/verbs.cpp:2756 msgid "Open Preferences for the 3D Box tool" msgstr "" "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «ПроÑторовий об'єкт»" -#: ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2757 msgid "Ellipse Preferences" msgstr "Параметри еліпÑа" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2758 msgid "Open Preferences for the Ellipse tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «ЕліпÑ»" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2759 msgid "Star Preferences" msgstr "ВлаÑтивоÑті зірки" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2760 msgid "Open Preferences for the Star tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Зірка»" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2761 msgid "Spiral Preferences" msgstr "ВлаÑтивоÑті Ñпіралі" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2762 msgid "Open Preferences for the Spiral tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Спіраль»" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2763 msgid "Pencil Preferences" msgstr "Параметри олівцÑ" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2764 msgid "Open Preferences for the Pencil tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Олівець»" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2765 msgid "Pen Preferences" msgstr "Параметри пера" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2766 msgid "Open Preferences for the Pen tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Перо»" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2767 msgid "Calligraphic Preferences" msgstr "Параметри каліграфічного пера" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2768 msgid "Open Preferences for the Calligraphy tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Каліграфічне перо»" -#: ../src/verbs.cpp:2800 +#: ../src/verbs.cpp:2769 msgid "Text Preferences" msgstr "Параметри текÑту" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2770 msgid "Open Preferences for the Text tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «ТекÑт»" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2771 msgid "Gradient Preferences" msgstr "Параметри градієнта" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2772 msgid "Open Preferences for the Gradient tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Градієнт»" -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2773 msgid "Mesh Preferences" msgstr "Параметри Ñітки" -#: ../src/verbs.cpp:2805 +#: ../src/verbs.cpp:2774 msgid "Open Preferences for the Mesh tool" msgstr "Відкрити вікно параметрів Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Сітка»" -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2775 msgid "Zoom Preferences" msgstr "Параметри маÑштабу" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2776 msgid "Open Preferences for the Zoom tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «МаÑштаб»" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2777 msgid "Measure Preferences" msgstr "ВлаÑтивоÑті вимірюваннÑ" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2778 msgid "Open Preferences for the Measure tool" msgstr "Відкрити вікно параметрів Ð´Ð»Ñ Ñ–Ð½Ñтрумента «ВимірюваннÑ»" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2779 msgid "Dropper Preferences" msgstr "Параметри піпетки" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2780 msgid "Open Preferences for the Dropper tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Піпетка»" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2781 msgid "Connector Preferences" msgstr "Параметри лінії з'єднаннÑ" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2782 msgid "Open Preferences for the Connector tool" msgstr "Відкрити вікно параметрів Inkscape Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Лінії з'єднаннÑ»" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2783 msgid "Paint Bucket Preferences" msgstr "Параметри відра з фарбою" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2784 msgid "Open Preferences for the Paint Bucket tool" msgstr "Відкрити параметри Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Відро з фарбою»" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2785 msgid "Eraser Preferences" msgstr "ВлаÑтивоÑті гумки" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2786 msgid "Open Preferences for the Eraser tool" msgstr "Відкрити вікно параметрів Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Гумка»" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2787 msgid "LPE Tool Preferences" msgstr "Параметри інÑтрумента «Геометричні побудови»" -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2788 msgid "Open Preferences for the LPETool tool" msgstr "Відкрити вікно параметрів Ð´Ð»Ñ Ñ–Ð½Ñтрумента «Геометричні побудови»" #. Zoom/View -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom In" msgstr "Збільшити" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom in" msgstr "Збільшити" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom Out" msgstr "Зменшити" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom out" msgstr "Зменшити" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "_Rulers" msgstr "_Лінійки" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "Show or hide the canvas rulers" msgstr "Показати або Ñховати лінійки полотна" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Scroll_bars" msgstr "_Смуги гортаннÑ" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Show or hide the canvas scrollbars" msgstr "Показати/Сховати Ñмуги Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ð¾Ñ‚Ð½Ð°" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Page _Grid" msgstr "С_ітка Ñторінки" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Show or hide the page grid" msgstr "Показати або Ñховати Ñітку Ñторінки" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "G_uides" msgstr "Ðап_Ñ€Ñмні" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "" "Показати чи Ñховати напрÑмні (потÑгніть від лінійки Ð´Ð»Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð½Ð°Ð¿Ñ€Ñмної)" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2796 msgid "Enable snapping" msgstr "Дозволити прилипаннÑ" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "_Commands Bar" msgstr "Панель ко_манд" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "Show or hide the Commands bar (under the menu)" msgstr "Показати/Ñховати панель команд (під меню)" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Sn_ap Controls Bar" msgstr "Панель ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸_липаннÑм" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Show or hide the snapping controls" msgstr "Показати або Ñховати інÑтрументи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñм" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "T_ool Controls Bar" msgstr "Па_нель параметрів інÑтрументів" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "Show or hide the Tool Controls bar" msgstr "Показати або Ñховати панель з параметрами інÑтрументів" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "_Toolbox" msgstr "Панель _інÑтрументів" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "Show or hide the main toolbox (on the left)" msgstr "Показати або Ñховати головну панель інÑтрументів (зліва)" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "_Palette" msgstr "_Палітру" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "Show or hide the color palette" msgstr "Показати або Ñховати панель з палітрою кольорів" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "_Statusbar" msgstr "_РÑдок Ñтану" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "Показати або Ñховати Ñ€Ñдок Ñтану (внизу вікна)" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Nex_t Zoom" msgstr "Ð_аÑтупний маÑштаб" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Next zoom (from the history of zooms)" msgstr "ÐаÑтупний маÑштаб (з Ñ–Ñторії зміни маÑштабу)" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Pre_vious Zoom" msgstr "П_опередній маÑштаб" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Previous zoom (from the history of zooms)" msgstr "Попередній маÑштаб (з Ñ–Ñторії зміни маÑштабу)" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom 1:_1" msgstr "МаÑштаб 1:_1" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom to 1:1" msgstr "МаÑштаб 1:1" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom 1:_2" msgstr "МаÑштаб 1:_2" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom to 1:2" msgstr "МаÑштаб 1:2" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "_Zoom 2:1" msgstr "МаÑ_штаб 2:1" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "Zoom to 2:1" msgstr "МаÑштаб 2:1" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2814 msgid "_Fullscreen" msgstr "Ðа веÑÑŒ _екран" -#: ../src/verbs.cpp:2845 ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2814 ../src/verbs.cpp:2816 msgid "Stretch this document window to full screen" msgstr "РозтÑгнути вікно документа на веÑÑŒ екран" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2816 msgid "Fullscreen & Focus Mode" msgstr "Повноекранний режим та режим фокуÑуваннÑ" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Toggle _Focus Mode" msgstr "Перемкнути режим _фокуÑуваннÑ" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Remove excess toolbars to focus on drawing" msgstr "Вилучити зайві панелі інÑтрументів Ð´Ð»Ñ Ñ„Ð¾ÐºÑƒÑÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° малюванні" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Duplic_ate Window" msgstr "_Дублювати вікно" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Open a new window with the same document" msgstr "Відкрити нове вікно з цим Ñамим документом" -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2823 msgid "_New View Preview" msgstr "_Створити попередній переглÑд" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2824 msgid "New View Preview" msgstr "Створити нове вікно попереднього переглÑду" #. "view_new_preview" -#: ../src/verbs.cpp:2857 ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2826 ../src/verbs.cpp:2834 msgid "_Normal" msgstr "_Звичайний" -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2827 msgid "Switch to normal display mode" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° звичайний режим відображеннÑ" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2828 msgid "No _Filters" msgstr "Без _фільтрів" -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2829 msgid "Switch to normal display without filters" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° звичайний режим без фільтрів" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2830 msgid "_Outline" msgstr "_ОбриÑ" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2831 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 +#: ../src/verbs.cpp:2832 ../src/verbs.cpp:2840 msgid "_Toggle" msgstr "_ПеремкнутиÑÑ" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2833 msgid "Toggle between normal and outline display modes" msgstr "Перемикач між нормальним та каркаÑним режимами відображеннÑ" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2835 msgid "Switch to normal color display mode" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° звичайний режим показу кольорів" -#: ../src/verbs.cpp:2867 +#: ../src/verbs.cpp:2836 msgid "_Grayscale" msgstr "Сі_рі півтони" -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2837 msgid "Switch to grayscale display mode" msgstr "ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð° режим показу тонів Ñірого" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2841 msgid "Toggle between normal and grayscale color display modes" msgstr "" "Перемикач між нормальним режимом показу та режимом показу у відтінках Ñірого" -#: ../src/verbs.cpp:2874 +#: ../src/verbs.cpp:2843 msgid "Color-managed view" msgstr "ПереглÑд ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ð¾Ð¼" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2844 msgid "Toggle color-managed display for this document window" msgstr "" "Перемикач ÑƒÐ·Ð³Ð¾Ð´Ð¶ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² диÑплеєм Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ вікна документа" -#: ../src/verbs.cpp:2877 +#: ../src/verbs.cpp:2846 msgid "Ico_n Preview..." msgstr "ПереглÑнути Ñк п_іктограму…" -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2847 msgid "Open a window to preview objects at different icon resolutions" msgstr "ПереглÑнути позначений елемент у формі піктограми різних розмірів" -#: ../src/verbs.cpp:2880 +#: ../src/verbs.cpp:2849 msgid "Zoom to fit page in window" msgstr "Змінити маÑштаб, щоб розміÑтити Ñторінку цілком" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2850 msgid "Page _Width" msgstr "Ш_ирина Ñторінки" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2851 msgid "Zoom to fit page width in window" msgstr "Змінити маÑштаб, щоб розміÑтити Ñторінку по ширині" -#: ../src/verbs.cpp:2884 +#: ../src/verbs.cpp:2853 msgid "Zoom to fit drawing in window" msgstr "Змінити маÑштаб, щоб розміÑтити малюнок цілком" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2855 msgid "Zoom to fit selection in window" msgstr "Змінити маÑштаб, щоб розміÑтити позначену облаÑть" #. Dialogs -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2858 msgid "P_references..." msgstr "Ðа_лаштуваннÑ…" -#: ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:2859 msgid "Edit global Inkscape preferences" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¸Ñ… параметрів Inkscape" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2860 msgid "_Document Properties..." msgstr "Параметри д_окумента…" -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2861 msgid "Edit properties of this document (to be saved with the document)" msgstr "" "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð»Ð°ÑтивоÑтей поточного документа (вони будуть збережені разом з " "ним)" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2862 msgid "Document _Metadata..." msgstr "_Метадані документа" -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2863 msgid "Edit document metadata (to be saved with the document)" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼ÐµÑ‚Ð°Ð´Ð°Ð½Ð¸Ñ… документа (вони будуть збережені разом з ним)" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2865 msgid "" "Edit objects' colors, gradients, arrowheads, and other fill and stroke " "properties..." @@ -26884,118 +26925,118 @@ msgstr "" "Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ‚Ð° штриха…" #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2898 +#: ../src/verbs.cpp:2867 msgid "Gl_yphs..." msgstr "Г_ліфи…" -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2868 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 +#: ../src/verbs.cpp:2871 msgid "S_watches..." msgstr "Зразки _кольорів…" -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2872 msgid "Select colors from a swatches palette" msgstr "Виберіть колір з палітри зразків" -#: ../src/verbs.cpp:2904 +#: ../src/verbs.cpp:2873 msgid "S_ymbols..." msgstr "С_имволи…" -#: ../src/verbs.cpp:2905 +#: ../src/verbs.cpp:2874 msgid "Select symbol from a symbols palette" msgstr "Виберіть Ñимвол з палітри Ñимволів" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2875 msgid "Transfor_m..." msgstr "_ТранÑформувати…" -#: ../src/verbs.cpp:2907 +#: ../src/verbs.cpp:2876 msgid "Precisely control objects' transformations" msgstr "Контролювати точніÑть перетворень об'єктів" -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:2877 msgid "_Align and Distribute..." msgstr "Вирів_нÑти та розподілити…" -#: ../src/verbs.cpp:2909 +#: ../src/verbs.cpp:2878 msgid "Align and distribute objects" msgstr "ВирівнÑти та розподілити об'єкти" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2879 msgid "_Spray options..." msgstr "Параметри _розкиданнÑ…" -#: ../src/verbs.cpp:2911 +#: ../src/verbs.cpp:2880 msgid "Some options for the spray" msgstr "Параметри розкиданнÑ" -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2881 msgid "Undo _History..." msgstr "ІÑто_Ñ€Ñ–Ñ Ð·Ð¼Ñ–Ð½â€¦" -#: ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2882 msgid "Undo History" msgstr "ІÑÑ‚Ð¾Ñ€Ñ–Ñ Ð´Ð»Ñ ÑкаÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¼Ñ–Ð½" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2884 msgid "View and select font family, font size and other text properties" msgstr "" "ПереглÑд та вибір назви шрифту, його розміру та інших влаÑтивоÑтей текÑту" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2885 msgid "_XML Editor..." msgstr "Редактор _XML…" -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2886 msgid "View and edit the XML tree of the document" msgstr "ПереглÑд та Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð´ÐµÑ€ÐµÐ²Ð° XML поточного документа" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2887 msgid "_Find/Replace..." msgstr "Знайти Ñ– з_амінити…" -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2888 msgid "Find objects in document" msgstr "Знайти об'єкти у документі" -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2889 msgid "Find and _Replace Text..." msgstr "Знайти Ñ– з_амінити текÑт…" -#: ../src/verbs.cpp:2921 +#: ../src/verbs.cpp:2890 msgid "Find and replace text in document" msgstr "Знайти Ñ– замінити текÑÑ‚ у документі" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2892 msgid "Check spelling of text in document" msgstr "Перевірити Ð¿Ñ€Ð°Ð²Ð¾Ð¿Ð¸Ñ Ñ‚ÐµÐºÑту у документі" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2893 msgid "_Messages..." msgstr "По_відомленнÑ…" -#: ../src/verbs.cpp:2925 +#: ../src/verbs.cpp:2894 msgid "View debug messages" msgstr "ПереглÑнути діагноÑтичні повідомленнÑ" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2895 msgid "Show/Hide D_ialogs" msgstr "Показати/Ñховати діало_ги" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2896 msgid "Show or hide all open dialogs" msgstr "Показати чи Ñховати вÑÑ– активні діалогові вікна" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2897 msgid "Create Tiled Clones..." msgstr "Створити мозаїку з клонів…" -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2898 msgid "" "Create multiple clones of selected object, arranging them into a pattern or " "scattering" @@ -27003,237 +27044,237 @@ msgstr "" "Створити множину клонів позначеного об'єкта, з розташуваннÑм Ñ—Ñ… у формі " "візерунку або покриттÑ" -#: ../src/verbs.cpp:2930 +#: ../src/verbs.cpp:2899 msgid "_Object attributes..." msgstr "_Ðтрибути об'єкта…" -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2900 msgid "Edit the object attributes..." msgstr "Змінити атрибути об'єкта…" -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2902 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "" "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°, Ñтану заблокованоÑті та видимоÑті та інших " "влаÑтивоÑтей об'єкта" -#: ../src/verbs.cpp:2934 +#: ../src/verbs.cpp:2903 msgid "_Input Devices..." msgstr "_ПриÑтрої введеннÑ…" -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2904 msgid "Configure extended input devices, such as a graphics tablet" msgstr "ÐÐ°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ… приÑтроїв введеннÑ" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2905 msgid "_Extensions..." msgstr "_Про додатки…" -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2906 msgid "Query information about extensions" msgstr "Зібрати інформацію про додатки" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2907 msgid "Layer_s..." msgstr "_Шари…" -#: ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2908 msgid "View Layers" msgstr "ПереглÑнути шари" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2909 msgid "Object_s..." msgstr "Об'_єкти…" -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2910 msgid "View Objects" msgstr "ПереглÑнути об'єкти" -#: ../src/verbs.cpp:2942 +#: ../src/verbs.cpp:2911 msgid "Selection se_ts..." msgstr "Ðа_бори позначеного…" -#: ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2912 msgid "View Tags" msgstr "ПереглÑнути теґи" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2913 msgid "Path E_ffects ..." msgstr "Е_фекти контурів…" -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2914 msgid "Manage, edit, and apply path effects" msgstr "КеруваннÑ, Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ ÐµÑ„ÐµÐºÑ‚Ñ–Ð² контурів" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2915 msgid "Filter _Editor..." msgstr "Р_едактор фільтрів…" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2916 msgid "Manage, edit, and apply SVG filters" msgstr "КеруваннÑ, Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ñ–Ð² SVG" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2917 msgid "SVG Font Editor..." msgstr "Редактор шрифтів SVG…" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2918 msgid "Edit SVG fonts" msgstr "Редагувати шрифти SVG" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2919 msgid "Print Colors..." msgstr "Друкувати кольори…" -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2920 msgid "" "Select which color separations to render in Print Colors Preview rendermode" msgstr "" "Вкажіть ділÑнки кольорів, Ñкі Ñлід оброблÑти у режимі обробки попереднього " "переглÑду кольорів друку." -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2921 msgid "_Export PNG Image..." msgstr "_ЕкÑпортувати Ñк Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ PNG…" -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2922 msgid "Export this document or a selection as a PNG image" msgstr "ЕкÑпортувати документ чи позначену чаÑтину Ñк Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ PNG" #. Help -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2924 msgid "About E_xtensions" msgstr "Про _додатки" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2925 msgid "Information on Inkscape extensions" msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ додатки Inkscape" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2926 msgid "About _Memory" msgstr "Про п_ам'Ñть" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2927 msgid "Memory usage information" msgstr "Ð†Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ð¿Ñ€Ð¾ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'Ñті" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2928 msgid "_About Inkscape" msgstr "_Про програму Inkscape" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2929 msgid "Inkscape version, authors, license" msgstr "ВерÑÑ–Ñ, автори та Ð»Ñ–Ñ†ÐµÐ½Ð·Ñ–Ñ Inkscape" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:2965 +#: ../src/verbs.cpp:2934 msgid "Inkscape: _Basic" msgstr "Inkscape: _Початковий рівень" -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2935 msgid "Getting started with Inkscape" msgstr "Починаємо роботу з Inkscape" #. "tutorial_basic" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2936 msgid "Inkscape: _Shapes" msgstr "Inkscape: _Фігури" -#: ../src/verbs.cpp:2968 +#: ../src/verbs.cpp:2937 msgid "Using shape tools to create and edit shapes" msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ–Ð½Ñтрументів Ð¼Ð°Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ñ–Ð³ÑƒÑ€" -#: ../src/verbs.cpp:2969 +#: ../src/verbs.cpp:2938 msgid "Inkscape: _Advanced" msgstr "Inkscape: _Другий рівень" -#: ../src/verbs.cpp:2970 +#: ../src/verbs.cpp:2939 msgid "Advanced Inkscape topics" msgstr "Додаткові теми з Inkscape" #. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2972 +#: ../src/verbs.cpp:2941 msgid "Inkscape: T_racing" msgstr "Inkscape: _ВекторизаціÑ" -#: ../src/verbs.cpp:2973 +#: ../src/verbs.cpp:2942 msgid "Using bitmap tracing" msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐµÐºÑ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ñ–Ñ— раÑтру" #. "tutorial_tracing" -#: ../src/verbs.cpp:2974 +#: ../src/verbs.cpp:2943 msgid "Inkscape: Tracing Pixel Art" msgstr "Inkscape: ТраÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ñтрової графіки" -#: ../src/verbs.cpp:2975 +#: ../src/verbs.cpp:2944 msgid "Using Trace Pixel Art dialog" msgstr "КориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ñ–Ð°Ð»Ð¾Ð³Ð¾Ð²Ð¸Ð¼ вікном траÑÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ð°Ñтрової графіки" -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:2945 msgid "Inkscape: _Calligraphy" msgstr "Inkscape: _КаліграфіÑ" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:2946 msgid "Using the Calligraphy pen tool" msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ°Ð»Ñ–Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ пера" -#: ../src/verbs.cpp:2978 +#: ../src/verbs.cpp:2947 msgid "Inkscape: _Interpolate" msgstr "Inkscape: _ІнтерполÑціÑ" -#: ../src/verbs.cpp:2979 +#: ../src/verbs.cpp:2948 msgid "Using the interpolate extension" msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ° інтерполÑції" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2980 +#: ../src/verbs.cpp:2949 msgid "_Elements of Design" msgstr "_Елементи дизайну" -#: ../src/verbs.cpp:2981 +#: ../src/verbs.cpp:2950 msgid "Principles of design in the tutorial form" msgstr "Підручник з принципів дизайну" #. "tutorial_design" -#: ../src/verbs.cpp:2982 +#: ../src/verbs.cpp:2951 msgid "_Tips and Tricks" msgstr "_Поради та прийоми" -#: ../src/verbs.cpp:2983 +#: ../src/verbs.cpp:2952 msgid "Miscellaneous tips and tricks" msgstr "Різноманітні поради та прийоми" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2986 +#: ../src/verbs.cpp:2955 msgid "Previous Exte_nsion" msgstr "Попередній _додаток" -#: ../src/verbs.cpp:2987 +#: ../src/verbs.cpp:2956 msgid "Repeat the last extension with the same settings" msgstr "" "Повторити ефекти викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½ÑŒÐ¾Ð³Ð¾ додатка з тими Ñамими параметрами" -#: ../src/verbs.cpp:2988 +#: ../src/verbs.cpp:2957 msgid "_Previous Extension Settings..." msgstr "П_араметри попереднього додатка…" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:2958 msgid "Repeat the last extension with new settings" msgstr "Повторити оÑтанній ефект з новими параметрами" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2962 msgid "Fit the page to the current selection" msgstr "Підігнати полотно до поточного позначеної облаÑті" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2964 msgid "Fit the page to the drawing" msgstr "ПідганÑÑ” полотно під вже намальоване" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2966 msgid "" "Fit the page to the current selection or the drawing if there is no selection" msgstr "" @@ -27241,139 +27282,139 @@ msgstr "" "креÑленнÑ, Ñкщо нічого не позначено" #. LockAndHide -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:2968 msgid "Unlock All" msgstr "Розблокувати вÑе" -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:2970 msgid "Unlock All in All Layers" msgstr "Розблокувати вÑе в уÑÑ–Ñ… шарах" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:2972 msgid "Unhide All" msgstr "Показати вÑе" -#: ../src/verbs.cpp:3005 +#: ../src/verbs.cpp:2974 msgid "Unhide All in All Layers" msgstr "Показати вÑе в уÑÑ–Ñ… шарах" -#: ../src/verbs.cpp:3009 +#: ../src/verbs.cpp:2978 msgid "Link an ICC color profile" msgstr "ПоÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð½Ð° профіль кольорів ICC" -#: ../src/verbs.cpp:3010 +#: ../src/verbs.cpp:2979 msgid "Remove Color Profile" msgstr "Вилучити профіль кольорів" -#: ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:2980 msgid "Remove a linked ICC color profile" msgstr "Вилучити пов'Ñзаний профіль кольорів ICC" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add External Script" msgstr "Додати зовнішній Ñкрипт" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add an external script" msgstr "Додати зовнішній Ñкрипт" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add Embedded Script" msgstr "Додати вбудований Ñкрипт" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add an embedded script" msgstr "Додати вбудований Ñкрипт" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit Embedded Script" msgstr "Редагувати вбудований Ñкрипт" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit an embedded script" msgstr "Редагувати вбудований Ñкрипт" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove External Script" msgstr "Вилучити зовнішній Ñкрипт" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove an external script" msgstr "Вилучити зовнішній Ñкрипт" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove Embedded Script" msgstr "Вилучити вбудований Ñкрипт" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove an embedded script" msgstr "Вилучити вбудований Ñкрипт" -#: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 +#: ../src/verbs.cpp:3013 ../src/verbs.cpp:3014 msgid "Center on horizontal and vertical axis" msgstr "Центрувати на горизонтальній Ñ– вертикальній оÑÑ–" -#: ../src/widgets/arc-toolbar.cpp:132 +#: ../src/widgets/arc-toolbar.cpp:129 msgid "Arc: Change start/end" msgstr "Дуга: змінити початок/кінець" -#: ../src/widgets/arc-toolbar.cpp:198 +#: ../src/widgets/arc-toolbar.cpp:191 msgid "Arc: Change open/closed" msgstr "Дуга: змінити відкритіÑть/замкненіÑть" -#: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 +#: ../src/widgets/arc-toolbar.cpp:280 ../src/widgets/arc-toolbar.cpp:310 #: ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 -#: ../src/widgets/spiral-toolbar.cpp:214 ../src/widgets/spiral-toolbar.cpp:238 -#: ../src/widgets/star-toolbar.cpp:384 ../src/widgets/star-toolbar.cpp:446 +#: ../src/widgets/spiral-toolbar.cpp:210 ../src/widgets/spiral-toolbar.cpp:234 +#: ../src/widgets/star-toolbar.cpp:382 ../src/widgets/star-toolbar.cpp:444 msgid "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/arc-toolbar.cpp:283 ../src/widgets/arc-toolbar.cpp:294 #: ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 -#: ../src/widgets/spiral-toolbar.cpp:216 ../src/widgets/spiral-toolbar.cpp:227 -#: ../src/widgets/star-toolbar.cpp:386 +#: ../src/widgets/spiral-toolbar.cpp:212 ../src/widgets/spiral-toolbar.cpp:223 +#: ../src/widgets/star-toolbar.cpp:384 msgid "Change:" msgstr "Змінити:" -#: ../src/widgets/arc-toolbar.cpp:328 +#: ../src/widgets/arc-toolbar.cpp:319 msgid "Start:" msgstr "Початок:" -#: ../src/widgets/arc-toolbar.cpp:329 +#: ../src/widgets/arc-toolbar.cpp:320 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "Кут (у градуÑах) від горизонталі до початкової точки дуги" -#: ../src/widgets/arc-toolbar.cpp:341 +#: ../src/widgets/arc-toolbar.cpp:332 msgid "End:" msgstr "Кінець:" -#: ../src/widgets/arc-toolbar.cpp:342 +#: ../src/widgets/arc-toolbar.cpp:333 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "Кут (у градуÑах) від горизонталі до кінцевої точки дуги" -#: ../src/widgets/arc-toolbar.cpp:358 +#: ../src/widgets/arc-toolbar.cpp:349 msgid "Closed arc" msgstr "Закрита дуга" -#: ../src/widgets/arc-toolbar.cpp:359 +#: ../src/widgets/arc-toolbar.cpp:350 msgid "Switch to segment (closed shape with two radii)" msgstr "Перетворити на Ñегмент (замкнутої фігури з двома радіуÑами-Ñторонами)" -#: ../src/widgets/arc-toolbar.cpp:365 +#: ../src/widgets/arc-toolbar.cpp:356 msgid "Open Arc" msgstr "Відкрита дуга" -#: ../src/widgets/arc-toolbar.cpp:366 +#: ../src/widgets/arc-toolbar.cpp:357 msgid "Switch to arc (unclosed shape)" msgstr "Перейти до дуги (незакриту фігуру)" -#: ../src/widgets/arc-toolbar.cpp:389 +#: ../src/widgets/arc-toolbar.cpp:380 msgid "Make whole" msgstr "Зробити цілим" -#: ../src/widgets/arc-toolbar.cpp:390 +#: ../src/widgets/arc-toolbar.cpp:381 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Робить фігуру цілим еліпÑом, а не дугою чи Ñегментом" @@ -27737,88 +27778,88 @@ msgstr "Додати/Змінити профіль" msgid "Add or edit calligraphic profile" msgstr "Додати або змінити профіль каліграфії" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: orthogonal" msgstr "Ð’Ñтановити тип з'єднаннÑ: під прÑмим кутом" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: polyline" msgstr "Ð’Ñтановити тип з'єднаннÑ: ламана" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/widgets/connector-toolbar.cpp:165 msgid "Change connector curvature" msgstr "Змінити кривину з'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:220 +#: ../src/widgets/connector-toolbar.cpp:216 msgid "Change connector spacing" msgstr "Зміна відÑтаней Ð´Ð»Ñ Ð»Ñ–Ð½Ñ–Ñ— з'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:313 +#: ../src/widgets/connector-toolbar.cpp:309 msgid "Avoid" msgstr "Уникати" -#: ../src/widgets/connector-toolbar.cpp:323 +#: ../src/widgets/connector-toolbar.cpp:319 msgid "Ignore" msgstr "Ігнорувати" -#: ../src/widgets/connector-toolbar.cpp:334 +#: ../src/widgets/connector-toolbar.cpp:330 msgid "Orthogonal" msgstr "Під прÑмим кутом" -#: ../src/widgets/connector-toolbar.cpp:335 +#: ../src/widgets/connector-toolbar.cpp:331 msgid "Make connector orthogonal or polyline" msgstr "Зробити з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·'єднаннÑм під прÑмим кутом або з'єднаннÑм у ламаній" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Connector Curvature" msgstr "Кривина з'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Curvature:" msgstr "Кривина:" -#: ../src/widgets/connector-toolbar.cpp:350 +#: ../src/widgets/connector-toolbar.cpp:346 msgid "The amount of connectors curvature" msgstr "Кривина з'єднань" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Connector Spacing" msgstr "ВідÑтань Ð´Ð»Ñ Ð·'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Spacing:" msgstr "Інтервал:" -#: ../src/widgets/connector-toolbar.cpp:361 +#: ../src/widgets/connector-toolbar.cpp:357 msgid "The amount of space left around objects by auto-routing connectors" msgstr "ПроÑтір, що залишаєтьÑÑ Ð½Ð°Ð²ÐºÐ¾Ð»Ð¾ об'єктів під Ñ‡Ð°Ñ Ð°Ð²Ñ‚Ð¾Ð·'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:372 +#: ../src/widgets/connector-toolbar.cpp:368 msgid "Graph" msgstr "Графік" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Connector Length" msgstr "Довжина з'єднаннÑ" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Length:" msgstr "Довжина:" -#: ../src/widgets/connector-toolbar.cpp:383 +#: ../src/widgets/connector-toolbar.cpp:379 msgid "Ideal length for connectors when layout is applied" msgstr "" "Зразкова довжина ліній з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ–ÑÐ»Ñ Ð·Ð°ÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð¾Ð²Ð½Ñ–ÑˆÐ½ÑŒÐ¾Ð³Ð¾ виглÑду" -#: ../src/widgets/connector-toolbar.cpp:395 +#: ../src/widgets/connector-toolbar.cpp:391 msgid "Downwards" msgstr "Вниз" -#: ../src/widgets/connector-toolbar.cpp:396 +#: ../src/widgets/connector-toolbar.cpp:392 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "ЗмуÑити кінцеві Ñтрілки ліній з'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²ÐºÐ°Ð·ÑƒÐ²Ð°Ñ‚Ð¸ вниз" -#: ../src/widgets/connector-toolbar.cpp:412 +#: ../src/widgets/connector-toolbar.cpp:408 msgid "Do not allow overlapping shapes" msgstr "Ðе дозволÑти Ð¿ÐµÑ€ÐµÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ñ„Ð¾Ñ€Ð¼" @@ -28003,36 +28044,36 @@ msgstr "Вирізати з об'єктів" msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "Ширина гумки (відноÑно видимої облаÑті полотна)" -#: ../src/widgets/fill-style.cpp:360 +#: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" msgstr "Зміна правила заповненнÑ" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set fill color" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ заповненнÑ" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set stroke color" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñƒ штрихів" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on fill" msgstr "Створити градієнт у заповненні" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on stroke" msgstr "Створити градієнт у штриху" -#: ../src/widgets/fill-style.cpp:682 +#: ../src/widgets/fill-style.cpp:678 msgid "Set pattern on fill" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÑƒ Ð´Ð»Ñ Ð·Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ" -#: ../src/widgets/fill-style.cpp:683 +#: ../src/widgets/fill-style.cpp:679 msgid "Set pattern on stroke" msgstr "Додати візерунок до штриха" -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:947 -#: ../src/widgets/text-toolbar.cpp:1259 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:953 +#: ../src/widgets/text-toolbar.cpp:1265 msgid "Font size" msgstr "Розмір шрифту" @@ -28064,7 +28105,7 @@ msgid "Edit gradient" msgstr "Змінити градієнт" #: ../src/widgets/gradient-selector.cpp:281 -#: ../src/widgets/paint-selector.cpp:236 +#: ../src/widgets/paint-selector.cpp:233 msgid "Swatch" msgstr "Зразок" @@ -28072,112 +28113,116 @@ msgstr "Зразок" 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 +#: ../src/widgets/gradient-toolbar.cpp:157 +#: ../src/widgets/gradient-toolbar.cpp:170 +#: ../src/widgets/gradient-toolbar.cpp:761 +#: ../src/widgets/gradient-toolbar.cpp:1100 msgid "No gradient" msgstr "Без градієнта" -#: ../src/widgets/gradient-toolbar.cpp:176 +#: ../src/widgets/gradient-toolbar.cpp:177 msgid "Multiple gradients" msgstr "Декілька градієнтів" -#: ../src/widgets/gradient-toolbar.cpp:678 +#: ../src/widgets/gradient-toolbar.cpp:681 msgid "Multiple stops" msgstr "Декілька опорних точок" -#: ../src/widgets/gradient-toolbar.cpp:776 -#: ../src/widgets/gradient-vector.cpp:609 +#: ../src/widgets/gradient-toolbar.cpp:779 +#: ../src/widgets/gradient-vector.cpp:610 msgid "No stops in gradient" msgstr "У градієнті немає опорних точок" -#: ../src/widgets/gradient-toolbar.cpp:930 +#: ../src/widgets/gradient-toolbar.cpp:933 msgid "Assign gradient to object" msgstr "ПрипиÑати об'єктові градієнт" -#: ../src/widgets/gradient-toolbar.cpp:952 +#: ../src/widgets/gradient-toolbar.cpp:955 msgid "Set gradient repeat" msgstr "Ð’Ñтановити повторюваніÑть градієнта" -#: ../src/widgets/gradient-toolbar.cpp:990 -#: ../src/widgets/gradient-vector.cpp:720 +#: ../src/widgets/gradient-toolbar.cpp:993 +#: ../src/widgets/gradient-vector.cpp:721 msgid "Change gradient stop offset" msgstr "Змінити Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð¾Ð¿Ð¾Ñ€Ð½Ð¾Ñ— точки градієнта" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "linear" msgstr "лінійний" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "Create linear gradient" msgstr "Створити лінійний градієнт" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 msgid "radial" msgstr "радіальний" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 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:1047 +#: ../src/widgets/mesh-toolbar.cpp:343 msgid "New:" msgstr "Створити:" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:366 msgid "fill" msgstr "заповненнÑ" -#: ../src/widgets/gradient-toolbar.cpp:1067 -#: ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 +#: ../src/widgets/mesh-toolbar.cpp:366 msgid "Create gradient in the fill" msgstr "Створити градієнт у заповненні" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:370 msgid "stroke" msgstr "штрих" -#: ../src/widgets/gradient-toolbar.cpp:1071 -#: ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 +#: ../src/widgets/mesh-toolbar.cpp:370 msgid "Create gradient in the stroke" msgstr "Створити градієнт у штриху" -#: ../src/widgets/gradient-toolbar.cpp:1074 -#: ../src/widgets/mesh-toolbar.cpp:371 +#: ../src/widgets/gradient-toolbar.cpp:1077 +#: ../src/widgets/mesh-toolbar.cpp:373 msgid "on:" msgstr "на:" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Select" msgstr "Селектор" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Choose a gradient" msgstr "Вибрати градієнт" -#: ../src/widgets/gradient-toolbar.cpp:1100 +#: ../src/widgets/gradient-toolbar.cpp:1103 msgid "Select:" msgstr "ПозначеннÑ:" -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgctxt "Gradient repeat type" msgid "None" msgstr "Ðемає" #: ../src/widgets/gradient-toolbar.cpp:1121 +msgid "Reflected" +msgstr "Відбитий" + +#: ../src/widgets/gradient-toolbar.cpp:1124 msgid "Direct" msgstr "ПрÑмий" -#: ../src/widgets/gradient-toolbar.cpp:1123 +#: ../src/widgets/gradient-toolbar.cpp:1126 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:1128 msgid "" "Whether to fill with flat color beyond the ends of the gradient vector " "(spreadMethod=\"pad\"), or repeat the gradient in the same direction " @@ -28188,62 +28233,62 @@ msgstr "" "\"pad\"), чи повторювати початковий градієнт (spreadMethod=\"repeat\"), " "повторювати відбитий градієнт (spreadMethod=\"reflect\")" -#: ../src/widgets/gradient-toolbar.cpp:1130 +#: ../src/widgets/gradient-toolbar.cpp:1133 msgid "Repeat:" msgstr "Повтор:" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "No stops" msgstr "Без опорних точок" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Stops" msgstr "Опорні точки" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Select a stop for the current gradient" msgstr "Позначте опорну точку поточного градієнта" -#: ../src/widgets/gradient-toolbar.cpp:1147 +#: ../src/widgets/gradient-toolbar.cpp:1150 msgid "Stops:" msgstr "Опорні точки:" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1159 -#: ../src/widgets/gradient-vector.cpp:906 +#: ../src/widgets/gradient-toolbar.cpp:1162 +#: ../src/widgets/gradient-vector.cpp:907 msgctxt "Gradient" msgid "Offset:" msgstr "ЗÑув:" -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset of selected stop" msgstr "ВідÑтуп позначеної опорної точки" -#: ../src/widgets/gradient-toolbar.cpp:1177 -#: ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1180 +#: ../src/widgets/gradient-toolbar.cpp:1181 msgid "Insert new stop" msgstr "Ð’Ñтавити нову опорну точку" -#: ../src/widgets/gradient-toolbar.cpp:1191 -#: ../src/widgets/gradient-toolbar.cpp:1192 -#: ../src/widgets/gradient-vector.cpp:888 +#: ../src/widgets/gradient-toolbar.cpp:1194 +#: ../src/widgets/gradient-toolbar.cpp:1195 +#: ../src/widgets/gradient-vector.cpp:889 msgid "Delete stop" msgstr "Вилучити опорну точку" -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1209 msgid "Reverse the direction of the gradient" msgstr "Обернути напрÑмок градієнта" -#: ../src/widgets/gradient-toolbar.cpp:1220 +#: ../src/widgets/gradient-toolbar.cpp:1223 msgid "Link gradients" msgstr "Зв'Ñзати градієнти" -#: ../src/widgets/gradient-toolbar.cpp:1221 +#: ../src/widgets/gradient-toolbar.cpp:1224 msgid "Link gradients to change all related gradients" msgstr "Зв'Ñзати градієнти, щоб вони змінювалиÑÑ Ñƒ вÑÑ–Ñ… пов'Ñзаних градієнтів" #: ../src/widgets/gradient-vector.cpp:312 -#: ../src/widgets/paint-selector.cpp:947 +#: ../src/widgets/paint-selector.cpp:957 #: ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" msgstr "Документ не вибрано" @@ -28257,28 +28302,28 @@ msgid "No gradient selected" msgstr "Ðе вибрано жодного градієнта" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:883 +#: ../src/widgets/gradient-vector.cpp:884 msgid "Add stop" msgstr "Додати опорну точку" -#: ../src/widgets/gradient-vector.cpp:886 +#: ../src/widgets/gradient-vector.cpp:887 msgid "Add another control stop to gradient" msgstr "Додати ще одну опорну точку у градієнт" -#: ../src/widgets/gradient-vector.cpp:891 +#: ../src/widgets/gradient-vector.cpp:892 msgid "Delete current control stop from gradient" msgstr "Вилучити опорну точку градієнта" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:959 +#: ../src/widgets/gradient-vector.cpp:960 msgid "Stop Color" msgstr "Колір опорної точки" -#: ../src/widgets/gradient-vector.cpp:987 +#: ../src/widgets/gradient-vector.cpp:988 msgid "Gradient editor" msgstr "Редактор градієнтів" -#: ../src/widgets/gradient-vector.cpp:1324 +#: ../src/widgets/gradient-vector.cpp:1325 msgid "Change gradient stop color" msgstr "Змінити колір опорної точки градієнта" @@ -28341,7 +28386,7 @@ 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/paintbucket-toolbar.cpp:167 #: ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 msgid "Units" msgstr "Одиниці" @@ -28356,7 +28401,7 @@ msgstr "" "Відкрити діалогове вікно геометричних побудов (Ð´Ð»Ñ Ñ‡Ð¸Ñлового Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ " "параметрів)" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1268 msgid "Font Size" msgstr "Розмір шрифту" @@ -28373,100 +28418,100 @@ msgstr "Розмір шрифту, Ñкий буде викориÑтано дл msgid "The units to be used for the measurements" msgstr "Одиниці, Ñкі буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð¼Ñ–Ñ€ÑŽÐ²Ð°Ð½Ð½Ñ" -#: ../src/widgets/mesh-toolbar.cpp:311 +#: ../src/widgets/mesh-toolbar.cpp:313 msgid "Set mesh type" msgstr "Ð’Ñтановити тип Ñітки" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "normal" msgstr "звичайне" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "Create mesh gradient" msgstr "Створити Ñітковий градієнт" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "conical" msgstr "конічний" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "Create conical gradient" msgstr "Створити конічний градієнт" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 msgid "Rows" msgstr "РÑдки" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 #: ../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:395 msgid "Number of rows in new mesh" msgstr "КількіÑть Ñ€Ñдків у новій Ñітці" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Columns" msgstr "Стовпчики" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 #: ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Стовпчиків:" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Number of columns in new mesh" msgstr "КількіÑть Ñтовпчиків у новій Ñітці" -#: ../src/widgets/mesh-toolbar.cpp:423 +#: ../src/widgets/mesh-toolbar.cpp:425 msgid "Edit Fill" msgstr "Редагувати заповненнÑ" -#: ../src/widgets/mesh-toolbar.cpp:424 +#: ../src/widgets/mesh-toolbar.cpp:426 msgid "Edit fill mesh" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñітки заповненнÑ" -#: ../src/widgets/mesh-toolbar.cpp:435 +#: ../src/widgets/mesh-toolbar.cpp:437 msgid "Edit Stroke" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÑ‚Ñ€Ð¸Ñ…Ð°" -#: ../src/widgets/mesh-toolbar.cpp:436 +#: ../src/widgets/mesh-toolbar.cpp:438 msgid "Edit stroke mesh" msgstr "Ð ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ñітки штриха" -#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:449 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "Показувати елементи керуваннÑ" -#: ../src/widgets/mesh-toolbar.cpp:448 +#: ../src/widgets/mesh-toolbar.cpp:450 msgid "Show side and tensor handles" msgstr "Показати бічний елемент та елемент ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐ½Ð·Ð¾Ñ€Ð¾Ð¼" -#: ../src/widgets/mesh-toolbar.cpp:463 +#: ../src/widgets/mesh-toolbar.cpp:465 msgid "WARNING: Mesh SVG Syntax Subject to Change" msgstr "ПОПЕРЕДЖЕÐÐЯ: ÑинтакÑична конÑÑ‚Ñ€ÑƒÐºÑ†Ñ–Ñ Ñітки SVG змінюєтьÑÑ" -#: ../src/widgets/mesh-toolbar.cpp:473 +#: ../src/widgets/mesh-toolbar.cpp:475 msgctxt "Type" msgid "Coons" msgstr "КоонÑа" -#: ../src/widgets/mesh-toolbar.cpp:476 +#: ../src/widgets/mesh-toolbar.cpp:478 msgid "Bicubic" msgstr "Бікубічний" -#: ../src/widgets/mesh-toolbar.cpp:478 +#: ../src/widgets/mesh-toolbar.cpp:480 msgid "Coons" msgstr "КоонÑа" -#: ../src/widgets/mesh-toolbar.cpp:479 +#: ../src/widgets/mesh-toolbar.cpp:481 msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" "КоонÑа: без згладжуваннÑ. Бікубічний: Ð·Ð³Ð»Ð°Ð´Ð¶ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÐ¿Ð¾Ð¿ÐµÑ€ÐµÐº до меж фрагмента." -#: ../src/widgets/mesh-toolbar.cpp:481 ../src/widgets/pencil-toolbar.cpp:278 +#: ../src/widgets/mesh-toolbar.cpp:483 ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing:" msgstr "ЗгладжуваннÑ:" @@ -28670,34 +28715,34 @@ msgstr "Y координата:" msgid "Y coordinate of selected node(s)" msgstr "Y-координата вибраних вузлів" -#: ../src/widgets/paint-selector.cpp:222 +#: ../src/widgets/paint-selector.cpp:219 msgid "No paint" msgstr "Ðемає заповненнÑ" -#: ../src/widgets/paint-selector.cpp:224 +#: ../src/widgets/paint-selector.cpp:221 msgid "Flat color" msgstr "Суцільний колір" -#: ../src/widgets/paint-selector.cpp:226 +#: ../src/widgets/paint-selector.cpp:223 msgid "Linear gradient" msgstr "Лінійний градієнт" -#: ../src/widgets/paint-selector.cpp:228 +#: ../src/widgets/paint-selector.cpp:225 msgid "Radial gradient" msgstr "Радіальний градієнт" -#: ../src/widgets/paint-selector.cpp:231 +#: ../src/widgets/paint-selector.cpp:228 msgid "Mesh gradient" msgstr "Сітковий градієнт" -#: ../src/widgets/paint-selector.cpp:238 +#: ../src/widgets/paint-selector.cpp:235 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 +#: ../src/widgets/paint-selector.cpp:252 msgid "" "Any path self-intersections or subpaths create holes in the fill (fill-rule: " "evenodd)" @@ -28706,47 +28751,47 @@ msgstr "" "(fill-rule: evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:266 +#: ../src/widgets/paint-selector.cpp:263 msgid "" "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "" "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” дірку, лише Ñкщо внутрішній підконтур напрÑмлений у " "протилежному напрÑмку відноÑно зовнішнього (fill-rule: nonzero)" -#: ../src/widgets/paint-selector.cpp:600 +#: ../src/widgets/paint-selector.cpp:597 msgid "No objects" msgstr "Ðемає об'єктів" -#: ../src/widgets/paint-selector.cpp:611 +#: ../src/widgets/paint-selector.cpp:608 msgid "Multiple styles" msgstr "Множинні Ñтилі" -#: ../src/widgets/paint-selector.cpp:622 +#: ../src/widgets/paint-selector.cpp:619 msgid "Paint is undefined" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð½Ðµ визначено" -#: ../src/widgets/paint-selector.cpp:633 +#: ../src/widgets/paint-selector.cpp:630 msgid "No paint" msgstr "Ðемає заповненнÑ" -#: ../src/widgets/paint-selector.cpp:704 +#: ../src/widgets/paint-selector.cpp:714 msgid "Flat color" msgstr "Суцільний колір" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:773 +#: ../src/widgets/paint-selector.cpp:783 msgid "Linear gradient" msgstr "Лінійний градієнт" -#: ../src/widgets/paint-selector.cpp:776 +#: ../src/widgets/paint-selector.cpp:786 msgid "Radial gradient" msgstr "Радіальний градієнт" -#: ../src/widgets/paint-selector.cpp:781 +#: ../src/widgets/paint-selector.cpp:791 msgid "Mesh gradient" msgstr "Сітковий градієнт" -#: ../src/widgets/paint-selector.cpp:1080 +#: ../src/widgets/paint-selector.cpp:1090 msgid "" "Use the Node tool to adjust position, scale, and rotation of the " "pattern on canvas. Use Object > Pattern > Objects to Pattern to " @@ -28757,27 +28802,27 @@ msgstr "" "Візерунок > Об'єкти у візерунок, щоб Ñтворити новий візерунок з " "позначеної облаÑті." -#: ../src/widgets/paint-selector.cpp:1093 +#: ../src/widgets/paint-selector.cpp:1103 msgid "Pattern fill" msgstr "Ð—Ð°Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð²Ñ–Ð·ÐµÑ€ÑƒÐ½ÐºÐ¾Ð¼" -#: ../src/widgets/paint-selector.cpp:1187 +#: ../src/widgets/paint-selector.cpp:1197 msgid "Swatch fill" msgstr "Ð—Ð°Ð»Ð¸Ð²Ð°Ð½Ð½Ñ Ð·Ð° зразком" -#: ../src/widgets/paintbucket-toolbar.cpp:135 +#: ../src/widgets/paintbucket-toolbar.cpp:134 msgid "Fill by" msgstr "Залити" -#: ../src/widgets/paintbucket-toolbar.cpp:136 +#: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by:" msgstr "Чим залити:" -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Fill Threshold" msgstr "Поріг залиттÑ" -#: ../src/widgets/paintbucket-toolbar.cpp:149 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "" "The maximum allowed difference between the clicked pixel and the neighboring " "pixels to be counted in the fill" @@ -28785,36 +28830,36 @@ msgstr "" "МакÑимальна допуÑтима Ñ€Ñ–Ð·Ð½Ð¸Ñ†Ñ Ð¼Ñ–Ð¶ точкою, на Ñкій клацнули та ÑуÑідніми " "точками Ñкі обчиÑлені у заповненні" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by" msgstr "Збільшити/зменшити на" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by:" msgstr "Збільшити/зменшити на:" -#: ../src/widgets/paintbucket-toolbar.cpp:177 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "" "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "" "Величина Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ (додатне чиÑло) або Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ (від'ємне) Ñтвореного " "контуру заповненнÑ" -#: ../src/widgets/paintbucket-toolbar.cpp:202 +#: ../src/widgets/paintbucket-toolbar.cpp:199 msgid "Close gaps" msgstr "Закрити проміжки" -#: ../src/widgets/paintbucket-toolbar.cpp:203 +#: ../src/widgets/paintbucket-toolbar.cpp:200 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 +#: ../src/widgets/paintbucket-toolbar.cpp:211 +#: ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:285 +#: ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "Типово" -#: ../src/widgets/paintbucket-toolbar.cpp:215 +#: ../src/widgets/paintbucket-toolbar.cpp:212 msgid "" "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools " "to change defaults)" @@ -28911,7 +28956,7 @@ msgstr "" "Відновити типові параметри пера (типові параметри можна змінити у вікні " "Параметри Inkscape->ІнÑтрументи)" -#: ../src/widgets/rect-toolbar.cpp:124 +#: ../src/widgets/rect-toolbar.cpp:125 msgid "Change rectangle" msgstr "Змінити прÑмокутник" @@ -29295,91 +29340,91 @@ msgstr "ЗначеннÑ" msgid "Type text in a text node" msgstr "Ðадрукувати текÑÑ‚ у текÑтовому вузлі" -#: ../src/widgets/spiral-toolbar.cpp:100 +#: ../src/widgets/spiral-toolbar.cpp:98 msgid "Change spiral" msgstr "Змінити Ñпіраль" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "just a curve" msgstr "проÑто крива" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "one full revolution" msgstr "один повний оберт" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of turns" msgstr "КількіÑть витків" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Turns:" msgstr "Витків:" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of revolutions" msgstr "КількіÑть витків" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "circle" msgstr "коло" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is much denser" msgstr "Ð±Ñ–Ð»Ñ ÐºÑ€Ð°ÑŽ набагато чаÑтіше" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is denser" msgstr "Ð±Ñ–Ð»Ñ ÐºÑ€Ð°ÑŽ чаÑтіше" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "even" msgstr "рівна Ñпіраль" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is denser" msgstr "Ð±Ñ–Ð»Ñ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ чаÑтіше" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is much denser" msgstr "Ð±Ñ–Ð»Ñ Ñ†ÐµÐ½Ñ‚Ñ€Ñƒ набагато чаÑтіше" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence" msgstr "РозходженнÑ" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence:" msgstr "РозходженнÑ:" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "Ступінь збільшеннÑ/Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ñтані між витками; 1 = рівномірно" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts from center" msgstr "почати від центру" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts mid-way" msgstr "почати на півдорозі" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts near edge" msgstr "почати порÑд з краєм" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius" msgstr "Внутрішній радіуÑ" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius:" msgstr "Внутрішній радіуÑ:" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "Ð Ð°Ð´Ñ–ÑƒÑ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ внутрішнього витка (відноÑно розміру Ñпіралі)" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:567 +#: ../src/widgets/spiral-toolbar.cpp:286 ../src/widgets/star-toolbar.cpp:565 msgid "" "Reset shape parameters to defaults (use Inkscape Preferences > Tools to " "change defaults)" @@ -29553,149 +29598,149 @@ msgstr "Зірка: Зміна заокругленнÑ" msgid "Star: Change randomization" msgstr "Зірка: Зміна випадковоÑті викривленнÑ" -#: ../src/widgets/star-toolbar.cpp:465 +#: ../src/widgets/star-toolbar.cpp:463 msgid "Regular polygon (with one handle) instead of a star" msgstr "Правильний багатокутник, а не зірка" -#: ../src/widgets/star-toolbar.cpp:472 +#: ../src/widgets/star-toolbar.cpp:470 msgid "Star instead of a regular polygon (with one handle)" msgstr "Зірка заміÑть звичайного багатокутника (з одним вуÑом)" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "triangle/tri-star" msgstr "трикутник/зірка з 3 променÑми" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "square/quad-star" msgstr "квадрат/зірка з 4 променÑми" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "pentagon/five-pointed star" msgstr "п'Ñтикутник/зірка з 5 променÑми" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "hexagon/six-pointed star" msgstr "шеÑтикутник/зірка з 6 променÑми" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners" msgstr "Кути" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners:" msgstr "Кути:" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Number of corners of a polygon or star" msgstr "КількіÑть кутів багатокутника чи зірки" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "thin-ray star" msgstr "зірка з тонкими променÑми" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "pentagram" msgstr "пентаграма" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "hexagram" msgstr "гекÑаграма" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "heptagram" msgstr "гептаграма" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "octagram" msgstr "октаграма" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "regular polygon" msgstr "звичайний багатокутник" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 msgid "Spoke ratio" msgstr "Ð’Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ€Ð°Ð´Ñ–ÑƒÑів" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 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 +#: ../src/widgets/star-toolbar.cpp:513 msgid "Base radius to tip radius ratio" msgstr "Ð’Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ€Ð°Ð´Ñ–ÑƒÑів оÑнови та вершини променÑ" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "stretched" msgstr "розтÑгнений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "twisted" msgstr "перекручений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly pinched" msgstr "трохи затиÑнутий" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "NOT rounded" msgstr "ÐЕ округлений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly rounded" msgstr "трохи округлений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "visibly rounded" msgstr "помітно округлений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "well rounded" msgstr "значно округлений" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "amply rounded" msgstr "дуже округлений" -#: ../src/widgets/star-toolbar.cpp:533 ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 msgid "blown up" msgstr "надутий" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded:" msgstr "ОкругленіÑть:" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "How much rounded are the corners (0 for sharp)" msgstr "ÐаÑкільки згладжені кути (0 — гоÑтрі)" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "NOT randomized" msgstr "БЕЗ випадковоÑті" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "slightly irregular" msgstr "трохи неправильно" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "visibly randomized" msgstr "помітно випадково" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "strongly randomized" msgstr "дуже випадково" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized" msgstr "Випадково" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized:" msgstr "Викривлено:" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Scatter randomly the corners and angles" msgstr "Випадковим чином переміÑтити кути та повернути радіуÑи" @@ -29795,7 +29840,7 @@ msgstr "Кінцеві маркери малюютьÑÑ Ð½Ð° оÑтанньом msgid "Set markers" msgstr "Ð’Ñтановити маркери" -#: ../src/widgets/stroke-style.cpp:1030 ../src/widgets/stroke-style.cpp:1114 +#: ../src/widgets/stroke-style.cpp:1029 ../src/widgets/stroke-style.cpp:1113 msgid "Set stroke style" msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñтилю штриха" @@ -29807,412 +29852,412 @@ msgstr "Ð’Ñтановити колір маркера" msgid "Change swatch color" msgstr "Змінити колір зразка" -#: ../src/widgets/text-toolbar.cpp:169 +#: ../src/widgets/text-toolbar.cpp:173 msgid "Text: Change font family" msgstr "ТекÑÑ‚: Зміна ÑімейÑтва шрифту" -#: ../src/widgets/text-toolbar.cpp:233 +#: ../src/widgets/text-toolbar.cpp:239 msgid "Text: Change font size" msgstr "ТекÑÑ‚: Зміна розміру шрифту" -#: ../src/widgets/text-toolbar.cpp:269 +#: ../src/widgets/text-toolbar.cpp:275 msgid "Text: Change font style" msgstr "ТекÑÑ‚: Зміна нариÑу шрифту" -#: ../src/widgets/text-toolbar.cpp:347 +#: ../src/widgets/text-toolbar.cpp:353 msgid "Text: Change superscript or subscript" msgstr "ТекÑÑ‚: змінити на верхній або нижній індекÑ" -#: ../src/widgets/text-toolbar.cpp:489 +#: ../src/widgets/text-toolbar.cpp:496 msgid "Text: Change alignment" msgstr "ТекÑÑ‚: Зміна вирівнюваннÑ" -#: ../src/widgets/text-toolbar.cpp:532 +#: ../src/widgets/text-toolbar.cpp:539 msgid "Text: Change line-height" msgstr "ТекÑÑ‚: Зміна виÑоти Ñ€Ñдків" -#: ../src/widgets/text-toolbar.cpp:580 +#: ../src/widgets/text-toolbar.cpp:587 msgid "Text: Change word-spacing" msgstr "ТекÑÑ‚: Зміна інтервалів між Ñловами" -#: ../src/widgets/text-toolbar.cpp:620 +#: ../src/widgets/text-toolbar.cpp:627 msgid "Text: Change letter-spacing" msgstr "ТекÑÑ‚: Зміна інтервалів між літерами" -#: ../src/widgets/text-toolbar.cpp:658 +#: ../src/widgets/text-toolbar.cpp:665 msgid "Text: Change dx (kern)" msgstr "ТекÑÑ‚: Зміна прироÑту за x (керна)" -#: ../src/widgets/text-toolbar.cpp:692 +#: ../src/widgets/text-toolbar.cpp:699 msgid "Text: Change dy" msgstr "ТекÑÑ‚: Зміна прироÑту за y" -#: ../src/widgets/text-toolbar.cpp:727 +#: ../src/widgets/text-toolbar.cpp:734 msgid "Text: Change rotate" msgstr "ТекÑÑ‚: Зміна кута обертаннÑ" -#: ../src/widgets/text-toolbar.cpp:774 +#: ../src/widgets/text-toolbar.cpp:781 msgid "Text: Change orientation" msgstr "ТекÑÑ‚: Зміна орієнтації" -#: ../src/widgets/text-toolbar.cpp:1210 +#: ../src/widgets/text-toolbar.cpp:1216 msgid "Font Family" msgstr "Гарнітура шрифту" -#: ../src/widgets/text-toolbar.cpp:1211 +#: ../src/widgets/text-toolbar.cpp:1217 msgid "Select Font Family (Alt-X to access)" msgstr "Виберіть гарнітуру шрифту (Alt-X Ð´Ð»Ñ Ð´Ð¾Ñтупу)" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1221 +#: ../src/widgets/text-toolbar.cpp:1227 msgid "Select all text with this font-family" msgstr "Позначити вÑÑ– фрагменти текÑту з цією гарнітурою шрифту" -#: ../src/widgets/text-toolbar.cpp:1225 +#: ../src/widgets/text-toolbar.cpp:1231 msgid "Font not found on system" msgstr "Шрифту у ÑиÑтемі не виÑвлено" -#: ../src/widgets/text-toolbar.cpp:1284 +#: ../src/widgets/text-toolbar.cpp:1290 msgid "Font Style" msgstr "Стиль шрифту" -#: ../src/widgets/text-toolbar.cpp:1285 +#: ../src/widgets/text-toolbar.cpp:1291 msgid "Font style" msgstr "Стиль шрифту" #. Name -#: ../src/widgets/text-toolbar.cpp:1302 +#: ../src/widgets/text-toolbar.cpp:1308 msgid "Toggle Superscript" msgstr "Увімкнути/Вимкнути режим верхнього індекÑу" #. Label -#: ../src/widgets/text-toolbar.cpp:1303 +#: ../src/widgets/text-toolbar.cpp:1309 msgid "Toggle superscript" msgstr "Увімкнути/Вимкнути режим верхнього індекÑу" #. Name -#: ../src/widgets/text-toolbar.cpp:1315 +#: ../src/widgets/text-toolbar.cpp:1321 msgid "Toggle Subscript" msgstr "Увімкнути/Вимкнути режим нижнього індекÑу" #. Label -#: ../src/widgets/text-toolbar.cpp:1316 +#: ../src/widgets/text-toolbar.cpp:1322 msgid "Toggle subscript" msgstr "Увімкнути/Вимкнути режим нижнього індекÑу" -#: ../src/widgets/text-toolbar.cpp:1357 +#: ../src/widgets/text-toolbar.cpp:1363 msgid "Justify" msgstr "ВирівнÑти з заповненнÑм" #. Name -#: ../src/widgets/text-toolbar.cpp:1364 +#: ../src/widgets/text-toolbar.cpp:1370 msgid "Alignment" msgstr "ВирівнюваннÑ" #. Label -#: ../src/widgets/text-toolbar.cpp:1365 +#: ../src/widgets/text-toolbar.cpp:1371 msgid "Text alignment" msgstr "Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту" -#: ../src/widgets/text-toolbar.cpp:1392 +#: ../src/widgets/text-toolbar.cpp:1398 msgid "Horizontal" msgstr "Горизонтально" -#: ../src/widgets/text-toolbar.cpp:1399 +#: ../src/widgets/text-toolbar.cpp:1405 msgid "Vertical" msgstr "Вертикально" #. Label -#: ../src/widgets/text-toolbar.cpp:1406 +#: ../src/widgets/text-toolbar.cpp:1412 msgid "Text orientation" msgstr "ÐžÑ€Ñ–Ñ”Ð½Ñ‚Ð°Ñ†Ñ–Ñ Ñ‚ÐµÐºÑту" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Smaller spacing" msgstr "Менший інтервал" -#: ../src/widgets/text-toolbar.cpp:1429 ../src/widgets/text-toolbar.cpp:1460 -#: ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1435 ../src/widgets/text-toolbar.cpp:1466 +#: ../src/widgets/text-toolbar.cpp:1497 msgctxt "Text tool" msgid "Normal" msgstr "Звичайний" -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Larger spacing" msgstr "Більший інтервал" #. name -#: ../src/widgets/text-toolbar.cpp:1434 +#: ../src/widgets/text-toolbar.cpp:1440 msgid "Line Height" msgstr "ВиÑота Ñ€Ñдка" #. label -#: ../src/widgets/text-toolbar.cpp:1435 +#: ../src/widgets/text-toolbar.cpp:1441 msgid "Line:" msgstr "РÑдок:" #. short label -#: ../src/widgets/text-toolbar.cpp:1436 +#: ../src/widgets/text-toolbar.cpp:1442 msgid "Spacing between lines (times font size)" msgstr "Інтервал між Ñ€Ñдками (у одиницÑÑ… розміру шрифту)" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Negative spacing" msgstr "Від'ємний інтервал" -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Positive spacing" msgstr "Додатний інтервал" #. name -#: ../src/widgets/text-toolbar.cpp:1465 +#: ../src/widgets/text-toolbar.cpp:1471 msgid "Word spacing" msgstr "Інтервал між Ñловами" #. label -#: ../src/widgets/text-toolbar.cpp:1466 +#: ../src/widgets/text-toolbar.cpp:1472 msgid "Word:" msgstr "Слово:" #. short label -#: ../src/widgets/text-toolbar.cpp:1467 +#: ../src/widgets/text-toolbar.cpp:1473 msgid "Spacing between words (px)" msgstr "Інтервал між Ñловами (у пікÑелÑÑ…)" #. name -#: ../src/widgets/text-toolbar.cpp:1496 +#: ../src/widgets/text-toolbar.cpp:1502 msgid "Letter spacing" msgstr "Інтервал між літерами" #. label -#: ../src/widgets/text-toolbar.cpp:1497 +#: ../src/widgets/text-toolbar.cpp:1503 msgid "Letter:" msgstr "Літера:" #. short label -#: ../src/widgets/text-toolbar.cpp:1498 +#: ../src/widgets/text-toolbar.cpp:1504 msgid "Spacing between letters (px)" msgstr "Інтервал між літерами (у пікÑелÑÑ…)" #. name -#: ../src/widgets/text-toolbar.cpp:1527 +#: ../src/widgets/text-toolbar.cpp:1533 msgid "Kerning" msgstr "Кернінґ" #. label -#: ../src/widgets/text-toolbar.cpp:1528 +#: ../src/widgets/text-toolbar.cpp:1534 msgid "Kern:" msgstr "Керн:" #. short label -#: ../src/widgets/text-toolbar.cpp:1529 +#: ../src/widgets/text-toolbar.cpp:1535 msgid "Horizontal kerning (px)" msgstr "Горизонтальний кернінґ (у пікÑелÑÑ…)" #. name -#: ../src/widgets/text-toolbar.cpp:1558 +#: ../src/widgets/text-toolbar.cpp:1564 msgid "Vertical Shift" msgstr "Вертикальний зÑув" #. label -#: ../src/widgets/text-toolbar.cpp:1559 +#: ../src/widgets/text-toolbar.cpp:1565 msgid "Vert:" msgstr "Верт.:" #. short label -#: ../src/widgets/text-toolbar.cpp:1560 +#: ../src/widgets/text-toolbar.cpp:1566 msgid "Vertical shift (px)" msgstr "Вертикальний зÑув (у пікÑелÑÑ…)" #. name -#: ../src/widgets/text-toolbar.cpp:1589 +#: ../src/widgets/text-toolbar.cpp:1595 msgid "Letter rotation" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ð»Ñ–Ñ‚ÐµÑ€" #. label -#: ../src/widgets/text-toolbar.cpp:1590 +#: ../src/widgets/text-toolbar.cpp:1596 msgid "Rot:" msgstr "Обер.:" #. short label -#: ../src/widgets/text-toolbar.cpp:1591 +#: ../src/widgets/text-toolbar.cpp:1597 msgid "Character rotation (degrees)" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ Ñимволів (у градуÑах)" -#: ../src/widgets/toolbox.cpp:181 +#: ../src/widgets/toolbox.cpp:177 msgid "Color/opacity used for color tweaking" msgstr "Колір/непрозоріÑть, що викориÑтовуватимутьÑÑ Ð´Ð»Ñ ÐºÐ¾Ñ€ÐµÐºÑ†Ñ–Ñ— кольору" -#: ../src/widgets/toolbox.cpp:189 +#: ../src/widgets/toolbox.cpp:185 msgid "Style of new stars" msgstr "Стиль нових зірок" -#: ../src/widgets/toolbox.cpp:191 +#: ../src/widgets/toolbox.cpp:187 msgid "Style of new rectangles" msgstr "Стиль нових прÑмокутників" -#: ../src/widgets/toolbox.cpp:193 +#: ../src/widgets/toolbox.cpp:189 msgid "Style of new 3D boxes" msgstr "Стиль нових проÑторових об'єктів" -#: ../src/widgets/toolbox.cpp:195 +#: ../src/widgets/toolbox.cpp:191 msgid "Style of new ellipses" msgstr "Стиль нових еліпÑів" -#: ../src/widgets/toolbox.cpp:197 +#: ../src/widgets/toolbox.cpp:193 msgid "Style of new spirals" msgstr "Стиль нових Ñпіралей" -#: ../src/widgets/toolbox.cpp:199 +#: ../src/widgets/toolbox.cpp:195 msgid "Style of new paths created by Pencil" msgstr "Стиль нових контурів, що Ñтворені Олівцем" -#: ../src/widgets/toolbox.cpp:201 +#: ../src/widgets/toolbox.cpp:197 msgid "Style of new paths created by Pen" msgstr "Стиль нових контурів, що Ñтворені Пером" -#: ../src/widgets/toolbox.cpp:203 +#: ../src/widgets/toolbox.cpp:199 msgid "Style of new calligraphic strokes" msgstr "Стиль нових каліграфічних штрихів" -#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 +#: ../src/widgets/toolbox.cpp:201 ../src/widgets/toolbox.cpp:203 msgid "TBD" msgstr "Ще не визначено" -#: ../src/widgets/toolbox.cpp:219 +#: ../src/widgets/toolbox.cpp:215 msgid "Style of Paint Bucket fill objects" msgstr "Стиль нових об'єктів, що Ñтворені інÑтрументом заповненнÑ" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Bounding box" msgstr "Рамка-обгортка" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Snap bounding boxes" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Bounding box edges" msgstr "Краї рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Snap to edges of a bounding box" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ країв рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Bounding box corners" msgstr "Кути рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Snap bounding box corners" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ кутів рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "BBox Edge Midpoints" msgstr "Середні точки країв рамки-обгортки" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "Snap midpoints of bounding box edges" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ Ñередніх точок країв рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "BBox Centers" msgstr "Центри рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "Snapping centers of bounding boxes" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ центрів рамок-обгорток" -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/widgets/toolbox.cpp:1725 msgid "Snap nodes, paths, and handles" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ вузлів, контурів та вуÑів" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1733 msgid "Snap to paths" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ контурів" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Path intersections" msgstr "Перетин контурів" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap to path intersections" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ перетинів контурів" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "To nodes" msgstr "До вузлів" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ вузлів-вершин, зокрема кутів прÑмокутників" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Smooth nodes" msgstr "Гладкі вузли" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ гладких вузлів, зокрема вершин еліпÑів" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Line Midpoints" msgstr "Середні точки лінії" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of line segments" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ Ñередніх точок Ñегментів лінії" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Others" msgstr "Інші" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "" "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ інших точок (центрів, початків напрÑмних, опорних точок " "градієнтів тощо)" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Object Centers" msgstr "Центри об'єктів" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Snap centers of objects" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ центрів об'єктів" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Rotation Centers" msgstr "Центри обертаннÑ" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Snap an item's rotation center" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ центру Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ð°" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Text baseline" msgstr "Базова Ð»Ñ–Ð½Ñ–Ñ Ñ‚ÐµÐºÑту" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Snap text anchors and baselines" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ прив'Ñзок текÑту та центрів об'єктів" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Page border" msgstr "Межа Ñторінки" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap to the page border" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ межі Ñторінки" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap to grids" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ Ñітки" -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap guides" msgstr "ÐŸÑ€Ð¸Ð»Ð¸Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾ напрÑмних" @@ -30425,7 +30470,7 @@ msgid "Use the pressure of the input device to alter the force of tweak action" msgstr "" "ВикориÑтовувати Ñилу натиÑку приÑтрою Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ Ñили дії корекції" -#: ../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." @@ -30492,7 +30537,7 @@ msgstr "" "Ðе вдалоÑÑ Ñ–Ð¼Ð¿Ð¾Ñ€Ñ‚ÑƒÐ²Ð°Ñ‚Ð¸ модулі numpy або numpy.linalg. Ці модулі потрібні Ð´Ð»Ñ " "цього додатку. Будь лаÑка, вÑтановіть модулі Ñ– повторіть Ñпробу." -#: ../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" @@ -30500,7 +30545,7 @@ msgstr "" "Помилка: Ñкщо викориÑтовуєтьÑÑ Ð²Ð°Ñ€Ñ–Ð°Ð½Ñ‚ «ВідповідніÑть за назвою», Ñлід " "заповнити поле «Ðазва відповідного шару»" -#: ../share/extensions/dxf_outlines.py:341 +#: ../share/extensions/dxf_outlines.py:340 #, python-format msgid "Warning: Layer '%s' not found!" msgstr "ПопередженнÑ: шару «%s» не знайдено." @@ -30560,8 +30605,8 @@ msgid "" "y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y " "value of rectangle's bottom'" msgstr "" -"Інтервал за y не може бути нульовим. Будь лаÑка, змініть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ " -"«Y-координата верху прÑмокутника» або «Y-координата оÑнови прÑмокутника»" +"Інтервал за y не може бути нульовим. Будь лаÑка, змініть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«Y-" +"координата верху прÑмокутника» або «Y-координата оÑнови прÑмокутника»" #: ../share/extensions/funcplot.py:315 msgid "Please select a rectangle" @@ -31257,14 +31302,14 @@ msgstr "" "Спробуйте ÑкориÑтатиÑÑ Ð¿ÑƒÐ½ÐºÑ‚Ð¾Ð¼ меню Контур -> Об'єкт у контур." #. issue error if no paths found -#: ../share/extensions/plotter.py:67 +#: ../share/extensions/plotter.py:70 msgid "" "No paths where found. Please convert all objects you want to plot into paths." msgstr "" "Контурів не знайдено. Будь лаÑка, перетворіть уÑÑ– потрібні вам об’єкти Ð´Ð»Ñ " "Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð½Ð° контури." -#: ../share/extensions/plotter.py:144 +#: ../share/extensions/plotter.py:148 msgid "" "pySerial is not installed.\n" "\n" @@ -31282,7 +31327,7 @@ msgstr "" "\\[Program files]\\inkscape\\python\\Lib\\\n" "3. ПерезапуÑтіть Inkscape." -#: ../share/extensions/plotter.py:164 +#: ../share/extensions/plotter.py:200 msgid "" "Could not open port. Please check that your plotter is running, connected " "and the settings are correct." @@ -34056,13 +34101,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:34 msgid "Resolution X (dpi):" msgstr "Роздільна здатніÑть за X (у Ñ‚/дюйм):" #: ../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:35 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the X axis " "(Default: 1016.0)" @@ -34071,13 +34116,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:36 msgid "Resolution Y (dpi):" msgstr "Роздільна здатніÑть за Y (у Ñ‚/дюйм):" #: ../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:37 msgid "" "The amount of steps the plotter moves if it moves for 1 inch on the Y axis " "(Default: 1016.0)" @@ -34095,7 +34140,7 @@ msgstr "" "(Типове значеннÑ: не позначено)" #: ../share/extensions/hpgl_input.inx.h:9 -#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/hpgl_output.inx.h:35 msgid "HP Graphics Language file (*.hpgl)" msgstr "Файли графічної мови HP (*.hpgl)" @@ -34118,28 +34163,28 @@ msgstr "" "Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð±ÐµÐ·Ð¿Ð¾Ñередньо за допомогою поÑлідовного з’єднаннÑ." #: ../share/extensions/hpgl_output.inx.h:3 -#: ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/plotter.inx.h:33 msgid "Plotter Settings " msgstr "Параметри Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ " #: ../share/extensions/hpgl_output.inx.h:8 -#: ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/plotter.inx.h:38 msgid "Pen number:" msgstr "Ðомер різцÑ:" #: ../share/extensions/hpgl_output.inx.h:9 -#: ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/plotter.inx.h:39 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "" "Ðомер Ñ€Ñ–Ð·Ñ†Ñ (інÑтрумента), Ñким Ñлід ÑкориÑтатиÑÑ. (Типове значеннÑ: 1)" #: ../share/extensions/hpgl_output.inx.h:10 -#: ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/plotter.inx.h:40 msgid "Pen force (g):" msgstr "ТиÑк Ñ€Ñ–Ð·Ñ†Ñ (у грамах):" #: ../share/extensions/hpgl_output.inx.h:11 -#: ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/plotter.inx.h:41 msgid "" "The amount of force pushing down the pen in grams, set to 0 to omit command; " "most plotters ignore this command (Default: 0)" @@ -34149,7 +34194,7 @@ msgstr "" "(Типове значеннÑ: 0)" #: ../share/extensions/hpgl_output.inx.h:12 -#: ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/plotter.inx.h:42 msgid "Pen speed (cm/s or mm/s):" msgstr "ШвидкіÑть Ñ€Ñ–Ð·Ñ†Ñ (у Ñм/Ñ Ð°Ð±Ð¾ мм/Ñ):" @@ -34168,41 +34213,41 @@ msgid "Rotation (°, Clockwise):" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ (у °, за годинниковою Ñтрілкою):" #: ../share/extensions/hpgl_output.inx.h:15 -#: ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/plotter.inx.h:45 msgid "Rotation of the drawing (Default: 0°)" msgstr "Кут Ð¾Ð±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ ÐºÑ€ÐµÑленнÑ. (Типове значеннÑ: 0°)" #: ../share/extensions/hpgl_output.inx.h:16 -#: ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/plotter.inx.h:46 msgid "Mirror X axis" msgstr "Віддзеркалити віÑÑŒ Y" #: ../share/extensions/hpgl_output.inx.h:17 -#: ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/plotter.inx.h:47 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "" "Позначте цей пункт, щоб Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ віддзеркалено за віÑÑÑŽ X. (Типове " "значеннÑ: не позначено)" #: ../share/extensions/hpgl_output.inx.h:18 -#: ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/plotter.inx.h:48 msgid "Mirror Y axis" msgstr "Віддзеркалити віÑÑŒ Y" #: ../share/extensions/hpgl_output.inx.h:19 -#: ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/plotter.inx.h:49 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "" "Позначте цей пункт, щоб Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð±ÑƒÐ»Ð¾ віддзеркалено за віÑÑÑŽ Y. (Типове " "значеннÑ: не позначено)" #: ../share/extensions/hpgl_output.inx.h:20 -#: ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/plotter.inx.h:50 msgid "Center zero point" msgstr "Центральна нульова точка" #: ../share/extensions/hpgl_output.inx.h:21 -#: ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/plotter.inx.h:51 msgid "" "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "" @@ -34210,17 +34255,29 @@ msgstr "" "точка. (Типове значеннÑ: не позначено)" #: ../share/extensions/hpgl_output.inx.h:22 -#: ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/plotter.inx.h:52 +msgid "" +"If you want to use multiple pens on your pen plotter create one layer for " +"each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings " +"in the corresponding layers. This overrules the pen number option above." +msgstr "" +"Якщо ви хочете ÑкориÑтатиÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ð¼Ð° різцÑми на вашому плотері, Ñтворіть " +"окремий шар Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ різцÑ, назвіть шари «Різець 1», «Різець 2» тощо Ñ– " +"розташуйте відповідні креÑÐ»ÐµÐ½Ð½Ñ Ñƒ шарах. Такі Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð°Ñ‚Ð¸Ð¼ÑƒÑ‚ÑŒ перевагу " +"перед параметром кількоÑті різців, вказаним вище." + +#: ../share/extensions/hpgl_output.inx.h:23 +#: ../share/extensions/plotter.inx.h:53 msgid "Plot Features " msgstr "ОÑобливоÑті Ð²Ð¸Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ " -#: ../share/extensions/hpgl_output.inx.h:23 -#: ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/hpgl_output.inx.h:24 +#: ../share/extensions/plotter.inx.h:54 msgid "Overcut (mm):" msgstr "Ðадріз (у мм):" -#: ../share/extensions/hpgl_output.inx.h:24 -#: ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/hpgl_output.inx.h:25 +#: ../share/extensions/plotter.inx.h:55 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)" @@ -34229,13 +34286,13 @@ msgstr "" "Ð·Ð°Ð¿Ð¾Ð±Ñ–Ð³Ð°Ð½Ð½Ñ ÑƒÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½ÑŽ незамкнених контурів. Вкажіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0.0, щоб " "пропуÑтити команду. (Типове значеннÑ: 1.00)" -#: ../share/extensions/hpgl_output.inx.h:25 -#: ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/hpgl_output.inx.h:26 +#: ../share/extensions/plotter.inx.h:56 msgid "Tool offset (mm):" msgstr "ВідÑтуп інÑтрумента (у мм):" -#: ../share/extensions/hpgl_output.inx.h:26 -#: ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/hpgl_output.inx.h:27 +#: ../share/extensions/plotter.inx.h:57 msgid "" "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit " "command (Default: 0.25)" @@ -34243,13 +34300,13 @@ msgstr "" "ВідÑтуп від краю інÑтрумента до віÑÑ– інÑтрумента у мм. Вкажіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0.0, " "щоб пропуÑтити команду. (Типове значеннÑ: 0.25)" -#: ../share/extensions/hpgl_output.inx.h:27 -#: ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/hpgl_output.inx.h:28 +#: ../share/extensions/plotter.inx.h:58 msgid "Use precut" msgstr "ВикориÑтовувати підрізаннÑ" -#: ../share/extensions/hpgl_output.inx.h:28 -#: ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/hpgl_output.inx.h:29 +#: ../share/extensions/plotter.inx.h:59 msgid "" "Check this to cut a small line before the real drawing starts to correctly " "align the tool orientation. (Default: Checked)" @@ -34258,13 +34315,13 @@ msgstr "" "виконати оÑновну процедуру вирізаннÑ. Така Ð»Ñ–Ð½Ñ–Ñ Ð¿Ð¾Ñ‚Ñ€Ñ–Ð±Ð½Ð° Ð´Ð»Ñ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ " "орієнтації інÑтрумента Ð´Ð»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ вирізаннÑ. (Типове значеннÑ: позначено)" -#: ../share/extensions/hpgl_output.inx.h:29 -#: ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/hpgl_output.inx.h:30 +#: ../share/extensions/plotter.inx.h:60 msgid "Curve flatness:" msgstr "ПлаÑкіÑть кривої:" -#: ../share/extensions/hpgl_output.inx.h:30 -#: ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/hpgl_output.inx.h:31 +#: ../share/extensions/plotter.inx.h:61 msgid "" "Curves are divided into lines, this number controls how fine the curves will " "be reproduced, the smaller the finer (Default: '1.2')" @@ -34272,13 +34329,13 @@ msgstr "" "Криві буде розділено на прÑмі відрізки. Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐµÑ€ÑƒÑ” точніÑтю такого " "поділу. Чим меншим воно буде, тим точнішим буде поділ. (Типове значеннÑ: 1.2)" -#: ../share/extensions/hpgl_output.inx.h:31 -#: ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/hpgl_output.inx.h:32 +#: ../share/extensions/plotter.inx.h:62 msgid "Auto align" msgstr "ÐвтовирівнюваннÑ" -#: ../share/extensions/hpgl_output.inx.h:32 -#: ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/hpgl_output.inx.h:33 +#: ../share/extensions/plotter.inx.h:63 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 " @@ -34289,8 +34346,8 @@ msgstr "" "буде позначено, Ñлід переконатиÑÑ, що уÑÑ–Ñ… чаÑтини креÑÐ»ÐµÐ½Ð½Ñ Ð¿ÐµÑ€ÐµÐ±ÑƒÐ²Ð°ÑŽÑ‚ÑŒ у " "межах документа! (Типовий Ñтан: позначено)" -#: ../share/extensions/hpgl_output.inx.h:33 -#: ../share/extensions/plotter.inx.h:56 +#: ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/plotter.inx.h:66 msgid "" "All these settings depend on the plotter you use, for more information " "please consult the manual or homepage for your plotter." @@ -34299,7 +34356,7 @@ msgstr "" "Докладнішу інформацію можна отримати з підручника до плотера або домашньої " "Ñторінки компанії-виробника." -#: ../share/extensions/hpgl_output.inx.h:35 +#: ../share/extensions/hpgl_output.inx.h:36 msgid "Export an HP Graphics Language file" msgstr "ЕкÑпортувати до файла графічної мови HP" @@ -35680,10 +35737,49 @@ msgstr "" "значеннÑ: 9600)" #: ../share/extensions/plotter.inx.h:8 -msgid "Flow control:" -msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼:" +msgid "Serial byte size:" +msgstr "Розмір байта поÑлідовного порту:" + +#: ../share/extensions/plotter.inx.h:10 +#, no-c-format +msgid "" +"The Byte size of your serial connection, 99% of all plotters use the default " +"setting (Default: 8 Bits)" +msgstr "" +"Розмір байта вашого поÑлідовного з’єднаннÑ, 99% уÑÑ–Ñ… плотерів викориÑтовують " +"типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (Типове значеннÑ: 8 бітів)" + +#: ../share/extensions/plotter.inx.h:11 +msgid "Serial stop bits:" +msgstr "Стопові біти поÑлідовного порту:" -#: ../share/extensions/plotter.inx.h:9 +#: ../share/extensions/plotter.inx.h:13 +#, no-c-format +msgid "" +"The Stop bits of your serial connection, 99% of all plotters use the default " +"setting (Default: 1 Bit)" +msgstr "" +"КількіÑть Ñтопових бітів вашого поÑлідовного з’єднаннÑ, 99% уÑÑ–Ñ… плотерів " +"викориÑтовують типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (Типове значеннÑ: 1 біт)" + +#: ../share/extensions/plotter.inx.h:14 +msgid "Serial parity:" +msgstr "ПарніÑть поÑлідовного порту:" + +#: ../share/extensions/plotter.inx.h:16 +#, no-c-format +msgid "" +"The Parity of your serial connection, 99% of all plotters use the default " +"setting (Default: None)" +msgstr "" +"ПарніÑть вашого поÑлідовного з’єднаннÑ, 99% уÑÑ–Ñ… плотерів викориÑтовують " +"типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (Типове значеннÑ: немає)" + +#: ../share/extensions/plotter.inx.h:17 +msgid "Serial flow control:" +msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñлідовним потоком:" + +#: ../share/extensions/plotter.inx.h:18 msgid "" "The Software / Hardware flow control of your serial connection (Default: " "Software)" @@ -35691,19 +35787,19 @@ msgstr "" "Програмне або апаратне ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ´Ð°Ð²Ð°Ð½Ð½Ñм даних вашим поÑлідовним " "з’єднаннÑм. (Типове значеннÑ: програмне керуваннÑ)" -#: ../share/extensions/plotter.inx.h:10 +#: ../share/extensions/plotter.inx.h:19 msgid "Command language:" msgstr "Мова команд:" -#: ../share/extensions/plotter.inx.h:11 +#: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" msgstr "Мова команд, Ñку Ñлід викориÑтовувати (Типове значеннÑ: HPGL)" -#: ../share/extensions/plotter.inx.h:12 +#: ../share/extensions/plotter.inx.h:21 msgid "Initialization commands:" msgstr "Команди ініціалізації:" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:22 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)" @@ -35711,36 +35807,36 @@ msgstr "" "Команди, Ñкі буде надіÑлано на плотер до оÑновного потоку даних. " "КориÑтуйтеÑÑ, лише Ñкщо вам відомі уÑÑ– наÑлідки! (Типове значеннÑ: порожньо)" -#: ../share/extensions/plotter.inx.h:14 +#: ../share/extensions/plotter.inx.h:23 msgid "Software (XON/XOFF)" msgstr "програмне (XON/XOFF)" -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:24 msgid "Hardware (RTS/CTS)" msgstr "апаратне (RTS/CTS)" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:25 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "апаратне (DSR/DTR + RTS/CTS)" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:26 msgctxt "Flow control" msgid "None" msgstr "Ðемає" -#: ../share/extensions/plotter.inx.h:18 +#: ../share/extensions/plotter.inx.h:27 msgid "HPGL" msgstr "HPGL" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:28 msgid "DMPL" msgstr "DMPL" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:29 msgid "KNK Plotter (HPGL variant)" msgstr "Плотер KNK (варіант HPGL)" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:30 msgid "" "Using wrong settings can under certain circumstances cause Inkscape to " "freeze. Always save your work before plotting!" @@ -35749,7 +35845,7 @@ msgstr "" "завиÑÐ°Ð½Ð½Ñ Inkscape. Завжди зберігайте вашу роботу до того, Ñк розпочати " "процедуру вирізаннÑ." -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:31 msgid "" "This can be a physical serial connection or a USB-to-Serial bridge. Ask your " "plotter manufacturer for drivers if needed." @@ -35758,11 +35854,11 @@ msgstr "" "з’єднаннÑ. Якщо потрібно, надішліть запит до виробника плотера щодо Ð½Ð°Ð´Ð°Ð½Ð½Ñ " "драйвера." -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:32 msgid "Parallel (LPT) connections are not supported." msgstr "Підтримки паралельних з’єднань (LPT) не передбачено." -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:43 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 " @@ -35772,15 +35868,15 @@ msgstr "" "моделі плотера). Ð’Ñтановіть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 0, щоб вимкнути команду. БільшіÑть " "плотерів ігнорує цю команду. (Типове значеннÑ: 20)" -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:44 msgid "Rotation (°, clockwise):" msgstr "ÐžÐ±ÐµÑ€Ñ‚Ð°Ð½Ð½Ñ (у °, за годинниковою Ñтрілкою):" -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:64 msgid "Show debug information" msgstr "Показувати діагноÑтичну інформацію" -#: ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/plotter.inx.h:65 msgid "" "Check this to get verbose information about the plot without actually " "sending something to the plotter (A.k.a. data dump) (Default: Unchecked)" @@ -37563,15 +37659,42 @@ msgstr "ПопулÑрний графічний формат Ð´Ð»Ñ ÐºÐ»Ñ–Ð¿Ð°Ñ€ msgid "XAML Input" msgstr "Імпорт з XAML" +#~ msgid "Show helper paths" +#~ msgstr "Показати допоміжні контури" + +#~ msgid "Leaned" +#~ msgstr "Ðахилений" + +#~ msgid "Start path lean" +#~ msgstr "Початок контуру нахилу" + +#~ msgid "End path lean" +#~ msgstr "Кінець контуру нахилу" + +#~ msgid "Roughen unit" +#~ msgstr "ÐžÐ´Ð¸Ð½Ð¸Ñ†Ñ Ð·Ð³Ñ€ÑƒÐ±Ñ–ÑˆÐ°Ð½Ð½Ñ" + +#~ msgid "Helper nodes" +#~ msgstr "Допоміжні вузли" + +#~ msgid "Show helper nodes" +#~ msgstr "Показувати допоміжні вузли" + +#~ msgid "Helper handles" +#~ msgstr "Допоміжні вуÑа" + +#~ msgid "Show helper handles" +#~ msgstr "Показувати допоміжні елементи керуваннÑ" + +#~ msgid "%1 (%2):" +#~ msgstr "%1 (%2):" + #~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" #~ msgstr "PS+LaTeX: пропуÑтити текÑÑ‚ у PS Ñ– Ñтворити файл LaTeX" #~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" #~ msgstr "EPS+LaTeX: пропуÑтити текÑÑ‚ у EPS Ñ– Ñтворити файл LaTeX" -#~ msgid "Miter limit" -#~ msgstr "ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñ„Ð°Ñ†ÐµÑ‚Ð°" - #~ msgid "Radius " #~ msgstr "РадіуÑ: " @@ -38627,15 +38750,9 @@ msgstr "Імпорт з XAML" #~ msgid "Print unit after path length" #~ msgstr "Показувати одиницю порÑд з довжиною контуру" -#~ msgid "Scale x" -#~ msgstr "МаÑштаб за x" - #~ msgid "Scale factor in x direction" #~ msgstr "Коефіцієнт маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ напрÑмку віÑÑ– x" -#~ msgid "Scale y" -#~ msgstr "МаÑштаб за y" - #~ msgid "Scale factor in y direction" #~ msgstr "Коефіцієнт маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ напрÑмку віÑÑ– y" diff --git a/src/extension/internal/filter/color.h b/src/extension/internal/filter/color.h index c3c26bf8b..b9c76615c 100644 --- a/src/extension/internal/filter/color.h +++ b/src/extension/internal/filter/color.h @@ -258,7 +258,7 @@ public: "\n" "<_item value=\"0.618 0.32 0.062 0 0 0.163 0.775 0.062 0 0 0.163 0.32 0.516 0 0 0 0 0 1 0 \">" N_("Rod monochromacy (atypical achromatopsia)") "\n" "<_item value=\"0.299 0.587 0.114 0 0 0.299 0.587 0.114 0 0 0.299 0.587 0.114 0 0 0 0 0 1 0 \">" N_("Cone monochromacy (typical achromatopsia)") "\n" - "<_item value=\"0.8 0.2 0 0 0 0.2583 0.74167 0 0 0 0 0.14167 0.85833 0 0 0 0 0 1 0 \">" N_("Geen weak (deuteranomaly)") "\n" + "<_item value=\"0.8 0.2 0 0 0 0.2583 0.74167 0 0 0 0 0.14167 0.85833 0 0 0 0 0 1 0 \">" N_("Green weak (deuteranomaly)") "\n" "<_item value=\"0.625 0.375 0 0 0 0.7 0.3 0 0 0 0 0.3 0.7 0 0 0 0 0 1 0 \">" N_("Green blind (deuteranopia)") "\n" "<_item value=\"0.8166 0.1833 0 0 0 0.333 0.666 0 0 0 0 0.125 0.875 0 0 0 0 0 1 0 \">" N_("Red weak (protanomaly)") "\n" "<_item value=\"0.566 0.43333 0 0 0 0.55833 0.4416 0 0 0 0 0.24167 0.75833 0 0 0 0 0 1 0 \">" N_("Red blind (protanopia)") "\n" -- cgit v1.2.3 From d065dd0b182b88afc1c6f53cce6a189147e70b08 Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Mon, 11 May 2015 15:24:52 -0400 Subject: patch by tbnorth for Bug 1277649 Fixed bugs: - https://launchpad.net/bugs/1277649 (bzr r14146) --- share/extensions/layout_nup.inx | 1 - share/extensions/layout_nup.py | 216 ++++++++++++++++++++++++++++- share/extensions/layout_nup_pageframe.py | 230 ------------------------------- 3 files changed, 212 insertions(+), 235 deletions(-) delete mode 100755 share/extensions/layout_nup_pageframe.py diff --git a/share/extensions/layout_nup.inx b/share/extensions/layout_nup.inx index 2b7734fc3..1d4d1ef0f 100644 --- a/share/extensions/layout_nup.inx +++ b/share/extensions/layout_nup.inx @@ -3,7 +3,6 @@ <_name>N-up layout org.greygreen.inkscape.effects.nup layout_nup.py - layout_nup_pageframe.py inkex.py diff --git a/share/extensions/layout_nup.py b/share/extensions/layout_nup.py index 5f8451c45..20532f72a 100755 --- a/share/extensions/layout_nup.py +++ b/share/extensions/layout_nup.py @@ -19,7 +19,19 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import inkex import sys -import layout_nup_pageframe +try: + import xml.etree.ElementTree as ElementTree +except: + try: + from lxml import etree as ElementTree + except: + try: + from elementtree.ElementTree import ElementTree + except: + sys.stderr.write("""Requires ElementTree module, included +in Python 2.5 or supplied by lxml or elementtree modules. + +""") class Nup(inkex.Effect): def __init__(self): @@ -64,7 +76,7 @@ class Nup(inkex.Effect): if getattr(self.options, i): showList.append(i.lower().replace('show', '')) o = self.options - self.pf = layout_nup_pageframe.GenerateNup( + self.pf = self.GenerateNup( unit=o.unit, pgSize=(o.pgSizeX,o.pgSizeY), pgMargin=(o.pgMarginTop,o.pgMarginRight,o.pgMarginBottom,o.pgMarginLeft), @@ -84,7 +96,203 @@ class Nup(inkex.Effect): def output(self): sys.stdout.write(self.pf) + def expandTuple(self, unit, x, length = 4): + try: + iter(x) + except: + return None + + if len(x) != length: x = x*2 + if len(x) != length: + raise Exception("expandTuple: requires 2 or 4 item tuple") + try: + return tuple(map(lambda ev: (self.unittouu(str(eval(str(ev)))+unit)), x)) + except: + return None + + def GenerateNup(self, + unit="px", + pgSize=("8.5*96","11*96"), + pgMargin=(0,0), + pgPadding=(0,0), + num=(2,2), + calculateSize=True, + size=None, + margin=(0,0), + padding=(20,20), + show=['default'], + container='svg', + returnTree = False, + ): + """Generate the SVG. Inputs are run through 'eval(str(x))' so you can use + '8.5*72' instead of 612. Margin / padding dimension tuples can be + (top & bottom, left & right) or (top, right, bottom, left). + + Keyword arguments: + pgSize -- page size, width x height + pgMargin -- extra space around each page + pgPadding -- added to pgMargin + n -- rows x cols + size -- override calculated size, width x height + margin -- white space around each piece + padding -- inner padding for each piece + show -- list of keywords indicating what to show + - 'crosses' - cutting guides + - 'inner' - inner boundary + - 'outer' - outer boundary + container -- 'svg' or 'g' + returnTree -- whether to return the ElementTree or the string + """ + + if 'default' in show: + show = set(show).union(['inner', 'innerbox', 'holder', 'crosses']) + + pgMargin = self.expandTuple(unit, pgMargin) + pgPadding = self.expandTuple(unit, pgPadding) + margin = self.expandTuple(unit, margin) + padding = self.expandTuple(unit, padding) + + pgSize = self.expandTuple(unit, pgSize, length = 2) + # num = tuple(map(lambda ev: eval(str(ev)), num)) + + pgEdge = map(sum,zip(pgMargin, pgPadding)) + + top, right, bottom, left = 0,1,2,3 + width, height = 0,1 + rows, cols = 0,1 + size = self.expandTuple(unit, size, length = 2) + if size == None or calculateSize == True or len(size) < 2 or size[0] == 0 or size[1] == 0: + size = ((pgSize[width] + - pgEdge[left] - pgEdge[right] + - num[cols]*(margin[left] + margin[right])) / num[cols], + (pgSize[height] + - pgEdge[top] - pgEdge[bottom] + - num[rows]*(margin[top] + margin[bottom])) / num[rows] + ) + else: + size = self.expandTuple(unit, size, length = 2) + + # sep is separation between same points on pieces + sep = (size[width]+margin[right]+margin[left], + size[height]+margin[top]+margin[bottom]) + + style = 'stroke:#000000;stroke-opacity:1;fill:none;fill-opacity:1;' + + padbox = 'rect', { + 'x': str(pgEdge[left] + margin[left] + padding[left]), + 'y': str(pgEdge[top] + margin[top] + padding[top]), + 'width': str(size[width] - padding[left] - padding[right]), + 'height': str(size[height] - padding[top] - padding[bottom]), + 'style': style, + } + margbox = 'rect', { + 'x': str(pgEdge[left] + margin[left]), + 'y': str(pgEdge[top] + margin[top]), + 'width': str(size[width]), + 'height': str(size[height]), + 'style': style, + } + + doc = ElementTree.ElementTree(ElementTree.Element(container, + {'xmlns:inkscape':"http://www.inkscape.org/namespaces/inkscape", + 'xmlns:xlink':"http://www.w3.org/1999/xlink", + 'width':str(pgSize[width]), + 'height':str(pgSize[height]), + })) + + sub = ElementTree.SubElement + + root = doc.getroot() + + def makeClones(under, to): + for r in range(0,num[rows]): + for c in range(0,num[cols]): + if r == 0 and c == 0: continue + sub(under, 'use', { + 'xlink:href': '#' + to, + 'transform': 'translate(%f,%f)' % + (c*sep[width], r*sep[height])}) + + # guidelayer ##################################################### + if set(['inner', 'outer']).intersection(show): + layer = sub(root, 'g', {'id':'guidelayer', + 'inkscape:groupmode':'layer'}) + if 'inner' in show: + padbox[1]['id'] = 'innerguide' + padbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000', + 'stroke:#8080ff') + sub(layer, *padbox) + del padbox[1]['id'] + padbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff', + 'stroke:#000000') + makeClones(layer, 'innerguide') + if 'outer' in show: + margbox[1]['id'] = 'outerguide' + margbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000', + 'stroke:#8080ff') + sub(layer, *margbox) + del margbox[1]['id'] + margbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff', + 'stroke:#000000') + makeClones(layer, 'outerguide') + + # crosslayer ##################################################### + if set(['crosses']).intersection(show): + layer = sub(root, 'g', {'id':'cutlayer', + 'inkscape:groupmode':'layer'}) + + if 'crosses' in show: + crosslen = 12 + group = sub(layer, 'g', id='cross') + x,y = 0,0 + path = 'M%f %f' % (x+pgEdge[left] + margin[left], + y+pgEdge[top] + margin[top]-crosslen) + path += ' L%f %f' % (x+pgEdge[left] + margin[left], + y+pgEdge[top] + margin[top]+crosslen) + path += ' M%f %f' % (x+pgEdge[left] + margin[left]-crosslen, + y+pgEdge[top] + margin[top]) + path += ' L%f %f' % (x+pgEdge[left] + margin[left]+crosslen, + y+pgEdge[top] + margin[top]) + sub(group, 'path', style=style+'stroke-width:0.05', + d = path, id = 'crossmarker') + for r in 0, 1: + for c in 0, 1: + if r or c: + x,y = c*size[width], r*size[height] + sub(group, 'use', { + 'xlink:href': '#crossmarker', + 'transform': 'translate(%f,%f)' % + (x,y)}) + makeClones(layer, 'cross') + + # clonelayer ##################################################### + layer = sub(root, 'g', {'id':'clonelayer', 'inkscape:groupmode':'layer'}) + makeClones(layer, 'main') + + # mainlayer ###################################################### + layer = sub(root, 'g', {'id':'mainlayer', 'inkscape:groupmode':'layer'}) + group = sub(layer, 'g', {'id':'main'}) + + if 'innerbox' in show: + sub(group, *padbox) + if 'outerbox' in show: + sub(group, *margbox) + if 'holder' in show: + x, y = (pgEdge[left] + margin[left] + padding[left], + pgEdge[top] + margin[top] + padding[top]) + w, h = (size[width] - padding[left] - padding[right], + size[height] - padding[top] - padding[bottom]) + path = 'M%f %f' % (x + w/2., y) + path += ' L%f %f' % (x + w, y + h/2.) + path += ' L%f %f' % (x + w/2., y + h) + path += ' L%f %f' % (x, y + h/2.) + path += ' Z' + sub(group, 'path', style=style, d = path) + + if returnTree: + return doc + else: + return ElementTree.tostring(root) + e = Nup() e.affect() - - diff --git a/share/extensions/layout_nup_pageframe.py b/share/extensions/layout_nup_pageframe.py deleted file mode 100755 index 471a75dd3..000000000 --- a/share/extensions/layout_nup_pageframe.py +++ /dev/null @@ -1,230 +0,0 @@ -#!/usr/bin/env python -#@+leo-ver=4-thin -#@+node:tbrown.20070622094435.1:@thin pageframe.py -"""Create n-up SVG layouts""" - -#@+others -#@+node:tbrown.20070622103716:imports -import sys, inkex - -try: - import xml.etree.ElementTree as ElementTree -except: - try: - from lxml import etree as ElementTree - except: - try: - from elementtree.ElementTree import ElementTree - except: - sys.stderr.write("""Requires ElementTree module, included -in Python 2.5 or supplied by lxml or elementtree modules. - -""") -#@-node:tbrown.20070622103716:imports -#@+node:tbrown.20070622103716.1:expandTuple -def expandTuple(unit, x, length = 4): - try: - iter(x) - except: - return None - - if len(x) != length: x = x*2 - if len(x) != length: - raise Exception("expandTuple: requires 2 or 4 item tuple") - try: - return tuple(map(lambda ev: (self.unittouu(str(eval(str(ev)))+unit)), x)) - except: - return None -#@-node:tbrown.20070622103716.1:expandTuple -#@+node:tbrown.20070622103716.2:GenerateNup -def GenerateNup(unit="px", - pgSize=("8.5*96","11*96"), - pgMargin=(0,0), - pgPadding=(0,0), - num=(2,2), - calculateSize=True, - size=None, - margin=(0,0), - padding=(20,20), - show=['default'], - container='svg', - returnTree = False, - ): - """Generate the SVG. Inputs are run through 'eval(str(x))' so you can use -'8.5*72' instead of 612. Margin / padding dimension tuples can be -(top & bottom, left & right) or (top, right, bottom, left). - -Keyword arguments: -pgSize -- page size, width x height -pgMargin -- extra space around each page -pgPadding -- added to pgMargin -n -- rows x cols -size -- override calculated size, width x height -margin -- white space around each piece -padding -- inner padding for each piece -show -- list of keywords indicating what to show - - 'crosses' - cutting guides - - 'inner' - inner boundary - - 'outer' - outer boundary -container -- 'svg' or 'g' -returnTree -- whether to return the ElementTree or the string -""" - - if 'default' in show: - show = set(show).union(['inner', 'innerbox', 'holder', 'crosses']) - - pgMargin = expandTuple(unit, pgMargin) - pgPadding = expandTuple(unit, pgPadding) - margin = expandTuple(unit, margin) - padding = expandTuple(unit, padding) - - pgSize = expandTuple(unit, pgSize, length = 2) -# num = tuple(map(lambda ev: eval(str(ev)), num)) - - pgEdge = map(sum,zip(pgMargin, pgPadding)) - - top, right, bottom, left = 0,1,2,3 - width, height = 0,1 - rows, cols = 0,1 - size = expandTuple(unit, size, length = 2) - if size == None or calculateSize == True or len(size) < 2 or size[0] == 0 or size[1] == 0: - size = ((pgSize[width] - - pgEdge[left] - pgEdge[right] - - num[cols]*(margin[left] + margin[right])) / num[cols], - (pgSize[height] - - pgEdge[top] - pgEdge[bottom] - - num[rows]*(margin[top] + margin[bottom])) / num[rows] - ) - else: - size = expandTuple(unit, size, length = 2) - - # sep is separation between same points on pieces - sep = (size[width]+margin[right]+margin[left], - size[height]+margin[top]+margin[bottom]) - - style = 'stroke:#000000;stroke-opacity:1;fill:none;fill-opacity:1;' - - padbox = 'rect', { - 'x': str(pgEdge[left] + margin[left] + padding[left]), - 'y': str(pgEdge[top] + margin[top] + padding[top]), - 'width': str(size[width] - padding[left] - padding[right]), - 'height': str(size[height] - padding[top] - padding[bottom]), - 'style': style, - } - margbox = 'rect', { - 'x': str(pgEdge[left] + margin[left]), - 'y': str(pgEdge[top] + margin[top]), - 'width': str(size[width]), - 'height': str(size[height]), - 'style': style, - } - - doc = ElementTree.ElementTree(ElementTree.Element(container, - {'xmlns:inkscape':"http://www.inkscape.org/namespaces/inkscape", - 'xmlns:xlink':"http://www.w3.org/1999/xlink", - 'width':str(pgSize[width]), - 'height':str(pgSize[height]), - })) - - sub = ElementTree.SubElement - - root = doc.getroot() - - def makeClones(under, to): - for r in range(0,num[rows]): - for c in range(0,num[cols]): - if r == 0 and c == 0: continue - sub(under, 'use', { - 'xlink:href': '#' + to, - 'transform': 'translate(%f,%f)' % - (c*sep[width], r*sep[height])}) - - # guidelayer ##################################################### - if set(['inner', 'outer']).intersection(show): - layer = sub(root, 'g', {'id':'guidelayer', - 'inkscape:groupmode':'layer'}) - if 'inner' in show: - padbox[1]['id'] = 'innerguide' - padbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000', - 'stroke:#8080ff') - sub(layer, *padbox) - del padbox[1]['id'] - padbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff', - 'stroke:#000000') - makeClones(layer, 'innerguide') - if 'outer' in show: - margbox[1]['id'] = 'outerguide' - margbox[1]['style'] = padbox[1]['style'].replace('stroke:#000000', - 'stroke:#8080ff') - sub(layer, *margbox) - del margbox[1]['id'] - margbox[1]['style'] = padbox[1]['style'].replace('stroke:#8080ff', - 'stroke:#000000') - makeClones(layer, 'outerguide') - - # crosslayer ##################################################### - if set(['crosses']).intersection(show): - layer = sub(root, 'g', {'id':'cutlayer', - 'inkscape:groupmode':'layer'}) - - if 'crosses' in show: - crosslen = 12 - group = sub(layer, 'g', id='cross') - x,y = 0,0 - path = 'M%f %f' % (x+pgEdge[left] + margin[left], - y+pgEdge[top] + margin[top]-crosslen) - path += ' L%f %f' % (x+pgEdge[left] + margin[left], - y+pgEdge[top] + margin[top]+crosslen) - path += ' M%f %f' % (x+pgEdge[left] + margin[left]-crosslen, - y+pgEdge[top] + margin[top]) - path += ' L%f %f' % (x+pgEdge[left] + margin[left]+crosslen, - y+pgEdge[top] + margin[top]) - sub(group, 'path', style=style+'stroke-width:0.05', - d = path, id = 'crossmarker') - for r in 0, 1: - for c in 0, 1: - if r or c: - x,y = c*size[width], r*size[height] - sub(group, 'use', { - 'xlink:href': '#crossmarker', - 'transform': 'translate(%f,%f)' % - (x,y)}) - makeClones(layer, 'cross') - - # clonelayer ##################################################### - layer = sub(root, 'g', {'id':'clonelayer', 'inkscape:groupmode':'layer'}) - makeClones(layer, 'main') - - # mainlayer ###################################################### - layer = sub(root, 'g', {'id':'mainlayer', 'inkscape:groupmode':'layer'}) - group = sub(layer, 'g', {'id':'main'}) - - if 'innerbox' in show: - sub(group, *padbox) - if 'outerbox' in show: - sub(group, *margbox) - if 'holder' in show: - x, y = (pgEdge[left] + margin[left] + padding[left], - pgEdge[top] + margin[top] + padding[top]) - w, h = (size[width] - padding[left] - padding[right], - size[height] - padding[top] - padding[bottom]) - path = 'M%f %f' % (x + w/2., y) - path += ' L%f %f' % (x + w, y + h/2.) - path += ' L%f %f' % (x + w/2., y + h) - path += ' L%f %f' % (x, y + h/2.) - path += ' Z' - sub(group, 'path', style=style, d = path) - - if returnTree: - return doc - else: - return ElementTree.tostring(root) - -if __name__ == '__main__': - print GenerateNup(num=(10,3), margin=(5,5), show=['default', 'outer']) -#@-node:tbrown.20070622103716.2:GenerateNup -#@-others -#@-node:tbrown.20070622094435.1:@thin pageframe.py -#@-leo - - -- cgit v1.2.3 From fbff05fb816454688444dd23169a70092f1252bc Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Tue, 12 May 2015 00:28:20 +0200 Subject: fixed color selector not remembering it's last open tab (bzr r14059.1.25) --- src/ui/widget/color-notebook.cpp | 2 +- src/widgets/paint-selector.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 0150f2ca2..60abf43bf 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -275,7 +275,7 @@ void ColorNotebook::_onSelectedColorChanged() { _updateICCButtons(); } void ColorNotebook::_onPageSwitched(GtkNotebook *notebook, GtkWidget *page, guint page_num, ColorNotebook *colorbook) { - if (colorbook) { + if (colorbook->get_visible()) { // remember the page we switched to Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setInt("/colorselector/page", page_num); diff --git a/src/widgets/paint-selector.cpp b/src/widgets/paint-selector.cpp index f9a537f41..846ded511 100644 --- a/src/widgets/paint-selector.cpp +++ b/src/widgets/paint-selector.cpp @@ -586,6 +586,9 @@ sp_paint_selector_clear_frame(SPPaintSelector *psel) if (psel->selector) { + //This is a hack to work around GtkNotebook bug in ColorSelector. Is sends signal switch-page on destroy + //The widget is hidden firts so it can recognize that it should not process signals from notebook child + gtk_widget_set_visible(psel->selector, false); gtk_widget_destroy(psel->selector); psel->selector = NULL; } -- cgit v1.2.3 From 422c47d8a8b535ff567f8e384a40624d19ed2058 Mon Sep 17 00:00:00 2001 From: su_v Date: Tue, 12 May 2015 08:15:43 +0200 Subject: packaging/macosx: fix print preview (Gtk+ itself only sets Preview.app as default for the Quartz backend) (bzr r14147) --- packaging/macosx/Resources/etc/gtk-2.0/gtkrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packaging/macosx/Resources/etc/gtk-2.0/gtkrc b/packaging/macosx/Resources/etc/gtk-2.0/gtkrc index 76c9f3397..46f5d2910 100644 --- a/packaging/macosx/Resources/etc/gtk-2.0/gtkrc +++ b/packaging/macosx/Resources/etc/gtk-2.0/gtkrc @@ -13,6 +13,9 @@ gtk-menu-images = 1 gtk-toolbar-style = 0 #gtk-toolbar-icon-size = 2 +# use OS X default PDF viewer for print preview +gtk-print-preview-command="open -a /Applications/Preview.app %f" + # fix Adwaita theme for Inkscape's GimpSpinScale widgets style "spinbutton" {} widget_class "*GimpSpinScale*" style "spinbutton" -- cgit v1.2.3 From c1b1d511b45348d8bccc5d22cd3471bb540cde12 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 12 May 2015 21:43:24 +0200 Subject: GUI for font-variant-xxx, parse 'font-variant-ligatures'. This is a work in progress. (bzr r14148) --- src/desktop-style.cpp | 60 ++++++++++ src/desktop-style.h | 2 + src/style-enums.h | 39 ++++--- src/style-internal.cpp | 131 +++++++++++++++++++++ src/style-internal.h | 49 ++++++++ src/style-test.h | 11 ++ src/style.cpp | 2 +- src/style.h | 2 +- src/ui/dialog/text-edit.cpp | 9 +- src/ui/dialog/text-edit.h | 4 + src/ui/widget/Makefile_insert | 6 +- src/ui/widget/font-variants.cpp | 246 ++++++++++++++++++++++++++++++++++++++++ src/ui/widget/font-variants.h | 119 +++++++++++++++++++ 13 files changed, 655 insertions(+), 25 deletions(-) create mode 100644 src/ui/widget/font-variants.cpp create mode 100644 src/ui/widget/font-variants.h diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index afdc3064a..118f983bb 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -1168,6 +1168,63 @@ objects_query_fontstyle (const std::vector &objects, SPStyle *style_res } } +int +objects_query_fontvariants (const std::vector &objects, SPStyle *style_res) +{ + bool set = false; + + int texts = 0; + + SPILigatures* ligatures_res = &(style_res->font_variant_ligatures); + ligatures_res->computed = + SP_CSS_FONT_VARIANT_LIGATURES_COMMON | + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL; + ligatures_res->value = 0; + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { + SPObject *obj = *i; + + if (!isTextualItem(obj)) { + continue; + } + + SPStyle *style = obj->style; + if (!style) { + continue; + } + + texts ++; + + SPILigatures* ligatures_in = &(style->font_variant_ligatures); + // computed stores which bits are on/off, only valid if same between all selected objects. + // value stores which bits are different between objects. This is a bit of an abuse of + // the values but then we don't need to add new variables to class. + if (set) { + ligatures_res->value |= (ligatures_res->computed ^ ligatures_in->computed ); + ligatures_res->computed &= ligatures_in->computed; + } else { + set = true; + ligatures_res->computed = ligatures_in->computed; + } + } + + bool different = (style_res->font_variant_position.value != + style_res->font_variant_position.computed ); + + if (texts == 0 || !set) + return QUERY_STYLE_NOTHING; + + if (texts > 1) { + if (different) { + return QUERY_STYLE_MULTIPLE_DIFFERENT; + } else { + return QUERY_STYLE_MULTIPLE_SAME; + } + } else { + return QUERY_STYLE_SINGLE; + } +} + + /** * Write to style_res the baseline numbers. */ @@ -1577,6 +1634,8 @@ sp_desktop_query_style_from_list (const std::vector &list, SPStyle *sty return objects_query_fontfamily (list, style); } else if (property == QUERY_STYLE_PROPERTY_FONTSTYLE) { return objects_query_fontstyle (list, style); + } else if (property == QUERY_STYLE_PROPERTY_FONTVARIANTS) { + return objects_query_fontvariants (list, style); } else if (property == QUERY_STYLE_PROPERTY_FONTNUMBERS) { return objects_query_fontnumbers (list, style); } else if (property == QUERY_STYLE_PROPERTY_BASELINES) { @@ -1598,6 +1657,7 @@ sp_desktop_query_style_from_list (const std::vector &list, SPStyle *sty int sp_desktop_query_style(SPDesktop *desktop, SPStyle *style, int property) { + // Used by text tool and in gradient dragging int ret = desktop->_query_style_signal.emit(style, property); if (ret != QUERY_STYLE_NOTHING) diff --git a/src/desktop-style.h b/src/desktop-style.h index a72f49776..e5fe50440 100644 --- a/src/desktop-style.h +++ b/src/desktop-style.h @@ -47,6 +47,7 @@ enum { // which property was queried (add when you need more) QUERY_STYLE_PROPERTY_FONT_SPECIFICATION, //-inkscape-font-specification QUERY_STYLE_PROPERTY_FONTFAMILY, // font-family QUERY_STYLE_PROPERTY_FONTSTYLE, // font style + QUERY_STYLE_PROPERTY_FONTVARIANTS, // font variants (OpenType features) QUERY_STYLE_PROPERTY_FONTNUMBERS, // size, spacings QUERY_STYLE_PROPERTY_BASELINES, // baseline-shift QUERY_STYLE_PROPERTY_MASTEROPACITY, // opacity @@ -71,6 +72,7 @@ int objects_query_fillstroke (const std::vector &objects, SPStyle *styl 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_fontvariants (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); diff --git a/src/style-enums.h b/src/style-enums.h index f235b6699..36eab216d 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -74,16 +74,15 @@ enum SPCSSFontStretch { // 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 + SP_CSS_FONT_VARIANT_LIGATURES_NONE = 0, + SP_CSS_FONT_VARIANT_LIGATURES_COMMON = 1, + SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY = 2, + SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL = 4, + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL = 8, + SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON = 16, + SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY = 32, + SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL = 64, + SP_CSS_FONT_VARIANT_LIGATURES_NOCONTEXTUAL = 128 }; enum SPCSSFontVariantPosition { @@ -102,6 +101,7 @@ enum SPCSSFontVariantCaps { SP_CSS_FONT_VARIANT_CAPS_TITLING, }; +// Can select more than one (see spec) enum SPCSSFontVariantNumeric { SP_CSS_FONT_VARIANT_NUMERIC_NORMAL, SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS, @@ -376,16 +376,15 @@ static SPStyleEnum const enum_font_stretch[] = { }; 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}, + {"none", SP_CSS_FONT_VARIANT_LIGATURES_NONE}, + {"common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_COMMON}, + {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, + {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, + {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, + {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON}, + {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY}, + {"no-historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL}, + {"no-contextual", SP_CSS_FONT_VARIANT_LIGATURES_NOCONTEXTUAL}, {NULL, -1} }; diff --git a/src/style-internal.cpp b/src/style-internal.cpp index 915282301..7f6f6400d 100644 --- a/src/style-internal.cpp +++ b/src/style-internal.cpp @@ -45,6 +45,8 @@ #include #include +#include + // TODO REMOVE OR MAKE MEMBER FUNCTIONS void sp_style_fill_paint_server_ref_changed( SPObject *old_ref, SPObject *ref, SPStyle *style); void sp_style_stroke_paint_server_ref_changed(SPObject *old_ref, SPObject *ref, SPStyle *style); @@ -664,6 +666,135 @@ SPIEnum::operator==(const SPIBase& rhs) { } +// SPIEnumBits ---------------------------------------------------------- +// Used for 'font-variant-xxx' +void +SPIEnumBits::read( gchar const *str ) { + + if( !str ) return; + std::cout << "SPIEnumBits: " << name << ": " << str << std::endl; + if( !strcmp(str, "inherit") ) { + set = true; + inherit = true; + } else { + for (unsigned i = 0; enums[i].key; i++) { + if (!strcmp(str, enums[i].key)) { + std::cout << " found: " << enums[i].key << std::endl; + set = true; + inherit = false; + value += enums[i].value; + /* Save copying for values not needing it */ + computed = value; + } + } + } +} + +const Glib::ustring +SPIEnumBits::write( guint const flags, SPIBase const *const base) const { + + SPIEnum const *const my_base = dynamic_cast(base); + if ( (flags & SP_STYLE_FLAG_ALWAYS) || + ((flags & SP_STYLE_FLAG_IFSET) && this->set) || + ((flags & SP_STYLE_FLAG_IFDIFF) && this->set + && (!my_base->set || this != my_base ))) + { + if (this->inherit) { + return (name + ":inherit;"); + } + if (this->value == 0 ) { + return (name + ":normal"); + } + Glib::ustring return_string = name + ":"; + unsigned j = 1; + for (unsigned i = 0; enums[i].key; ++i) { + if (j & this->value ) { + return_string += enums[i].value + " "; + } + j *= 2; + } + return return_string; + } + return Glib::ustring(""); +} + + +// SPILigatures ----------------------------------------------------- +// Used for 'font-variant-ligatures' +void +SPILigatures::read( gchar const *str ) { + + if( !str ) return; + + value = SP_CSS_FONT_VARIANT_LIGATURES_COMMON | SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL; + if( !strcmp(str, "inherit") ) { + set = true; + inherit = true; + } else if (!strcmp(str, "normal" )) { + // Defaults for TrueType + inherit = false; + set = true; + } else if (!strcmp(str, "none" )) { + value = SP_CSS_FONT_VARIANT_LIGATURES_NONE; + inherit = false; + set = true; + } else { + // We need to parse in order + std::vector tokens = Glib::Regex::split_simple("\\s+", str ); + for( unsigned i = 0; i < tokens.size(); ++i ) { + for (unsigned j = 0; enums[j].key; ++j ) { + if (tokens[i].compare( enums[j].key ) == 0 ) { + set = true; + inherit = false; + if( enums[j].value < SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON ) { + // Turn on + value |= enums[j].value; + } else { + // Turn off + value &= ~(enums[j].value >> 4); + } + } + } + } + } + computed = value; +} + +const Glib::ustring +SPILigatures::write( guint const flags, SPIBase const *const base) const { + + SPIEnum const *const my_base = dynamic_cast(base); + if ( (flags & SP_STYLE_FLAG_ALWAYS) || + ((flags & SP_STYLE_FLAG_IFSET) && this->set) || + ((flags & SP_STYLE_FLAG_IFDIFF) && this->set + && (!my_base->set || this != my_base ))) + { + if (this->inherit) { + return (name + ":inherit;"); + } + if (value == SP_CSS_FONT_VARIANT_LIGATURES_NONE ) { + return (name + ":none;"); + } + if (value == (SP_CSS_FONT_VARIANT_LIGATURES_COMMON + + SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL) ) { + return (name + ":normal;"); + } + + Glib::ustring return_string = name + ":"; + if ( !(value & SP_CSS_FONT_VARIANT_LIGATURES_COMMON) ) + return_string += "no-common-ligatures "; + if ( value & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ) + return_string += "discretionary-ligatures "; + if ( value & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ) + return_string += "historical-ligatures "; + if ( !(value & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL) ) + return_string += "no-contextual "; + return_string.erase( return_string.size() - 1 ); + return_string += ";"; + return return_string; + } + return Glib::ustring(""); +} // SPIString ------------------------------------------------------------ diff --git a/src/style-internal.h b/src/style-internal.h index a8f0c5096..ea966866a 100644 --- a/src/style-internal.h +++ b/src/style-internal.h @@ -510,6 +510,55 @@ private: }; +/// SPIEnum w/ bits, allows values with multiple key words. +class SPIEnumBits : public SPIEnum +{ + +public: + SPIEnumBits() : + SPIEnum( "anonymous_enumbits", NULL ) + {} + + SPIEnumBits( Glib::ustring const &name, SPStyleEnum const *enums, unsigned value = 0, bool inherits = true ) : + SPIEnum( name, enums, value, inherit ) + {} + + virtual ~SPIEnumBits() + {} + + virtual void read( gchar const *str ); + virtual const Glib::ustring write( guint const flags = SP_STYLE_FLAG_IFSET, + SPIBase const *const base = NULL ) const; + +}; + + +/// SPIEnum w/ extra bits. The 'font-variants-ligatures' property is a complete mess that needs +/// special handling. For OpenType fonts the values 'common-ligatures', 'contextual', +/// 'no-discretionary-ligatures', and 'no-historical-ligatures' are not useful but we still must be +/// able to parse them. +class SPILigatures : public SPIEnum +{ + +public: + SPILigatures() : + SPIEnum( "anonymous_enumligatures", NULL ) + {} + + SPILigatures( Glib::ustring const &name, SPStyleEnum const *enums) : + SPIEnum( name, enums, + SP_CSS_FONT_VARIANT_LIGATURES_COMMON | SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL) + {} + + virtual ~SPILigatures() + {} + + virtual void read( gchar const *str ); + virtual const Glib::ustring write( guint const flags = SP_STYLE_FLAG_IFSET, + SPIBase const *const base = NULL ) const; +}; + + /// String type internal to SPStyle. // Used for 'marker', ..., 'font', 'font-family', 'inkscape-font-specification' class SPIString : public SPIBase diff --git a/src/style-test.h b/src/style-test.h index cd6769b24..fec0da0f8 100644 --- a/src/style-test.h +++ b/src/style-test.h @@ -137,6 +137,17 @@ public: TestCase("font-weight:bolder"), TestCase("font-stretch:condensed"), // SPIEnum + TestCase("font-variant-ligatures:none"), // SPILigatures + TestCase("font-variant-ligatures:normal"), + TestCase("font-variant-ligatures:no-common-ligatures"), + TestCase("font-variant-ligatures:discretionary-ligatures"), + TestCase("font-variant-ligatures:historical-ligatures"), + TestCase("font-variant-ligatures:no-contextual"), + TestCase("font-variant-ligatures:common-ligatures", "font-variant-ligatures:normal"), + TestCase("font-variant-ligatures:contextual", "font-variant-ligatures:normal"), + TestCase("font-variant-ligatures:no-common-ligatures historical-ligatures"), + TestCase("font-variant-ligatures:historical-ligatures no-contextual"), + // Should be moved down TestCase("text-indent:12em"), // SPILength? TestCase("text-align:center"), // SPIEnum diff --git a/src/style.cpp b/src/style.cpp index 49a13604b..4d93841eb 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -119,7 +119,7 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : 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_ligatures( "font-variant-ligatures", enum_font_variant_ligatures ), 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 ), diff --git a/src/style.h b/src/style.h index 2618662f5..f82fad9b0 100644 --- a/src/style.h +++ b/src/style.h @@ -113,7 +113,7 @@ public: /* Font variants -------------------- */ /** Font variant ligatures */ - SPIEnum font_variant_ligatures; + SPILigatures font_variant_ligatures; /** Font variant position (subscript/superscript) */ SPIEnum font_variant_position; /** Font variant caps (small caps) */ diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 815aa12ef..98ea7f9f7 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -69,6 +69,7 @@ TextEdit::TextEdit() font_label(_("_Font"), true), layout_frame(), text_label(_("_Text"), true), + vari_label(_("_Variants"), true), setasdefault_button(_("Set as _default")), close_button(Gtk::Stock::CLOSE), apply_button(Gtk::Stock::APPLY), @@ -195,7 +196,8 @@ TextEdit::TextEdit() notebook.append_page(font_vbox, font_label); notebook.append_page(text_vbox, text_label); - + notebook.append_page(vari_vbox, vari_label); + /* Buttons */ setasdefault_button.set_use_underline(true); apply_button.set_can_default(); @@ -384,6 +386,11 @@ void TextEdit::onReadSelection ( gboolean dostyle, gboolean /*docontent*/ ) gtk_entry_set_text ((GtkEntry *) gtk_bin_get_child ((GtkBin *) spacing_combo), sstr); g_free(sstr); + // Update font variant widget + //int result_variants = + sp_desktop_query_style (SP_ACTIVE_DESKTOP, &query, QUERY_STYLE_PROPERTY_FONTVARIANTS); + vari_vbox.update( query.font_variant_ligatures.computed, query.font_variant_ligatures.value ); + } blocked = false; } diff --git a/src/ui/dialog/text-edit.h b/src/ui/dialog/text-edit.h index 117ad2e28..f088fd337 100644 --- a/src/ui/dialog/text-edit.h +++ b/src/ui/dialog/text-edit.h @@ -32,6 +32,7 @@ #include "ui/widget/panel.h" #include "ui/widget/frame.h" #include "ui/dialog/desktop-tracker.h" +#include "ui/widget/font-variants.h" class SPItem; struct SPFontSelector; @@ -213,6 +214,9 @@ private: GtkWidget *text_view; // TODO - Convert this to a Gtk::TextView, but GtkSpell doesn't seem to work with it GtkTextBuffer *text_buffer; + Inkscape::UI::Widget::FontVariants vari_vbox; + Gtk::Label vari_label; + Gtk::HBox button_row; Gtk::Button setasdefault_button; Gtk::Button close_button; diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert index e18b790bd..305076a9d 100644 --- a/src/ui/widget/Makefile_insert +++ b/src/ui/widget/Makefile_insert @@ -21,8 +21,10 @@ ink_common_sources += \ ui/widget/entry.h \ ui/widget/filter-effect-chooser.h \ ui/widget/filter-effect-chooser.cpp \ - ui/widget/gimpspinscale.c \ - ui/widget/gimpspinscale.h \ + ui/widget/font-variants.h \ + ui/widget/font-variants.cpp \ + ui/widget/gimpspinscale.c \ + ui/widget/gimpspinscale.h \ ui/widget/gimpcolorwheel.c \ ui/widget/gimpcolorwheel.h \ ui/widget/frame.cpp \ diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp new file mode 100644 index 000000000..46fbc2aa4 --- /dev/null +++ b/src/ui/widget/font-variants.cpp @@ -0,0 +1,246 @@ +/* + * Author: + * Tavmjong Bah + * + * Copyright (C) 2015 Tavmong Bah + * + * Released under GNU GPL. Read the file 'COPYING' for more information. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include + +#include "font-variants.h" + +// For updating from selection +#include "desktop.h" +#include "selection.h" +#include "style.h" +#include "sp-text.h" +#include "sp-tspan.h" +#include "sp-tref.h" +#include "sp-textpath.h" +#include "sp-item-group.h" + +namespace Inkscape { +namespace UI { +namespace Widget { + + FontVariants::FontVariants () : + Gtk::VBox (), + _ligatures_frame ( Glib::ustring(_("Ligatures" )) ), + _ligatures_common ( Glib::ustring(_("Common" )) ), + _ligatures_discretionary ( Glib::ustring(_("Discretionary")) ), + _ligatures_historical ( Glib::ustring(_("Historical" )) ), + _ligatures_contextual ( Glib::ustring(_("Contextual" )) ), + + _position_frame ( Glib::ustring(_("Position" )) ), + _position_normal ( Glib::ustring(_("Normal" )) ), + _position_sub ( Glib::ustring(_("Subscript" )) ), + _position_super ( Glib::ustring(_("Superscript" )) ), + + _caps_frame ( Glib::ustring(_("Capitals" )) ), + _caps_normal ( Glib::ustring(_("Normal" )) ), + _caps_small ( Glib::ustring(_("Small" )) ), + _caps_all_small ( Glib::ustring(_("All small" )) ), + _caps_petite ( Glib::ustring(_("Petite" )) ), + _caps_all_petite ( Glib::ustring(_("All petite" )) ), + _caps_unicase ( Glib::ustring(_("Unicase" )) ), + _caps_titling ( Glib::ustring(_("Titling" )) ), + + _numeric_frame ( Glib::ustring(_("Numeric" )) ), + _numeric_lining ( Glib::ustring(_("Lining" )) ), + _numeric_old_style ( Glib::ustring(_("Old Style" )) ), + _numeric_default_style ( Glib::ustring(_("Default Style")) ), + _numeric_proportional ( Glib::ustring(_("Proportional" )) ), + _numeric_tabular ( Glib::ustring(_("Tabular" )) ), + _numeric_default_width ( Glib::ustring(_("Default Width")) ), + _numeric_diagonal ( Glib::ustring(_("Diagonal" )) ), + _numeric_stacked ( Glib::ustring(_("Stacked" )) ), + _numeric_default_fractions( Glib::ustring(_("Default Fractions")) ), + _numeric_ordinal ( Glib::ustring(_("Ordinal" )) ), + _numeric_slashed_zero ( Glib::ustring(_("Slashed Zero" )) ) + + + { + + // Ligatures -------------------------- + _ligatures_common.set_tooltip_text( + _("Common ligatures. On by default. OpenType tables: 'liga', 'clig'")); + _ligatures_discretionary.set_tooltip_text( + _("Discretionary ligatures. Off by default. OpenType table: 'dlig'")); + _ligatures_historical.set_tooltip_text( + _("Historical ligatures. Off by default. OpenType table: 'hlig'")); + _ligatures_contextual.set_tooltip_text( + _("Contextual forms. On by default. OpenType table: 'calt'")); + + + _ligatures_common.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); + _ligatures_discretionary.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); + _ligatures_historical.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); + _ligatures_contextual.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); + _ligatures_vbox.add( _ligatures_common ); + _ligatures_vbox.add( _ligatures_discretionary ); + _ligatures_vbox.add( _ligatures_historical ); + _ligatures_vbox.add( _ligatures_contextual ); + _ligatures_frame.add( _ligatures_vbox ); + add( _ligatures_frame ); + + ligatures_init(); + + // Position ---------------------------------- + _position_vbox.add( _position_normal ); + _position_vbox.add( _position_sub ); + _position_vbox.add( _position_super ); + _position_frame.add( _position_vbox ); + add( _position_frame ); + + // Group buttons + Gtk::RadioButton::Group position_group = _position_normal.get_group(); + _position_sub.set_group(position_group); + _position_super.set_group(position_group); + _position_normal.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); + _position_sub.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); + _position_super.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); + + position_init(); + + // Caps ---------------------------------- + _caps_vbox.add( _caps_normal ); + _caps_vbox.add( _caps_small ); + _caps_vbox.add( _caps_all_small ); + _caps_vbox.add( _caps_petite ); + _caps_vbox.add( _caps_all_petite ); + _caps_vbox.add( _caps_unicase ); + _caps_vbox.add( _caps_titling ); + _caps_frame.add( _caps_vbox ); + add( _caps_frame ); + + // Group buttons + Gtk::RadioButton::Group caps_group = _caps_normal.get_group(); + _caps_small.set_group(caps_group); + _caps_all_small.set_group(caps_group); + _caps_petite.set_group(caps_group); + _caps_all_petite.set_group(caps_group); + _caps_unicase.set_group(caps_group); + _caps_titling.set_group(caps_group); + _caps_normal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_all_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_petite.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_all_petite.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_unicase.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + _caps_titling.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + + caps_init(); + + // Numeric ------------------------------ + _numeric_stylebox.add( _numeric_default_style ); + _numeric_stylebox.add( _numeric_lining ); + _numeric_stylebox.add( _numeric_old_style ); + _numeric_vbox.add( _numeric_stylebox ); + _numeric_widthbox.add( _numeric_default_width ); + _numeric_widthbox.add( _numeric_proportional ); + _numeric_widthbox.add( _numeric_tabular ); + _numeric_vbox.add( _numeric_widthbox ); + _numeric_fractionbox.add( _numeric_default_fractions ); + _numeric_fractionbox.add( _numeric_diagonal ); + _numeric_fractionbox.add( _numeric_stacked ); + _numeric_vbox.add( _numeric_fractionbox ); + _numeric_vbox.add( _numeric_ordinal ); + _numeric_vbox.add( _numeric_slashed_zero ); + _numeric_frame.add( _numeric_vbox ); + add( _numeric_frame ); + + // Group buttons + Gtk::RadioButton::Group style_group = _numeric_default_style.get_group(); + _numeric_lining.set_group(style_group); + _numeric_old_style.set_group(style_group); + + Gtk::RadioButton::Group width_group = _numeric_default_width.get_group(); + _numeric_proportional.set_group(width_group); + _numeric_tabular.set_group(width_group); + + Gtk::RadioButton::Group fraction_group = _numeric_default_fractions.get_group(); + _numeric_diagonal.set_group(fraction_group); + _numeric_stacked.set_group(fraction_group); + + show_all_children(); + } + + void + FontVariants::ligatures_init() { + // std::cout << "FontVariants::ligatures_init()" << std::endl; + } + + void + FontVariants::ligatures_callback() { + // std::cout << "FontVariants::ligatures_callback()" << std::endl; + } + + void + FontVariants::position_init() { + // std::cout << "FontVariants::position_init()" << std::endl; + } + + void + FontVariants::position_callback() { + // std::cout << "FontVariants::position_callback()" << std::endl; + } + + void + FontVariants::caps_init() { + // std::cout << "FontVariants::caps_init()" << std::endl; + } + + void + FontVariants::caps_callback() { + // std::cout << "FontVariants::caps_callback()" << std::endl; + } + + void + FontVariants::numeric_init() { + std::cout << "FontVariants::numeric_init()" << std::endl; + // _numeric_tabular.set_inconsistent(); + } + + void + FontVariants::numeric_callback() { + // std::cout << "FontVariants::numeric_callback()" << std::endl; + } + + void + FontVariants::update( unsigned all, unsigned mix ) { + // std::cout << "FontVariants::update" << std::endl; + + _ligatures_common.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); + _ligatures_discretionary.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); + _ligatures_historical.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); + _ligatures_contextual.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + + _ligatures_common.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); + _ligatures_discretionary.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); + _ligatures_historical.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); + _ligatures_contextual.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + } + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +/* + 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: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : diff --git a/src/ui/widget/font-variants.h b/src/ui/widget/font-variants.h new file mode 100644 index 000000000..bef14c4bd --- /dev/null +++ b/src/ui/widget/font-variants.h @@ -0,0 +1,119 @@ +/* + * Author: + * Tavmjong Bah + * + * Copyright (C) 2015 Tavmong Bah + * + * Released under GNU GPL. Read the file 'COPYING' for more information. + */ + +#ifndef INKSCAPE_UI_WIDGET_FONT_VARIANT_H +#define INKSCAPE_UI_WIDGET_FONT_VARIANT_H + +// Temp: both frame and expander +#include +#include +#include +#include + +class SPDesktop; +class SPObject; + +namespace Inkscape { +namespace UI { +namespace Widget { + +/** + * A container for selecting font variants (OpenType Features). + */ +class FontVariants : public Gtk::VBox +{ + +public: + + /** + * Constructor + */ + FontVariants(); + +protected: + // To start, use four check buttons. + Gtk::Expander _ligatures_frame; + Gtk::VBox _ligatures_vbox; + Gtk::CheckButton _ligatures_common; + Gtk::CheckButton _ligatures_discretionary; + Gtk::CheckButton _ligatures_historical; + Gtk::CheckButton _ligatures_contextual; + + // Exclusive options + Gtk::Expander _position_frame; + Gtk::VBox _position_vbox; + Gtk::RadioButton _position_normal; + Gtk::RadioButton _position_sub; + Gtk::RadioButton _position_super; + + // Exclusive options (maybe a dropdown menu to save space?) + Gtk::Expander _caps_frame; + Gtk::VBox _caps_vbox; + Gtk::RadioButton _caps_normal; + Gtk::RadioButton _caps_small; + Gtk::RadioButton _caps_all_small; + Gtk::RadioButton _caps_petite; + Gtk::RadioButton _caps_all_petite; + Gtk::RadioButton _caps_unicase; + Gtk::RadioButton _caps_titling; + + // Complicated! + Gtk::Expander _numeric_frame; + Gtk::VBox _numeric_vbox; + Gtk::HBox _numeric_stylebox; + Gtk::RadioButton _numeric_lining; + Gtk::RadioButton _numeric_old_style; + Gtk::RadioButton _numeric_default_style; + Gtk::HBox _numeric_widthbox; + Gtk::RadioButton _numeric_proportional; + Gtk::RadioButton _numeric_tabular; + Gtk::RadioButton _numeric_default_width; + Gtk::HBox _numeric_fractionbox; + Gtk::RadioButton _numeric_diagonal; + Gtk::RadioButton _numeric_stacked; + Gtk::RadioButton _numeric_default_fractions; + Gtk::CheckButton _numeric_ordinal; + Gtk::CheckButton _numeric_slashed_zero; + +private: + void ligatures_init(); + void ligatures_callback(); + + void position_init(); + void position_callback(); + + void caps_init(); + void caps_callback(); + + void numeric_init(); + void numeric_callback(); + +public: + void update_recursive( SPObject *object ); + void update( unsigned all, unsigned mix ); + +}; + + +} // namespace Widget +} // namespace UI +} // namespace Inkscape + +#endif // INKSCAPE_UI_WIDGET_FONT_VARIANT_H + +/* + 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: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3 From 5f3d8bb9fbfefd83502fed2c8a7b2a2909a92059 Mon Sep 17 00:00:00 2001 From: su_v Date: Tue, 12 May 2015 22:23:05 +0200 Subject: cmake: fix build with new GUI for font-variant-xxx (r14148) (bzr r14149) --- src/ui/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 991d11feb..164d74156 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -122,6 +122,7 @@ set(ui_SRC widget/entity-entry.cpp widget/entry.cpp widget/filter-effect-chooser.cpp + widget/font-variants.cpp widget/frame.cpp widget/gimpcolorwheel.c widget/gimpspinscale.c @@ -295,6 +296,7 @@ set(ui_SRC widget/entity-entry.h widget/entry.h widget/filter-effect-chooser.h + widget/font-variants.h widget/frame.h widget/gimpspinscale.h widget/gimpcolorwheel.h -- cgit v1.2.3 From 4bd53e1e365fe78a674ee6ee0232f4a1d9b38dbf Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Wed, 13 May 2015 00:12:43 +0200 Subject: forgot a line; had weird consequences on filters (bzr r14150) --- src/selection.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/selection.cpp b/src/selection.cpp index 7979b5d61..77a507eec 100644 --- a/src/selection.cpp +++ b/src/selection.cpp @@ -125,6 +125,7 @@ Selection::_releaseContext(SPObject *obj) void Selection::_invalidateCachedLists() { _items.clear(); _reprs.clear(); + _objs_vector.clear(); } void Selection::_clear() { -- cgit v1.2.3 From 58e30b72b31f28383399da6726d926ec2b82f404 Mon Sep 17 00:00:00 2001 From: su_v Date: Wed, 13 May 2015 01:30:36 +0200 Subject: Fix make check (bzr r14151) --- po/POTFILES.in | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 9f301ac22..598e7b3c0 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,6 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -# Generated by ./generate_POTFILES.sh at Mon Mar 2 15:01:56 CET 2015 +# Generated by ./generate_POTFILES.sh at Wed May 13 01:27:09 CEST 2015 [encoding: UTF-8] inkscape.desktop.in share/filters/filters.svg.h @@ -300,6 +300,7 @@ src/ui/tools/tweak-tool.cpp src/ui/widget/combo-enums.h src/ui/widget/entity-entry.cpp src/ui/widget/filter-effect-chooser.cpp +src/ui/widget/font-variants.cpp src/ui/widget/layer-selector.cpp src/ui/widget/licensor.cpp src/ui/widget/object-composite-settings.cpp -- cgit v1.2.3 From ffd7534dc2d5d718dbc0720c17dda56f57fcd7ed Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Thu, 14 May 2015 07:24:57 +0200 Subject: Enable setting of 'font-variant-ligatures' (rendering waits on new Pango library). (bzr r14152) --- src/ui/dialog/text-edit.cpp | 5 ++++- src/ui/widget/font-variants.cpp | 28 ++++++++++++++++++++++++++++ src/ui/widget/font-variants.h | 3 ++- 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 98ea7f9f7..2726d979c 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -517,12 +517,15 @@ SPCSSAttr *TextEdit::fillTextStyle () sp_repr_css_set_property (css, "writing-mode", "tb"); } - // Note that CSS 1.1 does not support line-height; we set it for consistency, but also set + // Note that SVG 1.1 does not support line-height; we set it for consistency, but also set // sodipodi:linespacing for backwards compatibility; in 1.2 we use line-height for flowtext const gchar *sstr = gtk_combo_box_text_get_active_text ((GtkComboBoxText *) spacing_combo); sp_repr_css_set_property (css, "line-height", sstr); + // Font variants + vari_vbox.fill_css( css ); + return css; } diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp index 46fbc2aa4..7da7662e2 100644 --- a/src/ui/widget/font-variants.cpp +++ b/src/ui/widget/font-variants.cpp @@ -27,6 +27,7 @@ #include "sp-tref.h" #include "sp-textpath.h" #include "sp-item-group.h" +#include "xml/repr.h" namespace Inkscape { namespace UI { @@ -230,6 +231,33 @@ namespace Widget { _ligatures_contextual.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); } + void + FontVariants::fill_css( SPCSSAttr *css ) { + + // Ligatures + bool common = _ligatures_common.get_active(); + bool discretionary = _ligatures_discretionary.get_active(); + bool historical = _ligatures_historical.get_active(); + bool contextual = _ligatures_contextual.get_active(); + + if( !common && !discretionary && !historical && !contextual ) { + sp_repr_css_set_property(css, "font-variant-ligatures", "none" ); + } else if ( common && !discretionary && !historical && contextual ) { + sp_repr_css_set_property(css, "font-variant-ligatures", "normal" ); + } else { + Glib::ustring css_string; + if ( !common ) + css_string += "no-common-ligatures "; + if ( discretionary ) + css_string += "discretionary-ligatures "; + if ( historical ) + css_string += "historical-ligatures "; + if ( !contextual ) + css_string += "no-contextual "; + sp_repr_css_set_property(css, "font-variant-ligatures", css_string.c_str() ); + } + } + } // namespace Widget } // namespace UI } // namespace Inkscape diff --git a/src/ui/widget/font-variants.h b/src/ui/widget/font-variants.h index bef14c4bd..f58b80f34 100644 --- a/src/ui/widget/font-variants.h +++ b/src/ui/widget/font-variants.h @@ -18,6 +18,7 @@ class SPDesktop; class SPObject; +class SPCSSAttr; namespace Inkscape { namespace UI { @@ -95,9 +96,9 @@ private: void numeric_callback(); public: - void update_recursive( SPObject *object ); void update( unsigned all, unsigned mix ); + void fill_css( SPCSSAttr* css ); }; -- cgit v1.2.3 From 188d2565925f2d015fd138e87c5e80e29085dcee Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Thu, 14 May 2015 07:31:23 -0400 Subject: extensions. layout_nup. convert units. (Bug 1453982) Fixed bugs: - https://launchpad.net/bugs/1453982 (bzr r14153) --- share/extensions/layout_nup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/extensions/layout_nup.py b/share/extensions/layout_nup.py index 20532f72a..266a3950d 100755 --- a/share/extensions/layout_nup.py +++ b/share/extensions/layout_nup.py @@ -106,7 +106,7 @@ class Nup(inkex.Effect): if len(x) != length: raise Exception("expandTuple: requires 2 or 4 item tuple") try: - return tuple(map(lambda ev: (self.unittouu(str(eval(str(ev)))+unit)), x)) + return tuple(map(lambda ev: (self.unittouu(str(eval(str(ev)))+unit)/self.unittouu('1px')), x)) except: return None -- cgit v1.2.3 From daec8c4d4ce32a2452bbcb783150eda8839d5c0c Mon Sep 17 00:00:00 2001 From: Janis Eisaks Date: Fri, 15 May 2015 11:30:33 +0300 Subject: Latvian translation update (bzr r14154) --- po/lv.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/lv.po b/po/lv.po index 8d6e1e11c..1b9553f16 100644 --- a/po/lv.po +++ b/po/lv.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2015-03-10 09:10+0100\n" -"PO-Revision-Date: 2015-03-22 14:04+0200\n" +"PO-Revision-Date: 2015-04-26 17:15+0200\n" "Last-Translator: JÄnis Eisaks \n" "Language-Team: Latvian \n" "Language: lv\n" -- cgit v1.2.3 From ddf9853ed86846c5cc4e22a1ede31dafcda5c99d Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sat, 16 May 2015 14:50:10 +0200 Subject: Enable setting of 'font-variant-position' and 'font-variant-caps'. Rendering awaits Pango update. (bzr r14155) --- src/desktop-style.cpp | 37 ++++++++++-- src/style-enums.h | 24 ++++---- src/style-internal.cpp | 5 +- src/style-test.h | 8 ++- src/ui/dialog/text-edit.cpp | 2 +- src/ui/widget/font-variants.cpp | 121 ++++++++++++++++++++++++++++++++++++---- src/ui/widget/font-variants.h | 19 ++++++- 7 files changed, 183 insertions(+), 33 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 118f983bb..f25ce8fa8 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -1176,10 +1176,19 @@ objects_query_fontvariants (const std::vector &objects, SPStyle *style_ int texts = 0; SPILigatures* ligatures_res = &(style_res->font_variant_ligatures); - ligatures_res->computed = - SP_CSS_FONT_VARIANT_LIGATURES_COMMON | - SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL; + SPIEnum* position_res = &(style_res->font_variant_position); + SPIEnum* caps_res = &(style_res->font_variant_caps); + + // Stores 'and' of all values + ligatures_res->computed = SP_CSS_FONT_VARIANT_LIGATURES_NORMAL; + position_res->computed = SP_CSS_FONT_VARIANT_POSITION_NORMAL; + caps_res->computed = SP_CSS_FONT_VARIANT_CAPS_NORMAL; + + // Stores only differences ligatures_res->value = 0; + position_res->value = 0; + caps_res->value = 0; + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = *i; @@ -1195,20 +1204,36 @@ objects_query_fontvariants (const std::vector &objects, SPStyle *style_ texts ++; SPILigatures* ligatures_in = &(style->font_variant_ligatures); + SPIEnum* position_in = &(style->font_variant_position); + SPIEnum* caps_in = &(style->font_variant_caps); // computed stores which bits are on/off, only valid if same between all selected objects. // value stores which bits are different between objects. This is a bit of an abuse of // the values but then we don't need to add new variables to class. if (set) { ligatures_res->value |= (ligatures_res->computed ^ ligatures_in->computed ); ligatures_res->computed &= ligatures_in->computed; + + position_res->value |= (position_res->computed ^ position_in->computed ); + position_res->computed &= position_in->computed; + + caps_res->value |= (caps_res->computed ^ caps_in->computed ); + caps_res->computed &= caps_in->computed; + } else { - set = true; ligatures_res->computed = ligatures_in->computed; + position_res->computed = position_in->computed; + caps_res->computed = caps_in->computed; } + + set = true; } - bool different = (style_res->font_variant_position.value != - style_res->font_variant_position.computed ); + bool different = (style_res->font_variant_ligatures.value != + style_res->font_variant_ligatures.computed || + style_res->font_variant_position.value != + style_res->font_variant_position.computed || + style_res->font_variant_caps.value != + style_res->font_variant_caps.computed ); if (texts == 0 || !set) return QUERY_STYLE_NOTHING; diff --git a/src/style-enums.h b/src/style-enums.h index 36eab216d..dca7e246d 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -79,6 +79,7 @@ enum SPCSSFontVariantLigatures { SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY = 2, SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL = 4, SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL = 8, + SP_CSS_FONT_VARIANT_LIGATURES_NORMAL = 9, // Special case SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON = 16, SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY = 32, SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL = 64, @@ -86,19 +87,19 @@ enum SPCSSFontVariantLigatures { }; enum SPCSSFontVariantPosition { - SP_CSS_FONT_VARIANT_POSITION_NORMAL, - SP_CSS_FONT_VARIANT_POSITION_SUB, - SP_CSS_FONT_VARIANT_POSITION_SUPER + SP_CSS_FONT_VARIANT_POSITION_NORMAL = 1, + SP_CSS_FONT_VARIANT_POSITION_SUB = 2, + SP_CSS_FONT_VARIANT_POSITION_SUPER = 4 }; 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, + SP_CSS_FONT_VARIANT_CAPS_NORMAL = 1, + SP_CSS_FONT_VARIANT_CAPS_SMALL = 2, + SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL = 4, + SP_CSS_FONT_VARIANT_CAPS_PETITE = 8, + SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE = 16, + SP_CSS_FONT_VARIANT_CAPS_UNICASE = 32, + SP_CSS_FONT_VARIANT_CAPS_TITLING = 64 }; // Can select more than one (see spec) @@ -381,6 +382,7 @@ static SPStyleEnum const enum_font_variant_ligatures[] = { {"discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY}, {"historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL}, {"contextual", SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL}, + {"normal", SP_CSS_FONT_VARIANT_LIGATURES_NORMAL}, {"no-common-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOCOMMON}, {"no-discretionary-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NODISCRETIONARY}, {"no-historical-ligatures", SP_CSS_FONT_VARIANT_LIGATURES_NOHISTORICAL}, @@ -400,7 +402,7 @@ static SPStyleEnum const enum_font_variant_caps[] = { {"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}, + {"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} diff --git a/src/style-internal.cpp b/src/style-internal.cpp index 7f6f6400d..3b76e5ab1 100644 --- a/src/style-internal.cpp +++ b/src/style-internal.cpp @@ -726,7 +726,7 @@ SPILigatures::read( gchar const *str ) { if( !str ) return; - value = SP_CSS_FONT_VARIANT_LIGATURES_COMMON | SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL; + value = SP_CSS_FONT_VARIANT_LIGATURES_NORMAL; if( !strcmp(str, "inherit") ) { set = true; inherit = true; @@ -775,8 +775,7 @@ SPILigatures::write( guint const flags, SPIBase const *const base) const { if (value == SP_CSS_FONT_VARIANT_LIGATURES_NONE ) { return (name + ":none;"); } - if (value == (SP_CSS_FONT_VARIANT_LIGATURES_COMMON + - SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL) ) { + if (value == SP_CSS_FONT_VARIANT_LIGATURES_NORMAL ) { return (name + ":normal;"); } diff --git a/src/style-test.h b/src/style-test.h index fec0da0f8..1d821312b 100644 --- a/src/style-test.h +++ b/src/style-test.h @@ -147,7 +147,13 @@ public: TestCase("font-variant-ligatures:contextual", "font-variant-ligatures:normal"), TestCase("font-variant-ligatures:no-common-ligatures historical-ligatures"), TestCase("font-variant-ligatures:historical-ligatures no-contextual"), - + TestCase("font-variant-position:normal"), + TestCase("font-variant-position:sub"), + TestCase("font-variant-position:super"), + TestCase("font-variant-caps:normal"), + TestCase("font-variant-caps:small-caps"), + TestCase("font-variant-caps:all-small-caps"), + // Should be moved down TestCase("text-indent:12em"), // SPILength? TestCase("text-align:center"), // SPIEnum diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 2726d979c..4fd227f01 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -389,7 +389,7 @@ void TextEdit::onReadSelection ( gboolean dostyle, gboolean /*docontent*/ ) // Update font variant widget //int result_variants = sp_desktop_query_style (SP_ACTIVE_DESKTOP, &query, QUERY_STYLE_PROPERTY_FONTVARIANTS); - vari_vbox.update( query.font_variant_ligatures.computed, query.font_variant_ligatures.value ); + vari_vbox.update( &query ); } blocked = false; diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp index 7da7662e2..8ca926d8f 100644 --- a/src/ui/widget/font-variants.cpp +++ b/src/ui/widget/font-variants.cpp @@ -66,8 +66,12 @@ namespace Widget { _numeric_stacked ( Glib::ustring(_("Stacked" )) ), _numeric_default_fractions( Glib::ustring(_("Default Fractions")) ), _numeric_ordinal ( Glib::ustring(_("Ordinal" )) ), - _numeric_slashed_zero ( Glib::ustring(_("Slashed Zero" )) ) + _numeric_slashed_zero ( Glib::ustring(_("Slashed Zero" )) ), + _ligatures_changed( false ), + _position_changed( false ), + _caps_changed( false ), + _numeric_changed( false ) { @@ -183,6 +187,7 @@ namespace Widget { void FontVariants::ligatures_callback() { // std::cout << "FontVariants::ligatures_callback()" << std::endl; + _ligatures_changed = true; } void @@ -193,6 +198,7 @@ namespace Widget { void FontVariants::position_callback() { // std::cout << "FontVariants::position_callback()" << std::endl; + _position_changed = true; } void @@ -203,6 +209,7 @@ namespace Widget { void FontVariants::caps_callback() { // std::cout << "FontVariants::caps_callback()" << std::endl; + _caps_changed = true; } void @@ -214,21 +221,61 @@ namespace Widget { void FontVariants::numeric_callback() { // std::cout << "FontVariants::numeric_callback()" << std::endl; + _numeric_changed = true; } + // Update GUI based on query. void - FontVariants::update( unsigned all, unsigned mix ) { + FontVariants::update( SPStyle const *query ) { // std::cout << "FontVariants::update" << std::endl; - _ligatures_common.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); - _ligatures_discretionary.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); - _ligatures_historical.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); - _ligatures_contextual.set_active( all & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + _ligatures_all = query->font_variant_ligatures.computed; + _ligatures_mix = query->font_variant_ligatures.value; + + _ligatures_common.set_active( _ligatures_all & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); + _ligatures_discretionary.set_active(_ligatures_all & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); + _ligatures_historical.set_active( _ligatures_all & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); + _ligatures_contextual.set_active( _ligatures_all & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + + _ligatures_common.set_inconsistent( _ligatures_mix & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); + _ligatures_discretionary.set_inconsistent( _ligatures_mix & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); + _ligatures_historical.set_inconsistent( _ligatures_mix & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); + _ligatures_contextual.set_inconsistent( _ligatures_mix & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + + _position_all = query->font_variant_position.computed; + _position_mix = query->font_variant_position.value; - _ligatures_common.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_COMMON ); - _ligatures_discretionary.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_DISCRETIONARY ); - _ligatures_historical.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_HISTORICAL ); - _ligatures_contextual.set_inconsistent( mix & SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL ); + _position_normal.set_active( _position_all & SP_CSS_FONT_VARIANT_POSITION_NORMAL ); + _position_sub.set_active( _position_all & SP_CSS_FONT_VARIANT_POSITION_SUB ); + _position_super.set_active( _position_all & SP_CSS_FONT_VARIANT_POSITION_SUPER ); + + _position_normal.set_inconsistent( _position_mix & SP_CSS_FONT_VARIANT_POSITION_NORMAL ); + _position_sub.set_inconsistent( _position_mix & SP_CSS_FONT_VARIANT_POSITION_SUB ); + _position_super.set_inconsistent( _position_mix & SP_CSS_FONT_VARIANT_POSITION_SUPER ); + + unsigned _caps_all = query->font_variant_caps.computed; + unsigned _caps_mix = query->font_variant_caps.value; + + _caps_normal.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_NORMAL ); + _caps_small.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_SMALL ); + _caps_all_small.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL ); + _caps_petite.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_PETITE ); + _caps_all_petite.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE ); + _caps_unicase.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_UNICASE ); + _caps_titling.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_TITLING ); + + _caps_normal.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_NORMAL ); + _caps_small.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_SMALL ); + _caps_all_small.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL ); + _caps_petite.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_PETITE ); + _caps_all_petite.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE ); + _caps_unicase.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_UNICASE ); + _caps_titling.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_TITLING ); + + _ligatures_changed = false; + _position_changed = false; + _caps_changed = false; + _numeric_changed = false; } void @@ -256,6 +303,60 @@ namespace Widget { css_string += "no-contextual "; sp_repr_css_set_property(css, "font-variant-ligatures", css_string.c_str() ); } + + // Position + { + unsigned position_new = SP_CSS_FONT_VARIANT_POSITION_NORMAL; + Glib::ustring css_string; + if( _position_normal.get_active() ) { + css_string = "normal"; + } else if( _position_sub.get_active() ) { + css_string = "sub"; + position_new = SP_CSS_FONT_VARIANT_POSITION_SUB; + } else if( _position_super.get_active() ) { + css_string = "super"; + position_new = SP_CSS_FONT_VARIANT_POSITION_SUPER; + } + + // 'if' may not be necessary... need to test. + if( (_position_all != position_new) || ((_position_mix != 0) && _position_changed) ) { + sp_repr_css_set_property(css, "font-variant-position", css_string.c_str() ); + } + } + + // Caps + { + unsigned caps_new = SP_CSS_FONT_VARIANT_CAPS_NORMAL; + Glib::ustring css_string; + if( _caps_normal.get_active() ) { + css_string = "normal"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_NORMAL; + } else if( _caps_small.get_active() ) { + css_string = "small-caps"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_SMALL; + } else if( _caps_all_small.get_active() ) { + css_string = "all-small-caps"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_ALL_SMALL; + } else if( _caps_all_petite.get_active() ) { + css_string = "petite"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_PETITE; + } else if( _caps_all_petite.get_active() ) { + css_string = "all-petite"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_ALL_PETITE; + } else if( _caps_unicase.get_active() ) { + css_string = "unicase"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_UNICASE; + } else if( _caps_titling.get_active() ) { + css_string = "titling"; + caps_new = SP_CSS_FONT_VARIANT_CAPS_TITLING; + } + + // May not be necessary... need to test. + //if( (_caps_all != caps_new) || ((_caps_mix != 0) && _caps_changed) ) { + sp_repr_css_set_property(css, "font-variant-caps", css_string.c_str() ); + //} + } + } } // namespace Widget diff --git a/src/ui/widget/font-variants.h b/src/ui/widget/font-variants.h index f58b80f34..04c05d3c6 100644 --- a/src/ui/widget/font-variants.h +++ b/src/ui/widget/font-variants.h @@ -18,6 +18,7 @@ class SPDesktop; class SPObject; +class SPStyle; class SPCSSAttr; namespace Inkscape { @@ -95,8 +96,24 @@ private: void numeric_init(); void numeric_callback(); + // To determine if we need to write out property (may not be necessary) + unsigned _ligatures_all; + unsigned _position_all; + unsigned _caps_all; + unsigned _numeric_all; + + unsigned _ligatures_mix; + unsigned _position_mix; + unsigned _caps_mix; + unsigned _numeric_mix; + + bool _ligatures_changed; + bool _position_changed; + bool _caps_changed; + bool _numeric_changed; + public: - void update( unsigned all, unsigned mix ); + void update( SPStyle const *query ); void fill_css( SPCSSAttr* css ); }; -- cgit v1.2.3 From defc4244715d81258f9d91123ee36dce353c0230 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sat, 16 May 2015 15:18:06 +0200 Subject: Potential fix for 384688 (A linked offset to a text object is malformed...) Basically flip a flag to use a slower but more accurate offset method. (bzr r14156) --- src/sp-offset.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sp-offset.cpp b/src/sp-offset.cpp index 15d3821c7..e8aa09952 100644 --- a/src/sp-offset.cpp +++ b/src/sp-offset.cpp @@ -83,7 +83,7 @@ static void sp_offset_source_modified (SPObject *iSource, guint flags, SPItem *i // fast is not mathematically correct, because computing the offset of a single // cubic bezier patch is not trivial; in particular, there are problems with holes // reappearing in offset when the radius becomes too large -static bool use_slow_but_correct_offset_method=false; +static bool use_slow_but_correct_offset_method=true; SPOffset::SPOffset() : SPShape() { this->rad = 1.0; -- cgit v1.2.3 From 1b4a090d6df437cf9b6252d5d32fe407286f24b4 Mon Sep 17 00:00:00 2001 From: Janis Eisaks Date: Sat, 16 May 2015 21:16:26 +0300 Subject: Latvian translation update (bzr r14157) --- po/lv.po | 5052 ++++++++++++++++++++++++++++++++------------------------------ 1 file changed, 2596 insertions(+), 2456 deletions(-) diff --git a/po/lv.po b/po/lv.po index 1b9553f16..29d6c3833 100644 --- a/po/lv.po +++ b/po/lv.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: Inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" -"POT-Creation-Date: 2015-03-10 09:10+0100\n" -"PO-Revision-Date: 2015-04-26 17:15+0200\n" +"POT-Creation-Date: 2015-05-11 18:05+0200\n" +"PO-Revision-Date: 2015-05-16 21:13+0200\n" "Last-Translator: JÄnis Eisaks \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" -"X-Generator: Poedit 1.7.4\n" +"X-Generator: Poedit 1.7.6\n" "X-Poedit-SourceCharset: UTF-8\n" #: ../inkscape.desktop.in.h:1 @@ -3580,10 +3580,9 @@ msgstr "Izmantojot tÄlruni" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:139 -#, fuzzy msgctxt "Symbol" msgid "Hip Balloon" -msgstr "Hip-Hop" +msgstr "Jautrie baloni" #. Symbols: ./BalloonSymbols.svg #: ../share/symbols/symbols.h:140 @@ -3703,7 +3702,7 @@ msgstr "TieÅ¡saistes krÄtuve" #: ../share/symbols/symbols.h:159 msgctxt "Symbol" msgid "Keying" -msgstr "" +msgstr "KejoÅ¡ana" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:160 @@ -3725,10 +3724,9 @@ msgstr "Ä€rpuslapas savienotÄjs" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:163 -#, fuzzy msgctxt "Symbol" msgid "Transmittal Tape" -msgstr "LenÅ¡u iekÄrta" +msgstr "PÄrneses lenta" #. Symbols: ./FlowSymbols.svg #: ../share/symbols/symbols.h:164 @@ -3900,10 +3898,9 @@ msgstr "VelosipÄ“du celiņš" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:195 ../share/symbols/symbols.h:196 -#, fuzzy msgctxt "Symbol" msgid "Boat Launch" -msgstr "Palaist (A)" +msgstr "Laivu ielaiÅ¡ana" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:197 ../share/symbols/symbols.h:198 @@ -3933,7 +3930,7 @@ msgstr "Nometnes vieta" #: ../share/symbols/symbols.h:205 ../share/symbols/symbols.h:206 msgctxt "Symbol" msgid "CanoeAccess" -msgstr "" +msgstr "Laivu pietuvieta" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:207 ../share/symbols/symbols.h:208 @@ -4011,7 +4008,7 @@ msgstr "Atkritumu tvertne" #: ../share/symbols/symbols.h:235 ../share/symbols/symbols.h:236 msgctxt "Symbol" msgid "Lodging" -msgstr "" +msgstr "Gultasvieta" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:237 ../share/symbols/symbols.h:238 @@ -4063,10 +4060,9 @@ msgstr "KÄrtÄ«bnieka birojs" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:255 ../share/symbols/symbols.h:256 -#, fuzzy msgctxt "Symbol" msgid "RV Campground" -msgstr "Galu noapaļoÅ¡ana" +msgstr "Kempings kemperiem" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:257 ../share/symbols/symbols.h:258 @@ -4082,10 +4078,9 @@ msgstr "BurÄÅ¡ana" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:261 ../share/symbols/symbols.h:262 -#, fuzzy msgctxt "Symbol" msgid "Sanitary Disposal Station" -msgstr "NoklusÄ“tÄ kadru izmeÅ¡ana:" +msgstr "SanitÄrais pukts" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:263 ../share/symbols/symbols.h:264 @@ -4095,10 +4090,9 @@ msgstr "NirÅ¡ana" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:265 ../share/symbols/symbols.h:266 -#, fuzzy msgctxt "Symbol" msgid "Self Guided Trail" -msgstr "Aste:" +msgstr "Taka uz paÅ¡a atbildÄ«bu" #. Symbols: ./MapSymbolsNPS.svg #: ../share/symbols/symbols.h:267 ../share/symbols/symbols.h:268 @@ -4272,135 +4266,135 @@ msgstr "Nav iepriekšējÄs tÄlummaiņas." msgid "No next zoom." msgstr "Nav nÄkoÅ¡Äs tÄlummaiņas." -#: ../src/display/canvas-axonomgrid.cpp:361 ../src/display/canvas-grid.cpp:701 +#: ../src/display/canvas-axonomgrid.cpp:357 ../src/display/canvas-grid.cpp:697 msgid "Grid _units:" msgstr "TÄ«kla _vienÄ«bas" -#: ../src/display/canvas-axonomgrid.cpp:363 ../src/display/canvas-grid.cpp:703 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 msgid "_Origin X:" msgstr "SÄ_kums X:" -#: ../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 +#: ../src/display/canvas-axonomgrid.cpp:359 ../src/display/canvas-grid.cpp:699 ../src/ui/dialog/inkscape-preferences.cpp:746 ../src/ui/dialog/inkscape-preferences.cpp:771 msgid "X coordinate of grid origin" msgstr "Režģa sÄkuma X koordinÄte" -#: ../src/display/canvas-axonomgrid.cpp:366 ../src/display/canvas-grid.cpp:706 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 msgid "O_rigin Y:" msgstr "SÄku_ms Y:" -#: ../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 +#: ../src/display/canvas-axonomgrid.cpp:362 ../src/display/canvas-grid.cpp:702 ../src/ui/dialog/inkscape-preferences.cpp:747 ../src/ui/dialog/inkscape-preferences.cpp:772 msgid "Y coordinate of grid origin" msgstr "Režģa sÄkuma Y koordinÄte" -#: ../src/display/canvas-axonomgrid.cpp:369 ../src/display/canvas-grid.cpp:712 +#: ../src/display/canvas-axonomgrid.cpp:365 ../src/display/canvas-grid.cpp:708 msgid "Spacing _Y:" msgstr "Atstarpe _Y:" -#: ../src/display/canvas-axonomgrid.cpp:369 ../src/ui/dialog/inkscape-preferences.cpp:775 +#: ../src/display/canvas-axonomgrid.cpp:365 ../src/ui/dialog/inkscape-preferences.cpp:775 msgid "Base length of z-axis" msgstr "Z ass bÄzes garums" -#: ../src/display/canvas-axonomgrid.cpp:372 ../src/ui/dialog/inkscape-preferences.cpp:778 ../src/widgets/box3d-toolbar.cpp:302 +#: ../src/display/canvas-axonomgrid.cpp:368 ../src/ui/dialog/inkscape-preferences.cpp:778 ../src/widgets/box3d-toolbar.cpp:302 msgid "Angle X:" msgstr "Leņķis X:" -#: ../src/display/canvas-axonomgrid.cpp:372 ../src/ui/dialog/inkscape-preferences.cpp:778 +#: ../src/display/canvas-axonomgrid.cpp:368 ../src/ui/dialog/inkscape-preferences.cpp:778 msgid "Angle of x-axis" msgstr "X ass leņķis" -#: ../src/display/canvas-axonomgrid.cpp:374 ../src/ui/dialog/inkscape-preferences.cpp:779 ../src/widgets/box3d-toolbar.cpp:381 +#: ../src/display/canvas-axonomgrid.cpp:370 ../src/ui/dialog/inkscape-preferences.cpp:779 ../src/widgets/box3d-toolbar.cpp:381 msgid "Angle Z:" msgstr "Leņķis Z:" -#: ../src/display/canvas-axonomgrid.cpp:374 ../src/ui/dialog/inkscape-preferences.cpp:779 +#: ../src/display/canvas-axonomgrid.cpp:370 ../src/ui/dialog/inkscape-preferences.cpp:779 msgid "Angle of z-axis" msgstr "Z ass leņķis" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 msgid "Minor grid line _color:" msgstr "Režģa palÄ«glÄ«niju _krÄsa:" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 ../src/ui/dialog/inkscape-preferences.cpp:730 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 ../src/ui/dialog/inkscape-preferences.cpp:730 msgid "Minor grid line color" msgstr "Režģa palÄ«glÄ«niju krÄsa" -#: ../src/display/canvas-axonomgrid.cpp:378 ../src/display/canvas-grid.cpp:717 +#: ../src/display/canvas-axonomgrid.cpp:374 ../src/display/canvas-grid.cpp:713 msgid "Color of the minor grid lines" msgstr "Režģa palÄ«glÄ«niju krÄsa" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 msgid "Ma_jor grid line color:" msgstr "_Galveno režģa lÄ«niju krÄsa:" -#: ../src/display/canvas-axonomgrid.cpp:383 ../src/display/canvas-grid.cpp:722 ../src/ui/dialog/inkscape-preferences.cpp:732 +#: ../src/display/canvas-axonomgrid.cpp:379 ../src/display/canvas-grid.cpp:718 ../src/ui/dialog/inkscape-preferences.cpp:732 msgid "Major grid line color" msgstr "Režģa pamatlÄ«niju krÄsa" -#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 +#: ../src/display/canvas-axonomgrid.cpp:380 ../src/display/canvas-grid.cpp:719 msgid "Color of the major (highlighted) grid lines" msgstr "Režģa pamatlÄ«niju (izcelto) krÄsa" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "_Major grid line every:" msgstr "Režģa pa_matlÄ«nija ik pÄ“c:" -#: ../src/display/canvas-axonomgrid.cpp:388 ../src/display/canvas-grid.cpp:727 +#: ../src/display/canvas-axonomgrid.cpp:384 ../src/display/canvas-grid.cpp:723 msgid "lines" msgstr "rindas" -#: ../src/display/canvas-grid.cpp:64 +#: ../src/display/canvas-grid.cpp:60 msgid "Rectangular grid" msgstr "TaisnstÅ«rveida režģis" -#: ../src/display/canvas-grid.cpp:65 +#: ../src/display/canvas-grid.cpp:61 msgid "Axonometric grid" msgstr "Aksonometriskais režģis" -#: ../src/display/canvas-grid.cpp:250 +#: ../src/display/canvas-grid.cpp:246 msgid "Create new grid" msgstr "Izveidot jaunu režģi" -#: ../src/display/canvas-grid.cpp:316 +#: ../src/display/canvas-grid.cpp:312 msgid "_Enabled" msgstr "_AktivÄ“ts" -#: ../src/display/canvas-grid.cpp:317 +#: ../src/display/canvas-grid.cpp:313 msgid "Determines whether to snap to this grid or not. Can be 'on' for invisible grids." msgstr "Nosaka, vai pievilkt Å¡im režģim vai nÄ“. Var bÅ«t ieslÄ“gts arÄ« neredzamiem režģiem." -#: ../src/display/canvas-grid.cpp:321 +#: ../src/display/canvas-grid.cpp:317 msgid "Snap to visible _grid lines only" msgstr "Pievilkt tikai red_zamÄm režģa lÄ«nijÄm" -#: ../src/display/canvas-grid.cpp:322 +#: ../src/display/canvas-grid.cpp:318 msgid "When zoomed out, not all grid lines will be displayed. Only the visible ones will be snapped to" msgstr "TÄlinÄtÄ skatÄ visas režģa lÄ«nijas nebÅ«s redzamas. Piesaiste tiks veikta tikai redzamÄm lÄ«nijÄm" -#: ../src/display/canvas-grid.cpp:326 +#: ../src/display/canvas-grid.cpp:322 msgid "_Visible" msgstr "_Redzams" -#: ../src/display/canvas-grid.cpp:327 +#: ../src/display/canvas-grid.cpp:323 msgid "Determines whether the grid is displayed or not. Objects are still snapped to invisible grids." msgstr "Nosaka, vai režģis tiek rÄdÄ«ts vai nÄ“. Objekti joprojÄm tiks piesaistÄ«ti neredzamajam režģim." -#: ../src/display/canvas-grid.cpp:709 +#: ../src/display/canvas-grid.cpp:705 msgid "Spacing _X:" msgstr "Atstarpe _X:" -#: ../src/display/canvas-grid.cpp:709 ../src/ui/dialog/inkscape-preferences.cpp:752 +#: ../src/display/canvas-grid.cpp:705 ../src/ui/dialog/inkscape-preferences.cpp:752 msgid "Distance between vertical grid lines" msgstr "AttÄlums starp vertikÄlÄm režģa lÄ«nijÄm." -#: ../src/display/canvas-grid.cpp:712 ../src/ui/dialog/inkscape-preferences.cpp:753 +#: ../src/display/canvas-grid.cpp:708 ../src/ui/dialog/inkscape-preferences.cpp:753 msgid "Distance between horizontal grid lines" msgstr "AttÄlums starp horizontÄlÄm režģa lÄ«nijÄm." -#: ../src/display/canvas-grid.cpp:744 +#: ../src/display/canvas-grid.cpp:740 msgid "_Show dots instead of lines" msgstr "_LÄ«niju vietÄ rÄdÄ«t punktus " -#: ../src/display/canvas-grid.cpp:745 +#: ../src/display/canvas-grid.cpp:741 msgid "If set, displays dots at gridpoints instead of gridlines" msgstr "Ja iestatÄ«ts, režģa krustpunktos lÄ«niju vietÄ tiks rÄdÄ«ti punkti" @@ -4549,11 +4543,11 @@ msgstr "RobežrÄmja viduspunkts" msgid "Bounding box side midpoint" msgstr "RobežrÄmja malas viduspunkts" -#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1505 +#: ../src/display/snap-indicator.cpp:196 ../src/ui/tool/node.cpp:1506 msgid "Smooth node" msgstr "Gludais mezgls" -#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1504 +#: ../src/display/snap-indicator.cpp:199 ../src/ui/tool/node.cpp:1505 msgid "Cusp node" msgstr "Asais mezgls" @@ -4623,7 +4617,7 @@ msgstr "Atmiņas dokuments %d" msgid "Memory document %1" msgstr "Atmiņas dokuments %1" -#: ../src/document.cpp:855 +#: ../src/document.cpp:886 #, c-format msgid "Unnamed document %d" msgstr "Nenosaukts dokuments %d" @@ -4633,11 +4627,11 @@ msgid "[Unchanged]" msgstr "[NemainÄ«ts]" #. Edit -#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2465 +#: ../src/event-log.cpp:371 ../src/event-log.cpp:374 ../src/verbs.cpp:2434 msgid "_Undo" msgstr "_Atcelt" -#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2467 +#: ../src/event-log.cpp:381 ../src/event-log.cpp:385 ../src/verbs.cpp:2436 msgid "_Redo" msgstr "At_kÄrtot" @@ -4665,7 +4659,7 @@ msgstr " apraksts: " msgid " (No preferences)" msgstr " (Nav iestatÄ«jumu)" -#: ../src/extension/effect.h:70 ../src/verbs.cpp:2239 +#: ../src/extension/effect.h:70 ../src/verbs.cpp:2208 msgid "Extensions" msgstr "PaplaÅ¡inÄjumi" @@ -4685,84 +4679,84 @@ msgstr "" msgid "Show dialog on startup" msgstr "RÄdÄ«t dialogu starta laikÄ" -#: ../src/extension/execution-env.cpp:144 +#: ../src/extension/execution-env.cpp:138 #, c-format msgid "'%s' working, please wait..." msgstr "'%s' darbojas, lÅ«dzu, uzgaidiet..." #. static int i = 0; #. std::cout << "Checking module[" << i++ << "]: " << name << std::endl; -#: ../src/extension/extension.cpp:271 +#: ../src/extension/extension.cpp:267 msgid " This is caused by an improper .inx file for this extension. An improper .inx file could have been caused by a faulty installation of Inkscape." msgstr " TÄ cÄ“lonis ir nederÄ«ga datne ar paplaÅ¡inÄjumu .inx. NederÄ«ga .inx datne varÄ“tu bÅ«t kļūdainais Inkscape uzstÄdīšanas rezultÄts." -#: ../src/extension/extension.cpp:281 +#: ../src/extension/extension.cpp:277 msgid "the extension is designed for Windows only." msgstr "paplaÅ¡inÄjums ir izstrÄdÄts tikai lietoÅ¡anai Windows vidÄ“." -#: ../src/extension/extension.cpp:286 +#: ../src/extension/extension.cpp:282 msgid "an ID was not defined for it." msgstr "tam nav definÄ“ts ID." -#: ../src/extension/extension.cpp:290 +#: ../src/extension/extension.cpp:286 msgid "there was no name defined for it." msgstr "tam nav definÄ“ts nosaukums." -#: ../src/extension/extension.cpp:294 +#: ../src/extension/extension.cpp:290 msgid "the XML description of it got lost." msgstr "tÄ XML apraksts ir zudis." -#: ../src/extension/extension.cpp:298 +#: ../src/extension/extension.cpp:294 msgid "no implementation was defined for the extension." msgstr "paplaÅ¡inÄjumam nav noteikts pielietojums." #. std::cout << "Failed: " << *(_deps[i]) << std::endl; -#: ../src/extension/extension.cpp:305 +#: ../src/extension/extension.cpp:301 msgid "a dependency was not met." msgstr "nav izpildÄ«ta atkarÄ«bas prasÄ«ba." -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "Extension \"" msgstr "PaplaÅ¡inÄjums \"" -#: ../src/extension/extension.cpp:325 +#: ../src/extension/extension.cpp:321 msgid "\" failed to load because " msgstr "\" neizdevÄs ielÄdÄ“t, jo " -#: ../src/extension/extension.cpp:674 +#: ../src/extension/extension.cpp:670 #, c-format msgid "Could not create extension error log file '%s'" msgstr "Nav iespÄ“jams izveidot paplaÅ¡inÄjuma kļūdu žurnÄla datni '%s'" -#: ../src/extension/extension.cpp:782 ../share/extensions/webslicer_create_rect.inx.h:2 +#: ../src/extension/extension.cpp:778 ../share/extensions/webslicer_create_rect.inx.h:2 msgid "Name:" msgstr "Nosaukums:" -#: ../src/extension/extension.cpp:783 +#: ../src/extension/extension.cpp:779 msgid "ID:" msgstr "ID:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "State:" msgstr "StÄvoklis:" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Loaded" msgstr "IelÄdÄ“ts" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Unloaded" msgstr "AizvÄkts no atmiņas" -#: ../src/extension/extension.cpp:784 +#: ../src/extension/extension.cpp:780 msgid "Deactivated" msgstr "DeaktivÄ“ts" -#: ../src/extension/extension.cpp:824 +#: ../src/extension/extension.cpp:820 msgid "Currently there is no help available for this Extension. Please look on the Inkscape website or ask on the mailing lists if you have questions regarding this extension." msgstr "Å obrÄ«d palÄ«dzÄ«ba par Å¡o paplaÅ¡inÄjumu nav pieejama. ApmeklÄ“jiet Inkscape mÄjas lapu vai jautÄjiet vÄ“stuļu kopÄs, ja Jums ir jautÄjumi par Å¡o paplaÅ¡inÄjumu." -#: ../src/extension/implementation/script.cpp:1057 +#: ../src/extension/implementation/script.cpp:1063 msgid "Inkscape has received additional data from the script executed. The script did not return an error, but this may indicate the results will not be as expected." msgstr "Inkscape ir saņēmusi papildu datus no izpildÄ«tÄ skripta. Skripts nav nodevis kļūdas paziņojumu, taÄu tas var nozÄ«mÄ“t, ka rezultÄti var nebÅ«t gaidÄ«tie." @@ -4779,14 +4773,14 @@ msgstr "Moduļu mape (%s) nav pieejama. Ä€rÄ“jie moduļi no šī mapes netiks i msgid "Adaptive Threshold" msgstr "PielÄgojamais slieksnis" -#: ../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 +#: ../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:136 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 ../src/ui/dialog/object-attributes.cpp:68 ../src/ui/dialog/object-attributes.cpp:77 ../src/ui/widget/page-sizer.cpp:249 ../src/widgets/calligraphy-toolbar.cpp:430 +#: ../src/widgets/eraser-toolbar.cpp:128 ../src/widgets/spray-toolbar.cpp:116 ../src/widgets/tweak-toolbar.cpp:128 ../share/extensions/foldablebox.inx.h:2 msgid "Width:" msgstr "Platums:" #: ../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 +#: ../src/ui/widget/page-sizer.cpp:250 ../share/extensions/foldablebox.inx.h:3 msgid "Height:" msgstr "Augstums:" @@ -4816,7 +4810,7 @@ msgstr "Pievienot troksni" #. _settings->add_checkbutton(false, SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch"); #: ../src/extension/internal/bitmap/addNoise.cpp:47 ../src/extension/internal/filter/color.h:501 ../src/extension/internal/filter/color.h:1572 ../src/extension/internal/filter/color.h:1660 ../src/extension/internal/filter/distort.h:69 -#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 ../src/ui/dialog/filter-effects-dialog.cpp:2842 ../src/ui/dialog/filter-effects-dialog.cpp:2916 ../src/ui/dialog/object-attributes.cpp:49 +#: ../src/extension/internal/filter/morphology.h:60 ../src/rdf.cpp:244 ../src/ui/dialog/filter-effects-dialog.cpp:2858 ../src/ui/dialog/filter-effects-dialog.cpp:2932 ../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 "Tips:" @@ -4854,7 +4848,7 @@ msgid "Blur" msgstr "AizmigloÅ¡ana" #: ../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 +#: ../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:2910 msgid "Radius:" msgstr "RÄdiuss:" @@ -5128,7 +5122,7 @@ msgstr "StilizÄ“t atlasÄ«to(-Äs) bitkarti(-es), lai tÄs izskatÄ«tos kÄ glezno msgid "Opacity" msgstr "NecaurspÄ«dÄ«ba" -#: ../src/extension/internal/bitmap/opacity.cpp:40 ../src/ui/dialog/filter-effects-dialog.cpp:2884 ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 +#: ../src/extension/internal/bitmap/opacity.cpp:40 ../src/ui/dialog/filter-effects-dialog.cpp:2900 ../src/ui/dialog/objects.cpp:1619 ../src/widgets/dropper-toolbar.cpp:83 msgid "Opacity:" msgstr "NecaurspÄ«dÄ«ba:" @@ -5221,7 +5215,7 @@ msgstr "Savirpuļot atlasÄ«to(-Äs) bitkarti(-es) ap centru" msgid "Threshold" msgstr "Slieksnis" -#: ../src/extension/internal/bitmap/threshold.cpp:40 ../src/extension/internal/bitmap/unsharpmask.cpp:46 ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/extension/internal/bitmap/threshold.cpp:40 ../src/extension/internal/bitmap/unsharpmask.cpp:46 ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Threshold:" msgstr "Slieksnis:" @@ -5253,23 +5247,23 @@ msgstr "Viļņa garums:" msgid "Alter selected bitmap(s) along sine wave" msgstr "SinusoidÄli mainÄ«t atlasÄ«to(-Äs) bitkarti(-es) " -#: ../src/extension/internal/bluredge.cpp:136 +#: ../src/extension/internal/bluredge.cpp:134 msgid "Inset/Outset Halo" msgstr "PalielinÄt/samazinÄt oreolu" -#: ../src/extension/internal/bluredge.cpp:138 +#: ../src/extension/internal/bluredge.cpp:136 msgid "Width in px of the halo" msgstr "Oreola platums pikseļos" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of steps:" msgstr "Soļu skaits:" -#: ../src/extension/internal/bluredge.cpp:139 +#: ../src/extension/internal/bluredge.cpp:137 msgid "Number of inset/outset copies of the object to make" msgstr "Izveidojamais objekta saÄ«sinÄto/pagarinÄto kopiju skaits" -#: ../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 +#: ../src/extension/internal/bluredge.cpp:141 ../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 "Veidot no ceļa" @@ -5305,7 +5299,7 @@ msgstr "PÄrvÄ“rst tekstu par ceļiem" #: ../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 "Izlaist PDF esoÅ¡o tekstu un izveidot LaTeX datni" +msgstr "Izlaist PDF esoÅ¡o tekstu un izveidot LaTeX failu" #: ../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" @@ -5437,71 +5431,71 @@ msgstr "Corel DRAW Presentation Exchange datnes (.cmx)" msgid "Open presentation exchange files saved in Corel DRAW" msgstr "Atver Corel DRAW saglabÄtos Presentation Exchange datnes" -#: ../src/extension/internal/emf-inout.cpp:3562 +#: ../src/extension/internal/emf-inout.cpp:3584 msgid "EMF Input" msgstr "EMF ievade" -#: ../src/extension/internal/emf-inout.cpp:3567 +#: ../src/extension/internal/emf-inout.cpp:3589 msgid "Enhanced Metafiles (*.emf)" msgstr "Enhanced Metafile (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3568 +#: ../src/extension/internal/emf-inout.cpp:3590 msgid "Enhanced Metafiles" msgstr "Enhanced metafaili" -#: ../src/extension/internal/emf-inout.cpp:3576 +#: ../src/extension/internal/emf-inout.cpp:3598 msgid "EMF Output" msgstr "EMF izvade" -#: ../src/extension/internal/emf-inout.cpp:3578 ../src/extension/internal/wmf-inout.cpp:3152 +#: ../src/extension/internal/emf-inout.cpp:3600 ../src/extension/internal/wmf-inout.cpp:3174 msgid "Convert texts to paths" msgstr "PÄrvÄ“rst tekstus par ceļiem" -#: ../src/extension/internal/emf-inout.cpp:3579 ../src/extension/internal/wmf-inout.cpp:3153 +#: ../src/extension/internal/emf-inout.cpp:3601 ../src/extension/internal/wmf-inout.cpp:3175 msgid "Map Unicode to Symbol font" msgstr "KartÄ“t Unicode pret Symbol fontu" -#: ../src/extension/internal/emf-inout.cpp:3580 ../src/extension/internal/wmf-inout.cpp:3154 +#: ../src/extension/internal/emf-inout.cpp:3602 ../src/extension/internal/wmf-inout.cpp:3176 msgid "Map Unicode to Wingdings" msgstr "KartÄ“t Unicode pret Wingdings" -#: ../src/extension/internal/emf-inout.cpp:3581 ../src/extension/internal/wmf-inout.cpp:3155 +#: ../src/extension/internal/emf-inout.cpp:3603 ../src/extension/internal/wmf-inout.cpp:3177 msgid "Map Unicode to Zapf Dingbats" msgstr "KartÄ“t Unicode pret Zapf Dingbats" -#: ../src/extension/internal/emf-inout.cpp:3582 ../src/extension/internal/wmf-inout.cpp:3156 +#: ../src/extension/internal/emf-inout.cpp:3604 ../src/extension/internal/wmf-inout.cpp:3178 msgid "Use MS Unicode PUA (0xF020-0xF0FF) for converted characters" msgstr "Lietot MS Unicode PUA (0xF020-0xF0FF) pÄrvÄ“rstajÄm rakstzÄ«mÄ“m" -#: ../src/extension/internal/emf-inout.cpp:3583 ../src/extension/internal/wmf-inout.cpp:3157 +#: ../src/extension/internal/emf-inout.cpp:3605 ../src/extension/internal/wmf-inout.cpp:3179 msgid "Compensate for PPT font bug" msgstr "KompensÄ“t PPT fontu kļūdu" -#: ../src/extension/internal/emf-inout.cpp:3584 ../src/extension/internal/wmf-inout.cpp:3158 +#: ../src/extension/internal/emf-inout.cpp:3606 ../src/extension/internal/wmf-inout.cpp:3180 msgid "Convert dashed/dotted lines to single lines" msgstr "PÄrvÄ“st raustÄ«tas/punktÄ“tas lÄ«nijas par atsevišķÄm lÄ«nijam" -#: ../src/extension/internal/emf-inout.cpp:3585 ../src/extension/internal/wmf-inout.cpp:3159 +#: ../src/extension/internal/emf-inout.cpp:3607 ../src/extension/internal/wmf-inout.cpp:3181 msgid "Convert gradients to colored polygon series" msgstr "PÄrvÄ“rst krÄsu pÄrejas krÄsas izkrÄsotu daudzstÅ«ru rindÄs" -#: ../src/extension/internal/emf-inout.cpp:3586 +#: ../src/extension/internal/emf-inout.cpp:3608 msgid "Use native rectangular linear gradients" msgstr "Izmantot iebÅ«vÄ“tÄs taisnstÅ«rainas lineÄrÄs krÄsu pÄrejas" -#: ../src/extension/internal/emf-inout.cpp:3587 +#: ../src/extension/internal/emf-inout.cpp:3609 msgid "Map all fill patterns to standard EMF hatches" msgstr "KartÄ“t visas aizpildÄ«juma faktÅ«ras pret standarta EMF iesvÄ«trojumiem" -#: ../src/extension/internal/emf-inout.cpp:3588 +#: ../src/extension/internal/emf-inout.cpp:3610 msgid "Ignore image rotations" msgstr "Neņemt vÄ“rÄ attÄ“la grieÅ¡anu" -#: ../src/extension/internal/emf-inout.cpp:3592 +#: ../src/extension/internal/emf-inout.cpp:3614 msgid "Enhanced Metafile (*.emf)" msgstr "Enhanced Metafile (*.emf)" -#: ../src/extension/internal/emf-inout.cpp:3593 +#: ../src/extension/internal/emf-inout.cpp:3615 msgid "Enhanced Metafile" msgstr "Enhanced metafails" @@ -5531,7 +5525,7 @@ msgstr "Gaismas krÄsa" #: ../src/extension/internal/filter/color.h:511 ../src/extension/internal/filter/color.h:606 ../src/extension/internal/filter/color.h:728 ../src/extension/internal/filter/color.h:825 ../src/extension/internal/filter/color.h:904 #: ../src/extension/internal/filter/color.h:995 ../src/extension/internal/filter/color.h:1123 ../src/extension/internal/filter/color.h:1193 ../src/extension/internal/filter/color.h:1286 ../src/extension/internal/filter/color.h:1398 #: ../src/extension/internal/filter/color.h:1503 ../src/extension/internal/filter/color.h:1579 ../src/extension/internal/filter/color.h:1690 ../src/extension/internal/filter/distort.h:95 ../src/extension/internal/filter/distort.h:204 -#: ../src/extension/internal/filter/filter-file.cpp:151 ../src/extension/internal/filter/filter.cpp:214 ../src/extension/internal/filter/image.h:61 ../src/extension/internal/filter/morphology.h:75 +#: ../src/extension/internal/filter/filter-file.cpp:151 ../src/extension/internal/filter/filter.cpp:212 ../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 @@ -5690,17 +5684,17 @@ msgid "Bump source" msgstr "Reljefa avots" #: ../src/extension/internal/filter/bumps.h:88 ../src/extension/internal/filter/bumps.h:317 ../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:183 ../src/widgets/sp-color-icc-selector.cpp:330 ../src/widgets/sp-color-scales.cpp:415 ../src/widgets/sp-color-scales.cpp:416 +#: ../src/extension/internal/filter/transparency.h:132 ../src/filter-enums.cpp:128 ../src/ui/tools/flood-tool.cpp:91 ../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 "Sarkans" #: ../src/extension/internal/filter/bumps.h:89 ../src/extension/internal/filter/bumps.h:318 ../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:184 ../src/widgets/sp-color-icc-selector.cpp:331 ../src/widgets/sp-color-scales.cpp:418 ../src/widgets/sp-color-scales.cpp:419 +#: ../src/extension/internal/filter/transparency.h:133 ../src/filter-enums.cpp:129 ../src/ui/tools/flood-tool.cpp:92 ../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 "Zaļš" #: ../src/extension/internal/filter/bumps.h:90 ../src/extension/internal/filter/bumps.h:319 ../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:185 ../src/widgets/sp-color-icc-selector.cpp:332 ../src/widgets/sp-color-scales.cpp:421 ../src/widgets/sp-color-scales.cpp:422 +#: ../src/extension/internal/filter/transparency.h:134 ../src/filter-enums.cpp:130 ../src/ui/tools/flood-tool.cpp:93 ../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 "Zils" @@ -5720,12 +5714,13 @@ msgstr "AtspÄ«dums" msgid "Diffuse" msgstr "IzkliedÄ“t" -#: ../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:334 ../share/extensions/interp_att_g.inx.h:11 +#: ../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/ui/widget/page-sizer.cpp:250 ../src/widgets/rect-toolbar.cpp:334 +#: ../share/extensions/interp_att_g.inx.h:11 msgid "Height" msgstr "Augstums" #: ../src/extension/internal/filter/bumps.h:99 ../src/extension/internal/filter/bumps.h:330 ../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:188 ../src/widgets/sp-color-icc-selector.cpp:341 +#: ../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:96 ../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 "GaiÅ¡ums" @@ -5758,11 +5753,11 @@ msgstr "Vieta" msgid "Distant light options" msgstr "AttÄla gaismas avota papildiespÄ“jas" -#: ../src/extension/internal/filter/bumps.h:110 ../src/extension/internal/filter/bumps.h:332 ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/extension/internal/filter/bumps.h:110 ../src/extension/internal/filter/bumps.h:332 ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Azimuth" msgstr "Azimuts" -#: ../src/extension/internal/filter/bumps.h:111 ../src/extension/internal/filter/bumps.h:333 ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/extension/internal/filter/bumps.h:111 ../src/extension/internal/filter/bumps.h:333 ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Elevation" msgstr "PacÄ“lums" @@ -5896,12 +5891,12 @@ msgid "Channel Painting" msgstr "KanÄlu krÄsosana" #: ../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: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 +#: ../src/ui/tools/flood-tool.cpp:95 ../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 "PiesÄtinÄjums" -#: ../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:189 +#: ../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:97 msgid "Alpha" msgstr "Alfa" @@ -5911,11 +5906,11 @@ msgstr "Aizvietot RGB ar jebkuru krÄsu" #: ../src/extension/internal/filter/color.h:254 msgid "Color Blindness" -msgstr "" +msgstr "KrÄsu aklums" #: ../src/extension/internal/filter/color.h:258 msgid "Blindness type:" -msgstr "" +msgstr "Akluma tips:" #: ../src/extension/internal/filter/color.h:259 msgid "Rod monochromacy (atypical achromatopsia)" @@ -5926,7 +5921,7 @@ msgid "Cone monochromacy (typical achromatopsia)" msgstr "" #: ../src/extension/internal/filter/color.h:261 -msgid "Geen weak (deuteranomaly)" +msgid "Green weak (deuteranomaly)" msgstr "" #: ../src/extension/internal/filter/color.h:262 @@ -5951,7 +5946,7 @@ msgstr "" #: ../src/extension/internal/filter/color.h:286 msgid "Simulate color blindness" -msgstr "SimulÄ“t krÄsu aklumu" +msgstr "AtdarinÄt krÄsu aklumu" #: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" @@ -5997,11 +5992,11 @@ msgstr "SastÄvdaļu pÄrnese" msgid "Identity" msgstr "IdentitÄte" -#: ../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 +#: ../src/extension/internal/filter/color.h:503 ../src/extension/internal/filter/paint.h:498 ../src/filter-enums.cpp:111 ../src/ui/dialog/filter-effects-dialog.cpp:1051 msgid "Table" msgstr "Tabula" -#: ../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 +#: ../src/extension/internal/filter/color.h:504 ../src/extension/internal/filter/paint.h:499 ../src/filter-enums.cpp:112 ../src/ui/dialog/filter-effects-dialog.cpp:1054 msgid "Discrete" msgstr "Atsevišķs" @@ -6169,8 +6164,8 @@ msgstr "Gaismas" msgid "Shadows" msgstr "Ä’nas" -#: ../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:1159 +#: ../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:1048 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset" msgstr "NobÄ«de" @@ -6195,12 +6190,12 @@ msgid "Red offset" msgstr "SarkanÄ nobÄ«de" #: ../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 +#: ../src/extension/internal/filter/color.h:1388 ../src/ui/dialog/input.cpp:1616 ../src/ui/dialog/layers.cpp:925 ../src/ui/widget/page-sizer.cpp:247 msgid "X" msgstr "X" #: ../src/extension/internal/filter/color.h:1271 ../src/extension/internal/filter/color.h:1274 ../src/extension/internal/filter/color.h:1277 ../src/extension/internal/filter/color.h:1383 ../src/extension/internal/filter/color.h:1386 -#: ../src/extension/internal/filter/color.h:1389 ../src/ui/dialog/input.cpp:1616 +#: ../src/extension/internal/filter/color.h:1389 ../src/ui/dialog/input.cpp:1616 ../src/ui/widget/page-sizer.cpp:248 msgid "Y" msgstr "Y" @@ -6441,8 +6436,8 @@ msgstr "Ä€rÄ“js" msgid "Open" msgstr "AtvÄ“rt" -#: ../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:317 ../src/widgets/spray-toolbar.cpp:116 ../src/widgets/tweak-toolbar.cpp:128 -#: ../share/extensions/interp_att_g.inx.h:10 +#: ../src/extension/internal/filter/morphology.h:65 ../src/libgdl/gdl-dock-placeholder.c:167 ../src/libgdl/gdl-dock.c:191 ../src/ui/widget/page-sizer.cpp:249 ../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" msgstr "Platums" @@ -6482,7 +6477,7 @@ msgstr "PÄri" msgid "XOR" msgstr "XOR" -#: ../src/extension/internal/filter/morphology.h:179 ../src/ui/dialog/layer-properties.cpp:185 ../src/ui/dialog/lpe-powerstroke-properties.cpp:59 +#: ../src/extension/internal/filter/morphology.h:179 ../src/ui/dialog/layer-properties.cpp:185 ../src/ui/dialog/lpe-powerstroke-properties.cpp:55 msgid "Position:" msgstr "PozÄ«cija:" @@ -6639,13 +6634,13 @@ msgstr "Garums" msgid "Convert image to an engraving made of vertical and horizontal lines" msgstr "PÄrvÄ“rst attÄ“lu par gravÄ«ru, kas sastÄv no vertikÄlÄm un horizontÄlÄm lÄ«nijÄm" -#: ../src/extension/internal/filter/paint.h:331 ../src/ui/dialog/align-and-distribute.cpp:1003 ../src/widgets/desktop-widget.cpp:1996 +#: ../src/extension/internal/filter/paint.h:331 ../src/ui/dialog/align-and-distribute.cpp:999 ../src/widgets/desktop-widget.cpp:1998 msgid "Drawing" msgstr "ZÄ«mÄ“jums" #. 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 +#: ../src/splivarot.cpp:2201 msgid "Simplify" msgstr "VienkÄrÅ¡ot" @@ -6913,7 +6908,7 @@ msgstr "Avots:" msgid "Background" msgstr "Fons" -#: ../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/extension/internal/filter/transparency.h:59 ../src/ui/dialog/filter-effects-dialog.cpp:2855 ../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 "Režīms:" @@ -7035,31 +7030,31 @@ msgstr "GIMP krÄsu pÄreja (*.ggr)" msgid "Gradients used in GIMP" msgstr "GIMP izmantotÄs krÄsu pÄrejas" -#: ../src/extension/internal/grid.cpp:212 ../src/ui/widget/panel.cpp:118 +#: ../src/extension/internal/grid.cpp:205 ../src/ui/widget/panel.cpp:114 msgid "Grid" msgstr "Režģis" -#: ../src/extension/internal/grid.cpp:214 +#: ../src/extension/internal/grid.cpp:207 msgid "Line Width:" msgstr "LÄ«nijas platums:" -#: ../src/extension/internal/grid.cpp:215 +#: ../src/extension/internal/grid.cpp:208 msgid "Horizontal Spacing:" msgstr "HorizontÄlais attÄlums:" -#: ../src/extension/internal/grid.cpp:216 +#: ../src/extension/internal/grid.cpp:209 msgid "Vertical Spacing:" msgstr "VertikÄlais attÄlums:" -#: ../src/extension/internal/grid.cpp:217 +#: ../src/extension/internal/grid.cpp:210 msgid "Horizontal Offset:" msgstr "HorizontÄlÄ nobÄ«de" -#: ../src/extension/internal/grid.cpp:218 +#: ../src/extension/internal/grid.cpp:211 msgid "Vertical Offset:" msgstr "VertikÄlÄ nobÄ«de:" -#: ../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 +#: ../src/extension/internal/grid.cpp:215 ../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 @@ -7068,11 +7063,11 @@ msgstr "VertikÄlÄ nobÄ«de:" msgid "Render" msgstr "RenderÄ“t" -#: ../src/extension/internal/grid.cpp:223 ../src/ui/dialog/document-properties.cpp:162 ../src/ui/dialog/inkscape-preferences.cpp:787 ../src/widgets/toolbox.cpp:1827 +#: ../src/extension/internal/grid.cpp:216 ../src/ui/dialog/document-properties.cpp:162 ../src/ui/dialog/inkscape-preferences.cpp:787 ../src/widgets/toolbox.cpp:1823 msgid "Grids" msgstr "Režģi" -#: ../src/extension/internal/grid.cpp:226 +#: ../src/extension/internal/grid.cpp:219 msgid "Draw a path which is a grid" msgstr "ZÄ«mÄ“t ceļu, kas ir režģis" @@ -7352,31 +7347,31 @@ msgstr "VSDX ievade" msgid "Microsoft Visio 2013 drawing (*.vsdx)" msgstr "Microsoft Visio 2013 zÄ«mÄ“jums (*.vsdx)" -#: ../src/extension/internal/wmf-inout.cpp:3136 +#: ../src/extension/internal/wmf-inout.cpp:3158 msgid "WMF Input" msgstr "WMF ievade" -#: ../src/extension/internal/wmf-inout.cpp:3141 +#: ../src/extension/internal/wmf-inout.cpp:3163 msgid "Windows Metafiles (*.wmf)" msgstr "Windows Metafile (*.wmf)" -#: ../src/extension/internal/wmf-inout.cpp:3142 +#: ../src/extension/internal/wmf-inout.cpp:3164 msgid "Windows Metafiles" msgstr "Windows metafaili" -#: ../src/extension/internal/wmf-inout.cpp:3150 +#: ../src/extension/internal/wmf-inout.cpp:3172 msgid "WMF Output" msgstr "WMF izvade" -#: ../src/extension/internal/wmf-inout.cpp:3160 +#: ../src/extension/internal/wmf-inout.cpp:3182 msgid "Map all fill patterns to standard WMF hatches" msgstr "KartÄ“t visas aizpildÄ«juma faktÅ«ras pret standarta WMF iesvÄ«trojumiem" -#: ../src/extension/internal/wmf-inout.cpp:3164 ../share/extensions/wmf_input.inx.h:2 ../share/extensions/wmf_output.inx.h:2 +#: ../src/extension/internal/wmf-inout.cpp:3186 ../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:3165 +#: ../src/extension/internal/wmf-inout.cpp:3187 msgid "Windows Metafile" msgstr "Windows metafails" @@ -7412,7 +7407,7 @@ msgstr "default.svg" msgid "Broken links have been changed to point to existing files." msgstr "NederÄ«gÄs saites ir izlabotas un norÄda uz pastÄvoÅ¡Äm datnÄ“m." -#: ../src/file.cpp:339 ../src/file.cpp:1255 +#: ../src/file.cpp:339 ../src/file.cpp:1252 #, c-format msgid "Failed to load the requested file %s" msgstr "NeizdevÄs ielÄdÄ“t pieprasÄ«to datni %s" @@ -7477,7 +7472,7 @@ msgid "Document saved." msgstr "Dokuments saglabÄts" #. We are saving for the first time; create a unique default filename -#: ../src/file.cpp:866 ../src/file.cpp:1414 +#: ../src/file.cpp:866 ../src/file.cpp:1411 msgid "drawing" msgstr "zÄ«mÄ“jums" @@ -7501,19 +7496,19 @@ msgstr "Nav izmaiņu, kuras vajadzÄ“tu saglabÄt." msgid "Saving document..." msgstr "SaglabÄ dokumentu..." -#: ../src/file.cpp:1252 ../src/ui/dialog/inkscape-preferences.cpp:1450 ../src/ui/dialog/ocaldialogs.cpp:1244 +#: ../src/file.cpp:1249 ../src/ui/dialog/inkscape-preferences.cpp:1450 ../src/ui/dialog/ocaldialogs.cpp:1244 msgid "Import" msgstr "ImportÄ“t" -#: ../src/file.cpp:1302 +#: ../src/file.cpp:1299 msgid "Select file to import" msgstr "IzvÄ“lieties importÄ“jamo datni" -#: ../src/file.cpp:1435 +#: ../src/file.cpp:1432 msgid "Select file to export to" msgstr "IzvÄ“lieties datni, uz kuru eksportÄ“t" -#: ../src/file.cpp:1688 +#: ../src/file.cpp:1685 msgid "Import Clip Art" msgstr "ImportÄ“t attÄ“lu galeriju" @@ -7606,7 +7601,7 @@ msgstr "AtšķirÄ«ba" msgid "Exclusion" msgstr "IzslÄ“gÅ¡ana" -#: ../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/filter-enums.cpp:65 ../src/ui/tools/flood-tool.cpp:94 ../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 "Tonis" @@ -7672,7 +7667,7 @@ msgstr "PadarÄ«t gaiÅ¡Äku" msgid "Arithmetic" msgstr "AritmÄ“tisks" -#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:546 +#: ../src/filter-enums.cpp:120 ../src/selection-chemistry.cpp:545 msgid "Duplicate" msgstr "DublÄ“t" @@ -7709,15 +7704,15 @@ msgstr "Punkta gaisma" msgid "Spot Light" msgstr "Starmetis" -#: ../src/gradient-chemistry.cpp:1579 +#: ../src/gradient-chemistry.cpp:1580 msgid "Invert gradient colors" msgstr "InvertÄ“t krÄsu pÄrejas krÄsas" -#: ../src/gradient-chemistry.cpp:1605 +#: ../src/gradient-chemistry.cpp:1607 msgid "Reverse gradient" msgstr "Apgriezt krÄsu pÄreju otrÄdi" -#: ../src/gradient-chemistry.cpp:1619 ../src/widgets/gradient-selector.cpp:222 +#: ../src/gradient-chemistry.cpp:1621 ../src/widgets/gradient-selector.cpp:222 msgid "Delete swatch" msgstr "DzÄ“st paleti" @@ -7776,7 +7771,7 @@ msgstr "Apvienot krÄsu pÄrejas turus" msgid "Move gradient handle" msgstr "PÄrvietot krÄsu pÄrejas turi" -#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:827 +#: ../src/gradient-drag.cpp:1164 ../src/widgets/gradient-vector.cpp:828 msgid "Delete gradient stop" msgstr "DzÄ“st krÄsu pÄrejas pieturpunktu" @@ -7806,57 +7801,57 @@ msgstr[0] "KrÄsu pÄrejas punkts ir kopÄ“js %d krÄsu pÄrejai; lai atda msgstr[1] "KrÄsu pÄrejas punkts ir kopÄ“js %d krÄsu pÄrejÄm; lai atdalÄ«tu, velciet ar nospiestu Shift" msgstr[2] "KrÄsu pÄrejas punkts ir kopÄ“js %d krÄsu pÄrejÄm; lai atdalÄ«tu, velciet ar nospiestu Shift" -#: ../src/gradient-drag.cpp:2378 +#: ../src/gradient-drag.cpp:2379 msgid "Move gradient handle(s)" msgstr "PÄrvietot krÄsu pÄrejas turi(-us)" -#: ../src/gradient-drag.cpp:2414 +#: ../src/gradient-drag.cpp:2415 msgid "Move gradient mid stop(s)" msgstr "PÄrvietot krÄsu pÄrejas viduspunktu(s)" -#: ../src/gradient-drag.cpp:2703 +#: ../src/gradient-drag.cpp:2704 msgid "Delete gradient stop(s)" msgstr "DzÄ“st krÄsu pÄrejas pieturpunktu(s)" -#: ../src/inkscape.cpp:246 +#: ../src/inkscape.cpp:242 msgid "Autosave failed! Cannot create directory %1." msgstr "AutomÄtiskÄs saglabÄÅ¡anas kļūda! Nevar izveidot mapi %1." -#: ../src/inkscape.cpp:255 +#: ../src/inkscape.cpp:251 msgid "Autosave failed! Cannot open directory %1." msgstr "AutomÄtiskÄs saglabÄÅ¡anas kļūda! Nevar atvÄ“rt mapi %1." -#: ../src/inkscape.cpp:271 +#: ../src/inkscape.cpp:267 msgid "Autosaving documents..." msgstr "AutomÄtiski saglabÄju dokumentus" -#: ../src/inkscape.cpp:339 +#: ../src/inkscape.cpp:335 msgid "Autosave failed! Could not find inkscape extension to save document." msgstr "NeizdevÄs automÄtiski saglabÄt! Nav iespÄ“jams atrast dokumenta saglabÄÅ¡anai nepiecieÅ¡amo Inkscape paplaÅ¡inÄjumu." -#: ../src/inkscape.cpp:342 ../src/inkscape.cpp:349 +#: ../src/inkscape.cpp:338 ../src/inkscape.cpp:345 #, c-format msgid "Autosave failed! File %s could not be saved." msgstr "AutomÄtiskÄ saglabÄÅ¡ana neizdevÄs! Datni %s neizdevÄs saglabÄt." -#: ../src/inkscape.cpp:364 +#: ../src/inkscape.cpp:360 msgid "Autosave complete." msgstr "AutomÄtiskÄ saglabÄÅ¡ana pabeigta." -#: ../src/inkscape.cpp:622 +#: ../src/inkscape.cpp:618 msgid "Untitled document" msgstr "Nenosaukts dokuments" #. Show nice dialog box -#: ../src/inkscape.cpp:654 +#: ../src/inkscape.cpp:650 msgid "Inkscape encountered an internal error and will close now.\n" msgstr "Inkscape radÄs iekšēja kļūda un tagad tiks aizvÄ“rta.\n" -#: ../src/inkscape.cpp:655 +#: ../src/inkscape.cpp:651 msgid "Automatic backups of unsaved documents were done to the following locations:\n" msgstr "NesaglabÄto dokumentu automÄtiskÄs rezerves kopijas tika saglabÄtas sekojoÅ¡Äs mapÄ“s:\n" -#: ../src/inkscape.cpp:656 +#: ../src/inkscape.cpp:652 msgid "Automatic backup of the following documents failed:\n" msgstr "SekojoÅ¡u dokumentu automÄtiskÄ rezerves kopēšana neizdevÄs:\n" @@ -7864,24 +7859,24 @@ msgstr "SekojoÅ¡u dokumentu automÄtiskÄ rezerves kopēšana neizdevÄs:\n" msgid "Node or handle drag canceled." msgstr "Mezgla vai tura vilkÅ¡ana atcelta." -#: ../src/knotholder.cpp:170 +#: ../src/knotholder.cpp:171 msgid "Change handle" msgstr "MainÄ«t turi" -#: ../src/knotholder.cpp:257 +#: ../src/knotholder.cpp:258 msgid "Move handle" msgstr "PÄrvietot turi" #. TRANSLATORS: This refers to the pattern that's inside the object -#: ../src/knotholder.cpp:276 ../src/knotholder.cpp:298 +#: ../src/knotholder.cpp:277 ../src/knotholder.cpp:299 msgid "Move the pattern fill inside the object" msgstr "PÄrvietot faktÅ«ras aizpildÄ«jumu objekta iekÅ¡pusÄ“" -#: ../src/knotholder.cpp:280 ../src/knotholder.cpp:302 +#: ../src/knotholder.cpp:281 ../src/knotholder.cpp:303 msgid "Scale the pattern fill; uniformly if with Ctrl" msgstr "MÄ“rogot faktÅ«ras aizpildÄ«jumu; vienÄdÄ mÄ“rÄ - ar Ctrl" -#: ../src/knotholder.cpp:284 ../src/knotholder.cpp:306 +#: ../src/knotholder.cpp:285 ../src/knotholder.cpp:307 msgid "Rotate the pattern fill; with Ctrl to snap angle" msgstr "Griezt faktÅ«ras aizpildÄ«jumu; ar Ctrl - pievilkt leņķim" @@ -7918,7 +7913,7 @@ msgid "Dockitem which 'owns' this grip" msgstr "Dokojamais elements, kam 'pieder' Å¡is turis" #. Name -#: ../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 +#: ../src/libgdl/gdl-dock-item.c:298 ../src/widgets/ruler.cpp:192 ../src/widgets/text-toolbar.cpp:1411 ../share/extensions/gcodetools_graffiti.inx.h:9 ../share/extensions/gcodetools_orientation_points.inx.h:2 msgid "Orientation" msgstr "OrientÄcija" @@ -8031,7 +8026,7 @@ msgstr "pamatdoks %p: objektu %p[%s] nav iespÄ“jams pievienot heÅ¡am. Tas jau sa msgid "The new dock controller %p is automatic. Only manual dock objects should be named controller." msgstr "JaunÄ doka vadÄ«kla %p ir automÄtiska. Tikai ar roku dokojami objekti bÅ«tu saucami par vadÄ«klÄm." -#: ../src/libgdl/gdl-dock-notebook.c:132 ../src/ui/dialog/align-and-distribute.cpp:1002 ../src/ui/dialog/document-properties.cpp:160 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 ../src/widgets/desktop-widget.cpp:1992 +#: ../src/libgdl/gdl-dock-notebook.c:132 ../src/ui/dialog/align-and-distribute.cpp:998 ../src/ui/dialog/document-properties.cpp:160 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1537 ../src/widgets/desktop-widget.cpp:1994 #: ../share/extensions/empty_page.inx.h:1 ../share/extensions/voronoi2svg.inx.h:9 msgid "Page" msgstr "Lapa" @@ -8040,7 +8035,7 @@ msgstr "Lapa" msgid "The index of the current page" msgstr "PaÅ¡reizÄ“jÄs lapas indekss" -#: ../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:150 +#: ../src/libgdl/gdl-dock-object.c:125 ../src/live_effects/parameter/originalpatharray.cpp:82 ../src/ui/dialog/inkscape-preferences.cpp:1511 ../src/ui/widget/page-sizer.cpp:283 ../src/widgets/gradient-selector.cpp:150 #: ../src/widgets/sp-xmlview-attr-list.cpp:49 msgid "Name" msgstr "Nosaukums" @@ -8393,7 +8388,7 @@ msgstr "PiestiprinÄt ceļu" msgid "Fill between strokes" msgstr "AizpildÄ«t starp apmalÄ“m" -#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2916 +#: ../src/live_effects/effect.cpp:147 ../src/selection-chemistry.cpp:2871 msgid "Fill between many" msgstr "AizpildÄ«t starp vairÄjiem" @@ -8429,21 +8424,21 @@ msgstr "Redzams?" msgid "If unchecked, the effect remains applied to the object but is temporarily disabled on canvas" msgstr "Ja nav atÄ·eksÄ“ts, efekts paliek pielietots objektam, taÄu uz laiku ir atslÄ“gts uz audekla" -#: ../src/live_effects/effect.cpp:384 +#: ../src/live_effects/effect.cpp:387 msgid "No effect" msgstr "Bez efektiem" -#: ../src/live_effects/effect.cpp:492 +#: ../src/live_effects/effect.cpp:495 #, c-format msgid "Please specify a parameter path for the LPE '%s' with %d mouse clicks" msgstr "LÅ«dzu, norÄdiet parametru ceļu LPE '%s' ar %d peles klikšķiem" -#: ../src/live_effects/effect.cpp:759 +#: ../src/live_effects/effect.cpp:762 #, c-format msgid "Editing parameter %s." msgstr "Parametra %s laboÅ¡ana." -#: ../src/live_effects/effect.cpp:764 +#: ../src/live_effects/effect.cpp:767 msgid "None of the applied path effect's parameters can be edited on-canvas." msgstr "Neviens no pielietotÄ ceļa efekta parametriem nav labojams \"uz audekla\"." @@ -8514,7 +8509,7 @@ msgstr "Liekt ceļu:" msgid "Path along which to bend the original path" msgstr "Ceļš, gar kuru liekt sÄkotnÄ“jo ceļu" -#: ../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 +#: ../src/live_effects/lpe-bendpath.cpp:54 ../src/live_effects/lpe-patternalongpath.cpp:62 ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/transformation.cpp:74 ../src/ui/widget/page-sizer.cpp:237 msgid "_Width:" msgstr "_Platums:" @@ -8554,52 +8549,52 @@ msgstr "VizuÄlÄs robežas" msgid "Uses the visual bounding box" msgstr "Izmanto vizuÄlo robežrÄmi" -#: ../src/live_effects/lpe-bspline.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Steps with CTRL:" msgstr "Soļi ar CTRL:" -#: ../src/live_effects/lpe-bspline.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:25 msgid "Change number of steps with CTRL pressed" msgstr "Mainiet soļu skaitu, turot nospiestu CTRL" -#: ../src/live_effects/lpe-bspline.cpp:58 ../src/live_effects/lpe-simplify.cpp:33 +#: ../src/live_effects/lpe-bspline.cpp:26 ../src/live_effects/lpe-simplify.cpp:33 #, fuzzy msgid "Helper size:" msgstr "Subversion palÄ«gprogramma" -#: ../src/live_effects/lpe-bspline.cpp:58 ../src/live_effects/lpe-simplify.cpp:33 +#: ../src/live_effects/lpe-bspline.cpp:26 ../src/live_effects/lpe-simplify.cpp:33 #, fuzzy msgid "Helper size" msgstr "Subversion palÄ«gprogramma" -#: ../src/live_effects/lpe-bspline.cpp:59 +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Ignore cusp nodes" msgstr "Neņemt vÄ“rÄ asos mezglus" -#: ../src/live_effects/lpe-bspline.cpp:59 +#: ../src/live_effects/lpe-bspline.cpp:27 msgid "Change ignoring cusp nodes" msgstr "MainÄ«t, neņemot vÄ“rÄ asos mezglus" -#: ../src/live_effects/lpe-bspline.cpp:60 ../src/live_effects/lpe-fillet-chamfer.cpp:57 +#: ../src/live_effects/lpe-bspline.cpp:28 ../src/live_effects/lpe-fillet-chamfer.cpp:56 msgid "Change only selected nodes" msgstr "MainÄ«t tikai atlasÄ«tos mezglus" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:29 #, fuzzy msgid "Change weight:" msgstr "Svars" -#: ../src/live_effects/lpe-bspline.cpp:61 +#: ../src/live_effects/lpe-bspline.cpp:29 #, fuzzy msgid "Change weight of the effect" msgstr "Filtra efektu apgabala augstums" -#: ../src/live_effects/lpe-bspline.cpp:290 +#: ../src/live_effects/lpe-bspline.cpp:260 #, fuzzy msgid "Default weight" msgstr "NoklusÄ“tais virsraksts" -#: ../src/live_effects/lpe-bspline.cpp:295 +#: ../src/live_effects/lpe-bspline.cpp:265 msgid "Make cusp" msgstr "PÄrvÄ“rst par aso" @@ -8769,99 +8764,89 @@ msgstr "Ot_rÄdi" msgid "Reverses the second path order" msgstr "Pagriezt krÄsu pÄrejas virzienu uz pretÄ“jo pusi" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 ../share/extensions/render_barcode_qrcode.inx.h:5 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:41 ../share/extensions/render_barcode_qrcode.inx.h:5 msgid "Auto" msgstr "Auto" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:42 #, fuzzy msgid "Force arc" -msgstr "ar Å¡o loku" +msgstr "Loks" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:44 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:43 #, fuzzy msgid "Force bezier" msgstr "BezjÄ“" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:53 msgid "Fillet point" msgstr "Apciļņa punkts" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:54 msgid "Hide knots" msgstr "SlÄ“pt mezglus" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:56 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:55 msgid "Ignore 0 radius knots" msgstr "Neņemt vÄ“rÄ mezglus ar rÄdiusu = 0" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:57 #, fuzzy msgid "Flexible radius size (%)" msgstr "IesatÄ«t elastÄ«gu izmÄ“ru" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:58 msgid "Use knots distance instead radius" msgstr "RÄdiusa vietÄ izmantot attÄlumu starp mezgliem" -#: ../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 "VienÄ«ba:" - -#. 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:202 -msgid "Unit" -msgstr "VienÄ«ba" - -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Method:" msgstr "Metode:" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:59 msgid "Fillets methods" msgstr "Apciļņu metodes" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius (unit or %):" msgstr "RÄdiuss (vienÄ«bas vai %):" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:62 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:60 msgid "Radius, in unit or %" msgstr "RÄdiuss, vienÄ«bÄs vai %" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps:" msgstr "NokÄpes fazÄ«tes soļi:" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:61 msgid "Chamfer steps" msgstr "NokÄpes fazÄ«tes soļi" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 #, fuzzy msgid "Helper size with direction:" msgstr "Režģa izmÄ“rs X virzienÄ." -#: ../src/live_effects/lpe-fillet-chamfer.cpp:65 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:63 #, fuzzy msgid "Helper size with direction" msgstr "Režģa izmÄ“rs X virzienÄ." -#: ../src/live_effects/lpe-fillet-chamfer.cpp:157 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:76 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:154 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:71 msgid "Fillet" msgstr "Apcilnis" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:161 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:78 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:158 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:73 msgid "Inverse fillet" msgstr "OtrÄdais apcilnis" # http://termini.lza.lv/term.php?term=chamfer&list=&lang=&h= -#: ../src/live_effects/lpe-fillet-chamfer.cpp:166 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:80 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:163 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:75 msgid "Chamfer" msgstr "NokÄpes fazÄ«te" -#: ../src/live_effects/lpe-fillet-chamfer.cpp:170 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:82 +#: ../src/live_effects/lpe-fillet-chamfer.cpp:167 ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:77 msgid "Inverse chamfer" msgstr "OtrÄdÄ nokÄpes fazÄ«te" @@ -8918,9 +8903,8 @@ msgid "SpiroInterpolator" msgstr "Spiro interpolators" #: ../src/live_effects/lpe-interpolate_points.cpp:29 ../src/live_effects/lpe-powerstroke.cpp:198 -#, fuzzy msgid "Centripetal Catmull-Rom" -msgstr "CD-ROM/DVD-ROM" +msgstr "CentrtiecoÅ¡s Ketmula-Roma splains" #: ../src/live_effects/lpe-interpolate_points.cpp:37 ../src/live_effects/lpe-powerstroke.cpp:240 msgid "Interpolator type:" @@ -8930,11 +8914,11 @@ msgstr "Interpolēšanas tips:" msgid "Determines which kind of interpolator will be used to interpolate between stroke width along the path" msgstr "Nosaka interpolatora veidu, kas tiks izmantots apmales platuma interpolÄcijai gar ceļu" -#: ../src/live_effects/lpe-jointype.cpp:31 ../src/live_effects/lpe-powerstroke.cpp:227 ../src/live_effects/lpe-taperstroke.cpp:63 +#: ../src/live_effects/lpe-jointype.cpp:31 ../src/live_effects/lpe-powerstroke.cpp:227 ../src/live_effects/lpe-taperstroke.cpp:64 msgid "Beveled" msgstr "Nošķelts" -#: ../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 +#: ../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:65 ../src/widgets/star-toolbar.cpp:534 msgid "Rounded" msgstr "Noapaļots" @@ -8942,9 +8926,10 @@ msgstr "Noapaļots" msgid "Miter" msgstr "Salaidums" -#: ../src/live_effects/lpe-jointype.cpp:34 ../src/live_effects/lpe-taperstroke.cpp:65 ../src/widgets/gradient-toolbar.cpp:1118 -msgid "Reflected" -msgstr "Atspoguļots" +#: ../src/live_effects/lpe-jointype.cpp:34 +#, fuzzy +msgid "Miter Clip" +msgstr "Å Ä·autņu asums:" #. {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 @@ -8963,11 +8948,6 @@ msgstr "KvadrÄtisks" msgid "Peak" msgstr "Virsotne" -#: ../src/live_effects/lpe-jointype.cpp:43 -#, fuzzy -msgid "Leaned" -msgstr "Leaned" - #: ../src/live_effects/lpe-jointype.cpp:51 msgid "Thickness of the stroke" msgstr "Apmales biezums" @@ -8991,16 +8971,8 @@ msgstr "Savienojums:" msgid "Determines the shape of the path's corners" msgstr "Nosaka ceļa stÅ«ru formu" -#: ../src/live_effects/lpe-jointype.cpp:54 -#, fuzzy -msgid "Start path lean" -msgstr "Nosaka ceļa sÄkuma formu" - -#: ../src/live_effects/lpe-jointype.cpp:55 -#, fuzzy -msgid "End path lean" -msgstr "ceļam jÄbeidzas ar ':/'" - +#. start_lean(_("Start path lean"), _("Start path lean"), "start_lean", &wr, this, 0.), +#. end_lean(_("End path lean"), _("End path lean"), "end_lean", &wr, this, 0.), #: ../src/live_effects/lpe-jointype.cpp:56 ../src/live_effects/lpe-powerstroke.cpp:244 ../src/live_effects/lpe-taperstroke.cpp:79 msgid "Miter limit:" msgstr "Salaiduma ierobežojums" @@ -9078,212 +9050,264 @@ msgstr "Velciet, lai atlasÄ«tu krustojumu, nomainiet tipu ar klikšķi" msgid "Change knot crossing" msgstr "MainÄ«t mezglu šķērsoÅ¡anu" -#. initialise your parameters here: -#: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0:" -msgstr "VadÄ«bas turis 0:" - -#: ../src/live_effects/lpe-lattice2.cpp:47 -msgid "Control handle 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" - -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1:" -msgstr "VadÄ«bas turis 1:" +#: ../src/live_effects/lpe-lattice2.cpp:47 ../src/live_effects/lpe-perspective-envelope.cpp:43 +#, fuzzy +msgid "Mirror movements in horizontal" +msgstr "PÄrvietot mezglus horizontÄli" -#: ../src/live_effects/lpe-lattice2.cpp:48 -msgid "Control handle 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#: ../src/live_effects/lpe-lattice2.cpp:48 ../src/live_effects/lpe-perspective-envelope.cpp:44 +#, fuzzy +msgid "Mirror movements in vertical" +msgstr "PÄrvietot mezglus vertikÄli" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2:" -msgstr "VadÄ«bas turis 2:" +#, fuzzy +msgid "Control 0:" +msgstr "VadÄ«bas turis 0:" #: ../src/live_effects/lpe-lattice2.cpp:49 -msgid "Control handle 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3:" -msgstr "VadÄ«bas turis 3:" +#, fuzzy +msgid "Control 1:" +msgstr "VadÄ«bas turis 1:" #: ../src/live_effects/lpe-lattice2.cpp:50 -msgid "Control handle 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4:" -msgstr "VadÄ«bas turis 4:" +#, fuzzy +msgid "Control 2:" +msgstr "VadÄ«bas turis 2:" #: ../src/live_effects/lpe-lattice2.cpp:51 -msgid "Control handle 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5:" -msgstr "VadÄ«bas turis 5:" +#, fuzzy +msgid "Control 3:" +msgstr "VadÄ«bas turis 3:" #: ../src/live_effects/lpe-lattice2.cpp:52 -msgid "Control handle 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6:" -msgstr "VadÄ«bas turis 6:" +#, fuzzy +msgid "Control 4:" +msgstr "VadÄ«bas turis 4:" #: ../src/live_effects/lpe-lattice2.cpp:53 -msgid "Control handle 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7:" -msgstr "VadÄ«bas turis 7:" +#, fuzzy +msgid "Control 5:" +msgstr "VadÄ«bas turis 5:" #: ../src/live_effects/lpe-lattice2.cpp:54 -msgid "Control handle 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9:" -msgstr "VadÄ«bas turis 8x9:" +#, fuzzy +msgid "Control 6:" +msgstr "VadÄ«bas turis 6:" #: ../src/live_effects/lpe-lattice2.cpp:55 -msgid "Control handle 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11:" -msgstr "VadÄ«bas turis 10x11:" +#, fuzzy +msgid "Control 7:" +msgstr "VadÄ«bas turis 7:" #: ../src/live_effects/lpe-lattice2.cpp:56 -msgid "Control handle 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12:" -msgstr "VadÄ«bas turis 12:" +#, fuzzy +msgid "Control 8x9:" +msgstr "VadÄ«bas turis 8x9:" #: ../src/live_effects/lpe-lattice2.cpp:57 -msgid "Control handle 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13:" -msgstr "VadÄ«bas turis 13:" +#, fuzzy +msgid "Control 10x11:" +msgstr "VadÄ«bas turis 10x11:" #: ../src/live_effects/lpe-lattice2.cpp:58 -msgid "Control handle 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 10x11 - Ctrl+Alt+Click, lai atiestatÄ«tu" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14:" -msgstr "VadÄ«bas turis 14:" +#, fuzzy +msgid "Control 12:" +msgstr "VadÄ«bas turis 12:" #: ../src/live_effects/lpe-lattice2.cpp:59 -msgid "Control handle 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15:" -msgstr "VadÄ«bas turis 15:" +#, fuzzy +msgid "Control 13:" +msgstr "VadÄ«bas turis 13:" #: ../src/live_effects/lpe-lattice2.cpp:60 -msgid "Control handle 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16:" -msgstr "VadÄ«bas turis 16:" +#, fuzzy +msgid "Control 14:" +msgstr "VadÄ«bas turis 14:" #: ../src/live_effects/lpe-lattice2.cpp:61 -msgid "Control handle 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17:" -msgstr "VadÄ«bas turis 17:" +#, fuzzy +msgid "Control 15:" +msgstr "VadÄ«bas turis 15:" #: ../src/live_effects/lpe-lattice2.cpp:62 -msgid "Control handle 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18:" -msgstr "VadÄ«bas turis 18:" +#, fuzzy +msgid "Control 16:" +msgstr "VadÄ«bas turis 16:" #: ../src/live_effects/lpe-lattice2.cpp:63 -msgid "Control handle 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19:" -msgstr "VadÄ«bas turis 19:" +#, fuzzy +msgid "Control 17:" +msgstr "VadÄ«bas turis 17:" #: ../src/live_effects/lpe-lattice2.cpp:64 -msgid "Control handle 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21:" -msgstr "VadÄ«bas turis 20x21:" +#, fuzzy +msgid "Control 18:" +msgstr "VadÄ«bas turis 18:" #: ../src/live_effects/lpe-lattice2.cpp:65 -msgid "Control handle 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23:" -msgstr "VadÄ«bas turis 22x23:" +#, fuzzy +msgid "Control 19:" +msgstr "VadÄ«bas turis 19:" #: ../src/live_effects/lpe-lattice2.cpp:66 -msgid "Control handle 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" msgstr "" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26:" -msgstr "VadÄ«bas turis 24x26:" +#, fuzzy +msgid "Control 20x21:" +msgstr "VadÄ«bas turis 20x21:" #: ../src/live_effects/lpe-lattice2.cpp:67 -msgid "Control handle 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 20x21 - Ctrl+Alt+Click, lai atiestatÄ«tu" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27:" -msgstr "VadÄ«bas turis 25x27:" +#, fuzzy +msgid "Control 22x23:" +msgstr "VadÄ«bas turis 22x23:" #: ../src/live_effects/lpe-lattice2.cpp:68 -msgid "Control handle 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 22x23 - Ctrl+Alt+Click, lai atiestatÄ«tu" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30:" -msgstr "VadÄ«bas turis 28x30:" +#, fuzzy +msgid "Control 24x26:" +msgstr "VadÄ«bas turis 24x26:" #: ../src/live_effects/lpe-lattice2.cpp:69 -msgid "Control handle 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 24x26 - Ctrl+Alt+Click, lai atiestatÄ«tu" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31:" -msgstr "VadÄ«bas turis 29x31:" +#, fuzzy +msgid "Control 25x27:" +msgstr "VadÄ«bas turis 25x27:" #: ../src/live_effects/lpe-lattice2.cpp:70 -msgid "Control handle 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 25x27 - Ctrl+Alt+Click, lai atiestatÄ«tu" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35:" -msgstr "VadÄ«bas turis 32x33x34x35:" +#, fuzzy +msgid "Control 28x30:" +msgstr "VadÄ«bas turis 28x30:" #: ../src/live_effects/lpe-lattice2.cpp:71 -msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +#, fuzzy +msgid "Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 28x30 - Ctrl+Alt+Click, lai atiestatÄ«tu" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +#, fuzzy +msgid "Control 29x31:" +msgstr "VadÄ«bas turis 29x31:" + +#: ../src/live_effects/lpe-lattice2.cpp:72 +#, fuzzy +msgid "Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 29x31 - Ctrl+Alt+Click, lai atiestatÄ«tu" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +#, fuzzy +msgid "Control 32x33x34x35:" +msgstr "VadÄ«bas turis 32x33x34x35:" + +#: ../src/live_effects/lpe-lattice2.cpp:73 +#, fuzzy +msgid "Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along axes" +msgstr "VadÄ«bas turis 32x33x34x35 - Ctrl+Alt+Click, lai atiestatÄ«tu" -#: ../src/live_effects/lpe-lattice2.cpp:224 +#: ../src/live_effects/lpe-lattice2.cpp:236 #, fuzzy msgid "Reset grid" msgstr "AtstatÄ«t" +#: ../src/live_effects/lpe-lattice2.cpp:268 ../src/live_effects/lpe-lattice2.cpp:283 +#, fuzzy +msgid "Show Points" +msgstr "RÄdÄ«t punktus" + +#: ../src/live_effects/lpe-lattice2.cpp:281 +#, fuzzy +msgid "Hide Points" +msgstr "~SlÄ“pt" + #: ../src/live_effects/lpe-patternalongpath.cpp:50 ../share/extensions/pathalongpath.inx.h:10 msgid "Single" msgstr "Viens" @@ -9369,56 +9393,55 @@ msgstr "SakausÄ“t blakus esoÅ¡os galus:" msgid "Fuse ends closer than this number. 0 means don't fuse." msgstr "SakausÄ“t blakus esoÅ¡os galus, kas ir tuvÄki par norÄdÄ«to lielumu. 0 - nesakausÄ“t." -#: ../src/live_effects/lpe-perspective-envelope.cpp:37 ../share/extensions/perspective.inx.h:1 +#: ../src/live_effects/lpe-perspective-envelope.cpp:35 ../share/extensions/perspective.inx.h:1 msgid "Perspective" msgstr "PerspektÄ«va" -#: ../src/live_effects/lpe-perspective-envelope.cpp:38 +#: ../src/live_effects/lpe-perspective-envelope.cpp:36 msgid "Envelope deformation" msgstr "Aploksnes deformÄcija" -#. initialise your parameters here: -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Type" msgstr "Tips" -#: ../src/live_effects/lpe-perspective-envelope.cpp:46 +#: ../src/live_effects/lpe-perspective-envelope.cpp:45 msgid "Select the type of deformation" msgstr "IzvÄ“lieties deformÄcijas tipu" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left" msgstr "Augšējais kreisais" -#: ../src/live_effects/lpe-perspective-envelope.cpp:47 +#: ../src/live_effects/lpe-perspective-envelope.cpp:46 msgid "Top Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "Augšējais kreisais - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right" msgstr "Augšējais labais" -#: ../src/live_effects/lpe-perspective-envelope.cpp:48 +#: ../src/live_effects/lpe-perspective-envelope.cpp:47 msgid "Top Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "Augšējais labais - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left" msgstr "Apakšējais kreisais" -#: ../src/live_effects/lpe-perspective-envelope.cpp:49 +#: ../src/live_effects/lpe-perspective-envelope.cpp:48 msgid "Down Left - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "Apakšējais kreisais - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right" msgstr "Apakšējais labais" -#: ../src/live_effects/lpe-perspective-envelope.cpp:50 +#: ../src/live_effects/lpe-perspective-envelope.cpp:49 msgid "Down Right - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "Apakšējais labais - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" -#: ../src/live_effects/lpe-perspective-envelope.cpp:257 +#: ../src/live_effects/lpe-perspective-envelope.cpp:268 msgid "Handles:" msgstr "Turi:" @@ -9634,67 +9657,62 @@ msgstr "VispÄrÄ“jÄ liekÅ¡ana" msgid "Relative position to a reference point defines global bending direction and amount" msgstr "RelatÄ«vais novietojums pret atskaites punktu nosaka globÄlo liekuma virzienu un apjomu" -#: ../src/live_effects/lpe-roughen.cpp:30 ../share/extensions/addnodes.inx.h:4 +#: ../src/live_effects/lpe-roughen.cpp:29 ../share/extensions/addnodes.inx.h:4 msgid "By number of segments" msgstr "PÄ“c posmu skaita" -#: ../src/live_effects/lpe-roughen.cpp:31 +#: ../src/live_effects/lpe-roughen.cpp:30 msgid "By max. segment size" msgstr "PÄ“c maks. segmenta izmÄ“ra" -#: ../src/live_effects/lpe-roughen.cpp:40 +#. initialise your parameters here: +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Method" msgstr "Metode" -#: ../src/live_effects/lpe-roughen.cpp:40 +#: ../src/live_effects/lpe-roughen.cpp:38 msgid "Division method" msgstr "Dalīšanas metode" -#: ../src/live_effects/lpe-roughen.cpp:42 +#: ../src/live_effects/lpe-roughen.cpp:40 msgid "Max. segment size" msgstr "Maks. segmenta izmÄ“rs" -#: ../src/live_effects/lpe-roughen.cpp:44 +#: ../src/live_effects/lpe-roughen.cpp:42 msgid "Number of segments" msgstr "Segmentu skaits" -#: ../src/live_effects/lpe-roughen.cpp:46 -#, fuzzy +#: ../src/live_effects/lpe-roughen.cpp:44 msgid "Max. displacement in X" -msgstr "_X pÄrvietojums" +msgstr "Maks. X pÄrvietojums" -#: ../src/live_effects/lpe-roughen.cpp:48 -#, fuzzy +#: ../src/live_effects/lpe-roughen.cpp:46 msgid "Max. displacement in Y" -msgstr "_Y pÄrvietojums:" +msgstr "Maks. Y pÄrvietojums" -#: ../src/live_effects/lpe-roughen.cpp:50 +#: ../src/live_effects/lpe-roughen.cpp:48 #, fuzzy msgid "Global randomize" -msgstr "_Sajaukt" +msgstr "Sajaukt" -#: ../src/live_effects/lpe-roughen.cpp:52 ../share/extensions/radiusrand.inx.h:5 +#: ../src/live_effects/lpe-roughen.cpp:50 ../share/extensions/radiusrand.inx.h:5 msgid "Shift nodes" msgstr "PÄrbÄ«dÄ«t mezglus" -#: ../src/live_effects/lpe-roughen.cpp:54 ../share/extensions/radiusrand.inx.h:6 +#: ../src/live_effects/lpe-roughen.cpp:52 ../share/extensions/radiusrand.inx.h:6 msgid "Shift node handles" msgstr "PÄrbÄ«dÄ«t mezglu turus" -#: ../src/live_effects/lpe-roughen.cpp:103 -msgid "Roughen unit" -msgstr "RaupjoÅ¡anas vienÄ«ba" - -#: ../src/live_effects/lpe-roughen.cpp:111 +#: ../src/live_effects/lpe-roughen.cpp:100 msgid "Add nodes Subdivide each segment" msgstr "Pievienot mezglus sadalÄ«t katru posmu sÄ«kÄk" -#: ../src/live_effects/lpe-roughen.cpp:120 +#: ../src/live_effects/lpe-roughen.cpp:109 #, fuzzy msgid "Jitter nodes Move nodes/handles" msgstr "Jitter nodes Move nodes/handles" -#: ../src/live_effects/lpe-roughen.cpp:129 +#: ../src/live_effects/lpe-roughen.cpp:118 msgid "Extra roughen Add a extra layer of rough" msgstr "PastiprinÄt raupjumu Pievienot papildu raupjuma slÄni" @@ -9715,11 +9733,11 @@ msgctxt "Border mark" msgid "None" msgstr "Neviena" -#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:328 +#: ../src/live_effects/lpe-ruler.cpp:33 ../src/widgets/arc-toolbar.cpp:319 msgid "Start" msgstr "SÄkt" -#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:341 +#: ../src/live_effects/lpe-ruler.cpp:34 ../src/widgets/arc-toolbar.cpp:332 msgid "End" msgstr "End" @@ -9731,6 +9749,14 @@ msgstr "IezÄ«mes attÄlu_ms:" msgid "Distance between successive ruler marks" msgstr "AttÄlums starp blakus esoÅ¡Äm mÄ“rjoslas aizzÄ«mÄ“m" +#: ../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 "VienÄ«ba:" + +#: ../src/live_effects/lpe-ruler.cpp:42 ../src/widgets/ruler.cpp:202 +msgid "Unit" +msgstr "VienÄ«ba" + #: ../src/live_effects/lpe-ruler.cpp:43 msgid "Ma_jor length:" msgstr "Gal_venais garums:" @@ -9818,11 +9844,12 @@ msgstr "NorÄdiet vienkÄrÅ¡oÅ¡anas soļu skaitu" #: ../src/live_effects/lpe-simplify.cpp:31 #, fuzzy msgid "Roughly threshold:" -msgstr "S_lieksnis..." +msgstr "Slieksnis" #: ../src/live_effects/lpe-simplify.cpp:32 +#, fuzzy msgid "Smooth angles:" -msgstr "" +msgstr "Gludums:" #: ../src/live_effects/lpe-simplify.cpp:32 msgid "Max degree difference on handles to preform a smooth" @@ -9830,39 +9857,19 @@ msgstr "" #: ../src/live_effects/lpe-simplify.cpp:34 #, fuzzy -msgid "Helper nodes" -msgstr "Subversion palÄ«gprogramma" - -#: ../src/live_effects/lpe-simplify.cpp:34 -#, fuzzy -msgid "Show helper nodes" -msgstr "RÄdÄ«t pÄrveidoÅ¡anas turus atsevišķiem mezgliem" - -#: ../src/live_effects/lpe-simplify.cpp:36 -#, fuzzy -msgid "Helper handles" -msgstr "Subversion palÄ«gprogramma" - -#: ../src/live_effects/lpe-simplify.cpp:36 -#, fuzzy -msgid "Show helper handles" -msgstr "RÄdÄ«t turus" - -#: ../src/live_effects/lpe-simplify.cpp:38 -#, fuzzy msgid "Paths separately" -msgstr "VienkÄrÅ¡o ceļus (atsevišķi):" +msgstr "VienkÄrÅ¡o ceļus (atsevišķi)" -#: ../src/live_effects/lpe-simplify.cpp:38 +#: ../src/live_effects/lpe-simplify.cpp:34 msgid "Simplifying paths (separately)" msgstr "VienkÄrÅ¡o ceļus (atsevišķi)" -#: ../src/live_effects/lpe-simplify.cpp:40 +#: ../src/live_effects/lpe-simplify.cpp:36 #, fuzzy msgid "Just coalesce" msgstr "Tikai tagad..." -#: ../src/live_effects/lpe-simplify.cpp:40 +#: ../src/live_effects/lpe-simplify.cpp:36 #, fuzzy msgid "Simplify just coalesce" msgstr "VienkÄrÅ¡ot:" @@ -9949,7 +9956,7 @@ msgstr "PalÄ«glÄ«nijas:" msgid "How many construction lines (tangents) to draw" msgstr "Cik daudz palÄ«glÄ«niju (tangenÅ¡u) zÄ«mÄ“t" -#: ../src/live_effects/lpe-sketch.cpp:58 ../src/ui/dialog/filter-effects-dialog.cpp:2878 ../share/extensions/render_alphabetsoup.inx.h:3 +#: ../src/live_effects/lpe-sketch.cpp:58 ../src/ui/dialog/filter-effects-dialog.cpp:2894 ../share/extensions/render_alphabetsoup.inx.h:3 msgid "Scale:" msgstr "MÄ“rogs:" @@ -10052,12 +10059,12 @@ msgstr "Auto-gludais mezgls" msgid "Limit for miter joins" msgstr "Å Ä·autņu asums:" -#: ../src/live_effects/lpe-taperstroke.cpp:536 +#: ../src/live_effects/lpe-taperstroke.cpp:448 #, fuzzy msgid "Start point of the taper" msgstr "SÄkt tranportu no šī lÄ«knes punkta" -#: ../src/live_effects/lpe-taperstroke.cpp:540 +#: ../src/live_effects/lpe-taperstroke.cpp:452 #, fuzzy msgid "End point of the taper" msgstr "Beigu punkts" @@ -10123,59 +10130,59 @@ msgstr "MainÄ«t Bula parametru" msgid "Change enumeration parameter" msgstr "MainÄ«t numurēšanas parametru" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:782 ../src/live_effects/parameter/filletchamferpointarray.cpp:843 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:771 ../src/live_effects/parameter/filletchamferpointarray.cpp:832 msgid "Chamfer: Ctrl+Click toggle type, Shift+Click open dialog, Ctrl+Alt+Click reset" msgstr "NokÄpes fazÄ«te: Ctrl+Click pÄrslÄ“gt tipu, Shift+Click atvÄ“rt dialoglodziņu, Ctrl+Alt+Click atstatÄ«t" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:786 ../src/live_effects/parameter/filletchamferpointarray.cpp:847 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:775 ../src/live_effects/parameter/filletchamferpointarray.cpp:836 msgid "Inverse Chamfer: Ctrl+Click toggle type, Shift+Click open dialog, Ctrl+Alt+Click reset" msgstr "OtrÄdÄ nokÄpes fazÄ«te: Ctrl+Click pÄrslÄ“gt tipu, Shift+Click atvÄ“rt dialoglodziņu, Ctrl+Alt+Click atstatÄ«t" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:790 ../src/live_effects/parameter/filletchamferpointarray.cpp:851 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:779 ../src/live_effects/parameter/filletchamferpointarray.cpp:840 msgid "Inverse Fillet: Ctrl+Click toggle type, Shift+Click open dialog, Ctrl+Alt+Click reset" msgstr "OtrÄdais apcilnis: Ctrl+Click pÄrslÄ“gt tipu, Shift+Click atvÄ“rt dialoglodziņu, Ctrl+Alt+Click atstatÄ«t" -#: ../src/live_effects/parameter/filletchamferpointarray.cpp:794 ../src/live_effects/parameter/filletchamferpointarray.cpp:855 +#: ../src/live_effects/parameter/filletchamferpointarray.cpp:783 ../src/live_effects/parameter/filletchamferpointarray.cpp:844 msgid "Fillet: Ctrl+Click toggle type, Shift+Click open dialog, Ctrl+Alt+Click reset" msgstr "Apcilnis: Ctrl+Click pÄrslÄ“gt tipu, Shift+Click atvÄ“rt dialoglodziņu, Ctrl+Alt+Click atstatÄ«t" -#: ../src/live_effects/parameter/originalpath.cpp:71 ../src/live_effects/parameter/originalpatharray.cpp:159 +#: ../src/live_effects/parameter/originalpath.cpp:67 ../src/live_effects/parameter/originalpatharray.cpp:155 msgid "Link to path" msgstr "PiesaistÄ«t ceļam" -#: ../src/live_effects/parameter/originalpath.cpp:83 +#: ../src/live_effects/parameter/originalpath.cpp:79 msgid "Select original" msgstr "AtlasÄ«t oriÄ£inÄlu" -#: ../src/live_effects/parameter/originalpatharray.cpp:94 ../src/widgets/gradient-toolbar.cpp:1205 +#: ../src/live_effects/parameter/originalpatharray.cpp:90 ../src/widgets/gradient-toolbar.cpp:1208 msgid "Reverse" msgstr "Apgriezt" -#: ../src/live_effects/parameter/originalpatharray.cpp:134 ../src/live_effects/parameter/originalpatharray.cpp:319 ../src/live_effects/parameter/path.cpp:475 +#: ../src/live_effects/parameter/originalpatharray.cpp:130 ../src/live_effects/parameter/originalpatharray.cpp:315 ../src/live_effects/parameter/path.cpp:481 msgid "Link path parameter to path" msgstr "PiesaistÄ«t ceļa parametru ceļam" -#: ../src/live_effects/parameter/originalpatharray.cpp:171 +#: ../src/live_effects/parameter/originalpatharray.cpp:167 msgid "Remove Path" msgstr "AizvÄkt ceļu" -#: ../src/live_effects/parameter/originalpatharray.cpp:183 ../src/ui/dialog/objects.cpp:1823 +#: ../src/live_effects/parameter/originalpatharray.cpp:179 ../src/ui/dialog/objects.cpp:1823 msgid "Move Down" msgstr "PÄrvietot lejup" -#: ../src/live_effects/parameter/originalpatharray.cpp:195 ../src/ui/dialog/objects.cpp:1831 +#: ../src/live_effects/parameter/originalpatharray.cpp:191 ../src/ui/dialog/objects.cpp:1831 msgid "Move Up" msgstr "PÄrvietot augÅ¡up" -#: ../src/live_effects/parameter/originalpatharray.cpp:235 +#: ../src/live_effects/parameter/originalpatharray.cpp:231 msgid "Move path up" msgstr "PÄrvietot ceļu augÅ¡up" -#: ../src/live_effects/parameter/originalpatharray.cpp:265 +#: ../src/live_effects/parameter/originalpatharray.cpp:261 msgid "Move path down" msgstr "PÄrvietot ceļu lejup" -#: ../src/live_effects/parameter/originalpatharray.cpp:283 +#: ../src/live_effects/parameter/originalpatharray.cpp:279 msgid "Remove path" msgstr "AizvÄkt ceļu" @@ -10199,11 +10206,11 @@ msgstr "IelÄ«mÄ“t ceļu" msgid "Link to path on clipboard" msgstr "PiesaistÄ«t ceļam starpliktuvÄ“" -#: ../src/live_effects/parameter/path.cpp:443 +#: ../src/live_effects/parameter/path.cpp:449 msgid "Paste path parameter" msgstr "IelÄ«mÄ“t ceļa parametru" -#: ../src/live_effects/parameter/point.cpp:103 +#: ../src/live_effects/parameter/point.cpp:124 msgid "Change point parameter" msgstr "MainÄ«t punkta parametru" @@ -10478,7 +10485,7 @@ msgstr "OBJEKTA ID" msgid "Start Inkscape in interactive shell mode." msgstr "Palaist Inkscape interaktÄ«vÄs Äaulas režīmÄ" -#: ../src/main.cpp:871 ../src/main.cpp:1283 +#: ../src/main.cpp:871 ../src/main.cpp:1280 msgid "" "[OPTIONS...] [FILE...]\n" "\n" @@ -10489,17 +10496,17 @@ msgstr "" "PieejamÄs papildiespÄ“jas:" #. ## Add a menu for clear() -#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:83 +#: ../src/menus-skeleton.h:16 ../src/ui/dialog/debug.cpp:79 msgid "_File" msgstr "_Datne" #. " \n" #. " \n" -#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2713 ../src/verbs.cpp:2721 +#: ../src/menus-skeleton.h:41 ../src/verbs.cpp:2682 ../src/verbs.cpp:2690 msgid "_Edit" msgstr "Labot" -#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2477 +#: ../src/menus-skeleton.h:51 ../src/verbs.cpp:2446 msgid "Paste Si_ze" msgstr "IelÄ«mÄ“t i_wzmÄ“ru" @@ -10583,27 +10590,27 @@ msgstr "_PalÄ«gs" msgid "Tutorials" msgstr "PamÄcÄ«bas" -#: ../src/path-chemistry.cpp:54 +#: ../src/path-chemistry.cpp:63 msgid "Select object(s) to combine." msgstr "Atlasiet apvienojamo(s) objektu(s)." -#: ../src/path-chemistry.cpp:58 +#: ../src/path-chemistry.cpp:67 msgid "Combining paths..." msgstr "Apvieno ceļus..." -#: ../src/path-chemistry.cpp:174 +#: ../src/path-chemistry.cpp:177 msgid "Combine" msgstr "KombinÄ“t" -#: ../src/path-chemistry.cpp:181 +#: ../src/path-chemistry.cpp:184 msgid "No path(s) to combine in the selection." msgstr "AtlasÄ«tajÄ nav apvienojamu ceļu." -#: ../src/path-chemistry.cpp:193 +#: ../src/path-chemistry.cpp:196 msgid "Select path(s) to break apart." msgstr "Atlasiet sašķeļamo(s) ceļu(s)." -#: ../src/path-chemistry.cpp:197 +#: ../src/path-chemistry.cpp:200 msgid "Breaking apart paths..." msgstr "Sašķeļ ceļus..." @@ -10623,27 +10630,27 @@ msgstr "Atlasiet par ceļu pÄrvÄ“rÅ¡amu(s) objektu(s)." msgid "Converting objects to paths..." msgstr "PÄrvÄ“rÅ¡ objektus par ceļiem..." -#: ../src/path-chemistry.cpp:327 +#: ../src/path-chemistry.cpp:324 msgid "Object to path" msgstr "Objekts par ceļu" -#: ../src/path-chemistry.cpp:329 +#: ../src/path-chemistry.cpp:326 msgid "No objects to convert to path in the selection." msgstr "AtlasÄ«tajÄ nav par ceļu pÄrvÄ“rÅ¡amu objektu." -#: ../src/path-chemistry.cpp:618 +#: ../src/path-chemistry.cpp:613 msgid "Select path(s) to reverse." msgstr "Atlasiet otrÄdi apgriežamo(s) ceļu(s)." -#: ../src/path-chemistry.cpp:627 +#: ../src/path-chemistry.cpp:622 msgid "Reversing paths..." msgstr "Apgriež ceļu otrÄdi..." -#: ../src/path-chemistry.cpp:662 +#: ../src/path-chemistry.cpp:657 msgid "Reverse path" msgstr "Apgriezt ceļu otrÄdi" -#: ../src/path-chemistry.cpp:664 +#: ../src/path-chemistry.cpp:659 msgid "No paths to reverse in the selection." msgstr "AtlasÄ«tajÄ nav otrÄdi apgriežamu ceļu." @@ -10765,7 +10772,7 @@ msgstr "Open Font licence" #. 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/filedialogimpl-win32.cpp:1960 ../src/ui/dialog/object-attributes.cpp:57 msgid "Title:" msgstr "Nosaukums:" @@ -10903,45 +10910,50 @@ msgstr "XML fragments RDF 'License' sadaļai" msgid "Fixup broken links" msgstr "Labot nederÄ«gÄs saites" -#: ../src/selection-chemistry.cpp:406 +#: ../src/selection-chemistry.cpp:401 msgid "Delete text" msgstr "DzÄ“st tekstu" -#: ../src/selection-chemistry.cpp:414 +#: ../src/selection-chemistry.cpp:409 msgid "Nothing was deleted." msgstr "Nekas nav izdzÄ“st." -#: ../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:965 ../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 +#: ../src/selection-chemistry.cpp:426 ../src/ui/dialog/calligraphic-profile-rename.cpp:75 ../src/ui/dialog/swatches.cpp:277 ../src/ui/tools/text-tool.cpp:965 ../src/widgets/eraser-toolbar.cpp:93 ../src/widgets/gradient-toolbar.cpp:1184 +#: ../src/widgets/gradient-toolbar.cpp:1198 ../src/widgets/gradient-toolbar.cpp:1212 ../src/widgets/node-toolbar.cpp:401 msgid "Delete" msgstr "DzÄ“st" -#: ../src/selection-chemistry.cpp:461 +#: ../src/selection-chemistry.cpp:454 msgid "Select object(s) to duplicate." msgstr "Atlasiet dublÄ“jamo(s) objektu(s)." -#: ../src/selection-chemistry.cpp:572 +#: ../src/selection-chemistry.cpp:551 +#, c-format +msgid "%s copy" +msgstr "%s kopÄ“t" + +#: ../src/selection-chemistry.cpp:574 msgid "Delete all" msgstr "DzÄ“st visu" -#: ../src/selection-chemistry.cpp:763 +#: ../src/selection-chemistry.cpp:762 msgid "Select some objects to group." msgstr "Atlasiet dažus objektus grupēšanai." -#: ../src/selection-chemistry.cpp:778 +#: ../src/selection-chemistry.cpp:775 msgctxt "Verb" msgid "Group" msgstr "GrupÄ“t" -#: ../src/selection-chemistry.cpp:801 +#: ../src/selection-chemistry.cpp:798 msgid "Select a group to ungroup." msgstr "Atlasiet atgrupÄ“jamo grupu." -#: ../src/selection-chemistry.cpp:816 +#: ../src/selection-chemistry.cpp:813 msgid "No groups to ungroup in the selection." msgstr "AtlasÄ“ nav atgrupÄ“jamu grupu." -#: ../src/selection-chemistry.cpp:874 ../src/sp-item-group.cpp:575 +#: ../src/selection-chemistry.cpp:869 ../src/sp-item-group.cpp:554 msgid "Ungroup" msgstr "AtgrupÄ“t" @@ -10949,344 +10961,344 @@ msgstr "AtgrupÄ“t" msgid "Select object(s) to raise." msgstr "Atlasiet objektu(s), kurus pacelt augstÄk." -#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1019 ../src/selection-chemistry.cpp:1047 ../src/selection-chemistry.cpp:1109 +#: ../src/selection-chemistry.cpp:962 ../src/selection-chemistry.cpp:1015 ../src/selection-chemistry.cpp:1041 ../src/selection-chemistry.cpp:1099 msgid "You cannot raise/lower objects from different groups or layers." msgstr "JÅ«s nevarat pacelt/nolaist objektus no dažÄdÄm grupÄm vai slÄņiem." #. TRANSLATORS: "Raise" means "to raise an object" in the undo history -#: ../src/selection-chemistry.cpp:1003 +#: ../src/selection-chemistry.cpp:999 msgctxt "Undo action" msgid "Raise" msgstr "Pacelt" -#: ../src/selection-chemistry.cpp:1011 +#: ../src/selection-chemistry.cpp:1007 msgid "Select object(s) to raise to top." msgstr "Atlasiet objektu(s), kurus pacelt paÅ¡Ä augÅ¡Ä." -#: ../src/selection-chemistry.cpp:1034 +#: ../src/selection-chemistry.cpp:1028 msgid "Raise to top" msgstr "Pacelt paÅ¡Ä augÅ¡Ä" -#: ../src/selection-chemistry.cpp:1041 +#: ../src/selection-chemistry.cpp:1035 msgid "Select object(s) to lower." msgstr "Atlasiet objektu(s), kurus nolaist zemÄk." #. TRANSLATORS: "Lower" means "to lower an object" in the undo history -#: ../src/selection-chemistry.cpp:1093 +#: ../src/selection-chemistry.cpp:1083 msgctxt "Undo action" msgid "Lower" msgstr "Nolaist zemÄk" -#: ../src/selection-chemistry.cpp:1101 +#: ../src/selection-chemistry.cpp:1091 msgid "Select object(s) to lower to bottom." msgstr "Atlasiet objektu(s), kurus nolaist paÅ¡Ä apakÅ¡Ä." -#: ../src/selection-chemistry.cpp:1136 +#: ../src/selection-chemistry.cpp:1122 msgid "Lower to bottom" msgstr "Nolaist paÅ¡Ä augÅ¡Ä" -#: ../src/selection-chemistry.cpp:1146 +#: ../src/selection-chemistry.cpp:1132 msgid "Nothing to undo." msgstr "Nav ko atcelt." -#: ../src/selection-chemistry.cpp:1157 +#: ../src/selection-chemistry.cpp:1143 msgid "Nothing to redo." msgstr "Nav ko atkÄrtot." -#: ../src/selection-chemistry.cpp:1229 +#: ../src/selection-chemistry.cpp:1215 msgid "Paste" msgstr "IelÄ«mÄ“t" -#: ../src/selection-chemistry.cpp:1237 +#: ../src/selection-chemistry.cpp:1223 msgid "Paste style" msgstr "IelÄ«mÄ“t stilu" -#: ../src/selection-chemistry.cpp:1247 +#: ../src/selection-chemistry.cpp:1233 msgid "Paste live path effect" msgstr "IelÄ«mÄ“t ceļa (LPE) efektu" -#: ../src/selection-chemistry.cpp:1269 +#: ../src/selection-chemistry.cpp:1255 msgid "Select object(s) to remove live path effects from." msgstr "Atlasiet objektu(s), no kuriem jÄaizvÄc ceļa (LPE) efekti." -#: ../src/selection-chemistry.cpp:1281 +#: ../src/selection-chemistry.cpp:1267 msgid "Remove live path effect" msgstr "AizvÄkt ceļa (LPE) efektu" -#: ../src/selection-chemistry.cpp:1292 +#: ../src/selection-chemistry.cpp:1278 msgid "Select object(s) to remove filters from." msgstr "Atlasiet objektu(s), no kuriem jÄaizvÄc filtri." -#: ../src/selection-chemistry.cpp:1302 ../src/ui/dialog/filter-effects-dialog.cpp:1678 +#: ../src/selection-chemistry.cpp:1288 ../src/ui/dialog/filter-effects-dialog.cpp:1693 msgid "Remove filter" msgstr "AizvÄkt filtru" -#: ../src/selection-chemistry.cpp:1311 +#: ../src/selection-chemistry.cpp:1297 msgid "Paste size" msgstr "IelÄ«mÄ“t izmÄ“rus" -#: ../src/selection-chemistry.cpp:1320 +#: ../src/selection-chemistry.cpp:1306 msgid "Paste size separately" msgstr "IelÄ«mÄ“t izmÄ“rus atsevišķi" -#: ../src/selection-chemistry.cpp:1349 +#: ../src/selection-chemistry.cpp:1335 msgid "Select object(s) to move to the layer above." msgstr "Atlasiet objektu(s), ko pÄrvietot uz slÄni virs paÅ¡reizÄ“jÄ." -#: ../src/selection-chemistry.cpp:1376 +#: ../src/selection-chemistry.cpp:1360 msgid "Raise to next layer" msgstr "Pacelt uz nÄkoÅ¡o slÄni" -#: ../src/selection-chemistry.cpp:1383 +#: ../src/selection-chemistry.cpp:1367 msgid "No more layers above." msgstr "Nav augstÄka slÄņa par Å¡o." -#: ../src/selection-chemistry.cpp:1395 +#: ../src/selection-chemistry.cpp:1378 msgid "Select object(s) to move to the layer below." msgstr "Atlasiet objektu(s), ko pÄrvietot uz slÄni zem paÅ¡reizÄ“jÄ." -#: ../src/selection-chemistry.cpp:1422 +#: ../src/selection-chemistry.cpp:1403 msgid "Lower to previous layer" msgstr "Nolaist uz iepriekšējo slÄni" -#: ../src/selection-chemistry.cpp:1429 +#: ../src/selection-chemistry.cpp:1410 msgid "No more layers below." msgstr "Nav zemÄka slÄņa par Å¡o." -#: ../src/selection-chemistry.cpp:1441 +#: ../src/selection-chemistry.cpp:1420 msgid "Select object(s) to move." msgstr "Atlasiet pÄrvietojamo(s) objektu(s)." -#: ../src/selection-chemistry.cpp:1459 ../src/verbs.cpp:2656 +#: ../src/selection-chemistry.cpp:1437 ../src/verbs.cpp:2625 msgid "Move selection to layer" msgstr "PÄrvietot atlasÄ«to uz slÄni" #. 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:1526 ../src/seltrans.cpp:390 msgid "Cannot transform an embedded SVG." msgstr "Nav iespÄ“jams pÄrveidot iegulto SVG." -#: ../src/selection-chemistry.cpp:1720 +#: ../src/selection-chemistry.cpp:1696 msgid "Remove transform" msgstr "AizvÄkt pÄrveidojumu" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CCW" msgstr "Pagriezt par 90° CCW" -#: ../src/selection-chemistry.cpp:1827 +#: ../src/selection-chemistry.cpp:1803 msgid "Rotate 90° CW" msgstr "Pagriezt par 90° CW" -#: ../src/selection-chemistry.cpp:1848 ../src/seltrans.cpp:483 ../src/ui/dialog/transformation.cpp:893 +#: ../src/selection-chemistry.cpp:1824 ../src/seltrans.cpp:483 ../src/ui/dialog/transformation.cpp:891 msgid "Rotate" msgstr "Pagriezt" -#: ../src/selection-chemistry.cpp:2204 +#: ../src/selection-chemistry.cpp:2173 msgid "Rotate by pixels" msgstr "Pagriezt pa pikseļiem" -#: ../src/selection-chemistry.cpp:2234 ../src/seltrans.cpp:480 ../src/ui/dialog/transformation.cpp:868 ../share/extensions/interp_att_g.inx.h:12 +#: ../src/selection-chemistry.cpp:2203 ../src/seltrans.cpp:480 ../src/ui/dialog/transformation.cpp:865 ../src/ui/widget/page-sizer.cpp:448 ../share/extensions/interp_att_g.inx.h:12 msgid "Scale" msgstr "MÄ“rogot" -#: ../src/selection-chemistry.cpp:2259 +#: ../src/selection-chemistry.cpp:2228 msgid "Scale by whole factor" msgstr "MÄ“rogot veselu skaitu reižu" -#: ../src/selection-chemistry.cpp:2274 +#: ../src/selection-chemistry.cpp:2243 msgid "Move vertically" msgstr "PÄrvietot vertikÄli" -#: ../src/selection-chemistry.cpp:2277 +#: ../src/selection-chemistry.cpp:2246 msgid "Move horizontally" msgstr "PÄrvietot horizontÄli" -#: ../src/selection-chemistry.cpp:2280 ../src/selection-chemistry.cpp:2306 ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:806 +#: ../src/selection-chemistry.cpp:2249 ../src/selection-chemistry.cpp:2275 ../src/seltrans.cpp:477 ../src/ui/dialog/transformation.cpp:802 msgid "Move" msgstr "PÄrvietot" -#: ../src/selection-chemistry.cpp:2300 +#: ../src/selection-chemistry.cpp:2269 msgid "Move vertically by pixels" msgstr "PÄrvietot vertikÄli pa pikseļiem" -#: ../src/selection-chemistry.cpp:2303 +#: ../src/selection-chemistry.cpp:2272 msgid "Move horizontally by pixels" msgstr "PÄrvietot horizontÄli pa pikseļiem" -#: ../src/selection-chemistry.cpp:2435 +#: ../src/selection-chemistry.cpp:2475 msgid "The selection has no applied path effect." msgstr "AtlasÄ«tajam nav pielietots neviens ceļa efekts." -#: ../src/selection-chemistry.cpp:2607 ../src/ui/dialog/clonetiler.cpp:2223 +#: ../src/selection-chemistry.cpp:2567 ../src/ui/dialog/clonetiler.cpp:2221 msgid "Select an object to clone." msgstr "Atlasiet klonÄ“jamo objektu." -#: ../src/selection-chemistry.cpp:2643 +#: ../src/selection-chemistry.cpp:2602 msgctxt "Action" msgid "Clone" msgstr "KlonÄ“t" -#: ../src/selection-chemistry.cpp:2659 +#: ../src/selection-chemistry.cpp:2616 msgid "Select clones to relink." msgstr "Atlasiet klonus, kuriem jÄatjauno piesaiste." -#: ../src/selection-chemistry.cpp:2666 +#: ../src/selection-chemistry.cpp:2623 msgid "Copy an object to clipboard to relink clones to." msgstr "NokopÄ“jiet uz starpliktuvi objektu, kuram jÄatjauno klonu saites." -#: ../src/selection-chemistry.cpp:2689 +#: ../src/selection-chemistry.cpp:2644 msgid "No clones to relink in the selection." msgstr "AtlasÄ«tajÄ nav klonu ar atjaunojamu piesaisti." -#: ../src/selection-chemistry.cpp:2692 +#: ../src/selection-chemistry.cpp:2647 msgid "Relink clone" msgstr "Atjaunot klona piesaisti" -#: ../src/selection-chemistry.cpp:2706 +#: ../src/selection-chemistry.cpp:2661 msgid "Select clones to unlink." msgstr "Atlasiet atsaistÄmos klonus." -#: ../src/selection-chemistry.cpp:2762 +#: ../src/selection-chemistry.cpp:2714 msgid "No clones to unlink in the selection." msgstr "AtlasÄ«tajÄ nav atsaistÄmu klonu." -#: ../src/selection-chemistry.cpp:2766 +#: ../src/selection-chemistry.cpp:2718 msgid "Unlink clone" msgstr "AtsaistÄ«t klonu" -#: ../src/selection-chemistry.cpp:2779 +#: ../src/selection-chemistry.cpp:2731 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 "" "Atlasiet klonu, lai pÄrietu pie tÄ oriÄ£inÄla. Atlasiet saistÄ«to nobÄ«di, lai pÄrietu pie tÄs sÄkumpunkta. Atlasiet tekstu gar ceļu, lai pÄrietu pie ceļa. Atlasiet aizpildoÅ¡o tekstu, lai pÄrietu pie tÄ rÄmja." -#: ../src/selection-chemistry.cpp:2827 +#: ../src/selection-chemistry.cpp:2781 msgid "Cannot find the object to select (orphaned clone, offset, textpath, flowed text?)" msgstr "Nevar atrast atlasÄmo objektu (pamests klons, nobÄ«de, teksta ceļš, teksta aizpildÄ«jums?)" -#: ../src/selection-chemistry.cpp:2833 +#: ../src/selection-chemistry.cpp:2787 msgid "The object you're trying to select is not visible (it is in <defs>)" msgstr "Objekts, ko mēģinÄt atlasÄ«t, nav redzams (tas atrodas <defs>)" -#: ../src/selection-chemistry.cpp:2922 +#: ../src/selection-chemistry.cpp:2877 msgid "Select path(s) to fill." msgstr "Atlasiet aizpildÄmo(s) ceļu(s)." -#: ../src/selection-chemistry.cpp:2940 +#: ../src/selection-chemistry.cpp:2895 msgid "Select object(s) to convert to marker." msgstr "Atlasiet objektu(s), kurus vÄ“laties pÄrvÄ“rst par marÄ·ieriem." -#: ../src/selection-chemistry.cpp:3015 +#: ../src/selection-chemistry.cpp:2969 msgid "Objects to marker" msgstr "Objektus par marÄ·ieriem" -#: ../src/selection-chemistry.cpp:3040 +#: ../src/selection-chemistry.cpp:2995 msgid "Select object(s) to convert to guides." msgstr "Atlasiet objektu(s), kurus vÄ“laties pÄrvÄ“rst par palÄ«glÄ«nijÄm." -#: ../src/selection-chemistry.cpp:3063 +#: ../src/selection-chemistry.cpp:3016 msgid "Objects to guides" msgstr "Objektus par palÄ«glÄ«nijam" -#: ../src/selection-chemistry.cpp:3099 +#: ../src/selection-chemistry.cpp:3052 msgid "Select objects to convert to symbol." msgstr "Atlasiet objektus, kurus vÄ“laties pÄrvÄ“rst par simbolu." -#: ../src/selection-chemistry.cpp:3202 +#: ../src/selection-chemistry.cpp:3153 msgid "Group to symbol" msgstr "GrupÄ“t simbola virzienÄ" -#: ../src/selection-chemistry.cpp:3221 +#: ../src/selection-chemistry.cpp:3172 msgid "Select a symbol to extract objects from." msgstr "Atlasiet simbolu, no kura ekstraģēt objektus." -#: ../src/selection-chemistry.cpp:3230 +#: ../src/selection-chemistry.cpp:3181 msgid "Select only one symbol in Symbol dialog to convert to group." msgstr "IzvÄ“lieties tikai vienusimbolu no Simbolu dialoglodziņa,lai to pÄrvÄ“rstu par grupu." -#: ../src/selection-chemistry.cpp:3288 +#: ../src/selection-chemistry.cpp:3237 msgid "Group from symbol" msgstr "GrupÄ“t virzienÄ no simbola" -#: ../src/selection-chemistry.cpp:3306 +#: ../src/selection-chemistry.cpp:3255 msgid "Select object(s) to convert to pattern." msgstr "Atlasiet objektu(s), kurus vÄ“laties pÄrvÄ“rst par faktÅ«ru." -#: ../src/selection-chemistry.cpp:3405 +#: ../src/selection-chemistry.cpp:3351 msgid "Objects to pattern" msgstr "Objektus par faktÅ«ru" -#: ../src/selection-chemistry.cpp:3421 +#: ../src/selection-chemistry.cpp:3367 msgid "Select an object with pattern fill to extract objects from." msgstr "Atlasiet objektu ar faktÅ«ras aizpildÄ«jumu, no kura ekstraģēt objektus." -#: ../src/selection-chemistry.cpp:3482 +#: ../src/selection-chemistry.cpp:3426 msgid "No pattern fills in the selection." msgstr "AtlasÄ«tajÄ nav objektu ar faktÅ«ras aizpildÄ«jumu." -#: ../src/selection-chemistry.cpp:3485 +#: ../src/selection-chemistry.cpp:3429 msgid "Pattern to objects" msgstr "FaktÅ«ru par objektiem" -#: ../src/selection-chemistry.cpp:3576 +#: ../src/selection-chemistry.cpp:3516 msgid "Select object(s) to make a bitmap copy." msgstr "Atlasiet objektu(s) bitkartes kopijas izveidoÅ¡anai." -#: ../src/selection-chemistry.cpp:3580 +#: ../src/selection-chemistry.cpp:3520 msgid "Rendering bitmap..." msgstr "RenderÄ“ bitkarti..." -#: ../src/selection-chemistry.cpp:3767 +#: ../src/selection-chemistry.cpp:3705 msgid "Create bitmap" msgstr "Izveidot bitkarti" -#: ../src/selection-chemistry.cpp:3792 ../src/selection-chemistry.cpp:3911 +#: ../src/selection-chemistry.cpp:3730 ../src/selection-chemistry.cpp:3842 msgid "Select object(s) to create clippath or mask from." msgstr "Atlasiet objektu(s) izgrieÅ¡anas ceļa vai maskas izveidoÅ¡anai." -#: ../src/selection-chemistry.cpp:3885 +#: ../src/selection-chemistry.cpp:3816 msgid "Create Clip Group" msgstr "Izveidot klipu grupu" -#: ../src/selection-chemistry.cpp:3914 +#: ../src/selection-chemistry.cpp:3845 msgid "Select mask object and object(s) to apply clippath or mask to." msgstr "Atlasiet maskas objektu un objektu(s)izgrieÅ¡anas ceļa vai maskas pielietoÅ¡anai." -#: ../src/selection-chemistry.cpp:4095 +#: ../src/selection-chemistry.cpp:3992 msgid "Set clipping path" msgstr "Iestatiet izgrieÅ¡anas ceļu" -#: ../src/selection-chemistry.cpp:4097 +#: ../src/selection-chemistry.cpp:3994 msgid "Set mask" msgstr "IestatÄ«t masku" -#: ../src/selection-chemistry.cpp:4112 +#: ../src/selection-chemistry.cpp:4009 msgid "Select object(s) to remove clippath or mask from." msgstr "Atlasiet objektu(s), kuram(-iem) noņemt izgrieÅ¡anas ceļu vai masku." -#: ../src/selection-chemistry.cpp:4232 +#: ../src/selection-chemistry.cpp:4125 msgid "Release clipping path" msgstr "AtbrÄ«vot izgrieÅ¡anas ceļu" -#: ../src/selection-chemistry.cpp:4234 +#: ../src/selection-chemistry.cpp:4127 msgid "Release mask" msgstr "AtbrÄ«vot masku" -#: ../src/selection-chemistry.cpp:4253 +#: ../src/selection-chemistry.cpp:4146 msgid "Select object(s) to fit canvas to." msgstr "Atlasiet objektu(s), kuriem pielÄgot audekla izmÄ“ru." #. Fit Page -#: ../src/selection-chemistry.cpp:4273 ../src/verbs.cpp:2992 +#: ../src/selection-chemistry.cpp:4166 ../src/verbs.cpp:2961 msgid "Fit Page to Selection" msgstr "PielÄgot lapu atlasÄ«tajam" -#: ../src/selection-chemistry.cpp:4302 ../src/verbs.cpp:2994 +#: ../src/selection-chemistry.cpp:4195 ../src/verbs.cpp:2963 msgid "Fit Page to Drawing" msgstr "PielÄgot lapu zÄ«mÄ“jumam" -#: ../src/selection-chemistry.cpp:4323 ../src/verbs.cpp:2996 +#: ../src/selection-chemistry.cpp:4216 ../src/verbs.cpp:2965 msgid "Fit Page to Selection or Drawing" msgstr "PielÄgojiet lapu atlasÄ«tajam vai zÄ«mÄ“jumam" @@ -11369,12 +11381,12 @@ msgid "Use Shift+D to look up frame" msgstr "Izmantojiet Shift+D, lai sameklÄ“tu rÄmi" #: ../src/selection-describer.cpp:236 -#, c-format +#, fuzzy, c-format msgid "%1$i objects selected of type %2$s" msgid_plural "%1$i objects selected of types %2$s" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgstr[0] "izvÄ“lÄ“ts %i objekts ar tipu %s" +msgstr[1] "izvÄ“lÄ“ti %i objekti ar tipu %s" +msgstr[2] "izvÄ“lÄ“ti %i objekti ar tipu %s" #: ../src/selection-describer.cpp:246 #, c-format @@ -11404,47 +11416,47 @@ msgstr "Griezt atlasÄ«to; ar Ctrl - pievilkt leņķim; ar Shift msgid "Center of rotation and skewing: drag to reposition; scaling with Shift also uses this center" msgstr "GrieÅ¡anas un šķiebÅ¡anas centrs: velciet, lai manÄ«tu novietojumu; mÄ“rogoÅ¡ana ar Shift arÄ« lieto Å¡o centru" -#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:981 +#: ../src/seltrans.cpp:486 ../src/ui/dialog/transformation.cpp:980 msgid "Skew" msgstr "Sašķiebt" -#: ../src/seltrans.cpp:499 +#: ../src/seltrans.cpp:500 msgid "Set center" msgstr "IestatÄ«t centru" -#: ../src/seltrans.cpp:574 +#: ../src/seltrans.cpp:573 msgid "Stamp" msgstr "ZÄ«mogs" -#: ../src/seltrans.cpp:723 +#: ../src/seltrans.cpp:722 msgid "Reset center" msgstr "AtiestatÄ«t centru" -#: ../src/seltrans.cpp:955 ../src/seltrans.cpp:1060 +#: ../src/seltrans.cpp:954 ../src/seltrans.cpp:1059 #, c-format msgid "Scale: %0.2f%% x %0.2f%%; with Ctrl to lock ratio" msgstr "MÄ“rogot: %0.2f%% x %0.2f%%; ar Ctrl - slÄ“gt attiecÄ«bu" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1199 +#: ../src/seltrans.cpp:1198 #, c-format msgid "Skew: %0.2f°; with Ctrl to snap angle" msgstr "Å Ä·iebt: %0.2f°; ar Ctrl - pievilkt leņķim" #. TRANSLATORS: don't modify the first ";" #. (it will NOT be displayed as ";" - only the second one will be) -#: ../src/seltrans.cpp:1274 +#: ../src/seltrans.cpp:1273 #, c-format msgid "Rotate: %0.2f°; with Ctrl to snap angle" msgstr "Griezt: %0.2f°; ar Ctrl - pievilkt leņķim" -#: ../src/seltrans.cpp:1311 +#: ../src/seltrans.cpp:1310 #, c-format msgid "Move center to %s, %s" msgstr "PÄrvietot centru uz %s, %s" -#: ../src/seltrans.cpp:1465 +#: ../src/seltrans.cpp:1464 #, c-format msgid "Move by %s, %s; with Ctrl to restrict to horizontal/vertical; with Shift to disable snapping" msgstr "PÄrvietot par %s, %s; ar Ctrl - lai ierobežotu horizontÄli/vertikÄli; ar Shift - atslÄ“gt piesaisti" @@ -11454,7 +11466,7 @@ msgstr "PÄrvietot par %s, %s; ar Ctrl - lai ierobežotu horizont msgid "Keyboard directory (%s) is unavailable." msgstr "KlaviatÅ«ras mape (%s) nav pieejama." -#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1298 ../src/ui/dialog/export.cpp:1332 +#: ../src/shortcuts.cpp:337 ../src/ui/dialog/export.cpp:1296 ../src/ui/dialog/export.cpp:1330 msgid "Select a filename for exporting" msgstr "IzvÄ“lieties eksportÄ“jamÄs datnes nosaukumu" @@ -11471,20 +11483,20 @@ msgstr "lÄ«dz %s" msgid "without URI" msgstr "bez URI" -#: ../src/sp-ellipse.cpp:344 +#: ../src/sp-ellipse.cpp:361 msgid "Segment" msgstr "Segments" -#: ../src/sp-ellipse.cpp:346 +#: ../src/sp-ellipse.cpp:363 msgid "Arc" msgstr "Loks" #. Ellipse -#: ../src/sp-ellipse.cpp:349 ../src/sp-ellipse.cpp:356 ../src/ui/dialog/inkscape-preferences.cpp:412 ../src/widgets/pencil-toolbar.cpp:163 +#: ../src/sp-ellipse.cpp:366 ../src/sp-ellipse.cpp:373 ../src/ui/dialog/inkscape-preferences.cpp:412 ../src/widgets/pencil-toolbar.cpp:163 msgid "Ellipse" msgstr "Elipse" -#: ../src/sp-ellipse.cpp:353 +#: ../src/sp-ellipse.cpp:370 msgid "Circle" msgstr "Aplis" @@ -11509,7 +11521,7 @@ msgstr "Teksta aizpildÄ«jums" msgid "Linked Flowed Text" msgstr "SaistÄ«tais teksta aizpildÄ«jums" -#: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 ../src/ui/tools/text-tool.cpp:1557 +#: ../src/sp-flowtext.cpp:288 ../src/sp-text.cpp:367 ../src/ui/tools/text-tool.cpp:1556 msgid " [truncated]" msgstr " [nogriezts]" @@ -11525,7 +11537,7 @@ msgstr[2] "(%d rakstzÄ«mes%s)" msgid "Create Guides Around the Page" msgstr "Izveidot palÄ«glÄ«nijas apkÄrt lapai" -#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2549 +#: ../src/sp-guide.cpp:258 ../src/verbs.cpp:2518 msgid "Delete All Guides" msgstr "DzÄ“st visas palÄ«glÄ«nijas" @@ -11567,40 +11579,40 @@ msgstr "[nederÄ«ga atsauce]: %s" msgid "%d × %d: %s" msgstr "%d × %d: %s" -#: ../src/sp-item-group.cpp:322 +#: ../src/sp-item-group.cpp:307 msgid "Group" msgstr "Grupa" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d object" msgstr "no %d objekta" -#: ../src/sp-item-group.cpp:328 ../src/sp-switch.cpp:68 +#: ../src/sp-item-group.cpp:313 ../src/sp-switch.cpp:69 #, c-format msgid "of %d objects" msgstr "no %d objektiem" -#: ../src/sp-item.cpp:1051 ../src/verbs.cpp:214 +#: ../src/sp-item.cpp:1030 ../src/verbs.cpp:213 msgid "Object" msgstr "Objekts" -#: ../src/sp-item.cpp:1063 +#: ../src/sp-item.cpp:1042 #, c-format msgid "%s; clipped" msgstr "%s; izgriezts" -#: ../src/sp-item.cpp:1069 +#: ../src/sp-item.cpp:1048 #, c-format msgid "%s; masked" msgstr "%s; maskÄ“ts" -#: ../src/sp-item.cpp:1079 +#: ../src/sp-item.cpp:1058 #, c-format msgid "%s; filtered (%s)" msgstr "%s; filtrÄ“ts (%s)" -#: ../src/sp-item.cpp:1081 +#: ../src/sp-item.cpp:1060 #, c-format msgid "%s; filtered" msgstr "%s; filtrÄ“ts" @@ -11663,7 +11675,7 @@ msgid "Polyline" msgstr "Lauzta lÄ«nija" #. Rectangle -#: ../src/sp-rect.cpp:153 ../src/ui/dialog/inkscape-preferences.cpp:402 +#: ../src/sp-rect.cpp:161 ../src/ui/dialog/inkscape-preferences.cpp:402 msgid "Rectangle" msgstr "TaisnstÅ«ris" @@ -11680,11 +11692,11 @@ msgid "with %3f turns" msgstr "ar %3f vijumiem" #. Star -#: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 ../src/widgets/star-toolbar.cpp:471 +#: ../src/sp-star.cpp:246 ../src/ui/dialog/inkscape-preferences.cpp:416 ../src/widgets/star-toolbar.cpp:469 msgid "Star" msgstr "Zvaigzne" -#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:464 +#: ../src/sp-star.cpp:247 ../src/widgets/star-toolbar.cpp:462 msgid "Polygon" msgstr "DaudzstÅ«ris" @@ -11701,11 +11713,11 @@ msgstr "ar %d virsotni" msgid "with %d vertices" msgstr "ar %d virsotnÄ“m" -#: ../src/sp-switch.cpp:62 +#: ../src/sp-switch.cpp:63 msgid "Conditional Group" msgstr "Grupēšana pÄ“c nosacÄ«juma" -#: ../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 +#: ../src/sp-text.cpp:351 ../src/verbs.cpp:347 ../share/extensions/lorem_ipsum.inx.h:8 ../share/extensions/replace_font.inx.h:11 ../share/extensions/split.inx.h:10 ../share/extensions/text_braille.inx.h:2 #: ../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" @@ -11729,7 +11741,7 @@ msgstr "KlonÄ“tÄs rakstzÄ«mes dati" msgid " from " msgstr " no " -#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:269 +#: ../src/sp-tref.cpp:240 ../src/sp-use.cpp:271 msgid "[orphaned]" msgstr "[bÄrenis]" @@ -11737,30 +11749,30 @@ msgstr "[bÄrenis]" msgid "Text Span" msgstr "Teksta platums" -#: ../src/sp-use.cpp:232 +#: ../src/sp-use.cpp:234 msgid "Symbol" msgstr "Simbols" -#: ../src/sp-use.cpp:234 +#: ../src/sp-use.cpp:236 msgid "Clone" msgstr "KlonÄ“t" -#: ../src/sp-use.cpp:242 ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:244 ../src/sp-use.cpp:246 ../src/sp-use.cpp:248 #, c-format msgid "called %s" msgstr "izsauca %s" -#: ../src/sp-use.cpp:246 +#: ../src/sp-use.cpp:248 msgid "Unnamed Symbol" msgstr "Nenosaukts simbols" #. TRANSLATORS: Used for statusbar description for long chains: #. * "Clone of: Clone of: ... in Layer 1". -#: ../src/sp-use.cpp:255 +#: ../src/sp-use.cpp:257 msgid "..." msgstr "..." -#: ../src/sp-use.cpp:264 +#: ../src/sp-use.cpp:266 #, c-format msgid "of: %s" msgstr "no: %s" @@ -11797,147 +11809,147 @@ msgstr "Atlasiet tieÅ¡i 2 ceļus, lai veiktu atņemsanu, dalīšanu vai c msgid "Unable to determine the z-order of the objects selected for difference, XOR, division, or path cut." msgstr "Nav iespÄ“jams noteikt kÄrtÄ«bu uz z-ass objektiem, kas atlasÄ«ti atņemÅ¡anai, XOR, dalīšanai vai ceļa grieÅ¡anai." -#: ../src/splivarot.cpp:407 +#: ../src/splivarot.cpp:406 msgid "One of the objects is not a path, cannot perform boolean operation." msgstr "Viens no objektiem nav ceļš, nav iespÄ“jams izpildÄ«t Bula darbÄ«bu." -#: ../src/splivarot.cpp:1157 +#: ../src/splivarot.cpp:1150 msgid "Select stroked path(s) to convert stroke to path." msgstr "Atlasiet apmales ceļu(s), lai pÄrveidotu apmali par ceļu." -#: ../src/splivarot.cpp:1516 +#: ../src/splivarot.cpp:1506 msgid "Convert stroke to path" msgstr "PÄrvÄ“rst apmali par ceļu" #. TRANSLATORS: "to outline" means "to convert stroke to path" -#: ../src/splivarot.cpp:1519 +#: ../src/splivarot.cpp:1509 msgid "No stroked paths in the selection." msgstr "AtlasÄ«tajÄ nav vilktu ceļu." -#: ../src/splivarot.cpp:1590 +#: ../src/splivarot.cpp:1580 msgid "Selected object is not a path, cannot inset/outset." msgstr "AtlasÄ«tais objekts nav ceļs, nav iespÄ“jams saÄ«sinÄt/pagarinÄt." -#: ../src/splivarot.cpp:1681 ../src/splivarot.cpp:1746 +#: ../src/splivarot.cpp:1671 ../src/splivarot.cpp:1738 msgid "Create linked offset" msgstr "Izveidot saistÄ«to nobÄ«di" -#: ../src/splivarot.cpp:1682 ../src/splivarot.cpp:1747 +#: ../src/splivarot.cpp:1672 ../src/splivarot.cpp:1739 msgid "Create dynamic offset" msgstr "Izveidot dinamisko nobÄ«di" -#: ../src/splivarot.cpp:1772 +#: ../src/splivarot.cpp:1764 msgid "Select path(s) to inset/outset." msgstr "Atlasiet saÄ«sinÄmo(s)/pagarinÄmo(s) ceļus." -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Outset path" msgstr "PagarinÄt ceļu" -#: ../src/splivarot.cpp:1968 +#: ../src/splivarot.cpp:1957 msgid "Inset path" msgstr "SaÄ«sinÄt ceļu" -#: ../src/splivarot.cpp:1970 +#: ../src/splivarot.cpp:1959 msgid "No paths to inset/outset in the selection." msgstr "AtlasÄ«tajÄ nav saÄ«sinÄmu/pagarinÄmu ceļu." -#: ../src/splivarot.cpp:2132 +#: ../src/splivarot.cpp:2121 msgid "Simplifying paths (separately):" msgstr "VienkÄrÅ¡o ceļus (atsevišķi):" -#: ../src/splivarot.cpp:2134 +#: ../src/splivarot.cpp:2123 msgid "Simplifying paths:" msgstr "VienkÄrÅ¡o ceļus:" -#: ../src/splivarot.cpp:2171 +#: ../src/splivarot.cpp:2160 #, c-format msgid "%s %d of %d paths simplified..." msgstr "%s %d no %d ceļiem vienkÄrÅ¡oti..." -#: ../src/splivarot.cpp:2184 +#: ../src/splivarot.cpp:2173 #, c-format msgid "%d paths simplified." msgstr "%d ceļi vienkÄrÅ¡oti." -#: ../src/splivarot.cpp:2198 +#: ../src/splivarot.cpp:2187 msgid "Select path(s) to simplify." msgstr "Atlasiet vienkÄrÅ¡ojamo(s) ceļu(s)." -#: ../src/splivarot.cpp:2214 +#: ../src/splivarot.cpp:2203 msgid "No paths to simplify in the selection." msgstr "AtlasÄ«tajÄ nav vienkÄrÅ¡ojamu ceļu." -#: ../src/text-chemistry.cpp:94 +#: ../src/text-chemistry.cpp:91 msgid "Select a text and a path to put text on path." msgstr "Atlasiet tekstu un ceļu, lai izkÄrtotu tekstu gar ceļu." -#: ../src/text-chemistry.cpp:99 +#: ../src/text-chemistry.cpp:96 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 "Å is teksta objekts jau ir izkÄrtots gar ceļu, aizvÄciet to no ceļa vispirms. Izmantojiet Shift+D, lai sameklÄ“tu tÄ ceļu." #. rect is the only SPShape which is not yet, and thus SVG forbids us from putting text on it -#: ../src/text-chemistry.cpp:105 +#: ../src/text-chemistry.cpp:102 msgid "You cannot put text on a rectangle in this version. Convert rectangle to path first." msgstr "JÅ«s nevarat izkÄrtot tekstu gar taisnstÅ«ri Å¡ajÄ versijÄ. Vispirms pÄrveidojiet taisnstÅ«ri par ceļu." -#: ../src/text-chemistry.cpp:115 +#: ../src/text-chemistry.cpp:112 msgid "The flowed text(s) must be visible in order to be put on a path." msgstr "Lai novietotu uz ceļa, teksta aizpildÄ«jumam(-iem) jÄbÅ«t redzamam (-iem)." -#: ../src/text-chemistry.cpp:185 ../src/verbs.cpp:2571 +#: ../src/text-chemistry.cpp:182 ../src/verbs.cpp:2540 msgid "Put text on path" msgstr "IzkÄrtot tekstu gar ceļu" -#: ../src/text-chemistry.cpp:197 +#: ../src/text-chemistry.cpp:194 msgid "Select a text on path to remove it from path." msgstr "Atlasiet gar ceļu izkÄrtotu tekstu, lai aizvÄktu to no ceļa." -#: ../src/text-chemistry.cpp:218 +#: ../src/text-chemistry.cpp:213 msgid "No texts-on-paths in the selection." msgstr "AtlasÄ«tajÄ nav teksta gar ceļu." -#: ../src/text-chemistry.cpp:221 ../src/verbs.cpp:2573 +#: ../src/text-chemistry.cpp:216 ../src/verbs.cpp:2542 msgid "Remove text from path" msgstr "AizvÄkt tekstu no ceļa" -#: ../src/text-chemistry.cpp:262 ../src/text-chemistry.cpp:283 +#: ../src/text-chemistry.cpp:257 ../src/text-chemistry.cpp:277 msgid "Select text(s) to remove kerns from." msgstr "Atlasiettekstu(s), no kuriem jÄaizvÄc rakstsavirze." -#: ../src/text-chemistry.cpp:286 +#: ../src/text-chemistry.cpp:280 msgid "Remove manual kerns" msgstr "AizvÄkt rokas rakstsavirzi" -#: ../src/text-chemistry.cpp:306 +#: ../src/text-chemistry.cpp:300 msgid "Select a text and one or more paths or shapes to flow text into frame." msgstr "Atlasiet tekstu un vienu vai vairÄkus ceļus vai figÅ«ras, lai aizpildÄ«tu rÄmi ar tekstu." -#: ../src/text-chemistry.cpp:376 +#: ../src/text-chemistry.cpp:369 msgid "Flow text into shape" msgstr "AizpildÄ«t figÅ«ru ar tekstu" -#: ../src/text-chemistry.cpp:398 +#: ../src/text-chemistry.cpp:391 msgid "Select a flowed text to unflow it." msgstr "Atlasiet aizpildoÅ¡o tekstu, lai aizvÄktu to no objekta." -#: ../src/text-chemistry.cpp:472 +#: ../src/text-chemistry.cpp:464 msgid "Unflow flowed text" msgstr "AizvÄkt teksta aizpildÄ«jumu" -#: ../src/text-chemistry.cpp:484 +#: ../src/text-chemistry.cpp:476 msgid "Select flowed text(s) to convert." msgstr "Atlasiet pÄrvÄ“rÅ¡amo teksta aizpildÄ«jumu." -#: ../src/text-chemistry.cpp:502 +#: ../src/text-chemistry.cpp:494 msgid "The flowed text(s) must be visible in order to be converted." msgstr "Lai pÄrvÄ“rstu, teksta aizpildÄ«jumam(-iem) jÄbÅ«t redzamam (-iem)." -#: ../src/text-chemistry.cpp:530 +#: ../src/text-chemistry.cpp:521 msgid "Convert flowed text to text" msgstr "PÄrvÄ“rst teksta aizpildÄ«jumu par tekstu" -#: ../src/text-chemistry.cpp:535 +#: ../src/text-chemistry.cpp:526 msgid "No flowed text(s) to convert in the selection." msgstr "AtlasÄ«tajÄ nav pÄrvÄ“rÅ¡ama(-u) aizpildoÅ¡Ä(-o) teksta(-u)." @@ -11996,7 +12008,7 @@ msgstr "Vektorizēšana: pabeigta. Izveidoti %ld mezgli" msgid "Nothing was copied." msgstr "Nekas nav nokopÄ“ts." -#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:605 ../src/ui/clipboard.cpp:634 +#: ../src/ui/clipboard.cpp:393 ../src/ui/clipboard.cpp:607 ../src/ui/clipboard.cpp:636 msgid "Nothing on the clipboard." msgstr "StarpliktuvÄ“ nav nekÄ." @@ -12016,16 +12028,16 @@ msgstr "Atlasiet objektu(s), kuriem pielietot izmÄ“ru no starpliktuves." msgid "No size on the clipboard." msgstr "IzmÄ“rs nav atrodams starpliktuvÄ“." -#: ../src/ui/clipboard.cpp:567 +#: ../src/ui/clipboard.cpp:568 msgid "Select object(s) to paste live path effect to." msgstr "Atlasiet objektu(s), kuriem jÄielÄ«mÄ“ ceļa (LPE) efekts." #. no_effect: -#: ../src/ui/clipboard.cpp:592 +#: ../src/ui/clipboard.cpp:594 msgid "No effect on the clipboard." msgstr "StarpliktuvÄ“ nav neviena efekta." -#: ../src/ui/clipboard.cpp:611 ../src/ui/clipboard.cpp:648 +#: ../src/ui/clipboard.cpp:613 ../src/ui/clipboard.cpp:650 msgid "Clipboard does not contain a path." msgstr "Ceļš nav atrodams starpliktuvÄ“." @@ -12073,229 +12085,229 @@ msgstr "about.svg" msgid "translator-credits" msgstr "TulkotÄji" -#: ../src/ui/dialog/align-and-distribute.cpp:171 ../src/ui/dialog/align-and-distribute.cpp:851 +#: ../src/ui/dialog/align-and-distribute.cpp:170 ../src/ui/dialog/align-and-distribute.cpp:847 msgid "Align" msgstr "LÄ«dzinÄt" -#: ../src/ui/dialog/align-and-distribute.cpp:341 ../src/ui/dialog/align-and-distribute.cpp:852 +#: ../src/ui/dialog/align-and-distribute.cpp:338 ../src/ui/dialog/align-and-distribute.cpp:848 msgid "Distribute" msgstr "IzkÄrtot" -#: ../src/ui/dialog/align-and-distribute.cpp:420 +#: ../src/ui/dialog/align-and-distribute.cpp:417 msgid "Minimum horizontal gap (in px units) between bounding boxes" msgstr "MinimÄlais horizontÄlais atstatums (px vienÄ«bÄs) starp robežrÄmjiem" #. TRANSLATORS: "H:" stands for horizontal gap -#: ../src/ui/dialog/align-and-distribute.cpp:422 +#: ../src/ui/dialog/align-and-distribute.cpp:419 msgctxt "Gap" msgid "_H:" msgstr "_H" -#: ../src/ui/dialog/align-and-distribute.cpp:430 +#: ../src/ui/dialog/align-and-distribute.cpp:427 msgid "Minimum vertical gap (in px units) between bounding boxes" msgstr "MinimÄlais vertikÄlais atstatums (px vienÄ«bÄs) starp robežrÄmjiem" #. TRANSLATORS: Vertical gap -#: ../src/ui/dialog/align-and-distribute.cpp:432 +#: ../src/ui/dialog/align-and-distribute.cpp:429 msgctxt "Gap" msgid "_V:" msgstr "_V:" -#: ../src/ui/dialog/align-and-distribute.cpp:467 ../src/ui/dialog/align-and-distribute.cpp:854 ../src/widgets/connector-toolbar.cpp:411 +#: ../src/ui/dialog/align-and-distribute.cpp:464 ../src/ui/dialog/align-and-distribute.cpp:850 ../src/widgets/connector-toolbar.cpp:407 msgid "Remove overlaps" msgstr "AizvÄkt pÄrklÄÅ¡anos" -#: ../src/ui/dialog/align-and-distribute.cpp:498 ../src/widgets/connector-toolbar.cpp:240 +#: ../src/ui/dialog/align-and-distribute.cpp:495 ../src/widgets/connector-toolbar.cpp:236 msgid "Arrange connector network" msgstr "SakÄrtot savienotÄju tÄ«klu" -#: ../src/ui/dialog/align-and-distribute.cpp:591 +#: ../src/ui/dialog/align-and-distribute.cpp:588 msgid "Exchange Positions" msgstr "SamainÄ«t atraÅ¡anÄs vietas" -#: ../src/ui/dialog/align-and-distribute.cpp:625 +#: ../src/ui/dialog/align-and-distribute.cpp:622 msgid "Unclump" msgstr "IzretinÄt" -#: ../src/ui/dialog/align-and-distribute.cpp:697 +#: ../src/ui/dialog/align-and-distribute.cpp:693 msgid "Randomize positions" msgstr "DažÄdot atraÅ¡anÄs vietas" -#: ../src/ui/dialog/align-and-distribute.cpp:800 +#: ../src/ui/dialog/align-and-distribute.cpp:795 msgid "Distribute text baselines" msgstr "IzkliedÄ“t teksta bÄzes lÄ«nijas" -#: ../src/ui/dialog/align-and-distribute.cpp:823 +#: ../src/ui/dialog/align-and-distribute.cpp:819 msgid "Align text baselines" msgstr "LÄ«dzinÄt teksta bÄzes lÄ«nijas" -#: ../src/ui/dialog/align-and-distribute.cpp:853 +#: ../src/ui/dialog/align-and-distribute.cpp:849 msgid "Rearrange" msgstr "PÄrkÄrtot" -#: ../src/ui/dialog/align-and-distribute.cpp:855 ../src/widgets/toolbox.cpp:1729 +#: ../src/ui/dialog/align-and-distribute.cpp:851 ../src/widgets/toolbox.cpp:1725 msgid "Nodes" msgstr "Mezgli" -#: ../src/ui/dialog/align-and-distribute.cpp:869 +#: ../src/ui/dialog/align-and-distribute.cpp:865 msgid "Relative to: " msgstr "AttiecÄ«bÄ pret:" -#: ../src/ui/dialog/align-and-distribute.cpp:870 +#: ../src/ui/dialog/align-and-distribute.cpp:866 msgid "_Treat selection as group: " msgstr "Iz_turÄ“ties pret atlasÄ«to kÄ pret grupu" #. Align -#: ../src/ui/dialog/align-and-distribute.cpp:876 ../src/verbs.cpp:3024 ../src/verbs.cpp:3025 +#: ../src/ui/dialog/align-and-distribute.cpp:872 ../src/verbs.cpp:2993 ../src/verbs.cpp:2994 msgid "Align right edges of objects to the left edge of the anchor" msgstr "SakÄrtot objektu labÄs malas gar enkura kreiso malu" -#: ../src/ui/dialog/align-and-distribute.cpp:879 ../src/verbs.cpp:3026 ../src/verbs.cpp:3027 +#: ../src/ui/dialog/align-and-distribute.cpp:875 ../src/verbs.cpp:2995 ../src/verbs.cpp:2996 msgid "Align left edges" msgstr "LÄ«dzinÄt kreisÄs malas" -#: ../src/ui/dialog/align-and-distribute.cpp:882 ../src/verbs.cpp:3028 ../src/verbs.cpp:3029 +#: ../src/ui/dialog/align-and-distribute.cpp:878 ../src/verbs.cpp:2997 ../src/verbs.cpp:2998 msgid "Center on vertical axis" msgstr "CentrÄ“t uz vertikÄlÄs ass" -#: ../src/ui/dialog/align-and-distribute.cpp:885 ../src/verbs.cpp:3030 ../src/verbs.cpp:3031 +#: ../src/ui/dialog/align-and-distribute.cpp:881 ../src/verbs.cpp:2999 ../src/verbs.cpp:3000 msgid "Align right sides" msgstr "LÄ«dzinÄt labÄs malas" -#: ../src/ui/dialog/align-and-distribute.cpp:888 ../src/verbs.cpp:3032 ../src/verbs.cpp:3033 +#: ../src/ui/dialog/align-and-distribute.cpp:884 ../src/verbs.cpp:3001 ../src/verbs.cpp:3002 msgid "Align left edges of objects to the right edge of the anchor" msgstr "SakÄrtot objektu kreisÄs malas gar enkura labo malu" -#: ../src/ui/dialog/align-and-distribute.cpp:891 ../src/verbs.cpp:3034 ../src/verbs.cpp:3035 +#: ../src/ui/dialog/align-and-distribute.cpp:887 ../src/verbs.cpp:3003 ../src/verbs.cpp:3004 msgid "Align bottom edges of objects to the top edge of the anchor" msgstr "SakÄrtot objektu apakšējÄs malas gar enkura augšējo malu" -#: ../src/ui/dialog/align-and-distribute.cpp:894 ../src/verbs.cpp:3036 ../src/verbs.cpp:3037 +#: ../src/ui/dialog/align-and-distribute.cpp:890 ../src/verbs.cpp:3005 ../src/verbs.cpp:3006 msgid "Align top edges" msgstr "LÄ«dzinÄt augšējÄs malas" -#: ../src/ui/dialog/align-and-distribute.cpp:897 ../src/verbs.cpp:3038 ../src/verbs.cpp:3039 +#: ../src/ui/dialog/align-and-distribute.cpp:893 ../src/verbs.cpp:3007 ../src/verbs.cpp:3008 msgid "Center on horizontal axis" msgstr "CentrÄ“t uz horizontÄlÄs ass" -#: ../src/ui/dialog/align-and-distribute.cpp:900 ../src/verbs.cpp:3040 ../src/verbs.cpp:3041 +#: ../src/ui/dialog/align-and-distribute.cpp:896 ../src/verbs.cpp:3009 ../src/verbs.cpp:3010 msgid "Align bottom edges" msgstr "LÄ«dzinÄt apakšējÄs malas" -#: ../src/ui/dialog/align-and-distribute.cpp:903 ../src/verbs.cpp:3042 ../src/verbs.cpp:3043 +#: ../src/ui/dialog/align-and-distribute.cpp:899 ../src/verbs.cpp:3011 ../src/verbs.cpp:3012 msgid "Align top edges of objects to the bottom edge of the anchor" msgstr "SakÄrtot objektu augšējÄs malas gar enkura apakšējo malu" -#: ../src/ui/dialog/align-and-distribute.cpp:908 +#: ../src/ui/dialog/align-and-distribute.cpp:904 msgid "Align baseline anchors of texts horizontally" msgstr "LÄ«dzinÄt teksta bÄzes lÄ«nijas enkurus horizontÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:911 +#: ../src/ui/dialog/align-and-distribute.cpp:907 msgid "Align baselines of texts" msgstr "LÄ«dzinÄt tekstu bÄzes lÄ«nijas" -#: ../src/ui/dialog/align-and-distribute.cpp:916 +#: ../src/ui/dialog/align-and-distribute.cpp:912 msgid "Make horizontal gaps between objects equal" msgstr "VienÄdot horizontÄlÄs atstarpes starp objektiem" -#: ../src/ui/dialog/align-and-distribute.cpp:920 +#: ../src/ui/dialog/align-and-distribute.cpp:916 msgid "Distribute left edges equidistantly" msgstr "IzkliedÄ“t kreisÄs malas vienÄdos attÄlumos" -#: ../src/ui/dialog/align-and-distribute.cpp:923 +#: ../src/ui/dialog/align-and-distribute.cpp:919 msgid "Distribute centers equidistantly horizontally" msgstr "IzkliedÄ“t centrus vienÄdos attÄlumos horizontÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:926 +#: ../src/ui/dialog/align-and-distribute.cpp:922 msgid "Distribute right edges equidistantly" msgstr "IzkliedÄ“t labÄs malas vienÄdos attÄlumos" -#: ../src/ui/dialog/align-and-distribute.cpp:930 +#: ../src/ui/dialog/align-and-distribute.cpp:926 msgid "Make vertical gaps between objects equal" msgstr "VienÄdot vertikÄlÄs atstarpes starp objektiem" -#: ../src/ui/dialog/align-and-distribute.cpp:934 +#: ../src/ui/dialog/align-and-distribute.cpp:930 msgid "Distribute top edges equidistantly" msgstr "IzkliedÄ“t augšējÄs malas vienÄdos attÄlumos" -#: ../src/ui/dialog/align-and-distribute.cpp:937 +#: ../src/ui/dialog/align-and-distribute.cpp:933 msgid "Distribute centers equidistantly vertically" msgstr "IzkliedÄ“t centrus vienÄdos attÄlumos vertikÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:940 +#: ../src/ui/dialog/align-and-distribute.cpp:936 msgid "Distribute bottom edges equidistantly" msgstr "IzkliedÄ“t apakšējÄs malas vienÄdos attÄlumos" -#: ../src/ui/dialog/align-and-distribute.cpp:945 +#: ../src/ui/dialog/align-and-distribute.cpp:941 msgid "Distribute baseline anchors of texts horizontally" msgstr "IzklÄ«dinÄt teksta bÄzes lÄ«nijas enkurus horizontÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:948 +#: ../src/ui/dialog/align-and-distribute.cpp:944 msgid "Distribute baselines of texts vertically" msgstr "IzkliedÄ“t tekstu bÄzes lÄ«nijas vertikÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:954 ../src/widgets/connector-toolbar.cpp:373 +#: ../src/ui/dialog/align-and-distribute.cpp:950 ../src/widgets/connector-toolbar.cpp:369 msgid "Nicely arrange selected connector network" msgstr "GlÄ«ti sakÄrtot atlasÄ«to savienotÄju tÄ«klu" -#: ../src/ui/dialog/align-and-distribute.cpp:957 +#: ../src/ui/dialog/align-and-distribute.cpp:953 msgid "Exchange positions of selected objects - selection order" msgstr "MainÄ«t atlasÄ«to objektu pozÄ«cijas - atlases secÄ«bÄ" -#: ../src/ui/dialog/align-and-distribute.cpp:960 +#: ../src/ui/dialog/align-and-distribute.cpp:956 msgid "Exchange positions of selected objects - stacking order" msgstr "MainÄ«t atlasÄ«to objektu pozÄ«cijas - krÄvuma secÄ«bÄ" -#: ../src/ui/dialog/align-and-distribute.cpp:963 +#: ../src/ui/dialog/align-and-distribute.cpp:959 msgid "Exchange positions of selected objects - clockwise rotate" msgstr "MainÄ«t atlasÄ«to objektu pozÄ«cijas - mainÄ«t uz riņki" -#: ../src/ui/dialog/align-and-distribute.cpp:968 +#: ../src/ui/dialog/align-and-distribute.cpp:964 msgid "Randomize centers in both dimensions" msgstr "DažÄdot centrus abÄs dimensijÄs" -#: ../src/ui/dialog/align-and-distribute.cpp:971 +#: ../src/ui/dialog/align-and-distribute.cpp:967 msgid "Unclump objects: try to equalize edge-to-edge distances" msgstr "IzretinÄt objektus: censties vienÄdot attÄlumu starp malÄm" -#: ../src/ui/dialog/align-and-distribute.cpp:976 +#: ../src/ui/dialog/align-and-distribute.cpp:972 msgid "Move objects as little as possible so that their bounding boxes do not overlap" msgstr "PÄrvietot objektus cik maz vien iespÄ“jams, lai to robežrÄmji nepÄrklÄtos" -#: ../src/ui/dialog/align-and-distribute.cpp:984 +#: ../src/ui/dialog/align-and-distribute.cpp:980 msgid "Align selected nodes to a common horizontal line" msgstr "SakÄrtot atlasÄ«tos mezglus gar kopÄ“ju horizontÄlu lÄ«niju" -#: ../src/ui/dialog/align-and-distribute.cpp:987 +#: ../src/ui/dialog/align-and-distribute.cpp:983 msgid "Align selected nodes to a common vertical line" msgstr "SakÄrtot atlasÄ«tos mezglus gar kopÄ“ju vertikÄlu lÄ«niju" -#: ../src/ui/dialog/align-and-distribute.cpp:990 +#: ../src/ui/dialog/align-and-distribute.cpp:986 msgid "Distribute selected nodes horizontally" msgstr "IzkliedÄ“t atlasÄ«tos mezglus horizontÄli" -#: ../src/ui/dialog/align-and-distribute.cpp:993 +#: ../src/ui/dialog/align-and-distribute.cpp:989 msgid "Distribute selected nodes vertically" msgstr "IzkliedÄ“t atlasÄ«tos mezglus vertikÄli" #. Rest of the widgetry -#: ../src/ui/dialog/align-and-distribute.cpp:998 +#: ../src/ui/dialog/align-and-distribute.cpp:994 msgid "Last selected" msgstr "PÄ“dÄ“jais atlasÄ«tais" -#: ../src/ui/dialog/align-and-distribute.cpp:999 +#: ../src/ui/dialog/align-and-distribute.cpp:995 msgid "First selected" msgstr "Pirmais atlasÄ«tais" -#: ../src/ui/dialog/align-and-distribute.cpp:1000 +#: ../src/ui/dialog/align-and-distribute.cpp:996 msgid "Biggest object" msgstr "LielÄkais objekts" -#: ../src/ui/dialog/align-and-distribute.cpp:1001 +#: ../src/ui/dialog/align-and-distribute.cpp:997 msgid "Smallest object" msgstr "MazÄkais objekts" -#: ../src/ui/dialog/align-and-distribute.cpp:1004 +#: ../src/ui/dialog/align-and-distribute.cpp:1000 msgid "Selection Area" msgstr "AtlasÄ«tais laukums" @@ -12953,88 +12965,88 @@ msgstr "Objekts nesatur klonÄ“tus raksta elementus." msgid "Select one object whose tiled clones to unclump." msgstr "Atlasiet vienu objektu, kura klonu raksta elementus izretinÄt." -#: ../src/ui/dialog/clonetiler.cpp:2122 +#: ../src/ui/dialog/clonetiler.cpp:2120 msgid "Unclump tiled clones" msgstr "IzretinÄt klonÄ“tos raksta elementus" -#: ../src/ui/dialog/clonetiler.cpp:2151 +#: ../src/ui/dialog/clonetiler.cpp:2149 msgid "Select one object whose tiled clones to remove." msgstr "Atlasiet vienu objektu, kura klonÄ“tos raksta elementus vÄ“laties aizvÄkt." -#: ../src/ui/dialog/clonetiler.cpp:2176 +#: ../src/ui/dialog/clonetiler.cpp:2174 msgid "Delete tiled clones" msgstr "DzÄ“st klonÄ“tos raksta elementus" -#: ../src/ui/dialog/clonetiler.cpp:2229 +#: ../src/ui/dialog/clonetiler.cpp:2227 msgid "If you want to clone several objects, group them and clone the group." msgstr "Ja vÄ“laties klonÄ“t vairÄkus objektus, sagrupÄ“jiet tos un klonÄ“jiet grupu." -#: ../src/ui/dialog/clonetiler.cpp:2238 +#: ../src/ui/dialog/clonetiler.cpp:2236 msgid "Creating tiled clones..." msgstr "Veido klonÄ“tus raksta elementus..." -#: ../src/ui/dialog/clonetiler.cpp:2654 +#: ../src/ui/dialog/clonetiler.cpp:2652 msgid "Create tiled clones" msgstr "Izveidot klonÄ“tos raksta elementus" -#: ../src/ui/dialog/clonetiler.cpp:2887 +#: ../src/ui/dialog/clonetiler.cpp:2885 msgid "Per row:" msgstr "VienÄ rindÄ:" -#: ../src/ui/dialog/clonetiler.cpp:2905 +#: ../src/ui/dialog/clonetiler.cpp:2903 msgid "Per column:" msgstr "VienÄ slejÄ:" -#: ../src/ui/dialog/clonetiler.cpp:2913 +#: ../src/ui/dialog/clonetiler.cpp:2911 msgid "Randomize:" msgstr "DažÄdot:" -#: ../src/ui/dialog/color-item.cpp:131 +#: ../src/ui/dialog/color-item.cpp:127 #, c-format msgid "Color: %s; Click to set fill, Shift+click to set stroke" msgstr "KrÄsa: %s; Uzklikšķiniet, lai iestatÄ«tu aizpildÄ«jumu, Shift+klikšķis - lai iestatÄ«tu apmali" -#: ../src/ui/dialog/color-item.cpp:509 +#: ../src/ui/dialog/color-item.cpp:505 msgid "Change color definition" msgstr "Mainiet krÄsas definÄ«ciju" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove stroke color" msgstr "AizvÄkt apmales krÄsu" -#: ../src/ui/dialog/color-item.cpp:679 +#: ../src/ui/dialog/color-item.cpp:675 msgid "Remove fill color" msgstr "AizvÄkt aizpildÄ«juma krÄsu" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set stroke color to none" msgstr "IestatÄ«t apmales krÄsu par nekÄdu" -#: ../src/ui/dialog/color-item.cpp:684 +#: ../src/ui/dialog/color-item.cpp:680 msgid "Set fill color to none" msgstr "IestatÄ«t aizpildÄ«juma krÄsu par nekÄdu" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set stroke color from swatch" msgstr "Iestatiet apmales krÄsu no paletes" -#: ../src/ui/dialog/color-item.cpp:702 +#: ../src/ui/dialog/color-item.cpp:698 msgid "Set fill color from swatch" msgstr "Iestatiet aizpildÄ«juma krÄsu no paletes" -#: ../src/ui/dialog/debug.cpp:73 +#: ../src/ui/dialog/debug.cpp:69 msgid "Messages" msgstr "VÄ“stules" -#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:47 +#: ../src/ui/dialog/debug.cpp:83 ../src/ui/dialog/messages.cpp:47 msgid "_Clear" msgstr "_AttÄ«rÄ«t" -#: ../src/ui/dialog/debug.cpp:91 ../src/ui/dialog/messages.cpp:48 +#: ../src/ui/dialog/debug.cpp:87 ../src/ui/dialog/messages.cpp:48 msgid "Capture log messages" msgstr "PÄrtvert žurnÄla ierakstus" -#: ../src/ui/dialog/debug.cpp:95 +#: ../src/ui/dialog/debug.cpp:91 msgid "Release log messages" msgstr "AtbrÄ«vot žurnÄla ierakstus" @@ -13263,11 +13275,11 @@ msgstr "_AizvÄkt" msgid "Remove selected grid." msgstr "AizvÄkt izvÄ“lÄ“to režģi." -#: ../src/ui/dialog/document-properties.cpp:161 ../src/widgets/toolbox.cpp:1836 +#: ../src/ui/dialog/document-properties.cpp:161 ../src/widgets/toolbox.cpp:1832 msgid "Guides" msgstr "PalÄ«glÄ«nijas" -#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2827 +#: ../src/ui/dialog/document-properties.cpp:163 ../src/verbs.cpp:2796 msgid "Snap" msgstr "Pievilkt" @@ -13311,7 +13323,7 @@ msgstr "DažÄdi" #. Inkscape::GC::release(defsRepr); #. inform the document, so we can undo #. Color Management -#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:3008 +#: ../src/ui/dialog/document-properties.cpp:505 ../src/verbs.cpp:2977 msgid "Link Color Profile" msgstr "PiesaistÄ«t krÄsu profilu" @@ -13433,123 +13445,123 @@ msgstr "IzveidoÅ¡ana" msgid "Defined grids" msgstr "DefinÄ“tie režģi" -#: ../src/ui/dialog/document-properties.cpp:1653 +#: ../src/ui/dialog/document-properties.cpp:1654 msgid "Remove grid" msgstr "AizvÄkt režģi" -#: ../src/ui/dialog/document-properties.cpp:1741 +#: ../src/ui/dialog/document-properties.cpp:1746 msgid "Changed default display unit" msgstr "MainÄ«tas noklusÄ“tÄs ekrÄna vienÄ«bas" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2879 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2848 msgid "_Page" msgstr "La_pa" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2883 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2852 msgid "_Drawing" msgstr "_ZÄ«mÄ“jums" -#: ../src/ui/dialog/export.cpp:151 ../src/verbs.cpp:2885 +#: ../src/ui/dialog/export.cpp:147 ../src/verbs.cpp:2854 msgid "_Selection" msgstr "Atla_sÄ«tais" -#: ../src/ui/dialog/export.cpp:151 +#: ../src/ui/dialog/export.cpp:147 msgid "_Custom" msgstr "IzvÄ“les" -#: ../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 +#: ../src/ui/dialog/export.cpp:165 ../src/widgets/measure-toolbar.cpp:99 ../src/widgets/measure-toolbar.cpp:107 ../share/extensions/render_gears.inx.h:6 msgid "Units:" msgstr "VienÄ«bas:" -#: ../src/ui/dialog/export.cpp:171 +#: ../src/ui/dialog/export.cpp:167 msgid "_Export As..." msgstr "_EksportÄ“t kÄ..." -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "B_atch export all selected objects" msgstr "Visu _atlasÄ«to objektu secÄ«gs eksports" -#: ../src/ui/dialog/export.cpp:174 +#: ../src/ui/dialog/export.cpp:170 msgid "Export each selected object into its own PNG file, using export hints if any (caution, overwrites without asking!)" msgstr "EksportÄ“t katru atlasÄ«to objektu atseviÅ¡Ä·Ä PNG datnÄ“, izmantojot eksport padomus, ja tÄdi ir (UzmanÄ«bu: datnes tiek pÄrrakstÄ«tas bez jautÄÅ¡anas!)" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "Hide a_ll except selected" msgstr "SlÄ“pt _visus, izņemot atlasÄ«tos" -#: ../src/ui/dialog/export.cpp:176 +#: ../src/ui/dialog/export.cpp:172 msgid "In the exported image, hide all objects except those that are selected" msgstr "EksportÄ“tajÄ attÄ“la slÄ“pt visus neatlasÄ«tos objektus" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Close when complete" msgstr "AizvÄ“rt pÄ“c pabeigÅ¡anas" -#: ../src/ui/dialog/export.cpp:177 +#: ../src/ui/dialog/export.cpp:173 msgid "Once the export completes, close this dialog" msgstr "PÄ“c eksportēšanas pabeigÅ¡anas aizvÄ“rt Å¡o dialoglodziņu." -#: ../src/ui/dialog/export.cpp:179 +#: ../src/ui/dialog/export.cpp:175 msgid "_Export" msgstr "_EksportÄ“t" -#: ../src/ui/dialog/export.cpp:197 +#: ../src/ui/dialog/export.cpp:193 msgid "Export area" msgstr "EksportÄ“jamais apgabals" -#: ../src/ui/dialog/export.cpp:236 +#: ../src/ui/dialog/export.cpp:232 msgid "_x0:" msgstr "_x0:" -#: ../src/ui/dialog/export.cpp:240 +#: ../src/ui/dialog/export.cpp:236 msgid "x_1:" msgstr "x_1:" -#: ../src/ui/dialog/export.cpp:244 +#: ../src/ui/dialog/export.cpp:240 msgid "Wid_th:" msgstr "Pla_tums:" -#: ../src/ui/dialog/export.cpp:248 +#: ../src/ui/dialog/export.cpp:244 msgid "_y0:" msgstr "_y0:" -#: ../src/ui/dialog/export.cpp:252 +#: ../src/ui/dialog/export.cpp:248 msgid "y_1:" msgstr "y_1:" -#: ../src/ui/dialog/export.cpp:256 +#: ../src/ui/dialog/export.cpp:252 msgid "Hei_ght:" msgstr "Au_gstums:" -#: ../src/ui/dialog/export.cpp:271 +#: ../src/ui/dialog/export.cpp:267 msgid "Image size" msgstr "AttÄ“la izmÄ“rs" -#: ../src/ui/dialog/export.cpp:289 ../src/ui/dialog/export.cpp:300 +#: ../src/ui/dialog/export.cpp:285 ../src/ui/dialog/export.cpp:296 msgid "pixels at" msgstr "pikseļi ar" -#: ../src/ui/dialog/export.cpp:295 +#: ../src/ui/dialog/export.cpp:291 msgid "dp_i" msgstr "dp_i" -#: ../src/ui/dialog/export.cpp:300 ../src/ui/dialog/transformation.cpp:80 ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/dialog/export.cpp:296 ../src/ui/dialog/transformation.cpp:76 ../src/ui/widget/page-sizer.cpp:238 msgid "_Height:" msgstr "_Augstums:" -#: ../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 +#: ../src/ui/dialog/export.cpp:304 ../src/ui/dialog/inkscape-preferences.cpp:1443 ../src/ui/dialog/inkscape-preferences.cpp:1447 ../src/ui/dialog/inkscape-preferences.cpp:1471 msgid "dpi" msgstr "dpi" -#: ../src/ui/dialog/export.cpp:316 +#: ../src/ui/dialog/export.cpp:312 msgid "_Filename" msgstr "_Datnes nosaukums" -#: ../src/ui/dialog/export.cpp:358 +#: ../src/ui/dialog/export.cpp:354 msgid "Export the bitmap file with these settings" msgstr "EksportÄ“t bitkartes attÄ“lu ar Å¡iem iestatÄ«jumiem" -#: ../src/ui/dialog/export.cpp:611 +#: ../src/ui/dialog/export.cpp:607 #, c-format msgid "B_atch export %d selected object" msgid_plural "B_atch export %d selected objects" @@ -13557,78 +13569,78 @@ msgstr[0] "SecÄ«gs %d atlasÄ«tÄ objekta eksports" msgstr[1] "SecÄ«gs %d atlasÄ«to objektu eksports" msgstr[2] "SecÄ«gs %d atlasÄ«to objektu eksports" -#: ../src/ui/dialog/export.cpp:927 +#: ../src/ui/dialog/export.cpp:923 msgid "Export in progress" msgstr "Notiek eksports" -#: ../src/ui/dialog/export.cpp:1017 +#: ../src/ui/dialog/export.cpp:1013 msgid "No items selected." msgstr "Nav atlasÄ«tu objektu." -#: ../src/ui/dialog/export.cpp:1021 ../src/ui/dialog/export.cpp:1023 +#: ../src/ui/dialog/export.cpp:1017 ../src/ui/dialog/export.cpp:1019 msgid "Exporting %1 files" msgstr "EksportÄ“ %1 datnes" -#: ../src/ui/dialog/export.cpp:1063 ../src/ui/dialog/export.cpp:1065 +#: ../src/ui/dialog/export.cpp:1060 ../src/ui/dialog/export.cpp:1062 #, c-format msgid "Exporting file %s..." msgstr "EksportÄ“ datni %s..." -#: ../src/ui/dialog/export.cpp:1074 ../src/ui/dialog/export.cpp:1165 +#: ../src/ui/dialog/export.cpp:1071 ../src/ui/dialog/export.cpp:1163 #, c-format msgid "Could not export to filename %s.\n" msgstr "Nav iespÄ“jams eksportÄ“t uz datni ar nosaukumu %s.\n" -#: ../src/ui/dialog/export.cpp:1077 +#: ../src/ui/dialog/export.cpp:1074 #, c-format msgid "Could not export to filename %s." msgstr "Nav iespÄ“jams eksportÄ“t uz datni ar nosaukumu %s." -#: ../src/ui/dialog/export.cpp:1092 +#: ../src/ui/dialog/export.cpp:1089 #, c-format msgid "Successfully exported %d files from %d selected items." msgstr "VeiksmÄ«gi eksportÄ“tas %d datnes no %d atlasÄ«tajiem objektiem." -#: ../src/ui/dialog/export.cpp:1103 +#: ../src/ui/dialog/export.cpp:1100 msgid "You have to enter a filename." msgstr "Jums jÄievada datnes nosaukums." -#: ../src/ui/dialog/export.cpp:1104 +#: ../src/ui/dialog/export.cpp:1101 msgid "You have to enter a filename" msgstr "Jums jÄievada datnes nosaukums" -#: ../src/ui/dialog/export.cpp:1118 +#: ../src/ui/dialog/export.cpp:1115 msgid "The chosen area to be exported is invalid." msgstr "Eksportēšanai izvÄ“lÄ“tais apgabals nav derÄ«gs." -#: ../src/ui/dialog/export.cpp:1119 +#: ../src/ui/dialog/export.cpp:1116 msgid "The chosen area to be exported is invalid" msgstr "Eksportēšanai izvÄ“lÄ“tais apgabals nav derÄ«gs" -#: ../src/ui/dialog/export.cpp:1134 +#: ../src/ui/dialog/export.cpp:1131 #, c-format msgid "Directory %s does not exist or is not a directory.\n" msgstr "Mape%s nepastÄv vai arÄ« nemaz nav mape.\n" #. 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 +#: ../src/ui/dialog/export.cpp:1145 ../src/ui/dialog/export.cpp:1147 msgid "Exporting %1 (%2 x %3)" msgstr "EksportÄ“ %1 (%2 x %3)" -#: ../src/ui/dialog/export.cpp:1176 +#: ../src/ui/dialog/export.cpp:1174 #, c-format msgid "Drawing exported to %s." msgstr "AttÄ“ls eksportÄ“ts uz %s." -#: ../src/ui/dialog/export.cpp:1180 +#: ../src/ui/dialog/export.cpp:1178 msgid "Export aborted." msgstr "Eksportēšana pÄrtraukta." -#: ../src/ui/dialog/export.cpp:1301 ../src/ui/interface.cpp:1392 ../src/widgets/desktop-widget.cpp:1122 ../src/widgets/desktop-widget.cpp:1184 +#: ../src/ui/dialog/export.cpp:1299 ../src/ui/interface.cpp:1392 ../src/widgets/desktop-widget.cpp:1122 ../src/widgets/desktop-widget.cpp:1184 msgid "_Cancel" msgstr "At_celt" -#: ../src/ui/dialog/export.cpp:1302 ../src/ui/dialog/input.cpp:1082 ../src/verbs.cpp:2437 ../src/widgets/desktop-widget.cpp:1123 +#: ../src/ui/dialog/export.cpp:1300 ../src/ui/dialog/input.cpp:1082 ../src/verbs.cpp:2406 ../src/widgets/desktop-widget.cpp:1123 msgid "_Save" msgstr "_SaglabÄt" @@ -13636,7 +13648,7 @@ msgstr "_SaglabÄt" msgid "Information" msgstr "InformÄcija" -#: ../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 +#: ../src/ui/dialog/extension-editor.cpp:82 ../src/verbs.cpp:309 ../src/verbs.cpp:328 ../share/extensions/color_HSL_adjust.inx.h:11 ../share/extensions/color_custom.inx.h:7 ../share/extensions/color_randomize.inx.h:6 #: ../share/extensions/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 @@ -13668,23 +13680,23 @@ msgid "Enable preview" msgstr "Atļaut priekÅ¡skatÄ«jumu" #: ../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 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:799 ../src/ui/dialog/filedialogimpl-gtkmm.cpp:814 ../src/ui/dialog/filedialogimpl-win32.cpp:286 ../src/ui/dialog/filedialogimpl-win32.cpp:417 msgid "All Files" msgstr "Visas datnes" -#: ../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 +#: ../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:287 msgid "All Inkscape Files" msgstr "Visas Inkscape datnes" -#: ../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 +#: ../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:288 msgid "All Images" msgstr "Visi attÄ“li" -#: ../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 +#: ../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:289 msgid "All Vectors" msgstr "Visi vektori" -#: ../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 +#: ../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:290 msgid "All Bitmaps" msgstr "Visas bitkartes" @@ -13742,7 +13754,7 @@ msgstr "IzšķirtspÄ“ja (punktos uz collu)" msgid "Document" msgstr "Dokuments" -#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:176 ../src/widgets/desktop-widget.cpp:2000 ../share/extensions/printing_marks.inx.h:18 +#: ../src/ui/dialog/filedialogimpl-gtkmm.cpp:1541 ../src/verbs.cpp:175 ../src/widgets/desktop-widget.cpp:2002 ../share/extensions/printing_marks.inx.h:18 msgid "Selection" msgstr "AtlasÄ«tais" @@ -13763,15 +13775,15 @@ msgstr "Kaira" msgid "Antialias" msgstr "KropļojumnovÄ“rse" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:414 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:418 msgid "All Executable Files" msgstr "Visas izpildÄmÄs datnes" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:606 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:610 msgid "Show Preview" msgstr "RÄdÄ«t priekÅ¡skatÄ«jumu" -#: ../src/ui/dialog/filedialogimpl-win32.cpp:744 +#: ../src/ui/dialog/filedialogimpl-win32.cpp:748 msgid "No file selected" msgstr "Nav izvÄ“lÄ“ta neviena datne" @@ -13788,7 +13800,7 @@ msgid "Stroke st_yle" msgstr "Apmales st_ils" #. TRANSLATORS: this dialog is accessible via menu Filters - Filter editor -#: ../src/ui/dialog/filter-effects-dialog.cpp:546 +#: ../src/ui/dialog/filter-effects-dialog.cpp:547 msgid "" "This matrix determines a linear transform on color space. Each line affects one of the color components. Each column determines how much of each color 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." @@ -13796,290 +13808,290 @@ msgstr "" "Å Ä« matrica nosaka krÄsu telpas lineÄro pÄrveidojumu. Katra rinda ietekmÄ“ vienu no krÄsas komponentiem. Katra sleja nosaka krÄsas daudzumu, kas no sÄkotnÄ“jÄ objekta pÄries uz rezultÄtu. PÄ“dÄ“jÄ sleja nav atkarÄ«ga un sÄkotnÄ“jÄm krÄsÄm un ir " "izmantojama konstanto komponentu vÄ“rtÄ«bu pieskaņoÅ¡anai." -#: ../src/ui/dialog/filter-effects-dialog.cpp:549 ../share/extensions/grid_polar.inx.h:4 +#: ../src/ui/dialog/filter-effects-dialog.cpp:550 ../share/extensions/grid_polar.inx.h:4 msgctxt "Label" msgid "None" msgstr "Neviena" -#: ../src/ui/dialog/filter-effects-dialog.cpp:656 +#: ../src/ui/dialog/filter-effects-dialog.cpp:657 msgid "Image File" msgstr "AttÄ“la datne" -#: ../src/ui/dialog/filter-effects-dialog.cpp:659 +#: ../src/ui/dialog/filter-effects-dialog.cpp:660 msgid "Selected SVG Element" msgstr "IzvÄ“lÄ“tais SVG elements" #. TODO: any image, not just svg -#: ../src/ui/dialog/filter-effects-dialog.cpp:729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:730 msgid "Select an image to be used as feImage input" msgstr "IzvÄ“lieties attÄ“lu, ko izmantot feImage ievadei" -#: ../src/ui/dialog/filter-effects-dialog.cpp:821 +#: ../src/ui/dialog/filter-effects-dialog.cpp:822 msgid "This SVG filter effect does not require any parameters." msgstr "Å im SVG efektam nav vajadzÄ«gi parametri." -#: ../src/ui/dialog/filter-effects-dialog.cpp:827 +#: ../src/ui/dialog/filter-effects-dialog.cpp:828 msgid "This SVG filter effect is not yet implemented in Inkscape." msgstr "Å is SVG efekts vÄ“l nav ieviests Inkscape." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1041 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 msgid "Slope" msgstr "SlÄ«pums" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1042 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1043 msgid "Intercept" msgstr "PÄrtvert" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1045 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 msgid "Amplitude" msgstr "AmplitÅ«da" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1046 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1047 msgid "Exponent" msgstr "Eksponente" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1143 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1144 msgid "New transfer function type" msgstr "Jauns pÄrneses funkcijas tips" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1178 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1179 msgid "Light Source:" msgstr "Gaismas avots:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1195 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 msgid "Direction angle for the light source on the XY plane, in degrees" msgstr "KrÄ«toÅ¡Äs gaismas leņķis XY plaknÄ“, grÄdos" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1196 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1197 msgid "Direction angle for the light source on the YZ plane, in degrees" msgstr "KrÄ«toÅ¡Äs gaismas leņķis YZ plaknÄ“, grÄdos" #. default x: #. default y: #. default z: -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 ../src/ui/dialog/filter-effects-dialog.cpp:1202 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 ../src/ui/dialog/filter-effects-dialog.cpp:1203 msgid "Location:" msgstr "Izvietojums:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 ../src/ui/dialog/filter-effects-dialog.cpp:1202 ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 ../src/ui/dialog/filter-effects-dialog.cpp:1203 ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "X coordinate" msgstr "X koordinÄte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 ../src/ui/dialog/filter-effects-dialog.cpp:1202 ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 ../src/ui/dialog/filter-effects-dialog.cpp:1203 ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Y coordinate" msgstr "Y koordinÄte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1199 ../src/ui/dialog/filter-effects-dialog.cpp:1202 ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1200 ../src/ui/dialog/filter-effects-dialog.cpp:1203 ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Z coordinate" msgstr "X koordinÄte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1205 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 msgid "Points At" msgstr "NorÄda uz" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Specular Exponent" msgstr "AtstaroÅ¡anas pakÄpe" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1206 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1207 msgid "Exponent value controlling the focus for the light source" msgstr "Gaismas avota fokusu kontrolÄ“joÅ¡ais eksponenciÄlais lielums" #. TODO: here I have used 100 degrees as default value. But spec says that if not specified, no limiting cone is applied. So, there should be a way for the user to set a "no limiting cone" option. -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "Cone Angle" msgstr "Konusa leņķis" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1208 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1209 msgid "This is the angle between the spot light axis (i.e. the axis between the light source and the point to which it is pointing at) and the spot light cone. No light is projected outside this cone." msgstr "Å is ir leņķis starp prožektora gaismas asi (t.i. ass starp gaismas avotu un punktu, uz ko tÄ norÄda) un gaismas konusu. Ä€rpus šī konusa gaisma netiek izstarota." -#: ../src/ui/dialog/filter-effects-dialog.cpp:1274 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1275 msgid "New light source" msgstr "Jauns gaismas avots" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1325 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1326 msgid "_Duplicate" msgstr "_DublÄ“t" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1359 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1360 msgid "_Filter" msgstr "_Filtrs" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1379 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1387 msgid "R_ename" msgstr "PÄr_dÄ“vÄ“t" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1512 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1521 msgid "Rename filter" msgstr "PÄrdÄ“vÄ“t filtru" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1565 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1573 msgid "Apply filter" msgstr "Pielietot filtru" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1635 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1652 msgid "filter" msgstr "filtrs" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1642 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1659 msgid "Add filter" msgstr "Pievienot filtru" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1694 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1709 msgid "Duplicate filter" msgstr "DublÄ“t filtru" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1793 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1808 msgid "_Effect" msgstr "_Efekts" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1803 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1818 msgid "Connections" msgstr "Savienojumi" -#: ../src/ui/dialog/filter-effects-dialog.cpp:1941 +#: ../src/ui/dialog/filter-effects-dialog.cpp:1956 msgid "Remove filter primitive" msgstr "AizvÄkt filtra primitÄ«vu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2529 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2543 msgid "Remove merge node" msgstr "AizvÄkt apvienoÅ¡anas mezglu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2649 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2663 msgid "Reorder filter primitive" msgstr "PÄrkÄrtot filtra primitÄ«vu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2729 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2743 msgid "Add Effect:" msgstr "Pievienot efektu:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2730 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2744 msgid "No effect selected" msgstr "Nav izvÄ“lÄ“ts neviens efekts" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2731 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2745 msgid "No filter selected" msgstr "Nav izvÄ“lÄ“ts neviens filtrs" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2776 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2792 msgid "Effect parameters" msgstr "Efekta parametri" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2777 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2793 msgid "Filter General Settings" msgstr "Filtra vispÄrÄ“jie iestatÄ«jumi" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Coordinates:" msgstr "KoordinÄtes:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "X coordinate of the left corners of filter effects region" msgstr "Filtra efekta apgabala kreiso stÅ«ru X koordinÄte" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2835 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2851 msgid "Y coordinate of the upper corners of filter effects region" msgstr "Filtra efekta apgabala augšējo stÅ«ru Y koordinÄte" #. default width: #. default height: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Dimensions:" msgstr "IzmÄ“ri:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Width of filter effects region" msgstr "Filtra efektu apgabala platums" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2836 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2852 msgid "Height of filter effects region" msgstr "Filtra efektu apgabala augstums" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2842 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2858 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 "NorÄda uz matricu darbÄ«bas tipu. AtslÄ“gvÄrds 'matrica' nozÄ«mÄ“, ka tiek izmantota pilna, 5x4 vÄ“rtÄ«bu matrica. Citi atslÄ“gvÄrdi kalpo par saÄ«snÄ“m, kas ļauj veikt biežÄk lietotÄs darbÄ«bas ar krÄsÄm nenorÄdot pilnu matricu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2843 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2859 msgid "Value(s):" msgstr "VÄ“rtÄ«ba(s):" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2847 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 msgid "R:" msgstr "R:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2848 ../src/widgets/sp-color-icc-selector.cpp:334 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2864 ../src/widgets/sp-color-icc-selector.cpp:334 msgid "G:" msgstr "G:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2849 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 msgid "B:" msgstr "B:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2850 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 msgid "A:" msgstr "A:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2853 ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2869 ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "Operator:" msgstr "Operators:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 msgid "K1:" msgstr "K1:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2854 ../src/ui/dialog/filter-effects-dialog.cpp:2855 ../src/ui/dialog/filter-effects-dialog.cpp:2856 ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2870 ../src/ui/dialog/filter-effects-dialog.cpp:2871 ../src/ui/dialog/filter-effects-dialog.cpp:2872 ../src/ui/dialog/filter-effects-dialog.cpp:2873 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 "Ja ir izvÄ“lÄ“ta matemÄtiskÄ darbÄ«ba, katrs pikselis tiek aprēķinÄts saskaÅ†Ä ar formulu k1*i1*i2 + k2*i1 + k3*i2 + k4, kur i1 un i2 ir pikseļu vÄ“rtÄ«bas, attiecÄ«gi, pirmajos un otrajos izejas datos." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2855 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 msgid "K2:" msgstr "K2:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2856 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 msgid "K3:" msgstr "K3:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2857 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 msgid "K4:" msgstr "K4:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "Size:" msgstr "IzmÄ“rs:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "width of the convolve matrix" msgstr "konvolÅ«cijas matricas platums" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2860 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2876 msgid "height of the convolve matrix" msgstr "konvolÅ«cijas matricas augstums" #. default x: #. default y: -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 ../src/ui/dialog/object-attributes.cpp:48 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 ../src/ui/dialog/object-attributes.cpp:48 msgid "Target:" msgstr "MÄ“rÄ·is:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 msgid "X coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point." msgstr "MÄ“rÄ·a punkta X koordinÄte konvolÅ«cijas matricÄ. KonvolÅ«cija tiks izpildÄ«ta pikseļiem ap Å¡o punktu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2861 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2877 msgid "Y coordinate of the target point in the convolve matrix. The convolution is applied to pixels around this point." msgstr "MÄ“rÄ·a punkta Y koordinÄte konvolÅ«cijas matricÄ. KonvolÅ«cija tiks izpildÄ«ta pikseļiem ap Å¡o punktu." #. TRANSLATORS: for info on "Kernel", see http://en.wikipedia.org/wiki/Kernel_(matrix) -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 msgid "Kernel:" msgstr "Kodols:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2863 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 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." @@ -14087,11 +14099,11 @@ msgstr "" "Å Ä« matrica apraksta konvolÅ«cijas darbÄ«bu, kas tiek pielietota attÄ“lam ar nolÅ«ku noskaidrot rezultÄtÄ iegÅ«tÄ pikseļa krÄsa. DažÄdi vÄ“rtÄ«bu izkÄrtojumi Å¡ajÄ matricÄ rada atšķirÄ«gus vizuÄlos efektus. VienÄ«bas matrica rezultÄtÄ radÄ«s kustÄ«bas " "izplÅ«duma efektu (paralÄ“li matricas diagonÄlei), turpretÄ« ar konstantÄm, par nulli lielÄkÄm vÄ“rtÄ«bÄm aizpildÄ«ta matrica rezultÄtÄ radÄ«s vienkÄrÅ¡a izplÅ«duma efektu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 msgid "Divisor:" msgstr "DalÄ«tÄjs:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2865 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2881 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." @@ -14099,97 +14111,97 @@ msgstr "" "PÄ“c kernelMatrix pielietoÅ¡anas sÄkotnÄ“jam attÄ“lam iegÅ«tais skaitlis tiek dalÄ«ts ar dalÄ«tÄju gala krÄsas vÄ“rtÄ«bas iegūšanai. DalÄ«tÄjam, kas ir visu matricas vÄ“rtÄ«bu summa, piemÄ«t vispÄrÄ“jÄs krÄsu intensitÄtes izlÄ«dzinÄtÄja efekts gala " "attÄ“lÄ. " -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "Bias:" msgstr "NobÄ«de:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2866 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2882 msgid "This value is added to each component. This is useful to define a constant value as the zero response of the filter." msgstr "Å Ä« vÄ“rtÄ«ba tiek pievienota katram komponentam. Ir lietderÄ«gi noteikt nemainÄ«gu vÄ“rtÄ«bu kÄ filtra 'nulles' atbildi." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 msgid "Edge Mode:" msgstr "Malu režīms:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2867 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 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 "Nosaka veidu, kÄdÄ pÄ“c nepiecieÅ¡amÄ«bas paplaÅ¡inÄt sÄkotnÄ“jo attÄ“lu ar krÄsu vÄ“rtÄ«bÄm, lai matricu darbÄ«bas varÄ“tu izmantot gadÄ«jumos, kuros kodols ir novietots uz vai blakus sÄkotnÄ“jÄ attÄ“la malai." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 msgid "Preserve Alpha" msgstr "SaglabÄt alfa" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2868 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2884 msgid "If set, the alpha channel won't be altered by this filter primitive." msgstr "Ja iestatÄ«ts, šī filtra primitÄ«vs nemainÄ«s alfa kanÄlu." #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 msgid "Diffuse Color:" msgstr "DifÅ«zijas krÄsa:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2871 ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Defines the color of the light source" msgstr "Nosaka gaismas avota krÄsu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 ../src/ui/dialog/filter-effects-dialog.cpp:2921 msgid "Surface Scale:" msgstr "Virsmas mÄ“rogs:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2872 ../src/ui/dialog/filter-effects-dialog.cpp:2905 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2888 ../src/ui/dialog/filter-effects-dialog.cpp:2921 msgid "This value amplifies the heights of the bump map defined by the input alpha channel" msgstr "Å Ä« vÄ“rtÄ«ba pastiprina pumpu kartes augstumu, ko nosaka sÄkotnÄ“jais alfa kanÄls" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 ../src/ui/dialog/filter-effects-dialog.cpp:2922 msgid "Constant:" msgstr "Konstantes:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2873 ../src/ui/dialog/filter-effects-dialog.cpp:2906 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2889 ../src/ui/dialog/filter-effects-dialog.cpp:2922 msgid "This constant affects the Phong lighting model." msgstr "Å Ä« konstante ietekmÄ“ Fonga apgaismojuma modeli" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2874 ../src/ui/dialog/filter-effects-dialog.cpp:2908 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2890 ../src/ui/dialog/filter-effects-dialog.cpp:2924 msgid "Kernel Unit Length:" msgstr "Kodola vienÄ«bas garums:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2878 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2894 msgid "This defines the intensity of the displacement effect." msgstr "Tas nosaka pÄrvietojuma efekta intensitÄti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "X displacement:" msgstr "X nobÄ«de:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2879 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2895 msgid "Color component that controls the displacement in the X direction" msgstr "KrÄsas komponents, kas nosaka pÄrvietojumu X virzienÄ" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Y displacement:" msgstr "Y nobÄ«de:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2880 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2896 msgid "Color component that controls the displacement in the Y direction" msgstr "KrÄsas komponents, kas nosaka pÄrvietojumu Y virzienÄ" #. default: black -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "Flood Color:" msgstr "PludinÄÅ¡anas krÄsa:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2883 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2899 msgid "The whole filter region will be filled with this color." msgstr "Viss filtra apgabals tiks aizpildÄ«ts ar Å¡o krÄsu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "Standard Deviation:" msgstr "Standarta novirze:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2887 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2903 msgid "The standard deviation for the blur operation." msgstr "Standarta novirze aizmigloÅ¡anas darbÄ«bai." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2893 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2909 msgid "" "Erode: performs \"thinning\" of input image.\n" "Dilate: performs \"fattenning\" of input image." @@ -14197,74 +14209,74 @@ msgstr "" "Erozija: padara sÄkotnÄ“jo attÄ“lu \"plÄnÄku\".\n" "IzpleÅ¡ana: padara sÄkotnÄ“jo attÄ“lu \"biezÄku\"." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2897 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2913 msgid "Source of Image:" msgstr "AttÄ“la avots:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "Delta X:" msgstr "Delta X:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2900 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 msgid "This is how far the input image gets shifted to the right" msgstr "Cik tÄlu sÄkotnÄ“jais attÄ“ls tiks pÄrbÄ«dÄ«ts pa labi" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "Delta Y:" msgstr "Delta Y:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2901 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 msgid "This is how far the input image gets shifted downwards" msgstr "Cik tÄlu sÄkotnÄ“jais attÄ“ls tiks pÄrbÄ«dÄ«ts lejup" #. default: white -#: ../src/ui/dialog/filter-effects-dialog.cpp:2904 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2920 msgid "Specular Color:" msgstr "AtspÄ«duma krÄsa:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 ../share/extensions/interp.inx.h:2 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 ../share/extensions/interp.inx.h:2 msgid "Exponent:" msgstr "KÄpinÄtÄjs:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2907 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2923 msgid "Exponent for specular term, larger is more \"shiny\"." msgstr "AtstaroÅ¡anas pakÄpe, lielÄks skaitlis nozÄ«mÄ“ vairÄk \"spÄ«dÄ«gu\"." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2916 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2932 msgid "Indicates whether the filter primitive should perform a noise or turbulence function." msgstr "Atspoguļo, vai filtra primitÄ«vam jÄveic trokšņa vai nekÄrtÄ«bas funkcija." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2917 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2933 msgid "Base Frequency:" msgstr "Pamata biežums:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2918 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2934 msgid "Octaves:" msgstr "OktÄvas:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "Seed:" msgstr "GadÄ«juma vÄ“rtÄ«ba:" -#: ../src/ui/dialog/filter-effects-dialog.cpp:2919 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2935 msgid "The starting number for the pseudo random number generator." msgstr "SÄkuma skaitlis pseidogadÄ«juma skaitļu Ä£eneratoram." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2931 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2947 msgid "Add filter primitive" msgstr "Pievienot filtra primitÄ«vu" # http://www.w3.org/TR/SVG/intro.html#TermFilterPrimitiveElement # A filter primitive element is one that can be used as a child of a ‘filter’ element to specify a node in the filter graph. -#: ../src/ui/dialog/filter-effects-dialog.cpp:2948 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 msgid "The feBlend filter primitive provides 4 image blending modes: screen, multiply, darken and lighten." msgstr "feBlend filtra primitÄ«vs nodroÅ¡ina 4 attÄ“lu sajaukÅ¡anas veidus: uz ekrÄna, pavairot, padarÄ«t tumÅ¡Äku un padarÄ«t gaiÅ¡Äku." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2952 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 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 "feColorMatrix filtra primitÄ«vs pielieto matricas pÄrveidojumu katra renderÄ“tÄ pikseļa krÄsai. Tas padara iespÄ“jamus tÄdus efektus, kÄ pÄrvÄ“rÅ¡anu par pelÄ“ktoņu attÄ“lu, krÄsu piesÄtinÄjuma un nokrÄsas maiņu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2956 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 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." @@ -14272,7 +14284,7 @@ msgstr "" "feComponentTransfer filtra primitÄ«vs darbojas ar sÄkotnÄ“jo krÄsu komponentÄ“m (sarkano, zaļo, zilo un alfa) saskaÅ†Ä ar Ä«paÅ¡Äm pÄrneses funkcijÄm, nodroÅ¡inot tÄdas darbÄ«bas kÄ spilgtuma un kontrasta maiņu, krÄsu balansēšanu un krÄsu " "sliekšņu iestatīšanu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2960 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 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." @@ -14282,7 +14294,7 @@ msgstr "" # http://www.w3.org/TR/SVG/intro.html#TermFilterPrimitiveElement # A filter primitive element is one that can be used as a child of a ‘filter’ element to specify a node in the filter graph. -#: ../src/ui/dialog/filter-effects-dialog.cpp:2964 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 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." @@ -14290,7 +14302,7 @@ msgstr "" "feConvolveMatrix ļauj norÄdÄ«t attÄ“lam pielietojamo konvolÅ«ciju. Efekti, kurus iegÅ«st ar konvolÅ«cijas matricas palÄ«dzÄ«bu, ir aizmigloÅ¡ana, saasinÄÅ¡ana, ciļņoÅ¡ana un malas noteikÅ¡ana. Å…emiet vÄ“rÄ, ka lai arÄ« Gausa aizmigloÅ¡ana ar Å¡o " "filtra primitÄ«vu arÄ« ir iespÄ“jama, Ä«paÅ¡ais Gausa aizmigloÅ¡anas primitÄ«vs ir ÄtrÄks un nav atkarÄ«gs no izšķirtspÄ“jas." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2968 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 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." @@ -14298,23 +14310,23 @@ msgstr "" "feDiffuseLighting un feSpecularLighting filtru primitÄ«vi rada \"ciļņotu \" Ä“nojumu. SÄkotnÄ“jÄ attÄ“la alfa kanÄls tiks izmantots dziļuma informÄcijai: necaurspÄ«dÄ«gÄki laukumi tiek tuvinÄti skatÄ«tÄjam, caurspÄ«dÄ«gÄki - " "attÄlinÄnti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2972 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 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 "feDisplacementMap filtra primitÄ«vs nobÄ«da pikseļus pirmajÄ attÄ“lÄ izmantojot otro attÄ“lu kÄ nobīžu karti, kas norÄda no kÄda attÄlumu pikseļiem jÄnÄk. Klasiski piemÄ“ri ir virpuļa un knaibīšanas efekti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2976 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 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 "feFlood filtra primitÄ«vs aizpilda laukumu ar norÄdÄ«to krÄsu un necaurspÄ«dÄ«bu. To parasti izmanto kÄ ievadi citiem filtriem, lai grafikai piešķirtu krÄsas." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2980 +#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 msgid "The feGaussianBlur filter primitive uniformly blurs its input. It is commonly used together with feOffset to create a drop shadow effect." msgstr "feGaussianBlur filtrs vienÄdÄ mÄ“rÄ aizmiglo sÄkotnÄ“jo objektu. VisbiežÄk to lieto kopÄ ar feOffset, lai izvedotu krÄ«toÅ¡as Ä“nas efektu." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2984 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 msgid "The feImage filter primitive fills the region with an external image or another part of the document." msgstr "feImage filtra primitÄ«vs aizpilda apgabalu ar ÄrÄ“jÄ attÄ“la vai citu dokumenta daļu kopijÄm." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2988 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 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." @@ -14322,15 +14334,15 @@ msgstr "" "feMerge filtra primitÄ«vs apvieno vairÄkus filtra primitÄ«vÄ esoÅ¡us pagaidu attÄ“lus vienÄ. Å ai darbÄ«bai tiek izmantota vienkÄrÅ¡a alfa salikÅ¡ana. Tas ir lÄ«dzÄ«gs dažu feBlend filtru primitÄ«vu izmantoÅ¡anai 'parastÄ' (normal) režīmÄ vai " "dažu feComposite filtru primitÄ«vu - 'pÄri' (over) režīmÄ." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2992 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 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 "feMorphology filtra primitÄ«vs nodroÅ¡ina erozijas un izpleÅ¡anas efektus. Vienas krÄsas objektu gadÄ«jumÄ erozija padara objektu plÄnÄku, izpleÅ¡ana - biezÄku." -#: ../src/ui/dialog/filter-effects-dialog.cpp:2996 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3012 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 "feOffset filtra primitÄ«vs nobÄ«da attÄ“lu par lietotÄja noteiktu lielumu. PiemÄ“ram, tas ir noderÄ«gs Ä“nu veidoÅ¡anai, kurÄs Ä“na atrodas nedaudz citÄ stÄvoklÄ« nekÄ pats objekts." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3000 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3016 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." @@ -14338,19 +14350,19 @@ msgstr "" "feDiffuseLighting un feSpecularLighting filtru primitÄ«vi rada \"ciļņotu \" Ä“nojumu. SÄkotnÄ“jÄ attÄ“la alfa kanÄls tiks izmantots dziļuma informÄcijai: necaurspÄ«dÄ«gÄki laukumi tiek tuvinÄti skatÄ«tÄjam, caurspÄ«dÄ«gÄki - " "attÄlinÄnti." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3004 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3020 msgid "The feTile filter primitive tiles a region with its input graphic" msgstr "feTile filtra primitÄ«vs aizpilda apgabalu ar ievadÄ«tÄs grafikas kopijÄm." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3008 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3024 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 "feTurbulence filtra primitÄ«vs renderÄ“ Perlina troksni. Å is trokšņa veids ir noderÄ«gs dažÄdu dabas parÄdÄ«bu atainoÅ¡anai, piemÄ“ram - mÄkoņu, uguns un dÅ«mu un tÄdu sarežģītu tekstÅ«ru veidoÅ¡anai kÄ marmors vai granÄ«ts." -#: ../src/ui/dialog/filter-effects-dialog.cpp:3027 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3043 msgid "Duplicate filter primitive" msgstr "KopÄ“t filtra primitÄ«vu" -#: ../src/ui/dialog/filter-effects-dialog.cpp:3080 +#: ../src/ui/dialog/filter-effects-dialog.cpp:3096 msgid "Set filter primitive attribute" msgstr "IestatÄ«t filtra primitÄ«va atribÅ«tu" @@ -14534,7 +14546,7 @@ msgstr "SpirÄles" msgid "Search spirals" msgstr "MeklÄ“t spirÄles" -#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1737 +#: ../src/ui/dialog/find.cpp:103 ../src/widgets/toolbox.cpp:1733 msgid "Paths" msgstr "Ceļi" @@ -14661,7 +14673,7 @@ msgstr "IzvÄ“lieties objekta tipu" msgid "Select a property" msgstr "IzvÄ“lieties Ä«pašību" -#: ../src/ui/dialog/font-substitution.cpp:87 +#: ../src/ui/dialog/font-substitution.cpp:79 msgid "" "\n" "Some fonts are not available and have been substituted." @@ -14669,19 +14681,19 @@ msgstr "" "\n" "Daži fonti nav pieejami un ir aizvietoti." -#: ../src/ui/dialog/font-substitution.cpp:90 +#: ../src/ui/dialog/font-substitution.cpp:82 msgid "Font substitution" msgstr "Fontu aizvietojums" -#: ../src/ui/dialog/font-substitution.cpp:109 +#: ../src/ui/dialog/font-substitution.cpp:101 msgid "Select all the affected items" msgstr "AtlasÄ«t visus ietekmÄ“tos objektus" -#: ../src/ui/dialog/font-substitution.cpp:114 +#: ../src/ui/dialog/font-substitution.cpp:106 msgid "Don't show this warning again" msgstr "NerÄdÄ«t atkÄrtoti Å¡o brÄ«dinÄjumu" -#: ../src/ui/dialog/font-substitution.cpp:255 +#: ../src/ui/dialog/font-substitution.cpp:245 msgid "Font '%1' substituted with '%2'" msgstr "Fonts '%1' aizvietots ar '%2'" @@ -15406,7 +15418,7 @@ msgstr "Apgabals:" msgid "Append" msgstr "Pievienot" -#: ../src/ui/dialog/glyphs.cpp:618 +#: ../src/ui/dialog/glyphs.cpp:619 msgid "Append text" msgstr "Pievienot tekstu" @@ -15414,66 +15426,66 @@ msgstr "Pievienot tekstu" msgid "Arrange in a grid" msgstr "IzkÄrtot režģī" -#: ../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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 ../src/ui/dialog/object-attributes.cpp:66 ../src/ui/dialog/object-attributes.cpp:75 ../src/ui/widget/page-sizer.cpp:247 ../src/widgets/desktop-widget.cpp:666 ../src/widgets/node-toolbar.cpp:581 msgid "X:" msgstr "X:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:578 +#: ../src/ui/dialog/grid-arrange-tab.cpp:577 msgid "Horizontal spacing between columns." msgstr "HorizontÄlÄ atstarpe starp slejÄm." -#: ../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 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 ../src/ui/dialog/object-attributes.cpp:67 ../src/ui/dialog/object-attributes.cpp:76 ../src/ui/widget/page-sizer.cpp:248 ../src/widgets/desktop-widget.cpp:676 ../src/widgets/node-toolbar.cpp:599 msgid "Y:" msgstr "Y:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:579 +#: ../src/ui/dialog/grid-arrange-tab.cpp:578 msgid "Vertical spacing between rows." msgstr "VertikÄlÄ atstarpe starp rindÄm." -#: ../src/ui/dialog/grid-arrange-tab.cpp:626 +#: ../src/ui/dialog/grid-arrange-tab.cpp:624 msgid "_Rows:" msgstr "_Rindas:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:635 +#: ../src/ui/dialog/grid-arrange-tab.cpp:633 msgid "Number of rows" msgstr "Rindu skaits" -#: ../src/ui/dialog/grid-arrange-tab.cpp:639 +#: ../src/ui/dialog/grid-arrange-tab.cpp:637 msgid "Equal _height" msgstr "VienÄda _augstuma:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:650 +#: ../src/ui/dialog/grid-arrange-tab.cpp:648 msgid "If not set, each row has the height of the tallest object in it" msgstr "Ja nav norÄdÄ«ts, katras rindas augstums atbilst augstÄkajam objektam tajÄ" #. #### Number of columns #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:666 +#: ../src/ui/dialog/grid-arrange-tab.cpp:664 msgid "_Columns:" msgstr "_Slejas:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:675 +#: ../src/ui/dialog/grid-arrange-tab.cpp:673 msgid "Number of columns" msgstr "Sleju skaits" -#: ../src/ui/dialog/grid-arrange-tab.cpp:679 +#: ../src/ui/dialog/grid-arrange-tab.cpp:677 msgid "Equal _width" msgstr "VienÄda platuma:" -#: ../src/ui/dialog/grid-arrange-tab.cpp:689 +#: ../src/ui/dialog/grid-arrange-tab.cpp:687 msgid "If not set, each column has the width of the widest object in it" msgstr "Ja nav norÄdÄ«ts, katras slejas platums atbilst platÄkajam objektam tajÄ" #. Anchor selection widget -#: ../src/ui/dialog/grid-arrange-tab.cpp:700 +#: ../src/ui/dialog/grid-arrange-tab.cpp:698 msgid "Alignment:" msgstr "IzlÄ«dzinÄjums" #. #### Radio buttons to control spacing manually or to fit selection bbox #### -#: ../src/ui/dialog/grid-arrange-tab.cpp:709 +#: ../src/ui/dialog/grid-arrange-tab.cpp:707 msgid "_Fit into selection box" msgstr "IetilpinÄt atlasīšanas rÄmÄ«" -#: ../src/ui/dialog/grid-arrange-tab.cpp:716 +#: ../src/ui/dialog/grid-arrange-tab.cpp:714 msgid "_Set spacing:" msgstr "Ie_statÄ«t atstarpes:" @@ -15525,25 +15537,25 @@ msgstr "PalÄ«glÄ«nijas ID: %s" msgid "Current: %s" msgstr "PaÅ¡reizÄ“jais: %s" -#: ../src/ui/dialog/icon-preview.cpp:159 +#: ../src/ui/dialog/icon-preview.cpp:155 #, c-format msgid "%d x %d" msgstr "%d x %d" -#: ../src/ui/dialog/icon-preview.cpp:171 +#: ../src/ui/dialog/icon-preview.cpp:167 msgid "Magnified:" msgstr "PalielinÄts:" -#: ../src/ui/dialog/icon-preview.cpp:240 +#: ../src/ui/dialog/icon-preview.cpp:236 msgid "Actual Size:" msgstr "Patiesais izmÄ“rs:" -#: ../src/ui/dialog/icon-preview.cpp:245 +#: ../src/ui/dialog/icon-preview.cpp:241 msgctxt "Icon preview window" msgid "Sele_ction" msgstr "At_lasÄ«tais" -#: ../src/ui/dialog/icon-preview.cpp:247 +#: ../src/ui/dialog/icon-preview.cpp:243 msgid "Selection only or whole document" msgstr "Tikai iezÄ«mÄ“to vai visu dokumentu." @@ -15846,7 +15858,7 @@ msgid "Zoom" msgstr "TÄlummaiņa" #. Measure -#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2761 +#: ../src/ui/dialog/inkscape-preferences.cpp:390 ../src/verbs.cpp:2730 msgctxt "ContextVerb" msgid "Measure" msgstr "MÄ“rÄ«t" @@ -15891,7 +15903,7 @@ msgid "If on, each newly created object will be selected (deselecting previous s msgstr "Ja ieslÄ“gts, tiks atlasÄ«ts katrs jaunizveidotais objekts (atceļot iepriekšējo atlasi)" #. Text -#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2753 +#: ../src/ui/dialog/inkscape-preferences.cpp:448 ../src/verbs.cpp:2722 msgctxt "ContextVerb" msgid "Text" msgstr "Teksts" @@ -16175,8 +16187,9 @@ msgid "Indonesian (id)" msgstr "IndonÄ“zijas (id)" #: ../src/ui/dialog/inkscape-preferences.cpp:532 +#, fuzzy msgid "Icelandic (is)" -msgstr "ĪslandieÅ¡u (is)" +msgstr "IslandieÅ¡u (is)" #: ../src/ui/dialog/inkscape-preferences.cpp:532 msgid "Italian (it)" @@ -17661,7 +17674,7 @@ msgid "Rendering" msgstr "Renderēšana" #. Note: /options/bitmapoversample removed with Cairo renderer -#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:157 ../src/widgets/calligraphy-toolbar.cpp:626 +#: ../src/ui/dialog/inkscape-preferences.cpp:1434 ../src/verbs.cpp:156 ../src/widgets/calligraphy-toolbar.cpp:626 msgid "Edit" msgstr "Labot" @@ -17677,7 +17690,7 @@ msgstr "AutomÄtiski pÄrlÄdÄ“t saistÄ«tos attÄ“lus, ja datne uz diska ir main msgid "_Bitmap editor:" msgstr "_Bitkartes redaktors:" -#: ../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 +#: ../src/ui/dialog/inkscape-preferences.cpp:1441 ../share/extensions/guillotine.inx.h:5 ../share/extensions/plotter.inx.h:67 ../share/extensions/print_win32_vector.inx.h:2 msgid "Export" msgstr "EksportÄ“t" @@ -17747,6 +17760,7 @@ msgid "Bitmaps" msgstr "Bitkartes" #: ../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 separately to " msgstr "IzvÄ“lieties datni ar iepriekÅ¡ definÄ“tÄm saÄ«snÄ“m. Visas JÅ«su izveidotÄs pielÄgotÄs saÄ«snes tiks pievienotas pie " @@ -17762,11 +17776,11 @@ msgstr "MeklÄ“t:" msgid "Shortcut" msgstr "SaÄ«sne" -#: ../src/ui/dialog/inkscape-preferences.cpp:1513 ../src/ui/widget/page-sizer.cpp:260 +#: ../src/ui/dialog/inkscape-preferences.cpp:1513 ../src/ui/widget/page-sizer.cpp:285 msgid "Description" msgstr "Apraksts" -#: ../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 +#: ../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:745 msgid "Reset" msgstr "AtiestatÄ«t" @@ -18059,7 +18073,7 @@ msgid "Rename Layer" msgstr "PÄrdÄ“vÄ“t slÄni" #. 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 +#: ../src/ui/dialog/layer-properties.cpp:354 ../src/ui/dialog/layer-properties.cpp:410 ../src/verbs.cpp:194 ../src/verbs.cpp:2337 msgid "Layer" msgstr "SlÄnis" @@ -18067,7 +18081,7 @@ msgstr "SlÄnis" msgid "_Rename" msgstr "_PÄrdÄ“vÄ“t" -#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:750 +#: ../src/ui/dialog/layer-properties.cpp:368 ../src/ui/dialog/layers.cpp:758 msgid "Rename layer" msgstr "PÄrdÄ“vÄ“t slÄni" @@ -18092,7 +18106,7 @@ msgstr "Izveidots jauns slÄnis." msgid "Move to Layer" msgstr "PÄrvietot uz slÄni" -#: ../src/ui/dialog/layer-properties.cpp:411 ../src/ui/dialog/lpe-powerstroke-properties.cpp:120 ../src/ui/dialog/transformation.cpp:112 +#: ../src/ui/dialog/layer-properties.cpp:411 ../src/ui/dialog/lpe-powerstroke-properties.cpp:116 ../src/ui/dialog/transformation.cpp:108 msgid "_Move" msgstr "PÄr_vietot" @@ -18112,39 +18126,39 @@ msgstr "SlÄ“gt slÄni" msgid "Unlock layer" msgstr "AtslÄ“gt slÄni" -#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 ../src/verbs.cpp:1438 +#: ../src/ui/dialog/layers.cpp:624 ../src/ui/dialog/objects.cpp:843 ../src/verbs.cpp:1407 msgid "Toggle layer solo" msgstr "PÄrslÄ“gt tikai Å¡o slÄni" -#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 ../src/verbs.cpp:1462 +#: ../src/ui/dialog/layers.cpp:627 ../src/ui/dialog/objects.cpp:846 ../src/verbs.cpp:1431 msgid "Lock other layers" msgstr "SlÄ“dz citus slÄņus" -#: ../src/ui/dialog/layers.cpp:721 +#: ../src/ui/dialog/layers.cpp:730 msgid "Moved layer" msgstr "PÄrvietotais slÄnis" -#: ../src/ui/dialog/layers.cpp:884 +#: ../src/ui/dialog/layers.cpp:892 msgctxt "Layers" msgid "New" msgstr "Jauns" -#: ../src/ui/dialog/layers.cpp:889 +#: ../src/ui/dialog/layers.cpp:897 msgctxt "Layers" msgid "Bot" msgstr "ApakÅ¡a" -#: ../src/ui/dialog/layers.cpp:895 +#: ../src/ui/dialog/layers.cpp:903 msgctxt "Layers" msgid "Dn" msgstr "Dn" -#: ../src/ui/dialog/layers.cpp:901 +#: ../src/ui/dialog/layers.cpp:909 msgctxt "Layers" msgid "Up" msgstr "Uz augÅ¡u" -#: ../src/ui/dialog/layers.cpp:907 +#: ../src/ui/dialog/layers.cpp:915 msgctxt "Layers" msgid "Top" msgstr "AugÅ¡a" @@ -18221,43 +18235,43 @@ msgstr "IeslÄ“gt ceļa efektu" msgid "Deactivate path effect" msgstr "AtslÄ“gt ceļa efektu" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:57 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:52 msgid "Radius (pixels):" msgstr "RÄdiuss (pikseļos):" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:69 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:64 msgid "Chamfer subdivisions:" msgstr "NokÄpes fazÄ«tes apakÅ¡iedaļas:" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:144 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:135 msgid "Modify Fillet-Chamfer" msgstr "MainÄ«t nokÄpi/apcilni" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:145 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:136 msgid "_Modify" msgstr "_MainÄ«t" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:210 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:200 msgid "Radius" msgstr "RÄdiuss" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:202 msgid "Radius approximated" msgstr "RÄdiuss aproksimÄ“ts" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:205 msgid "Knot distance" msgstr "Mezgla attÄlums" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:222 +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:212 msgid "Position (%):" msgstr "PozÄ«cija (%):" -#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:225 -msgid "%1 (%2):" -msgstr "%1 (%2):" +#: ../src/ui/dialog/lpe-fillet-chamfer-properties.cpp:215 +msgid "%1:" +msgstr "%1:" -#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:119 +#: ../src/ui/dialog/lpe-powerstroke-properties.cpp:115 msgid "Modify Node Position" msgstr "MainÄ«t mezgla pozÄ«ciju" @@ -18409,7 +18423,7 @@ msgid "Check to make the object insensitive (not selectable by mouse)" msgstr "AtzÄ«mÄ“jiet, lai padarÄ«tu objektu nejÅ«tÄ«gu (neatlasÄmu ar peli)" #. 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 +#: ../src/ui/dialog/object-properties.cpp:325 ../src/verbs.cpp:2680 ../src/verbs.cpp:2686 msgid "_Set" msgstr "Ie_statÄ«t" @@ -18446,19 +18460,24 @@ msgstr "IestatÄ«t objekta nosaukumu" msgid "Set object description" msgstr "IestatÄ«t objekta aprakstu" -#: ../src/ui/dialog/object-properties.cpp:552 +#: ../src/ui/dialog/object-properties.cpp:535 +#, fuzzy +msgid "Set image rendering option" +msgstr "IekÄrtas renderÄ“juma nolÅ«ks:" + +#: ../src/ui/dialog/object-properties.cpp:554 msgid "Lock object" msgstr "SlÄ“gt objektu" -#: ../src/ui/dialog/object-properties.cpp:552 +#: ../src/ui/dialog/object-properties.cpp:554 msgid "Unlock object" msgstr "AtslÄ“gt objektu" -#: ../src/ui/dialog/object-properties.cpp:568 +#: ../src/ui/dialog/object-properties.cpp:570 msgid "Hide object" msgstr "PaslÄ“pt objektu" -#: ../src/ui/dialog/object-properties.cpp:568 +#: ../src/ui/dialog/object-properties.cpp:570 msgid "Unhide object" msgstr "RÄdÄ«t objektu" @@ -18490,7 +18509,7 @@ msgstr "Grupu par slÄni" msgid "Moved objects" msgstr "PÄrvietotie objekti" -#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:856 ../src/ui/dialog/tags.cpp:863 +#: ../src/ui/dialog/objects.cpp:1352 ../src/ui/dialog/tags.cpp:857 ../src/ui/dialog/tags.cpp:864 msgid "Rename object" msgstr "PÄrdÄ“vÄ“t objektu" @@ -18769,11 +18788,11 @@ msgstr "Leņķis X/Y:" msgid "Rotate objects" msgstr "Pagriezt objektus" -#: ../src/ui/dialog/polar-arrange-tab.cpp:338 +#: ../src/ui/dialog/polar-arrange-tab.cpp:336 msgid "Couldn't find an ellipse in selection" msgstr "AtlasÄ«tajÄ nav atrasta elipse." -#: ../src/ui/dialog/polar-arrange-tab.cpp:403 +#: ../src/ui/dialog/polar-arrange-tab.cpp:399 msgid "Arrange on ellipse" msgstr "IzkÄrtot gar elipsi" @@ -19031,7 +19050,7 @@ msgstr "Parauga teksts" msgid "Preview Text:" msgstr "Teksta priekÅ¡skatÄ«jums:" -#: ../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 +#: ../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:795 msgid "Add gradient stop" msgstr "Pievienot krÄsu pÄrejas pieturpunktu" @@ -19059,73 +19078,73 @@ msgid "Palettes directory (%s) is unavailable." msgstr "PaleÅ¡u mape (%s) nav pieejama." #. ******************* Symbol Sets ************************ -#: ../src/ui/dialog/symbols.cpp:139 +#: ../src/ui/dialog/symbols.cpp:135 msgid "Symbol set: " msgstr "Simbolu kopa:" #. Fill in later -#: ../src/ui/dialog/symbols.cpp:148 ../src/ui/dialog/symbols.cpp:149 +#: ../src/ui/dialog/symbols.cpp:144 ../src/ui/dialog/symbols.cpp:145 msgid "Current Document" msgstr "PaÅ¡reizÄ“jais dokuments" -#: ../src/ui/dialog/symbols.cpp:216 +#: ../src/ui/dialog/symbols.cpp:212 msgid "Add Symbol from the current document." msgstr "Pievienot simbolu no paÅ¡reizÄ“jÄ dokumenta." -#: ../src/ui/dialog/symbols.cpp:225 +#: ../src/ui/dialog/symbols.cpp:221 msgid "Remove Symbol from the current document." msgstr "AizvÄklt simbolu no paÅ¡reizÄ“jÄ dokumenta." -#: ../src/ui/dialog/symbols.cpp:239 +#: ../src/ui/dialog/symbols.cpp:235 msgid "Display more icons in row." msgstr "RÄdÄ«t vairÄk ikonu vienÄ rindÄ." -#: ../src/ui/dialog/symbols.cpp:248 +#: ../src/ui/dialog/symbols.cpp:244 msgid "Display fewer icons in row." msgstr "RÄdÄ«t mazÄk ikonu vienÄ rindÄ." -#: ../src/ui/dialog/symbols.cpp:258 +#: ../src/ui/dialog/symbols.cpp:254 msgid "Toggle 'fit' symbols in icon space." msgstr "IeslÄ“dziet simbolu \"ietilpinÄÅ¡anu\" ikonu laukÄ. " -#: ../src/ui/dialog/symbols.cpp:270 +#: ../src/ui/dialog/symbols.cpp:266 msgid "Make symbols smaller by zooming out." msgstr "Samaziniet simbolus tÄlinot." -#: ../src/ui/dialog/symbols.cpp:280 +#: ../src/ui/dialog/symbols.cpp:276 msgid "Make symbols bigger by zooming in." msgstr "Palieliniet simbolus tuvinot." -#: ../src/ui/dialog/symbols.cpp:641 +#: ../src/ui/dialog/symbols.cpp:637 msgid "Unnamed Symbols" msgstr "Nenosaukti simboli" -#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:572 ../src/ui/dialog/tags.cpp:686 +#: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:573 ../src/ui/dialog/tags.cpp:687 #, fuzzy msgid "Remove from selection set" msgstr "IzpludinÄtÄs iezÄ«mÄ“juma malas padarÄ«t atkal asas" -#: ../src/ui/dialog/tags.cpp:430 +#: ../src/ui/dialog/tags.cpp:431 #, fuzzy msgid "Items" -msgstr "vienÄ«bas" +msgstr "VienÄ«bas" -#: ../src/ui/dialog/tags.cpp:669 +#: ../src/ui/dialog/tags.cpp:670 #, fuzzy msgid "Add selection to set" msgstr "Pievienot iezÄ«mÄ“jum_am" -#: ../src/ui/dialog/tags.cpp:827 +#: ../src/ui/dialog/tags.cpp:828 #, fuzzy msgid "Moved sets" msgstr "PÄrvietots" -#: ../src/ui/dialog/tags.cpp:997 +#: ../src/ui/dialog/tags.cpp:998 #, fuzzy msgid "Add a new selection set" -msgstr "Pacelt izvÄ“lÄ“to par vienu soli uz augÅ¡u" +msgstr "Pievienot iezÄ«mÄ“tajam" -#: ../src/ui/dialog/tags.cpp:1006 +#: ../src/ui/dialog/tags.cpp:1007 #, fuzzy msgid "Remove Item/Set" msgstr "Izņemt Å¡o vienÄ«bu" @@ -19163,28 +19182,28 @@ msgid "AaBbCcIiPpQq12369$€¢?.;/()" msgstr "AaBbCcIiPpQq12369$€¢?.;/()" #. Align buttons -#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1333 ../src/widgets/text-toolbar.cpp:1334 +#: ../src/ui/dialog/text-edit.cpp:96 ../src/widgets/text-toolbar.cpp:1339 ../src/widgets/text-toolbar.cpp:1340 msgid "Align left" msgstr "IzlÄ«dzinÄt pa kreisi" -#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1341 ../src/widgets/text-toolbar.cpp:1342 +#: ../src/ui/dialog/text-edit.cpp:97 ../src/widgets/text-toolbar.cpp:1347 ../src/widgets/text-toolbar.cpp:1348 msgid "Align center" msgstr "IzlÄ«dzinÄt pret centru" -#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1349 ../src/widgets/text-toolbar.cpp:1350 +#: ../src/ui/dialog/text-edit.cpp:98 ../src/widgets/text-toolbar.cpp:1355 ../src/widgets/text-toolbar.cpp:1356 msgid "Align right" msgstr "IzlÄ«dzinÄt pa labi" -#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1358 +#: ../src/ui/dialog/text-edit.cpp:99 ../src/widgets/text-toolbar.cpp:1364 msgid "Justify (only flowed text)" msgstr "IzlÄ«dzinÄt (tikai teksta aizpildÄ«jumam)" #. Direction buttons -#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1393 +#: ../src/ui/dialog/text-edit.cpp:108 ../src/widgets/text-toolbar.cpp:1399 msgid "Horizontal text" msgstr "HorizontÄls teksts" -#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1400 +#: ../src/ui/dialog/text-edit.cpp:109 ../src/widgets/text-toolbar.cpp:1406 msgid "Vertical text" msgstr "VertikÄls teksts" @@ -19196,7 +19215,7 @@ msgstr "Atstarpe starp rindÄm (procentos no fonta izmÄ“ra)" msgid "Text path offset" msgstr "Teksta ceļa nobÄ«de" -#: ../src/ui/dialog/text-edit.cpp:586 ../src/ui/dialog/text-edit.cpp:660 ../src/ui/tools/text-tool.cpp:1446 +#: ../src/ui/dialog/text-edit.cpp:584 ../src/ui/dialog/text-edit.cpp:658 ../src/ui/tools/text-tool.cpp:1446 msgid "Set text style" msgstr "IestatÄ«t teksta stilu" @@ -19455,136 +19474,136 @@ msgstr "PriekÅ¡skatÄ«t starpposma bitkarti ar paÅ¡reizÄ“jiem iestatÄ«jumiem, nev msgid "Preview" msgstr "PriekÅ¡skatÄ«jums" -#: ../src/ui/dialog/transformation.cpp:74 ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:70 ../src/ui/dialog/transformation.cpp:80 msgid "_Horizontal:" msgstr "_HorizontÄlÄ:" -#: ../src/ui/dialog/transformation.cpp:74 +#: ../src/ui/dialog/transformation.cpp:70 msgid "Horizontal displacement (relative) or position (absolute)" msgstr "HorizontÄlais pÄrvietojums (relatÄ«vais) vai pozÄ«cija (absolÅ«tais)" -#: ../src/ui/dialog/transformation.cpp:76 ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:72 ../src/ui/dialog/transformation.cpp:82 msgid "_Vertical:" msgstr "_VertikÄlÄ:" -#: ../src/ui/dialog/transformation.cpp:76 +#: ../src/ui/dialog/transformation.cpp:72 msgid "Vertical displacement (relative) or position (absolute)" msgstr "VertikÄlais pÄrvietojums (relatÄ«vais) vai pozÄ«cija (absolÅ«tais)" -#: ../src/ui/dialog/transformation.cpp:78 +#: ../src/ui/dialog/transformation.cpp:74 msgid "Horizontal size (absolute or percentage of current)" msgstr "HorizontÄlais izmÄ“rs (absolÅ«tais vai procentos no paÅ¡reizÄ“jÄ)" -#: ../src/ui/dialog/transformation.cpp:80 +#: ../src/ui/dialog/transformation.cpp:76 msgid "Vertical size (absolute or percentage of current)" msgstr "VertikÄlais izmÄ“rs (absolÅ«tais vai procentos no paÅ¡reizÄ“jÄ)" -#: ../src/ui/dialog/transformation.cpp:82 +#: ../src/ui/dialog/transformation.cpp:78 msgid "A_ngle:" msgstr "L_eņķis:" -#: ../src/ui/dialog/transformation.cpp:82 ../src/ui/dialog/transformation.cpp:1103 +#: ../src/ui/dialog/transformation.cpp:78 ../src/ui/dialog/transformation.cpp:1103 msgid "Rotation angle (positive = counterclockwise)" msgstr "Pagrieziena leņķis (pozitÄ«vs = pretÄ“ji pulksteņrÄdÄ«tÄjam)" -#: ../src/ui/dialog/transformation.cpp:84 +#: ../src/ui/dialog/transformation.cpp:80 msgid "Horizontal skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement" msgstr "HorizontÄlÄs šķiebÅ¡anas leņķis (pozÄ«tÄ«vs = pretÄ“ji pulksteņrÄdÄ«tÄjam), vai absolÅ«tais pÄrvietojums, vai procentuÄlais pÄrvietojums" -#: ../src/ui/dialog/transformation.cpp:86 +#: ../src/ui/dialog/transformation.cpp:82 msgid "Vertical skew angle (positive = counterclockwise), or absolute displacement, or percentage displacement" msgstr "VertikÄlÄs šķiebÅ¡anas leņķis (pozÄ«tÄ«vs = pretÄ“ji pulksteņrÄdÄ«tÄjam), vai absolÅ«tais pÄrvietojums, vai procentuÄlais pÄrvietojums" -#: ../src/ui/dialog/transformation.cpp:89 +#: ../src/ui/dialog/transformation.cpp:85 msgid "Transformation matrix element A" msgstr "PÄrveidoÅ¡anas matricas elements A" -#: ../src/ui/dialog/transformation.cpp:90 +#: ../src/ui/dialog/transformation.cpp:86 msgid "Transformation matrix element B" msgstr "PÄrveidoÅ¡anas matricas elements B" -#: ../src/ui/dialog/transformation.cpp:91 +#: ../src/ui/dialog/transformation.cpp:87 msgid "Transformation matrix element C" msgstr "PÄrveidoÅ¡anas matricas elements C" -#: ../src/ui/dialog/transformation.cpp:92 +#: ../src/ui/dialog/transformation.cpp:88 msgid "Transformation matrix element D" msgstr "PÄrveidoÅ¡anas matricas elements D" -#: ../src/ui/dialog/transformation.cpp:93 +#: ../src/ui/dialog/transformation.cpp:89 msgid "Transformation matrix element E" msgstr "PÄrveidoÅ¡anas matricas elements E" -#: ../src/ui/dialog/transformation.cpp:94 +#: ../src/ui/dialog/transformation.cpp:90 msgid "Transformation matrix element F" msgstr "PÄrveidoÅ¡anas matricas elements F" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Rela_tive move" msgstr "Rela_tÄ«vais pÄrvietojums" -#: ../src/ui/dialog/transformation.cpp:99 +#: ../src/ui/dialog/transformation.cpp:95 msgid "Add the specified relative displacement to the current position; otherwise, edit the current absolute position directly" msgstr "Pievienot paÅ¡reizÄ“jam novietojumam norÄdÄ«to relatÄ«vo nobÄ«di; pretÄ“jÄ gadÄ«jumÄ labot paÅ¡reizÄ“jo absolÅ«to novietojumu" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "_Scale proportionally" msgstr "MÄ“rogot _proporcionÄli" -#: ../src/ui/dialog/transformation.cpp:100 +#: ../src/ui/dialog/transformation.cpp:96 msgid "Preserve the width/height ratio of the scaled objects" msgstr "SaglabÄt platuma/augstuma attiecÄ«bu mÄ“rogotajiem objektiem" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 msgid "Apply to each _object separately" msgstr "Pielietot katram _objektam atsevišķi" -#: ../src/ui/dialog/transformation.cpp:101 +#: ../src/ui/dialog/transformation.cpp:97 msgid "Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole" msgstr "Pielietot mÄ“rogoÅ¡anu/grieÅ¡anu/šķiebÅ¡anu katram atlasÄ«tajam objektam atsevišķi; pretÄ“jÄ gadÄ«jumÄ - pÄrveidot atlasÄ«to kÄ vienu veselu" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:98 msgid "Edit c_urrent matrix" msgstr "Labot paÅ¡reizÄ“jo matric_u" -#: ../src/ui/dialog/transformation.cpp:102 +#: ../src/ui/dialog/transformation.cpp:98 msgid "Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix" msgstr "Labojiet paÅ¡reizÄ“jo transform= matricu; pretÄ“jÄ gadÄ«jumÄ - vÄ“lÄk reiziniet transform= ar Å¡o matricu" -#: ../src/ui/dialog/transformation.cpp:115 +#: ../src/ui/dialog/transformation.cpp:111 msgid "_Scale" msgstr "_MÄ“rogot" -#: ../src/ui/dialog/transformation.cpp:118 +#: ../src/ui/dialog/transformation.cpp:114 msgid "_Rotate" msgstr "Pag_riezt" -#: ../src/ui/dialog/transformation.cpp:121 +#: ../src/ui/dialog/transformation.cpp:117 msgid "Ske_w" msgstr "Å Ä·ie_bt" -#: ../src/ui/dialog/transformation.cpp:124 +#: ../src/ui/dialog/transformation.cpp:120 msgid "Matri_x" msgstr "Matri_ca" -#: ../src/ui/dialog/transformation.cpp:148 +#: ../src/ui/dialog/transformation.cpp:144 msgid "Reset the values on the current tab to defaults" msgstr "AtiestatÄ«t vÄ“rtÄ«bas paÅ¡reizÄ“jÄ Å¡Ä·irklÄ« uz noklusÄ“tajÄm" -#: ../src/ui/dialog/transformation.cpp:155 +#: ../src/ui/dialog/transformation.cpp:151 msgid "Apply transformation to selection" msgstr "Pielietot pÄrveidojumu atlasÄ«tajam" -#: ../src/ui/dialog/transformation.cpp:331 +#: ../src/ui/dialog/transformation.cpp:327 msgid "Rotate in a counterclockwise direction" msgstr "Pagriezt pretÄ“ji pulksteņrÄdÄ«tÄjam" -#: ../src/ui/dialog/transformation.cpp:337 +#: ../src/ui/dialog/transformation.cpp:333 msgid "Rotate in a clockwise direction" msgstr "Pagriezt pa pulksteņrÄdÄ«tÄjam" -#: ../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 +#: ../src/ui/dialog/transformation.cpp:906 ../src/ui/dialog/transformation.cpp:917 ../src/ui/dialog/transformation.cpp:931 ../src/ui/dialog/transformation.cpp:950 ../src/ui/dialog/transformation.cpp:961 ../src/ui/dialog/transformation.cpp:971 +#: ../src/ui/dialog/transformation.cpp:995 msgid "Transform matrix is singular, not used." msgstr "PÄrveidoÅ¡anas matrica ir singulÄra, netiek izmantota." @@ -19774,7 +19793,7 @@ msgid "Enter group #%1" msgstr "Ievadiet (ieejiet) grupu(Ä) #%1" #. Item dialog -#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2932 +#: ../src/ui/interface.cpp:1641 ../src/verbs.cpp:2901 msgid "_Object Properties..." msgstr "_Objekta Ä«pašības..." @@ -19847,7 +19866,7 @@ msgid "Release C_lip" msgstr "AtbrÄ«vot apgrieÅ¡anas kontÅ«ru" #. Group -#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2565 +#: ../src/ui/interface.cpp:1790 ../src/verbs.cpp:2534 msgid "_Group" msgstr "_GrupÄ“t" @@ -19856,137 +19875,137 @@ msgid "Create link" msgstr "Izveidot saiti" #. Ungroup -#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2567 +#: ../src/ui/interface.cpp:1896 ../src/verbs.cpp:2536 msgid "_Ungroup" msgstr "_AtgrupÄ“t" #. Link dialog -#: ../src/ui/interface.cpp:1921 +#: ../src/ui/interface.cpp:1920 msgid "Link _Properties..." msgstr "Saites Ä«_pašības..." #. Select item -#: ../src/ui/interface.cpp:1927 +#: ../src/ui/interface.cpp:1926 msgid "_Follow Link" msgstr "Se_kot saitei" #. Reset transformations -#: ../src/ui/interface.cpp:1933 +#: ../src/ui/interface.cpp:1932 msgid "_Remove Link" msgstr "_AizvÄkt saiti" -#: ../src/ui/interface.cpp:1964 +#: ../src/ui/interface.cpp:1963 msgid "Remove link" msgstr "AizvÄkt saiti" #. Image properties -#: ../src/ui/interface.cpp:1975 +#: ../src/ui/interface.cpp:1973 msgid "Image _Properties..." msgstr "AttÄ“la Ä«_pašības..." #. Edit externally -#: ../src/ui/interface.cpp:1981 +#: ../src/ui/interface.cpp:1979 msgid "Edit Externally..." msgstr "Labot ÄrÄ“jÄ redaktorÄ..." #. Trace Bitmap #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/ui/interface.cpp:1990 ../src/verbs.cpp:2628 +#: ../src/ui/interface.cpp:1988 ../src/verbs.cpp:2597 msgid "_Trace Bitmap..." msgstr "Vek_torizÄ“t bitkarti..." #. Trace Pixel Art -#: ../src/ui/interface.cpp:1999 +#: ../src/ui/interface.cpp:1997 msgid "Trace Pixel Art" msgstr "VektorizÄ“t punktu attÄ“lu" -#: ../src/ui/interface.cpp:2009 +#: ../src/ui/interface.cpp:2007 msgctxt "Context menu" msgid "Embed Image" msgstr "Iegult attÄ“lu" -#: ../src/ui/interface.cpp:2020 +#: ../src/ui/interface.cpp:2018 msgctxt "Context menu" msgid "Extract Image..." msgstr "Ekstraģēt attÄ“lu..." #. Item dialog #. Fill and Stroke dialog -#: ../src/ui/interface.cpp:2165 ../src/ui/interface.cpp:2185 ../src/verbs.cpp:2895 +#: ../src/ui/interface.cpp:2162 ../src/ui/interface.cpp:2182 ../src/verbs.cpp:2864 msgid "_Fill and Stroke..." msgstr "_AizpildÄ«jums un apmale..." #. Edit Text dialog -#: ../src/ui/interface.cpp:2191 ../src/verbs.cpp:2914 +#: ../src/ui/interface.cpp:2188 ../src/verbs.cpp:2883 msgid "_Text and Font..." msgstr "_Teksts un fonts" #. Spellcheck dialog -#: ../src/ui/interface.cpp:2197 ../src/verbs.cpp:2922 +#: ../src/ui/interface.cpp:2194 ../src/verbs.cpp:2891 msgid "Check Spellin_g..." msgstr "PÄrbaudÄ«t pareizrakstÄ«bu" -#: ../src/ui/object-edit.cpp:464 +#: ../src/ui/object-edit.cpp:450 msgid "Adjust the horizontal rounding radius; with Ctrl to make the vertical radius the same" msgstr "Pieskaņot horizontÄlÄ noapaļojuma rÄdiusu; ar Ctrl - piešķirt vertikÄlajam rÄdiusam to paÅ¡u vÄ“rtÄ«bu" -#: ../src/ui/object-edit.cpp:469 +#: ../src/ui/object-edit.cpp:455 msgid "Adjust the vertical rounding radius; with Ctrl to make the horizontal radius the same" msgstr "Pieskaņot vertikÄlÄ noapaļojuma rÄdiusu; ar Ctrl - piešķirt horizontÄlajam rÄdiusam to paÅ¡u vÄ“rtÄ«bu" -#: ../src/ui/object-edit.cpp:474 ../src/ui/object-edit.cpp:479 +#: ../src/ui/object-edit.cpp:460 ../src/ui/object-edit.cpp:465 msgid "Adjust the width and height of the rectangle; with Ctrl to lock ratio or stretch in one dimension only" msgstr "Pieskaņot taisnstÅ«ra augstumu un platumu; ar Ctrl - saglabÄt malu attiecÄ«bas vai mainÄ«t tikai vienu no lielumiem" -#: ../src/ui/object-edit.cpp:726 ../src/ui/object-edit.cpp:730 ../src/ui/object-edit.cpp:734 ../src/ui/object-edit.cpp:738 +#: ../src/ui/object-edit.cpp:712 ../src/ui/object-edit.cpp:716 ../src/ui/object-edit.cpp:720 ../src/ui/object-edit.cpp:724 msgid "Resize box in X/Y direction; with Shift along the Z axis; with Ctrl to constrain to the directions of edges or diagonals" msgstr "MainÄ«t paralÄ“lskaldņa izmÄ“rus X/Y virzienos; ar Shift - gar Z asi; ar Ctrl - ierobežot ar malu vai diagonÄļu virzienu" -#: ../src/ui/object-edit.cpp:742 ../src/ui/object-edit.cpp:746 ../src/ui/object-edit.cpp:750 ../src/ui/object-edit.cpp:754 +#: ../src/ui/object-edit.cpp:728 ../src/ui/object-edit.cpp:732 ../src/ui/object-edit.cpp:736 ../src/ui/object-edit.cpp:740 msgid "Resize box along the Z axis; with Shift in X/Y direction; with Ctrl to constrain to the directions of edges or diagonals" msgstr "MainÄ«t paralÄ“lskaldņa izmÄ“rus Z virzienÄ; ar Shift - gar X/Y asÄ«m; ar Ctrl - ierobežot ar malu vai diagonÄļu virzienu" -#: ../src/ui/object-edit.cpp:758 +#: ../src/ui/object-edit.cpp:744 msgid "Move the box in perspective" msgstr "PÄrvietot paralÄ“lskaldni perspektÄ«vÄ" -#: ../src/ui/object-edit.cpp:997 +#: ../src/ui/object-edit.cpp:983 msgid "Adjust ellipse width, with Ctrl to make circle" msgstr "MainÄ«t elipses platumu, ar Ctrl - pÄrveidot par riņķi" -#: ../src/ui/object-edit.cpp:1001 +#: ../src/ui/object-edit.cpp:987 msgid "Adjust ellipse height, with Ctrl to make circle" msgstr "MainÄ«t elipses augstumu, ar Ctrl - pÄrveidot par riņķi" -#: ../src/ui/object-edit.cpp:1005 +#: ../src/ui/object-edit.cpp:991 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 "Novietojiet loka vai segmenta sÄkumpunktu; ar Ctrl - pievilkt leņķim; lai iegÅ«tu loku, velciet elipses iekÅ¡pusÄ“; lai iegÅ«tu sektoru - ÄrpusÄ“" -#: ../src/ui/object-edit.cpp:1010 +#: ../src/ui/object-edit.cpp:996 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 "Novietojiet loka vai segmenta beigu punktu; ar Ctrl - pievilkt leņķim; lai iegÅ«tu loku, velciet elipses iekÅ¡pusÄ“; lai iegÅ«tu sektoru - ÄrpusÄ“" -#: ../src/ui/object-edit.cpp:1156 +#: ../src/ui/object-edit.cpp:1142 msgid "Adjust the tip radius of the star or polygon; with Shift to round; with Alt to randomize" msgstr "Pieskaņot zvaigznes vai daudzstÅ«ra galotņu rÄdiusu; ar Shift - noapaļot; ar Alt - dažÄdot" -#: ../src/ui/object-edit.cpp:1164 +#: ../src/ui/object-edit.cpp:1150 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 "Pieskaņot zvaigznes bÄzes rÄdiusu; ar Ctrl - saglabÄt starus radiÄlus (nenošķiebtus); ar Shift - noapaļot; ar Alt - dažÄdot" -#: ../src/ui/object-edit.cpp:1359 +#: ../src/ui/object-edit.cpp:1345 msgid "Roll/unroll the spiral from inside; with Ctrl to snap angle; with Alt to converge/diverge" msgstr "SatÄ«t/attÄ«t spirÄli no iekÅ¡puses; ar Ctrl - pievilkt leņķim; ar Alt - savirzÄ«t/atvirzÄ«t" -#: ../src/ui/object-edit.cpp:1363 +#: ../src/ui/object-edit.cpp:1349 msgid "Roll/unroll the spiral from outside; with Ctrl to snap angle; with Shift to scale/rotate; with Alt to lock radius" msgstr "SatÄ«t/attÄ«t spirÄli no Ärpuses; ar Ctrl - pievilkt leņķim; ar Shift - mÄ“rogot/griezt; ar Alt - fiksÄ“t rÄdiusu" -#: ../src/ui/object-edit.cpp:1410 +#: ../src/ui/object-edit.cpp:1396 msgid "Adjust the offset distance" msgstr "Pieskaņojiet pÄrbÄ«des attÄlumu" -#: ../src/ui/object-edit.cpp:1447 +#: ../src/ui/object-edit.cpp:1433 msgid "Drag to resize the flowed text frame" msgstr "Velciet, lai mainÄ«tu ar tekstu aizpildÄ«tÄ rÄmja izmÄ“ru." @@ -20022,7 +20041,7 @@ msgstr "BezjÄ“ posms: velciet, lai veidotu posmu, dubultklikšķis - lai msgid "Retract handles" msgstr "Ievilkt mezglus" -#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:296 +#: ../src/ui/tool/multi-path-manipulator.cpp:315 ../src/ui/tool/node.cpp:295 msgid "Change node type" msgstr "MainÄ«t mezgla tipu" @@ -20102,196 +20121,196 @@ msgstr "Apmest mezglus horizontÄli" msgid "Flip nodes vertically" msgstr "Apmest mezglus vertikÄli" -#: ../src/ui/tool/node.cpp:271 +#: ../src/ui/tool/node.cpp:270 msgid "Cusp node handle" msgstr "StÅ«ra mezgla turis" -#: ../src/ui/tool/node.cpp:272 +#: ../src/ui/tool/node.cpp:271 msgid "Smooth node handle" msgstr "GludÄ mezgla turis" -#: ../src/ui/tool/node.cpp:273 +#: ../src/ui/tool/node.cpp:272 msgid "Symmetric node handle" msgstr "SimetriskÄ mezgla turis" -#: ../src/ui/tool/node.cpp:274 +#: ../src/ui/tool/node.cpp:273 msgid "Auto-smooth node handle" msgstr "Auto-gludÄ mezgla turis" -#: ../src/ui/tool/node.cpp:493 +#: ../src/ui/tool/node.cpp:492 msgctxt "Path handle tip" msgid "more: Shift, Ctrl, Alt" msgstr "vairÄk: Shift, Ctrl, Alt" -#: ../src/ui/tool/node.cpp:495 +#: ../src/ui/tool/node.cpp:494 msgctxt "Path handle tip" msgid "more: Ctrl" msgstr "vairÄk: Ctrl" -#: ../src/ui/tool/node.cpp:497 +#: ../src/ui/tool/node.cpp:496 msgctxt "Path handle tip" msgid "more: Ctrl, Alt" msgstr "vairÄk: Ctrl, Alt" -#: ../src/ui/tool/node.cpp:503 +#: ../src/ui/tool/node.cpp:502 #, c-format msgctxt "Path handle tip" msgid "Shift+Ctrl+Alt: preserve length and snap rotation angle to %g° increments while rotating both handles" msgstr "Shift+Ctrl+Alt: saglabÄt garumu un pievilkt grieÅ¡anas leņķi ik %g° pieaugumam, griežot abus turus" -#: ../src/ui/tool/node.cpp:508 +#: ../src/ui/tool/node.cpp:507 #, c-format msgctxt "Path handle tip" msgid "Ctrl+Alt: preserve length and snap rotation angle to %g° increments" msgstr "Ctrl+Alt: saglabÄt garumu un pievilkt grieÅ¡anas leņķi ik %g° pieaugumam" -#: ../src/ui/tool/node.cpp:514 +#: ../src/ui/tool/node.cpp:513 msgctxt "Path handle tip" msgid "Shift+Alt: preserve handle length and rotate both handles" msgstr "Shift+Alt: saglabÄt turu garumu un griezt abus turus" -#: ../src/ui/tool/node.cpp:517 +#: ../src/ui/tool/node.cpp:516 msgctxt "Path handle tip" msgid "Alt: preserve handle length while dragging" msgstr "Alt: velkot saglabÄt tura garumu" -#: ../src/ui/tool/node.cpp:524 +#: ../src/ui/tool/node.cpp:523 #, c-format msgctxt "Path handle tip" msgid "Shift+Ctrl: snap rotation angle to %g° increments and rotate both handles" msgstr "Shift+Ctrl: pievilkt grieÅ¡anas leņķi ik %g° pieaugumam un griezt abus turus" -#: ../src/ui/tool/node.cpp:528 +#: ../src/ui/tool/node.cpp:527 #, fuzzy msgctxt "Path handle tip" msgid "Ctrl: Move handle by his actual steps in BSpline Live Effect" msgstr "Ctrl: Move handle by his actual steps in BSpline Live Effect" -#: ../src/ui/tool/node.cpp:531 +#: ../src/ui/tool/node.cpp:530 #, c-format msgctxt "Path handle tip" msgid "Ctrl: snap rotation angle to %g° increments, click to retract" msgstr "Ctrl: pievilkt grieÅ¡anas leņķi ik %g° pieaugumam, uzklikšķiniet - lai atsauktu" -#: ../src/ui/tool/node.cpp:536 +#: ../src/ui/tool/node.cpp:535 msgctxt "Path hande tip" msgid "Shift: rotate both handles by the same angle" msgstr "Shift: pagriezt abus turus par vienÄdu leņķi" -#: ../src/ui/tool/node.cpp:539 +#: ../src/ui/tool/node.cpp:538 msgctxt "Path hande tip" msgid "Shift: move handle" msgstr "Shift: pÄrvietot turi" -#: ../src/ui/tool/node.cpp:546 ../src/ui/tool/node.cpp:550 +#: ../src/ui/tool/node.cpp:545 ../src/ui/tool/node.cpp:549 #, c-format msgctxt "Path handle tip" msgid "Auto node handle: drag to convert to smooth node (%s)" msgstr "Auto mezgla turis: velciet, lai pÄrvÄ“rstu par gludo mezglu (%s)" -#: ../src/ui/tool/node.cpp:553 +#: ../src/ui/tool/node.cpp:552 #, fuzzy, c-format msgctxt "Path handle tip" -msgid "BSpline node handle: Shift to drag, double click to reset (%s)" +msgid "BSpline node handle: Shift to drag, double click to reset (%s). %g power" msgstr "Auto mezgla turis: velciet, lai pÄrvÄ“rstu par gludo mezglu (%s)" -#: ../src/ui/tool/node.cpp:573 +#: ../src/ui/tool/node.cpp:572 #, c-format msgctxt "Path handle tip" msgid "Move handle by %s, %s; angle %.2f°, length %s" msgstr "PÄrvietot turi par %s, %s; leņki - %.2f°, garumu - %s" -#: ../src/ui/tool/node.cpp:1447 +#: ../src/ui/tool/node.cpp:1448 msgctxt "Path node tip" msgid "Shift: drag out a handle, click to toggle selection" msgstr "Shift: izvilkt turi; klikšķiniet, lai pÄrslÄ“gtu atlasi" -#: ../src/ui/tool/node.cpp:1449 +#: ../src/ui/tool/node.cpp:1450 msgctxt "Path node tip" msgid "Shift: click to toggle selection" msgstr "Shift: klikšķis, lai pÄrslÄ“gtu atlasi" -#: ../src/ui/tool/node.cpp:1454 +#: ../src/ui/tool/node.cpp:1455 msgctxt "Path node tip" msgid "Ctrl+Alt: move along handle lines, click to delete node" msgstr "Ctrl+Alt: pÄrvietoties gar tura lÄ«nijÄm, uzklikšķiniet, lai dzÄ“stu mezglu" -#: ../src/ui/tool/node.cpp:1457 +#: ../src/ui/tool/node.cpp:1458 msgctxt "Path node tip" msgid "Ctrl: move along axes, click to change node type" msgstr "Ctrl: pÄrvietoties gar asÄ«m, uzklikšķiniet, lai mainÄ«tu mezgla tipu" -#: ../src/ui/tool/node.cpp:1461 +#: ../src/ui/tool/node.cpp:1462 msgctxt "Path node tip" msgid "Alt: sculpt nodes" msgstr "Alt: veidoÅ¡anas mezgli" -#: ../src/ui/tool/node.cpp:1469 +#: ../src/ui/tool/node.cpp:1470 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path (more: Shift, Ctrl, Alt)" msgstr "%s: velciet, lai veidotu ceļu (vairÄk: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1472 +#: ../src/ui/tool/node.cpp:1473 #, fuzzy, c-format msgctxt "Path node tip" -msgid "BSpline node: %g weight, drag to shape the path (more: Shift, Ctrl, Alt)" +msgid "BSpline node: drag to shape the path (more: Shift, Ctrl, Alt). %g power" msgstr "%s: velciet, lai veidotu ceļu (vairÄk: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1475 +#: ../src/ui/tool/node.cpp:1476 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path, click to toggle scale/rotation handles (more: Shift, Ctrl, Alt)" msgstr "%s: velciet, lai veidotu ceļu; uzklikšķiniet, lai pÄrslÄ“gtu mÄ“rogoÅ¡anas/grieÅ¡anas turus (vairÄk: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1479 +#: ../src/ui/tool/node.cpp:1480 #, c-format msgctxt "Path node tip" msgid "%s: drag to shape the path, click to select only this node (more: Shift, Ctrl, Alt)" msgstr "%s: velciet, lai veidotu ceļu; uzklikšķiniet, lai atlasÄ«tu tikai Å¡o mezglu (vairÄk: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1482 -#, fuzzy +#: ../src/ui/tool/node.cpp:1483 +#, fuzzy, c-format msgctxt "Path node tip" -msgid "BSpline node: drag to shape the path, click to select only this node (more: Shift, Ctrl, Alt)" +msgid "BSpline node: drag to shape the path, click to select only this node (more: Shift, Ctrl, Alt). %g power" msgstr "%s: velciet, lai veidotu ceļu; uzklikšķiniet, lai atlasÄ«tu tikai Å¡o mezglu (vairÄk: Shift, Ctrl, Alt)" -#: ../src/ui/tool/node.cpp:1495 +#: ../src/ui/tool/node.cpp:1496 #, c-format msgctxt "Path node tip" msgid "Move node by %s, %s" msgstr "PÄrvietot mezglu par %s, %s" -#: ../src/ui/tool/node.cpp:1506 +#: ../src/ui/tool/node.cpp:1507 msgid "Symmetric node" msgstr "Simetrisks mezgls" -#: ../src/ui/tool/node.cpp:1507 +#: ../src/ui/tool/node.cpp:1508 msgid "Auto-smooth node" msgstr "Auto-gludais mezgls" -#: ../src/ui/tool/path-manipulator.cpp:836 +#: ../src/ui/tool/path-manipulator.cpp:837 msgid "Scale handle" msgstr "MÄ“rogoÅ¡anas turis" -#: ../src/ui/tool/path-manipulator.cpp:860 +#: ../src/ui/tool/path-manipulator.cpp:861 msgid "Rotate handle" msgstr "GrieÅ¡anas turis " #. 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 +#: ../src/ui/tool/path-manipulator.cpp:1534 ../src/widgets/node-toolbar.cpp:397 msgid "Delete node" msgstr "DzÄ“st mezglu" -#: ../src/ui/tool/path-manipulator.cpp:1532 +#: ../src/ui/tool/path-manipulator.cpp:1542 msgid "Cycle node type" msgstr "MainÄ«t mezgla tipu uz riņķi" -#: ../src/ui/tool/path-manipulator.cpp:1547 +#: ../src/ui/tool/path-manipulator.cpp:1557 msgid "Drag handle" msgstr "VilkÅ¡anas turis" -#: ../src/ui/tool/path-manipulator.cpp:1556 +#: ../src/ui/tool/path-manipulator.cpp:1566 msgid "Retract handle" msgstr "Atsaukt turi" @@ -20447,7 +20466,7 @@ msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai sÄktu 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 "Velciet, lai izveidotu kaligrÄfisku apmali; ar Ctrl - sekot palÄ«glÄ«nijas ceļam. Ar bultiņÄm pieskaņojiet platumu (kreisÄ/labÄ) un leņķi (augÅ¡up/lejup)." -#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1584 +#: ../src/ui/tools-switch.cpp:107 ../src/ui/tools/text-tool.cpp:1583 msgid "Click to select or create text, drag to create flowed text; then type." msgstr "Uzklikšķiniet, lai atlasÄ«tu vai izveidotu tekstu, velciet, lai izveidotu teksta aizpildÄ«jumu un tad rakstiet." @@ -20493,7 +20512,7 @@ msgstr "IzvÄ“lieties apakÅ¡rÄ«ku no rÄ«kjoslas" msgid "Ctrl: make circle or integer-ratio ellipse, snap arc/segment angle" msgstr "Ctrl: izveidot riņķi vai veselu skaitļu attiecÄ«bu elipsi, pievilkt loka/segmenta leņķi" -#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:279 +#: ../src/ui/tools/arc-tool.cpp:243 ../src/ui/tools/rect-tool.cpp:278 msgid "Shift: draw around the starting point" msgstr "Shift: zÄ«mÄ“t apkÄrt sÄkumpunktam" @@ -20572,15 +20591,15 @@ msgstr "Pabeidz savienotÄju" msgid "Connector endpoint: drag to reroute or connect to new shapes" msgstr "SavienotÄja beigu punkts: velciet, lai manÄ«tu marÅ¡rutu vai savienotu ar jaunÄm figÅ«rÄm" -#: ../src/ui/tools/connector-tool.cpp:1326 +#: ../src/ui/tools/connector-tool.cpp:1324 msgid "Select at least one non-connector object." msgstr "Atlasiet vismaz vienu objektu, kas nav savienotÄjs." -#: ../src/ui/tools/connector-tool.cpp:1331 ../src/widgets/connector-toolbar.cpp:314 +#: ../src/ui/tools/connector-tool.cpp:1329 ../src/widgets/connector-toolbar.cpp:310 msgid "Make connectors avoid selected objects" msgstr "Likt savienotÄjiem izvairÄ«ties no atlasÄ«tajiem objektiem" -#: ../src/ui/tools/connector-tool.cpp:1332 ../src/widgets/connector-toolbar.cpp:324 +#: ../src/ui/tools/connector-tool.cpp:1330 ../src/widgets/connector-toolbar.cpp:320 msgid "Make connectors ignore selected objects" msgstr "Likt savienotÄjiem neņemt vÄ“rÄ atlasÄ«tos objektus" @@ -20614,39 +20633,39 @@ msgstr "Pielietot izvÄ“lÄ“to krÄsu" msgid "Drawing an eraser stroke" msgstr "ZÄ«mÄ“ dzēšgumijas lÄ«niju" -#: ../src/ui/tools/eraser-tool.cpp:760 +#: ../src/ui/tools/eraser-tool.cpp:753 msgid "Draw eraser stroke" msgstr "ZÄ«mÄ“t dzēšgumijas lÄ«niju" -#: ../src/ui/tools/flood-tool.cpp:182 +#: ../src/ui/tools/flood-tool.cpp:90 msgid "Visible Colors" msgstr "RedzamÄs krÄsas" -#: ../src/ui/tools/flood-tool.cpp:200 +#: ../src/ui/tools/flood-tool.cpp:102 msgctxt "Flood autogap" msgid "None" msgstr "Nekas" -#: ../src/ui/tools/flood-tool.cpp:201 +#: ../src/ui/tools/flood-tool.cpp:103 msgctxt "Flood autogap" msgid "Small" msgstr "Mazs" -#: ../src/ui/tools/flood-tool.cpp:202 +#: ../src/ui/tools/flood-tool.cpp:104 msgctxt "Flood autogap" msgid "Medium" msgstr "VidÄ“js" -#: ../src/ui/tools/flood-tool.cpp:203 +#: ../src/ui/tools/flood-tool.cpp:105 msgctxt "Flood autogap" msgid "Large" msgstr "Liels" -#: ../src/ui/tools/flood-tool.cpp:425 +#: ../src/ui/tools/flood-tool.cpp:415 msgid "Too much inset, the result is empty." msgstr "SaÄ«sinÄts par daudz, rezultÄts ir tukÅ¡s." -#: ../src/ui/tools/flood-tool.cpp:466 +#: ../src/ui/tools/flood-tool.cpp:456 #, 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." @@ -20654,7 +20673,7 @@ msgstr[0] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezglu un apvienot msgstr[1] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezgliem un apvienots ar atlasÄ«to." msgstr[2] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezgliem un apvienots ar atlasÄ«to." -#: ../src/ui/tools/flood-tool.cpp:472 +#: ../src/ui/tools/flood-tool.cpp:462 #, c-format msgid "Area filled, path with %d node created." msgid_plural "Area filled, path with %d nodes created." @@ -20662,23 +20681,23 @@ msgstr[0] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezglu." msgstr[1] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezgliem." msgstr[2] "Laukums aizpildÄ«ts, izveidots ceļš ar %d mezgliem." -#: ../src/ui/tools/flood-tool.cpp:740 ../src/ui/tools/flood-tool.cpp:1050 +#: ../src/ui/tools/flood-tool.cpp:730 ../src/ui/tools/flood-tool.cpp:1040 msgid "Area is not bounded, cannot fill." msgstr "Laukums nav norobežots, nav iespÄ“jams aizpildÄ«t." -#: ../src/ui/tools/flood-tool.cpp:1055 +#: ../src/ui/tools/flood-tool.cpp:1045 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 "AizpildÄ«ta tikai redzamÄ norobežotÄ laukuma daļa. Ja vÄ“laties aizpildÄ«t visu laukumu, atsauciet darbÄ«bu, tÄliniet un aizpildiet vÄ“lreiz." -#: ../src/ui/tools/flood-tool.cpp:1073 ../src/ui/tools/flood-tool.cpp:1224 +#: ../src/ui/tools/flood-tool.cpp:1063 ../src/ui/tools/flood-tool.cpp:1214 msgid "Fill bounded area" msgstr "AizpildÄ«t norobežoto laukumu" -#: ../src/ui/tools/flood-tool.cpp:1089 +#: ../src/ui/tools/flood-tool.cpp:1079 msgid "Set style on object" msgstr "Iestatiet objekta stilu" -#: ../src/ui/tools/flood-tool.cpp:1149 +#: ../src/ui/tools/flood-tool.cpp:1139 msgid "Draw over areas to add to fill, hold Alt for touch fill" msgstr "Velciet pÄri aizpildÄmajiem laukumiem, turiet Alt aizpildīšanai ar pieskÄrieniem" @@ -20759,23 +20778,23 @@ msgstr[2] "Nav atlasÄ«ts neviens krÄsu pÄrejas turis no %d %d atlasÄ« msgid "Simplify gradient" msgstr "VienkÄrÅ¡ot krÄsu pÄreju" -#: ../src/ui/tools/gradient-tool.cpp:509 +#: ../src/ui/tools/gradient-tool.cpp:510 msgid "Create default gradient" msgstr "Izveidot noklusÄ“to krÄsu pÄreju" -#: ../src/ui/tools/gradient-tool.cpp:568 ../src/ui/tools/mesh-tool.cpp:560 +#: ../src/ui/tools/gradient-tool.cpp:569 ../src/ui/tools/mesh-tool.cpp:561 msgid "Draw around handles to select them" msgstr "Velciet apkÄrt turiem, lai tos atlasÄ«tu" -#: ../src/ui/tools/gradient-tool.cpp:691 +#: ../src/ui/tools/gradient-tool.cpp:692 msgid "Ctrl: snap gradient angle" msgstr "Ctrl: pievilkt krÄsu pÄrejas leņķi" -#: ../src/ui/tools/gradient-tool.cpp:692 +#: ../src/ui/tools/gradient-tool.cpp:693 msgid "Shift: draw gradient around the starting point" msgstr "Shift: zÄ«mÄ“t krÄsu pÄreju apkÄrt sÄkumpunktam" -#: ../src/ui/tools/gradient-tool.cpp:946 ../src/ui/tools/mesh-tool.cpp:983 +#: ../src/ui/tools/gradient-tool.cpp:947 ../src/ui/tools/mesh-tool.cpp:984 #, c-format msgid "Gradient for %d object; with Ctrl to snap angle" msgid_plural "Gradient for %d objects; with Ctrl to snap angle" @@ -20783,7 +20802,7 @@ msgstr[0] "KrÄsu pÄreja %d objektam; ar Ctrl pievilkt leņķi" msgstr[1] "KrÄsu pÄreja %d objektiem; ar Ctrl pievilkt leņķi" msgstr[2] "KrÄsu pÄreja %d objektiem; ar Ctrl pievilkt leņķi" -#: ../src/ui/tools/gradient-tool.cpp:950 ../src/ui/tools/mesh-tool.cpp:987 +#: ../src/ui/tools/gradient-tool.cpp:951 ../src/ui/tools/mesh-tool.cpp:988 msgid "Select objects on which to create gradient." msgstr "Atlasiet objektus, kuriem izveidot krÄsu pÄreju." @@ -20841,29 +20860,29 @@ msgstr "NogludinÄtÄ tÄ«kla stÅ«ra krÄsa." msgid "Picked mesh corner color." msgstr "IzvÄ“lÄ“tÄ tÄ«kla stÅ«ra krÄsa." -#: ../src/ui/tools/mesh-tool.cpp:488 +#: ../src/ui/tools/mesh-tool.cpp:489 msgid "Create default mesh" msgstr "Izveidot noklusÄ“to tÄ«klu" -#: ../src/ui/tools/mesh-tool.cpp:708 +#: ../src/ui/tools/mesh-tool.cpp:709 msgid "FIXMECtrl: snap mesh angle" msgstr "LABOTCtrl: piesaistes tÄ«kla leņķis" -#: ../src/ui/tools/mesh-tool.cpp:709 +#: ../src/ui/tools/mesh-tool.cpp:710 msgid "FIXMEShift: draw mesh around the starting point" msgstr "LABOTShift: zÄ«mÄ“t tÄ«klu apkÄrt sÄkumpunktam" -#: ../src/ui/tools/node-tool.cpp:602 +#: ../src/ui/tools/node-tool.cpp:601 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection, click to toggle object selection" msgstr "Shift: velciet, lai atlasÄ«tajam pievienotu mezglus, klikšķiniet, lai pÄrslÄ“gtu objektu atlasi" -#: ../src/ui/tools/node-tool.cpp:606 +#: ../src/ui/tools/node-tool.cpp:605 msgctxt "Node tool tip" msgid "Shift: drag to add nodes to the selection" msgstr "Shift: velciet, lai pievienotu mezglus atlasÄ«tajam" -#: ../src/ui/tools/node-tool.cpp:618 +#: ../src/ui/tools/node-tool.cpp:617 #, c-format msgid "%u of %u node selected." msgid_plural "%u of %u nodes selected." @@ -20871,39 +20890,39 @@ msgstr[0] "IzvÄ“lÄ“ts %u no %umezgliem." msgstr[1] "IzvÄ“lÄ“ti %u no %umezgliem." msgstr[2] "IzvÄ“lÄ“ti %u no %umezgliem." -#: ../src/ui/tools/node-tool.cpp:624 +#: ../src/ui/tools/node-tool.cpp:623 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click to edit only this object (more: Shift)" msgstr "%s Velciet, lai atlasÄ«tu mezglus, uzklikšķiniet, lai labotu tikai Å¡o objektu (vairÄk: Shift)" -#: ../src/ui/tools/node-tool.cpp:630 +#: ../src/ui/tools/node-tool.cpp:629 #, c-format msgctxt "Node tool tip" msgid "%s Drag to select nodes, click clear the selection" msgstr "%s Velciet, lai atlasÄ«tu mezglus; lai atceltu atlasi, uzklikšķiniet" -#: ../src/ui/tools/node-tool.cpp:639 +#: ../src/ui/tools/node-tool.cpp:638 msgctxt "Node tool tip" msgid "Drag to select nodes, click to edit only this object" msgstr "Velciet, lai atlasÄ«tu mezglus, uzklikšķiniet, lai labotu tikai Å¡o objektu" -#: ../src/ui/tools/node-tool.cpp:642 +#: ../src/ui/tools/node-tool.cpp:641 msgctxt "Node tool tip" msgid "Drag to select nodes, click to clear the selection" msgstr "Velciet, lai atlasÄ«tu mezglus; lai atceltu atlasi, uzklikšķiniet" -#: ../src/ui/tools/node-tool.cpp:647 +#: ../src/ui/tools/node-tool.cpp:646 msgctxt "Node tool tip" msgid "Drag to select objects to edit, click to edit this object (more: Shift)" msgstr "Velciet, lai atlasÄ«tu labojamos objektus, uzklikšķiniet, lai labotu Å¡o objektu (vairÄk - Shift)" -#: ../src/ui/tools/node-tool.cpp:650 +#: ../src/ui/tools/node-tool.cpp:649 msgctxt "Node tool tip" msgid "Drag to select objects to edit" msgstr "Velciet, lai atlasÄ«tu labojamos objektus" -#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:457 +#: ../src/ui/tools/pen-tool.cpp:224 ../src/ui/tools/pencil-tool.cpp:454 msgid "Drawing cancelled" msgstr "ZÄ«mēšana atcelta" @@ -20989,43 +21008,43 @@ msgid "Drag to continue the path from this point." msgstr "Velciet, lai turpinÄtu ceļu no šī punkta." #. Write curves to object -#: ../src/ui/tools/pencil-tool.cpp:403 +#: ../src/ui/tools/pencil-tool.cpp:401 msgid "Finishing freehand" msgstr "Beidz brÄ«vrokas zÄ«mēšanu" -#: ../src/ui/tools/pencil-tool.cpp:506 +#: ../src/ui/tools/pencil-tool.cpp:503 msgid "Sketch mode: holding Alt interpolates between sketched paths. Release Alt to finalize." msgstr "Skices režīms: turot Alt interpolÄ“ starp ieskicÄ“tajiem ceļiem. Atlaidiet Alt, lai pabeigtu." -#: ../src/ui/tools/pencil-tool.cpp:533 +#: ../src/ui/tools/pencil-tool.cpp:530 msgid "Finishing freehand sketch" msgstr "Beidz brÄ«vrokas uzmetumu" -#: ../src/ui/tools/rect-tool.cpp:278 +#: ../src/ui/tools/rect-tool.cpp:277 msgid "Ctrl: make square or integer-ratio rect, lock a rounded corner circular" msgstr "Ctrl: izveidot kvadrÄtu vai taisnstÅ«ri ar veselu skaitļu malu attiecÄ«bÄm, saglabÄt noapaļotos stÅ«rus apaļus" -#: ../src/ui/tools/rect-tool.cpp:439 +#: ../src/ui/tools/rect-tool.cpp:438 #, c-format msgid "Rectangle: %s × %s (constrained to ratio %d:%d); with Shift to draw around the starting point" msgstr "TaisnstÅ«ris: %s × %s (ierobežots ar proporcijÄm %d:%d); ar Shift - zÄ«mÄ“t apkÄrt sÄkumpunktam" -#: ../src/ui/tools/rect-tool.cpp:442 +#: ../src/ui/tools/rect-tool.cpp:441 #, c-format msgid "Rectangle: %s × %s (constrained to golden ratio 1.618 : 1); with Shift to draw around the starting point" msgstr "TaisnstÅ«ris: %s × %s (ierobežots zelta šķēluma proporcijÄs 1.618 : 1); ar Shift - zÄ«mÄ“t apkÄrt sÄkumpunktam" -#: ../src/ui/tools/rect-tool.cpp:444 +#: ../src/ui/tools/rect-tool.cpp:443 #, c-format msgid "Rectangle: %s × %s (constrained to golden ratio 1 : 1.618); with Shift to draw around the starting point" msgstr "TaisnstÅ«ris: %s × %s (ierobežots zelta šķēluma proporcijÄs 1.618 : 1); ar Shift - zÄ«mÄ“t apkÄrt sÄkumpunktam" -#: ../src/ui/tools/rect-tool.cpp:448 +#: ../src/ui/tools/rect-tool.cpp:447 #, c-format msgid "Rectangle: %s × %s; with Ctrl to make square or integer-ratio rectangle; with Shift to draw around the starting point" msgstr "TaisnstÅ«ris: %s × %s; ar Ctrl - izveidot kvadrÄtu vai taisnstÅ«ri ar veselu skaitļu malu proporcijÄm; ar Shift - zÄ«mÄ“t apkÄrt sÄkumpunktam" -#: ../src/ui/tools/rect-tool.cpp:471 +#: ../src/ui/tools/rect-tool.cpp:470 msgid "Create rectangle" msgstr "Izveidot taisnstÅ«ri" @@ -21053,19 +21072,19 @@ msgstr "Velciet pÄri objektiem lai tos atlasÄ«tu; atlaidiet Alt, msgid "Drag around objects to select them; press Alt to switch to touch selection" msgstr "Valciet apkÄart objektiem, lai tos atlasÄ«tu; nospiediet Alt, lai pÄrslÄ“gtos uz atlasi ar pieskÄrienu" -#: ../src/ui/tools/select-tool.cpp:941 +#: ../src/ui/tools/select-tool.cpp:939 msgid "Ctrl: click to select in groups; drag to move hor/vert" msgstr "Ctrl: klikšķiniet, lai atlasÄ«tu grupÄs; velciet, lai pÄrvietotu horizontÄli/vertikÄli" -#: ../src/ui/tools/select-tool.cpp:942 +#: ../src/ui/tools/select-tool.cpp:940 msgid "Shift: click to toggle select; drag for rubberband selection" msgstr "Shift: uzklikšķiniet, lai manÄ«tu atlasi, velciet laso atlasei" -#: ../src/ui/tools/select-tool.cpp:943 +#: ../src/ui/tools/select-tool.cpp:941 msgid "Alt: click to select under; scroll mouse-wheel to cycle-select; drag to move selected or select by touch" msgstr "Alt: klikšķis, lai atlasÄ«tu zem kursora esoÅ¡o; ritiniet ar peles ritenÄ«ti, lai cikliski mainÄ«tu atlasÄ«to; velciet, lai pÄrvietotu atlasÄ«to vai atlasÄ«tu ar pieskÄrienu" -#: ../src/ui/tools/select-tool.cpp:1151 +#: ../src/ui/tools/select-tool.cpp:1149 msgid "Selected object is not a group. Cannot enter." msgstr "IzvÄ“lÄ“tais objekts nav grupa. Nav iespÄ“jams ieiet." @@ -21113,19 +21132,19 @@ msgstr "%s. Velciet, uzklikšķiniet vai uzklikšķiniet un ritiniet, lai izsmid msgid "%s. Drag, click or click and scroll to spray in a single path of the initial selection." msgstr "%s. Velciet, uzklikšķiniet vai uzklikšķiniet un ritiniet, lai izsmidzinÄtu sÄkotnÄ“ji atlasÄ«to vienÄ ceļÄ." -#: ../src/ui/tools/spray-tool.cpp:654 +#: ../src/ui/tools/spray-tool.cpp:648 msgid "Nothing selected! Select objects to spray." msgstr "Nekas nav atlasÄ«ts! Atlasiet izsmidzinÄmos objektus." -#: ../src/ui/tools/spray-tool.cpp:729 ../src/widgets/spray-toolbar.cpp:166 +#: ../src/ui/tools/spray-tool.cpp:723 ../src/widgets/spray-toolbar.cpp:166 msgid "Spray with copies" msgstr "SmidzinÄt kopijas" -#: ../src/ui/tools/spray-tool.cpp:733 ../src/widgets/spray-toolbar.cpp:173 +#: ../src/ui/tools/spray-tool.cpp:727 ../src/widgets/spray-toolbar.cpp:173 msgid "Spray with clones" msgstr "SmidzinÄt klonus" -#: ../src/ui/tools/spray-tool.cpp:737 +#: ../src/ui/tools/spray-tool.cpp:731 msgid "Spray in single path" msgstr "IzsmidzinÄt vienÄ ceļÄ" @@ -21265,7 +21284,7 @@ msgstr "PaplaÅ¡inÄt burtu atstatumus" msgid "Paste text" msgstr "IelÄ«met tekstu" -#: ../src/ui/tools/text-tool.cpp:1574 +#: ../src/ui/tools/text-tool.cpp:1573 #, 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." @@ -21273,7 +21292,7 @@ msgstr[0] "Ievadiet vai labojiet teksta aizpildÄ«jumu (%d zÄ«me%s); Enter msgstr[1] "Ievadiet vai labojiet teksta aizpildÄ«jumu (%d zÄ«mes%s); Enter - lai sÄktu jaunu rindkopu." msgstr[2] "Ievadiet vai labojiet teksta aizpildÄ«jumu (%d zÄ«mes%s); Enter - lai sÄktu jaunu rindkopu." -#: ../src/ui/tools/text-tool.cpp:1576 +#: ../src/ui/tools/text-tool.cpp:1575 #, 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." @@ -21281,11 +21300,11 @@ msgstr[0] "Ievadiet vai labojiet tekstu (%d rakstzÄ«me%s); nospiediet EnterEnter jaunas rindas sÄkÅ¡anai." msgstr[2] "Ievadiet vai labojiet tekstu (%d rakstzÄ«mes%s); nospiediet Enter jaunas rindas sÄkÅ¡anai." -#: ../src/ui/tools/text-tool.cpp:1686 +#: ../src/ui/tools/text-tool.cpp:1685 msgid "Type text" msgstr "Ievadiet tekstu" -#: ../src/ui/tools/tool-base.cpp:705 +#: ../src/ui/tools/tool-base.cpp:701 msgid "Space+mouse move to pan canvas" msgstr "Atstarpēšanas taustiņš+peles kustÄ«ba, lai pÄrvietotos pa audeklu" @@ -21354,59 +21373,59 @@ msgstr "%s. Velciet vai uzklikšķiniet, lai dažÄdotu krÄsas." msgid "%s. Drag or click to increase blur; with Shift to decrease." msgstr "%s. Velciet vai uzklikšķiniet, laipalielinÄtu aizmiglojumu; ar Shift t - lai samazinÄtu." -#: ../src/ui/tools/tweak-tool.cpp:1195 +#: ../src/ui/tools/tweak-tool.cpp:1192 msgid "Nothing selected! Select objects to tweak." msgstr "Nekas nav atlasÄ«ts! Atlasiet pieskaņojamos objektus." -#: ../src/ui/tools/tweak-tool.cpp:1229 +#: ../src/ui/tools/tweak-tool.cpp:1226 msgid "Move tweak" msgstr "PÄrvietoÅ¡anas pieskņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1233 +#: ../src/ui/tools/tweak-tool.cpp:1230 msgid "Move in/out tweak" msgstr "PÄrvietot iekÅ¡Ä/ÄrÄ pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1237 +#: ../src/ui/tools/tweak-tool.cpp:1234 msgid "Move jitter tweak" msgstr "PÄrvietoÅ¡anas trÄ«ces pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1241 +#: ../src/ui/tools/tweak-tool.cpp:1238 msgid "Scale tweak" msgstr "MÄ“rogoÅ¡anas pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1245 +#: ../src/ui/tools/tweak-tool.cpp:1242 msgid "Rotate tweak" msgstr "GrieÅ¡anas pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1249 +#: ../src/ui/tools/tweak-tool.cpp:1246 msgid "Duplicate/delete tweak" msgstr "DublÄ“t/dzÄ“st pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1253 +#: ../src/ui/tools/tweak-tool.cpp:1250 msgid "Push path tweak" msgstr "Ceļa pagrūšanas pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1257 +#: ../src/ui/tools/tweak-tool.cpp:1254 msgid "Shrink/grow path tweak" msgstr "Ceļa samazinÄjuma/palielinÄjuma pieskaņosana" -#: ../src/ui/tools/tweak-tool.cpp:1261 +#: ../src/ui/tools/tweak-tool.cpp:1258 msgid "Attract/repel path tweak" msgstr "Ceļa pieskaņoÅ¡ana pievelkot/atgrūžot" -#: ../src/ui/tools/tweak-tool.cpp:1265 +#: ../src/ui/tools/tweak-tool.cpp:1262 msgid "Roughen path tweak" msgstr "Ceļa raupjoÅ¡anas pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1269 +#: ../src/ui/tools/tweak-tool.cpp:1266 msgid "Color paint tweak" msgstr "KrÄsokuma pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1273 +#: ../src/ui/tools/tweak-tool.cpp:1270 msgid "Color jitter tweak" msgstr "KrÄsu trÄ«ces pieskaņoÅ¡ana" -#: ../src/ui/tools/tweak-tool.cpp:1277 +#: ../src/ui/tools/tweak-tool.cpp:1274 msgid "Blur tweak" msgstr "Pieskaņot aizmiglojumu" @@ -21450,186 +21469,225 @@ msgstr "Dokumenta licence atsvaidzinÄta" msgid "Opacity (%)" msgstr "NecaurspÄ«dÄ«ba (%)" -#: ../src/ui/widget/object-composite-settings.cpp:159 +#: ../src/ui/widget/object-composite-settings.cpp:160 msgid "Change blur" msgstr "MainÄ«t aizmiglojumu" -#: ../src/ui/widget/object-composite-settings.cpp:199 ../src/ui/widget/selected-style.cpp:943 ../src/ui/widget/selected-style.cpp:1245 +#: ../src/ui/widget/object-composite-settings.cpp:200 ../src/ui/widget/selected-style.cpp:943 ../src/ui/widget/selected-style.cpp:1245 msgid "Change opacity" msgstr "MainÄ«t necaurspÄ«dÄ«bu" -#: ../src/ui/widget/page-sizer.cpp:235 +#: ../src/ui/widget/page-sizer.cpp:236 msgid "U_nits:" msgstr "Vie_nÄ«bas:" -#: ../src/ui/widget/page-sizer.cpp:236 +#: ../src/ui/widget/page-sizer.cpp:237 msgid "Width of paper" msgstr "PapÄ«ra platums" -#: ../src/ui/widget/page-sizer.cpp:237 +#: ../src/ui/widget/page-sizer.cpp:238 msgid "Height of paper" msgstr "PapÄ«ra augstums" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "T_op margin:" msgstr "Au_gšējÄ mala:" -#: ../src/ui/widget/page-sizer.cpp:238 +#: ../src/ui/widget/page-sizer.cpp:239 msgid "Top margin" msgstr "AugšējÄ mala" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "L_eft:" msgstr "K_reisÄ:" -#: ../src/ui/widget/page-sizer.cpp:239 +#: ../src/ui/widget/page-sizer.cpp:240 msgid "Left margin" msgstr "KreisÄ mala" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Ri_ght:" msgstr "La_bÄ:" -#: ../src/ui/widget/page-sizer.cpp:240 +#: ../src/ui/widget/page-sizer.cpp:241 msgid "Right margin" msgstr "LabÄ mala" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Botto_m:" msgstr "Apakšē_jais:" -#: ../src/ui/widget/page-sizer.cpp:241 +#: ../src/ui/widget/page-sizer.cpp:242 msgid "Bottom margin" msgstr "ApakšējÄ mala" -#: ../src/ui/widget/page-sizer.cpp:296 +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale _x:" +msgstr "MÄ“rogs _x:" + +#: ../src/ui/widget/page-sizer.cpp:244 +msgid "Scale X" +msgstr "MÄ“rogs X" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale _y:" +msgstr "MÄ“rogs _y:" + +#: ../src/ui/widget/page-sizer.cpp:245 +msgid "Scale Y" +msgstr "MÄ“rogs Y" + +#: ../src/ui/widget/page-sizer.cpp:321 msgid "Orientation:" msgstr "OrientÄcija:" -#: ../src/ui/widget/page-sizer.cpp:299 +#: ../src/ui/widget/page-sizer.cpp:324 msgid "_Landscape" msgstr "_Ainava" -#: ../src/ui/widget/page-sizer.cpp:304 +#: ../src/ui/widget/page-sizer.cpp:329 msgid "_Portrait" msgstr "_Portrets" #. ## Set up custom size frame -#: ../src/ui/widget/page-sizer.cpp:322 +#: ../src/ui/widget/page-sizer.cpp:348 msgid "Custom size" msgstr "PielÄgots izmÄ“rs" -#: ../src/ui/widget/page-sizer.cpp:367 +#: ../src/ui/widget/page-sizer.cpp:393 msgid "Resi_ze page to content..." msgstr "Pie_lÄgot lapu saturam..." -#: ../src/ui/widget/page-sizer.cpp:419 +#: ../src/ui/widget/page-sizer.cpp:445 msgid "_Resize page to drawing or selection" msgstr "_PielÄgot lapas izmÄ“ru zÄ«mÄ“juma vai iezÄ«mÄ“tajam" -#: ../src/ui/widget/page-sizer.cpp:420 +#: ../src/ui/widget/page-sizer.cpp:446 msgid "Resize the page to fit the current selection, or the entire drawing if there is no selection" msgstr "PielÄgot lapas izmÄ“ru paÅ¡reiz iezÄ«mÄ“tajam vai arÄ« visas zÄ«mÄ“jumam, ja nekas nav iezÄ«mÄ“ts" -#: ../src/ui/widget/page-sizer.cpp:489 +#: ../src/ui/widget/page-sizer.cpp:477 +msgid "While SVG allows non-uniform scaling it is recommended to use only uniform scaling in Inkscape. To set a non-uniform scaling, set the 'viewBox' directly." +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:481 +#, fuzzy +msgid "_Viewbox..." +msgstr "SkatÄ«t" + +#: ../src/ui/widget/page-sizer.cpp:588 msgid "Set page size" msgstr "Iestatiet lapas izmÄ“ru" -#: ../src/ui/widget/panel.cpp:117 +#: ../src/ui/widget/page-sizer.cpp:834 +msgid "User units per " +msgstr "" + +#: ../src/ui/widget/page-sizer.cpp:930 +#, fuzzy +msgid "Set page scale" +msgstr "Iestatiet lapas izmÄ“ru" + +#: ../src/ui/widget/page-sizer.cpp:956 +#, fuzzy +msgid "Set 'viewBox'" +msgstr "-- Nav uzstÄdÄ«ts --" + +#: ../src/ui/widget/panel.cpp:113 msgid "List" msgstr "Saraksts" -#: ../src/ui/widget/panel.cpp:140 +#: ../src/ui/widget/panel.cpp:136 msgctxt "Swatches" msgid "Size" msgstr "Lielums" -#: ../src/ui/widget/panel.cpp:144 +#: ../src/ui/widget/panel.cpp:140 msgctxt "Swatches height" msgid "Tiny" msgstr "SÄ«ks" -#: ../src/ui/widget/panel.cpp:145 +#: ../src/ui/widget/panel.cpp:141 msgctxt "Swatches height" msgid "Small" msgstr "Mazs" -#: ../src/ui/widget/panel.cpp:146 +#: ../src/ui/widget/panel.cpp:142 msgctxt "Swatches height" msgid "Medium" msgstr "VidÄ“js" -#: ../src/ui/widget/panel.cpp:147 +#: ../src/ui/widget/panel.cpp:143 msgctxt "Swatches height" msgid "Large" msgstr "Liels" -#: ../src/ui/widget/panel.cpp:148 +#: ../src/ui/widget/panel.cpp:144 msgctxt "Swatches height" msgid "Huge" msgstr "Ä»oti liels" -#: ../src/ui/widget/panel.cpp:170 +#: ../src/ui/widget/panel.cpp:166 msgctxt "Swatches" msgid "Width" msgstr "Platums" -#: ../src/ui/widget/panel.cpp:174 +#: ../src/ui/widget/panel.cpp:170 msgctxt "Swatches width" msgid "Narrower" msgstr "Å aurÄks" -#: ../src/ui/widget/panel.cpp:175 +#: ../src/ui/widget/panel.cpp:171 msgctxt "Swatches width" msgid "Narrow" msgstr "Å aurs" -#: ../src/ui/widget/panel.cpp:176 +#: ../src/ui/widget/panel.cpp:172 msgctxt "Swatches width" msgid "Medium" msgstr "VidÄ“js" -#: ../src/ui/widget/panel.cpp:177 +#: ../src/ui/widget/panel.cpp:173 msgctxt "Swatches width" msgid "Wide" msgstr "Plats" -#: ../src/ui/widget/panel.cpp:178 +#: ../src/ui/widget/panel.cpp:174 msgctxt "Swatches width" msgid "Wider" msgstr "PlatÄks" -#: ../src/ui/widget/panel.cpp:208 +#: ../src/ui/widget/panel.cpp:204 msgctxt "Swatches" msgid "Border" msgstr "Robeža" -#: ../src/ui/widget/panel.cpp:212 +#: ../src/ui/widget/panel.cpp:208 msgctxt "Swatches border" msgid "None" msgstr "Nekas" -#: ../src/ui/widget/panel.cpp:213 +#: ../src/ui/widget/panel.cpp:209 msgctxt "Swatches border" msgid "Solid" msgstr "Vienlaidus" -#: ../src/ui/widget/panel.cpp:214 +#: ../src/ui/widget/panel.cpp:210 msgctxt "Swatches border" msgid "Wide" msgstr "Plats" #. TRANSLATORS: "Wrap" indicates how colour swatches are displayed -#: ../src/ui/widget/panel.cpp:245 +#: ../src/ui/widget/panel.cpp:241 msgctxt "Swatches" msgid "Wrap" msgstr "Aplauzt" -#: ../src/ui/widget/preferences-widget.cpp:802 +#: ../src/ui/widget/preferences-widget.cpp:798 msgid "_Browse..." msgstr "_PÄrlÅ«kot..." -#: ../src/ui/widget/preferences-widget.cpp:888 +#: ../src/ui/widget/preferences-widget.cpp:884 msgid "Select a bitmap editor" msgstr "IzvÄ“lieties bitkartes redaktoru" @@ -21677,7 +21735,7 @@ msgstr "O:" msgid "N/A" msgstr "n/z" -#: ../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 +#: ../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:163 msgid "Nothing selected" msgstr "Nekas nav izvÄ“lÄ“ts" @@ -21701,7 +21759,7 @@ msgctxt "Fill and stroke" msgid "No stroke" msgstr "Nav apmales" -#: ../src/ui/widget/selected-style.cpp:192 ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:234 +#: ../src/ui/widget/selected-style.cpp:192 ../src/ui/widget/style-swatch.cpp:300 ../src/widgets/paint-selector.cpp:231 msgid "Pattern" msgstr "FaktÅ«ra" @@ -21766,11 +21824,11 @@ msgid "Unset" msgstr "atiestatÄ«ts" #. 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 +#: ../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:705 msgid "Unset fill" msgstr "AtiestatÄ«t aizpildÄ«jumu" -#: ../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 +#: ../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:705 msgid "Unset stroke" msgstr "AtiestatÄ«t apmali" @@ -21844,11 +21902,11 @@ msgstr "PadarÄ«t aizpildÄ«jumu necaurspÄ«dÄ«gu" msgid "Make stroke opaque" msgstr "PadarÄ«t apmali necaurspÄ«dÄ«gu" -#: ../src/ui/widget/selected-style.cpp:299 ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:508 +#: ../src/ui/widget/selected-style.cpp:299 ../src/ui/widget/selected-style.cpp:557 ../src/widgets/fill-style.cpp:504 msgid "Remove fill" msgstr "AizvÄkt aizpildÄ«jumu" -#: ../src/ui/widget/selected-style.cpp:299 ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:508 +#: ../src/ui/widget/selected-style.cpp:299 ../src/ui/widget/selected-style.cpp:566 ../src/widgets/fill-style.cpp:504 msgid "Remove stroke" msgstr "AizvÄkt apmali" @@ -22026,7 +22084,7 @@ msgstr "Apvienot saplūšanas punktus" msgid "3D box: Move vanishing point" msgstr "3D paralÄ“lskaldnis: pÄrvietot saplūšanas punktu" -#: ../src/vanishing-point.cpp:327 +#: ../src/vanishing-point.cpp:328 #, 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)" @@ -22036,7 +22094,7 @@ msgstr[2] "GalÄ«gs saplūšanas punkts, kopÄ“js %d paralÄ“lskaldņ #. 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 +#: ../src/vanishing-point.cpp:335 #, 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)" @@ -22044,7 +22102,7 @@ msgstr[0] "BezalÄ«gs saplūšanas punkts, kopÄ“js %d paralÄ“lskald msgstr[1] "BezgalÄ«gs saplūšanas punkts, kopÄ“js %d paralÄ“lskaldņiem; velciet ar Shift, lai atdalÄ«tu atlasÄ«to(s) paralÄ“lskaldni (-ņus)" msgstr[2] "BezgalÄ«gs saplūšanas punkts, kopÄ“js %d paralÄ“lskaldņiem; velciet ar Shift, lai atdalÄ«tu atlasÄ«to(s) paralÄ“lskaldni (-ņus)" -#: ../src/vanishing-point.cpp:342 +#: ../src/vanishing-point.cpp:343 #, 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)" @@ -22052,2341 +22110,2336 @@ msgstr[0] "kopÄ“js %d paralÄ“lskaldnim; velciet ar Shift, lai atda msgstr[1] "kopÄ“js %d paralÄ“lskaldņiem; velciet ar Shift, lai atdalÄ«tu atlasÄ«to(s) paralÄ“lskaldni (-ņus)" msgstr[2] ", kopÄ“js %d paralÄ“lskaldņiem; velciet ar Shift, lai atdalÄ«tu atlasÄ«to(s) paralÄ“lskaldni (-ņus)" -#: ../src/verbs.cpp:138 +#: ../src/verbs.cpp:137 msgid "File" msgstr "Datne" -#: ../src/verbs.cpp:233 ../share/extensions/interp_att_g.inx.h:22 +#: ../src/verbs.cpp:232 ../share/extensions/interp_att_g.inx.h:22 msgid "Tag" msgstr "Tags" -#: ../src/verbs.cpp:252 +#: ../src/verbs.cpp:251 msgid "Context" msgstr "Konteksts" -#: ../src/verbs.cpp:271 ../src/verbs.cpp:2302 ../share/extensions/jessyInk_view.inx.h:1 ../share/extensions/polyhedron_3d.inx.h:26 +#: ../src/verbs.cpp:270 ../src/verbs.cpp:2271 ../share/extensions/jessyInk_view.inx.h:1 ../share/extensions/polyhedron_3d.inx.h:26 msgid "View" msgstr "SkatÄ«t" -#: ../src/verbs.cpp:291 +#: ../src/verbs.cpp:290 msgid "Dialog" msgstr "Dialoglodziņš" -#: ../src/verbs.cpp:1260 +#: ../src/verbs.cpp:1259 msgid "Switch to next layer" msgstr "PÄrslÄ“gties uz nÄkoÅ¡o slÄni" -#: ../src/verbs.cpp:1261 +#: ../src/verbs.cpp:1260 msgid "Switched to next layer." msgstr "PÄrslÄ“gts uz nÄkoÅ¡o slÄni." -#: ../src/verbs.cpp:1263 +#: ../src/verbs.cpp:1262 msgid "Cannot go past last layer." msgstr "Nevar pÄrvietoties tÄlÄk par pÄ“dÄ“jo slÄni." -#: ../src/verbs.cpp:1272 +#: ../src/verbs.cpp:1271 msgid "Switch to previous layer" msgstr "PÄrslÄ“gties uz iepriekšējo slÄni" -#: ../src/verbs.cpp:1273 +#: ../src/verbs.cpp:1272 msgid "Switched to previous layer." msgstr "PÄrslÄ“gts uz iepriekšējo slÄni." -#: ../src/verbs.cpp:1275 +#: ../src/verbs.cpp:1274 msgid "Cannot go before first layer." msgstr "Nevar pÄrvietoties pirms pirmÄ slÄņa." -#: ../src/verbs.cpp:1296 ../src/verbs.cpp:1393 ../src/verbs.cpp:1429 ../src/verbs.cpp:1435 ../src/verbs.cpp:1459 ../src/verbs.cpp:1474 +#: ../src/verbs.cpp:1295 ../src/verbs.cpp:1362 ../src/verbs.cpp:1398 ../src/verbs.cpp:1404 ../src/verbs.cpp:1428 ../src/verbs.cpp:1443 msgid "No current layer." msgstr "Nav paÅ¡reizÄ“jÄ slÄņa." -#: ../src/verbs.cpp:1325 ../src/verbs.cpp:1329 +#: ../src/verbs.cpp:1324 ../src/verbs.cpp:1328 #, c-format msgid "Raised layer %s." msgstr "LÄ«menis %s pacelts." -#: ../src/verbs.cpp:1326 +#: ../src/verbs.cpp:1325 msgid "Layer to top" msgstr "SlÄni uz virspusi" -#: ../src/verbs.cpp:1330 +#: ../src/verbs.cpp:1329 msgid "Raise layer" msgstr "Pacelt slÄni" -#: ../src/verbs.cpp:1333 ../src/verbs.cpp:1337 +#: ../src/verbs.cpp:1332 ../src/verbs.cpp:1336 #, c-format msgid "Lowered layer %s." msgstr "Nolaistais slÄnis %s." -#: ../src/verbs.cpp:1334 +#: ../src/verbs.cpp:1333 msgid "Layer to bottom" msgstr "SlÄni uz apakÅ¡u" -#: ../src/verbs.cpp:1338 +#: ../src/verbs.cpp:1337 msgid "Lower layer" msgstr "ZemÄkais slÄnis" -#: ../src/verbs.cpp:1347 +#: ../src/verbs.cpp:1346 msgid "Cannot move layer any further." msgstr "SlÄni tÄlÄk pÄrvietot nav iespÄ“jams." -#: ../src/verbs.cpp:1361 ../src/verbs.cpp:1380 -#, c-format -msgid "%s copy" -msgstr "%s kopÄ“t" - -#: ../src/verbs.cpp:1388 +#: ../src/verbs.cpp:1357 msgid "Duplicate layer" msgstr "DublÄ“t slÄni" #. TRANSLATORS: this means "The layer has been duplicated." -#: ../src/verbs.cpp:1391 +#: ../src/verbs.cpp:1360 msgid "Duplicated layer." msgstr "DublÄ“tais slÄnis." -#: ../src/verbs.cpp:1424 +#: ../src/verbs.cpp:1393 msgid "Delete layer" msgstr "DzÄ“st slÄni" #. TRANSLATORS: this means "The layer has been deleted." -#: ../src/verbs.cpp:1427 +#: ../src/verbs.cpp:1396 msgid "Deleted layer." msgstr "DzÄ“stais slÄnis." -#: ../src/verbs.cpp:1444 +#: ../src/verbs.cpp:1413 msgid "Show all layers" msgstr "RÄdÄ«t visus slÄņus" -#: ../src/verbs.cpp:1449 +#: ../src/verbs.cpp:1418 msgid "Hide all layers" msgstr "SlÄ“pt visus slÄņus" -#: ../src/verbs.cpp:1454 +#: ../src/verbs.cpp:1423 msgid "Lock all layers" msgstr "SlÄ“gt visus slÄņus" -#: ../src/verbs.cpp:1468 +#: ../src/verbs.cpp:1437 msgid "Unlock all layers" msgstr "AtslÄ“gt visus slÄņus" -#: ../src/verbs.cpp:1552 +#: ../src/verbs.cpp:1521 msgid "Flip horizontally" msgstr "Apmest horizontÄli" -#: ../src/verbs.cpp:1557 +#: ../src/verbs.cpp:1526 msgid "Flip vertically" msgstr "Apmest vertikÄli" -#: ../src/verbs.cpp:1614 ../src/verbs.cpp:2727 +#: ../src/verbs.cpp:1583 ../src/verbs.cpp:2696 #, fuzzy msgid "Create new selection set" -msgstr "Nospiediet, lai izveidotu jaunu kopu." +msgstr "Klikšķiniet un pavelciet, lai izveidotu jaunu iezÄ«mÄ“jumu" #. 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 +#: ../src/verbs.cpp:2153 msgid "tutorial-basic.svg" msgstr "tutorial-basic.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2188 +#: ../src/verbs.cpp:2157 msgid "tutorial-shapes.svg" msgstr "tutorial-shapes.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2192 +#: ../src/verbs.cpp:2161 msgid "tutorial-advanced.svg" msgstr "tutorial-advanced.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2196 +#: ../src/verbs.cpp:2165 msgid "tutorial-tracing.svg" msgstr "tutorial-tracing.svg" -#: ../src/verbs.cpp:2199 +#: ../src/verbs.cpp:2168 msgid "tutorial-tracing-pixelart.svg" msgstr "tutorial-tracing-pixelart.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2203 +#: ../src/verbs.cpp:2172 msgid "tutorial-calligraphy.svg" msgstr "tutorial-calligraphy.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2207 +#: ../src/verbs.cpp:2176 msgid "tutorial-interpolate.svg" msgstr "tutorial-interpolate.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2211 +#: ../src/verbs.cpp:2180 msgid "tutorial-elements.svg" msgstr "tutorial-elements.svg" #. TRANSLATORS: See "tutorial-basic.svg" comment. -#: ../src/verbs.cpp:2215 +#: ../src/verbs.cpp:2184 msgid "tutorial-tips.svg" msgstr "tutorial-tips.svg" -#: ../src/verbs.cpp:2401 ../src/verbs.cpp:3000 +#: ../src/verbs.cpp:2370 ../src/verbs.cpp:2969 msgid "Unlock all objects in the current layer" msgstr "AtslÄ“gt visus objektus paÅ¡reizÄ“jÄ slÄnÄ«" -#: ../src/verbs.cpp:2405 ../src/verbs.cpp:3002 +#: ../src/verbs.cpp:2374 ../src/verbs.cpp:2971 msgid "Unlock all objects in all layers" msgstr "AtslÄ“gt visus objektus visos slÄņos" -#: ../src/verbs.cpp:2409 ../src/verbs.cpp:3004 +#: ../src/verbs.cpp:2378 ../src/verbs.cpp:2973 msgid "Unhide all objects in the current layer" msgstr "ParÄdÄ«t visus objektus paÅ¡reizÄ“jÄ slÄnÄ«" -#: ../src/verbs.cpp:2413 ../src/verbs.cpp:3006 +#: ../src/verbs.cpp:2382 ../src/verbs.cpp:2975 msgid "Unhide all objects in all layers" msgstr "ParÄdÄ«t visus objektus visos slÄnÄ«" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgctxt "Verb" msgid "None" msgstr "Neko" -#: ../src/verbs.cpp:2428 +#: ../src/verbs.cpp:2397 msgid "Does nothing" msgstr "Nedara neko" #. File #. Tag -#: ../src/verbs.cpp:2431 ../src/verbs.cpp:2726 +#: ../src/verbs.cpp:2400 ../src/verbs.cpp:2695 msgid "_New" msgstr "Jau_ns" -#: ../src/verbs.cpp:2431 +#: ../src/verbs.cpp:2400 msgid "Create new document from the default template" msgstr "Izveidot jaunu dokumentu no noklusÄ“tÄs veidnes" -#: ../src/verbs.cpp:2433 +#: ../src/verbs.cpp:2402 msgid "_Open..." msgstr "_AtvÄ“rt..." -#: ../src/verbs.cpp:2434 +#: ../src/verbs.cpp:2403 msgid "Open an existing document" msgstr "AtvÄ“rt jau esoÅ¡u dokumentu" -#: ../src/verbs.cpp:2435 +#: ../src/verbs.cpp:2404 msgid "Re_vert" msgstr "IelÄdÄ“t iepriekÅ¡ saglabÄto" -#: ../src/verbs.cpp:2436 +#: ../src/verbs.cpp:2405 msgid "Revert to the last saved version of document (changes will be lost)" msgstr "Atgriezties pie pÄ“dÄ“jÄs saglabÄtÄs versijas (visas izmaiņas tiks zaudÄ“tas)" -#: ../src/verbs.cpp:2437 +#: ../src/verbs.cpp:2406 msgid "Save document" msgstr "SaglabÄt dokumentu" -#: ../src/verbs.cpp:2439 +#: ../src/verbs.cpp:2408 msgid "Save _As..." msgstr "S_aglabÄt kÄ..." -#: ../src/verbs.cpp:2440 +#: ../src/verbs.cpp:2409 msgid "Save document under a new name" msgstr "SaglabÄt programmu ar citu nosaukumu" -#: ../src/verbs.cpp:2441 +#: ../src/verbs.cpp:2410 msgid "Save a Cop_y..." msgstr "SaglabÄt kopi_ju..." -#: ../src/verbs.cpp:2442 +#: ../src/verbs.cpp:2411 msgid "Save a copy of the document under a new name" msgstr "SaglabÄt paÅ¡reizÄ“jÄ dokumenta kopiju ar jaunu nosaukumu" -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "_Print..." msgstr "_DrukÄt..." -#: ../src/verbs.cpp:2443 +#: ../src/verbs.cpp:2412 msgid "Print document" msgstr "DrukÄt dokumentu" #. TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "Clean _up document" msgstr "Uzkopt dokumentu" -#: ../src/verbs.cpp:2446 +#: ../src/verbs.cpp:2415 msgid "Remove unused definitions (such as gradients or clipping paths) from the <defs> of the document" msgstr "AizvÄkt neizmantotos iestatÄ«jumus (piemÄ“ram, krÄsu pÄrejas vai izgrieÅ¡anas ceļus) no dokumenta <defs>" -#: ../src/verbs.cpp:2448 +#: ../src/verbs.cpp:2417 msgid "_Import..." msgstr "_ImportÄ“t..." -#: ../src/verbs.cpp:2449 +#: ../src/verbs.cpp:2418 msgid "Import a bitmap or SVG image into this document" msgstr "ImportÄ“t bitkartes vai SVG attÄ“lu Å¡ajÄ dokumentÄ" #. 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 +#: ../src/verbs.cpp:2420 msgid "Import Clip Art..." msgstr "ImportÄ“t attÄ“lu galeriju..." -#: ../src/verbs.cpp:2452 +#: ../src/verbs.cpp:2421 msgid "Import clipart from Open Clip Art Library" msgstr "ImportÄ“t attÄ“lu no Open Clip Art bibliotÄ“kas" #. 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 +#: ../src/verbs.cpp:2423 msgid "N_ext Window" msgstr "_NÄkoÅ¡ais logs" -#: ../src/verbs.cpp:2455 +#: ../src/verbs.cpp:2424 msgid "Switch to the next document window" msgstr "PÄrslÄ“gties uz nÄkoÅ¡Ä dokumenta logu" -#: ../src/verbs.cpp:2456 +#: ../src/verbs.cpp:2425 msgid "P_revious Window" msgstr "Ie_priekšējais logs" -#: ../src/verbs.cpp:2457 +#: ../src/verbs.cpp:2426 msgid "Switch to the previous document window" msgstr "PÄrslÄ“gties uz iepriekšējÄ dokumenta logu" -#: ../src/verbs.cpp:2458 +#: ../src/verbs.cpp:2427 msgid "_Close" msgstr "_AizvÄ“rt" -#: ../src/verbs.cpp:2459 +#: ../src/verbs.cpp:2428 msgid "Close this document window" msgstr "AizvÄ“rt patreizÄ“jÄ dokumenta logu" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "_Quit" msgstr "_Iziet" -#: ../src/verbs.cpp:2460 +#: ../src/verbs.cpp:2429 msgid "Quit Inkscape" msgstr "Iziet no Inkscape" -#: ../src/verbs.cpp:2461 +#: ../src/verbs.cpp:2430 msgid "New from _Template..." msgstr "Jaunu no saga_taves..." -#: ../src/verbs.cpp:2462 +#: ../src/verbs.cpp:2431 msgid "Create new project from template" msgstr "Izveidot jaunu projektu no veidnes" -#: ../src/verbs.cpp:2465 +#: ../src/verbs.cpp:2434 msgid "Undo last action" msgstr "Atsaukt pÄ“dÄ“jo darbÄ«bu" -#: ../src/verbs.cpp:2468 +#: ../src/verbs.cpp:2437 msgid "Do again the last undone action" msgstr "AtkÄrtot pÄ“dÄ“jo atsaukto darbÄ«bu" -#: ../src/verbs.cpp:2469 +#: ../src/verbs.cpp:2438 msgid "Cu_t" msgstr "Griez_t" -#: ../src/verbs.cpp:2470 +#: ../src/verbs.cpp:2439 msgid "Cut selection to clipboard" msgstr "Izgriezt atlasÄ«to uz starpliktuvi" -#: ../src/verbs.cpp:2471 +#: ../src/verbs.cpp:2440 msgid "_Copy" msgstr "_KopÄ“t" -#: ../src/verbs.cpp:2472 +#: ../src/verbs.cpp:2441 msgid "Copy selection to clipboard" msgstr "KopÄ“t atlasÄ«to uz starpliktuvi" -#: ../src/verbs.cpp:2473 +#: ../src/verbs.cpp:2442 msgid "_Paste" msgstr "_IelÄ«mÄ“t" -#: ../src/verbs.cpp:2474 +#: ../src/verbs.cpp:2443 msgid "Paste objects from clipboard to mouse point, or paste text" msgstr "IelÄ«mÄ“t objektus vai tekstu no starpliktuves peles kursora norÄdÄ«tajÄ vietÄ" -#: ../src/verbs.cpp:2475 +#: ../src/verbs.cpp:2444 msgid "Paste _Style" msgstr "IelÄ«mÄ“t stilu" -#: ../src/verbs.cpp:2476 +#: ../src/verbs.cpp:2445 msgid "Apply the style of the copied object to selection" msgstr "Pielietot atlasÄ«tajam nokopÄ“tÄ objekta stilu" -#: ../src/verbs.cpp:2478 +#: ../src/verbs.cpp:2447 msgid "Scale selection to match the size of the copied object" msgstr "MÄ“rogot atlasÄ«to, lai atbilstu nokopÄ“tÄ objekta izmÄ“ram" -#: ../src/verbs.cpp:2479 +#: ../src/verbs.cpp:2448 msgid "Paste _Width" msgstr "IelÄ«mÄ“t pla_tumu" -#: ../src/verbs.cpp:2480 +#: ../src/verbs.cpp:2449 msgid "Scale selection horizontally to match the width of the copied object" msgstr "MÄ“rogot atlasÄ«to horizontÄli, lai atbilstu nokopÄ“tÄ objekta platumam" -#: ../src/verbs.cpp:2481 +#: ../src/verbs.cpp:2450 msgid "Paste _Height" msgstr "IelÄ«mÄ“t au_gstumu" -#: ../src/verbs.cpp:2482 +#: ../src/verbs.cpp:2451 msgid "Scale selection vertically to match the height of the copied object" msgstr "MÄ“rogot atlasÄ«to vertikÄli, lai atbilstu nokopÄ“tÄ objekta augstumam" -#: ../src/verbs.cpp:2483 +#: ../src/verbs.cpp:2452 msgid "Paste Size Separately" msgstr "IelÄ«mÄ“t izmÄ“rus atsevišķi" -#: ../src/verbs.cpp:2484 +#: ../src/verbs.cpp:2453 msgid "Scale each selected object to match the size of the copied object" msgstr "MÄ“rogot katru atlasÄ«to objektu, lai atbilstu nokopÄ“tÄ objekta izmÄ“ram" -#: ../src/verbs.cpp:2485 +#: ../src/verbs.cpp:2454 msgid "Paste Width Separately" msgstr "IelÄ«mÄ“t platumu atsevišķi" -#: ../src/verbs.cpp:2486 +#: ../src/verbs.cpp:2455 msgid "Scale each selected object horizontally to match the width of the copied object" msgstr "MÄ“rogot katru atlasÄ«to objektu horizontÄli, lai atbilstu nokopÄ“tÄ objekta platumam" -#: ../src/verbs.cpp:2487 +#: ../src/verbs.cpp:2456 msgid "Paste Height Separately" msgstr "IelÄ«mÄ“t augstumu atsevišķi" -#: ../src/verbs.cpp:2488 +#: ../src/verbs.cpp:2457 msgid "Scale each selected object vertically to match the height of the copied object" msgstr "MÄ“rogot katru atlasÄ«to objektu vertikÄli, lai atbilstu nokopÄ“tÄ objekta augstumam" -#: ../src/verbs.cpp:2489 +#: ../src/verbs.cpp:2458 msgid "Paste _In Place" msgstr "IelÄ«mÄ“t vietÄ" -#: ../src/verbs.cpp:2490 +#: ../src/verbs.cpp:2459 msgid "Paste objects from clipboard to the original location" msgstr "IelÄ«mÄ“t objektus no starpliktuves to sÄkotnÄ“jÄ atraÅ¡anÄs vietÄ" -#: ../src/verbs.cpp:2491 +#: ../src/verbs.cpp:2460 msgid "Paste Path _Effect" msgstr "IelÄ«mÄ“t ceļa _efektu" -#: ../src/verbs.cpp:2492 +#: ../src/verbs.cpp:2461 msgid "Apply the path effect of the copied object to selection" msgstr "Pielietot nokopÄ“tÄ objekta ceļa efektu atlasÄ«tajam" -#: ../src/verbs.cpp:2493 +#: ../src/verbs.cpp:2462 msgid "Remove Path _Effect" msgstr "AizvÄkt ceļa _efektu" -#: ../src/verbs.cpp:2494 +#: ../src/verbs.cpp:2463 msgid "Remove any path effects from selected objects" msgstr "AizvÄkt visus ceļa efektus no atlasÄ«tajiem objektiem" -#: ../src/verbs.cpp:2495 +#: ../src/verbs.cpp:2464 msgid "_Remove Filters" msgstr "Izņemt filt_rus" -#: ../src/verbs.cpp:2496 +#: ../src/verbs.cpp:2465 msgid "Remove any filters from selected objects" msgstr "AizvÄkt visus filtrus no atlasÄ«tajiem objektiem" -#: ../src/verbs.cpp:2497 +#: ../src/verbs.cpp:2466 msgid "_Delete" msgstr "_DzÄ“st" -#: ../src/verbs.cpp:2498 +#: ../src/verbs.cpp:2467 msgid "Delete selection" msgstr "DzÄ“st iezÄ«mÄ“to" -#: ../src/verbs.cpp:2499 +#: ../src/verbs.cpp:2468 msgid "Duplic_ate" msgstr "Du_blÄ“t" -#: ../src/verbs.cpp:2500 +#: ../src/verbs.cpp:2469 msgid "Duplicate selected objects" msgstr "DublÄ“t iezÄ«mÄ“tos objektus" -#: ../src/verbs.cpp:2501 +#: ../src/verbs.cpp:2470 msgid "Create Clo_ne" msgstr "Izveidot klo_nu" -#: ../src/verbs.cpp:2502 +#: ../src/verbs.cpp:2471 msgid "Create a clone (a copy linked to the original) of selected object" msgstr "Izveidot atlasÄ«tÄ objekta klonus (vai kopÄ“t, piesaistot oriÄ£inÄlam)" -#: ../src/verbs.cpp:2503 +#: ../src/verbs.cpp:2472 msgid "Unlin_k Clone" msgstr "AtsaistÄ«t _klonu" -#: ../src/verbs.cpp:2504 +#: ../src/verbs.cpp:2473 msgid "Cut the selected clones' links to the originals, turning them into standalone objects" msgstr "Saraut atlasÄ«to klonu saites ar oriÄ£inÄliem, pÄrveidojot tos par neatkarÄ«giem objektiem" -#: ../src/verbs.cpp:2505 +#: ../src/verbs.cpp:2474 msgid "Relink to Copied" msgstr "No jauna piesaistÄ«t kopetajam" -#: ../src/verbs.cpp:2506 +#: ../src/verbs.cpp:2475 msgid "Relink the selected clones to the object currently on the clipboard" msgstr "Atjaunot atlasÄ«to klonu saites uz paÅ¡reiz starpliktuvÄ“ atrodoÅ¡os objektu" -#: ../src/verbs.cpp:2507 +#: ../src/verbs.cpp:2476 msgid "Select _Original" msgstr "AtlasÄ«t _oriÄ£inÄlu" -#: ../src/verbs.cpp:2508 +#: ../src/verbs.cpp:2477 msgid "Select the object to which the selected clone is linked" msgstr "AtlasÄ«t objektu, kuram ir piesaistÄ«ts atlasÄ«tais klons" -#: ../src/verbs.cpp:2509 +#: ../src/verbs.cpp:2478 msgid "Clone original path (LPE)" msgstr "KlonÄ“t sÄkotnÄ“jo ceļu (LPE)" -#: ../src/verbs.cpp:2510 +#: ../src/verbs.cpp:2479 msgid "Creates a new path, applies the Clone original LPE, and refers it to the selected path" msgstr "Izveido jaunu ceļu, pielieto KlonÄ“t sÄkotnÄ“jo LPE un izveido atsauci uz atlasÄ«to ceļu" -#: ../src/verbs.cpp:2511 +#: ../src/verbs.cpp:2480 msgid "Objects to _Marker" msgstr "Objektus par _marÄ·ieriem" -#: ../src/verbs.cpp:2512 +#: ../src/verbs.cpp:2481 msgid "Convert selection to a line marker" msgstr "PÄrvÄ“rst atlasÄ«to par lÄ«nijas marÄ·ieri" -#: ../src/verbs.cpp:2513 +#: ../src/verbs.cpp:2482 msgid "Objects to Gu_ides" msgstr "Objektus par palÄ«glÄ«n_ijÄm" -#: ../src/verbs.cpp:2514 +#: ../src/verbs.cpp:2483 msgid "Convert selected objects to a collection of guidelines aligned with their edges" msgstr "PÄrveidot atlasÄ«tos objektus par gar objektu malÄm izkÄrtotu palÄ«glÄ«niju kopu" -#: ../src/verbs.cpp:2515 +#: ../src/verbs.cpp:2484 msgid "Objects to Patter_n" msgstr "Objektus par _faktÅ«ru" -#: ../src/verbs.cpp:2516 +#: ../src/verbs.cpp:2485 msgid "Convert selection to a rectangle with tiled pattern fill" msgstr "PÄrvÄ“rst atlasÄ«to par ar faktÅ«ras elementiem aizpildÄ«tu taisnstÅ«ri" -#: ../src/verbs.cpp:2517 +#: ../src/verbs.cpp:2486 msgid "Pattern to _Objects" msgstr "FaktÅ«ru par _objektiem" -#: ../src/verbs.cpp:2518 +#: ../src/verbs.cpp:2487 msgid "Extract objects from a tiled pattern fill" msgstr "Ekstraģēt objektus no faktÅ«ras aizpildÄ«juma" -#: ../src/verbs.cpp:2519 +#: ../src/verbs.cpp:2488 msgid "Group to Symbol" msgstr "Grupu par simbolu" -#: ../src/verbs.cpp:2520 +#: ../src/verbs.cpp:2489 msgid "Convert group to a symbol" msgstr "PÄrvÄ“rst grupu par simbolu" -#: ../src/verbs.cpp:2521 +#: ../src/verbs.cpp:2490 msgid "Symbol to Group" msgstr "Simbolu par grupu" -#: ../src/verbs.cpp:2522 +#: ../src/verbs.cpp:2491 msgid "Extract group from a symbol" msgstr "Ekstraģēt grupu no simbola" -#: ../src/verbs.cpp:2523 +#: ../src/verbs.cpp:2492 msgid "Clea_r All" msgstr "NotÄ«_rÄ«t visu" -#: ../src/verbs.cpp:2524 +#: ../src/verbs.cpp:2493 msgid "Delete all objects from document" msgstr "DzÄ“st visus objektus dokumentÄ" -#: ../src/verbs.cpp:2525 +#: ../src/verbs.cpp:2494 msgid "Select Al_l" msgstr "AtlasÄ«t _visu" -#: ../src/verbs.cpp:2526 +#: ../src/verbs.cpp:2495 msgid "Select all objects or all nodes" msgstr "AtlasÄ«t visus objektus vai mezglus" -#: ../src/verbs.cpp:2527 +#: ../src/verbs.cpp:2496 msgid "Select All in All La_yers" msgstr "AtlasÄ«t visu visos s_lÄņos" -#: ../src/verbs.cpp:2528 +#: ../src/verbs.cpp:2497 msgid "Select all objects in all visible and unlocked layers" msgstr "AtlasÄ«t visus objektus visos redzamajos un atvÄ“rtajos slÄņos" -#: ../src/verbs.cpp:2529 +#: ../src/verbs.cpp:2498 msgid "Fill _and Stroke" msgstr "AizpildÄ«jums un apmale" -#: ../src/verbs.cpp:2530 +#: ../src/verbs.cpp:2499 msgid "Select all objects with the same fill and stroke as the selected objects" msgstr "AtlasÄ«t visus objektus ar lÄ«dzÄ«gu aizpildÄ«jumu un apmales platumu, kÄ jau atlasÄ«tajiem" -#: ../src/verbs.cpp:2531 +#: ../src/verbs.cpp:2500 msgid "_Fill Color" msgstr "_PildÄ«juma krÄsa" -#: ../src/verbs.cpp:2532 +#: ../src/verbs.cpp:2501 msgid "Select all objects with the same fill as the selected objects" msgstr "AtlasÄ«t visus objektus ar lÄ«dzÄ«gu aizpildÄ«jumu, kÄ jau atlasÄ«tajiem" -#: ../src/verbs.cpp:2533 +#: ../src/verbs.cpp:2502 msgid "_Stroke Color" msgstr "_Apmales krÄsa" -#: ../src/verbs.cpp:2534 +#: ../src/verbs.cpp:2503 msgid "Select all objects with the same stroke as the selected objects" msgstr "AtlasÄ«t visus objektus ar lÄ«dzÄ«gu apmales platumu, kÄ jau atlasÄ«tajiem" -#: ../src/verbs.cpp:2535 +#: ../src/verbs.cpp:2504 msgid "Stroke St_yle" msgstr "Apmales sti_ls" -#: ../src/verbs.cpp:2536 +#: ../src/verbs.cpp:2505 msgid "Select all objects with the same stroke style (width, dash, markers) as the selected objects" msgstr "AtlasÄ«t visus objektus ar lÄ«dzÄ«gu apmales stilu (platums, dalÄ«jumu, marÄ·ieri), kÄ jau atlasÄ«tajiem" -#: ../src/verbs.cpp:2537 +#: ../src/verbs.cpp:2506 msgid "_Object Type" msgstr "_Objekta tips" -#: ../src/verbs.cpp:2538 +#: ../src/verbs.cpp:2507 msgid "Select all objects with the same object type (rect, arc, text, path, bitmap etc) as the selected objects" msgstr "AtlasÄ«t visus objektus ar lÄ«dzÄ«gu tipu, kÄ jau atlasÄ«tajiem (taisnstÅ«ris, loks, teksts, bitkarte, ceļš utml.)" -#: ../src/verbs.cpp:2539 +#: ../src/verbs.cpp:2508 msgid "In_vert Selection" msgstr "In_vertÄ“t izvÄ“lÄ“to" -#: ../src/verbs.cpp:2540 +#: ../src/verbs.cpp:2509 msgid "Invert selection (unselect what is selected and select everything else)" msgstr "InvertÄ“t atlasÄ«to (atceļ iepriekšējo atlasi un atlasa visu pÄrÄ“jo)" -#: ../src/verbs.cpp:2541 +#: ../src/verbs.cpp:2510 msgid "Invert in All Layers" msgstr "InvertÄ“t visus slÄņus" -#: ../src/verbs.cpp:2542 +#: ../src/verbs.cpp:2511 msgid "Invert selection in all visible and unlocked layers" msgstr "InvertÄ“t atlasÄ«to visos redzamajos un atvÄ“rtajos slÄņos" -#: ../src/verbs.cpp:2543 +#: ../src/verbs.cpp:2512 msgid "Select Next" msgstr "AtlasÄ«t nÄkoÅ¡o" -#: ../src/verbs.cpp:2544 +#: ../src/verbs.cpp:2513 msgid "Select next object or node" msgstr "AtlasÄ«t nÄkoÅ¡o objektu vai mezglu" -#: ../src/verbs.cpp:2545 +#: ../src/verbs.cpp:2514 msgid "Select Previous" msgstr "AtlasÄ«t iepriekšējo" -#: ../src/verbs.cpp:2546 +#: ../src/verbs.cpp:2515 msgid "Select previous object or node" msgstr "AtlasÄ«t iepriekšējo objektu vai mezglu" -#: ../src/verbs.cpp:2547 +#: ../src/verbs.cpp:2516 msgid "D_eselect" msgstr "Atc_elt atlasi" -#: ../src/verbs.cpp:2548 +#: ../src/verbs.cpp:2517 msgid "Deselect any selected objects or nodes" msgstr "Atcelt visu objektu vai mezglu atlasi" -#: ../src/verbs.cpp:2550 +#: ../src/verbs.cpp:2519 msgid "Delete all the guides in the document" msgstr "DzÄ“st visas dokumentÄ esoÅ¡Äs palÄ«glÄ«nijas" -#: ../src/verbs.cpp:2551 +#: ../src/verbs.cpp:2520 msgid "Create _Guides Around the Page" msgstr "Izveidot palÄ«_glÄ«nijas apkÄrt lapai" -#: ../src/verbs.cpp:2552 +#: ../src/verbs.cpp:2521 msgid "Create four guides aligned with the page borders" msgstr "Izveidojiet Äetras gar lapas malÄm novietotas palÄ«glÄ«nijas" -#: ../src/verbs.cpp:2553 +#: ../src/verbs.cpp:2522 msgid "Next path effect parameter" msgstr "NÄkoÅ¡ais ceļa efekta parametrs" -#: ../src/verbs.cpp:2554 +#: ../src/verbs.cpp:2523 msgid "Show next editable path effect parameter" msgstr "RÄdÄ«t nÄkoÅ¡o labojamo ceļa efekta parametru" #. Selection -#: ../src/verbs.cpp:2557 +#: ../src/verbs.cpp:2526 msgid "Raise to _Top" msgstr "Pacelt _virspusÄ“" -#: ../src/verbs.cpp:2558 +#: ../src/verbs.cpp:2527 msgid "Raise selection to top" msgstr "Pacelt izvÄ“lÄ“to paÅ¡Ä augÅ¡Ä" -#: ../src/verbs.cpp:2559 +#: ../src/verbs.cpp:2528 msgid "Lower to _Bottom" msgstr "Nolaist paÅ¡Ä apakÅ¡Ä" -#: ../src/verbs.cpp:2560 +#: ../src/verbs.cpp:2529 msgid "Lower selection to bottom" msgstr "Nolaist izvÄ“lÄ“to paÅ¡Ä apakÅ¡Ä" -#: ../src/verbs.cpp:2561 +#: ../src/verbs.cpp:2530 msgid "_Raise" msgstr "Pacelt" -#: ../src/verbs.cpp:2562 +#: ../src/verbs.cpp:2531 msgid "Raise selection one step" msgstr "Pacelt izvÄ“lÄ“to par vienu soli uz augÅ¡u" -#: ../src/verbs.cpp:2563 +#: ../src/verbs.cpp:2532 msgid "_Lower" msgstr "_Nolaist" -#: ../src/verbs.cpp:2564 +#: ../src/verbs.cpp:2533 msgid "Lower selection one step" msgstr "Pacelt izvÄ“lÄ“to par vienu soli uz leju" -#: ../src/verbs.cpp:2566 +#: ../src/verbs.cpp:2535 msgid "Group selected objects" msgstr "GrupÄ“t iezÄ«mÄ“tos objektus" -#: ../src/verbs.cpp:2568 +#: ../src/verbs.cpp:2537 msgid "Ungroup selected groups" msgstr "AtgrupÄ“t iezÄ«mÄ“tÄs grupas" -#: ../src/verbs.cpp:2570 +#: ../src/verbs.cpp:2539 msgid "_Put on Path" msgstr "Izvietot gar ceļu" -#: ../src/verbs.cpp:2572 +#: ../src/verbs.cpp:2541 msgid "_Remove from Path" msgstr "AizvÄkt no ceļa" -#: ../src/verbs.cpp:2574 +#: ../src/verbs.cpp:2543 msgid "Remove Manual _Kerns" msgstr "aizvÄkt rokas rakstasavirzi" #. 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 +#: ../src/verbs.cpp:2546 msgid "Remove all manual kerns and glyph rotations from a text object" msgstr "AizvÄkt no teksta objekta visas ar roku iestatÄ«tÄs rakstavirzes un glifu pagriezienus" -#: ../src/verbs.cpp:2579 +#: ../src/verbs.cpp:2548 msgid "_Union" msgstr "Ap_vienot" -#: ../src/verbs.cpp:2580 +#: ../src/verbs.cpp:2549 msgid "Create union of selected paths" msgstr "Apvienots atlasÄ«tos ceļus" -#: ../src/verbs.cpp:2581 +#: ../src/verbs.cpp:2550 msgid "_Intersection" msgstr "_Å Ä·Ä“lums" -#: ../src/verbs.cpp:2582 +#: ../src/verbs.cpp:2551 msgid "Create intersection of selected paths" msgstr "Izveidot atlasÄ«to ceļu krustpunktu" -#: ../src/verbs.cpp:2583 +#: ../src/verbs.cpp:2552 msgid "_Difference" msgstr "_AtšķirÄ«ba" -#: ../src/verbs.cpp:2584 +#: ../src/verbs.cpp:2553 msgid "Create difference of selected paths (bottom minus top)" msgstr "Izveidot atlasÄ«to ceļu starpÄ«bu (apakšējais mÄ«nus augšējais)" -#: ../src/verbs.cpp:2585 +#: ../src/verbs.cpp:2554 msgid "E_xclusion" msgstr "I_zņēmums" -#: ../src/verbs.cpp:2586 +#: ../src/verbs.cpp:2555 msgid "Create exclusive OR of selected paths (those parts that belong to only one path)" msgstr "No atlasÄ«tajiem ceļiem izveidot izslÄ“dzoÅ¡o VAI (tÄs daļas, kas pieder tikai vienam ceļam)" -#: ../src/verbs.cpp:2587 +#: ../src/verbs.cpp:2556 msgid "Di_vision" msgstr "Ie_daļas" -#: ../src/verbs.cpp:2588 +#: ../src/verbs.cpp:2557 msgid "Cut the bottom path into pieces" msgstr "Sagriezt apakšējo ceļu gabalos" #. 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 +#: ../src/verbs.cpp:2560 msgid "Cut _Path" msgstr "PÄrgriezt _ceļu" -#: ../src/verbs.cpp:2592 +#: ../src/verbs.cpp:2561 msgid "Cut the bottom path's stroke into pieces, removing fill" msgstr "Sagriezt apakšējÄ ceļa apmali posmos, aizvÄcot aizpildÄ«jumu" #. 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 +#: ../src/verbs.cpp:2565 msgid "Outs_et" msgstr "Paga_rinÄt" -#: ../src/verbs.cpp:2597 +#: ../src/verbs.cpp:2566 msgid "Outset selected paths" msgstr "PagarinÄt atlasÄ«to ceļu" -#: ../src/verbs.cpp:2599 +#: ../src/verbs.cpp:2568 msgid "O_utset Path by 1 px" msgstr "PagarinÄt atlasÄ«to ceļ_u par 1 px" -#: ../src/verbs.cpp:2600 +#: ../src/verbs.cpp:2569 msgid "Outset selected paths by 1 px" msgstr "PagarinÄt atlasÄ«to ceļu par 1 px" -#: ../src/verbs.cpp:2602 +#: ../src/verbs.cpp:2571 msgid "O_utset Path by 10 px" msgstr "PagarinÄt atlasÄ«to ceļu par 10 px" -#: ../src/verbs.cpp:2603 +#: ../src/verbs.cpp:2572 msgid "Outset selected paths by 10 px" msgstr "PagarinÄt atlasÄ«to ceļu par 10 px" #. 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 +#: ../src/verbs.cpp:2576 msgid "I_nset" msgstr "SaÄ«si_nÄt" -#: ../src/verbs.cpp:2608 +#: ../src/verbs.cpp:2577 msgid "Inset selected paths" msgstr "PÄrvietot atlasÄ«tos ceļus uz iekÅ¡u" -#: ../src/verbs.cpp:2610 +#: ../src/verbs.cpp:2579 msgid "I_nset Path by 1 px" msgstr "SaÄ«si_nÄt ceļu par 1 px" -#: ../src/verbs.cpp:2611 +#: ../src/verbs.cpp:2580 msgid "Inset selected paths by 1 px" msgstr "SaÄ«sinÄt atlasÄ«to ceļu par 1 px" -#: ../src/verbs.cpp:2613 +#: ../src/verbs.cpp:2582 msgid "I_nset Path by 10 px" msgstr "SaÄ«si_nÄt ceļu par 10 px" -#: ../src/verbs.cpp:2614 +#: ../src/verbs.cpp:2583 msgid "Inset selected paths by 10 px" msgstr "SaÄ«sinÄt atlasÄ«to ceļu par 10 px" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "D_ynamic Offset" msgstr "DinamiskÄ nobÄ«de" -#: ../src/verbs.cpp:2616 +#: ../src/verbs.cpp:2585 msgid "Create a dynamic offset object" msgstr "Izveidot dinamiski nobÄ«dÄ«tu objektu" -#: ../src/verbs.cpp:2618 +#: ../src/verbs.cpp:2587 msgid "_Linked Offset" msgstr "SaistÄ«tÄ nobÄ«de" -#: ../src/verbs.cpp:2619 +#: ../src/verbs.cpp:2588 msgid "Create a dynamic offset object linked to the original path" msgstr "Izveidot pie sÄkotnÄ“jÄ ceļa piesaistÄ«tu dinamisko nobÄ«dÄ«tu objektu" -#: ../src/verbs.cpp:2621 +#: ../src/verbs.cpp:2590 msgid "_Stroke to Path" msgstr "Vilku_mu par ceļu" -#: ../src/verbs.cpp:2622 +#: ../src/verbs.cpp:2591 msgid "Convert selected object's stroke to paths" msgstr "PÄrvÄ“rst atlasÄ«tÄ objekta apmali ceļos" -#: ../src/verbs.cpp:2623 +#: ../src/verbs.cpp:2592 msgid "Si_mplify" msgstr "V_ienkÄrÅ¡ot" -#: ../src/verbs.cpp:2624 +#: ../src/verbs.cpp:2593 msgid "Simplify selected paths (remove extra nodes)" msgstr "VienkÄrÅ¡o atlasÄ«tos ceļus (aizvÄc liekos mezglus)" -#: ../src/verbs.cpp:2625 +#: ../src/verbs.cpp:2594 msgid "_Reverse" msgstr "Apg_rieztÄ secÄ«bÄ" -#: ../src/verbs.cpp:2626 +#: ../src/verbs.cpp:2595 msgid "Reverse the direction of selected paths (useful for flipping markers)" msgstr "Pagriezt atlasÄ«tos ceļus pretÄ“jÄ virzienÄ (noderÄ«gs marÄ·ieru apgrieÅ¡anai)" -#: ../src/verbs.cpp:2629 +#: ../src/verbs.cpp:2598 msgid "Create one or more paths from a bitmap by tracing it" msgstr "VektorizÄ“jot izveido no bitkartes vienu vai vairÄkus ceļus" -#: ../src/verbs.cpp:2630 +#: ../src/verbs.cpp:2599 msgid "Trace Pixel Art..." msgstr "VektorizÄ“t pikseļu attÄ“lu..." -#: ../src/verbs.cpp:2631 +#: ../src/verbs.cpp:2600 msgid "Create paths using Kopf-Lischinski algorithm to vectorize pixel art" msgstr "VektorizÄ“jot pikseļu attÄ“lus veidot ceļus izmantojot Kopfa-LiÅ¡inska algoritmu" -#: ../src/verbs.cpp:2632 +#: ../src/verbs.cpp:2601 msgid "Make a _Bitmap Copy" msgstr "Izveidot _bitkartes kopiju" -#: ../src/verbs.cpp:2633 +#: ../src/verbs.cpp:2602 msgid "Export selection to a bitmap and insert it into document" msgstr "EksportÄ“t atlasÄ«to uz bitkarti un ievietot to dokumentÄ" -#: ../src/verbs.cpp:2634 +#: ../src/verbs.cpp:2603 msgid "_Combine" msgstr "_KombinÄ“t" -#: ../src/verbs.cpp:2635 +#: ../src/verbs.cpp:2604 msgid "Combine several paths into one" msgstr "Apvieno vairÄkus ceļus vienÄ" #. 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 +#: ../src/verbs.cpp:2607 msgid "Break _Apart" msgstr "S_ašķelt" -#: ../src/verbs.cpp:2639 +#: ../src/verbs.cpp:2608 msgid "Break selected paths into subpaths" msgstr "Sašķelt atlasÄ«tos ceļus apakÅ¡ceļos" -#: ../src/verbs.cpp:2640 +#: ../src/verbs.cpp:2609 msgid "_Arrange..." msgstr "S_akÄrtot..." -#: ../src/verbs.cpp:2641 +#: ../src/verbs.cpp:2610 msgid "Arrange selected objects in a table or circle" msgstr "SakÄrtot atlasÄ«tos objektus tabulÄ vai aplÄ«" #. Layer -#: ../src/verbs.cpp:2643 +#: ../src/verbs.cpp:2612 msgid "_Add Layer..." msgstr "Pie_vienot slÄni..." -#: ../src/verbs.cpp:2644 +#: ../src/verbs.cpp:2613 msgid "Create a new layer" msgstr "Izveidot jaunu slÄni" -#: ../src/verbs.cpp:2645 +#: ../src/verbs.cpp:2614 msgid "Re_name Layer..." msgstr "PÄrdÄ“vÄ“t slÄ_ni..." -#: ../src/verbs.cpp:2646 +#: ../src/verbs.cpp:2615 msgid "Rename the current layer" msgstr "PÄrdÄ“vÄ“t paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2647 +#: ../src/verbs.cpp:2616 msgid "Switch to Layer Abov_e" msgstr "PÄrslÄ“gties uz virsÄ“jo slÄni" -#: ../src/verbs.cpp:2648 +#: ../src/verbs.cpp:2617 msgid "Switch to the layer above the current" msgstr "PÄrslÄ“gties uz slÄni virs paÅ¡reizÄ“jÄ" -#: ../src/verbs.cpp:2649 +#: ../src/verbs.cpp:2618 msgid "Switch to Layer Belo_w" msgstr "PÄrslÄ“gties uz apakšējo slÄni" -#: ../src/verbs.cpp:2650 +#: ../src/verbs.cpp:2619 msgid "Switch to the layer below the current" msgstr "PÄrslÄ“gties uz slÄni zem paÅ¡reizÄ“jÄ" -#: ../src/verbs.cpp:2651 +#: ../src/verbs.cpp:2620 msgid "Move Selection to Layer Abo_ve" msgstr "PÄrvietot atlasÄ«to uz slÄni _virs šī" -#: ../src/verbs.cpp:2652 +#: ../src/verbs.cpp:2621 msgid "Move selection to the layer above the current" msgstr "PÄrvietot izvÄ“lÄ“to uz slÄni virs paÅ¡reizÄ“jÄ" -#: ../src/verbs.cpp:2653 +#: ../src/verbs.cpp:2622 msgid "Move Selection to Layer Bel_ow" msgstr "PÄrvietot atlasÄ«to uz slÄni _zem šī" -#: ../src/verbs.cpp:2654 +#: ../src/verbs.cpp:2623 msgid "Move selection to the layer below the current" msgstr "PÄrvietot izvÄ“lÄ“to uz slÄni zem paÅ¡reizÄ“jÄ" -#: ../src/verbs.cpp:2655 +#: ../src/verbs.cpp:2624 msgid "Move Selection to Layer..." msgstr "PÄrvietot atlasÄ«to uz slÄni..." -#: ../src/verbs.cpp:2657 +#: ../src/verbs.cpp:2626 msgid "Layer to _Top" msgstr "SlÄni uz _virspusi" -#: ../src/verbs.cpp:2658 +#: ../src/verbs.cpp:2627 msgid "Raise the current layer to the top" msgstr "Pacelt paÅ¡reizÄ“jo slÄni virspusÄ“" -#: ../src/verbs.cpp:2659 +#: ../src/verbs.cpp:2628 msgid "Layer to _Bottom" msgstr "SlÄni uz a_pakÅ¡u" -#: ../src/verbs.cpp:2660 +#: ../src/verbs.cpp:2629 msgid "Lower the current layer to the bottom" msgstr "Nolaist paÅ¡reizÄ“jo slÄni apakÅ¡Ä" -#: ../src/verbs.cpp:2661 +#: ../src/verbs.cpp:2630 msgid "_Raise Layer" msgstr "_Pacelt slÄni" -#: ../src/verbs.cpp:2662 +#: ../src/verbs.cpp:2631 msgid "Raise the current layer" msgstr "Pacelt paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2663 +#: ../src/verbs.cpp:2632 msgid "_Lower Layer" msgstr "No_laist slÄni" -#: ../src/verbs.cpp:2664 +#: ../src/verbs.cpp:2633 msgid "Lower the current layer" msgstr "Nolaist paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2665 +#: ../src/verbs.cpp:2634 msgid "D_uplicate Current Layer" msgstr "DublÄ“t paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2666 +#: ../src/verbs.cpp:2635 msgid "Duplicate an existing layer" msgstr "DublÄ“t esoÅ¡u slÄni" -#: ../src/verbs.cpp:2667 +#: ../src/verbs.cpp:2636 msgid "_Delete Current Layer" msgstr "_DzÄ“st paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2668 +#: ../src/verbs.cpp:2637 msgid "Delete the current layer" msgstr "DzÄ“st paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2669 +#: ../src/verbs.cpp:2638 msgid "_Show/hide other layers" msgstr "_RÄdÄ«t/slÄ“pt citus slÄņus" -#: ../src/verbs.cpp:2670 +#: ../src/verbs.cpp:2639 msgid "Solo the current layer" msgstr "Tikai Å¡o slÄni" -#: ../src/verbs.cpp:2671 +#: ../src/verbs.cpp:2640 msgid "_Show all layers" msgstr "RÄdÄ«t vi_sus slÄņus" -#: ../src/verbs.cpp:2672 +#: ../src/verbs.cpp:2641 msgid "Show all the layers" msgstr "RÄdÄ«t visus slÄņus" -#: ../src/verbs.cpp:2673 +#: ../src/verbs.cpp:2642 msgid "_Hide all layers" msgstr "SlÄ“_pt visus slÄņus" -#: ../src/verbs.cpp:2674 +#: ../src/verbs.cpp:2643 msgid "Hide all the layers" msgstr "SlÄ“pt visus slÄņus" -#: ../src/verbs.cpp:2675 +#: ../src/verbs.cpp:2644 msgid "_Lock all layers" msgstr "S_lÄ“gt visus slÄņus" -#: ../src/verbs.cpp:2676 +#: ../src/verbs.cpp:2645 msgid "Lock all the layers" msgstr "SlÄ“dz visus slÄņus" -#: ../src/verbs.cpp:2677 +#: ../src/verbs.cpp:2646 msgid "Lock/Unlock _other layers" msgstr "AizslÄ“gt/atslÄ“gt citus slÄņus" -#: ../src/verbs.cpp:2678 +#: ../src/verbs.cpp:2647 msgid "Lock all the other layers" msgstr "SlÄ“dz visus citus slÄņus" -#: ../src/verbs.cpp:2679 +#: ../src/verbs.cpp:2648 msgid "_Unlock all layers" msgstr "AtslÄ“gt visus slÄņ_us" -#: ../src/verbs.cpp:2680 +#: ../src/verbs.cpp:2649 msgid "Unlock all the layers" msgstr "AtslÄ“dz visus slÄņus" -#: ../src/verbs.cpp:2681 +#: ../src/verbs.cpp:2650 msgid "_Lock/Unlock Current Layer" msgstr "SlÄ“_gt/atslÄ“gt paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2682 +#: ../src/verbs.cpp:2651 msgid "Toggle lock on current layer" msgstr "PÄrslÄ“dz paÅ¡reizÄ“jÄ slÄņa slÄ“dzeni" -#: ../src/verbs.cpp:2683 +#: ../src/verbs.cpp:2652 msgid "_Show/hide Current Layer" msgstr "PaslÄ“pt/rÄdÄ«t paÅ¡reizÄ“jo slÄni" -#: ../src/verbs.cpp:2684 +#: ../src/verbs.cpp:2653 msgid "Toggle visibility of current layer" msgstr "PÄrslÄ“dz paÅ¡reizÄ“jÄ slÄņa redzamÄ«bu" #. Object -#: ../src/verbs.cpp:2687 +#: ../src/verbs.cpp:2656 msgid "Rotate _90° CW" msgstr "Pagriezt _90° CW" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2690 +#: ../src/verbs.cpp:2659 msgid "Rotate selection 90° clockwise" msgstr "Pagriezt izvÄ“lÄ“to par 90° pulksteņrÄdÄ«tÄja virzienÄ" -#: ../src/verbs.cpp:2691 +#: ../src/verbs.cpp:2660 msgid "Rotate 9_0° CCW" msgstr "Pagriezt 9_0° CCW" #. This is shared between tooltips and statusbar, so they #. must use UTF-8, not HTML entities for special characters. -#: ../src/verbs.cpp:2694 +#: ../src/verbs.cpp:2663 msgid "Rotate selection 90° counter-clockwise" msgstr "Pagriezt izvÄ“lÄ“to par 90° pretÄ“ji pulksteņrÄdÄ«tÄja virzienam" -#: ../src/verbs.cpp:2695 +#: ../src/verbs.cpp:2664 msgid "Remove _Transformations" msgstr "AizvÄk_t pÄrveidojumus" -#: ../src/verbs.cpp:2696 +#: ../src/verbs.cpp:2665 msgid "Remove transformations from object" msgstr "AizvÄkt pÄrveidojumus no objekta" -#: ../src/verbs.cpp:2697 +#: ../src/verbs.cpp:2666 msgid "_Object to Path" msgstr "_Objektu par ceļu" -#: ../src/verbs.cpp:2698 +#: ../src/verbs.cpp:2667 msgid "Convert selected object to path" msgstr "PÄrvÄ“rst atlasÄ«to objektu par ceļu" -#: ../src/verbs.cpp:2699 +#: ../src/verbs.cpp:2668 msgid "_Flow into Frame" msgstr "_AizpildÄ«t rÄmi" -#: ../src/verbs.cpp:2700 +#: ../src/verbs.cpp:2669 msgid "Put text into a frame (path or shape), creating a flowed text linked to the frame object" msgstr "Ievietojiet tekstu rÄmÄ« (ceÄ¼Ä vai figÅ«rÄ), izveidojot ar tekstu aizpildÄ«tu rÄmja objektu" -#: ../src/verbs.cpp:2701 +#: ../src/verbs.cpp:2670 msgid "_Unflow" msgstr "AizvÄkt teksta aizpildÄ«j_umu" -#: ../src/verbs.cpp:2702 +#: ../src/verbs.cpp:2671 msgid "Remove text from frame (creates a single-line text object)" msgstr "Izņemt tekstu no rÄmja (izveido vienas rindas teksta objektu)" -#: ../src/verbs.cpp:2703 +#: ../src/verbs.cpp:2672 msgid "_Convert to Text" msgstr "_PÄrveidot par tekstu" -#: ../src/verbs.cpp:2704 +#: ../src/verbs.cpp:2673 msgid "Convert flowed text to regular text object (preserves appearance)" msgstr "PÄrvÄ“rÅ¡ teksta aizpildÄ«jumu par vienkÄrÅ¡u teksta objektu (saglabÄjot izskatu)" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip _Horizontal" msgstr "Apmest horizontÄli" -#: ../src/verbs.cpp:2706 +#: ../src/verbs.cpp:2675 msgid "Flip selected objects horizontally" msgstr "Apmest izvÄ“lÄ“to objektu horizontÄli" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip _Vertical" msgstr "Apmest vertikÄli" -#: ../src/verbs.cpp:2709 +#: ../src/verbs.cpp:2678 msgid "Flip selected objects vertically" msgstr "Apmest izvÄ“lÄ“to objektu vertikÄli" -#: ../src/verbs.cpp:2712 +#: ../src/verbs.cpp:2681 msgid "Apply mask to selection (using the topmost object as mask)" msgstr "Uzlieciet masku atlasÄ«tajam (izmantojot augšējo objektu kÄ masku)" -#: ../src/verbs.cpp:2714 +#: ../src/verbs.cpp:2683 msgid "Edit mask" msgstr "Labot masku" -#: ../src/verbs.cpp:2715 ../src/verbs.cpp:2723 +#: ../src/verbs.cpp:2684 ../src/verbs.cpp:2692 msgid "_Release" msgstr "At_laist" -#: ../src/verbs.cpp:2716 +#: ../src/verbs.cpp:2685 msgid "Remove mask from selection" msgstr "Noņemt maskas no atlasÄ«tÄ" -#: ../src/verbs.cpp:2718 +#: ../src/verbs.cpp:2687 msgid "Apply clipping path to selection (using the topmost object as clipping path)" msgstr "Pielietot atlasÄ«tajam izgrieÅ¡anas ceļu (par izgrieÅ¡anas ceļu izmantojot augÅ¡pusÄ“ esoÅ¡o objektu)" -#: ../src/verbs.cpp:2719 +#: ../src/verbs.cpp:2688 msgid "Create Cl_ip Group" msgstr "Izveidot kl_ipu grupu" -#: ../src/verbs.cpp:2720 +#: ../src/verbs.cpp:2689 msgid "Creates a clip group using the selected objects as a base" msgstr "Izveidot klipu grupu, izmantojot par pamatu atlasÄ«tos objektus" -#: ../src/verbs.cpp:2722 +#: ../src/verbs.cpp:2691 msgid "Edit clipping path" msgstr "Labot izgrieÅ¡anas ceļu" -#: ../src/verbs.cpp:2724 +#: ../src/verbs.cpp:2693 msgid "Remove clipping path from selection" msgstr "AizvÄkt izgrieÅ¡anas ceļu no atlasÄ«tÄ" #. Tools -#: ../src/verbs.cpp:2729 +#: ../src/verbs.cpp:2698 msgctxt "ContextVerb" msgid "Select" msgstr "IezÄ«mÄ“t" -#: ../src/verbs.cpp:2730 +#: ../src/verbs.cpp:2699 msgid "Select and transform objects" msgstr "AtlasÄ«t un pÄrveidot objektus" -#: ../src/verbs.cpp:2731 +#: ../src/verbs.cpp:2700 msgctxt "ContextVerb" msgid "Node Edit" msgstr "Labot mezglu" -#: ../src/verbs.cpp:2732 +#: ../src/verbs.cpp:2701 msgid "Edit paths by nodes" msgstr "Labot ceļus pa mezgliem" -#: ../src/verbs.cpp:2733 +#: ../src/verbs.cpp:2702 msgctxt "ContextVerb" msgid "Tweak" msgstr "Pieskaņot" -#: ../src/verbs.cpp:2734 +#: ../src/verbs.cpp:2703 msgid "Tweak objects by sculpting or painting" msgstr "Pieskaņot objektus veidojot vai krÄsojot" -#: ../src/verbs.cpp:2735 +#: ../src/verbs.cpp:2704 msgctxt "ContextVerb" msgid "Spray" msgstr "SmidzinÄt" -#: ../src/verbs.cpp:2736 +#: ../src/verbs.cpp:2705 msgid "Spray objects by sculpting or painting" msgstr "IzsmidzinÄt objektus veidojot vai krÄsojot" -#: ../src/verbs.cpp:2737 +#: ../src/verbs.cpp:2706 msgctxt "ContextVerb" msgid "Rectangle" msgstr "TaisnstÅ«ris" -#: ../src/verbs.cpp:2738 +#: ../src/verbs.cpp:2707 msgid "Create rectangles and squares" msgstr "ZÄ«mÄ“t taisnstÅ«rus un kvadrÄtus" -#: ../src/verbs.cpp:2739 +#: ../src/verbs.cpp:2708 msgctxt "ContextVerb" msgid "3D Box" msgstr "3D paralÄ“lskaldnis" -#: ../src/verbs.cpp:2740 +#: ../src/verbs.cpp:2709 msgid "Create 3D boxes" msgstr "Izveidot 3D paralÄ“lskaldņus" -#: ../src/verbs.cpp:2741 +#: ../src/verbs.cpp:2710 msgctxt "ContextVerb" msgid "Ellipse" msgstr "Elipse" -#: ../src/verbs.cpp:2742 +#: ../src/verbs.cpp:2711 msgid "Create circles, ellipses, and arcs" msgstr "Izveidot riņķus, elipses un lokus" -#: ../src/verbs.cpp:2743 +#: ../src/verbs.cpp:2712 msgctxt "ContextVerb" msgid "Star" msgstr "Zvaigzne" -#: ../src/verbs.cpp:2744 +#: ../src/verbs.cpp:2713 msgid "Create stars and polygons" msgstr "Izveidot zvaigznes un daudzstÅ«rus" -#: ../src/verbs.cpp:2745 +#: ../src/verbs.cpp:2714 msgctxt "ContextVerb" msgid "Spiral" msgstr "SpirÄle" -#: ../src/verbs.cpp:2746 +#: ../src/verbs.cpp:2715 msgid "Create spirals" msgstr "Izveidot spirÄles" -#: ../src/verbs.cpp:2747 +#: ../src/verbs.cpp:2716 msgctxt "ContextVerb" msgid "Pencil" msgstr "ZÄ«mulis" -#: ../src/verbs.cpp:2748 +#: ../src/verbs.cpp:2717 msgid "Draw freehand lines" msgstr "ZÄ«mÄ“t brÄ«vas rokas lÄ«nijas" -#: ../src/verbs.cpp:2749 +#: ../src/verbs.cpp:2718 msgctxt "ContextVerb" msgid "Pen" msgstr "Spalva" -#: ../src/verbs.cpp:2750 +#: ../src/verbs.cpp:2719 msgid "Draw Bezier curves and straight lines" msgstr "ZÄ«mÄ“jiet BezjÄ“ lÄ«knes un taisnas lÄ«nijas" -#: ../src/verbs.cpp:2751 +#: ../src/verbs.cpp:2720 msgctxt "ContextVerb" msgid "Calligraphy" msgstr "KaligrÄfija" -#: ../src/verbs.cpp:2752 +#: ../src/verbs.cpp:2721 msgid "Draw calligraphic or brush strokes" msgstr "ZÄ«mÄ“jiet kaligrÄfiskÄs vai otas lÄ«nijas" -#: ../src/verbs.cpp:2754 +#: ../src/verbs.cpp:2723 msgid "Create and edit text objects" msgstr "Izveidot un labot teksta objektus" -#: ../src/verbs.cpp:2755 +#: ../src/verbs.cpp:2724 msgctxt "ContextVerb" msgid "Gradient" msgstr "KrÄsu pÄreja" -#: ../src/verbs.cpp:2756 +#: ../src/verbs.cpp:2725 msgid "Create and edit gradients" msgstr "Izveidot un labot krÄsu pÄrejas" -#: ../src/verbs.cpp:2757 +#: ../src/verbs.cpp:2726 msgctxt "ContextVerb" msgid "Mesh" msgstr "TÄ«kls" -#: ../src/verbs.cpp:2758 +#: ../src/verbs.cpp:2727 msgid "Create and edit meshes" msgstr "Izveidot un labot tÄ«klus" -#: ../src/verbs.cpp:2759 +#: ../src/verbs.cpp:2728 msgctxt "ContextVerb" msgid "Zoom" msgstr "TuvinÄt/tÄlinÄt" -#: ../src/verbs.cpp:2760 +#: ../src/verbs.cpp:2729 msgid "Zoom in or out" msgstr "TuvinÄt vai tÄlinÄt" -#: ../src/verbs.cpp:2762 +#: ../src/verbs.cpp:2731 msgid "Measurement tool" msgstr "MÄ“rinstruments" -#: ../src/verbs.cpp:2763 +#: ../src/verbs.cpp:2732 msgctxt "ContextVerb" msgid "Dropper" msgstr "Pipete" -#: ../src/verbs.cpp:2764 ../src/widgets/sp-color-notebook.cpp:396 +#: ../src/verbs.cpp:2733 ../src/widgets/sp-color-notebook.cpp:396 msgid "Pick colors from image" msgstr "IzvÄ“lÄ“ties krÄsas no attÄ“la" -#: ../src/verbs.cpp:2765 +#: ../src/verbs.cpp:2734 msgctxt "ContextVerb" msgid "Connector" msgstr "SavienotÄjs" -#: ../src/verbs.cpp:2766 +#: ../src/verbs.cpp:2735 msgid "Create diagram connectors" msgstr "Izveidot diagrammu savienotÄjus" -#: ../src/verbs.cpp:2767 +#: ../src/verbs.cpp:2736 msgctxt "ContextVerb" msgid "Paint Bucket" msgstr "KrÄsas spainis" -#: ../src/verbs.cpp:2768 +#: ../src/verbs.cpp:2737 msgid "Fill bounded areas" msgstr "AizpildÄ«t noslÄ“gtos apgabalus" -#: ../src/verbs.cpp:2769 +#: ../src/verbs.cpp:2738 msgctxt "ContextVerb" msgid "LPE Edit" msgstr "LPE laboÅ¡ana" -#: ../src/verbs.cpp:2770 +#: ../src/verbs.cpp:2739 msgid "Edit Path Effect parameters" msgstr "Labot ceļa efekta parametrus" -#: ../src/verbs.cpp:2771 +#: ../src/verbs.cpp:2740 msgctxt "ContextVerb" msgid "Eraser" msgstr "Dzēšgumija" -#: ../src/verbs.cpp:2772 +#: ../src/verbs.cpp:2741 msgid "Erase existing paths" msgstr "DzÄ“st pastÄvoÅ¡os ceļus" -#: ../src/verbs.cpp:2773 +#: ../src/verbs.cpp:2742 msgctxt "ContextVerb" msgid "LPE Tool" msgstr "LPE rÄ«ks" -#: ../src/verbs.cpp:2774 +#: ../src/verbs.cpp:2743 msgid "Do geometric constructions" msgstr "Izveidot Ä£eometriskas figÅ«ras" #. Tool prefs -#: ../src/verbs.cpp:2776 +#: ../src/verbs.cpp:2745 msgid "Selector Preferences" msgstr "AtlasÄ«tÄja iestatÄ«jumi" -#: ../src/verbs.cpp:2777 +#: ../src/verbs.cpp:2746 msgid "Open Preferences for the Selector tool" msgstr "AtvÄ“rt iestatÄ«jumus atlasīšanas rÄ«kam" -#: ../src/verbs.cpp:2778 +#: ../src/verbs.cpp:2747 msgid "Node Tool Preferences" msgstr "Mezglu rÄ«ka iestatÄ«jumi" -#: ../src/verbs.cpp:2779 +#: ../src/verbs.cpp:2748 msgid "Open Preferences for the Node tool" msgstr "AtvÄ“rt iestatÄ«jumus mezglu rÄ«kam" -#: ../src/verbs.cpp:2780 +#: ../src/verbs.cpp:2749 msgid "Tweak Tool Preferences" msgstr "PieskaņoÅ¡anas rÄ«ka iestatÄ«jumi" -#: ../src/verbs.cpp:2781 +#: ../src/verbs.cpp:2750 msgid "Open Preferences for the Tweak tool" msgstr "AtvÄ“rt iestatÄ«jumus pieskaņoÅ¡anas rÄ«kam" -#: ../src/verbs.cpp:2782 +#: ../src/verbs.cpp:2751 msgid "Spray Tool Preferences" msgstr "SmidzinÄtÄja iestatÄ«jumi" -#: ../src/verbs.cpp:2783 +#: ../src/verbs.cpp:2752 msgid "Open Preferences for the Spray tool" msgstr "AtvÄ“rt iestatÄ«jumus smidzinÄÅ¡anas rÄ«kam" -#: ../src/verbs.cpp:2784 +#: ../src/verbs.cpp:2753 msgid "Rectangle Preferences" msgstr "TaisnstÅ«ra iestatÄ«jumi" -#: ../src/verbs.cpp:2785 +#: ../src/verbs.cpp:2754 msgid "Open Preferences for the Rectangle tool" msgstr "AtvÄ“rt iestatÄ«jumus taisnstÅ«ru rÄ«kam" -#: ../src/verbs.cpp:2786 +#: ../src/verbs.cpp:2755 msgid "3D Box Preferences" msgstr "3D paralÄ“lskaldņa iestatÄ«jumi" -#: ../src/verbs.cpp:2787 +#: ../src/verbs.cpp:2756 msgid "Open Preferences for the 3D Box tool" msgstr "AtvÄ“rt iestatÄ«jumus 3D paralÄ“lskaldņa rÄ«kam" -#: ../src/verbs.cpp:2788 +#: ../src/verbs.cpp:2757 msgid "Ellipse Preferences" msgstr "Elipses iestatÄ«jumi" -#: ../src/verbs.cpp:2789 +#: ../src/verbs.cpp:2758 msgid "Open Preferences for the Ellipse tool" msgstr "AtvÄ“rt iestatÄ«jumus elipses rÄ«kam" -#: ../src/verbs.cpp:2790 +#: ../src/verbs.cpp:2759 msgid "Star Preferences" msgstr "Zvaigznes iestatÄ«jumi" -#: ../src/verbs.cpp:2791 +#: ../src/verbs.cpp:2760 msgid "Open Preferences for the Star tool" msgstr "AtvÄ“rt iestatÄ«jumus zvaigznes rÄ«kam" -#: ../src/verbs.cpp:2792 +#: ../src/verbs.cpp:2761 msgid "Spiral Preferences" msgstr "SpirÄles iestatÄ«jumi" -#: ../src/verbs.cpp:2793 +#: ../src/verbs.cpp:2762 msgid "Open Preferences for the Spiral tool" msgstr "AtvÄ“rt iestatÄ«jumus spirÄles rÄ«kam" -#: ../src/verbs.cpp:2794 +#: ../src/verbs.cpp:2763 msgid "Pencil Preferences" msgstr "ZÄ«muļa iestatÄ«jumi" -#: ../src/verbs.cpp:2795 +#: ../src/verbs.cpp:2764 msgid "Open Preferences for the Pencil tool" msgstr "AtvÄ“rt iestatÄ«jumus zÄ«muļa rÄ«kam" -#: ../src/verbs.cpp:2796 +#: ../src/verbs.cpp:2765 msgid "Pen Preferences" msgstr "Spalvas iestatÄ«jumi" -#: ../src/verbs.cpp:2797 +#: ../src/verbs.cpp:2766 msgid "Open Preferences for the Pen tool" msgstr "AtvÄ“rt iestatÄ«jumus spalvas rÄ«kam" -#: ../src/verbs.cpp:2798 +#: ../src/verbs.cpp:2767 msgid "Calligraphic Preferences" msgstr "KaligrÄfijas iestatÄ«jumi" -#: ../src/verbs.cpp:2799 +#: ../src/verbs.cpp:2768 msgid "Open Preferences for the Calligraphy tool" msgstr "AtvÄ“rt iestatÄ«jumus kaligrÄfijas rÄ«kam" -#: ../src/verbs.cpp:2800 +#: ../src/verbs.cpp:2769 msgid "Text Preferences" msgstr "Teksta iestatÄ«jumi" -#: ../src/verbs.cpp:2801 +#: ../src/verbs.cpp:2770 msgid "Open Preferences for the Text tool" msgstr "AtvÄ“rt iestatÄ«jumus teksta rÄ«kam" -#: ../src/verbs.cpp:2802 +#: ../src/verbs.cpp:2771 msgid "Gradient Preferences" msgstr "KrÄsu pÄrejas iestatÄ«jumi" -#: ../src/verbs.cpp:2803 +#: ../src/verbs.cpp:2772 msgid "Open Preferences for the Gradient tool" msgstr "AtvÄ“rt iestatÄ«jumus krÄsu pÄrejas rÄ«kam " -#: ../src/verbs.cpp:2804 +#: ../src/verbs.cpp:2773 msgid "Mesh Preferences" msgstr "TÄ«kla iestatÄ«jumi" -#: ../src/verbs.cpp:2805 +#: ../src/verbs.cpp:2774 msgid "Open Preferences for the Mesh tool" msgstr "AtvÄ“rt iestatÄ«jumus tÄ«kla rÄ«kam" -#: ../src/verbs.cpp:2806 +#: ../src/verbs.cpp:2775 msgid "Zoom Preferences" msgstr "TÄlummaiņas iestatÄ«jumi" -#: ../src/verbs.cpp:2807 +#: ../src/verbs.cpp:2776 msgid "Open Preferences for the Zoom tool" msgstr "AtvÄ“rt iestatÄ«jumus tÄlummaiņas rÄ«kam" -#: ../src/verbs.cpp:2808 +#: ../src/verbs.cpp:2777 msgid "Measure Preferences" msgstr "MÄ“rīšanas iestatÄ«jumi" -#: ../src/verbs.cpp:2809 +#: ../src/verbs.cpp:2778 msgid "Open Preferences for the Measure tool" msgstr "AtvÄ“rt iestatÄ«jumus mÄ“rīšanas rÄ«kam" -#: ../src/verbs.cpp:2810 +#: ../src/verbs.cpp:2779 msgid "Dropper Preferences" msgstr "Pipetes iestatÄ«jumi" -#: ../src/verbs.cpp:2811 +#: ../src/verbs.cpp:2780 msgid "Open Preferences for the Dropper tool" msgstr "AtvÄ“rt pipetes rÄ«ka iestatÄ«jumus" -#: ../src/verbs.cpp:2812 +#: ../src/verbs.cpp:2781 msgid "Connector Preferences" msgstr "SavienotÄja iestatÄ«jumi" -#: ../src/verbs.cpp:2813 +#: ../src/verbs.cpp:2782 msgid "Open Preferences for the Connector tool" msgstr "AtvÄ“rt iestatÄ«jumus savienotÄju rÄ«kam" -#: ../src/verbs.cpp:2814 +#: ../src/verbs.cpp:2783 msgid "Paint Bucket Preferences" msgstr "KrÄsas spaiņa iestatÄ«jumi" -#: ../src/verbs.cpp:2815 +#: ../src/verbs.cpp:2784 msgid "Open Preferences for the Paint Bucket tool" msgstr "AtvÄ“rt iestatÄ«jumus kÄras spaiņa rÄ«kam" -#: ../src/verbs.cpp:2816 +#: ../src/verbs.cpp:2785 msgid "Eraser Preferences" msgstr "Dzēšgumijas iestatÄ«jumi" -#: ../src/verbs.cpp:2817 +#: ../src/verbs.cpp:2786 msgid "Open Preferences for the Eraser tool" msgstr "AtvÄ“rt iestatÄ«jumus dzēšgumijas rÄ«kam" -#: ../src/verbs.cpp:2818 +#: ../src/verbs.cpp:2787 msgid "LPE Tool Preferences" msgstr "LPE rÄ«ka iestatÄ«jumi" -#: ../src/verbs.cpp:2819 +#: ../src/verbs.cpp:2788 msgid "Open Preferences for the LPETool tool" msgstr "AtvÄ“rt iestatÄ«jumus LPE rÄ«kam" #. Zoom/View -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom In" msgstr "TuvinÄt" -#: ../src/verbs.cpp:2821 +#: ../src/verbs.cpp:2790 msgid "Zoom in" msgstr "TuvinÄt" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom Out" msgstr "TÄlinÄt" -#: ../src/verbs.cpp:2822 +#: ../src/verbs.cpp:2791 msgid "Zoom out" msgstr "TÄlinÄt" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "_Rulers" msgstr "_LineÄli" -#: ../src/verbs.cpp:2823 +#: ../src/verbs.cpp:2792 msgid "Show or hide the canvas rulers" msgstr "ParÄdÄ«t vai paslÄ“pt audekla ritjoslas" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Scroll_bars" msgstr "Rit_joslas" -#: ../src/verbs.cpp:2824 +#: ../src/verbs.cpp:2793 msgid "Show or hide the canvas scrollbars" msgstr "ParÄdÄ«t vai paslÄ“pt audekla ritjoslas" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Page _Grid" msgstr "Lapas _režģis" -#: ../src/verbs.cpp:2825 +#: ../src/verbs.cpp:2794 msgid "Show or hide the page grid" msgstr "RÄdÄ«t vai slÄ“pt lapas režģi." -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "G_uides" msgstr "PalÄ«glÄ«nijas" -#: ../src/verbs.cpp:2826 +#: ../src/verbs.cpp:2795 msgid "Show or hide guides (drag from a ruler to create a guide)" msgstr "RÄdÄ«t vai slÄ“pt palÄ«glÄ«nijas (lai izveidotu palÄ«glÄ«niju, velciet no lineÄla)" -#: ../src/verbs.cpp:2827 +#: ../src/verbs.cpp:2796 msgid "Enable snapping" msgstr "IeslÄ“gt piesaistīšanu" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "_Commands Bar" msgstr "_Komandu josla" -#: ../src/verbs.cpp:2828 +#: ../src/verbs.cpp:2797 msgid "Show or hide the Commands bar (under the menu)" msgstr "RÄdÄ«t vai slÄ“pt komandu joslu (zem izvÄ“lnes)" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Sn_ap Controls Bar" msgstr "Pies_aistes vadÄ«klu josla" -#: ../src/verbs.cpp:2829 +#: ../src/verbs.cpp:2798 msgid "Show or hide the snapping controls" msgstr "RÄdÄ«t vai slÄ“pt piesaistes vadÄ«klu joslu" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "T_ool Controls Bar" msgstr "RÄ«ku vadÄ«klu j_osla" -#: ../src/verbs.cpp:2830 +#: ../src/verbs.cpp:2799 msgid "Show or hide the Tool Controls bar" msgstr "RÄdÄ«t vai slÄ“pt rÄ«ku vadÄ«klu joslu" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "_Toolbox" msgstr "_RÄ«kjosla" -#: ../src/verbs.cpp:2831 +#: ../src/verbs.cpp:2800 msgid "Show or hide the main toolbox (on the left)" msgstr "RÄdÄ«t vai slÄ“pt galveno rÄ«ku kasti (kreisajÄ malÄ)" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "_Palette" msgstr "_Palete" -#: ../src/verbs.cpp:2832 +#: ../src/verbs.cpp:2801 msgid "Show or hide the color palette" msgstr "RÄdÄ«t vai slÄ“pt krÄsu paleti" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "_Statusbar" msgstr "_Statusa josla" -#: ../src/verbs.cpp:2833 +#: ../src/verbs.cpp:2802 msgid "Show or hide the statusbar (at the bottom of the window)" msgstr "RÄdÄ«t vai slÄ“pt stÄvokļa joslu (loga apakÅ¡Ä)" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Nex_t Zoom" msgstr "_NÄkoÅ¡Ä tÄlummaiņa" -#: ../src/verbs.cpp:2834 +#: ../src/verbs.cpp:2803 msgid "Next zoom (from the history of zooms)" msgstr "NÄkoÅ¡Ä tÄlummaiņa (no tÄlummaiņas vÄ“stures)" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Pre_vious Zoom" msgstr "Ie_priekšējÄ tÄlummaiņa" -#: ../src/verbs.cpp:2836 +#: ../src/verbs.cpp:2805 msgid "Previous zoom (from the history of zooms)" msgstr "IepriekšējÄ tÄlummaiņa (no tÄlummaiņas vÄ“stures)" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom 1:_1" msgstr "TÄlummaiņa 1:_1" -#: ../src/verbs.cpp:2838 +#: ../src/verbs.cpp:2807 msgid "Zoom to 1:1" msgstr "TÄlummainÄ«t 1:1" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom 1:_2" msgstr "TÄlummaiņa 1:_2" -#: ../src/verbs.cpp:2840 +#: ../src/verbs.cpp:2809 msgid "Zoom to 1:2" msgstr "TÄlummainÄ«t 1:2" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "_Zoom 2:1" msgstr "_TÄlummaiņa 2:1" -#: ../src/verbs.cpp:2842 +#: ../src/verbs.cpp:2811 msgid "Zoom to 2:1" msgstr "TÄlummainÄ«t 2:1" -#: ../src/verbs.cpp:2845 +#: ../src/verbs.cpp:2814 msgid "_Fullscreen" msgstr "_PilnekrÄna" -#: ../src/verbs.cpp:2845 ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2814 ../src/verbs.cpp:2816 msgid "Stretch this document window to full screen" msgstr "Izplest šī dokumenta logu pa visu ekrÄnu" -#: ../src/verbs.cpp:2847 +#: ../src/verbs.cpp:2816 msgid "Fullscreen & Focus Mode" msgstr "PilnekrÄna un fokusēšanas režīms" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Toggle _Focus Mode" msgstr "PÄrslÄ“gt fokusēšanas režīmu" -#: ../src/verbs.cpp:2850 +#: ../src/verbs.cpp:2819 msgid "Remove excess toolbars to focus on drawing" msgstr "AizvÄkt liekÄs rÄ«kjoslas, lai atbrÄ«votu lielÄku laukumu zÄ«mÄ“jumam" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Duplic_ate Window" msgstr "DublÄ“t logu" -#: ../src/verbs.cpp:2852 +#: ../src/verbs.cpp:2821 msgid "Open a new window with the same document" msgstr "AtvÄ“rt Å¡o paÅ¡u dokumentu jaunÄ logÄ" -#: ../src/verbs.cpp:2854 +#: ../src/verbs.cpp:2823 msgid "_New View Preview" msgstr "Jau_na skata priekÅ¡skatÄ«jums" -#: ../src/verbs.cpp:2855 +#: ../src/verbs.cpp:2824 msgid "New View Preview" msgstr "Jauna skata priekÅ¡skatÄ«jums" #. "view_new_preview" -#: ../src/verbs.cpp:2857 ../src/verbs.cpp:2865 +#: ../src/verbs.cpp:2826 ../src/verbs.cpp:2834 msgid "_Normal" msgstr "_NormÄls" -#: ../src/verbs.cpp:2858 +#: ../src/verbs.cpp:2827 msgid "Switch to normal display mode" msgstr "PÄrslÄ“gt uz normÄlu ekrÄna režīmu" -#: ../src/verbs.cpp:2859 +#: ../src/verbs.cpp:2828 msgid "No _Filters" msgstr "Nav _filtru" -#: ../src/verbs.cpp:2860 +#: ../src/verbs.cpp:2829 msgid "Switch to normal display without filters" msgstr "PÄrslÄ“gt uz normÄlu ekrÄnu bez filtriem" -#: ../src/verbs.cpp:2861 +#: ../src/verbs.cpp:2830 msgid "_Outline" msgstr "Ä€r_lÄ«nija" -#: ../src/verbs.cpp:2862 +#: ../src/verbs.cpp:2831 msgid "Switch to outline (wireframe) display mode" msgstr "PÄrslÄ“gt uz apriÅ¡u (karkasa) ekrÄna režīmu" #. 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 +#: ../src/verbs.cpp:2832 ../src/verbs.cpp:2840 msgid "_Toggle" msgstr "PÄrslÄ“g_t" -#: ../src/verbs.cpp:2864 +#: ../src/verbs.cpp:2833 msgid "Toggle between normal and outline display modes" msgstr "PÄrslÄ“gties starp parasto un apriÅ¡u ekrÄna režīmu" -#: ../src/verbs.cpp:2866 +#: ../src/verbs.cpp:2835 msgid "Switch to normal color display mode" msgstr "PÄrslÄ“gt uz normÄlu krÄsu ekrÄna režīmu" -#: ../src/verbs.cpp:2867 +#: ../src/verbs.cpp:2836 msgid "_Grayscale" msgstr "_PelÄ“ktoņu" -#: ../src/verbs.cpp:2868 +#: ../src/verbs.cpp:2837 msgid "Switch to grayscale display mode" msgstr "PÄrslÄ“gt uz pelÄ“ktoņu ekrÄna režīmu" -#: ../src/verbs.cpp:2872 +#: ../src/verbs.cpp:2841 msgid "Toggle between normal and grayscale color display modes" msgstr "PÄrslÄ“gt starp parasto un pelÄ“ktoņu ekrÄna režīmu" -#: ../src/verbs.cpp:2874 +#: ../src/verbs.cpp:2843 msgid "Color-managed view" msgstr "Skats ar krÄsu vadÄ«bu" -#: ../src/verbs.cpp:2875 +#: ../src/verbs.cpp:2844 msgid "Toggle color-managed display for this document window" msgstr "IeslÄ“gt ekrÄna krÄsu vadÄ«bu šī dokumenta logam" -#: ../src/verbs.cpp:2877 +#: ../src/verbs.cpp:2846 msgid "Ico_n Preview..." msgstr "Ikonu priekÅ¡skatÄ«jums..." -#: ../src/verbs.cpp:2878 +#: ../src/verbs.cpp:2847 msgid "Open a window to preview objects at different icon resolutions" msgstr "Atveriet logu, lai priekÅ¡skatÄ«tu objektus atšķirÄ«gÄ ikonu izšķirtspÄ“jÄ" -#: ../src/verbs.cpp:2880 +#: ../src/verbs.cpp:2849 msgid "Zoom to fit page in window" msgstr "TÄlummainÄ«t, lai IetilpinÄt lapu logÄ" -#: ../src/verbs.cpp:2881 +#: ../src/verbs.cpp:2850 msgid "Page _Width" msgstr "Lapas _platums" -#: ../src/verbs.cpp:2882 +#: ../src/verbs.cpp:2851 msgid "Zoom to fit page width in window" msgstr "TÄlummainÄ«t, lai ietilpinÄtu lapu logÄ tÄs pilnÄ platumÄ." -#: ../src/verbs.cpp:2884 +#: ../src/verbs.cpp:2853 msgid "Zoom to fit drawing in window" msgstr "TÄlummainÄ«t, lai IetilpinÄtu zÄ«mÄ“jumu logÄ" -#: ../src/verbs.cpp:2886 +#: ../src/verbs.cpp:2855 msgid "Zoom to fit selection in window" msgstr "TÄlummainÄ«t, lai ietilpinÄtu atlasÄ«to logÄ" #. Dialogs -#: ../src/verbs.cpp:2889 +#: ../src/verbs.cpp:2858 msgid "P_references..." msgstr "IestatÄ«jumi..." -#: ../src/verbs.cpp:2890 +#: ../src/verbs.cpp:2859 msgid "Edit global Inkscape preferences" msgstr "Labot globÄlos Inkscape iestatÄ«jumus" -#: ../src/verbs.cpp:2891 +#: ../src/verbs.cpp:2860 msgid "_Document Properties..." msgstr "_Dokumenta Ä«pašības..." -#: ../src/verbs.cpp:2892 +#: ../src/verbs.cpp:2861 msgid "Edit properties of this document (to be saved with the document)" msgstr "Labot šī dokumenta Ä«pašības (tiks saglabÄtas kopÄ ar dokumentu)" -#: ../src/verbs.cpp:2893 +#: ../src/verbs.cpp:2862 msgid "Document _Metadata..." msgstr "Dokumenta _metadati..." -#: ../src/verbs.cpp:2894 +#: ../src/verbs.cpp:2863 msgid "Edit document metadata (to be saved with the document)" msgstr "Labot šī dokumenta matadatus (tiks saglabÄti kopÄ ar dokumentu)" -#: ../src/verbs.cpp:2896 +#: ../src/verbs.cpp:2865 msgid "Edit objects' colors, gradients, arrowheads, and other fill and stroke properties..." msgstr "Labojiet objekta krÄsas, krÄsu pÄrejas, bultu galus un citas aizpildÄ«juma un apmales Ä«pašības..." #. FIXME: Probably better to either use something from the icon naming spec or ship our own "select-font" icon -#: ../src/verbs.cpp:2898 +#: ../src/verbs.cpp:2867 msgid "Gl_yphs..." msgstr "Glifi..." -#: ../src/verbs.cpp:2899 +#: ../src/verbs.cpp:2868 msgid "Select characters from a glyphs palette" msgstr "IzvÄ“lieties simbolus no glifu paletes" #. 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 +#: ../src/verbs.cpp:2871 msgid "S_watches..." msgstr "KrÄsu paraugi..." -#: ../src/verbs.cpp:2903 +#: ../src/verbs.cpp:2872 msgid "Select colors from a swatches palette" msgstr "IzvÄ“lieties krÄsas no krÄsu paraugu paletes" -#: ../src/verbs.cpp:2904 +#: ../src/verbs.cpp:2873 msgid "S_ymbols..." msgstr "S_imboli..." -#: ../src/verbs.cpp:2905 +#: ../src/verbs.cpp:2874 msgid "Select symbol from a symbols palette" msgstr "IzvÄ“lieties simbolu no simbolu paletes" -#: ../src/verbs.cpp:2906 +#: ../src/verbs.cpp:2875 msgid "Transfor_m..." msgstr "PÄrveidot..." -#: ../src/verbs.cpp:2907 +#: ../src/verbs.cpp:2876 msgid "Precisely control objects' transformations" msgstr "PrecÄ«zi kontrolÄ“t objekta pÄrveidojumus" -#: ../src/verbs.cpp:2908 +#: ../src/verbs.cpp:2877 msgid "_Align and Distribute..." msgstr "LÄ«_dzinÄt un izkliedÄ“t..." -#: ../src/verbs.cpp:2909 +#: ../src/verbs.cpp:2878 msgid "Align and distribute objects" msgstr "LÄ«dzinÄt un izkliedÄ“t objektus" -#: ../src/verbs.cpp:2910 +#: ../src/verbs.cpp:2879 msgid "_Spray options..." msgstr "_SmidzinÄÅ¡anas papildiespÄ“jas..." -#: ../src/verbs.cpp:2911 +#: ../src/verbs.cpp:2880 msgid "Some options for the spray" msgstr "Dažas smidzinÄÅ¡anas papildiespÄ“jas" -#: ../src/verbs.cpp:2912 +#: ../src/verbs.cpp:2881 msgid "Undo _History..." msgstr "Atsaukumu _vÄ“sture..." -#: ../src/verbs.cpp:2913 +#: ../src/verbs.cpp:2882 msgid "Undo History" msgstr "Atsaukumu vÄ“sture" -#: ../src/verbs.cpp:2915 +#: ../src/verbs.cpp:2884 msgid "View and select font family, font size and other text properties" msgstr "AplÅ«kojiet un izvÄ“lieties fontu saimi, fonta izmÄ“ru un citas teksta Ä«pašības" -#: ../src/verbs.cpp:2916 +#: ../src/verbs.cpp:2885 msgid "_XML Editor..." msgstr "XML redaktors..." -#: ../src/verbs.cpp:2917 +#: ../src/verbs.cpp:2886 msgid "View and edit the XML tree of the document" msgstr "AplÅ«kot un labot dokumenta XML koku" -#: ../src/verbs.cpp:2918 +#: ../src/verbs.cpp:2887 msgid "_Find/Replace..." msgstr "_MeklÄ“t/aizvietot..." -#: ../src/verbs.cpp:2919 +#: ../src/verbs.cpp:2888 msgid "Find objects in document" msgstr "MeklÄ“t objektus dokumentÄ " -#: ../src/verbs.cpp:2920 +#: ../src/verbs.cpp:2889 msgid "Find and _Replace Text..." msgstr "MeklÄ“t un aizvietot tekstu..." -#: ../src/verbs.cpp:2921 +#: ../src/verbs.cpp:2890 msgid "Find and replace text in document" msgstr "MeklÄ“t un aizvietot tekstu" -#: ../src/verbs.cpp:2923 +#: ../src/verbs.cpp:2892 msgid "Check spelling of text in document" msgstr "PÄrbaudÄ«t teksta pareizrakstÄ«bu dokumentÄ" -#: ../src/verbs.cpp:2924 +#: ../src/verbs.cpp:2893 msgid "_Messages..." msgstr "_VÄ“stules..." -#: ../src/verbs.cpp:2925 +#: ../src/verbs.cpp:2894 msgid "View debug messages" msgstr "SkatÄ«t atkļūdoÅ¡anas paziņojumus" -#: ../src/verbs.cpp:2926 +#: ../src/verbs.cpp:2895 msgid "Show/Hide D_ialogs" msgstr "RÄdÄ«t/slÄ“pt dialogus" -#: ../src/verbs.cpp:2927 +#: ../src/verbs.cpp:2896 msgid "Show or hide all open dialogs" msgstr "RÄdÄ«t vai paslÄ“pt visus atvÄ“rtos dialogus" -#: ../src/verbs.cpp:2928 +#: ../src/verbs.cpp:2897 msgid "Create Tiled Clones..." msgstr "Izveidot klonu rakstu..." -#: ../src/verbs.cpp:2929 +#: ../src/verbs.cpp:2898 msgid "Create multiple clones of selected object, arranging them into a pattern or scattering" msgstr "Izveidot vairÄkus objekta klonus, izkÄrtojot tos rakstÄ (faktÅ«rÄ) vai izkliedÄ“jot" -#: ../src/verbs.cpp:2930 +#: ../src/verbs.cpp:2899 msgid "_Object attributes..." msgstr "_Objekta atribÅ«ti..." -#: ../src/verbs.cpp:2931 +#: ../src/verbs.cpp:2900 msgid "Edit the object attributes..." msgstr "Labot objekta atribÅ«tus..." -#: ../src/verbs.cpp:2933 +#: ../src/verbs.cpp:2902 msgid "Edit the ID, locked and visible status, and other object properties" msgstr "Labojiet ID, slÄ“gÅ¡anas un redzamÄ«bas stÄvokli un citas objekta Ä«pašības" -#: ../src/verbs.cpp:2934 +#: ../src/verbs.cpp:2903 msgid "_Input Devices..." msgstr "_IevadierÄ«ces..." -#: ../src/verbs.cpp:2935 +#: ../src/verbs.cpp:2904 msgid "Configure extended input devices, such as a graphics tablet" msgstr "KonfigurÄ“jiet paplaÅ¡inÄto iespÄ“ju ievades ierÄ«ces, piem. grafiskÄs planÅ¡etes" -#: ../src/verbs.cpp:2936 +#: ../src/verbs.cpp:2905 msgid "_Extensions..." msgstr "_PaplaÅ¡inÄjumi..." -#: ../src/verbs.cpp:2937 +#: ../src/verbs.cpp:2906 msgid "Query information about extensions" msgstr "VaicÄjuma informÄcija par paplaÅ¡inÄjumiem" -#: ../src/verbs.cpp:2938 +#: ../src/verbs.cpp:2907 msgid "Layer_s..." msgstr "_SlÄņi..." -#: ../src/verbs.cpp:2939 +#: ../src/verbs.cpp:2908 msgid "View Layers" msgstr "SkatÄ«t slÄņus" -#: ../src/verbs.cpp:2940 +#: ../src/verbs.cpp:2909 msgid "Object_s..." msgstr "_Objekti..." -#: ../src/verbs.cpp:2941 +#: ../src/verbs.cpp:2910 msgid "View Objects" msgstr "SkatÄ«t objektus" -#: ../src/verbs.cpp:2942 +#: ../src/verbs.cpp:2911 #, fuzzy msgid "Selection se_ts..." msgstr "Ts" -#: ../src/verbs.cpp:2943 +#: ../src/verbs.cpp:2912 msgid "View Tags" msgstr "SkatÄ«t birkas" -#: ../src/verbs.cpp:2944 +#: ../src/verbs.cpp:2913 msgid "Path E_ffects ..." msgstr "Ceļa e_fekti..." -#: ../src/verbs.cpp:2945 +#: ../src/verbs.cpp:2914 msgid "Manage, edit, and apply path effects" msgstr "VadÄ«t, labot un pielietot ceļa efektus" -#: ../src/verbs.cpp:2946 +#: ../src/verbs.cpp:2915 msgid "Filter _Editor..." msgstr "Filtru r_edaktors" -#: ../src/verbs.cpp:2947 +#: ../src/verbs.cpp:2916 msgid "Manage, edit, and apply SVG filters" msgstr "VadÄ«t, labot un pielietot SVG filtrus" -#: ../src/verbs.cpp:2948 +#: ../src/verbs.cpp:2917 msgid "SVG Font Editor..." msgstr "SVG fontu redaktors" -#: ../src/verbs.cpp:2949 +#: ../src/verbs.cpp:2918 msgid "Edit SVG fonts" msgstr "Labot SVG fontus" -#: ../src/verbs.cpp:2950 +#: ../src/verbs.cpp:2919 msgid "Print Colors..." msgstr "DrukÄt krÄsas..." -#: ../src/verbs.cpp:2951 +#: ../src/verbs.cpp:2920 msgid "Select which color separations to render in Print Colors Preview rendermode" msgstr "IzvÄ“lieties, kuru krÄsu dalÄ«jumus renderÄ“t KrÄsu drukas priekÅ¡skatÄ«juma renderēšanas režīmÄ" -#: ../src/verbs.cpp:2952 +#: ../src/verbs.cpp:2921 msgid "_Export PNG Image..." msgstr "_EksportÄ“t PNG attÄ“lu..." -#: ../src/verbs.cpp:2953 +#: ../src/verbs.cpp:2922 msgid "Export this document or a selection as a PNG image" msgstr "EksportÄ“t Å¡o dokumentu vai atlasÄ«to kÄ PNG attÄ“lu" #. Help -#: ../src/verbs.cpp:2955 +#: ../src/verbs.cpp:2924 msgid "About E_xtensions" msgstr "Par _paplaÅ¡inÄjumiem" -#: ../src/verbs.cpp:2956 +#: ../src/verbs.cpp:2925 msgid "Information on Inkscape extensions" msgstr "InformÄcija par Inkscape paplaÅ¡inÄjumiem" -#: ../src/verbs.cpp:2957 +#: ../src/verbs.cpp:2926 msgid "About _Memory" msgstr "Par at_miņu" -#: ../src/verbs.cpp:2958 +#: ../src/verbs.cpp:2927 msgid "Memory usage information" msgstr "Atmiņas izmantoÅ¡anas informÄcija" -#: ../src/verbs.cpp:2959 +#: ../src/verbs.cpp:2928 msgid "_About Inkscape" msgstr "P_ar Inkscape" -#: ../src/verbs.cpp:2960 +#: ../src/verbs.cpp:2929 msgid "Inkscape version, authors, license" msgstr "Inkscape versija, autori, licence" #. new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), #. N_("Distribution terms"), /*"show_license"*/"inkscape_options"), #. Tutorials -#: ../src/verbs.cpp:2965 +#: ../src/verbs.cpp:2934 msgid "Inkscape: _Basic" msgstr "Inkscape: pamati" -#: ../src/verbs.cpp:2966 +#: ../src/verbs.cpp:2935 msgid "Getting started with Inkscape" msgstr "SÄkt darbu ar Inkscape" #. "tutorial_basic" -#: ../src/verbs.cpp:2967 +#: ../src/verbs.cpp:2936 msgid "Inkscape: _Shapes" msgstr "Inkscape: figÅ«ra_s" -#: ../src/verbs.cpp:2968 +#: ../src/verbs.cpp:2937 msgid "Using shape tools to create and edit shapes" msgstr "FigÅ«ru rÄ«ku izmantoÅ¡ana figÅ«ru izveidoÅ¡anai un laboÅ¡anai" -#: ../src/verbs.cpp:2969 +#: ../src/verbs.cpp:2938 msgid "Inkscape: _Advanced" msgstr "Inkscape: PadziļinÄti" -#: ../src/verbs.cpp:2970 +#: ../src/verbs.cpp:2939 msgid "Advanced Inkscape topics" msgstr "PadziļinÄtie Inkscape temati" #. "tutorial_advanced" #. TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) -#: ../src/verbs.cpp:2972 +#: ../src/verbs.cpp:2941 msgid "Inkscape: T_racing" msgstr "Inkscape: vekto_rizēšana" -#: ../src/verbs.cpp:2973 +#: ../src/verbs.cpp:2942 msgid "Using bitmap tracing" msgstr "Izmanto bitkartes vektorizēšanu" #. "tutorial_tracing" -#: ../src/verbs.cpp:2974 +#: ../src/verbs.cpp:2943 msgid "Inkscape: Tracing Pixel Art" msgstr "Inkscape: punktu attÄ“la vektorizēšana" -#: ../src/verbs.cpp:2975 +#: ../src/verbs.cpp:2944 msgid "Using Trace Pixel Art dialog" msgstr "Punktu attÄ“la dialoglodziņa lietoÅ¡ana" -#: ../src/verbs.cpp:2976 +#: ../src/verbs.cpp:2945 msgid "Inkscape: _Calligraphy" msgstr "Inkscape: kaligrÄfija" -#: ../src/verbs.cpp:2977 +#: ../src/verbs.cpp:2946 msgid "Using the Calligraphy pen tool" msgstr "KaligrÄfiskÄs spalvas lietoÅ¡ana" -#: ../src/verbs.cpp:2978 +#: ../src/verbs.cpp:2947 msgid "Inkscape: _Interpolate" msgstr "Inkscape: _interpolÄ“t" -#: ../src/verbs.cpp:2979 +#: ../src/verbs.cpp:2948 msgid "Using the interpolate extension" msgstr "Izmanto interpolÄcijas paplaÅ¡inÄjumu" #. "tutorial_interpolate" -#: ../src/verbs.cpp:2980 +#: ../src/verbs.cpp:2949 msgid "_Elements of Design" msgstr "Dizaina _elementi" -#: ../src/verbs.cpp:2981 +#: ../src/verbs.cpp:2950 msgid "Principles of design in the tutorial form" msgstr "Dizaina principi mÄcÄ«bu materiÄlu formÄ" #. "tutorial_design" -#: ../src/verbs.cpp:2982 +#: ../src/verbs.cpp:2951 msgid "_Tips and Tricks" msgstr "Padomi un vil_tÄ«bas" -#: ../src/verbs.cpp:2983 +#: ../src/verbs.cpp:2952 msgid "Miscellaneous tips and tricks" msgstr "DažÄdi padomi un triki" #. "tutorial_tips" #. Effect -- renamed Extension -#: ../src/verbs.cpp:2986 +#: ../src/verbs.cpp:2955 msgid "Previous Exte_nsion" msgstr "Iepriekšējais paplaÅ¡i_nÄjums" -#: ../src/verbs.cpp:2987 +#: ../src/verbs.cpp:2956 msgid "Repeat the last extension with the same settings" msgstr "AtkÄrtot pÄ“dÄ“jo paplaÅ¡inÄjumu ar tiem paÅ¡iem iestatÄ«jumiem" -#: ../src/verbs.cpp:2988 +#: ../src/verbs.cpp:2957 msgid "_Previous Extension Settings..." msgstr "Ie_priekšējÄ paplaÅ¡inÄjuma iestatÄ«jumi" -#: ../src/verbs.cpp:2989 +#: ../src/verbs.cpp:2958 msgid "Repeat the last extension with new settings" msgstr "AtkÄrtot pÄ“dÄ“jo paplaÅ¡inÄjumu ar jaunajiem iestatÄ«jumiem" -#: ../src/verbs.cpp:2993 +#: ../src/verbs.cpp:2962 msgid "Fit the page to the current selection" msgstr "PielÄgot lapu paÅ¡reiz atlasÄ«tajam" -#: ../src/verbs.cpp:2995 +#: ../src/verbs.cpp:2964 msgid "Fit the page to the drawing" msgstr "PielÄgot lapu zÄ«mÄ“jumam" -#: ../src/verbs.cpp:2997 +#: ../src/verbs.cpp:2966 msgid "Fit the page to the current selection or the drawing if there is no selection" msgstr "PielÄgot lapu iezÄ«mÄ“tajam apgabalam vai zÄ«mÄ“jumam, ja nekas nav iezÄ«mÄ“ts" #. LockAndHide -#: ../src/verbs.cpp:2999 +#: ../src/verbs.cpp:2968 msgid "Unlock All" msgstr "AtslÄ“gt visus" -#: ../src/verbs.cpp:3001 +#: ../src/verbs.cpp:2970 msgid "Unlock All in All Layers" msgstr "AtslÄ“gt visus visos slÄņos" -#: ../src/verbs.cpp:3003 +#: ../src/verbs.cpp:2972 msgid "Unhide All" msgstr "RÄdÄ«t visus" -#: ../src/verbs.cpp:3005 +#: ../src/verbs.cpp:2974 msgid "Unhide All in All Layers" msgstr "RÄdÄ«t visus visos slÄņos" -#: ../src/verbs.cpp:3009 +#: ../src/verbs.cpp:2978 msgid "Link an ICC color profile" msgstr "PiesaistÄ«t ICC krÄsu profilu" -#: ../src/verbs.cpp:3010 +#: ../src/verbs.cpp:2979 msgid "Remove Color Profile" msgstr "AizvÄkt krÄsu profilu" -#: ../src/verbs.cpp:3011 +#: ../src/verbs.cpp:2980 msgid "Remove a linked ICC color profile" msgstr "AizvÄkt piesaistÄ«to ICC krÄsu profilu" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add External Script" msgstr "Pievienot ÄrÄ“jo skriptu" -#: ../src/verbs.cpp:3014 +#: ../src/verbs.cpp:2983 msgid "Add an external script" msgstr "Pievienot ÄrÄ“ju skriptu" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add Embedded Script" msgstr "Pievienot iegulto skriptu" -#: ../src/verbs.cpp:3016 +#: ../src/verbs.cpp:2985 msgid "Add an embedded script" msgstr "Pievienot iegultu skriptu" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit Embedded Script" msgstr "Labot iegulto skriptu" -#: ../src/verbs.cpp:3018 +#: ../src/verbs.cpp:2987 msgid "Edit an embedded script" msgstr "Labot iegultu skriptu" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove External Script" msgstr "AizvÄkt ÄrÄ“jo skriptu" -#: ../src/verbs.cpp:3020 +#: ../src/verbs.cpp:2989 msgid "Remove an external script" msgstr "AizvÄkt ÄrÄ“ju skriptu" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove Embedded Script" msgstr "AizvÄkt iegulto skriptu" -#: ../src/verbs.cpp:3022 +#: ../src/verbs.cpp:2991 msgid "Remove an embedded script" msgstr "AizvÄkt iegultu skriptu" -#: ../src/verbs.cpp:3044 ../src/verbs.cpp:3045 +#: ../src/verbs.cpp:3013 ../src/verbs.cpp:3014 msgid "Center on horizontal and vertical axis" msgstr "CentrÄ“t uz horizontÄlÄs un vertikÄlÄs ass" -#: ../src/widgets/arc-toolbar.cpp:132 +#: ../src/widgets/arc-toolbar.cpp:129 msgid "Arc: Change start/end" msgstr "Loks: mainÄ«t sÄkumu/beigas" -#: ../src/widgets/arc-toolbar.cpp:198 +#: ../src/widgets/arc-toolbar.cpp:191 msgid "Arc: Change open/closed" msgstr "Loks: mainÄ«t uz atvÄ“rtu/slÄ“gtu" -#: ../src/widgets/arc-toolbar.cpp:289 ../src/widgets/arc-toolbar.cpp:319 ../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 +#: ../src/widgets/arc-toolbar.cpp:280 ../src/widgets/arc-toolbar.cpp:310 ../src/widgets/rect-toolbar.cpp:260 ../src/widgets/rect-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:210 ../src/widgets/spiral-toolbar.cpp:234 +#: ../src/widgets/star-toolbar.cpp:382 ../src/widgets/star-toolbar.cpp:444 msgid "New:" msgstr "Jauns:" #. 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: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 +#: ../src/widgets/arc-toolbar.cpp:283 ../src/widgets/arc-toolbar.cpp:294 ../src/widgets/rect-toolbar.cpp:268 ../src/widgets/rect-toolbar.cpp:286 ../src/widgets/spiral-toolbar.cpp:212 ../src/widgets/spiral-toolbar.cpp:223 +#: ../src/widgets/star-toolbar.cpp:384 msgid "Change:" msgstr "MainÄ«t:" -#: ../src/widgets/arc-toolbar.cpp:328 +#: ../src/widgets/arc-toolbar.cpp:319 msgid "Start:" msgstr "SÄkums:" -#: ../src/widgets/arc-toolbar.cpp:329 +#: ../src/widgets/arc-toolbar.cpp:320 msgid "The angle (in degrees) from the horizontal to the arc's start point" msgstr "Leņķis (grÄdos) no horizontÄles lÄ«dz loka sÄkumpunktam" -#: ../src/widgets/arc-toolbar.cpp:341 +#: ../src/widgets/arc-toolbar.cpp:332 msgid "End:" msgstr "Beigas:" -#: ../src/widgets/arc-toolbar.cpp:342 +#: ../src/widgets/arc-toolbar.cpp:333 msgid "The angle (in degrees) from the horizontal to the arc's end point" msgstr "Leņķis (grÄdos) no horizontÄles lÄ«dz loka sÄkumpunktam" -#: ../src/widgets/arc-toolbar.cpp:358 +#: ../src/widgets/arc-toolbar.cpp:349 msgid "Closed arc" msgstr "SlÄ“gts loks" -#: ../src/widgets/arc-toolbar.cpp:359 +#: ../src/widgets/arc-toolbar.cpp:350 msgid "Switch to segment (closed shape with two radii)" msgstr "PÄrslÄ“gt uz segmentu (slÄ“gta figÅ«ra ar diviem rÄdiusiem)" -#: ../src/widgets/arc-toolbar.cpp:365 +#: ../src/widgets/arc-toolbar.cpp:356 msgid "Open Arc" msgstr "Vaļējs loks" -#: ../src/widgets/arc-toolbar.cpp:366 +#: ../src/widgets/arc-toolbar.cpp:357 msgid "Switch to arc (unclosed shape)" msgstr "PÄrslÄ“gt uz loku (nenoslÄ“gta figÅ«ra)" -#: ../src/widgets/arc-toolbar.cpp:389 +#: ../src/widgets/arc-toolbar.cpp:380 msgid "Make whole" msgstr "Izveidot veselu" -#: ../src/widgets/arc-toolbar.cpp:390 +#: ../src/widgets/arc-toolbar.cpp:381 msgid "Make the shape a whole ellipse, not arc or segment" msgstr "Izveidot figÅ«ru kÄ pilnu elipsi. nevis loku vai segmentu" @@ -24711,87 +24764,87 @@ msgstr "Pievienot/labot profilu" msgid "Add or edit calligraphic profile" msgstr "Pievienot vai labot kaligrÄfisko profilu" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: orthogonal" msgstr "IestatÄ«t savienotÄja tipu: taisnleņķa" -#: ../src/widgets/connector-toolbar.cpp:120 +#: ../src/widgets/connector-toolbar.cpp:118 msgid "Set connector type: polyline" msgstr "IestatÄ«t savienotÄja tipu: daudzlÄ«niju" -#: ../src/widgets/connector-toolbar.cpp:169 +#: ../src/widgets/connector-toolbar.cpp:165 msgid "Change connector curvature" msgstr "MainÄ«t savienotÄja izliekumu" -#: ../src/widgets/connector-toolbar.cpp:220 +#: ../src/widgets/connector-toolbar.cpp:216 msgid "Change connector spacing" msgstr "MainÄ«t savienotÄja atstarpi" -#: ../src/widgets/connector-toolbar.cpp:313 +#: ../src/widgets/connector-toolbar.cpp:309 msgid "Avoid" msgstr "IzvairÄ«ties" -#: ../src/widgets/connector-toolbar.cpp:323 +#: ../src/widgets/connector-toolbar.cpp:319 msgid "Ignore" msgstr "IgnorÄ“t" -#: ../src/widgets/connector-toolbar.cpp:334 +#: ../src/widgets/connector-toolbar.cpp:330 msgid "Orthogonal" msgstr "OrtogonÄls" -#: ../src/widgets/connector-toolbar.cpp:335 +#: ../src/widgets/connector-toolbar.cpp:331 msgid "Make connector orthogonal or polyline" msgstr "IestatÄ«t noklusÄ“to savienotÄja tipu - taisnstÅ«ra vai daudzlÄ«niju" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Connector Curvature" msgstr "SavienotÄja izliekums" -#: ../src/widgets/connector-toolbar.cpp:349 +#: ../src/widgets/connector-toolbar.cpp:345 msgid "Curvature:" msgstr "Izliekums:" -#: ../src/widgets/connector-toolbar.cpp:350 +#: ../src/widgets/connector-toolbar.cpp:346 msgid "The amount of connectors curvature" msgstr "SavienotÄja izliekuma lielums" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Connector Spacing" msgstr "SavienotÄja atstarpe" -#: ../src/widgets/connector-toolbar.cpp:360 +#: ../src/widgets/connector-toolbar.cpp:356 msgid "Spacing:" msgstr "IntervÄls:" -#: ../src/widgets/connector-toolbar.cpp:361 +#: ../src/widgets/connector-toolbar.cpp:357 msgid "The amount of space left around objects by auto-routing connectors" msgstr "AtstÄjamÄ brÄ«vÄ vieta ap objektiem, izmantojot automÄtisko savienotÄju izvietoÅ¡anu" -#: ../src/widgets/connector-toolbar.cpp:372 +#: ../src/widgets/connector-toolbar.cpp:368 msgid "Graph" msgstr "Grafs" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Connector Length" msgstr "SavienotÄja garums" -#: ../src/widgets/connector-toolbar.cpp:382 +#: ../src/widgets/connector-toolbar.cpp:378 msgid "Length:" msgstr "Garums:" -#: ../src/widgets/connector-toolbar.cpp:383 +#: ../src/widgets/connector-toolbar.cpp:379 msgid "Ideal length for connectors when layout is applied" msgstr "IdeÄlais savienotÄju garums pÄ“c izkÄrtojuma pielietoÅ¡anas" -#: ../src/widgets/connector-toolbar.cpp:395 +#: ../src/widgets/connector-toolbar.cpp:391 msgid "Downwards" msgstr "Lejup" -#: ../src/widgets/connector-toolbar.cpp:396 +#: ../src/widgets/connector-toolbar.cpp:392 msgid "Make connectors with end-markers (arrows) point downwards" msgstr "Izveidot savienotÄjus ar galu marÄ·ieriem (bultiņÄm) vÄ“rstiem lejup" -#: ../src/widgets/connector-toolbar.cpp:412 +#: ../src/widgets/connector-toolbar.cpp:408 msgid "Do not allow overlapping shapes" msgstr "Nepieļaut figÅ«ru pÄrklÄÅ¡anos" @@ -24960,35 +25013,35 @@ msgstr "Izgriezt no objektiem" msgid "The width of the eraser pen (relative to the visible canvas area)" msgstr "Dzēšgumijas platums (attiecÄ«bÄ pret redzamo auduma laukumu)" -#: ../src/widgets/fill-style.cpp:360 +#: ../src/widgets/fill-style.cpp:356 msgid "Change fill rule" msgstr "Mainiet aizpildīšanas noteikumu" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set fill color" msgstr "IestatÄ«t aizpildÄ«juma krÄsu" -#: ../src/widgets/fill-style.cpp:445 ../src/widgets/fill-style.cpp:524 +#: ../src/widgets/fill-style.cpp:441 ../src/widgets/fill-style.cpp:520 msgid "Set stroke color" msgstr "IestatÄ«t apmales krÄsu" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on fill" msgstr "IestatÄ«t aizpildÄ«juma krÄsu pÄreju" -#: ../src/widgets/fill-style.cpp:622 +#: ../src/widgets/fill-style.cpp:618 msgid "Set gradient on stroke" msgstr "IestatÄ«t apmales krÄsu pÄreju" -#: ../src/widgets/fill-style.cpp:682 +#: ../src/widgets/fill-style.cpp:678 msgid "Set pattern on fill" msgstr "IestatÄ«t aizpildÄ«juma faktÅ«ru" -#: ../src/widgets/fill-style.cpp:683 +#: ../src/widgets/fill-style.cpp:679 msgid "Set pattern on stroke" msgstr "IestatÄ«t apmales faktÅ«ru" -#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:947 ../src/widgets/text-toolbar.cpp:1259 +#: ../src/widgets/font-selector.cpp:120 ../src/widgets/text-toolbar.cpp:953 ../src/widgets/text-toolbar.cpp:1265 msgid "Font size" msgstr "Fonta izmÄ“rs" @@ -25004,9 +25057,8 @@ msgid "Style" msgstr "Stils" #: ../src/widgets/font-selector.cpp:211 -#, fuzzy msgid "Face" -msgstr "Seja" +msgstr "Skaldne" #: ../src/widgets/font-selector.cpp:240 ../share/extensions/dots.inx.h:3 msgid "Font size:" @@ -25020,7 +25072,7 @@ msgstr "DublÄ“t Å¡o krÄsu pÄreju" msgid "Edit gradient" msgstr "Labot krÄsu pÄreju" -#: ../src/widgets/gradient-selector.cpp:281 ../src/widgets/paint-selector.cpp:236 +#: ../src/widgets/gradient-selector.cpp:281 ../src/widgets/paint-selector.cpp:233 msgid "Swatch" msgstr "Palete" @@ -25028,158 +25080,162 @@ msgstr "Palete" msgid "Rename gradient" msgstr "PÄrdÄ“vÄ“t krÄsu pÄreju" -#: ../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:157 ../src/widgets/gradient-toolbar.cpp:170 ../src/widgets/gradient-toolbar.cpp:761 ../src/widgets/gradient-toolbar.cpp:1100 msgid "No gradient" msgstr "Nav krÄsu pÄrejas" -#: ../src/widgets/gradient-toolbar.cpp:176 +#: ../src/widgets/gradient-toolbar.cpp:177 msgid "Multiple gradients" msgstr "VairÄkas krÄsu pÄrejas" -#: ../src/widgets/gradient-toolbar.cpp:678 +#: ../src/widgets/gradient-toolbar.cpp:681 msgid "Multiple stops" msgstr "VairÄkas pieturvietas" -#: ../src/widgets/gradient-toolbar.cpp:776 ../src/widgets/gradient-vector.cpp:609 +#: ../src/widgets/gradient-toolbar.cpp:779 ../src/widgets/gradient-vector.cpp:610 msgid "No stops in gradient" msgstr "KrÄsu pÄrejÄ nav pieturvietu" -#: ../src/widgets/gradient-toolbar.cpp:930 +#: ../src/widgets/gradient-toolbar.cpp:933 msgid "Assign gradient to object" msgstr "Piešķirt objektam krÄsu pÄreju" -#: ../src/widgets/gradient-toolbar.cpp:952 +#: ../src/widgets/gradient-toolbar.cpp:955 msgid "Set gradient repeat" msgstr "IestatÄ«t krÄsu pÄrejas atkÄrtojumu" -#: ../src/widgets/gradient-toolbar.cpp:990 ../src/widgets/gradient-vector.cpp:720 +#: ../src/widgets/gradient-toolbar.cpp:993 ../src/widgets/gradient-vector.cpp:721 msgid "Change gradient stop offset" msgstr "MainÄ«t krÄsu pÄrejas pieturpunkta nobÄ«di" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "linear" msgstr "lineÄrs" -#: ../src/widgets/gradient-toolbar.cpp:1037 +#: ../src/widgets/gradient-toolbar.cpp:1040 msgid "Create linear gradient" msgstr "Izveidot lineÄru krÄsu pÄreju" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 msgid "radial" msgstr "radiÄls" -#: ../src/widgets/gradient-toolbar.cpp:1041 +#: ../src/widgets/gradient-toolbar.cpp:1044 msgid "Create radial (elliptic or circular) gradient" msgstr "Izveidot radiÄlu (eliptisku vai riņķveida) krÄsu pÄreju" -#: ../src/widgets/gradient-toolbar.cpp:1044 ../src/widgets/mesh-toolbar.cpp:341 +#: ../src/widgets/gradient-toolbar.cpp:1047 ../src/widgets/mesh-toolbar.cpp:343 msgid "New:" msgstr "Jauns:" -#: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 ../src/widgets/mesh-toolbar.cpp:366 msgid "fill" msgstr "aizpildÄ«t" -#: ../src/widgets/gradient-toolbar.cpp:1067 ../src/widgets/mesh-toolbar.cpp:364 +#: ../src/widgets/gradient-toolbar.cpp:1070 ../src/widgets/mesh-toolbar.cpp:366 msgid "Create gradient in the fill" msgstr "Izveidot krÄsu pÄreju aizpildÄ«jumÄ" -#: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 ../src/widgets/mesh-toolbar.cpp:370 msgid "stroke" msgstr "apmale" -#: ../src/widgets/gradient-toolbar.cpp:1071 ../src/widgets/mesh-toolbar.cpp:368 +#: ../src/widgets/gradient-toolbar.cpp:1074 ../src/widgets/mesh-toolbar.cpp:370 msgid "Create gradient in the stroke" msgstr "Izveidot krÄsu pÄreju uz apmales" -#: ../src/widgets/gradient-toolbar.cpp:1074 ../src/widgets/mesh-toolbar.cpp:371 +#: ../src/widgets/gradient-toolbar.cpp:1077 ../src/widgets/mesh-toolbar.cpp:373 msgid "on:" msgstr "uz:" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Select" msgstr "AtlasÄ«t" -#: ../src/widgets/gradient-toolbar.cpp:1099 +#: ../src/widgets/gradient-toolbar.cpp:1102 msgid "Choose a gradient" msgstr "IzvÄ“lieties krÄsu pÄreju" -#: ../src/widgets/gradient-toolbar.cpp:1100 +#: ../src/widgets/gradient-toolbar.cpp:1103 msgid "Select:" msgstr "AtlasÄ«t:" -#: ../src/widgets/gradient-toolbar.cpp:1115 +#: ../src/widgets/gradient-toolbar.cpp:1118 msgctxt "Gradient repeat type" msgid "None" msgstr "Neviens" #: ../src/widgets/gradient-toolbar.cpp:1121 +msgid "Reflected" +msgstr "Atspoguļots" + +#: ../src/widgets/gradient-toolbar.cpp:1124 msgid "Direct" msgstr "TieÅ¡i" -#: ../src/widgets/gradient-toolbar.cpp:1123 +#: ../src/widgets/gradient-toolbar.cpp:1126 msgid "Repeat" msgstr "AtkÄrtot" #. 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:1128 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 "" "TurpinÄt aizpildÄ«jumu aiz krÄsu pÄrejas vektora galiem ar vienkÄrÅ¡u krÄsu (spreadMethod=\"pad\"), atkÄrtot krÄsu pÄreju tajÄ paÅ¡Ä virzienÄ (spreadMethod=\"repeat\"), vai atkÄrtot krÄsu pÄreju pretÄ“jÄ virzienÄ (spreadMethod=\"reflect\")" -#: ../src/widgets/gradient-toolbar.cpp:1130 +#: ../src/widgets/gradient-toolbar.cpp:1133 msgid "Repeat:" msgstr "AtkÄrtot:" -#: ../src/widgets/gradient-toolbar.cpp:1144 +#: ../src/widgets/gradient-toolbar.cpp:1147 msgid "No stops" msgstr "Nav pieturpunktu" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Stops" msgstr "atbalsta punkti" -#: ../src/widgets/gradient-toolbar.cpp:1146 +#: ../src/widgets/gradient-toolbar.cpp:1149 msgid "Select a stop for the current gradient" msgstr "Atlasiet paÅ¡reizÄ“jÄs krÄsu pÄrejas pieturpunktu" -#: ../src/widgets/gradient-toolbar.cpp:1147 +#: ../src/widgets/gradient-toolbar.cpp:1150 msgid "Stops:" msgstr "Atbalsta punkti:" #. Label -#: ../src/widgets/gradient-toolbar.cpp:1159 ../src/widgets/gradient-vector.cpp:906 +#: ../src/widgets/gradient-toolbar.cpp:1162 ../src/widgets/gradient-vector.cpp:907 msgctxt "Gradient" msgid "Offset:" msgstr "NobÄ«de:" -#: ../src/widgets/gradient-toolbar.cpp:1159 +#: ../src/widgets/gradient-toolbar.cpp:1162 msgid "Offset of selected stop" msgstr "AtlasÄ«tÄ pieturpunkta nobÄ«de" -#: ../src/widgets/gradient-toolbar.cpp:1177 ../src/widgets/gradient-toolbar.cpp:1178 +#: ../src/widgets/gradient-toolbar.cpp:1180 ../src/widgets/gradient-toolbar.cpp:1181 msgid "Insert new stop" msgstr "Ievietot jaunu pieturpunktu" -#: ../src/widgets/gradient-toolbar.cpp:1191 ../src/widgets/gradient-toolbar.cpp:1192 ../src/widgets/gradient-vector.cpp:888 +#: ../src/widgets/gradient-toolbar.cpp:1194 ../src/widgets/gradient-toolbar.cpp:1195 ../src/widgets/gradient-vector.cpp:889 msgid "Delete stop" msgstr "DzÄ“st pieturpunktu" -#: ../src/widgets/gradient-toolbar.cpp:1206 +#: ../src/widgets/gradient-toolbar.cpp:1209 msgid "Reverse the direction of the gradient" msgstr "Pagriezt krÄsu pÄrejas virzienu uz pretÄ“jo pusi" -#: ../src/widgets/gradient-toolbar.cpp:1220 +#: ../src/widgets/gradient-toolbar.cpp:1223 msgid "Link gradients" msgstr "SaistÄ«t krÄsu pÄrejas" -#: ../src/widgets/gradient-toolbar.cpp:1221 +#: ../src/widgets/gradient-toolbar.cpp:1224 msgid "Link gradients to change all related gradients" msgstr "SasaistÄ«t krÄsu pÄrejas, lai mainÄ«tu visas saistÄ«tÄs krÄsu pÄrejas" -#: ../src/widgets/gradient-vector.cpp:312 ../src/widgets/paint-selector.cpp:947 ../src/widgets/stroke-marker-selector.cpp:154 +#: ../src/widgets/gradient-vector.cpp:312 ../src/widgets/paint-selector.cpp:957 ../src/widgets/stroke-marker-selector.cpp:154 msgid "No document selected" msgstr "Nav izvÄ“lÄ“ts neviens dokuments" @@ -25192,28 +25248,28 @@ msgid "No gradient selected" msgstr "Nav atlasÄ«tu krÄsu pÄreju" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:883 +#: ../src/widgets/gradient-vector.cpp:884 msgid "Add stop" msgstr "Pievienot pieturpunktu" -#: ../src/widgets/gradient-vector.cpp:886 +#: ../src/widgets/gradient-vector.cpp:887 msgid "Add another control stop to gradient" msgstr "Pievienot vÄ“l vienu krÄsu pÄrejas pieturpunktu" -#: ../src/widgets/gradient-vector.cpp:891 +#: ../src/widgets/gradient-vector.cpp:892 msgid "Delete current control stop from gradient" msgstr "DzÄ“st paÅ¡reizÄ“jo krÄsu pÄrejas pieturpunktu" #. TRANSLATORS: "Stop" means: a "phase" of a gradient -#: ../src/widgets/gradient-vector.cpp:959 +#: ../src/widgets/gradient-vector.cpp:960 msgid "Stop Color" msgstr "Pieturpunkta krÄsa" -#: ../src/widgets/gradient-vector.cpp:987 +#: ../src/widgets/gradient-vector.cpp:988 msgid "Gradient editor" msgstr "KrÄsu pÄreju redaktors" -#: ../src/widgets/gradient-vector.cpp:1324 +#: ../src/widgets/gradient-vector.cpp:1325 msgid "Change gradient stop color" msgstr "MainÄ«t krÄsu pÄrejas pieturpunkta krÄsu" @@ -25270,7 +25326,7 @@ msgid "Display measuring info for selected items" msgstr "RÄdÄ«t atlasÄ«to objektu mÄ“rÄ«jumu informÄciju" #. 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:378 ../src/widgets/select-toolbar.cpp:538 +#: ../src/widgets/lpe-toolbar.cpp:387 ../src/widgets/node-toolbar.cpp:613 ../src/widgets/paintbucket-toolbar.cpp:167 ../src/widgets/rect-toolbar.cpp:378 ../src/widgets/select-toolbar.cpp:538 msgid "Units" msgstr "MÄ“rvienÄ«bas" @@ -25282,7 +25338,7 @@ msgstr "AtvÄ“rt LPE dialoglodziņu" msgid "Open LPE dialog (to adapt parameters numerically)" msgstr "AtvÄ“rt LPE dialoglodziņu (lai pieskaņotu parametrus skaitliski)" -#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1262 +#: ../src/widgets/measure-toolbar.cpp:86 ../src/widgets/text-toolbar.cpp:1268 msgid "Font Size" msgstr "Fonta izmÄ“rs" @@ -25298,96 +25354,97 @@ msgstr "IzmÄ“ru iezÄ«mÄ“s izmantojamÄ fonta lielums" msgid "The units to be used for the measurements" msgstr "MÄ“rīšanai izmantojamÄs mÄ“rvienÄ«bas" -#: ../src/widgets/mesh-toolbar.cpp:311 +#: ../src/widgets/mesh-toolbar.cpp:313 +#, fuzzy msgid "Set mesh type" -msgstr "" +msgstr "IestatÄ«t teksta stilu" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "normal" msgstr "normÄls" -#: ../src/widgets/mesh-toolbar.cpp:334 +#: ../src/widgets/mesh-toolbar.cpp:336 msgid "Create mesh gradient" msgstr "Izveidot tÄ«kla krÄsu pÄreju" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "conical" msgstr "konisks" -#: ../src/widgets/mesh-toolbar.cpp:338 +#: ../src/widgets/mesh-toolbar.cpp:340 msgid "Create conical gradient" msgstr "Izveidot konisku krÄsu pÄreju" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 msgid "Rows" msgstr "Rindas" -#: ../src/widgets/mesh-toolbar.cpp:393 ../share/extensions/guides_creator.inx.h:5 ../share/extensions/layout_nup.inx.h:12 +#: ../src/widgets/mesh-toolbar.cpp:395 ../share/extensions/guides_creator.inx.h:5 ../share/extensions/layout_nup.inx.h:12 msgid "Rows:" msgstr "Rindas:" -#: ../src/widgets/mesh-toolbar.cpp:393 +#: ../src/widgets/mesh-toolbar.cpp:395 msgid "Number of rows in new mesh" msgstr "Rindu skaits jaunajÄ tÄ«klÄ" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Columns" msgstr "Slejas" -#: ../src/widgets/mesh-toolbar.cpp:409 ../share/extensions/guides_creator.inx.h:4 +#: ../src/widgets/mesh-toolbar.cpp:411 ../share/extensions/guides_creator.inx.h:4 msgid "Columns:" msgstr "Slejas:" -#: ../src/widgets/mesh-toolbar.cpp:409 +#: ../src/widgets/mesh-toolbar.cpp:411 msgid "Number of columns in new mesh" msgstr "Sleju skaits jaunajÄ tÄ«klÄ" -#: ../src/widgets/mesh-toolbar.cpp:423 +#: ../src/widgets/mesh-toolbar.cpp:425 msgid "Edit Fill" msgstr "Labot aizpildÄ«jumu" -#: ../src/widgets/mesh-toolbar.cpp:424 +#: ../src/widgets/mesh-toolbar.cpp:426 msgid "Edit fill mesh" msgstr "Labot aizpildÄ«juma tÄ«klu" -#: ../src/widgets/mesh-toolbar.cpp:435 +#: ../src/widgets/mesh-toolbar.cpp:437 msgid "Edit Stroke" msgstr "Labot apmali" -#: ../src/widgets/mesh-toolbar.cpp:436 +#: ../src/widgets/mesh-toolbar.cpp:438 msgid "Edit stroke mesh" msgstr "Labot apmales tÄ«klu" -#: ../src/widgets/mesh-toolbar.cpp:447 ../src/widgets/node-toolbar.cpp:521 +#: ../src/widgets/mesh-toolbar.cpp:449 ../src/widgets/node-toolbar.cpp:521 msgid "Show Handles" msgstr "RÄdÄ«t turus" -#: ../src/widgets/mesh-toolbar.cpp:448 +#: ../src/widgets/mesh-toolbar.cpp:450 msgid "Show side and tensor handles" msgstr "RÄdÄ«t malas un tenzora turus" -#: ../src/widgets/mesh-toolbar.cpp:463 +#: ../src/widgets/mesh-toolbar.cpp:465 msgid "WARNING: Mesh SVG Syntax Subject to Change" -msgstr "" +msgstr "WARNING: Mesh SVG sintakse tiks mainÄ«ta" -#: ../src/widgets/mesh-toolbar.cpp:473 +#: ../src/widgets/mesh-toolbar.cpp:475 msgctxt "Type" msgid "Coons" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:476 +#: ../src/widgets/mesh-toolbar.cpp:478 msgid "Bicubic" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:478 +#: ../src/widgets/mesh-toolbar.cpp:480 msgid "Coons" msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:479 +#: ../src/widgets/mesh-toolbar.cpp:481 msgid "Coons: no smoothing. Bicubic: smoothing across patch boundaries." msgstr "" -#: ../src/widgets/mesh-toolbar.cpp:481 ../src/widgets/pencil-toolbar.cpp:278 +#: ../src/widgets/mesh-toolbar.cpp:483 ../src/widgets/pencil-toolbar.cpp:278 msgid "Smoothing:" msgstr "NogludinÄÅ¡ana:" @@ -25583,126 +25640,126 @@ msgstr "Y koordinÄte:" msgid "Y coordinate of selected node(s)" msgstr "IzvÄ“lÄ“tÄ(-o) mezgla(-u) Y koordinÄte" -#: ../src/widgets/paint-selector.cpp:222 +#: ../src/widgets/paint-selector.cpp:219 msgid "No paint" msgstr "Nav krÄsas" -#: ../src/widgets/paint-selector.cpp:224 +#: ../src/widgets/paint-selector.cpp:221 msgid "Flat color" msgstr "Vienlaidu krÄsa" -#: ../src/widgets/paint-selector.cpp:226 +#: ../src/widgets/paint-selector.cpp:223 msgid "Linear gradient" msgstr "LineÄra krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:228 +#: ../src/widgets/paint-selector.cpp:225 msgid "Radial gradient" msgstr "RadiÄla krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:231 +#: ../src/widgets/paint-selector.cpp:228 msgid "Mesh gradient" msgstr "RežģtÄ«kla krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:238 +#: ../src/widgets/paint-selector.cpp:235 msgid "Unset paint (make it undefined so it can be inherited)" msgstr "AtiestatÄ«t krÄsu (iestatÄ«t to kÄ nenoteiktu, lai to bÅ«tu iespÄ“jams pÄrmantot)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:255 +#: ../src/widgets/paint-selector.cpp:252 msgid "Any path self-intersections or subpaths create holes in the fill (fill-rule: evenodd)" msgstr "Jebkura ceļa paÅ¡krustoÅ¡anÄs vai apakÅ¡ceļi radÄ«s caurumus aizpildÄ«jumÄ (fill-rule: evenodd)" #. TRANSLATORS: for info, see http://www.w3.org/TR/2000/CR-SVG-20000802/painting.html#FillRuleProperty -#: ../src/widgets/paint-selector.cpp:266 +#: ../src/widgets/paint-selector.cpp:263 msgid "Fill is solid unless a subpath is counterdirectional (fill-rule: nonzero)" msgstr "AizpildÄ«jums ir vienlaidu, ja vien apakÅ¡ceļa virziens nav pretÄ“js (fill-rule: nonzero)" -#: ../src/widgets/paint-selector.cpp:600 +#: ../src/widgets/paint-selector.cpp:597 msgid "No objects" msgstr "Nav objektu" -#: ../src/widgets/paint-selector.cpp:611 +#: ../src/widgets/paint-selector.cpp:608 msgid "Multiple styles" msgstr "VairÄki stili" -#: ../src/widgets/paint-selector.cpp:622 +#: ../src/widgets/paint-selector.cpp:619 msgid "Paint is undefined" msgstr "KrÄsa nav noteikta" -#: ../src/widgets/paint-selector.cpp:633 +#: ../src/widgets/paint-selector.cpp:630 msgid "No paint" msgstr "Nav krÄsas" -#: ../src/widgets/paint-selector.cpp:704 +#: ../src/widgets/paint-selector.cpp:714 msgid "Flat color" msgstr "Vienlaidu krÄsa" #. sp_gradient_selector_set_mode(SP_GRADIENT_SELECTOR(gsel), SP_GRADIENT_SELECTOR_MODE_LINEAR); -#: ../src/widgets/paint-selector.cpp:773 +#: ../src/widgets/paint-selector.cpp:783 msgid "Linear gradient" msgstr "LineÄra krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:776 +#: ../src/widgets/paint-selector.cpp:786 msgid "Radial gradient" msgstr "RadiÄla krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:781 +#: ../src/widgets/paint-selector.cpp:791 msgid "Mesh gradient" msgstr "RežģtÄ«kla krÄsu pÄreja" -#: ../src/widgets/paint-selector.cpp:1080 +#: ../src/widgets/paint-selector.cpp:1090 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 "Izmantojiet Mezglu rÄ«ks, lai pielÄgotu faktÅ«ras novietojumu, mÄ“rogu un pagriezienu uz audekla. Izmantojiet Objekts > FaktÅ«ra > Objektus par faktÅ«ru, lai no atlasÄ«tÄ izveidotu jaunu faktÅ«ru." -#: ../src/widgets/paint-selector.cpp:1093 +#: ../src/widgets/paint-selector.cpp:1103 msgid "Pattern fill" msgstr "AizpildÄ«jums ar faktÅ«ru" -#: ../src/widgets/paint-selector.cpp:1187 +#: ../src/widgets/paint-selector.cpp:1197 msgid "Swatch fill" msgstr "Paletes aizpildÄ«jums" -#: ../src/widgets/paintbucket-toolbar.cpp:135 +#: ../src/widgets/paintbucket-toolbar.cpp:134 msgid "Fill by" msgstr "AizpildÄ«t ar" -#: ../src/widgets/paintbucket-toolbar.cpp:136 +#: ../src/widgets/paintbucket-toolbar.cpp:135 msgid "Fill by:" msgstr "AizpildÄ«t ar:" -#: ../src/widgets/paintbucket-toolbar.cpp:148 +#: ../src/widgets/paintbucket-toolbar.cpp:147 msgid "Fill Threshold" msgstr "Aizpildīšanas slieksnis" -#: ../src/widgets/paintbucket-toolbar.cpp:149 +#: ../src/widgets/paintbucket-toolbar.cpp:148 msgid "The maximum allowed difference between the clicked pixel and the neighboring pixels to be counted in the fill" msgstr "MaksimÄlÄ pieļaujamÄ atšķirÄ«ba aizpildÄ«jumÄ starp izvÄ“lÄ“to pikseli un apkÄrtÄ“jiem pikseļiem" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by" msgstr "PalielinÄt/samazinÄt par" -#: ../src/widgets/paintbucket-toolbar.cpp:176 +#: ../src/widgets/paintbucket-toolbar.cpp:175 msgid "Grow/shrink by:" msgstr "PalielinÄt/samazinÄt par:" -#: ../src/widgets/paintbucket-toolbar.cpp:177 +#: ../src/widgets/paintbucket-toolbar.cpp:176 msgid "The amount to grow (positive) or shrink (negative) the created fill path" msgstr "IzveidotÄ aizpildÄ«juma ceļa paplaÅ¡inÄjums (pozitÄ«vs) vai saÅ¡aurinÄjums (negatÄ«vs)" -#: ../src/widgets/paintbucket-toolbar.cpp:202 +#: ../src/widgets/paintbucket-toolbar.cpp:199 msgid "Close gaps" msgstr "AizpildÄ«t spraugas" -#: ../src/widgets/paintbucket-toolbar.cpp:203 +#: ../src/widgets/paintbucket-toolbar.cpp:200 msgid "Close gaps:" msgstr "AizpildÄ«t spraugas:" -#: ../src/widgets/paintbucket-toolbar.cpp:214 ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:289 ../src/widgets/star-toolbar.cpp:566 +#: ../src/widgets/paintbucket-toolbar.cpp:211 ../src/widgets/pencil-toolbar.cpp:299 ../src/widgets/spiral-toolbar.cpp:285 ../src/widgets/star-toolbar.cpp:564 msgid "Defaults" msgstr "NoklusÄ“tie" -#: ../src/widgets/paintbucket-toolbar.cpp:215 +#: ../src/widgets/paintbucket-toolbar.cpp:212 msgid "Reset paint bucket parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "AtiestatÄ«t krÄsas spaiņa parametrus uz noklusÄ“tajiem (izmantojiet Inkscape IestatÄ«jumi > RÄ«ki, lai manÄ«tu noklusÄ“tÄs vÄ“rtÄ«bas)" @@ -25792,7 +25849,7 @@ msgstr "Cik liela nogludinÄÅ¡ana (vienkÄrÅ¡oÅ¡ana) tiek pielietota lÄ«nijai" msgid "Reset pencil parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "AtiestatÄ«t zÄ«muļa parametrus uz noklusÄ“tajiem (izmantojiet Inkscape IestatÄ«jumi > RÄ«ki, lai mainÄ«tu noklusÄ“tos)" -#: ../src/widgets/rect-toolbar.cpp:124 +#: ../src/widgets/rect-toolbar.cpp:125 msgid "Change rectangle" msgstr "Izveidot taisnstÅ«ri" @@ -26118,91 +26175,91 @@ msgstr "VÄ“rtÄ«ba" msgid "Type text in a text node" msgstr "Ierakstiet tekstu teksta mezglÄ" -#: ../src/widgets/spiral-toolbar.cpp:100 +#: ../src/widgets/spiral-toolbar.cpp:98 msgid "Change spiral" msgstr "MainÄ«t spirÄli" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "just a curve" msgstr "tikai lÄ«kne" -#: ../src/widgets/spiral-toolbar.cpp:246 +#: ../src/widgets/spiral-toolbar.cpp:242 msgid "one full revolution" msgstr "vienu pilnu apgriezienu" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of turns" msgstr "Pilnu apgriezienu skaits" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Turns:" msgstr "Apgriezieni:" -#: ../src/widgets/spiral-toolbar.cpp:249 +#: ../src/widgets/spiral-toolbar.cpp:245 msgid "Number of revolutions" msgstr "Apgriezienu skaits" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "circle" msgstr "riņķis" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is much denser" msgstr "malas ir daudz blÄ«vÄkas" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "edge is denser" msgstr "malas ir blÄ«vÄkas" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "even" msgstr "pÄra" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is denser" msgstr "centrs ir blÄ«vÄks" -#: ../src/widgets/spiral-toolbar.cpp:260 +#: ../src/widgets/spiral-toolbar.cpp:256 msgid "center is much denser" msgstr "centrs ir daudz blÄ«vÄks" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence" msgstr "Novirze" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "Divergence:" msgstr "Novirze:" -#: ../src/widgets/spiral-toolbar.cpp:263 +#: ../src/widgets/spiral-toolbar.cpp:259 msgid "How much denser/sparser are outer revolutions; 1 = uniform" msgstr "Cik blÄ«vÄki/retÄki ir ÄrÄ“jie vijumi; 1 - vienÄdi nemainÄ«gi" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts from center" msgstr "sÄkas no centra" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts mid-way" msgstr "sÄkas pusceļÄ" -#: ../src/widgets/spiral-toolbar.cpp:274 +#: ../src/widgets/spiral-toolbar.cpp:270 msgid "starts near edge" msgstr "sÄkas pie malas" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius" msgstr "Iekšējais rÄdiuss" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Inner radius:" msgstr "Iekšējais rÄdiuss:" -#: ../src/widgets/spiral-toolbar.cpp:277 +#: ../src/widgets/spiral-toolbar.cpp:273 msgid "Radius of the innermost revolution (relative to the spiral size)" msgstr "IekšējÄ vijuma rÄdiuss (attiecÄ«bÄ pret spirÄles izmÄ“ru)" -#: ../src/widgets/spiral-toolbar.cpp:290 ../src/widgets/star-toolbar.cpp:567 +#: ../src/widgets/spiral-toolbar.cpp:286 ../src/widgets/star-toolbar.cpp:565 msgid "Reset shape parameters to defaults (use Inkscape Preferences > Tools to change defaults)" msgstr "AtiestatÄ«t figÅ«ras parametrus uz noklusÄ“tajiem (izmantojiet Inkscape IestatÄ«jumi > RÄ«ki, lai mainÄ«tu noklusÄ“tos)" @@ -26359,149 +26416,149 @@ msgstr "Zvaigzne: manÄ«t noapaļojumu" msgid "Star: Change randomization" msgstr "Zvaigzne: manÄ«t dažÄdoÅ¡anu" -#: ../src/widgets/star-toolbar.cpp:465 +#: ../src/widgets/star-toolbar.cpp:463 msgid "Regular polygon (with one handle) instead of a star" msgstr "VienÄdmalu daudzstÅ«ris (ar vienu turi) zvaigznes vietÄ" -#: ../src/widgets/star-toolbar.cpp:472 +#: ../src/widgets/star-toolbar.cpp:470 msgid "Star instead of a regular polygon (with one handle)" msgstr "Zvaigzne regulÄra daudzstÅ«ra vietÄ (ar vienu turi)" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "triangle/tri-star" msgstr "trÄ«sstÅ«ra/trÄ«sstaru" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "square/quad-star" msgstr "ÄetrstÅ«ra/Äetrstaru" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "pentagon/five-pointed star" msgstr "piecstÅ«ris/piecu staru zvaigzne" -#: ../src/widgets/star-toolbar.cpp:493 +#: ../src/widgets/star-toolbar.cpp:491 msgid "hexagon/six-pointed star" msgstr "seÅ¡stÅ«ris/seÅ¡uu staru zvaigzne" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners" msgstr "StÅ«ri" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Corners:" msgstr "StÅ«ri:" -#: ../src/widgets/star-toolbar.cpp:496 +#: ../src/widgets/star-toolbar.cpp:494 msgid "Number of corners of a polygon or star" msgstr "DaudzstÅ«ra stÅ«ru vai zvaigznes staru skaits" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "thin-ray star" msgstr "zvaigzne ar tieviem stariem" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "pentagram" msgstr "pentagramma" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "hexagram" msgstr "heksagramma" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "heptagram" msgstr "heptagramma" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "octagram" msgstr "octagramma" -#: ../src/widgets/star-toolbar.cpp:509 +#: ../src/widgets/star-toolbar.cpp:507 msgid "regular polygon" msgstr "regulÄrs daudzstÅ«ris" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 msgid "Spoke ratio" msgstr "RÄdiusu attiecÄ«ba" -#: ../src/widgets/star-toolbar.cpp:512 +#: ../src/widgets/star-toolbar.cpp:510 msgid "Spoke ratio:" msgstr "RÄdiusu attiecÄ«ba:" #. 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 +#: ../src/widgets/star-toolbar.cpp:513 msgid "Base radius to tip radius ratio" msgstr "BÄzes un virsotnes rÄdiusu attiecÄ«ba" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "stretched" msgstr "izstiepts" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "twisted" msgstr "savÄ«ts" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly pinched" msgstr "viegli saknaibÄ«ts" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "NOT rounded" msgstr "Nenopaļoti" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "slightly rounded" msgstr "viegli noapaļoti" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "visibly rounded" msgstr "redzami noapaļoti" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "well rounded" msgstr "labi noapaļoti" -#: ../src/widgets/star-toolbar.cpp:533 +#: ../src/widgets/star-toolbar.cpp:531 msgid "amply rounded" msgstr "pilnÄ«gi noapaļoti" -#: ../src/widgets/star-toolbar.cpp:533 ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:531 ../src/widgets/star-toolbar.cpp:546 msgid "blown up" msgstr "uzpÅ«sts" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "Rounded:" msgstr "Noapaļots:" -#: ../src/widgets/star-toolbar.cpp:536 +#: ../src/widgets/star-toolbar.cpp:534 msgid "How much rounded are the corners (0 for sharp)" msgstr "Cik noapaļoti ir stÅ«ri (0 - asi)" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "NOT randomized" msgstr "Nav dažÄdots" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "slightly irregular" msgstr "viegli neregulÄrs" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "visibly randomized" msgstr "ievÄ“rojami dažÄdots" -#: ../src/widgets/star-toolbar.cpp:548 +#: ../src/widgets/star-toolbar.cpp:546 msgid "strongly randomized" msgstr "stipri dažÄdots" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized" msgstr "DažÄdots" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Randomized:" msgstr "DažÄdots:" -#: ../src/widgets/star-toolbar.cpp:551 +#: ../src/widgets/star-toolbar.cpp:549 msgid "Scatter randomly the corners and angles" msgstr "BrÄ«vi izkliedÄ“t stÅ«rus un leņķus" @@ -26597,7 +26654,7 @@ msgstr "Beigu marÄ·ieri tiek pievienoti ceļa vai figÅ«ras pÄ“dÄ“jam mezglam" msgid "Set markers" msgstr "IestatÄ«t marÄ·ierus" -#: ../src/widgets/stroke-style.cpp:1030 ../src/widgets/stroke-style.cpp:1114 +#: ../src/widgets/stroke-style.cpp:1029 ../src/widgets/stroke-style.cpp:1113 msgid "Set stroke style" msgstr "IestatÄ«t apmales stilu" @@ -26609,409 +26666,409 @@ msgstr "IestatÄ«t marÄ·iera krÄsu" msgid "Change swatch color" msgstr "Mainiet krÄsu paraugu krÄsu" -#: ../src/widgets/text-toolbar.cpp:169 +#: ../src/widgets/text-toolbar.cpp:173 msgid "Text: Change font family" msgstr "Teksts: mainÄ«t fonta saimi" -#: ../src/widgets/text-toolbar.cpp:233 +#: ../src/widgets/text-toolbar.cpp:239 msgid "Text: Change font size" msgstr "Teksts: mainÄ«t fonta izmÄ“ru" -#: ../src/widgets/text-toolbar.cpp:269 +#: ../src/widgets/text-toolbar.cpp:275 msgid "Text: Change font style" msgstr "Teksts: mainÄ«t fonta stilu" -#: ../src/widgets/text-toolbar.cpp:347 +#: ../src/widgets/text-toolbar.cpp:353 msgid "Text: Change superscript or subscript" msgstr "Teksts: mainÄ«t uz augÅ¡rakstu vai apakÅ¡rakstu" -#: ../src/widgets/text-toolbar.cpp:489 +#: ../src/widgets/text-toolbar.cpp:496 msgid "Text: Change alignment" msgstr "Teksts: mainÄ«t lÄ«dzinÄÅ¡anu" -#: ../src/widgets/text-toolbar.cpp:532 +#: ../src/widgets/text-toolbar.cpp:539 msgid "Text: Change line-height" msgstr "Teksts: mainÄ«t rindas augstumu" -#: ../src/widgets/text-toolbar.cpp:580 +#: ../src/widgets/text-toolbar.cpp:587 msgid "Text: Change word-spacing" msgstr "Teksts: mainÄ«t attÄlumu starp vÄrdiem" -#: ../src/widgets/text-toolbar.cpp:620 +#: ../src/widgets/text-toolbar.cpp:627 msgid "Text: Change letter-spacing" msgstr "Teksts: mainÄ«t attÄlumu starp burtiem" -#: ../src/widgets/text-toolbar.cpp:658 +#: ../src/widgets/text-toolbar.cpp:665 msgid "Text: Change dx (kern)" msgstr "Teksts: mainÄ«t dx (rakstsavirzi)" -#: ../src/widgets/text-toolbar.cpp:692 +#: ../src/widgets/text-toolbar.cpp:699 msgid "Text: Change dy" msgstr "Teksts: mainÄ«t dy" -#: ../src/widgets/text-toolbar.cpp:727 +#: ../src/widgets/text-toolbar.cpp:734 msgid "Text: Change rotate" msgstr "Teksts: mainÄ«t pagriezienu" -#: ../src/widgets/text-toolbar.cpp:774 +#: ../src/widgets/text-toolbar.cpp:781 msgid "Text: Change orientation" msgstr "Teksts: mainÄ«t orientÄciju" -#: ../src/widgets/text-toolbar.cpp:1210 +#: ../src/widgets/text-toolbar.cpp:1216 msgid "Font Family" msgstr "Fonta saime" -#: ../src/widgets/text-toolbar.cpp:1211 +#: ../src/widgets/text-toolbar.cpp:1217 msgid "Select Font Family (Alt-X to access)" msgstr "IzvÄ“lieties fontu Ä£imeni (saÄ«sne - Alt-X)" #. Focus widget #. Enable entry completion -#: ../src/widgets/text-toolbar.cpp:1221 +#: ../src/widgets/text-toolbar.cpp:1227 msgid "Select all text with this font-family" msgstr "AtlasÄ«t visu tekstu, kas formatÄ“ts ar Å¡o fontu grupu" -#: ../src/widgets/text-toolbar.cpp:1225 +#: ../src/widgets/text-toolbar.cpp:1231 msgid "Font not found on system" msgstr "Fonts nav atrasts" -#: ../src/widgets/text-toolbar.cpp:1284 +#: ../src/widgets/text-toolbar.cpp:1290 msgid "Font Style" msgstr "Fonta stils" -#: ../src/widgets/text-toolbar.cpp:1285 +#: ../src/widgets/text-toolbar.cpp:1291 msgid "Font style" msgstr "Fonta stils" #. Name -#: ../src/widgets/text-toolbar.cpp:1302 +#: ../src/widgets/text-toolbar.cpp:1308 msgid "Toggle Superscript" msgstr "IeslÄ“gt augÅ¡rakstu" #. Label -#: ../src/widgets/text-toolbar.cpp:1303 +#: ../src/widgets/text-toolbar.cpp:1309 msgid "Toggle superscript" msgstr "IeslÄ“gt augÅ¡rakstu" #. Name -#: ../src/widgets/text-toolbar.cpp:1315 +#: ../src/widgets/text-toolbar.cpp:1321 msgid "Toggle Subscript" msgstr "IeslÄ“gt apakÅ¡rakstu" #. Label -#: ../src/widgets/text-toolbar.cpp:1316 +#: ../src/widgets/text-toolbar.cpp:1322 msgid "Toggle subscript" msgstr "IeslÄ“gt apakÅ¡rakstu" -#: ../src/widgets/text-toolbar.cpp:1357 +#: ../src/widgets/text-toolbar.cpp:1363 msgid "Justify" msgstr "IzlÄ«dzinÄt" #. Name -#: ../src/widgets/text-toolbar.cpp:1364 +#: ../src/widgets/text-toolbar.cpp:1370 msgid "Alignment" msgstr "IzlÄ«dzinÄjums" #. Label -#: ../src/widgets/text-toolbar.cpp:1365 +#: ../src/widgets/text-toolbar.cpp:1371 msgid "Text alignment" msgstr "Teksta lÄ«dzinÄÅ¡ana" -#: ../src/widgets/text-toolbar.cpp:1392 +#: ../src/widgets/text-toolbar.cpp:1398 msgid "Horizontal" msgstr "HorizontÄls" -#: ../src/widgets/text-toolbar.cpp:1399 +#: ../src/widgets/text-toolbar.cpp:1405 msgid "Vertical" msgstr "VertikÄls" #. Label -#: ../src/widgets/text-toolbar.cpp:1406 +#: ../src/widgets/text-toolbar.cpp:1412 msgid "Text orientation" msgstr "Teksta orientÄcija" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Smaller spacing" msgstr "MazÄka atstarpe" -#: ../src/widgets/text-toolbar.cpp:1429 ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1435 ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgctxt "Text tool" msgid "Normal" msgstr "Parasts" -#: ../src/widgets/text-toolbar.cpp:1429 +#: ../src/widgets/text-toolbar.cpp:1435 msgid "Larger spacing" msgstr "LielÄka atstarpe" #. name -#: ../src/widgets/text-toolbar.cpp:1434 +#: ../src/widgets/text-toolbar.cpp:1440 msgid "Line Height" msgstr "Rindas augstums" #. label -#: ../src/widgets/text-toolbar.cpp:1435 +#: ../src/widgets/text-toolbar.cpp:1441 msgid "Line:" msgstr "Rinda:" #. short label -#: ../src/widgets/text-toolbar.cpp:1436 +#: ../src/widgets/text-toolbar.cpp:1442 msgid "Spacing between lines (times font size)" msgstr "Atstarpe starp rindÄm (fonta izmÄ“ra reizÄ“s)" #. Drop down menu -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Negative spacing" msgstr "NegatÄ«va atstarpe" -#: ../src/widgets/text-toolbar.cpp:1460 ../src/widgets/text-toolbar.cpp:1491 +#: ../src/widgets/text-toolbar.cpp:1466 ../src/widgets/text-toolbar.cpp:1497 msgid "Positive spacing" msgstr "PozitÄ«va atstarpe" #. name -#: ../src/widgets/text-toolbar.cpp:1465 +#: ../src/widgets/text-toolbar.cpp:1471 msgid "Word spacing" msgstr "VÄrdu atstatums" #. label -#: ../src/widgets/text-toolbar.cpp:1466 +#: ../src/widgets/text-toolbar.cpp:1472 msgid "Word:" msgstr "VÄrds:" #. short label -#: ../src/widgets/text-toolbar.cpp:1467 +#: ../src/widgets/text-toolbar.cpp:1473 msgid "Spacing between words (px)" msgstr "Atstarpe starp vÄrdiem (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1496 +#: ../src/widgets/text-toolbar.cpp:1502 msgid "Letter spacing" msgstr "Burtu atstatums" #. label -#: ../src/widgets/text-toolbar.cpp:1497 +#: ../src/widgets/text-toolbar.cpp:1503 msgid "Letter:" msgstr "Burts:" #. short label -#: ../src/widgets/text-toolbar.cpp:1498 +#: ../src/widgets/text-toolbar.cpp:1504 msgid "Spacing between letters (px)" msgstr "Atstarpe starp burtiem (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1527 +#: ../src/widgets/text-toolbar.cpp:1533 msgid "Kerning" msgstr "Rakstsavirze" #. label -#: ../src/widgets/text-toolbar.cpp:1528 +#: ../src/widgets/text-toolbar.cpp:1534 msgid "Kern:" msgstr "Rakstsavirze:" #. short label -#: ../src/widgets/text-toolbar.cpp:1529 +#: ../src/widgets/text-toolbar.cpp:1535 msgid "Horizontal kerning (px)" msgstr "HorizontÄlÄ rakstsavirze (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1558 +#: ../src/widgets/text-toolbar.cpp:1564 msgid "Vertical Shift" msgstr "VertikÄlÄ pÄrbÄ«de" #. label -#: ../src/widgets/text-toolbar.cpp:1559 +#: ../src/widgets/text-toolbar.cpp:1565 msgid "Vert:" msgstr "Vert:" #. short label -#: ../src/widgets/text-toolbar.cpp:1560 +#: ../src/widgets/text-toolbar.cpp:1566 msgid "Vertical shift (px)" msgstr "VertikÄlÄ pÄrbÄ«de (px)" #. name -#: ../src/widgets/text-toolbar.cpp:1589 +#: ../src/widgets/text-toolbar.cpp:1595 msgid "Letter rotation" msgstr "Burta pagrieziens" #. label -#: ../src/widgets/text-toolbar.cpp:1590 +#: ../src/widgets/text-toolbar.cpp:1596 msgid "Rot:" msgstr "Pagr.:" #. short label -#: ../src/widgets/text-toolbar.cpp:1591 +#: ../src/widgets/text-toolbar.cpp:1597 msgid "Character rotation (degrees)" msgstr "RakstzÄ«mju pagrieziens (grÄdos)" -#: ../src/widgets/toolbox.cpp:181 +#: ../src/widgets/toolbox.cpp:177 msgid "Color/opacity used for color tweaking" msgstr "KrÄsu korekcijai izmantojamÄ krÄsa/necauspÄ«dÄ«ba" -#: ../src/widgets/toolbox.cpp:189 +#: ../src/widgets/toolbox.cpp:185 msgid "Style of new stars" msgstr "Jauno zvaigžņu stils" -#: ../src/widgets/toolbox.cpp:191 +#: ../src/widgets/toolbox.cpp:187 msgid "Style of new rectangles" msgstr "Jauno taisnstÅ«ru stils" -#: ../src/widgets/toolbox.cpp:193 +#: ../src/widgets/toolbox.cpp:189 msgid "Style of new 3D boxes" msgstr "Jauno 3D paralÄ“lskaldņu stils" -#: ../src/widgets/toolbox.cpp:195 +#: ../src/widgets/toolbox.cpp:191 msgid "Style of new ellipses" msgstr "Jauno elipÅ¡u stils" -#: ../src/widgets/toolbox.cpp:197 +#: ../src/widgets/toolbox.cpp:193 msgid "Style of new spirals" msgstr "Jauno spirÄļu stils" -#: ../src/widgets/toolbox.cpp:199 +#: ../src/widgets/toolbox.cpp:195 msgid "Style of new paths created by Pencil" msgstr "Jauno, ar zÄ«muļa rÄ«ku veidoto ceļu stils" -#: ../src/widgets/toolbox.cpp:201 +#: ../src/widgets/toolbox.cpp:197 msgid "Style of new paths created by Pen" msgstr "Jauno, ar spalvas rÄ«ku veidoto ceļu stils" -#: ../src/widgets/toolbox.cpp:203 +#: ../src/widgets/toolbox.cpp:199 msgid "Style of new calligraphic strokes" msgstr "Jauno kaligrÄfisko apmaļu stils" -#: ../src/widgets/toolbox.cpp:205 ../src/widgets/toolbox.cpp:207 +#: ../src/widgets/toolbox.cpp:201 ../src/widgets/toolbox.cpp:203 msgid "TBD" msgstr "TBD" -#: ../src/widgets/toolbox.cpp:219 +#: ../src/widgets/toolbox.cpp:215 msgid "Style of Paint Bucket fill objects" msgstr "KrÄsas spaiņa objektu aizpildÄ«juma stils" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Bounding box" msgstr "RobežrÄmis" -#: ../src/widgets/toolbox.cpp:1683 +#: ../src/widgets/toolbox.cpp:1679 msgid "Snap bounding boxes" msgstr "Pievilkt robežrÄmjus" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Bounding box edges" msgstr "RobežrÄmju malas" -#: ../src/widgets/toolbox.cpp:1692 +#: ../src/widgets/toolbox.cpp:1688 msgid "Snap to edges of a bounding box" msgstr "Pievilkt robežrÄmju malÄm" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Bounding box corners" msgstr "RobežrÄmju stÅ«ri" -#: ../src/widgets/toolbox.cpp:1701 +#: ../src/widgets/toolbox.cpp:1697 msgid "Snap bounding box corners" msgstr "Pievilkt robežrÄmju stÅ«riem" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "BBox Edge Midpoints" msgstr "RobežrÄmju malu viduspunktiem" -#: ../src/widgets/toolbox.cpp:1710 +#: ../src/widgets/toolbox.cpp:1706 msgid "Snap midpoints of bounding box edges" msgstr "Pievilkt robežrÄmju malu viduspunktiem" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "BBox Centers" msgstr "RobežrÄmju centriem" -#: ../src/widgets/toolbox.cpp:1720 +#: ../src/widgets/toolbox.cpp:1716 msgid "Snapping centers of bounding boxes" msgstr "Pievilkt robežrÄmju centriem" -#: ../src/widgets/toolbox.cpp:1729 +#: ../src/widgets/toolbox.cpp:1725 msgid "Snap nodes, paths, and handles" msgstr "Pievilkt mezglus, ceļus un turus" -#: ../src/widgets/toolbox.cpp:1737 +#: ../src/widgets/toolbox.cpp:1733 msgid "Snap to paths" msgstr "Pievilkt ceļiem" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Path intersections" msgstr "Ceļu krustpunkti" -#: ../src/widgets/toolbox.cpp:1746 +#: ../src/widgets/toolbox.cpp:1742 msgid "Snap to path intersections" msgstr "Pievilkt ceļu krustpunktiem" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "To nodes" msgstr "Pie mezgliem" -#: ../src/widgets/toolbox.cpp:1755 +#: ../src/widgets/toolbox.cpp:1751 msgid "Snap cusp nodes, incl. rectangle corners" msgstr "Pievilkt asos mezglus, ieskaitot taisnstÅ«ru stÅ«rus" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Smooth nodes" msgstr "Gludi mezgli" -#: ../src/widgets/toolbox.cpp:1764 +#: ../src/widgets/toolbox.cpp:1760 msgid "Snap smooth nodes, incl. quadrant points of ellipses" msgstr "Pievilkt gludos mezglus, ieskaitot elipÅ¡u kvadrantu punktus" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Line Midpoints" msgstr "LÄ«nijas viduspunkti" -#: ../src/widgets/toolbox.cpp:1773 +#: ../src/widgets/toolbox.cpp:1769 msgid "Snap midpoints of line segments" msgstr "Pievilkt lÄ«nijas posmu viduspunktus" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Others" msgstr "Citi" -#: ../src/widgets/toolbox.cpp:1782 +#: ../src/widgets/toolbox.cpp:1778 msgid "Snap other points (centers, guide origins, gradient handles, etc.)" msgstr "Pievilkt citus punktus (centrus, vadlÄ«niju sÄkumus, krÄsu pÄreju turus utt.)" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Object Centers" msgstr "Objekta centri" -#: ../src/widgets/toolbox.cpp:1790 +#: ../src/widgets/toolbox.cpp:1786 msgid "Snap centers of objects" msgstr "Pievilkt objektu centrus" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Rotation Centers" msgstr "GrieÅ¡anÄs centrs" -#: ../src/widgets/toolbox.cpp:1799 +#: ../src/widgets/toolbox.cpp:1795 msgid "Snap an item's rotation center" msgstr "Pievilkt objekta grieÅ¡anÄs centram" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Text baseline" msgstr "Teksta bÄzes lÄ«nija" -#: ../src/widgets/toolbox.cpp:1808 +#: ../src/widgets/toolbox.cpp:1804 msgid "Snap text anchors and baselines" msgstr "Pievilkt teksta enkurus un bÄzes lÄ«nijas" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Page border" msgstr "Lapas robeža" -#: ../src/widgets/toolbox.cpp:1818 +#: ../src/widgets/toolbox.cpp:1814 msgid "Snap to the page border" msgstr "Pievilkt lapas robežÄm" -#: ../src/widgets/toolbox.cpp:1827 +#: ../src/widgets/toolbox.cpp:1823 msgid "Snap to grids" msgstr "Pievilkt režģim" -#: ../src/widgets/toolbox.cpp:1836 +#: ../src/widgets/toolbox.cpp:1832 msgid "Snap guides" msgstr "Piesaistes palÄ«glÄ«nijas" @@ -27319,12 +27376,11 @@ msgstr "NepiecieÅ¡ami vismaz 2 atlasÄ«ti ceļi" #: ../share/extensions/funcplot.py:48 msgid "x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" -msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X' vÄ“rtÄ«bas" +msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X vÄ“rtÄ«ba' vai 'Beigu X vÄ“rtÄ«ba'" #: ../share/extensions/funcplot.py:60 -#, fuzzy msgid "y-interval cannot be zero. Please modify 'Y value of rectangle's top' or 'Y value of rectangle's bottom'" -msgstr "y-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet ..." +msgstr "y-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'TaisnstÅ«ra augÅ¡malas Y vÄ“rtÄ«ba' vai 'TaisnstÅ«ra apakÅ¡malas Y vÄ“rtÄ«ba'" #: ../share/extensions/funcplot.py:315 msgid "Please select a rectangle" @@ -27523,7 +27579,7 @@ msgstr "LÅ«dzu, atlasiet kÄdu objektu" #: ../share/extensions/gimp_xcf.py:39 msgid "Inkscape must be installed and set in your path variable." -msgstr "Inkscape ir jÄbÅ«t uzstÄdÄ«tai un tÄs atraÅ¡anÄs vietai jÄbÅ«t iestatÄ«tai ceļa mainÄ«gajÄ PATH." +msgstr "Inkscape jÄbÅ«t uzstÄdÄ«tai un tÄs atraÅ¡anÄs vietai pievienotai ceļa mainÄ«gajÄ PATH." #: ../share/extensions/gimp_xcf.py:43 msgid "Gimp must be installed and set in your path variable." @@ -27586,7 +27642,7 @@ msgstr "Nav iespÄ“jams atvÄ“rt norÄdÄ«to datni: %s" #: ../share/extensions/inkex.py:178 #, python-format msgid "Unable to open object member file: %s" -msgstr "Nav iespÄ“jams atvÄ“rt norÄdÄ«to datni: %s" +msgstr "Nav iespÄ“jams atvÄ“rt objekta locekļa datni: %s" #: ../share/extensions/inkex.py:283 #, python-format @@ -27853,15 +27909,15 @@ msgstr "" "Mēģiniet izmantot darbÄ«bu Ceļš->Objektu par ceļu." #. issue error if no paths found -#: ../share/extensions/plotter.py:67 +#: ../share/extensions/plotter.py:70 msgid "No paths where found. Please convert all objects you want to plot into paths." msgstr "Nav atrasts neviens ceļš. LÅ«dzu pÄrveidojiet visus objektus, kurus vÄ“laties plotÄ“t, par ceļiem." -#: ../share/extensions/plotter.py:144 +#: ../share/extensions/plotter.py:148 msgid "pySerial is not installed." msgstr "pySerial nav uzstÄdÄ«ts." -#: ../share/extensions/plotter.py:164 +#: ../share/extensions/plotter.py:200 msgid "Could not open port. Please check that your plotter is running, connected and the settings are correct." msgstr "Nav iespÄ“jams atvÄ“rt portu. LÅ«dzu, pÄrliecinieties, vai ploteris ir ieslÄ“gts, pievienots un iestatÄ«jumi ir korekti." @@ -28619,9 +28675,8 @@ msgid "Method of Scaling:" msgstr "MÄ“rogoÅ¡anas metode:" #: ../share/extensions/dxf_input.inx.h:4 -#, fuzzy msgid "Manual scale factor:" -msgstr "Vai izmantojiet ar roku ievadÄ«tu mÄ“roga koeficientu:" +msgstr "Rokas mÄ“roga koeficients:" #: ../share/extensions/dxf_input.inx.h:5 msgid "Manual x-axis origin (mm):" @@ -28644,6 +28699,7 @@ msgid "Text Font:" msgstr "Teksta fonts:" #: ../share/extensions/dxf_input.inx.h:11 +#, fuzzy msgid "" "- AutoCAD Release 13 and newer.\n" "- for manual scaling, assume dxf drawing is in mm.\n" @@ -28655,12 +28711,12 @@ msgid "" "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." msgstr "" "- AutoCAD 13 un jaunÄkÄm versijÄm:\n" -"- mÄ“rogoÅ¡anai ar roku pieņemt, ka dxf rasÄ“jums ir mm.\n" +"- pieņemt, ka dxf rasÄ“jums ir mm.\n" "- pieņemt, ka svg rasÄ“jums ir pikseļos ar izšķirtspÄ“ju 96 dpi.\n" "- mÄ“roga koeficients un izejas punkts attiecas tikai uz rokas mÄ“rogoÅ¡anu.\n" -"- 'AutomÄtiskÄ mÄ“rogoÅ¡ana' ietilpinÄs platumu A4 lapÄ.\n" -"- 'LasÄ«t no datnes' izmanto mainÄ«go $MEASUREMENT.\n" -"- slÄņi tiek saglabÄti tikai Datne->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" +"- 'Automatic scaling' will fit the width of an A4 page.\n" +"- 'Read from file' uses the variable $MEASUREMENT.\n" +"- slÄņi tiek saglabÄti tikai Fails->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" "- ierobežots BLOCKS atbalsts, nepiecieÅ¡amÄ«bas gadÄ«jumÄ izmantojiet AutoCAD Explode Blocks." #: ../share/extensions/dxf_input.inx.h:19 @@ -29973,9 +30029,8 @@ msgid "Regular guides" msgstr "RegulÄras palÄ«glÄ«nijas" #: ../share/extensions/guides_creator.inx.h:3 -#, fuzzy msgid "Guides preset:" -msgstr "PalÄ«glÄ«niju iestatÄ«jumi" +msgstr "PalÄ«glÄ«niju priekÅ¡iestatÄ«jumi:" #: ../share/extensions/guides_creator.inx.h:6 msgid "Start from edges" @@ -30245,19 +30300,19 @@ msgstr "HPGL ievade" 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 "LÅ«dzu, ņemiet vÄ“rÄ, ka ir iespÄ“jams atvÄ“rt tikai ar Inkscape izveidotÄs HPGL datness. Lai atvÄ“rtu citas HPGL formÄta datnes, pÄrdÄ“vÄ“jiet tÄs par .plt, pÄrliecinieties, ka ir uzstÄdÄ«ts UniConverter un tad mēģiniet atvÄ“rt vÄ“lreiz." -#: ../share/extensions/hpgl_input.inx.h:3 ../share/extensions/hpgl_output.inx.h:4 ../share/extensions/plotter.inx.h:25 +#: ../share/extensions/hpgl_input.inx.h:3 ../share/extensions/hpgl_output.inx.h:4 ../share/extensions/plotter.inx.h:34 msgid "Resolution X (dpi):" msgstr "IzšķirtspÄ“ja X (dpi):" -#: ../share/extensions/hpgl_input.inx.h:4 ../share/extensions/hpgl_output.inx.h:5 ../share/extensions/plotter.inx.h:26 +#: ../share/extensions/hpgl_input.inx.h:4 ../share/extensions/hpgl_output.inx.h:5 ../share/extensions/plotter.inx.h:35 msgid "The amount of steps the plotter moves if it moves for 1 inch on the X axis (Default: 1016.0)" msgstr "Soļu skaits vienÄ collÄ ploterim pÄrvietojoties gar X asi (NoklusÄ“tais: 1016.0)" -#: ../share/extensions/hpgl_input.inx.h:5 ../share/extensions/hpgl_output.inx.h:6 ../share/extensions/plotter.inx.h:27 +#: ../share/extensions/hpgl_input.inx.h:5 ../share/extensions/hpgl_output.inx.h:6 ../share/extensions/plotter.inx.h:36 msgid "Resolution Y (dpi):" msgstr "IzšķirtspÄ“ja Y (dpi):" -#: ../share/extensions/hpgl_input.inx.h:6 ../share/extensions/hpgl_output.inx.h:7 ../share/extensions/plotter.inx.h:28 +#: ../share/extensions/hpgl_input.inx.h:6 ../share/extensions/hpgl_output.inx.h:7 ../share/extensions/plotter.inx.h:37 msgid "The amount of steps the plotter moves if it moves for 1 inch on the Y axis (Default: 1016.0)" msgstr "Soļu skaits vienÄ collÄ ploterim pÄrvietojoties gar Y asi (NoklusÄ“tais: 1016.0)" @@ -30269,7 +30324,7 @@ msgstr "RÄdÄ«t pÄrvietojumus starp ceļiem" msgid "Check this to show movements between paths (Default: Unchecked)" msgstr "AtzÄ«mÄ“jit Å¡o, lai rÄdÄ«tu pÄrvietojumus starp ceļiem. (NoklusÄ“tais: neatzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_input.inx.h:9 ../share/extensions/hpgl_output.inx.h:34 +#: ../share/extensions/hpgl_input.inx.h:9 ../share/extensions/hpgl_output.inx.h:35 msgid "HP Graphics Language file (*.hpgl)" msgstr "HP Graphics Language datne (*.hpgl)" @@ -30285,27 +30340,27 @@ msgstr "HPGL Izvade" 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 "LÅ«dzu, pÄrliecinieties, ka visi saglabÄjamie objekti ir pÄrvÄ“rsti par ceļiem. LÅ«dzu, izmantojiet plotera paplaÅ¡inÄjumu (PaplaÅ¡inÄjumu izvÄ“lnÄ“), lai plotÄ“tu tieÅ¡i ploteri izmantojot seriÄlo savienojumu." -#: ../share/extensions/hpgl_output.inx.h:3 ../share/extensions/plotter.inx.h:24 +#: ../share/extensions/hpgl_output.inx.h:3 ../share/extensions/plotter.inx.h:33 msgid "Plotter Settings " msgstr "Plotera iestatÄ«jumi" -#: ../share/extensions/hpgl_output.inx.h:8 ../share/extensions/plotter.inx.h:29 +#: ../share/extensions/hpgl_output.inx.h:8 ../share/extensions/plotter.inx.h:38 msgid "Pen number:" msgstr "Spalvas numurs:" -#: ../share/extensions/hpgl_output.inx.h:9 ../share/extensions/plotter.inx.h:30 +#: ../share/extensions/hpgl_output.inx.h:9 ../share/extensions/plotter.inx.h:39 msgid "The number of the pen (tool) to use (Standard: '1')" msgstr "IzmantojamÄs spalvas (rÄ«ka) numurs. (NoklusÄ“tais: '1')" -#: ../share/extensions/hpgl_output.inx.h:10 ../share/extensions/plotter.inx.h:31 +#: ../share/extensions/hpgl_output.inx.h:10 ../share/extensions/plotter.inx.h:40 msgid "Pen force (g):" msgstr "Spalvas spiediena spÄ“ks (g):" -#: ../share/extensions/hpgl_output.inx.h:11 ../share/extensions/plotter.inx.h:32 +#: ../share/extensions/hpgl_output.inx.h:11 ../share/extensions/plotter.inx.h:41 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 "SpÄ“ks, ar kÄdu tiks piespiesta spalva, gramos. Ievadiet 0, lai to apietu. LielÄkÄ ploteru daļa Å¡o komandu neņem vÄ“rÄ. (NoklusÄ“tais: 0)" -#: ../share/extensions/hpgl_output.inx.h:12 ../share/extensions/plotter.inx.h:33 +#: ../share/extensions/hpgl_output.inx.h:12 ../share/extensions/plotter.inx.h:42 msgid "Pen speed (cm/s or mm/s):" msgstr "Spalvas Ätrums (cm/s vai mm/s):" @@ -30317,83 +30372,87 @@ msgstr "Spalvas pÄrvietoÅ¡anÄs Ätrums centimetros vai milimetros sekundÄ“ (at msgid "Rotation (°, Clockwise):" msgstr "PagrieÅ¡ana (°) pulksteņrÄdÄ«tÄja virzienÄ:" -#: ../share/extensions/hpgl_output.inx.h:15 ../share/extensions/plotter.inx.h:36 +#: ../share/extensions/hpgl_output.inx.h:15 ../share/extensions/plotter.inx.h:45 msgid "Rotation of the drawing (Default: 0°)" msgstr "ZÄ«mÄ“juma pagrieÅ¡ana. (NoklusÄ“tais: 0°)" -#: ../share/extensions/hpgl_output.inx.h:16 ../share/extensions/plotter.inx.h:37 +#: ../share/extensions/hpgl_output.inx.h:16 ../share/extensions/plotter.inx.h:46 msgid "Mirror X axis" msgstr "Atspoguļot X asi" -#: ../share/extensions/hpgl_output.inx.h:17 ../share/extensions/plotter.inx.h:38 +#: ../share/extensions/hpgl_output.inx.h:17 ../share/extensions/plotter.inx.h:47 msgid "Check this to mirror the X axis (Default: Unchecked)" msgstr "AtzÄ«mÄ“jiet Å¡o, lai atspoguļotu X asi. (NoklusÄ“tais - neatzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_output.inx.h:18 ../share/extensions/plotter.inx.h:39 +#: ../share/extensions/hpgl_output.inx.h:18 ../share/extensions/plotter.inx.h:48 msgid "Mirror Y axis" msgstr "Atspoguļot Y asi" -#: ../share/extensions/hpgl_output.inx.h:19 ../share/extensions/plotter.inx.h:40 +#: ../share/extensions/hpgl_output.inx.h:19 ../share/extensions/plotter.inx.h:49 msgid "Check this to mirror the Y axis (Default: Unchecked)" msgstr "AtzÄ«mÄ“jiet Å¡o, lai atspoguļotu Y asi. (NoklusÄ“tais - neatzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_output.inx.h:20 ../share/extensions/plotter.inx.h:41 +#: ../share/extensions/hpgl_output.inx.h:20 ../share/extensions/plotter.inx.h:50 msgid "Center zero point" msgstr "CentrÄ“t nulles punktu" -#: ../share/extensions/hpgl_output.inx.h:21 ../share/extensions/plotter.inx.h:42 +#: ../share/extensions/hpgl_output.inx.h:21 ../share/extensions/plotter.inx.h:51 msgid "Check this if your plotter uses a centered zero point (Default: Unchecked)" msgstr "AtzÄ«mÄ“jiet Å¡o, ja JÅ«su ploteris izmantot centrÄ“to nulles punktu. (NoklusÄ“tais: neatzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_output.inx.h:22 ../share/extensions/plotter.inx.h:43 +#: ../share/extensions/hpgl_output.inx.h:22 ../share/extensions/plotter.inx.h:52 +msgid "If you want to use multiple pens on your pen plotter create one layer for each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings in the corresponding layers. This overrules the pen number option above." +msgstr "" + +#: ../share/extensions/hpgl_output.inx.h:23 ../share/extensions/plotter.inx.h:53 msgid "Plot Features " msgstr "Plotēšanas Ä«patnÄ«bas" -#: ../share/extensions/hpgl_output.inx.h:23 ../share/extensions/plotter.inx.h:44 +#: ../share/extensions/hpgl_output.inx.h:24 ../share/extensions/plotter.inx.h:54 msgid "Overcut (mm):" msgstr "PÄrgriezums (mm):" -#: ../share/extensions/hpgl_output.inx.h:24 ../share/extensions/plotter.inx.h:45 +#: ../share/extensions/hpgl_output.inx.h:25 ../share/extensions/plotter.inx.h:55 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 "AttÄlums mm, kas tiks griezts pÄri ceļa sÄkumpunktam, lai nepieļautu nenoslÄ“gtus ceļus; ievadiet 0.0, lai izlaistu Å¡o komandu. (noklusÄ“tais: 1.00)" -#: ../share/extensions/hpgl_output.inx.h:25 ../share/extensions/plotter.inx.h:46 +#: ../share/extensions/hpgl_output.inx.h:26 ../share/extensions/plotter.inx.h:56 msgid "Tool offset (mm):" msgstr "RÄ«ka nobÄ«de (mm):" -#: ../share/extensions/hpgl_output.inx.h:26 ../share/extensions/plotter.inx.h:47 +#: ../share/extensions/hpgl_output.inx.h:27 ../share/extensions/plotter.inx.h:57 msgid "The offset from the tool tip to the tool axis in mm, set to 0.0 to omit command (Default: 0.25)" msgstr "RÄ«ka gala nobÄ«de pret rÄ«ka asi mm; ievadiet 0.0, lai izlaistu Å¡o komandu. (NoklusÄ“tais: 0.25)" -#: ../share/extensions/hpgl_output.inx.h:27 ../share/extensions/plotter.inx.h:48 +#: ../share/extensions/hpgl_output.inx.h:28 ../share/extensions/plotter.inx.h:58 msgid "Use precut" msgstr "Izmantot priekÅ¡griezumu" -#: ../share/extensions/hpgl_output.inx.h:28 ../share/extensions/plotter.inx.h:49 +#: ../share/extensions/hpgl_output.inx.h:29 ../share/extensions/plotter.inx.h:59 msgid "Check this to cut a small line before the real drawing starts to correctly align the tool orientation. (Default: Checked)" msgstr "AtzÄ«mÄ“jiet Å¡o, lai iegrieztu tievu lÄ«niju rÄ«ka orientÄcijai pirms Ä«stÄ plotÄ“juma. (NoklusÄ“tais - atzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_output.inx.h:29 ../share/extensions/plotter.inx.h:50 +#: ../share/extensions/hpgl_output.inx.h:30 ../share/extensions/plotter.inx.h:60 msgid "Curve flatness:" msgstr "LÄ«knes plakanums:" -#: ../share/extensions/hpgl_output.inx.h:30 ../share/extensions/plotter.inx.h:51 +#: ../share/extensions/hpgl_output.inx.h:31 ../share/extensions/plotter.inx.h:61 msgid "Curves are divided into lines, this number controls how fine the curves will be reproduced, the smaller the finer (Default: '1.2')" msgstr "LÄ«knes tiek sadalÄ«tas lÄ«nijÄs, Å¡is skaitlis nosaka, cik precÄ«zi lÄ«knes tiks reproducÄ“tas; jo mazÄks skaitlis, jo precÄ«zÄk. (NoklusÄ“tais: '1.2')" -#: ../share/extensions/hpgl_output.inx.h:31 ../share/extensions/plotter.inx.h:52 +#: ../share/extensions/hpgl_output.inx.h:32 ../share/extensions/plotter.inx.h:62 msgid "Auto align" msgstr "AutomÄtiski lÄ«dzinÄt" -#: ../share/extensions/hpgl_output.inx.h:32 ../share/extensions/plotter.inx.h:53 +#: ../share/extensions/hpgl_output.inx.h:33 ../share/extensions/plotter.inx.h:63 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 "AtzÄ«mÄ“jiet Å¡o, lai automÄtiski pieskaņotu zÄ«mÄ“jumu nulles punktam (plus rÄ«ka nobÄ«de, ja tiek izmantota). Ja nav atzÄ«mÄ“ts, Jums ir jÄpÄrliecinÄs, ka visas zÄ«mÄ“juma daļas atrodas dokumenta robežÄs (noklusÄ“tais - atzÄ«mÄ“ts)" -#: ../share/extensions/hpgl_output.inx.h:33 ../share/extensions/plotter.inx.h:56 +#: ../share/extensions/hpgl_output.inx.h:34 ../share/extensions/plotter.inx.h:66 msgid "All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter." msgstr "Visi Å¡ie iestatÄ«jumi ir atkarÄ«gi no izmantojamÄ plotera. PlaÅ¡Äkai informÄcijai izmantojiet plotera pamÄcÄ«bu vai ražotÄja mÄjas lapu." -#: ../share/extensions/hpgl_output.inx.h:35 +#: ../share/extensions/hpgl_output.inx.h:36 msgid "Export an HP Graphics Language file" msgstr "EksportÄ“t HP Graphics Language datni" @@ -31607,83 +31666,114 @@ msgid "The Baud rate of your serial connection (Default: 9600)" msgstr "JÅ«su seriÄlÄ savienojuma Ätrums bodos (standarts: '9600')" #: ../share/extensions/plotter.inx.h:8 -msgid "Flow control:" +#, fuzzy +msgid "Serial byte size:" +msgstr "Paletes izmÄ“rs:" + +#: ../share/extensions/plotter.inx.h:10 +#, no-c-format +msgid "The Byte size of your serial connection, 99% of all plotters use the default setting (Default: 8 Bits)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:11 +#, fuzzy +msgid "Serial stop bits:" +msgstr "SeriÄlais ports:" + +#: ../share/extensions/plotter.inx.h:13 +#, no-c-format +msgid "The Stop bits of your serial connection, 99% of all plotters use the default setting (Default: 1 Bit)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:14 +#, fuzzy +msgid "Serial parity:" +msgstr "SeriÄlais ports:" + +#: ../share/extensions/plotter.inx.h:16 +#, no-c-format +msgid "The Parity of your serial connection, 99% of all plotters use the default setting (Default: None)" +msgstr "" + +#: ../share/extensions/plotter.inx.h:17 +#, fuzzy +msgid "Serial flow control:" msgstr "PlÅ«smas kontrole:" -#: ../share/extensions/plotter.inx.h:9 +#: ../share/extensions/plotter.inx.h:18 msgid "The Software / Hardware flow control of your serial connection (Default: Software)" msgstr "SeriÄlÄ savienojuma programmÄtiskÄ/aparÄtiskÄ plÅ«smas vadÄ«ba. (NoklusÄ“tÄ - programmÄtiskÄ)" -#: ../share/extensions/plotter.inx.h:10 +#: ../share/extensions/plotter.inx.h:19 msgid "Command language:" msgstr "Komandu valoda:" -#: ../share/extensions/plotter.inx.h:11 +#: ../share/extensions/plotter.inx.h:20 msgid "The command language to use (Default: HPGL)" msgstr "IzmantojamÄ komandu valoda. (NoklusÄ“tÄ: HPGL)" -#: ../share/extensions/plotter.inx.h:12 +#: ../share/extensions/plotter.inx.h:21 msgid "Initialization commands:" -msgstr "Inicializēšanas komandas:" +msgstr "InicializÄcijas komandas:" -#: ../share/extensions/plotter.inx.h:13 +#: ../share/extensions/plotter.inx.h:22 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 "Komandas, kas tiks nosÅ«tÄ«tas ploterim pirms galvenÄs datu plÅ«smas, izmantojiet to tikai gadÄ«jumÄ, ja saprotat, ko darÄt (NoklusÄ“tais: tukÅ¡s)" +msgstr "Ploterim pirms galvenÄs datu plÅ«smas nosÅ«tÄmÄs komandas. Izmantojiet to tikai gadÄ«jumÄ, ja apzinÄties, ko darÄt! (NoklusÄ“tais: tukÅ¡s) " -#: ../share/extensions/plotter.inx.h:14 +#: ../share/extensions/plotter.inx.h:23 msgid "Software (XON/XOFF)" msgstr "ProgrammÄtiski (XON/XOFF)" -#: ../share/extensions/plotter.inx.h:15 +#: ../share/extensions/plotter.inx.h:24 msgid "Hardware (RTS/CTS)" msgstr "AparatÅ«ras (RTS/CTS)" -#: ../share/extensions/plotter.inx.h:16 +#: ../share/extensions/plotter.inx.h:25 msgid "Hardware (DSR/DTR + RTS/CTS)" msgstr "AparatÅ«ras (DSR/DTR + RTS/CTS)" -#: ../share/extensions/plotter.inx.h:17 +#: ../share/extensions/plotter.inx.h:26 msgctxt "Flow control" msgid "None" msgstr "Neviena" -#: ../share/extensions/plotter.inx.h:18 +#: ../share/extensions/plotter.inx.h:27 msgid "HPGL" msgstr "HPGL" -#: ../share/extensions/plotter.inx.h:19 +#: ../share/extensions/plotter.inx.h:28 msgid "DMPL" msgstr "DMPL" -#: ../share/extensions/plotter.inx.h:20 +#: ../share/extensions/plotter.inx.h:29 msgid "KNK Plotter (HPGL variant)" -msgstr "KNK ploteris (HPGL variants)" +msgstr "KNK Ploteris (HPGL variants)" -#: ../share/extensions/plotter.inx.h:21 +#: ../share/extensions/plotter.inx.h:30 msgid "Using wrong settings can under certain circumstances cause Inkscape to freeze. Always save your work before plotting!" msgstr "Nepareizu iestatÄ«jumu izmantoÅ¡ana atsevišķos gadÄ«jumos var izsaukt Inkscape apstÄÅ¡anos. VienmÄ“r saglabÄjiet savu darbu pirms plotēšanas uzsÄkÅ¡anas." -#: ../share/extensions/plotter.inx.h:22 +#: ../share/extensions/plotter.inx.h:31 msgid "This can be a physical serial connection or a USB-to-Serial bridge. Ask your plotter manufacturer for drivers if needed." msgstr "TÄs var bÅ«t fizisks seriÄlais savienojums vai USB-To-Serial konvertors. NepiecieÅ¡amÄ«bas gadÄ«jumÄ meklÄ“jiet nepiecieÅ¡amos dziņus plotera ražotÄja mÄjas lapÄ." -#: ../share/extensions/plotter.inx.h:23 +#: ../share/extensions/plotter.inx.h:32 msgid "Parallel (LPT) connections are not supported." msgstr "LÅ«dzu, ņemiet vÄ“rÄ, ka paralÄ“lais ports (LPT) nav atbalstÄ«ts." -#: ../share/extensions/plotter.inx.h:34 +#: ../share/extensions/plotter.inx.h:43 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 "Spalvas pÄrvietoÅ¡anÄs Ätrums centimetros vai milimetros sekundÄ“ (atkarÄ«gs no plotera modeļa). NorÄdiet 0, lai apietu komandu. Vairums ploteru Å¡o komandu neņem vÄ“rÄ. (NoklusÄ“tais - 0)" -#: ../share/extensions/plotter.inx.h:35 +#: ../share/extensions/plotter.inx.h:44 msgid "Rotation (°, clockwise):" msgstr "PagrieÅ¡ana (°, pulksteņrÄdÄ«tÄja virzienÄ):" -#: ../share/extensions/plotter.inx.h:54 +#: ../share/extensions/plotter.inx.h:64 msgid "Show debug information" msgstr "RÄdÄ«t atkļūdoÅ¡anas informÄciju" -#: ../share/extensions/plotter.inx.h:55 +#: ../share/extensions/plotter.inx.h:65 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 "AtzÄ«mÄ“jiet Å¡o, lai saņemtu plaÅ¡u informÄciju par plotÄ“jamo darbu, nenosÅ«tot neko uz ploteri (t.s. datu izvade). (NoklusÄ“tais: neatzÄ«mÄ“ts)" @@ -33284,10 +33374,370 @@ msgstr "Bieži lietots galeriju attÄ“lu grafiskais formÄts " msgid "XAML Input" msgstr "XAML ievade" +#~ msgid "A4 Landscape Page" +#~ msgstr "A4 lapa, ainavas skats" + +#~ msgid "Empty A4 landscape sheet" +#~ msgstr "TukÅ¡a A4 lapa, ainavas skats" + +#~ msgid "A4 paper sheet empty landscape" +#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a, ainavas skats" + +#~ msgid "A4 Page" +#~ msgstr "A4 Lapa" + +#~ msgid "Empty A4 sheet" +#~ msgstr "TukÅ¡a A4 lapa" + +#~ msgid "A4 paper sheet empty" +#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a" + +#~ msgid "Black Opaque" +#~ msgstr "Melns necauspÄ«dÄ«gs" + +#~ msgid "Empty black page" +#~ msgstr "TukÅ¡a melna lapa" + +#~ msgid "black opaque empty" +#~ msgstr "tukÅ¡s melns, necauspÄ«dÄ«gs" + +#~ msgid "White Opaque" +#~ msgstr "Balts, necaurspÄ«dÄ«gs" + +#~ msgid "Empty white page" +#~ msgstr "TukÅ¡a balta lapa" + +#~ msgid "white opaque empty" +#~ msgstr "tukÅ¡s balts, necauspÄ«dÄ«gs" + +#~ msgid "Business Card 85x54mm" +#~ msgstr "VizÄ«tkarte 85x54mm" + +#~ msgid "Empty business card template." +#~ msgstr "TukÅ¡a vizÄ«tkartes veidne." + +#~ msgid "business card empty 85x54" +#~ msgstr "vizÄ«tkarte 85x54mm, tukÅ¡a" + +#~ msgid "Business Card 90x50mm" +#~ msgstr "VizÄ«tkarte 90x50mm" + +#~ msgid "business card empty 90x50" +#~ msgstr "vizÄ«tkarte 90x50mm, tukÅ¡a" + +#~ msgid "CD Cover 300dpi" +#~ msgstr "CD vÄki 300 dpi" + +#~ msgid "Empty CD box cover." +#~ msgstr "TukÅ¡s CD kastÄ«tes vÄks." + +#~ msgid "CD cover disc disk 300dpi box" +#~ msgstr "CD uzlÄ«me, disks, 300 dpi rÄmis" + +#~ msgid "CD Label 120x120 " +#~ msgstr "CD etiÄ·ete 120x120" + +#~ msgid "DVD Cover Regular 300dpi " +#~ msgstr "DVD vÄks, parasts, 300 dpi" + +#~ msgid "Template for both-sides DVD covers." +#~ msgstr "Sagatave abu puÅ¡u DVD vÄkiem." + +#~ msgid "DVD cover regular 300dpi" +#~ msgstr "DVD vÄks, parasts, 300 dpi" + +#~ msgid "DVD Cover Slim 300dpi " +#~ msgstr "DVD vÄks, plÄnais, 300 dpi" + +#~ msgid "Template for both-sides DVD slim covers." +#~ msgstr "Sagatave abu puÅ¡u DVD plÄnajiem vÄkiem." + +#~ msgid "DVD cover slim 300dpi" +#~ msgstr "DVD vÄks, plÄnais, 300 dpi" + +#~ msgid "DVD Cover Superslim 300dpi " +#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" + +#~ msgid "Template for both-sides DVD superslim covers." +#~ msgstr "Veidne abÄm superplÄno DVD vÄciņu pusÄ“m." + +#~ msgid "DVD cover superslim 300dpi" +#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" + +#~ msgid "DVD Cover Ultraslim 300dpi " +#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" + +#~ msgid "Template for both-sides DVD ultraslim covers." +#~ msgstr "Veidne abÄm ultraplÄno DVD vÄciņu pusÄ“m." + +#~ msgid "DVD cover ultraslim 300dpi" +#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" + +#~ msgid "Desktop 1024x768" +#~ msgstr "Darba virsma 1024x768" + +#~ msgid "Empty desktop size sheet" +#~ msgstr "TukÅ¡a ekrÄna darba virsmas izmÄ“ru lapa" + +#~ msgid "desktop 1024x768 wallpaper" +#~ msgstr "darba virsmas 1024x768 tapete" + +#~ msgid "Desktop 1600x1200" +#~ msgstr "Darba virsma 1600x1200" + +#~ msgid "desktop 1600x1200 wallpaper" +#~ msgstr "darba virsmas 1600x1200 tapete" + +#~ msgid "Desktop 640x480" +#~ msgstr "Darba virsma 640x480" + +#~ msgid "desktop 640x480 wallpaper" +#~ msgstr "darba virsmas 640x480 tapete" + +#~ msgid "Desktop 800x600" +#~ msgstr "Darba virdsma 800x600" + +#~ msgid "desktop 800x600 wallpaper" +#~ msgstr "darba virsmas 800x600 tapete" + +#~ msgid "Fontforge Glyph" +#~ msgstr "Fontforge glifs" + +#~ msgid "font fontforge glyph 1000x1000" +#~ msgstr "fontforge glifs 1000x1000" + +#~ msgid "Icon 16x16" +#~ msgstr "Ikona 16x16" + +#~ msgid "Small 16x16 icon template." +#~ msgstr "Mazas 16x16 ikonas veidne" + +#~ msgid "icon 16x16 empty" +#~ msgstr "ikona 16x16, tukÅ¡a" + +#~ msgid "Icon 32x32" +#~ msgstr "Ikona 32x32" + +#~ msgid "32x32 icon template." +#~ msgstr "32x32 ikonas veidne." + +#~ msgid "icon 32x32 empty" +#~ msgstr "ikona 32x32, tukÅ¡a" + +#~ msgid "Icon 48x48" +#~ msgstr "Ikona 48x48" + +#~ msgid "48x48 icon template." +#~ msgstr "48x48 ikonas veidne." + +#~ msgid "icon 48x48 empty" +#~ msgstr "ikona 48x48, tukÅ¡a" + +#~ msgid "Icon 64x64" +#~ msgstr "Ikona 64x64" + +#~ msgid "64x64 icon template." +#~ msgstr "64x64 ikonas veidne." + +#~ msgid "icon 64x64 empty" +#~ msgstr "ikona 64x64, tukÅ¡a" + +#~ msgid "Letter Landscape" +#~ msgstr "VÄ“stule, ainavas skats" + +#~ msgid "Standard letter landscape sheet - 792x612" +#~ msgstr "Standarta vÄ“stules lapa ainavas skatÄ - 792x612" + +#~ msgid "letter landscape 792x612 empty" +#~ msgstr "vÄ“stules, ainavas skats, 792x612, tukÅ¡a" + +#~ msgid "Letter" +#~ msgstr "Burts" + +#~ msgid "Standard letter sheet - 612x792" +#~ msgstr "Standarta vÄ“stules lapa - 612x792" + +#~ msgid "letter 612x792 empty" +#~ msgstr "vÄ“stule 612x792, tukÅ¡a" + +#~ msgid "No Borders" +#~ msgstr "Bez malÄm" + +#~ msgid "Empty sheet with no borders" +#~ msgstr "TukÅ¡a lapa bez malÄm" + +#~ msgid "no borders empty" +#~ msgstr "bez malÄm, tukÅ¡a" + +#~ msgid "Video HDTV 1920x1080" +#~ msgstr "Video HDTV 1920x1080" + +#~ msgid "HDTV video template for 1920x1080 resolution." +#~ msgstr "HDTV video veidne 1920x1080 izšķirtspÄ“jai." + +#~ msgid "HDTV video empty 1920x1080" +#~ msgstr "HDTV video 1920x1080, tukÅ¡s" + +#~ msgid "Video NTSC 720x486" +#~ msgstr "Video NTSC 720x486" + +#~ msgid "NTSC video template for 720x486 resolution." +#~ msgstr "NTSC video veidne 720x486 izšķirtspÄ“jai." + +#~ msgid "NTSC video empty 720x486" +#~ msgstr "NTSC video 720x486, tukÅ¡s" + +#~ msgid "Video PAL 728x576" +#~ msgstr "Video PAL 728x576" + +#~ msgid "PAL video template for 728x576 resolution." +#~ msgstr "PAL video veidne 728x576 izšķirtspÄ“jai." + +#~ msgid "PAL video empty 728x576" +#~ msgstr "PAL video 728x576, tukÅ¡s" + +#~ msgid "Web Banner 468x60" +#~ msgstr "TÄ«mekļa reklÄmkarogs 468x60" + +#~ msgid "Empty 468x60 web banner template." +#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 468x60 veidne." + +#~ msgid "web banner 468x60 empty" +#~ msgstr "tÄ«mekļa reklÄmkarogs 468x60, tukÅ¡s" + +#~ msgid "Web Banner 728x90" +#~ msgstr "TÄ«mekļa reklÄmkarogs 728x90" + +#~ msgid "Empty 728x90 web banner template." +#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 728x90 veidne." + +#~ msgid "web banner 728x90 empty" +#~ msgstr "tÄ«mekļa reklÄmkarogs 728x90, tukÅ¡s" + +#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +#~ msgstr "PS+LaTeX: izlaist tekstu PS un izveidot LaTeX datni" + +#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +#~ msgstr "EPS+LaTeX: izlaist tekstu EPS un izveidot LaTeX datni" + +#~ msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +#~ msgstr "PDF+LaTeX: izlaist tekstu PDF un izveidot LaTeX datni" + +#~ msgid "E_nable left & right paths" +#~ msgstr "IeslÄ“gt kreiso un labo ceļus" + +#~ msgid "Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it." +#~ msgstr "Apmales platuma vadÄ«bas punkts: velciet, lai mainÄ«tu apmales platumu. Ctrl+klikšķis pievieno vadÄ«bas punktu, Ctrl+Alt+klikšķis - nodzēš." + +#~ msgid "Resolution for exporting to bitmap and for rasterization of filters in PS/EPS/PDF (default 90)" +#~ msgstr "IzšķirtspÄ“ja bitkarÅ¡u eksportam un filtru rastrēšanai PS/EPS/PDF (noklusÄ“tÄ - 90)" + +#~ msgid "Select one path to clone." +#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." + +#~ msgid "Select one path to clone." +#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." + +#~ msgid "Default _units:" +#~ msgstr "Nokl_usÄ“tÄs vienÄ«bas:" + +#~ msgid "Changed document unit" +#~ msgstr "MainÄ«tÄ dokumenta vienÄ«ba" + +#~ 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 "" +#~ "Ja Å¡is iestatÄ«jums ir iestatÄ«ts, \"SaglabÄt kÄ...\" un \"SaglabÄt kopiju\" dialoglodziņi vienmÄ“r tiks atvÄ“rti mapÄ“, kurÄ atrodas paÅ¡reiz atvÄ“rtais dokuments; ja atiestatÄ«ts, katrs tiks atvÄ“rts mapÄ“, kurÄ pÄ“dÄ“jo reizi saglabÄjÄt dokumentu " +#~ "ar to palÄ«dzÄ«bu" + +#~ msgid "Center X/Y:" +#~ msgstr "Centrs X/Y:" + +#~ msgid "Radius X/Y:" +#~ msgstr "RÄdiuss X/Y:" + +#~ msgctxt "Path handle tip" +#~ msgid "%s: drag to shape the segment (%s)" +#~ msgstr "%s: velciet, lai veidotu posmu (segmentu) (%s)" + +#~ msgid "_Templates..." +#~ msgstr "Saga_taves..." + +#~ msgid "Bounding box type :" +#~ msgstr "RobežrÄmja tips:" + +#~ msgid "Use automatic scaling to size A4" +#~ msgstr "Lietot automÄtisko mÄ“rogoÅ¡anu uz A4" + +#~ msgid "Or, use manual scale factor:" +#~ msgstr "Vai izmantojiet ar roku ievadÄ«tu mÄ“roga koeficientu:" + +#~ msgid "" +#~ "- AutoCAD Release 13 and newer.\n" +#~ "- assume dxf drawing is in mm.\n" +#~ "- assume svg drawing is in pixels, at 90 dpi.\n" +#~ "- scale factor and origin apply only to manual scaling.\n" +#~ "- layers are preserved only on File->Open, not Import.\n" +#~ "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." +#~ msgstr "" +#~ "- AutoCAD 13 un jaunÄkÄm versijÄm:\n" +#~ "- pieņemt, ka dxf rasÄ“jums ir mm.\n" +#~ "- pieņemt, ka svg rasÄ“jums ir pikseļos ar izšķirtspÄ“ju 90 dpi.\n" +#~ "- mÄ“roga koeficients un izejas punkts attiecas tikai uz rokas mÄ“rogoÅ¡anu.\n" +#~ "- slÄņi tiek saglabÄti tikai Datne->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" +#~ "- ierobežots BLOCKS atbalsts, nepiecieÅ¡amÄ«bas gadÄ«jumÄ izmantojiet AutoCAD Explode Blocks." + +#~ msgid "Base unit" +#~ msgstr "PamatvienÄ«ba" + +#~ msgid "Character Encoding" +#~ msgstr "RakstzÄ«mju kodÄ“jums" + +#~ msgid "Layer export selection" +#~ msgstr "AtlasÄ«tais slÄņa eksportam" + +#~ msgid "Layer match name" +#~ msgstr "SlÄņa nosaukuma atbilstÄ«ba" + +#~ msgid "" +#~ "- AutoCAD Release 14 DXF format.\n" +#~ "- The base unit parameter specifies in what unit the coordinates are output (90 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 "" +#~ "- AutoCAD Release 14 DXF formÄts.\n" +#~ "- Pamata vienÄ«bas parametrs norÄda vienÄ«bas, kurÄs tiek izvadÄ«tas koordinÄtes (90 px = 1 colla).\n" +#~ "- AtbalstÄ«tie elementu tipi\n" +#~ " - ceļi (lÄ«nijas un lÄ«knes)\n" +#~ " - taisnstÅ«ri\n" +#~ " - kloni (šķērsatsauces uz oriÄ£inÄlu tiek zaudÄ“tas)\n" +#~ "- ROBO-Master lÄ«kņu izvade ir specifiskas lÄ«knes, ko var izmantot tikai ar ROBO-Master un AutoDesk skatÄ«tÄjiem, nevis Inkscape.\n" +#~ "- LWPOLYLINE izvade ir daudzkÄrtÄ«gi savienota lÄ«nija; atslÄ“dziet to, lai izmantotu vÄ“sturisko LINE izvades versiju.\n" +#~ "- Varat izvÄ“lÄ“ties, vai izvadÄ«t visus slÄņus, tikai redzamos vai arÄ« ar atbilstoÅ¡iem nosaukumiem (reÄ£istrjutÄ«gs, atdalīšanai lietojiet komatu)" + +#~ msgid "Empty Page" +#~ msgstr "TukÅ¡a lapa" + #, fuzzy #~ msgid "Show helper paths" #~ msgstr "RÄdÄ«t pÄrvietojumus starp ceļiem" +#, fuzzy +#~ msgid "Leaned" +#~ msgstr "Leaned" + +#, fuzzy +#~ msgid "Start path lean" +#~ msgstr "Nosaka ceļa sÄkuma formu" + +#, fuzzy +#~ msgid "End path lean" +#~ msgstr "ceļam jÄbeidzas ar ':/'" + #~ msgid "Control handle 0 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 0 - Ctrl+Alt+Click, lai atiestatÄ«tu " @@ -33315,9 +33765,6 @@ msgstr "XAML ievade" #~ msgid "Control handle 8x9 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 8x9 - Ctrl+Alt+Click, lai atiestatÄ«tu" -#~ msgid "Control handle 10x11 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 10x11 - Ctrl+Alt+Click, lai atiestatÄ«tu" - #~ msgid "Control handle 12 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 12 - Ctrl+Alt+Click, lai atiestatÄ«tu" @@ -33342,47 +33789,27 @@ msgstr "XAML ievade" #~ msgid "Control handle 19 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 19 - Ctrl+Alt+Click, lai atiestatÄ«tu" -#~ msgid "Control handle 20x21 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 20x21 - Ctrl+Alt+Click, lai atiestatÄ«tu" +#~ msgid "Roughen unit" +#~ msgstr "RaupjoÅ¡anas vienÄ«ba" -#~ msgid "Control handle 22x23 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 22x23 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Control handle 24x26 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 24x26 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Control handle 25x27 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 25x27 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Control handle 28x30 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 28x30 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Control handle 29x31 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 29x31 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Control handle 32x33x34x35 - Ctrl+Alt+Click to reset" -#~ msgstr "VadÄ«bas turis 32x33x34x35 - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Top Left - Ctrl+Alt+Click to reset" -#~ msgstr "Augšējais kreisais - Ctrl+Alt+Click, lai atiestatÄ«tu" - -#~ msgid "Top Right - Ctrl+Alt+Click to reset" -#~ msgstr "Augšējais labais - Ctrl+Alt+Click, lai atiestatÄ«tu" +#, fuzzy +#~ msgid "Helper nodes" +#~ msgstr "Subversion palÄ«gprogramma" -#~ msgid "Down Left - Ctrl+Alt+Click to reset" -#~ msgstr "Apakšējais kreisais - Ctrl+Alt+Click, lai atiestatÄ«tu" +#, fuzzy +#~ msgid "Show helper nodes" +#~ msgstr "RÄdÄ«t pÄrveidoÅ¡anas turus atsevišķiem mezgliem" -#~ msgid "Down Right - Ctrl+Alt+Click to reset" -#~ msgstr "Apakšējais labais - Ctrl+Alt+Click, lai atiestatÄ«tu" +#, fuzzy +#~ msgid "Helper handles" +#~ msgstr "Subversion palÄ«gprogramma" -#~ msgid "%i objects selected of type %s" -#~ msgid_plural "%i objects selected of types %s" -#~ msgstr[0] "izvÄ“lÄ“ts %i objekts ar tipu %s" -#~ msgstr[1] "izvÄ“lÄ“ti %i objekti ar tipu %s" -#~ msgstr[2] "izvÄ“lÄ“ti %i objekti ar tipu %s" +#, fuzzy +#~ msgid "Show helper handles" +#~ msgstr "RÄdÄ«t turus" -#~ msgid "x-interval cannot be zero. Please modify 'Start X value' or 'End X alue'" -#~ msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X' vÄ“rtÄ«bas" +#~ msgid "%1 (%2):" +#~ msgstr "%1 (%2):" #~ msgid "Custom Width (px.):" #~ msgstr "PielÄgots platums (piks.):" @@ -33390,40 +33817,6 @@ msgstr "XAML ievade" #~ msgid "Custom Height (px.):" #~ msgstr "PielÄgot augstums (piks.):" -#~ msgid "Select a file of predefined shortcuts to use. Any customized shortcuts you create will be added seperately to " -#~ msgstr "IzvÄ“lieties datni ar iepriekÅ¡ definÄ“tÄm saÄ«snÄ“m. Visas JÅ«su izveidotÄs pielÄgotÄs saÄ«snes tiks pievienotas pie " - -#~ msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" -#~ msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X'" - -#~ msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" -#~ msgstr "y-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'Augšējais Y' vai 'Apakšējais Y'" - -#~ msgid "Pen #" -#~ msgstr "Spalva #" - -#~ msgid "KNK Zing (HPGL variant)" -#~ msgstr "KNK Zing (HPGL variants)" - -#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -#~ msgstr "PS+LaTeX: izlaist tekstu PS un izveidot LaTeX datni" - -#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -#~ msgstr "EPS+LaTeX: izlaist tekstu EPS un izveidot LaTeX datni" - -#~ msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" -#~ msgstr "PDF+LaTeX: izlaist tekstu PDF un izveidot LaTeX datni" - -#~ msgid "_Templates..." -#~ msgstr "Saga_taves..." - -#, fuzzy -#~ msgid "Miter limit" -#~ msgstr "Å Ä·autņu asums:" - -#~ msgid "Default _units:" -#~ msgstr "Nokl_usÄ“tÄs vienÄ«bas:" - #~ msgid "Always convert the text size units above into pixels (px) before saving to file" #~ msgstr "VienmÄ“r pirms saglabÄÅ¡anas datnÄ“ pÄrvÄ“rst augstÄk norÄdÄ«tÄs teksta izmÄ“ra vienÄ«bas pikseļos (px)" @@ -33433,9 +33826,6 @@ msgstr "XAML ievade" #~ msgid "(" #~ msgstr "(" -#~ msgid "Use automatic scaling to size A4" -#~ msgstr "Lietot automÄtisko mÄ“rogoÅ¡anu uz A4" - #~ msgctxt "Symbol" #~ msgid "Alternate Process" #~ msgstr "AlternatÄ«vas process" @@ -33932,249 +34322,12 @@ msgstr "XAML ievade" #~ msgid "Bike Parking" #~ msgstr "VelosipÄ“du novietne" -#~ msgid "A4 Landscape Page" -#~ msgstr "A4 lapa, ainavas skats" - -#~ msgid "Empty A4 landscape sheet" -#~ msgstr "TukÅ¡a A4 lapa, ainavas skats" - -#~ msgid "A4 paper sheet empty landscape" -#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a, ainavas skats" - -#~ msgid "A4 Page" -#~ msgstr "A4 Lapa" - -#~ msgid "Empty A4 sheet" -#~ msgstr "TukÅ¡a A4 lapa" - -#~ msgid "A4 paper sheet empty" -#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a" - -#~ msgid "Black Opaque" -#~ msgstr "Melns necauspÄ«dÄ«gs" - -#~ msgid "Empty black page" -#~ msgstr "TukÅ¡a melna lapa" - -#~ msgid "black opaque empty" -#~ msgstr "tukÅ¡s melns, necauspÄ«dÄ«gs" - -#~ msgid "White Opaque" -#~ msgstr "Balts, necaurspÄ«dÄ«gs" - -#~ msgid "Empty white page" -#~ msgstr "TukÅ¡a balta lapa" - -#~ msgid "white opaque empty" -#~ msgstr "tukÅ¡s balts, necauspÄ«dÄ«gs" - -#~ msgid "Empty business card template." -#~ msgstr "TukÅ¡a vizÄ«tkartes veidne." - -#~ msgid "business card empty 85x54" -#~ msgstr "vizÄ«tkarte 85x54mm, tukÅ¡a" - -#~ msgid "Business Card 90x50mm" -#~ msgstr "VizÄ«tkarte 90x50mm" - -#~ msgid "business card empty 90x50" -#~ msgstr "vizÄ«tkarte 90x50mm, tukÅ¡a" - -#~ msgid "CD Cover 300dpi" -#~ msgstr "CD vÄki 300 dpi" - -#~ msgid "Empty CD box cover." -#~ msgstr "TukÅ¡s CD kastÄ«tes vÄks." - -#~ msgid "CD cover disc disk 300dpi box" -#~ msgstr "CD uzlÄ«me, disks, 300 dpi rÄmis" - -#~ msgid "DVD Cover Regular 300dpi " -#~ msgstr "DVD vÄks, parasts, 300 dpi" - -#~ msgid "Template for both-sides DVD covers." -#~ msgstr "Sagatave abu puÅ¡u DVD vÄkiem." - -#~ msgid "DVD cover regular 300dpi" -#~ msgstr "DVD vÄks, parasts, 300 dpi" - -#~ msgid "DVD Cover Slim 300dpi " -#~ msgstr "DVD vÄks, plÄnais, 300 dpi" - -#~ msgid "Template for both-sides DVD slim covers." -#~ msgstr "Sagatave abu puÅ¡u DVD plÄnajiem vÄkiem." - -#~ msgid "DVD cover slim 300dpi" -#~ msgstr "DVD vÄks, plÄnais, 300 dpi" - -#~ msgid "DVD Cover Superslim 300dpi " -#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" - -#~ msgid "Template for both-sides DVD superslim covers." -#~ msgstr "Veidne abÄm superplÄno DVD vÄciņu pusÄ“m." - -#~ msgid "DVD cover superslim 300dpi" -#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" - -#~ msgid "DVD Cover Ultraslim 300dpi " -#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" - -#~ msgid "Template for both-sides DVD ultraslim covers." -#~ msgstr "Veidne abÄm ultraplÄno DVD vÄciņu pusÄ“m." - -#~ msgid "DVD cover ultraslim 300dpi" -#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" - -#~ msgid "Desktop 1024x768" -#~ msgstr "Darba virsma 1024x768" - -#~ msgid "Empty desktop size sheet" -#~ msgstr "TukÅ¡a ekrÄna darba virsmas izmÄ“ru lapa" - -#~ msgid "desktop 1024x768 wallpaper" -#~ msgstr "darba virsmas 1024x768 tapete" - -#~ msgid "Desktop 1600x1200" -#~ msgstr "Darba virsma 1600x1200" - -#~ msgid "desktop 1600x1200 wallpaper" -#~ msgstr "darba virsmas 1600x1200 tapete" - -#~ msgid "desktop 640x480 wallpaper" -#~ msgstr "darba virsmas 640x480 tapete" - -#~ msgid "Desktop 800x600" -#~ msgstr "Darba virdsma 800x600" - -#~ msgid "desktop 800x600 wallpaper" -#~ msgstr "darba virsmas 800x600 tapete" - -#~ msgid "Fontforge Glyph" -#~ msgstr "Fontforge glifs" - -#~ msgid "font fontforge glyph 1000x1000" -#~ msgstr "fontforge glifs 1000x1000" - -#~ msgid "Icon 16x16" -#~ msgstr "Ikona 16x16" - -#~ msgid "Small 16x16 icon template." -#~ msgstr "Mazas 16x16 ikonas veidne" - -#~ msgid "icon 16x16 empty" -#~ msgstr "ikona 16x16, tukÅ¡a" - -#~ msgid "Icon 32x32" -#~ msgstr "Ikona 32x32" - -#~ msgid "32x32 icon template." -#~ msgstr "32x32 ikonas veidne." - -#~ msgid "icon 32x32 empty" -#~ msgstr "ikona 32x32, tukÅ¡a" - -#~ msgid "Icon 48x48" -#~ msgstr "Ikona 48x48" - -#~ msgid "48x48 icon template." -#~ msgstr "48x48 ikonas veidne." - -#~ msgid "icon 48x48 empty" -#~ msgstr "ikona 48x48, tukÅ¡a" - -#~ msgid "Icon 64x64" -#~ msgstr "Ikona 64x64" - -#~ msgid "64x64 icon template." -#~ msgstr "64x64 ikonas veidne." - -#~ msgid "icon 64x64 empty" -#~ msgstr "ikona 64x64, tukÅ¡a" - -#~ msgid "Letter Landscape" -#~ msgstr "VÄ“stule, ainavas skats" - -#~ msgid "Standard letter landscape sheet - 792x612" -#~ msgstr "Standarta vÄ“stules lapa ainavas skatÄ - 792x612" - -#~ msgid "letter landscape 792x612 empty" -#~ msgstr "vÄ“stules, ainavas skats, 792x612, tukÅ¡a" - -#~ msgid "Letter" -#~ msgstr "Burts" - -#~ msgid "Standard letter sheet - 612x792" -#~ msgstr "Standarta vÄ“stules lapa - 612x792" - -#~ msgid "letter 612x792 empty" -#~ msgstr "vÄ“stule 612x792, tukÅ¡a" - -#~ msgid "No Borders" -#~ msgstr "Bez malÄm" - -#~ msgid "Empty sheet with no borders" -#~ msgstr "TukÅ¡a lapa bez malÄm" - -#~ msgid "no borders empty" -#~ msgstr "bez malÄm, tukÅ¡a" - -#~ msgid "Video HDTV 1920x1080" -#~ msgstr "Video HDTV 1920x1080" - -#~ msgid "HDTV video template for 1920x1080 resolution." -#~ msgstr "HDTV video veidne 1920x1080 izšķirtspÄ“jai." - -#~ msgid "HDTV video empty 1920x1080" -#~ msgstr "HDTV video 1920x1080, tukÅ¡s" - -#~ msgid "Video NTSC 720x486" -#~ msgstr "Video NTSC 720x486" - -#~ msgid "NTSC video template for 720x486 resolution." -#~ msgstr "NTSC video veidne 720x486 izšķirtspÄ“jai." - -#~ msgid "NTSC video empty 720x486" -#~ msgstr "NTSC video 720x486, tukÅ¡s" - -#~ msgid "Video PAL 728x576" -#~ msgstr "Video PAL 728x576" - -#~ msgid "PAL video template for 728x576 resolution." -#~ msgstr "PAL video veidne 728x576 izšķirtspÄ“jai." - -#~ msgid "PAL video empty 728x576" -#~ msgstr "PAL video 728x576, tukÅ¡s" - -#~ msgid "Web Banner 468x60" -#~ msgstr "TÄ«mekļa reklÄmkarogs 468x60" - -#~ msgid "Empty 468x60 web banner template." -#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 468x60 veidne." - -#~ msgid "web banner 468x60 empty" -#~ msgstr "tÄ«mekļa reklÄmkarogs 468x60, tukÅ¡s" - -#~ msgid "Web Banner 728x90" -#~ msgstr "TÄ«mekļa reklÄmkarogs 728x90" - -#~ msgid "Empty 728x90 web banner template." -#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 728x90 veidne." - -#~ msgid "web banner 728x90 empty" -#~ msgstr "tÄ«mekļa reklÄmkarogs 728x90, tukÅ¡s" - #~ msgid "Adobe PDF via poppler-cairo (*.pdf)" #~ msgstr "Adobe PDF caur poppler-cairo (*.pdf)" #~ msgid "PDF Document" #~ msgstr "PDF dokuments" -#~ msgid "Select one path to clone." -#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." - -#~ msgid "Select one path to clone." -#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." - #~ msgid "<no name found>" #~ msgstr "<nosaukums nav atrasts>" @@ -34187,19 +34340,12 @@ msgstr "XAML ievade" #~ "\n" #~ "TurpinÄt darbÄ«bu (bez saglabÄÅ¡anas)?" -#~ msgctxt "Path handle tip" -#~ msgid "%s: drag to shape the segment (%s)" -#~ msgstr "%s: velciet, lai veidotu posmu (segmentu) (%s)" - #~ msgid "_Export Bitmap..." #~ msgstr "_EksportÄ“t bitkarti..." #~ msgid "Export this document or a selection as a bitmap image" #~ msgstr "EksportÄ“t Å¡o dokumentu vai iezÄ«mÄ“to apgabalu kÄ bitkartes attÄ“lu" -#~ msgid "Empty Page" -#~ msgstr "TukÅ¡a lapa" - #~ msgid " Action: " #~ msgstr " DarbÄ«ba:" @@ -34431,15 +34577,9 @@ msgstr "XAML ievade" #~ msgid "Print unit after path length" #~ msgstr "RÄdÄ«t vienÄ«bas pÄ“c ceļa garuma" -#~ msgid "Scale x" -#~ msgstr "MÄ“rogs x" - #~ msgid "Scale factor in x direction" #~ msgstr "MÄ“rogoÅ¡anas koeficients gar x asi" -#~ msgid "Scale y" -#~ msgstr "MÄ“rogs y" - #~ msgid "Scale factor in y direction" #~ msgstr "MÄ“rogoÅ¡anas koeficients gar y asi" -- cgit v1.2.3 From 10b301c126354d9b1d4f0f220fec1d6eb75925ee Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Sun, 17 May 2015 10:33:41 +0200 Subject: Fix attributes unit test. (bzr r14158) --- src/attributes-test.h | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/attributes-test.h b/src/attributes-test.h index 7379e4e85..411304ec3 100644 --- a/src/attributes-test.h +++ b/src/attributes-test.h @@ -40,6 +40,10 @@ public: I've added these manually. SVG 2: white-space, shape-inside, shape-outside, shape-padding, shape-margin + SVG 2: text-decoration-fill, text-decoration-stroke + SVG 2: solid-color, solid-opacity + SVG 2: Hatches and Meshes + CSS 3: font-variant-xxx, font-feature-settings */ struct {char const *attr; bool supported;} const all_attrs[] = { {"attributeName", true}, @@ -124,11 +128,18 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"flood-color", true}, {"flood-opacity", true}, {"font-family", true}, + {"font-feature-settings", true}, {"font-size", true}, {"font-size-adjust", true}, {"font-stretch", true}, {"font-style", true}, {"font-variant", true}, + {"font-variant-ligatures", true}, + {"font-variant-position", true}, + {"font-variant-caps", true}, + {"font-variant-numeric", true}, + {"font-variant-east-asian", true}, + {"font-variant-alternates", true}, {"font-weight", true}, {"format", false}, {"from", true}, @@ -288,6 +299,8 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"text-decoration-line", true}, {"text-decoration-style", true}, {"text-decoration-color", true}, + {"text-decoration-fill", true}, + {"text-decoration-stroke", true}, {"text-indent", true}, {"text-rendering", true}, {"text-transform", true}, @@ -381,8 +394,11 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"inkscape:pageopacity", true}, {"inkscape:pageshadow", true}, {"inkscape:path-effect", true}, + // SPItem {"inkscape:transform-center-x", true}, {"inkscape:transform-center-y", true}, + {"inkscape:highlight-color", true}, + // Namedview {"inkscape:zoom", true}, {"inkscape:cx", true}, {"inkscape:cy", true}, @@ -392,6 +408,7 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"inkscape:window-y", true}, {"inkscape:window-maximized", true}, {"inkscape:current-layer", true}, + // Connector tool {"inkscape:connector-type", true}, {"inkscape:connection-start", true}, {"inkscape:connection-end", true}, @@ -401,10 +418,12 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"inkscape:connector-curvature", true}, {"inkscape:connector-avoid", true}, {"inkscape:connector-spacing", true}, + // Ellipse, Spiral, Star {"sodipodi:cx", true}, {"sodipodi:cy", true}, {"sodipodi:rx", true}, {"sodipodi:ry", true}, + // Box tool {"inkscape:perspectiveID", true}, {"inkscape:corner0", true}, {"inkscape:corner7", true}, @@ -414,6 +433,7 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"inkscape:vp_y", true}, {"inkscape:vp_z", true}, {"inkscape:persp3d-origin", true}, + // Star tool {"sodipodi:start", true}, {"sodipodi:end", true}, {"sodipodi:open", true}, @@ -446,9 +466,19 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"inkscape:layoutOptions", true}, {"osb:paint", true}, + /* SPSolidColor" */ + {"solid-color", true}, + {"solid-opacity", true}, + /* SPMeshPatch */ {"tensor", true}, + /* SPHash */ + {"hatchUnits", true}, + {"hatchContentUnits", true}, + {"hatchTransform", true}, + {"pitch", true}, + /* SPNamedView */ {"fit-margin-top", true}, {"fit-margin-left", true}, @@ -485,8 +515,10 @@ struct {char const *attr; bool supported;} const all_attrs[] = { {"pagecolor", true}, /* SPGuide */ - {"position", true} + {"position", true}, + /* SPTag */ + {"inkscape:expanded", true} }; -- cgit v1.2.3 From a1a3b4c11831f2a81201863556058fefcb741f4d Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 17 May 2015 12:10:12 +0200 Subject: fixed: color scales - extra row in RGB mode (bzr r14059.1.28) --- src/ui/widget/color-scales.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index ead636406..b940acbc7 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -165,6 +165,11 @@ void ColorScales::_initUI(SPColorScalesMode mode) _s[i]->signal_value_changed.connect(sigc::mem_fun(this, &ColorScales::_sliderAnyChanged)); } + //Prevent 5th bar from being shown by PanelDialog::show_all_children + gtk_widget_set_no_show_all(_l[4], TRUE); + _s[4]->set_no_show_all(true); + gtk_widget_set_no_show_all(_b[4], TRUE); + /* Initial mode is none, so it works */ setMode(mode); } -- cgit v1.2.3 From 279bb517e59386cc3a5b299cafb78c0eb81cbedd Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 17 May 2015 13:33:31 +0200 Subject: fixed: color scales - updating color when switched from undefined (bzr r14059.1.29) --- src/ui/selected-color.cpp | 13 +++---- src/ui/widget/color-icc-selector.cpp | 19 ++++++++-- src/ui/widget/color-icc-selector.h | 2 + src/ui/widget/color-scales.cpp | 69 +++++++++++++++++++++------------- src/ui/widget/color-scales.h | 2 + src/ui/widget/color-wheel-selector.cpp | 57 +++++++++++++++++----------- src/ui/widget/color-wheel-selector.h | 4 +- 7 files changed, 107 insertions(+), 59 deletions(-) diff --git a/src/ui/selected-color.cpp b/src/ui/selected-color.cpp index 6573129d3..8c37ee7e0 100644 --- a/src/ui/selected-color.cpp +++ b/src/ui/selected-color.cpp @@ -75,7 +75,7 @@ guint32 SelectedColor::value() const void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit_signal) { #ifdef DUMP_CHANGE_INFO - g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s) in %s", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit?"YES":"no"), FOO_NAME(_csel)); + g_message("SelectedColor::setColorAlpha( this=%p, %f, %f, %f, %s, %f, %s)", this, color.v.c[0], color.v.c[1], color.v.c[2], (color.icc?color.icc->colorProfile.c_str():""), alpha, (emit_signal?"YES":"no")); #endif g_return_if_fail( ( 0.0 <= alpha ) && ( alpha <= 1.0 ) ); @@ -84,11 +84,10 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit_ } #ifdef DUMP_CHANGE_INFO - g_message("---- SelectedColor::setColorAlpha virgin:%s !close:%s alpha is:%s in %s", + g_message("---- SelectedColor::setColorAlpha virgin:%s !close:%s alpha is:%s", (_virgin?"YES":"no"), - (!color.isClose( _color, _epsilon )?"YES":"no"), - ((fabs((_alpha) - (alpha)) >= _epsilon )?"YES":"no"), - FOO_NAME(_csel) + (!color.isClose( _color, _EPSILON )?"YES":"no"), + ((fabs((_alpha) - (alpha)) >= _EPSILON )?"YES":"no") ); #endif @@ -113,8 +112,8 @@ void SelectedColor::setColorAlpha(SPColor const &color, gfloat alpha, bool emit_ #ifdef DUMP_CHANGE_INFO } else { - g_message("++++ SelectedColor::setColorAlpha color:%08x ==> _color:%08X isClose:%s in %s", color.toRGBA32(alpha), _color.toRGBA32(_alpha), - (color.isClose( _color, _epsilon )?"YES":"no"), FOO_NAME(_csel)); + g_message("++++ SelectedColor::setColorAlpha color:%08x ==> _color:%08X isClose:%s", color.toRGBA32(alpha), _color.toRGBA32(_alpha), + (color.isClose( _color, _EPSILON )?"YES":"no")); #endif } } diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index a7e75bfc5..2c00ba081 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -366,8 +366,6 @@ void ColorICCSelector::init() GtkWidget *t = GTK_WIDGET(gobj()); - gtk_widget_show(t); - _impl->_compUI.clear(); // Create components @@ -523,6 +521,8 @@ void ColorICCSelector::init() _impl->_slider->signal_grabbed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderGrabbed)); _impl->_slider->signal_released.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderReleased)); _impl->_slider->signal_value_changed.connect(sigc::mem_fun(_impl, &ColorICCSelectorImpl::_sliderChanged)); + + gtk_widget_show(t); } void ColorICCSelectorImpl::_fixupHit(GtkWidget * /*src*/, gpointer data) @@ -696,6 +696,16 @@ void ColorICCSelectorImpl::_profilesChanged(std::string const &name) void ColorICCSelectorImpl::_profilesChanged(std::string const & /*name*/) {} #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) +void ColorICCSelector::on_show() +{ +#if GTK_CHECK_VERSION(3, 0, 0) + Gtk::Grid::on_show(); +#else + Gtk::Table::on_show(); +#endif + _colorChanged(); +} + // Helpers for setting color value void ColorICCSelector::_colorChanged() @@ -894,7 +904,10 @@ void ColorICCSelectorImpl::_updateSliders(gint ignore) cmsHTRANSFORM trans = _prof->getTransfToSRGB8(); if (trans) { cmsDoTransform(trans, scratch, _compUI[i]._map, 1024); - _compUI[i]._slider->setMap(_compUI[i]._map); + if (_compUI[i]._slider) + { + _compUI[i]._slider->setMap(_compUI[i]._map); + } } } } diff --git a/src/ui/widget/color-icc-selector.h b/src/ui/widget/color-icc-selector.h index 37201de3b..1bcb0a540 100644 --- a/src/ui/widget/color-icc-selector.h +++ b/src/ui/widget/color-icc-selector.h @@ -39,6 +39,8 @@ class ColorICCSelector virtual void init(); protected: + void on_show(); + virtual void _colorChanged(); void _recalcColor(gboolean changing); diff --git a/src/ui/widget/color-scales.cpp b/src/ui/widget/color-scales.cpp index b940acbc7..170f83887 100644 --- a/src/ui/widget/color-scales.cpp +++ b/src/ui/widget/color-scales.cpp @@ -205,34 +205,8 @@ void ColorScales::_recalcColor() _color.setColorAlpha(color, alpha); } -/* Helpers for setting color value */ -gfloat ColorScales::getScaled(const GtkAdjustment *a) -{ - gfloat val = gtk_adjustment_get_value(const_cast(a)) / - gtk_adjustment_get_upper(const_cast(a)); - return val; -} - -void ColorScales::setScaled(GtkAdjustment *a, gfloat v) -{ - gfloat val = v * gtk_adjustment_get_upper(a); - gtk_adjustment_set_value(a, val); -} - -void ColorScales::_setRangeLimit(gdouble upper) -{ - _rangeLimit = upper; - for (gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++) { - gtk_adjustment_set_upper(_a[i], upper); - gtk_adjustment_changed(_a[i]); - } -} - -void ColorScales::_onColorChanged() +void ColorScales::_updateDisplay() { - if (!get_visible()) { - return; - } #ifdef DUMP_CHANGE_INFO g_message("ColorScales::_onColorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2], _color.alpha()); @@ -273,6 +247,47 @@ void ColorScales::_onColorChanged() _updating = FALSE; } +/* Helpers for setting color value */ +gfloat ColorScales::getScaled(const GtkAdjustment *a) +{ + gfloat val = gtk_adjustment_get_value(const_cast(a)) / + gtk_adjustment_get_upper(const_cast(a)); + return val; +} + +void ColorScales::setScaled(GtkAdjustment *a, gfloat v) +{ + gfloat val = v * gtk_adjustment_get_upper(a); + gtk_adjustment_set_value(a, val); +} + +void ColorScales::_setRangeLimit(gdouble upper) +{ + _rangeLimit = upper; + for (gint i = 0; i < static_cast(G_N_ELEMENTS(_a)); i++) { + gtk_adjustment_set_upper(_a[i], upper); + gtk_adjustment_changed(_a[i]); + } +} + +void ColorScales::_onColorChanged() +{ + if (!get_visible()) { + return; + } + _updateDisplay(); +} + +void ColorScales::on_show() +{ +#if GTK_CHECK_VERSION(3, 0, 0) + Gtk::Grid::on_show(); +#else + Gtk::Table::on_show(); +#endif + _updateDisplay(); +} + void ColorScales::_getRgbaFloatv(gfloat *rgba) { g_return_if_fail(rgba != NULL); diff --git a/src/ui/widget/color-scales.h b/src/ui/widget/color-scales.h index 025f92e2d..aeacfbcc1 100644 --- a/src/ui/widget/color-scales.h +++ b/src/ui/widget/color-scales.h @@ -49,6 +49,7 @@ public: protected: void _onColorChanged(); + void on_show(); static void _adjustmentAnyChanged(GtkAdjustment *adjustment, ColorScales *cs); void _sliderAnyGrabbed(); @@ -61,6 +62,7 @@ protected: guint32 _getRgba32(); void _updateSliders(guint channels); void _recalcColor(); + void _updateDisplay(); void _setRangeLimit(gdouble upper); diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 8c6402d90..ed3400bb5 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -170,30 +170,19 @@ void ColorWheelSelector::_initUI() g_signal_connect(G_OBJECT(_wheel), "changed", G_CALLBACK(_wheelChanged), this); } -void ColorWheelSelector::_colorChanged() +void ColorWheelSelector::on_show() { -#ifdef DUMP_CHANGE_INFO - g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], - _color.color().v.c[1], _color.color().v.c[2], alpha); +#if GTK_CHECK_VERSION(3, 0, 0) + Gtk::Grid::on_show(); +#else + Gtk::Table::on_show(); #endif + _updateDisplay(); +} - bool oldval = _updating; - _updating = true; - { - float hsv[3] = { 0, 0, 0 }; - sp_color_rgb_to_hsv_floatv(hsv, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2]); - gimp_color_wheel_set_color(GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2]); - } - - guint32 start = _color.color().toRGBA32(0x00); - guint32 mid = _color.color().toRGBA32(0x7f); - guint32 end = _color.color().toRGBA32(0xff); - - _slider->setColors(start, mid, end); - - ColorScales::setScaled(_alpha_adjustment->gobj(), _color.alpha()); - - _updating = oldval; +void ColorWheelSelector::_colorChanged() +{ + _updateDisplay(); } void ColorWheelSelector::_adjustmentChanged() @@ -264,6 +253,32 @@ void ColorWheelSelector::_wheelChanged(GimpColorWheel *wheel, ColorWheelSelector wheelSelector->_color.setColor(color); } +void ColorWheelSelector::_updateDisplay() +{ +#ifdef DUMP_CHANGE_INFO + g_message("ColorWheelSelector::_colorChanged( this=%p, %f, %f, %f, %f)", this, _color.color().v.c[0], + _color.color().v.c[1], _color.color().v.c[2], alpha); +#endif + + bool oldval = _updating; + _updating = true; + { + float hsv[3] = { 0, 0, 0 }; + sp_color_rgb_to_hsv_floatv(hsv, _color.color().v.c[0], _color.color().v.c[1], _color.color().v.c[2]); + gimp_color_wheel_set_color(GIMP_COLOR_WHEEL(_wheel), hsv[0], hsv[1], hsv[2]); + } + + guint32 start = _color.color().toRGBA32(0x00); + guint32 mid = _color.color().toRGBA32(0x7f); + guint32 end = _color.color().toRGBA32(0xff); + + _slider->setColors(start, mid, end); + + ColorScales::setScaled(_alpha_adjustment->gobj(), _color.alpha()); + + _updating = oldval; +} + Gtk::Widget *ColorWheelSelectorFactory::createWidget(Inkscape::UI::SelectedColor &color) const { diff --git a/src/ui/widget/color-wheel-selector.h b/src/ui/widget/color-wheel-selector.h index f97f70f6a..5711d417c 100644 --- a/src/ui/widget/color-wheel-selector.h +++ b/src/ui/widget/color-wheel-selector.h @@ -48,6 +48,8 @@ public: protected: void _initUI(); + void on_show(); + void _colorChanged(); void _adjustmentChanged(); void _sliderGrabbed(); @@ -55,7 +57,7 @@ protected: void _sliderChanged(); static void _wheelChanged(GimpColorWheel *wheel, ColorWheelSelector *cs); - void _recalcColor(gboolean changing); + void _updateDisplay(); SelectedColor &_color; bool _updating; -- cgit v1.2.3 From e6770f0bb8829e60c6a8babddeb7104dcc50fea8 Mon Sep 17 00:00:00 2001 From: Tomasz Boczkowski Date: Sun, 17 May 2015 13:43:24 +0200 Subject: fixed: color icc selector - extra rows on startup (bzr r14059.1.30) --- src/ui/widget/color-icc-selector.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 2c00ba081..1c31ae33a 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -433,6 +433,7 @@ void ColorICCSelector::init() _impl->_compUI[i]._label = gtk_label_new_with_mnemonic(labelStr.c_str()); gtk_misc_set_alignment(GTK_MISC(_impl->_compUI[i]._label), 1.0, 0.5); gtk_widget_show(_impl->_compUI[i]._label); + gtk_widget_set_no_show_all(_impl->_compUI[i]._label, TRUE); attachToGridOrTable(t, _impl->_compUI[i]._label, 0, row, 1, 1); @@ -452,6 +453,7 @@ void ColorICCSelector::init() _impl->_compUI[i]._slider->set_tooltip_text("."); #endif // defined(HAVE_LIBLCMS1) || defined(HAVE_LIBLCMS2) _impl->_compUI[i]._slider->show(); + _impl->_compUI[i]._slider->set_no_show_all(); attachToGridOrTable(t, _impl->_compUI[i]._slider->gobj(), 1, row, 1, 1, true); @@ -464,6 +466,7 @@ void ColorICCSelector::init() sp_dialog_defocus_on_enter(_impl->_compUI[i]._btn); gtk_label_set_mnemonic_widget(GTK_LABEL(_impl->_compUI[i]._label), _impl->_compUI[i]._btn); gtk_widget_show(_impl->_compUI[i]._btn); + gtk_widget_set_no_show_all(_impl->_compUI[i]._btn, TRUE); attachToGridOrTable(t, _impl->_compUI[i]._btn, 2, row, 1, 1, false, true); -- cgit v1.2.3 From e0d681caf175ebcde29cd29552ab3f5254c98313 Mon Sep 17 00:00:00 2001 From: Janis Eisaks Date: Sun, 17 May 2015 17:30:51 +0300 Subject: Latvian translation update (bzr r14159) --- po/lv.po | 939 ++++++++++++++++++++++++++++----------------------------------- 1 file changed, 414 insertions(+), 525 deletions(-) diff --git a/po/lv.po b/po/lv.po index 29d6c3833..29bbc1ed5 100644 --- a/po/lv.po +++ b/po/lv.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Inkscape\n" "Report-Msgid-Bugs-To: inkscape-devel@lists.sourceforge.net\n" "POT-Creation-Date: 2015-05-11 18:05+0200\n" -"PO-Revision-Date: 2015-05-16 21:13+0200\n" +"PO-Revision-Date: 2015-05-17 17:29+0200\n" "Last-Translator: JÄnis Eisaks \n" "Language-Team: Latvian \n" "Language: lv\n" @@ -5285,9 +5285,8 @@ msgid "PostScript level 2" msgstr "PostScript level 2" #: ../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 -#, fuzzy msgid "Text output options:" -msgstr "Teksta izvades opcijas:" +msgstr "Teksta izvades papildiespÄ“jas:" #: ../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" @@ -5299,7 +5298,7 @@ msgstr "PÄrvÄ“rst tekstu par ceļiem" #: ../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 "Izlaist PDF esoÅ¡o tekstu un izveidot LaTeX failu" +msgstr "Izlaist PDF esoÅ¡o tekstu un izveidot LaTeX datni" #: ../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" @@ -5914,39 +5913,39 @@ msgstr "Akluma tips:" #: ../src/extension/internal/filter/color.h:259 msgid "Rod monochromacy (atypical achromatopsia)" -msgstr "" +msgstr "NÅ«jiņu monohromÄzija (atipiskÄ ahromatopsija)" #: ../src/extension/internal/filter/color.h:260 msgid "Cone monochromacy (typical achromatopsia)" -msgstr "" +msgstr "VÄlīšu monohromÄzija (tipiskÄ ahromatopsija)" #: ../src/extension/internal/filter/color.h:261 msgid "Green weak (deuteranomaly)" -msgstr "" +msgstr "ZaÄ¼Ä pavÄjinÄjums (deiteranomÄlija)" #: ../src/extension/internal/filter/color.h:262 msgid "Green blind (deuteranopia)" -msgstr "" +msgstr "ZaÄ¼Ä aklums (deiteranopija)" #: ../src/extension/internal/filter/color.h:263 msgid "Red weak (protanomaly)" -msgstr "" +msgstr "SarkanÄ pavÄjinÄjums (protanomÄlija)" #: ../src/extension/internal/filter/color.h:264 msgid "Red blind (protanopia)" -msgstr "" +msgstr "SarkanÄ aklums (protanopija)" #: ../src/extension/internal/filter/color.h:265 msgid "Blue weak (tritanomaly)" -msgstr "" +msgstr "ZilÄ pavÄjinÄjums (tritanomÄlija)" #: ../src/extension/internal/filter/color.h:266 msgid "Blue blind (tritanopia)" -msgstr "" +msgstr "ZilÄ aklums (tritanopija)" #: ../src/extension/internal/filter/color.h:286 msgid "Simulate color blindness" -msgstr "AtdarinÄt krÄsu aklumu" +msgstr "SimulÄ“t krÄsu aklumu" #: ../src/extension/internal/filter/color.h:329 msgid "Color Shift" @@ -8580,19 +8579,16 @@ msgid "Change only selected nodes" msgstr "MainÄ«t tikai atlasÄ«tos mezglus" #: ../src/live_effects/lpe-bspline.cpp:29 -#, fuzzy msgid "Change weight:" -msgstr "Svars" +msgstr "MainÄ«t intensitÄti:" #: ../src/live_effects/lpe-bspline.cpp:29 -#, fuzzy msgid "Change weight of the effect" -msgstr "Filtra efektu apgabala augstums" +msgstr "MainÄ«t efekta intensitÄti" #: ../src/live_effects/lpe-bspline.cpp:260 -#, fuzzy msgid "Default weight" -msgstr "NoklusÄ“tais virsraksts" +msgstr "NoklusÄ“tÄ intensitÄte" #: ../src/live_effects/lpe-bspline.cpp:265 msgid "Make cusp" @@ -8771,7 +8767,7 @@ msgstr "Auto" #: ../src/live_effects/lpe-fillet-chamfer.cpp:42 #, fuzzy msgid "Force arc" -msgstr "Loks" +msgstr "SpÄ“ks" #: ../src/live_effects/lpe-fillet-chamfer.cpp:43 #, fuzzy @@ -8791,9 +8787,8 @@ msgid "Ignore 0 radius knots" msgstr "Neņemt vÄ“rÄ mezglus ar rÄdiusu = 0" #: ../src/live_effects/lpe-fillet-chamfer.cpp:57 -#, fuzzy msgid "Flexible radius size (%)" -msgstr "IesatÄ«t elastÄ«gu izmÄ“ru" +msgstr "ElastÄ«gÄ rÄdiusa lielums (%)" #: ../src/live_effects/lpe-fillet-chamfer.cpp:58 msgid "Use knots distance instead radius" @@ -9051,247 +9046,212 @@ msgid "Change knot crossing" msgstr "MainÄ«t mezglu šķērsoÅ¡anu" #: ../src/live_effects/lpe-lattice2.cpp:47 ../src/live_effects/lpe-perspective-envelope.cpp:43 -#, fuzzy msgid "Mirror movements in horizontal" -msgstr "PÄrvietot mezglus horizontÄli" +msgstr "Spoguļot pÄrvietojumus pa horizontÄli" #: ../src/live_effects/lpe-lattice2.cpp:48 ../src/live_effects/lpe-perspective-envelope.cpp:44 -#, fuzzy msgid "Mirror movements in vertical" -msgstr "PÄrvietot mezglus vertikÄli" +msgstr "Spoguļot pÄrvietojumus pa vertikÄli" #: ../src/live_effects/lpe-lattice2.cpp:49 -#, fuzzy msgid "Control 0:" msgstr "VadÄ«bas turis 0:" #: ../src/live_effects/lpe-lattice2.cpp:49 msgid "Control 0 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 0 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:50 -#, fuzzy msgid "Control 1:" msgstr "VadÄ«bas turis 1:" #: ../src/live_effects/lpe-lattice2.cpp:50 msgid "Control 1 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 1 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:51 -#, fuzzy msgid "Control 2:" msgstr "VadÄ«bas turis 2:" #: ../src/live_effects/lpe-lattice2.cpp:51 msgid "Control 2 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 2 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:52 -#, fuzzy msgid "Control 3:" msgstr "VadÄ«bas turis 3:" #: ../src/live_effects/lpe-lattice2.cpp:52 msgid "Control 3 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 3 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:53 -#, fuzzy msgid "Control 4:" msgstr "VadÄ«bas turis 4:" #: ../src/live_effects/lpe-lattice2.cpp:53 msgid "Control 4 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 4 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:54 -#, fuzzy msgid "Control 5:" msgstr "VadÄ«bas turis 5:" #: ../src/live_effects/lpe-lattice2.cpp:54 msgid "Control 5 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 5 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:55 -#, fuzzy msgid "Control 6:" msgstr "VadÄ«bas turis 6:" #: ../src/live_effects/lpe-lattice2.cpp:55 msgid "Control 6 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 6 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:56 -#, fuzzy msgid "Control 7:" msgstr "VadÄ«bas turis 7:" #: ../src/live_effects/lpe-lattice2.cpp:56 msgid "Control 7 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 7 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:57 -#, fuzzy msgid "Control 8x9:" msgstr "VadÄ«bas turis 8x9:" #: ../src/live_effects/lpe-lattice2.cpp:57 msgid "Control 8x9 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 8x9 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:58 -#, fuzzy msgid "Control 10x11:" msgstr "VadÄ«bas turis 10x11:" #: ../src/live_effects/lpe-lattice2.cpp:58 -#, fuzzy msgid "Control 10x11 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 10x11 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 10x11 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:59 -#, fuzzy msgid "Control 12:" msgstr "VadÄ«bas turis 12:" #: ../src/live_effects/lpe-lattice2.cpp:59 msgid "Control 12 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 12 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:60 -#, fuzzy msgid "Control 13:" msgstr "VadÄ«bas turis 13:" #: ../src/live_effects/lpe-lattice2.cpp:60 msgid "Control 13 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 13 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:61 -#, fuzzy msgid "Control 14:" msgstr "VadÄ«bas turis 14:" #: ../src/live_effects/lpe-lattice2.cpp:61 msgid "Control 14 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 14 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:62 -#, fuzzy msgid "Control 15:" msgstr "VadÄ«bas turis 15:" #: ../src/live_effects/lpe-lattice2.cpp:62 msgid "Control 15 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 15 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:63 -#, fuzzy msgid "Control 16:" msgstr "VadÄ«bas turis 16:" #: ../src/live_effects/lpe-lattice2.cpp:63 msgid "Control 16 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 16 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:64 -#, fuzzy msgid "Control 17:" msgstr "VadÄ«bas turis 17:" #: ../src/live_effects/lpe-lattice2.cpp:64 msgid "Control 17 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 17 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:65 -#, fuzzy msgid "Control 18:" msgstr "VadÄ«bas turis 18:" #: ../src/live_effects/lpe-lattice2.cpp:65 msgid "Control 18 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 18 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:66 -#, fuzzy msgid "Control 19:" msgstr "VadÄ«bas turis 19:" #: ../src/live_effects/lpe-lattice2.cpp:66 msgid "Control 19 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "" +msgstr "VadÄ«bas turis 19 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:67 -#, fuzzy msgid "Control 20x21:" msgstr "VadÄ«bas turis 20x21:" #: ../src/live_effects/lpe-lattice2.cpp:67 -#, fuzzy msgid "Control 20x21 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 20x21 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 20x21 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:68 -#, fuzzy msgid "Control 22x23:" msgstr "VadÄ«bas turis 22x23:" #: ../src/live_effects/lpe-lattice2.cpp:68 -#, fuzzy msgid "Control 22x23 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 22x23 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 22x23 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:69 -#, fuzzy msgid "Control 24x26:" msgstr "VadÄ«bas turis 24x26:" #: ../src/live_effects/lpe-lattice2.cpp:69 -#, fuzzy msgid "Control 24x26 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 24x26 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 24x26 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:70 -#, fuzzy msgid "Control 25x27:" msgstr "VadÄ«bas turis 25x27:" #: ../src/live_effects/lpe-lattice2.cpp:70 -#, fuzzy msgid "Control 25x27 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 25x27 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 25x27 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:71 -#, fuzzy msgid "Control 28x30:" msgstr "VadÄ«bas turis 28x30:" #: ../src/live_effects/lpe-lattice2.cpp:71 -#, fuzzy msgid "Control 28x30 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 28x30 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 28x30 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:72 -#, fuzzy msgid "Control 29x31:" msgstr "VadÄ«bas turis 29x31:" #: ../src/live_effects/lpe-lattice2.cpp:72 -#, fuzzy msgid "Control 29x31 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 29x31 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 29x31 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:73 -#, fuzzy msgid "Control 32x33x34x35:" msgstr "VadÄ«bas turis 32x33x34x35:" #: ../src/live_effects/lpe-lattice2.cpp:73 -#, fuzzy msgid "Control 32x33x34x35 - Ctrl+Alt+Click: reset, Ctrl: move along axes" -msgstr "VadÄ«bas turis 32x33x34x35 - Ctrl+Alt+Click, lai atiestatÄ«tu" +msgstr "VadÄ«bas turis 32x33x34x35 - Ctrl+Alt+Click: atiestatÄ«t, Ctrl: pÄrvietot gar asÄ«m" #: ../src/live_effects/lpe-lattice2.cpp:236 #, fuzzy @@ -9299,14 +9259,12 @@ msgid "Reset grid" msgstr "AtstatÄ«t" #: ../src/live_effects/lpe-lattice2.cpp:268 ../src/live_effects/lpe-lattice2.cpp:283 -#, fuzzy msgid "Show Points" msgstr "RÄdÄ«t punktus" #: ../src/live_effects/lpe-lattice2.cpp:281 -#, fuzzy msgid "Hide Points" -msgstr "~SlÄ“pt" +msgstr "SlÄ“pt punktus" #: ../src/live_effects/lpe-patternalongpath.cpp:50 ../share/extensions/pathalongpath.inx.h:10 msgid "Single" @@ -9684,16 +9642,16 @@ msgstr "Segmentu skaits" #: ../src/live_effects/lpe-roughen.cpp:44 msgid "Max. displacement in X" -msgstr "Maks. X pÄrvietojums" +msgstr "Maks. pÄrvietojums gar X" #: ../src/live_effects/lpe-roughen.cpp:46 msgid "Max. displacement in Y" -msgstr "Maks. Y pÄrvietojums" +msgstr "Maks. pÄrvietojums gar Y" #: ../src/live_effects/lpe-roughen.cpp:48 #, fuzzy msgid "Global randomize" -msgstr "Sajaukt" +msgstr "_Sajaukt" #: ../src/live_effects/lpe-roughen.cpp:50 ../share/extensions/radiusrand.inx.h:5 msgid "Shift nodes" @@ -9708,9 +9666,8 @@ msgid "Add nodes Subdivide each segment" msgstr "Pievienot mezglus sadalÄ«t katru posmu sÄ«kÄk" #: ../src/live_effects/lpe-roughen.cpp:109 -#, fuzzy msgid "Jitter nodes Move nodes/handles" -msgstr "Jitter nodes Move nodes/handles" +msgstr "TricinÄt mezglus PÄrvietot mezglus/turus" #: ../src/live_effects/lpe-roughen.cpp:118 msgid "Extra roughen Add a extra layer of rough" @@ -9844,12 +9801,11 @@ msgstr "NorÄdiet vienkÄrÅ¡oÅ¡anas soļu skaitu" #: ../src/live_effects/lpe-simplify.cpp:31 #, fuzzy msgid "Roughly threshold:" -msgstr "Slieksnis" +msgstr "ApmÄ“ram iezÄ«mÄ“jiet izvelkamo objektu" #: ../src/live_effects/lpe-simplify.cpp:32 -#, fuzzy msgid "Smooth angles:" -msgstr "Gludums:" +msgstr "NogludinÄt leņķus:" #: ../src/live_effects/lpe-simplify.cpp:32 msgid "Max degree difference on handles to preform a smooth" @@ -10013,9 +9969,8 @@ msgid "Stroke width:" msgstr "Apmales platums:" #: ../src/live_effects/lpe-taperstroke.cpp:74 -#, fuzzy msgid "The (non-tapered) width of the path" -msgstr "Ceļa platums" +msgstr "Ceļa (nesmailinÄta) platums" #: ../src/live_effects/lpe-taperstroke.cpp:75 msgid "Start offset:" @@ -10030,19 +9985,16 @@ msgid "End offset:" msgstr "Beigu nobÄ«de:" #: ../src/live_effects/lpe-taperstroke.cpp:76 -#, fuzzy msgid "The ending position of the taper" -msgstr "PÄrsteidzoÅ¡Äs beigas" +msgstr "SmailinÄjuma gala pozÄ«cija" #: ../src/live_effects/lpe-taperstroke.cpp:77 -#, fuzzy msgid "Taper smoothing:" -msgstr "GludinÄÅ¡ana:" +msgstr "SmailinÄjuma gludinÄjums:" #: ../src/live_effects/lpe-taperstroke.cpp:77 -#, fuzzy msgid "Amount of smoothing to apply to the tapers" -msgstr "NorÄda, kÄdu gofrēšanas apjomu veikt attÄ“lam (procentos)" +msgstr "Smailinajuma gludinÄjuma lielums" #: ../src/live_effects/lpe-taperstroke.cpp:78 #, fuzzy @@ -10060,14 +10012,12 @@ msgid "Limit for miter joins" msgstr "Å Ä·autņu asums:" #: ../src/live_effects/lpe-taperstroke.cpp:448 -#, fuzzy msgid "Start point of the taper" -msgstr "SÄkt tranportu no šī lÄ«knes punkta" +msgstr "SmailinÄjuma sÄkumpunkts" #: ../src/live_effects/lpe-taperstroke.cpp:452 -#, fuzzy msgid "End point of the taper" -msgstr "Beigu punkts" +msgstr "SmailinÄjuma beigu punkts" #: ../src/live_effects/lpe-vonkoch.cpp:46 msgid "N_r of generations:" @@ -11381,12 +11331,12 @@ msgid "Use Shift+D to look up frame" msgstr "Izmantojiet Shift+D, lai sameklÄ“tu rÄmi" #: ../src/selection-describer.cpp:236 -#, fuzzy, c-format +#, c-format msgid "%1$i objects selected of type %2$s" msgid_plural "%1$i objects selected of types %2$s" -msgstr[0] "izvÄ“lÄ“ts %i objekts ar tipu %s" -msgstr[1] "izvÄ“lÄ“ti %i objekti ar tipu %s" -msgstr[2] "izvÄ“lÄ“ti %i objekti ar tipu %s" +msgstr[0] "AtlasÄ«ts %1$i %2$s tipa objekts" +msgstr[1] "AtlasÄ«ti %1$i %2$s tipa objekti" +msgstr[2] "AtlasÄ«ti %1$i %2$s tipa objekti" #: ../src/selection-describer.cpp:246 #, c-format @@ -16187,9 +16137,8 @@ msgid "Indonesian (id)" msgstr "IndonÄ“zijas (id)" #: ../src/ui/dialog/inkscape-preferences.cpp:532 -#, fuzzy msgid "Icelandic (is)" -msgstr "IslandieÅ¡u (is)" +msgstr "ĪslandieÅ¡u (is)" #: ../src/ui/dialog/inkscape-preferences.cpp:532 msgid "Italian (it)" @@ -17760,7 +17709,6 @@ msgid "Bitmaps" msgstr "Bitkartes" #: ../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 separately to " msgstr "IzvÄ“lieties datni ar iepriekÅ¡ definÄ“tÄm saÄ«snÄ“m. Visas JÅ«su izveidotÄs pielÄgotÄs saÄ«snes tiks pievienotas pie " @@ -18461,9 +18409,8 @@ msgid "Set object description" msgstr "IestatÄ«t objekta aprakstu" #: ../src/ui/dialog/object-properties.cpp:535 -#, fuzzy msgid "Set image rendering option" -msgstr "IekÄrtas renderÄ“juma nolÅ«ks:" +msgstr "Iestatiet attÄ“la renderēšanas papildiespÄ“ju" #: ../src/ui/dialog/object-properties.cpp:554 msgid "Lock object" @@ -19120,34 +19067,28 @@ msgid "Unnamed Symbols" msgstr "Nenosaukti simboli" #: ../src/ui/dialog/tags.cpp:274 ../src/ui/dialog/tags.cpp:573 ../src/ui/dialog/tags.cpp:687 -#, fuzzy msgid "Remove from selection set" -msgstr "IzpludinÄtÄs iezÄ«mÄ“juma malas padarÄ«t atkal asas" +msgstr "AizvÄkt no atlases kopas" #: ../src/ui/dialog/tags.cpp:431 -#, fuzzy msgid "Items" -msgstr "VienÄ«bas" +msgstr "Vienumi" #: ../src/ui/dialog/tags.cpp:670 -#, fuzzy msgid "Add selection to set" -msgstr "Pievienot iezÄ«mÄ“jum_am" +msgstr "Pievienot atlasÄ«to kopai" #: ../src/ui/dialog/tags.cpp:828 -#, fuzzy msgid "Moved sets" -msgstr "PÄrvietots" +msgstr "PÄrvietotÄs kopas" #: ../src/ui/dialog/tags.cpp:998 -#, fuzzy msgid "Add a new selection set" -msgstr "Pievienot iezÄ«mÄ“tajam" +msgstr "Pievienot jaunu atlases kopu" #: ../src/ui/dialog/tags.cpp:1007 -#, fuzzy msgid "Remove Item/Set" -msgstr "Izņemt Å¡o vienÄ«bu" +msgstr "AizvÄkt vienumu/kopu" #: ../src/ui/dialog/template-widget.cpp:37 msgid "More info" @@ -20943,18 +20884,16 @@ msgid "Click or click and drag to close and finish the path." msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai noslÄ“gtu un pabeigtu ceļu." #: ../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 "Uzklikšķiniet vai uzklikšķiniet un velciet, lai noslÄ“gtu un pabeigtu ceļu." +msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai noslÄ“gtu un pabeigtu ceļu. Shift+klikšķis izveido aso mezglu." #: ../src/ui/tools/pen-tool.cpp:651 msgid "Click or click and drag to continue the path from this point." msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai turpinÄtu ceļu no šī punkta." #: ../src/ui/tools/pen-tool.cpp:653 -#, fuzzy msgid "Click or click and drag to continue the path from this point. Shift+Click make a cusp node" -msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai turpinÄtu ceļu no šī punkta." +msgstr "Uzklikšķiniet vai uzklikšķiniet un velciet, lai turpinÄtu ceļu no šī punkta. Shift+klikšķis izveido aso mezglu." #: ../src/ui/tools/pen-tool.cpp:2027 #, c-format @@ -20967,14 +20906,14 @@ msgid "Line segment: angle %3.2f°, distance %s; with Ctrl to msgstr "LÄ«nijas posms: leņķis %3.2f°, attÄlums %s; ar Ctrl - pievilkt leņķim, Enter - pabeigt ceļu" #: ../src/ui/tools/pen-tool.cpp:2031 -#, fuzzy, c-format +#, c-format msgid "Curve segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" -msgstr "LÄ«knes posms: leņķis %3.2f°, attÄlums %s; ar Ctrl-pievilkt leņķim, Enter - pabeigt ceļu" +msgstr "LÄ«knes posms: leņķis %3.2f°, attÄlums %s; Shift+klikšķi izveido aso mezglu, Enter - pabeigt ceļu" #: ../src/ui/tools/pen-tool.cpp:2032 -#, fuzzy, c-format +#, c-format msgid "Line segment: angle %3.2f°, distance %s; with Shift+Click make a cusp node, Enter to finish the path" -msgstr "LÄ«nijas posms: leņķis %3.2f°, attÄlums %s; ar Ctrl - pievilkt leņķim, Enter - pabeigt ceļu" +msgstr "LÄ«nijas posms: leņķis %3.2f°, attÄlums %s; Shift+klikšķi izveido aso mezglu, Enter - pabeigt ceļu" #: ../src/ui/tools/pen-tool.cpp:2049 #, c-format @@ -21581,12 +21520,12 @@ msgstr "Iestatiet lapas izmÄ“ru" #: ../src/ui/widget/page-sizer.cpp:834 msgid "User units per " -msgstr "" +msgstr "LietotÄja vienÄ«bas katrÄ" #: ../src/ui/widget/page-sizer.cpp:930 #, fuzzy msgid "Set page scale" -msgstr "Iestatiet lapas izmÄ“ru" +msgstr "Lapu komplekts" #: ../src/ui/widget/page-sizer.cpp:956 #, fuzzy @@ -22231,9 +22170,8 @@ msgid "Flip vertically" msgstr "Apmest vertikÄli" #: ../src/verbs.cpp:1583 ../src/verbs.cpp:2696 -#, fuzzy msgid "Create new selection set" -msgstr "Klikšķiniet un pavelciet, lai izveidotu jaunu iezÄ«mÄ“jumu" +msgstr "Izveidot jaunu atlases kopu" #. 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 @@ -24126,9 +24064,8 @@ msgid "View Objects" msgstr "SkatÄ«t objektus" #: ../src/verbs.cpp:2911 -#, fuzzy msgid "Selection se_ts..." -msgstr "Ts" +msgstr "A_tlases kopas..." #: ../src/verbs.cpp:2912 msgid "View Tags" @@ -25355,9 +25292,8 @@ msgid "The units to be used for the measurements" msgstr "MÄ“rīšanai izmantojamÄs mÄ“rvienÄ«bas" #: ../src/widgets/mesh-toolbar.cpp:313 -#, fuzzy msgid "Set mesh type" -msgstr "IestatÄ«t teksta stilu" +msgstr "" #: ../src/widgets/mesh-toolbar.cpp:336 msgid "normal" @@ -25425,7 +25361,7 @@ msgstr "RÄdÄ«t malas un tenzora turus" #: ../src/widgets/mesh-toolbar.cpp:465 msgid "WARNING: Mesh SVG Syntax Subject to Change" -msgstr "WARNING: Mesh SVG sintakse tiks mainÄ«ta" +msgstr "" #: ../src/widgets/mesh-toolbar.cpp:475 msgctxt "Type" @@ -25434,7 +25370,7 @@ msgstr "" #: ../src/widgets/mesh-toolbar.cpp:478 msgid "Bicubic" -msgstr "" +msgstr "Bikubisks" #: ../src/widgets/mesh-toolbar.cpp:480 msgid "Coons" @@ -27376,7 +27312,7 @@ msgstr "NepiecieÅ¡ami vismaz 2 atlasÄ«ti ceļi" #: ../share/extensions/funcplot.py:48 msgid "x-interval cannot be zero. Please modify 'Start X value' or 'End X value'" -msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X vÄ“rtÄ«ba' vai 'Beigu X vÄ“rtÄ«ba'" +msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X' vÄ“rtÄ«bas" #: ../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'" @@ -27579,7 +27515,7 @@ msgstr "LÅ«dzu, atlasiet kÄdu objektu" #: ../share/extensions/gimp_xcf.py:39 msgid "Inkscape must be installed and set in your path variable." -msgstr "Inkscape jÄbÅ«t uzstÄdÄ«tai un tÄs atraÅ¡anÄs vietai pievienotai ceļa mainÄ«gajÄ PATH." +msgstr "Inkscape ir jÄbÅ«t uzstÄdÄ«tai un tÄs atraÅ¡anÄs vietai jÄbÅ«t iestatÄ«tai ceļa mainÄ«gajÄ PATH." #: ../share/extensions/gimp_xcf.py:43 msgid "Gimp must be installed and set in your path variable." @@ -27642,7 +27578,7 @@ msgstr "Nav iespÄ“jams atvÄ“rt norÄdÄ«to datni: %s" #: ../share/extensions/inkex.py:178 #, python-format msgid "Unable to open object member file: %s" -msgstr "Nav iespÄ“jams atvÄ“rt objekta locekļa datni: %s" +msgstr "Nav iespÄ“jams atvÄ“rt norÄdÄ«to datni: %s" #: ../share/extensions/inkex.py:283 #, python-format @@ -28675,8 +28611,9 @@ msgid "Method of Scaling:" msgstr "MÄ“rogoÅ¡anas metode:" #: ../share/extensions/dxf_input.inx.h:4 +#, fuzzy msgid "Manual scale factor:" -msgstr "Rokas mÄ“roga koeficients:" +msgstr "Vai izmantojiet ar roku ievadÄ«tu mÄ“roga koeficientu:" #: ../share/extensions/dxf_input.inx.h:5 msgid "Manual x-axis origin (mm):" @@ -28699,7 +28636,6 @@ msgid "Text Font:" msgstr "Teksta fonts:" #: ../share/extensions/dxf_input.inx.h:11 -#, fuzzy msgid "" "- AutoCAD Release 13 and newer.\n" "- for manual scaling, assume dxf drawing is in mm.\n" @@ -28711,12 +28647,12 @@ msgid "" "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." msgstr "" "- AutoCAD 13 un jaunÄkÄm versijÄm:\n" -"- pieņemt, ka dxf rasÄ“jums ir mm.\n" +"- mÄ“rogoÅ¡anai ar roku pieņemt, ka dxf rasÄ“jums ir mm.\n" "- pieņemt, ka svg rasÄ“jums ir pikseļos ar izšķirtspÄ“ju 96 dpi.\n" "- mÄ“roga koeficients un izejas punkts attiecas tikai uz rokas mÄ“rogoÅ¡anu.\n" -"- 'Automatic scaling' will fit the width of an A4 page.\n" -"- 'Read from file' uses the variable $MEASUREMENT.\n" -"- slÄņi tiek saglabÄti tikai Fails->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" +"- 'AutomÄtiskÄ mÄ“rogoÅ¡ana' ietilpinÄs platumu A4 lapÄ.\n" +"- 'LasÄ«t no datnes' izmanto mainÄ«go $MEASUREMENT.\n" +"- slÄņi tiek saglabÄti tikai Datne->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" "- ierobežots BLOCKS atbalsts, nepiecieÅ¡amÄ«bas gadÄ«jumÄ izmantojiet AutoCAD Explode Blocks." #: ../share/extensions/dxf_input.inx.h:19 @@ -30029,6 +29965,7 @@ msgid "Regular guides" msgstr "RegulÄras palÄ«glÄ«nijas" #: ../share/extensions/guides_creator.inx.h:3 +#, fuzzy msgid "Guides preset:" msgstr "PalÄ«glÄ«niju priekÅ¡iestatÄ«jumi:" @@ -30403,6 +30340,8 @@ msgstr "AtzÄ«mÄ“jiet Å¡o, ja JÅ«su ploteris izmantot centrÄ“to nulles punktu. (N #: ../share/extensions/hpgl_output.inx.h:22 ../share/extensions/plotter.inx.h:52 msgid "If you want to use multiple pens on your pen plotter create one layer for each pen, name the layers \"Pen 1\", \"Pen 2\", etc., and put your drawings in the corresponding layers. This overrules the pen number option above." msgstr "" +"Ja vÄ“laties izmantot vairÄkas plotera spalvas, izveidojiet atsevišķu slÄni katrai spalvai, nosaucot tos \"Pen 1\", \"Pen 2\", utt., un novietojies savus zÄ«mÄ“jumus atbilstoÅ¡ajos slÄņos. Tas apies augstÄk norÄdÄ«to spalvas numura " +"papildiespÄ“ju." #: ../share/extensions/hpgl_output.inx.h:23 ../share/extensions/plotter.inx.h:53 msgid "Plot Features " @@ -31714,11 +31653,11 @@ msgstr "IzmantojamÄ komandu valoda. (NoklusÄ“tÄ: HPGL)" #: ../share/extensions/plotter.inx.h:21 msgid "Initialization commands:" -msgstr "InicializÄcijas komandas:" +msgstr "Inicializēšanas komandas:" #: ../share/extensions/plotter.inx.h:22 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 "Ploterim pirms galvenÄs datu plÅ«smas nosÅ«tÄmÄs komandas. Izmantojiet to tikai gadÄ«jumÄ, ja apzinÄties, ko darÄt! (NoklusÄ“tais: tukÅ¡s) " +msgstr "Komandas, kas tiks nosÅ«tÄ«tas ploterim pirms galvenÄs datu plÅ«smas, izmantojiet to tikai gadÄ«jumÄ, ja saprotat, ko darÄt (NoklusÄ“tais: tukÅ¡s)" #: ../share/extensions/plotter.inx.h:23 msgid "Software (XON/XOFF)" @@ -31747,7 +31686,7 @@ msgstr "DMPL" #: ../share/extensions/plotter.inx.h:29 msgid "KNK Plotter (HPGL variant)" -msgstr "KNK Ploteris (HPGL variants)" +msgstr "KNK ploteris (HPGL variants)" #: ../share/extensions/plotter.inx.h:30 msgid "Using wrong settings can under certain circumstances cause Inkscape to freeze. Always save your work before plotting!" @@ -33374,369 +33313,43 @@ msgstr "Bieži lietots galeriju attÄ“lu grafiskais formÄts " msgid "XAML Input" msgstr "XAML ievade" -#~ msgid "A4 Landscape Page" -#~ msgstr "A4 lapa, ainavas skats" - -#~ msgid "Empty A4 landscape sheet" -#~ msgstr "TukÅ¡a A4 lapa, ainavas skats" - -#~ msgid "A4 paper sheet empty landscape" -#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a, ainavas skats" - -#~ msgid "A4 Page" -#~ msgstr "A4 Lapa" - -#~ msgid "Empty A4 sheet" -#~ msgstr "TukÅ¡a A4 lapa" - -#~ msgid "A4 paper sheet empty" -#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a" - -#~ msgid "Black Opaque" -#~ msgstr "Melns necauspÄ«dÄ«gs" - -#~ msgid "Empty black page" -#~ msgstr "TukÅ¡a melna lapa" - -#~ msgid "black opaque empty" -#~ msgstr "tukÅ¡s melns, necauspÄ«dÄ«gs" - -#~ msgid "White Opaque" -#~ msgstr "Balts, necaurspÄ«dÄ«gs" - -#~ msgid "Empty white page" -#~ msgstr "TukÅ¡a balta lapa" - -#~ msgid "white opaque empty" -#~ msgstr "tukÅ¡s balts, necauspÄ«dÄ«gs" - -#~ msgid "Business Card 85x54mm" -#~ msgstr "VizÄ«tkarte 85x54mm" - -#~ msgid "Empty business card template." -#~ msgstr "TukÅ¡a vizÄ«tkartes veidne." - -#~ msgid "business card empty 85x54" -#~ msgstr "vizÄ«tkarte 85x54mm, tukÅ¡a" - -#~ msgid "Business Card 90x50mm" -#~ msgstr "VizÄ«tkarte 90x50mm" - -#~ msgid "business card empty 90x50" -#~ msgstr "vizÄ«tkarte 90x50mm, tukÅ¡a" - -#~ msgid "CD Cover 300dpi" -#~ msgstr "CD vÄki 300 dpi" - -#~ msgid "Empty CD box cover." -#~ msgstr "TukÅ¡s CD kastÄ«tes vÄks." - -#~ msgid "CD cover disc disk 300dpi box" -#~ msgstr "CD uzlÄ«me, disks, 300 dpi rÄmis" - -#~ msgid "CD Label 120x120 " -#~ msgstr "CD etiÄ·ete 120x120" - -#~ msgid "DVD Cover Regular 300dpi " -#~ msgstr "DVD vÄks, parasts, 300 dpi" - -#~ msgid "Template for both-sides DVD covers." -#~ msgstr "Sagatave abu puÅ¡u DVD vÄkiem." - -#~ msgid "DVD cover regular 300dpi" -#~ msgstr "DVD vÄks, parasts, 300 dpi" - -#~ msgid "DVD Cover Slim 300dpi " -#~ msgstr "DVD vÄks, plÄnais, 300 dpi" - -#~ msgid "Template for both-sides DVD slim covers." -#~ msgstr "Sagatave abu puÅ¡u DVD plÄnajiem vÄkiem." - -#~ msgid "DVD cover slim 300dpi" -#~ msgstr "DVD vÄks, plÄnais, 300 dpi" - -#~ msgid "DVD Cover Superslim 300dpi " -#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" - -#~ msgid "Template for both-sides DVD superslim covers." -#~ msgstr "Veidne abÄm superplÄno DVD vÄciņu pusÄ“m." - -#~ msgid "DVD cover superslim 300dpi" -#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" - -#~ msgid "DVD Cover Ultraslim 300dpi " -#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" - -#~ msgid "Template for both-sides DVD ultraslim covers." -#~ msgstr "Veidne abÄm ultraplÄno DVD vÄciņu pusÄ“m." - -#~ msgid "DVD cover ultraslim 300dpi" -#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" - -#~ msgid "Desktop 1024x768" -#~ msgstr "Darba virsma 1024x768" - -#~ msgid "Empty desktop size sheet" -#~ msgstr "TukÅ¡a ekrÄna darba virsmas izmÄ“ru lapa" - -#~ msgid "desktop 1024x768 wallpaper" -#~ msgstr "darba virsmas 1024x768 tapete" - -#~ msgid "Desktop 1600x1200" -#~ msgstr "Darba virsma 1600x1200" - -#~ msgid "desktop 1600x1200 wallpaper" -#~ msgstr "darba virsmas 1600x1200 tapete" - -#~ msgid "Desktop 640x480" -#~ msgstr "Darba virsma 640x480" - -#~ msgid "desktop 640x480 wallpaper" -#~ msgstr "darba virsmas 640x480 tapete" - -#~ msgid "Desktop 800x600" -#~ msgstr "Darba virdsma 800x600" - -#~ msgid "desktop 800x600 wallpaper" -#~ msgstr "darba virsmas 800x600 tapete" - -#~ msgid "Fontforge Glyph" -#~ msgstr "Fontforge glifs" - -#~ msgid "font fontforge glyph 1000x1000" -#~ msgstr "fontforge glifs 1000x1000" - -#~ msgid "Icon 16x16" -#~ msgstr "Ikona 16x16" - -#~ msgid "Small 16x16 icon template." -#~ msgstr "Mazas 16x16 ikonas veidne" - -#~ msgid "icon 16x16 empty" -#~ msgstr "ikona 16x16, tukÅ¡a" - -#~ msgid "Icon 32x32" -#~ msgstr "Ikona 32x32" - -#~ msgid "32x32 icon template." -#~ msgstr "32x32 ikonas veidne." - -#~ msgid "icon 32x32 empty" -#~ msgstr "ikona 32x32, tukÅ¡a" - -#~ msgid "Icon 48x48" -#~ msgstr "Ikona 48x48" - -#~ msgid "48x48 icon template." -#~ msgstr "48x48 ikonas veidne." - -#~ msgid "icon 48x48 empty" -#~ msgstr "ikona 48x48, tukÅ¡a" - -#~ msgid "Icon 64x64" -#~ msgstr "Ikona 64x64" - -#~ msgid "64x64 icon template." -#~ msgstr "64x64 ikonas veidne." - -#~ msgid "icon 64x64 empty" -#~ msgstr "ikona 64x64, tukÅ¡a" - -#~ msgid "Letter Landscape" -#~ msgstr "VÄ“stule, ainavas skats" - -#~ msgid "Standard letter landscape sheet - 792x612" -#~ msgstr "Standarta vÄ“stules lapa ainavas skatÄ - 792x612" - -#~ msgid "letter landscape 792x612 empty" -#~ msgstr "vÄ“stules, ainavas skats, 792x612, tukÅ¡a" - -#~ msgid "Letter" -#~ msgstr "Burts" - -#~ msgid "Standard letter sheet - 612x792" -#~ msgstr "Standarta vÄ“stules lapa - 612x792" - -#~ msgid "letter 612x792 empty" -#~ msgstr "vÄ“stule 612x792, tukÅ¡a" - -#~ msgid "No Borders" -#~ msgstr "Bez malÄm" - -#~ msgid "Empty sheet with no borders" -#~ msgstr "TukÅ¡a lapa bez malÄm" - -#~ msgid "no borders empty" -#~ msgstr "bez malÄm, tukÅ¡a" - -#~ msgid "Video HDTV 1920x1080" -#~ msgstr "Video HDTV 1920x1080" - -#~ msgid "HDTV video template for 1920x1080 resolution." -#~ msgstr "HDTV video veidne 1920x1080 izšķirtspÄ“jai." - -#~ msgid "HDTV video empty 1920x1080" -#~ msgstr "HDTV video 1920x1080, tukÅ¡s" - -#~ msgid "Video NTSC 720x486" -#~ msgstr "Video NTSC 720x486" - -#~ msgid "NTSC video template for 720x486 resolution." -#~ msgstr "NTSC video veidne 720x486 izšķirtspÄ“jai." - -#~ msgid "NTSC video empty 720x486" -#~ msgstr "NTSC video 720x486, tukÅ¡s" - -#~ msgid "Video PAL 728x576" -#~ msgstr "Video PAL 728x576" - -#~ msgid "PAL video template for 728x576 resolution." -#~ msgstr "PAL video veidne 728x576 izšķirtspÄ“jai." - -#~ msgid "PAL video empty 728x576" -#~ msgstr "PAL video 728x576, tukÅ¡s" - -#~ msgid "Web Banner 468x60" -#~ msgstr "TÄ«mekļa reklÄmkarogs 468x60" - -#~ msgid "Empty 468x60 web banner template." -#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 468x60 veidne." - -#~ msgid "web banner 468x60 empty" -#~ msgstr "tÄ«mekļa reklÄmkarogs 468x60, tukÅ¡s" - -#~ msgid "Web Banner 728x90" -#~ msgstr "TÄ«mekļa reklÄmkarogs 728x90" - -#~ msgid "Empty 728x90 web banner template." -#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 728x90 veidne." - -#~ msgid "web banner 728x90 empty" -#~ msgstr "tÄ«mekļa reklÄmkarogs 728x90, tukÅ¡s" - -#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" -#~ msgstr "PS+LaTeX: izlaist tekstu PS un izveidot LaTeX datni" - -#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" -#~ msgstr "EPS+LaTeX: izlaist tekstu EPS un izveidot LaTeX datni" - -#~ msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" -#~ msgstr "PDF+LaTeX: izlaist tekstu PDF un izveidot LaTeX datni" - -#~ msgid "E_nable left & right paths" -#~ msgstr "IeslÄ“gt kreiso un labo ceļus" - -#~ msgid "Stroke width control point: drag to alter the stroke width. Ctrl+click adds a control point, Ctrl+Alt+click deletes it." -#~ msgstr "Apmales platuma vadÄ«bas punkts: velciet, lai mainÄ«tu apmales platumu. Ctrl+klikšķis pievieno vadÄ«bas punktu, Ctrl+Alt+klikšķis - nodzēš." - -#~ msgid "Resolution for exporting to bitmap and for rasterization of filters in PS/EPS/PDF (default 90)" -#~ msgstr "IzšķirtspÄ“ja bitkarÅ¡u eksportam un filtru rastrēšanai PS/EPS/PDF (noklusÄ“tÄ - 90)" - -#~ msgid "Select one path to clone." -#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." - -#~ msgid "Select one path to clone." -#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." - -#~ msgid "Default _units:" -#~ msgstr "Nokl_usÄ“tÄs vienÄ«bas:" - -#~ msgid "Changed document unit" -#~ msgstr "MainÄ«tÄ dokumenta vienÄ«ba" - -#~ 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 "" -#~ "Ja Å¡is iestatÄ«jums ir iestatÄ«ts, \"SaglabÄt kÄ...\" un \"SaglabÄt kopiju\" dialoglodziņi vienmÄ“r tiks atvÄ“rti mapÄ“, kurÄ atrodas paÅ¡reiz atvÄ“rtais dokuments; ja atiestatÄ«ts, katrs tiks atvÄ“rts mapÄ“, kurÄ pÄ“dÄ“jo reizi saglabÄjÄt dokumentu " -#~ "ar to palÄ«dzÄ«bu" - -#~ msgid "Center X/Y:" -#~ msgstr "Centrs X/Y:" - -#~ msgid "Radius X/Y:" -#~ msgstr "RÄdiuss X/Y:" - -#~ msgctxt "Path handle tip" -#~ msgid "%s: drag to shape the segment (%s)" -#~ msgstr "%s: velciet, lai veidotu posmu (segmentu) (%s)" - -#~ msgid "_Templates..." -#~ msgstr "Saga_taves..." - -#~ msgid "Bounding box type :" -#~ msgstr "RobežrÄmja tips:" - -#~ msgid "Use automatic scaling to size A4" -#~ msgstr "Lietot automÄtisko mÄ“rogoÅ¡anu uz A4" - -#~ msgid "Or, use manual scale factor:" -#~ msgstr "Vai izmantojiet ar roku ievadÄ«tu mÄ“roga koeficientu:" - -#~ msgid "" -#~ "- AutoCAD Release 13 and newer.\n" -#~ "- assume dxf drawing is in mm.\n" -#~ "- assume svg drawing is in pixels, at 90 dpi.\n" -#~ "- scale factor and origin apply only to manual scaling.\n" -#~ "- layers are preserved only on File->Open, not Import.\n" -#~ "- limited support for BLOCKS, use AutoCAD Explode Blocks instead, if needed." -#~ msgstr "" -#~ "- AutoCAD 13 un jaunÄkÄm versijÄm:\n" -#~ "- pieņemt, ka dxf rasÄ“jums ir mm.\n" -#~ "- pieņemt, ka svg rasÄ“jums ir pikseļos ar izšķirtspÄ“ju 90 dpi.\n" -#~ "- mÄ“roga koeficients un izejas punkts attiecas tikai uz rokas mÄ“rogoÅ¡anu.\n" -#~ "- slÄņi tiek saglabÄti tikai Datne->AtvÄ“rt gadÄ«jumÄ, ImportÄ“t - nÄ“.\n" -#~ "- ierobežots BLOCKS atbalsts, nepiecieÅ¡amÄ«bas gadÄ«jumÄ izmantojiet AutoCAD Explode Blocks." - -#~ msgid "Base unit" -#~ msgstr "PamatvienÄ«ba" - -#~ msgid "Character Encoding" -#~ msgstr "RakstzÄ«mju kodÄ“jums" +#, fuzzy +#~ msgid "Leaned" +#~ msgstr "Leaned" -#~ msgid "Layer export selection" -#~ msgstr "AtlasÄ«tais slÄņa eksportam" +#, fuzzy +#~ msgid "Start path lean" +#~ msgstr "Nosaka ceļa sÄkuma formu" -#~ msgid "Layer match name" -#~ msgstr "SlÄņa nosaukuma atbilstÄ«ba" +#, fuzzy +#~ msgid "End path lean" +#~ msgstr "ceļam jÄbeidzas ar ':/'" -#~ msgid "" -#~ "- AutoCAD Release 14 DXF format.\n" -#~ "- The base unit parameter specifies in what unit the coordinates are output (90 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 "" -#~ "- AutoCAD Release 14 DXF formÄts.\n" -#~ "- Pamata vienÄ«bas parametrs norÄda vienÄ«bas, kurÄs tiek izvadÄ«tas koordinÄtes (90 px = 1 colla).\n" -#~ "- AtbalstÄ«tie elementu tipi\n" -#~ " - ceļi (lÄ«nijas un lÄ«knes)\n" -#~ " - taisnstÅ«ri\n" -#~ " - kloni (šķērsatsauces uz oriÄ£inÄlu tiek zaudÄ“tas)\n" -#~ "- ROBO-Master lÄ«kņu izvade ir specifiskas lÄ«knes, ko var izmantot tikai ar ROBO-Master un AutoDesk skatÄ«tÄjiem, nevis Inkscape.\n" -#~ "- LWPOLYLINE izvade ir daudzkÄrtÄ«gi savienota lÄ«nija; atslÄ“dziet to, lai izmantotu vÄ“sturisko LINE izvades versiju.\n" -#~ "- Varat izvÄ“lÄ“ties, vai izvadÄ«t visus slÄņus, tikai redzamos vai arÄ« ar atbilstoÅ¡iem nosaukumiem (reÄ£istrjutÄ«gs, atdalīšanai lietojiet komatu)" +#~ msgid "Roughen unit" +#~ msgstr "RaupjoÅ¡anas vienÄ«ba" -#~ msgid "Empty Page" -#~ msgstr "TukÅ¡a lapa" +#, fuzzy +#~ msgid "Helper nodes" +#~ msgstr "Subversion palÄ«gprogramma" #, fuzzy -#~ msgid "Show helper paths" -#~ msgstr "RÄdÄ«t pÄrvietojumus starp ceļiem" +#~ msgid "Show helper nodes" +#~ msgstr "RÄdÄ«t pÄrveidoÅ¡anas turus atsevišķiem mezgliem" #, fuzzy -#~ msgid "Leaned" -#~ msgstr "Leaned" +#~ msgid "Helper handles" +#~ msgstr "Subversion palÄ«gprogramma" #, fuzzy -#~ msgid "Start path lean" -#~ msgstr "Nosaka ceļa sÄkuma formu" +#~ msgid "Show helper handles" +#~ msgstr "RÄdÄ«t turus" + +#~ msgid "%1 (%2):" +#~ msgstr "%1 (%2):" #, fuzzy -#~ msgid "End path lean" -#~ msgstr "ceļam jÄbeidzas ar ':/'" +#~ msgid "Show helper paths" +#~ msgstr "RÄdÄ«t pÄrvietojumus starp ceļiem" #~ msgid "Control handle 0 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 0 - Ctrl+Alt+Click, lai atiestatÄ«tu " @@ -33789,27 +33402,26 @@ msgstr "XAML ievade" #~ msgid "Control handle 19 - Ctrl+Alt+Click to reset" #~ msgstr "VadÄ«bas turis 19 - Ctrl+Alt+Click, lai atiestatÄ«tu" -#~ msgid "Roughen unit" -#~ msgstr "RaupjoÅ¡anas vienÄ«ba" +#~ msgid "Top Left - Ctrl+Alt+Click to reset" +#~ msgstr "Augšējais kreisais - Ctrl+Alt+Click, lai atiestatÄ«tu" -#, fuzzy -#~ msgid "Helper nodes" -#~ msgstr "Subversion palÄ«gprogramma" +#~ msgid "Top Right - Ctrl+Alt+Click to reset" +#~ msgstr "Augšējais labais - Ctrl+Alt+Click, lai atiestatÄ«tu" -#, fuzzy -#~ msgid "Show helper nodes" -#~ msgstr "RÄdÄ«t pÄrveidoÅ¡anas turus atsevišķiem mezgliem" +#~ msgid "Down Left - Ctrl+Alt+Click to reset" +#~ msgstr "Apakšējais kreisais - Ctrl+Alt+Click, lai atiestatÄ«tu" -#, fuzzy -#~ msgid "Helper handles" -#~ msgstr "Subversion palÄ«gprogramma" +#~ msgid "Down Right - Ctrl+Alt+Click to reset" +#~ msgstr "Apakšējais labais - Ctrl+Alt+Click, lai atiestatÄ«tu" -#, fuzzy -#~ msgid "Show helper handles" -#~ msgstr "RÄdÄ«t turus" +#~ msgid "%i objects selected of type %s" +#~ msgid_plural "%i objects selected of types %s" +#~ msgstr[0] "izvÄ“lÄ“ts %i objekts ar tipu %s" +#~ msgstr[1] "izvÄ“lÄ“ti %i objekti ar tipu %s" +#~ msgstr[2] "izvÄ“lÄ“ti %i objekti ar tipu %s" -#~ msgid "%1 (%2):" -#~ msgstr "%1 (%2):" +#~ msgid "x-interval cannot be zero. Please modify 'Start X value' or 'End X alue'" +#~ msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X' vÄ“rtÄ«bas" #~ msgid "Custom Width (px.):" #~ msgstr "PielÄgots platums (piks.):" @@ -33817,6 +33429,36 @@ msgstr "XAML ievade" #~ msgid "Custom Height (px.):" #~ msgstr "PielÄgot augstums (piks.):" +#~ msgid "Select a file of predefined shortcuts to use. Any customized shortcuts you create will be added seperately to " +#~ msgstr "IzvÄ“lieties datni ar iepriekÅ¡ definÄ“tÄm saÄ«snÄ“m. Visas JÅ«su izveidotÄs pielÄgotÄs saÄ«snes tiks pievienotas pie " + +#~ msgid "x-interval cannot be zero. Please modify 'Start X' or 'End X'" +#~ msgstr "x-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'SÄkuma X' vai 'Beigu X'" + +#~ msgid "y-interval cannot be zero. Please modify 'Y top' or 'Y bottom'" +#~ msgstr "y-intervÄls nevar bÅ«t nulle. LÅ«dzu, mainiet 'Augšējais Y' vai 'Apakšējais Y'" + +#~ msgid "Pen #" +#~ msgstr "Spalva #" + +#~ msgid "KNK Zing (HPGL variant)" +#~ msgstr "KNK Zing (HPGL variants)" + +#~ msgid "PS+LaTeX: Omit text in PS, and create LaTeX file" +#~ msgstr "PS+LaTeX: izlaist tekstu PS un izveidot LaTeX datni" + +#~ msgid "EPS+LaTeX: Omit text in EPS, and create LaTeX file" +#~ msgstr "EPS+LaTeX: izlaist tekstu EPS un izveidot LaTeX datni" + +#~ msgid "PDF+LaTeX: Omit text in PDF, and create LaTeX file" +#~ msgstr "PDF+LaTeX: izlaist tekstu PDF un izveidot LaTeX datni" + +#~ msgid "_Templates..." +#~ msgstr "Saga_taves..." + +#~ msgid "Default _units:" +#~ msgstr "Nokl_usÄ“tÄs vienÄ«bas:" + #~ msgid "Always convert the text size units above into pixels (px) before saving to file" #~ msgstr "VienmÄ“r pirms saglabÄÅ¡anas datnÄ“ pÄrvÄ“rst augstÄk norÄdÄ«tÄs teksta izmÄ“ra vienÄ«bas pikseļos (px)" @@ -33826,6 +33468,9 @@ msgstr "XAML ievade" #~ msgid "(" #~ msgstr "(" +#~ msgid "Use automatic scaling to size A4" +#~ msgstr "Lietot automÄtisko mÄ“rogoÅ¡anu uz A4" + #~ msgctxt "Symbol" #~ msgid "Alternate Process" #~ msgstr "AlternatÄ«vas process" @@ -34322,12 +33967,249 @@ msgstr "XAML ievade" #~ msgid "Bike Parking" #~ msgstr "VelosipÄ“du novietne" +#~ msgid "A4 Landscape Page" +#~ msgstr "A4 lapa, ainavas skats" + +#~ msgid "Empty A4 landscape sheet" +#~ msgstr "TukÅ¡a A4 lapa, ainavas skats" + +#~ msgid "A4 paper sheet empty landscape" +#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a, ainavas skats" + +#~ msgid "A4 Page" +#~ msgstr "A4 Lapa" + +#~ msgid "Empty A4 sheet" +#~ msgstr "TukÅ¡a A4 lapa" + +#~ msgid "A4 paper sheet empty" +#~ msgstr "A4 papÄ«ra lapa, tukÅ¡a" + +#~ msgid "Black Opaque" +#~ msgstr "Melns necauspÄ«dÄ«gs" + +#~ msgid "Empty black page" +#~ msgstr "TukÅ¡a melna lapa" + +#~ msgid "black opaque empty" +#~ msgstr "tukÅ¡s melns, necauspÄ«dÄ«gs" + +#~ msgid "White Opaque" +#~ msgstr "Balts, necaurspÄ«dÄ«gs" + +#~ msgid "Empty white page" +#~ msgstr "TukÅ¡a balta lapa" + +#~ msgid "white opaque empty" +#~ msgstr "tukÅ¡s balts, necauspÄ«dÄ«gs" + +#~ msgid "Empty business card template." +#~ msgstr "TukÅ¡a vizÄ«tkartes veidne." + +#~ msgid "business card empty 85x54" +#~ msgstr "vizÄ«tkarte 85x54mm, tukÅ¡a" + +#~ msgid "Business Card 90x50mm" +#~ msgstr "VizÄ«tkarte 90x50mm" + +#~ msgid "business card empty 90x50" +#~ msgstr "vizÄ«tkarte 90x50mm, tukÅ¡a" + +#~ msgid "CD Cover 300dpi" +#~ msgstr "CD vÄki 300 dpi" + +#~ msgid "Empty CD box cover." +#~ msgstr "TukÅ¡s CD kastÄ«tes vÄks." + +#~ msgid "CD cover disc disk 300dpi box" +#~ msgstr "CD uzlÄ«me, disks, 300 dpi rÄmis" + +#~ msgid "DVD Cover Regular 300dpi " +#~ msgstr "DVD vÄks, parasts, 300 dpi" + +#~ msgid "Template for both-sides DVD covers." +#~ msgstr "Sagatave abu puÅ¡u DVD vÄkiem." + +#~ msgid "DVD cover regular 300dpi" +#~ msgstr "DVD vÄks, parasts, 300 dpi" + +#~ msgid "DVD Cover Slim 300dpi " +#~ msgstr "DVD vÄks, plÄnais, 300 dpi" + +#~ msgid "Template for both-sides DVD slim covers." +#~ msgstr "Sagatave abu puÅ¡u DVD plÄnajiem vÄkiem." + +#~ msgid "DVD cover slim 300dpi" +#~ msgstr "DVD vÄks, plÄnais, 300 dpi" + +#~ msgid "DVD Cover Superslim 300dpi " +#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" + +#~ msgid "Template for both-sides DVD superslim covers." +#~ msgstr "Veidne abÄm superplÄno DVD vÄciņu pusÄ“m." + +#~ msgid "DVD cover superslim 300dpi" +#~ msgstr "DVD vÄciņi, superplÄnie, 300 dpi" + +#~ msgid "DVD Cover Ultraslim 300dpi " +#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" + +#~ msgid "Template for both-sides DVD ultraslim covers." +#~ msgstr "Veidne abÄm ultraplÄno DVD vÄciņu pusÄ“m." + +#~ msgid "DVD cover ultraslim 300dpi" +#~ msgstr "DVD vÄciņi, ultraplÄnie, 300 dpi" + +#~ msgid "Desktop 1024x768" +#~ msgstr "Darba virsma 1024x768" + +#~ msgid "Empty desktop size sheet" +#~ msgstr "TukÅ¡a ekrÄna darba virsmas izmÄ“ru lapa" + +#~ msgid "desktop 1024x768 wallpaper" +#~ msgstr "darba virsmas 1024x768 tapete" + +#~ msgid "Desktop 1600x1200" +#~ msgstr "Darba virsma 1600x1200" + +#~ msgid "desktop 1600x1200 wallpaper" +#~ msgstr "darba virsmas 1600x1200 tapete" + +#~ msgid "desktop 640x480 wallpaper" +#~ msgstr "darba virsmas 640x480 tapete" + +#~ msgid "Desktop 800x600" +#~ msgstr "Darba virdsma 800x600" + +#~ msgid "desktop 800x600 wallpaper" +#~ msgstr "darba virsmas 800x600 tapete" + +#~ msgid "Fontforge Glyph" +#~ msgstr "Fontforge glifs" + +#~ msgid "font fontforge glyph 1000x1000" +#~ msgstr "fontforge glifs 1000x1000" + +#~ msgid "Icon 16x16" +#~ msgstr "Ikona 16x16" + +#~ msgid "Small 16x16 icon template." +#~ msgstr "Mazas 16x16 ikonas veidne" + +#~ msgid "icon 16x16 empty" +#~ msgstr "ikona 16x16, tukÅ¡a" + +#~ msgid "Icon 32x32" +#~ msgstr "Ikona 32x32" + +#~ msgid "32x32 icon template." +#~ msgstr "32x32 ikonas veidne." + +#~ msgid "icon 32x32 empty" +#~ msgstr "ikona 32x32, tukÅ¡a" + +#~ msgid "Icon 48x48" +#~ msgstr "Ikona 48x48" + +#~ msgid "48x48 icon template." +#~ msgstr "48x48 ikonas veidne." + +#~ msgid "icon 48x48 empty" +#~ msgstr "ikona 48x48, tukÅ¡a" + +#~ msgid "Icon 64x64" +#~ msgstr "Ikona 64x64" + +#~ msgid "64x64 icon template." +#~ msgstr "64x64 ikonas veidne." + +#~ msgid "icon 64x64 empty" +#~ msgstr "ikona 64x64, tukÅ¡a" + +#~ msgid "Letter Landscape" +#~ msgstr "VÄ“stule, ainavas skats" + +#~ msgid "Standard letter landscape sheet - 792x612" +#~ msgstr "Standarta vÄ“stules lapa ainavas skatÄ - 792x612" + +#~ msgid "letter landscape 792x612 empty" +#~ msgstr "vÄ“stules, ainavas skats, 792x612, tukÅ¡a" + +#~ msgid "Letter" +#~ msgstr "Burts" + +#~ msgid "Standard letter sheet - 612x792" +#~ msgstr "Standarta vÄ“stules lapa - 612x792" + +#~ msgid "letter 612x792 empty" +#~ msgstr "vÄ“stule 612x792, tukÅ¡a" + +#~ msgid "No Borders" +#~ msgstr "Bez malÄm" + +#~ msgid "Empty sheet with no borders" +#~ msgstr "TukÅ¡a lapa bez malÄm" + +#~ msgid "no borders empty" +#~ msgstr "bez malÄm, tukÅ¡a" + +#~ msgid "Video HDTV 1920x1080" +#~ msgstr "Video HDTV 1920x1080" + +#~ msgid "HDTV video template for 1920x1080 resolution." +#~ msgstr "HDTV video veidne 1920x1080 izšķirtspÄ“jai." + +#~ msgid "HDTV video empty 1920x1080" +#~ msgstr "HDTV video 1920x1080, tukÅ¡s" + +#~ msgid "Video NTSC 720x486" +#~ msgstr "Video NTSC 720x486" + +#~ msgid "NTSC video template for 720x486 resolution." +#~ msgstr "NTSC video veidne 720x486 izšķirtspÄ“jai." + +#~ msgid "NTSC video empty 720x486" +#~ msgstr "NTSC video 720x486, tukÅ¡s" + +#~ msgid "Video PAL 728x576" +#~ msgstr "Video PAL 728x576" + +#~ msgid "PAL video template for 728x576 resolution." +#~ msgstr "PAL video veidne 728x576 izšķirtspÄ“jai." + +#~ msgid "PAL video empty 728x576" +#~ msgstr "PAL video 728x576, tukÅ¡s" + +#~ msgid "Web Banner 468x60" +#~ msgstr "TÄ«mekļa reklÄmkarogs 468x60" + +#~ msgid "Empty 468x60 web banner template." +#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 468x60 veidne." + +#~ msgid "web banner 468x60 empty" +#~ msgstr "tÄ«mekļa reklÄmkarogs 468x60, tukÅ¡s" + +#~ msgid "Web Banner 728x90" +#~ msgstr "TÄ«mekļa reklÄmkarogs 728x90" + +#~ msgid "Empty 728x90 web banner template." +#~ msgstr "TukÅ¡a tÄ«mekļa reklÄmkaroga 728x90 veidne." + +#~ msgid "web banner 728x90 empty" +#~ msgstr "tÄ«mekļa reklÄmkarogs 728x90, tukÅ¡s" + #~ msgid "Adobe PDF via poppler-cairo (*.pdf)" #~ msgstr "Adobe PDF caur poppler-cairo (*.pdf)" #~ msgid "PDF Document" #~ msgstr "PDF dokuments" +#~ msgid "Select one path to clone." +#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." + +#~ msgid "Select one path to clone." +#~ msgstr "Atlasiet vienu ceļu, kuru vÄ“laties klonÄ“t." + #~ msgid "<no name found>" #~ msgstr "<nosaukums nav atrasts>" @@ -34340,12 +34222,19 @@ msgstr "XAML ievade" #~ "\n" #~ "TurpinÄt darbÄ«bu (bez saglabÄÅ¡anas)?" +#~ msgctxt "Path handle tip" +#~ msgid "%s: drag to shape the segment (%s)" +#~ msgstr "%s: velciet, lai veidotu posmu (segmentu) (%s)" + #~ msgid "_Export Bitmap..." #~ msgstr "_EksportÄ“t bitkarti..." #~ msgid "Export this document or a selection as a bitmap image" #~ msgstr "EksportÄ“t Å¡o dokumentu vai iezÄ«mÄ“to apgabalu kÄ bitkartes attÄ“lu" +#~ msgid "Empty Page" +#~ msgstr "TukÅ¡a lapa" + #~ msgid " Action: " #~ msgstr " DarbÄ«ba:" -- cgit v1.2.3 From b59c753a013f60192a6d4528fbd4b011d69b313f Mon Sep 17 00:00:00 2001 From: Alvin Penner Date: Mon, 18 May 2015 11:03:15 -0400 Subject: sbasis-to-bezier. avoid ill-conditioned behavior for anti-symmetric case. (Bug 1428267) Fixed bugs: - https://launchpad.net/bugs/1428267 (bzr r14161) --- src/2geom/sbasis-to-bezier.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/2geom/sbasis-to-bezier.cpp b/src/2geom/sbasis-to-bezier.cpp index a2e4253d2..98c400197 100644 --- a/src/2geom/sbasis-to-bezier.cpp +++ b/src/2geom/sbasis-to-bezier.cpp @@ -245,6 +245,8 @@ void sbasis_to_cubic_bezier (std::vector & bz, D2 const& sb) midx = 8*midx - 4*bz[0][X] - 4*bz[3][X]; // re-define relative to center midy = 8*midy - 4*bz[0][Y] - 4*bz[3][Y]; + if ((std::abs(midx) < EPSILON) && (std::abs(midy) < EPSILON)) + return; if ((std::abs(xprime[0]) < EPSILON) && (std::abs(yprime[0]) < EPSILON) && ((std::abs(xprime[1]) > EPSILON) || (std::abs(yprime[1]) > EPSILON))) { // degenerate handle at 0 : use distance of closest approach @@ -264,6 +266,10 @@ void sbasis_to_cubic_bezier (std::vector & bz, D2 const& sb) dely[1] = 0; } else if (std::abs(xprime[1]*yprime[0] - yprime[1]*xprime[0]) > // general case : fit mid fxn value 0.002 * std::abs(xprime[1]*xprime[0] + yprime[1]*yprime[0])) { // approx. 0.1 degree of angle + double test1 = (bz[1][Y] - bz[0][Y])*(bz[3][X] - bz[0][X]) - (bz[1][X] - bz[0][X])*(bz[3][Y] - bz[0][Y]); + double test2 = (bz[2][Y] - bz[0][Y])*(bz[3][X] - bz[0][X]) - (bz[2][X] - bz[0][X])*(bz[3][Y] - bz[0][Y]); + if (test1*test2 < 0) // reject anti-symmetric case, LP Bug 1428267 & Bug 1428683 + return; denom = xprime[1]*yprime[0] - yprime[1]*xprime[0]; for (int i = 0; i < 2; ++i) { numer = xprime[1 - i]*midy - yprime[1 - i]*midx; -- cgit v1.2.3 From 7c7e740dd76054367ceae7f545ac27f0d7cdc7f0 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Mon, 18 May 2015 21:50:54 +0200 Subject: Enable setting of 'font-variant-ligatures' (rendering waits on new Pango library). (bzr r14162) --- src/desktop-style.cpp | 30 ++++++----- src/style-enums.h | 18 +++---- src/style-internal.cpp | 107 ++++++++++++++++++++++++++++++++++++++++ src/style-internal.h | 26 +++++++++- src/style-test.h | 17 +++++-- src/style.cpp | 2 +- src/style.h | 2 +- src/ui/widget/font-variants.cpp | 87 ++++++++++++++++++++++++++++++-- 8 files changed, 256 insertions(+), 33 deletions(-) diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 3bb0ce71a..d2109c03c 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -1178,17 +1178,20 @@ objects_query_fontvariants (const std::vector &objects, SPStyle *style_ SPILigatures* ligatures_res = &(style_res->font_variant_ligatures); SPIEnum* position_res = &(style_res->font_variant_position); SPIEnum* caps_res = &(style_res->font_variant_caps); - + SPINumeric* numeric_res = &(style_res->font_variant_numeric); + // Stores 'and' of all values ligatures_res->computed = SP_CSS_FONT_VARIANT_LIGATURES_NORMAL; position_res->computed = SP_CSS_FONT_VARIANT_POSITION_NORMAL; caps_res->computed = SP_CSS_FONT_VARIANT_CAPS_NORMAL; + numeric_res->computed = SP_CSS_FONT_VARIANT_NUMERIC_NORMAL; // Stores only differences ligatures_res->value = 0; position_res->value = 0; caps_res->value = 0; - + numeric_res->value = 0; + for (std::vector::const_iterator i = objects.begin(); i != objects.end(); i++) { SPObject *obj = *i; @@ -1204,8 +1207,9 @@ objects_query_fontvariants (const std::vector &objects, SPStyle *style_ texts ++; SPILigatures* ligatures_in = &(style->font_variant_ligatures); - SPIEnum* position_in = &(style->font_variant_position); - SPIEnum* caps_in = &(style->font_variant_caps); + SPIEnum* position_in = &(style->font_variant_position); + SPIEnum* caps_in = &(style->font_variant_caps); + SPINumeric* numeric_in = &(style->font_variant_numeric); // computed stores which bits are on/off, only valid if same between all selected objects. // value stores which bits are different between objects. This is a bit of an abuse of // the values but then we don't need to add new variables to class. @@ -1219,21 +1223,23 @@ objects_query_fontvariants (const std::vector &objects, SPStyle *style_ caps_res->value |= (caps_res->computed ^ caps_in->computed ); caps_res->computed &= caps_in->computed; + numeric_res->value |= (numeric_res->computed ^ numeric_in->computed ); + numeric_res->computed &= numeric_in->computed; + } else { ligatures_res->computed = ligatures_in->computed; - position_res->computed = position_in->computed; - caps_res->computed = caps_in->computed; + position_res->computed = position_in->computed; + caps_res->computed = caps_in->computed; + numeric_res->computed = numeric_in->computed; } set = true; } - bool different = (style_res->font_variant_ligatures.value != - style_res->font_variant_ligatures.computed || - style_res->font_variant_position.value != - style_res->font_variant_position.computed || - style_res->font_variant_caps.value != - style_res->font_variant_caps.computed ); + bool different = (style_res->font_variant_ligatures.value != 0 || + style_res->font_variant_position.value != 0 || + style_res->font_variant_caps.value != 0 || + style_res->font_variant_numeric.value != 0 ); if (texts == 0 || !set) return QUERY_STYLE_NOTHING; diff --git a/src/style-enums.h b/src/style-enums.h index dca7e246d..29b8e2130 100644 --- a/src/style-enums.h +++ b/src/style-enums.h @@ -104,15 +104,15 @@ enum SPCSSFontVariantCaps { // Can select more than one (see spec) 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 + SP_CSS_FONT_VARIANT_NUMERIC_NORMAL = 0, + SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS = 1, + SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS = 2, + SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS = 4, + SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS = 8, + SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS = 16, + SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS = 32, + SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL = 64, + SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO = 128 }; enum SPCSSFontVariantAlternates { diff --git a/src/style-internal.cpp b/src/style-internal.cpp index 3b76e5ab1..0e53da0d3 100644 --- a/src/style-internal.cpp +++ b/src/style-internal.cpp @@ -795,6 +795,113 @@ SPILigatures::write( guint const flags, SPIBase const *const base) const { return Glib::ustring(""); } + +// SPINumeric ----------------------------------------------------- +// Used for 'font-variant-numeric' +void +SPINumeric::read( gchar const *str ) { + + if( !str ) return; + + value = SP_CSS_FONT_VARIANT_NUMERIC_NORMAL; + if( !strcmp(str, "inherit") ) { + set = true; + inherit = true; + } else if (!strcmp(str, "normal" )) { + // Defaults for TrueType + inherit = false; + set = true; + } else { + // We need to parse in order + std::vector tokens = Glib::Regex::split_simple("\\s+", str ); + for( unsigned i = 0; i < tokens.size(); ++i ) { + for (unsigned j = 0; enums[j].key; ++j ) { + if (tokens[i].compare( enums[j].key ) == 0 ) { + set = true; + inherit = false; + value |= enums[j].value; + + // Must switch off incompatible value + switch (enums[j].value ) { + case SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS; + break; + case SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS; + break; + + case SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS; + break; + case SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS; + break; + + case SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS; + break; + case SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS: + value &= ~SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS; + break; + + case SP_CSS_FONT_VARIANT_NUMERIC_NORMAL: + case SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL: + case SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO: + // Do nothing + break; + + default: + std::cerr << "SPINumeric::read(): Invalid value." << std::endl; + break; + } + } + } + } + } + computed = value; +} + +const Glib::ustring +SPINumeric::write( guint const flags, SPIBase const *const base) const { + + SPIEnum const *const my_base = dynamic_cast(base); + if ( (flags & SP_STYLE_FLAG_ALWAYS) || + ((flags & SP_STYLE_FLAG_IFSET) && this->set) || + ((flags & SP_STYLE_FLAG_IFDIFF) && this->set + && (!my_base->set || this != my_base ))) + { + if (this->inherit) { + return (name + ":inherit;"); + } + if (value == SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ) { + return (name + ":normal;"); + } + + Glib::ustring return_string = name + ":"; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS ) + return_string += "lining-nums "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS ) + return_string += "oldstyle-nums "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS ) + return_string += "proportional-nums "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS ) + return_string += "tabular-nums "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS ) + return_string += "diagonal-fractions "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS ) + return_string += "stacked-fractions "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL ) + return_string += "ordinal "; + if ( value & SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO ) + return_string += "slashed-zero "; + return_string.erase( return_string.size() - 1 ); + return_string += ";"; + return return_string; + } + return Glib::ustring(""); +} + + // SPIString ------------------------------------------------------------ void diff --git a/src/style-internal.h b/src/style-internal.h index ea966866a..bd2a92c8c 100644 --- a/src/style-internal.h +++ b/src/style-internal.h @@ -546,8 +546,7 @@ public: {} SPILigatures( Glib::ustring const &name, SPStyleEnum const *enums) : - SPIEnum( name, enums, - SP_CSS_FONT_VARIANT_LIGATURES_COMMON | SP_CSS_FONT_VARIANT_LIGATURES_CONTEXTUAL) + SPIEnum( name, enums, SP_CSS_FONT_VARIANT_NORMAL ) {} virtual ~SPILigatures() @@ -559,6 +558,29 @@ public: }; +/// SPIEnum w/ extra bits. The 'font-variants-numeric' property is a complete mess that needs +/// special handling. Multiple key words can be specified, some exclusive of others. +class SPINumeric : public SPIEnum +{ + +public: + SPINumeric() : + SPIEnum( "anonymous_enumnumeric", NULL ) + {} + + SPINumeric( Glib::ustring const &name, SPStyleEnum const *enums) : + SPIEnum( name, enums, SP_CSS_FONT_VARIANT_NUMERIC_NORMAL ) + {} + + virtual ~SPINumeric() + {} + + virtual void read( gchar const *str ); + virtual const Glib::ustring write( guint const flags = SP_STYLE_FLAG_IFSET, + SPIBase const *const base = NULL ) const; +}; + + /// String type internal to SPStyle. // Used for 'marker', ..., 'font', 'font-family', 'inkscape-font-specification' class SPIString : public SPIBase diff --git a/src/style-test.h b/src/style-test.h index 1d821312b..c6bb665e0 100644 --- a/src/style-test.h +++ b/src/style-test.h @@ -109,13 +109,13 @@ public: TestCase("font: 12pt/15pt sans-serif", "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:16px;line-height:15pt;font-family:sans-serif"), TestCase("font: 80% sans-serif", - "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80.00000119%;line-height:normal;font-family:sans-serif"), + "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:80%;line-height:normal;font-family:sans-serif"), TestCase("font: x-large/110% 'new century schoolbook', serif", - "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:x-large;line-height:110.00000238%;font-family:\'new century schoolbook\', serif"), + "font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:x-large;line-height:110%;font-family:\'new century schoolbook\', serif"), TestCase("font: bold italic large Palatino, serif", "font-style:italic;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:large;line-height:normal;font-family:Palatino, serif"), TestCase("font: normal small-caps 120%/120% fantasy", - "font-style:normal;font-variant:small-caps;font-weight:normal;font-stretch:normal;font-size:120.00000477%;line-height:120.00000477%;font-family:fantasy"), + "font-style:normal;font-variant:small-caps;font-weight:normal;font-stretch:normal;font-size:120%;line-height:120%;font-family:fantasy"), TestCase("font: condensed oblique 12pt 'Helvetica Neue', serif;", "font-style:oblique;font-variant:normal;font-weight:normal;font-stretch:condensed;font-size:16px;line-height:normal;font-family:\'Helvetica Neue\', serif"), @@ -153,6 +153,17 @@ public: TestCase("font-variant-caps:normal"), TestCase("font-variant-caps:small-caps"), TestCase("font-variant-caps:all-small-caps"), + TestCase("font-variant-numeric:normal"), + TestCase("font-variant-numeric:lining-nums"), + TestCase("font-variant-numeric:oldstyle-nums"), + TestCase("font-variant-numeric:proportional-nums"), + TestCase("font-variant-numeric:tabular-nums"), + TestCase("font-variant-numeric:diagonal-fractions"), + TestCase("font-variant-numeric:stacked-fractions"), + TestCase("font-variant-numeric:ordinal"), + TestCase("font-variant-numeric:slashed-zero"), + TestCase("font-variant-numeric:tabular-nums slashed-zero"), + TestCase("font-variant-numeric:tabular-nums proportional-nums", "font-variant-numeric:proportional-nums"), // Should be moved down TestCase("text-indent:12em"), // SPILength? diff --git a/src/style.cpp b/src/style.cpp index 4d93841eb..b218f4e4d 100644 --- a/src/style.cpp +++ b/src/style.cpp @@ -122,7 +122,7 @@ SPStyle::SPStyle(SPDocument *document_in, SPObject *object_in) : font_variant_ligatures( "font-variant-ligatures", enum_font_variant_ligatures ), 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_numeric( "font-variant-numeric", enum_font_variant_numeric ), 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" ), diff --git a/src/style.h b/src/style.h index f82fad9b0..8e22b3121 100644 --- a/src/style.h +++ b/src/style.h @@ -119,7 +119,7 @@ public: /** Font variant caps (small caps) */ SPIEnum font_variant_caps; /** Font variant numeric (numerical formatting) */ - SPIEnum font_variant_numeric; + SPINumeric font_variant_numeric; /** Font variant alternates (alternates/swatches) */ SPIEnum font_variant_alternates; /** Font variant East Asian */ diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp index 8ca926d8f..56c24ea6f 100644 --- a/src/ui/widget/font-variants.cpp +++ b/src/ui/widget/font-variants.cpp @@ -214,8 +214,7 @@ namespace Widget { void FontVariants::numeric_init() { - std::cout << "FontVariants::numeric_init()" << std::endl; - // _numeric_tabular.set_inconsistent(); + // std::cout << "FontVariants::numeric_init()" << std::endl; } void @@ -227,7 +226,6 @@ namespace Widget { // Update GUI based on query. void FontVariants::update( SPStyle const *query ) { - // std::cout << "FontVariants::update" << std::endl; _ligatures_all = query->font_variant_ligatures.computed; _ligatures_mix = query->font_variant_ligatures.value; @@ -253,8 +251,8 @@ namespace Widget { _position_sub.set_inconsistent( _position_mix & SP_CSS_FONT_VARIANT_POSITION_SUB ); _position_super.set_inconsistent( _position_mix & SP_CSS_FONT_VARIANT_POSITION_SUPER ); - unsigned _caps_all = query->font_variant_caps.computed; - unsigned _caps_mix = query->font_variant_caps.value; + _caps_all = query->font_variant_caps.computed; + _caps_mix = query->font_variant_caps.value; _caps_normal.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_NORMAL ); _caps_small.set_active( _caps_all & SP_CSS_FONT_VARIANT_CAPS_SMALL ); @@ -272,6 +270,46 @@ namespace Widget { _caps_unicase.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_UNICASE ); _caps_titling.set_inconsistent( _caps_mix & SP_CSS_FONT_VARIANT_CAPS_TITLING ); + _numeric_all = query->font_variant_numeric.computed; + _numeric_mix = query->font_variant_numeric.value; + + if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS) { + _numeric_lining.set_active(); + } else if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS) { + _numeric_old_style.set_active(); + } else { + _numeric_default_style.set_active(); + } + + if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS) { + _numeric_proportional.set_active(); + } else if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS) { + _numeric_tabular.set_active(); + } else { + _numeric_default_width.set_active(); + } + + if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS) { + _numeric_diagonal.set_active(); + } else if (_numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS) { + _numeric_stacked.set_active(); + } else { + _numeric_default_fractions.set_active(); + } + + _numeric_ordinal.set_active( _numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL ); + _numeric_slashed_zero.set_active( _numeric_all & SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO ); + + + _numeric_lining.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_LINING_NUMS ); + _numeric_old_style.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_OLDSTYLE_NUMS ); + _numeric_proportional.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_PROPORTIONAL_NUMS ); + _numeric_tabular.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_TABULAR_NUMS ); + _numeric_diagonal.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_DIAGONAL_FRACTIONS ); + _numeric_stacked.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_STACKED_FRACTIONS ); + _numeric_ordinal.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_ORDINAL ); + _numeric_slashed_zero.set_inconsistent( _numeric_mix & SP_CSS_FONT_VARIANT_NUMERIC_SLASHED_ZERO ); + _ligatures_changed = false; _position_changed = false; _caps_changed = false; @@ -357,6 +395,45 @@ namespace Widget { //} } + // Numeric + bool default_style = _numeric_default_style.get_active(); + bool lining = _numeric_lining.get_active(); + bool old_style = _numeric_old_style.get_active(); + + bool default_width = _numeric_default_width.get_active(); + bool proportional = _numeric_proportional.get_active(); + bool tabular = _numeric_tabular.get_active(); + + bool default_fractions = _numeric_default_fractions.get_active(); + bool diagonal = _numeric_diagonal.get_active(); + bool stacked = _numeric_stacked.get_active(); + + bool ordinal = _numeric_ordinal.get_active(); + bool slashed_zero = _numeric_slashed_zero.get_active(); + + if (default_style & default_width & default_fractions & !ordinal & !slashed_zero) { + sp_repr_css_set_property(css, "font-variant-numeric", "normal"); + } else { + Glib::ustring css_string; + if ( lining ) + css_string += "lining-nums "; + if ( old_style ) + css_string += "oldstyle-nums "; + if ( proportional ) + css_string += "proportional-nums "; + if ( tabular ) + css_string += "tabular-nums "; + if ( diagonal ) + css_string += "diagonal-fractions "; + if ( stacked ) + css_string += "stacked-fractions "; + if ( ordinal ) + css_string += "ordinal "; + if ( slashed_zero ) + css_string += "slashed-zero "; + sp_repr_css_set_property(css, "font-variant-numeric", css_string.c_str() ); + } + } } // namespace Widget -- cgit v1.2.3 From 421d13903f4ae30d1b536788e9b48b69398bf139 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Wed, 20 May 2015 10:53:59 +0200 Subject: Font-variants widget: Enable 'Apply' button. Add more tooltips. (bzr r14163) --- src/ui/dialog/text-edit.cpp | 15 ++++++ src/ui/dialog/text-edit.h | 13 +++++ src/ui/widget/font-variants.cpp | 114 ++++++++++++++++++++++++++++++---------- src/ui/widget/font-variants.h | 19 ++++++- 4 files changed, 132 insertions(+), 29 deletions(-) diff --git a/src/ui/dialog/text-edit.cpp b/src/ui/dialog/text-edit.cpp index 4fd227f01..1a696c820 100644 --- a/src/ui/dialog/text-edit.cpp +++ b/src/ui/dialog/text-edit.cpp @@ -218,6 +218,7 @@ TextEdit::TextEdit() setasdefault_button.signal_clicked().connect(sigc::mem_fun(*this, &TextEdit::onSetDefault)); apply_button.signal_clicked().connect(sigc::mem_fun(*this, &TextEdit::onApply)); close_button.signal_clicked().connect(sigc::bind(_signal_response.make_slot(), GTK_RESPONSE_CLOSE)); + fontVariantChangedConn = vari_vbox.connectChanged(sigc::bind(sigc::ptr_fun(&onFontVariantChange), this)); desktopChangeConn = deskTrack.connectDesktopChanged( sigc::mem_fun(*this, &TextEdit::setTargetDesktop) ); deskTrack.connect(GTK_WIDGET(gobj())); @@ -232,6 +233,7 @@ TextEdit::~TextEdit() selectChangedConn.disconnect(); desktopChangeConn.disconnect(); deskTrack.disconnect(); + fontVariantChangedConn.disconnect(); } void TextEdit::styleButton(Gtk::RadioButton *button, gchar const *tooltip, gchar const *icon_name, Gtk::RadioButton *group_button ) @@ -656,6 +658,19 @@ void TextEdit::onFontChange(SPFontSelector * /*fontsel*/, gchar* fontspec, TextE } +void TextEdit::onFontVariantChange(TextEdit *self) +{ + if( self->blocked ) + return; + + SPItem *text = self->getSelectedTextItem (); + + if (text) { + self->apply_button.set_sensitive ( true ); + } + self->setasdefault_button.set_sensitive ( true ); +} + void TextEdit::onStartOffsetChange(GtkTextBuffer * /*text_buffer*/, TextEdit *self) { SPItem *text = self->getSelectedTextItem(); diff --git a/src/ui/dialog/text-edit.h b/src/ui/dialog/text-edit.h index f088fd337..41f89b3e7 100644 --- a/src/ui/dialog/text-edit.h +++ b/src/ui/dialog/text-edit.h @@ -36,6 +36,7 @@ class SPItem; struct SPFontSelector; +class FontVariants; class font_instance; class SPCSSAttr; @@ -111,6 +112,17 @@ protected: */ static void onFontChange (SPFontSelector *fontsel, gchar* fontspec, TextEdit *self); + /** + * Callback invoked when the user modifies the font variant through the dialog. + * + * onFontChange updates the dialog UI. The subfunction setPreviewText updates the preview label. + * + * @param fontsel pointer to FontVariant (currently not used). + * @param fontspec for the text to be previewed. + * @param self pointer to the current instance of the dialog. + */ + static void onFontVariantChange (TextEdit *self); + /** * Callback invoked when the user modifies the startOffset of text on a path. * @@ -228,6 +240,7 @@ private: sigc::connection selectChangedConn; sigc::connection subselChangedConn; sigc::connection selectModifiedConn; + sigc::connection fontVariantChangedConn; bool blocked; const Glib::ustring samplephrase; diff --git a/src/ui/widget/font-variants.cpp b/src/ui/widget/font-variants.cpp index 56c24ea6f..637631fda 100644 --- a/src/ui/widget/font-variants.cpp +++ b/src/ui/widget/font-variants.cpp @@ -76,6 +76,8 @@ namespace Widget { { // Ligatures -------------------------- + + // Add tooltips _ligatures_common.set_tooltip_text( _("Common ligatures. On by default. OpenType tables: 'liga', 'clig'")); _ligatures_discretionary.set_tooltip_text( @@ -85,11 +87,13 @@ namespace Widget { _ligatures_contextual.set_tooltip_text( _("Contextual forms. On by default. OpenType table: 'calt'")); - + // Add signals _ligatures_common.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); _ligatures_discretionary.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); _ligatures_historical.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); _ligatures_contextual.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::ligatures_callback) ); + + // Add to frame _ligatures_vbox.add( _ligatures_common ); _ligatures_vbox.add( _ligatures_discretionary ); _ligatures_vbox.add( _ligatures_historical ); @@ -100,32 +104,41 @@ namespace Widget { ligatures_init(); // Position ---------------------------------- - _position_vbox.add( _position_normal ); - _position_vbox.add( _position_sub ); - _position_vbox.add( _position_super ); - _position_frame.add( _position_vbox ); - add( _position_frame ); + + // Add tooltips + _position_normal.set_tooltip_text( _("Normal position.")); + _position_sub.set_tooltip_text( _("Subscript. OpenType table: 'subs'") ); + _position_super.set_tooltip_text( _("Superscript. OpenType table: 'sups'") ); // Group buttons Gtk::RadioButton::Group position_group = _position_normal.get_group(); _position_sub.set_group(position_group); _position_super.set_group(position_group); + + // Add signals _position_normal.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); _position_sub.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); _position_super.signal_pressed().connect ( sigc::mem_fun(*this, &FontVariants::position_callback) ); + // Add to frame + _position_vbox.add( _position_normal ); + _position_vbox.add( _position_sub ); + _position_vbox.add( _position_super ); + _position_frame.add( _position_vbox ); + add( _position_frame ); + position_init(); // Caps ---------------------------------- - _caps_vbox.add( _caps_normal ); - _caps_vbox.add( _caps_small ); - _caps_vbox.add( _caps_all_small ); - _caps_vbox.add( _caps_petite ); - _caps_vbox.add( _caps_all_petite ); - _caps_vbox.add( _caps_unicase ); - _caps_vbox.add( _caps_titling ); - _caps_frame.add( _caps_vbox ); - add( _caps_frame ); + + // Add tooltips + _caps_normal.set_tooltip_text( _("Normal capitalization.")); + _caps_small.set_tooltip_text( _("Small-caps (lowercase). OpenType table: 'smcp'")); + _caps_all_small.set_tooltip_text( _("All small-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'smcp'")); + _caps_petite.set_tooltip_text( _("Petite-caps (lowercase). OpenType table: 'pcap'")); + _caps_all_petite.set_tooltip_text( _("All petite-caps (uppercase and lowercase). OpenType tables: 'c2sc' and 'pcap'")); + _caps_unicase.set_tooltip_text( _("Unicase (small caps for uppercase, normal for lowercase). OpenType table: 'unic'")); + _caps_titling.set_tooltip_text( _("Titling caps (lighter-weight uppercase for use in titles). OpenType table: 'titl'")); // Group buttons Gtk::RadioButton::Group caps_group = _caps_normal.get_group(); @@ -135,6 +148,8 @@ namespace Widget { _caps_all_petite.set_group(caps_group); _caps_unicase.set_group(caps_group); _caps_titling.set_group(caps_group); + + // Add signals _caps_normal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); _caps_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); _caps_all_small.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); @@ -143,9 +158,61 @@ namespace Widget { _caps_unicase.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); _caps_titling.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::caps_callback) ); + // Add to frame + _caps_vbox.add( _caps_normal ); + _caps_vbox.add( _caps_small ); + _caps_vbox.add( _caps_all_small ); + _caps_vbox.add( _caps_petite ); + _caps_vbox.add( _caps_all_petite ); + _caps_vbox.add( _caps_unicase ); + _caps_vbox.add( _caps_titling ); + _caps_frame.add( _caps_vbox ); + add( _caps_frame ); + caps_init(); // Numeric ------------------------------ + + // Add tooltips + _numeric_default_style.set_tooltip_text( _("Normal style.")); + _numeric_lining.set_tooltip_text( _("Lining numerals. OpenType table: 'lnum'")); + _numeric_old_style.set_tooltip_text( _("Old style numerals. OpenType table: 'onum'")); + _numeric_default_width.set_tooltip_text( _("Normal widths.")); + _numeric_proportional.set_tooltip_text( _("Proportional width numerals. OpenType table: 'pnum'")); + _numeric_tabular.set_tooltip_text( _("Same width numerals. OpenType table: 'tnum'")); + _numeric_default_fractions.set_tooltip_text( _("Normal fractions.")); + _numeric_diagonal.set_tooltip_text( _("Diagonal fractions. OpenType table: 'frac'")); + _numeric_stacked.set_tooltip_text( _("Stacked fractions. OpenType table: 'afrc'")); + _numeric_ordinal.set_tooltip_text( _("Ordinals (raised 'th', etc.). OpenType table: 'ordn'")); + _numeric_slashed_zero.set_tooltip_text( _("Slashed zeros. OpenType table: 'zero'")); + + // Group buttons + Gtk::RadioButton::Group style_group = _numeric_default_style.get_group(); + _numeric_lining.set_group(style_group); + _numeric_old_style.set_group(style_group); + + Gtk::RadioButton::Group width_group = _numeric_default_width.get_group(); + _numeric_proportional.set_group(width_group); + _numeric_tabular.set_group(width_group); + + Gtk::RadioButton::Group fraction_group = _numeric_default_fractions.get_group(); + _numeric_diagonal.set_group(fraction_group); + _numeric_stacked.set_group(fraction_group); + + // Add signals + _numeric_default_style.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_lining.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_old_style.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_default_width.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_proportional.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_tabular.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_default_fractions.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_diagonal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_stacked.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_ordinal.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + _numeric_slashed_zero.signal_clicked().connect ( sigc::mem_fun(*this, &FontVariants::numeric_callback) ); + + // Add to frame _numeric_stylebox.add( _numeric_default_style ); _numeric_stylebox.add( _numeric_lining ); _numeric_stylebox.add( _numeric_old_style ); @@ -163,20 +230,9 @@ namespace Widget { _numeric_frame.add( _numeric_vbox ); add( _numeric_frame ); - // Group buttons - Gtk::RadioButton::Group style_group = _numeric_default_style.get_group(); - _numeric_lining.set_group(style_group); - _numeric_old_style.set_group(style_group); - - Gtk::RadioButton::Group width_group = _numeric_default_width.get_group(); - _numeric_proportional.set_group(width_group); - _numeric_tabular.set_group(width_group); - - Gtk::RadioButton::Group fraction_group = _numeric_default_fractions.get_group(); - _numeric_diagonal.set_group(fraction_group); - _numeric_stacked.set_group(fraction_group); show_all_children(); + } void @@ -188,6 +244,7 @@ namespace Widget { FontVariants::ligatures_callback() { // std::cout << "FontVariants::ligatures_callback()" << std::endl; _ligatures_changed = true; + _changed_signal.emit(); } void @@ -199,6 +256,7 @@ namespace Widget { FontVariants::position_callback() { // std::cout << "FontVariants::position_callback()" << std::endl; _position_changed = true; + _changed_signal.emit(); } void @@ -210,6 +268,7 @@ namespace Widget { FontVariants::caps_callback() { // std::cout << "FontVariants::caps_callback()" << std::endl; _caps_changed = true; + _changed_signal.emit(); } void @@ -221,6 +280,7 @@ namespace Widget { FontVariants::numeric_callback() { // std::cout << "FontVariants::numeric_callback()" << std::endl; _numeric_changed = true; + _changed_signal.emit(); } // Update GUI based on query. diff --git a/src/ui/widget/font-variants.h b/src/ui/widget/font-variants.h index 04c05d3c6..e6a9dd68b 100644 --- a/src/ui/widget/font-variants.h +++ b/src/ui/widget/font-variants.h @@ -10,8 +10,6 @@ #ifndef INKSCAPE_UI_WIDGET_FONT_VARIANT_H #define INKSCAPE_UI_WIDGET_FONT_VARIANT_H -// Temp: both frame and expander -#include #include #include #include @@ -112,10 +110,27 @@ private: bool _caps_changed; bool _numeric_changed; + sigc::signal _changed_signal; + public: + + /** + * Update GUI based on query results. + */ void update( SPStyle const *query ); + /** + * Fill SPCSSAttr based on settings of buttons. + */ void fill_css( SPCSSAttr* css ); + + /** + * Let others know that user has changed GUI settings. + * (Used to enable 'Apply' and 'Default' buttons.) + */ + sigc::connection connectChanged(sigc::slot slot) { + return _changed_signal.connect(slot); + } }; -- cgit v1.2.3 From cca96cf13aa03a1ea90b64b69af8e4410d0f34d1 Mon Sep 17 00:00:00 2001 From: su_v Date: Wed, 20 May 2015 18:33:54 +0200 Subject: Add extension to set attributes for bitmap images (bug #1357808) Inkscape >= 0.91 adds the attribute 'preserveAspectRatio' to imported bitmap images, and sets it to 'none' (to support non-uniform scaling). Unlike older versions it also respects the attribute for rendering. This change may break Inkscape documents with embedded or linked bitmap images which had been created with older versions of Inkscape (the images do not have the attribute set, and thus default to 'xMidYMid' with enforced uniform scaling). The extension allows to add the attribute to selected or all bitmap images in the current document (including bitmap images used as masks, which are stored in the section). Fixed bugs: - https://launchpad.net/bugs/1357808 (bzr r14164) --- share/extensions/image_attributes.inx | 82 +++++++++++++++++ share/extensions/image_attributes.py | 169 ++++++++++++++++++++++++++++++++++ 2 files changed, 251 insertions(+) create mode 100644 share/extensions/image_attributes.inx create mode 100755 share/extensions/image_attributes.py diff --git a/share/extensions/image_attributes.inx b/share/extensions/image_attributes.inx new file mode 100644 index 000000000..d0c00f6a2 --- /dev/null +++ b/share/extensions/image_attributes.inx @@ -0,0 +1,82 @@ + + + + <_name>Set Image Attributes + org.inkscape.effect.image_attributes + + image_attributes.py + inkex.py + + + + + + Render all bitmap images like in older Inskcape versions. + +Available options: + true + false + + + + + + none + Unset + xMinYMin + xMidYMin + xMaxYMin + xMinYMid + xMidYMid + xMaxYMid + xMinYMax + xMidYMax + xMaxYMax + + + - + meet + slice + + + Change only selected image(s) + Change all images in selection + Change all images in document + + + + + + + Unset + auto + optimizeQuality + optimizeSpeed + inherit + + + Change only selected image(s) + Change all images in selection + Change all images in document + Apply attribute to parent group of selection + Apply attribute to SVG root + + + + + + + all + + + + + + + + + + + diff --git a/share/extensions/image_attributes.py b/share/extensions/image_attributes.py new file mode 100755 index 000000000..ddd5a8b87 --- /dev/null +++ b/share/extensions/image_attributes.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python +''' +image_attributes.py - adjust image attributes which don't have global +GUI options yet + +Tool for Inkscape 0.91 to adjust rendering of drawings with linked +or embedded bitmap images created with older versions of Inkscape +or third-party applications. + +Copyright (C) 2015, ~suv + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +''' + +# local library +import inkex +import simplestyle + +try: + inkex.localize() +except: + import gettext + _ = gettext.gettext + + +class SetAttrImage(inkex.Effect): + def __init__(self): + inkex.Effect.__init__(self) + # main options + self.OptionParser.add_option("--fix_scaling", + action="store", type="inkbool", + dest="fix_scaling", default=True, + help="") + self.OptionParser.add_option("--fix_rendering", + action="store", type="inkbool", + dest="fix_rendering", default=False, + help="") + self.OptionParser.add_option("--aspect_ratio", + action="store", type="string", + dest="aspect_ratio", default="none", + help="Value for attribute 'preserveAspectRatio'") + self.OptionParser.add_option("--aspect_clip", + action="store", type="string", + dest="aspect_clip", default="unset", + help="optional 'meetOrSlice' value") + self.OptionParser.add_option("--aspect_ratio_scope", + action="store", type="string", + dest="aspect_ratio_scope", default="selected_only", + help="scope within which to edit 'preserveAspectRatio' attribute") + self.OptionParser.add_option("--image_rendering", + action="store", type="string", + dest="image_rendering", default="unset", + help="Value for attribute 'image-rendering'") + self.OptionParser.add_option("--image_rendering_scope", + action="store", type="string", + dest="image_rendering_scope", default="selected_only", + help="scope within which to edit 'image-rendering' attribute") + # tabs + self.OptionParser.add_option("--tab_main", + action="store", type="string", + dest="tab_main") + + # core method + + def change_attribute(self, node, attribute): + for key, value in attribute.items(): + if key == 'preserveAspectRatio': + # set presentation attribute + if value != "unset": + node.set(key, str(value)) + else: + if node.get(key): + del node.attrib[key] + elif key == 'image-rendering': + node_style = simplestyle.parseStyle(node.get('style')) + if key not in node_style: + # set presentation attribute + if value != "unset": + node.set(key, str(value)) + else: + if node.get(key): + del node.attrib[key] + else: + # set style property + if value != "unset": + node_style[key] = str(value) + else: + del node_style[key] + node.set('style', simplestyle.formatStyle(node_style)) + else: + pass + + def change_all_images(self, node, attribute): + path = 'descendant-or-self::svg:image' + for img in node.xpath(path, namespaces=inkex.NSS): + self.change_attribute(img, attribute) + + # methods called via dispatcher + + def change_selected_only(self, selected, attribute): + if selected: + for node_id, node in selected.iteritems(): + if node.tag == inkex.addNS('image', 'svg'): + self.change_attribute(node, attribute) + + def change_in_selection(self, selected, attribute): + if selected: + for node_id, node in selected.iteritems(): + self.change_all_images(node, attribute) + + def change_in_document(self, selected, attribute): + self.change_all_images(self.document.getroot(), attribute) + + def change_on_parent_group(self, selected, attribute): + if selected: + for node_id, node in selected.iteritems(): + self.change_attribute(node.getparent(), attribute) + + def change_on_root_only(self, selected, attribute): + self.change_attribute(self.document.getroot(), attribute) + + # main + + def effect(self): + attr_val = [] + attr_dict = {} + cmd_scope = None + if self.options.tab_main == '"tab_basic"': + cmd_scope = "in_document" + attr_dict['preserveAspectRatio'] = ("none" if self.options.fix_scaling else "unset") + attr_dict['image-rendering'] = ("optimizeSpeed" if self.options.fix_rendering else "unset") + elif self.options.tab_main == '"tab_aspectRatio"': + attr_val = [self.options.aspect_ratio] + if self.options.aspect_clip != "unset": + attr_val.append(self.options.aspect_clip) + attr_dict['preserveAspectRatio'] = ' '.join(attr_val) + cmd_scope = self.options.aspect_ratio_scope + elif self.options.tab_main == '"tab_image_rendering"': + attr_dict['image-rendering'] = self.options.image_rendering + cmd_scope = self.options.image_rendering_scope + else: # help tab + pass + # dispatcher + if cmd_scope is not None: + try: + change_cmd = getattr(self, 'change_{0}'.format(cmd_scope)) + change_cmd(self.selected, attr_dict) + except AttributeError: + inkex.errormsg('Scope "{0}" not supported'.format(cmd_scope)) + + +if __name__ == '__main__': + e = SetAttrImage() + e.affect() + + +# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 -- cgit v1.2.3 From b448141187609c91e294668e6a1bc2fef90097f7 Mon Sep 17 00:00:00 2001 From: su_v Date: Thu, 21 May 2015 04:41:20 +0200 Subject: image_attributes.inx: mark more strings for translation; update POTFILES.in (bzr r14165) --- po/POTFILES.in | 3 ++- share/extensions/image_attributes.inx | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/po/POTFILES.in b/po/POTFILES.in index 6c0097614..50b582f8e 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,6 +1,6 @@ # List of source files containing translatable strings. # Please keep this file sorted alphabetically. -# Generated by ./generate_POTFILES.sh at Wed May 13 01:27:09 CEST 2015 +# Generated by ./generate_POTFILES.sh at Thu May 21 04:26:44 CEST 2015 [encoding: UTF-8] inkscape.desktop.in share/filters/filters.svg.h @@ -492,6 +492,7 @@ share/extensions/wireframe_sphere.py [type: gettext/xml] share/extensions/hershey.inx [type: gettext/xml] share/extensions/hpgl_input.inx [type: gettext/xml] share/extensions/hpgl_output.inx +[type: gettext/xml] share/extensions/image_attributes.inx [type: gettext/xml] share/extensions/ink2canvas.inx [type: gettext/xml] share/extensions/inkscape_follow_link.inx [type: gettext/xml] share/extensions/inkscape_help_askaquestion.inx diff --git a/share/extensions/image_attributes.inx b/share/extensions/image_attributes.inx index d0c00f6a2..a353d17e5 100644 --- a/share/extensions/image_attributes.inx +++ b/share/extensions/image_attributes.inx @@ -11,9 +11,9 @@ - Render all bitmap images like in older Inskcape versions. + <_param name="basic_desc1" type="description">Render all bitmap images like in older Inskcape versions. -Available options: +Available options: true false @@ -22,7 +22,7 @@ Available options: none - Unset + <_item value="unset">Unset xMinYMin xMidYMin xMaxYMin @@ -39,27 +39,27 @@ Available options: slice - Change only selected image(s) - Change all images in selection - Change all images in document + <_item value="selected_only">Change only selected image(s) + <_item value="in_selection">Change all images in selection + <_item value="in_document">Change all images in document - Unset + <_item value="unset">Unset auto optimizeQuality optimizeSpeed inherit - Change only selected image(s) - Change all images in selection - Change all images in document - Apply attribute to parent group of selection - Apply attribute to SVG root + <_item value="selected_only">Change only selected image(s) + <_item value="in_selection">Change all images in selection + <_item value="in_document">Change all images in document + <_item value="on_parent_group">Apply attribute to parent group of selection + <_item value="on_root_only" >Apply attribute to SVG root -- cgit v1.2.3 From da59adbf4c5d970a899919d37a22a31865f9c540 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Thu, 21 May 2015 10:09:24 +0200 Subject: Don't fill entry box with zeros while typing. Bug introduced with r14160. (bzr r14166) --- src/ui/widget/color-entry.cpp | 10 ++++++++++ src/ui/widget/color-entry.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/ui/widget/color-entry.cpp b/src/ui/widget/color-entry.cpp index 473d7de65..f5658c3a6 100644 --- a/src/ui/widget/color-entry.cpp +++ b/src/ui/widget/color-entry.cpp @@ -20,6 +20,7 @@ namespace Widget { ColorEntry::ColorEntry(SelectedColor &color) : _color(color) , _updating(false) + , _updatingrgba(false) { _color_changed_connection = color.signal_changed.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); _color_dragged_connection = color.signal_dragged.connect(sigc::mem_fun(this, &ColorEntry::_onColorChanged)); @@ -41,6 +42,9 @@ void ColorEntry::on_changed() if (_updating) { return; } + if (_updatingrgba) { + return; // Typing text into entry box + } Glib::ustring text = get_text(); bool changed = false; @@ -64,11 +68,13 @@ void ColorEntry::on_changed() if (len < 8) { rgba = rgba << (4 * (8 - len)); } + _updatingrgba = true; if (changed) { set_text(str); } SPColor color(rgba); _color.setColorAlpha(color, SP_RGBA32_A_F(rgba)); + _updatingrgba = false; } g_free(str); } @@ -76,6 +82,10 @@ void ColorEntry::on_changed() void ColorEntry::_onColorChanged() { + if (_updatingrgba) { + return; + } + SPColor color = _color.color(); gdouble alpha = _color.alpha(); diff --git a/src/ui/widget/color-entry.h b/src/ui/widget/color-entry.h index cd7d6164a..edabe1980 100644 --- a/src/ui/widget/color-entry.h +++ b/src/ui/widget/color-entry.h @@ -34,6 +34,7 @@ private: sigc::connection _color_changed_connection; sigc::connection _color_dragged_connection; bool _updating; + bool _updatingrgba; }; } -- cgit v1.2.3 From 9f1c113eb98e7898f14502c69d8e3f7c35664c11 Mon Sep 17 00:00:00 2001 From: mathog <> Date: Thu, 21 May 2015 10:23:01 -0700 Subject: patch bug 1294784 (bzr r14167) --- src/display/drawing-text.cpp | 3 ++- src/style-internal.cpp | 15 +++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/display/drawing-text.cpp b/src/display/drawing-text.cpp index e20a7ff2a..3928ad796 100644 --- a/src/display/drawing-text.cpp +++ b/src/display/drawing-text.cpp @@ -367,7 +367,7 @@ void DrawingText::decorateStyle(DrawingContext &dc, double vextent, double xphas /* returns scaled line thickness */ void DrawingText::decorateItem(DrawingContext &dc, double phase_length, bool under) { - if (_nrstyle.font_size < 1.0e-32)return; // would cause a divide by zero and nothing would be visible anyway + if ( _nrstyle.font_size <= 1.0e-32 )return; // might cause a divide by zero or overflow and nothing would be visible anyway double tsp_width_adj = _nrstyle.tspan_width / _nrstyle.font_size; double tsp_asc_adj = _nrstyle.ascender / _nrstyle.font_size; double tsp_size_adj = (_nrstyle.ascender + _nrstyle.descender) / _nrstyle.font_size; @@ -381,6 +381,7 @@ void DrawingText::decorateItem(DrawingContext &dc, double phase_length, bool und Geom::Point p2; // All lines must be the same thickness, in combinations, line_through trumps underline double thickness = final_underline_thickness; + if ( thickness <= 1.0e-32 )return; // might cause a divide by zero or overflow and nothing would be visible anyway dc.setTolerance(0.5); // Is this really necessary... could effect dots. if( under ) { diff --git a/src/style-internal.cpp b/src/style-internal.cpp index 0e53da0d3..c117a97f9 100644 --- a/src/style-internal.cpp +++ b/src/style-internal.cpp @@ -1931,6 +1931,11 @@ SPIFontSize::read( gchar const *str ) { unit = length.unit; value = length.value; computed = length.computed; + /* Set a minimum font size to something much smaller than should ever (ever!) be encountered in a real file. + If a bad SVG file is encountered and this is zero odd things + might happen because the inverse is used in some scaling actions. + */ + if ( computed <= 1.0e-32 ) { computed = 1.0e-32; } if( unit == SP_CSS_UNIT_PERCENT ) { type = SP_FONT_SIZE_PERCENTAGE; } else { @@ -2011,6 +2016,11 @@ SPIFontSize::cascade( const SPIBase* const parent ) { break; } } + /* Set a minimum font size to something much smaller than should ever (ever!) be encountered in a real file. + If a bad SVG file is encountered and this is zero odd things + might happen because the inverse is used in some scaling actions. + */ + if ( computed <= 1.0e-32 ) { computed = 1.0e-32; } } else { std::cerr << "SPIFontSize::cascade(): Incorrect parent type" << std::endl; } @@ -2099,6 +2109,11 @@ SPIFontSize::merge( const SPIBase* const parent ) { } } } // Relative size + /* Set a minimum font size to something much smaller than should ever (ever!) be encountered in a real file. + If a bad SVG file is encountered and this is zero odd things + might happen because the inverse is used in some scaling actions. + */ + if ( computed <= 1.0e-32 ) { computed = 1.0e-32; } } // Parent set and not inherit } else { std::cerr << "SPIFontSize::merge(): Incorrect parent type" << std::endl; -- cgit v1.2.3 From e091cbbea4228bf243b1c040e774ad884683da8f Mon Sep 17 00:00:00 2001 From: mathog <> Date: Thu, 21 May 2015 11:40:38 -0700 Subject: patch for bug 1457612 (bzr r14168) --- src/extension/internal/text_reassemble.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/extension/internal/text_reassemble.c b/src/extension/internal/text_reassemble.c index d3aafef12..fa983b83d 100644 --- a/src/extension/internal/text_reassemble.c +++ b/src/extension/internal/text_reassemble.c @@ -67,8 +67,8 @@ Optional compiler switches for development: File: text_reassemble.c -Version: 0.0.16 -Date: 25-FEB-2015 +Version: 0.0.17 +Date: 21-MAY-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -2204,10 +2204,10 @@ void TR_layout_2_svg(TR_INFO *tri){ sprintf(obuf,"text-decoration:"); /* multiple text decoration styles may be set */ utmp = tsp->decoration & TXTDECOR_TMASK; - if(utmp & TXTDECOR_UNDER ){ strcat(obuf,"underline"); } - if(utmp & TXTDECOR_OVER ){ strcat(obuf,"overline"); } - if(utmp & TXTDECOR_BLINK ){ strcat(obuf,"blink"); } - if(utmp & TXTDECOR_STRIKE){ strcat(obuf,"line-through");} + if(utmp & TXTDECOR_UNDER ){ strcat(obuf," underline"); } + if(utmp & TXTDECOR_OVER ){ strcat(obuf," overline"); } + if(utmp & TXTDECOR_BLINK ){ strcat(obuf," blink"); } + if(utmp & TXTDECOR_STRIKE){ strcat(obuf," line-through");} if(*obuf){ /* only a single text decoration line type may be set */ switch(tsp->decoration & TXTDECOR_LMASK){ -- cgit v1.2.3 From 252d594b8f4e0f8b340a62a242795f0583c57a25 Mon Sep 17 00:00:00 2001 From: mathog <> Date: Thu, 21 May 2015 16:06:06 -0700 Subject: minor tweaks to libUEMF and related code (bzr r14169) --- src/extension/internal/wmf-inout.cpp | 6 +++-- src/libuemf/uemf.h | 11 ++++++--- src/libuemf/uemf_print.c | 48 +++++++++++++++++++++++++++++++++--- src/libuemf/uemf_print.h | 7 ++++-- src/libuemf/upmf.c | 12 +++++---- src/libuemf/upmf_print.c | 21 ++++++++++------ src/libuemf/upmf_print.h | 6 ++--- src/libuemf/uwmf.c | 42 +++++++++++++++++-------------- src/libuemf/uwmf.h | 10 ++++---- src/libuemf/uwmf_endian.c | 20 +++++++++------ src/libuemf/uwmf_endian.h | 8 +++--- src/libuemf/uwmf_print.c | 25 ++++++++++++------- 12 files changed, 145 insertions(+), 71 deletions(-) diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp index f76fa16b4..d17180d91 100644 --- a/src/extension/internal/wmf-inout.cpp +++ b/src/extension/internal/wmf-inout.cpp @@ -449,7 +449,8 @@ uint32_t Wmf::add_dib_image(PWMF_CALLBACK_DATA d, const char *dib, uint32_t iUsa char *rgba_px = NULL; // RGBA pixels const char *px = NULL; // DIB pixels const U_RGBQUAD *ct = NULL; // DIB color table - int32_t width, height, colortype, numCt, invert; // if needed these values will be set by wget_DIB_params + uint32_t numCt; + int32_t width, height, colortype, invert; // if needed these values will be set by wget_DIB_params if(iUsage == U_DIB_RGB_COLORS){ // next call returns pointers and values, but allocates no memory dibparams = wget_DIB_params(dib, &px, &ct, &numCt, &width, &height, &colortype, &invert); @@ -1318,7 +1319,8 @@ void Wmf::common_dib_to_image(PWMF_CALLBACK_DATA d, const char *dib, char *sub_px = NULL; // RGBA pixels, subarray const char *px = NULL; // DIB pixels const U_RGBQUAD *ct = NULL; // color table - int32_t width, height, colortype, numCt, invert; // if needed these values will be set in wget_DIB_params + uint32_t numCt; + int32_t width, height, colortype, invert; // if needed these values will be set in wget_DIB_params if(iUsage == U_DIB_RGB_COLORS){ // next call returns pointers and values, but allocates no memory dibparams = wget_DIB_params(dib, &px, &ct, &numCt, &width, &height, &colortype, &invert); diff --git a/src/libuemf/uemf.h b/src/libuemf/uemf.h index 53426cb55..f6ed7da03 100644 --- a/src/libuemf/uemf.h +++ b/src/libuemf/uemf.h @@ -95,8 +95,8 @@ these WMF enumerations is by referencing the following table: /* File: uemf.h -Version: 0.0.31 -Date: 23-APR-2015 +Version: 0.0.32 +Date: 28-APR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -168,7 +168,12 @@ extern "C" { #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 +/* This is tricky. The next one can be called with a size which is either an int or an unsigned int. + The former can be negative, which is obviously wrong, but testing for that means that the size cannot + be more than INT_MAX/2. Accept that limitation since no reasonable EMF record or file should ever be that large. + B must be an INT or size_t. + If a uint16_t is used gcc complains about the first test. Force B to be at least as big as int (at run time) */ +#define IS_MEM_UNSAFE(A,B,C) ( (sizeof(B) < sizeof(int) || (int)(B)) < 0 ? 1 : ((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 /** @} */ diff --git a/src/libuemf/uemf_print.c b/src/libuemf/uemf_print.c index adcf54c0f..4bc9f0206 100644 --- a/src/libuemf/uemf_print.c +++ b/src/libuemf/uemf_print.c @@ -6,8 +6,8 @@ /* File: uemf_print.c -Version: 0.0.18 -Date: 25-MAR-2015 +Version: 0.0.20 +Date: 21-MAY-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -34,6 +34,31 @@ extern "C" { void U_swap4(void *ul, unsigned int count); //! \endcond +/** + \brief calculate a CRC32 value for record + \returns CRC32 value calculated for record + \param record pointer to the first byte + \param Size number of bytes in the record + +Code based on example crc32b here: + http://www.hackersdelight.org/hdcodetxt/crc.c.txt +*/ +uint32_t lu_crc32(const char *record, uint32_t Size){ + const unsigned char *message = record; + uint32_t i, j; + uint32_t crc, mask; + + crc = 0xFFFFFFFF; + for(i=0;i> 1) ^ (0xEDB88320 & mask); + } + } + return ~crc; +} + /** \brief Print some number of hex bytes \param buf pointer to the first byte @@ -45,6 +70,7 @@ void hexbytes_print(uint8_t *buf,unsigned int num){ } } + /* ********************************************************************************************** These functions print standard objects used in the EMR records. The low level ones do not append EOL. @@ -2505,7 +2531,7 @@ int U_emf_onerec_print(const char *contents, const char *blimit, int recnum, siz uint32_t nSize; uint32_t iType; const char *record = contents + off; - + if(record < contents)return(-1); // offset wrapped /* Check that COMMON data in record can be touched without an access violation. If it cannot be @@ -2514,7 +2540,21 @@ int U_emf_onerec_print(const char *contents, const char *blimit, int recnum, siz */ 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); + uint32_t crc; +#if U_BYTE_SWAP + //This is a Big Endian machine, EMF crc values must be calculated on Little Endian form + char *swapbuf=malloc(nSize); + if(!swapbuf)return(-1); + memcpy(swapbuf,record,nSize); + U_emf_endian(swapbuf,nSize,1); // BE to LE + crc=lu_crc32(swapbuf,nSize); + free(swapbuf); +#else + crc=lu_crc32(record,nSize); +#endif + printf("%-30srecord:%5d type:%-4d offset:%8d rsize:%8d crc32:%8.8X\n", + U_emr_names(iType),recnum,iType,(int) off,nSize,crc); + fflush(stdout); /* print the record header before checking further. diff --git a/src/libuemf/uemf_print.h b/src/libuemf/uemf_print.h index 6568b4cfa..088a8a302 100644 --- a/src/libuemf/uemf_print.h +++ b/src/libuemf/uemf_print.h @@ -6,8 +6,8 @@ /* File: uemf_print.h -Version: 0.0.7 -Date: 24-MAR-2015 +Version: 0.0.9 +Date: 21-MAY-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -21,6 +21,9 @@ extern "C" { #endif //! \cond +/* prototypes for miscellaneous */ +uint32_t lu_crc32(const char *record, uint32_t Size); + /* prototypes for objects used in EMR records */ void hexbytes_print(uint8_t *buf,unsigned int num); void colorref_print(U_COLORREF color); diff --git a/src/libuemf/upmf.c b/src/libuemf/upmf.c index 7d6349185..2ba818fa4 100644 --- a/src/libuemf/upmf.c +++ b/src/libuemf/upmf.c @@ -21,8 +21,8 @@ /* File: upmf.c -Version: 0.0.9 -Date: 25-MAR-2015 +Version: 0.0.10 +Date: 27-APR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -6575,15 +6575,17 @@ int U_PMF_VARPOINTS_get(const char *contents, uint16_t Flags, int Elements, U_PM } } else if(Flags & U_PPF_C){ - for(XFS = YFS = 0.0; Elements; Elements--, pts++){ + for(XF = YF = 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 { - for(XFS = YFS = 0.0; Elements; Elements--, pts++){ - (void) U_PMF_POINTF_get(&contents, &(pts->X), &(pts->Y), blimit); + for(XF = YF = 0.0; Elements; Elements--, pts++){ + (void) U_PMF_POINTF_get(&contents, &XF, &YF, blimit); + pts->X = XF; + pts->Y = YF; } } if(Elements){ /* some error in the preceding */ diff --git a/src/libuemf/upmf_print.c b/src/libuemf/upmf_print.c index 7d9598b0d..58ff4edd0 100644 --- a/src/libuemf/upmf_print.c +++ b/src/libuemf/upmf_print.c @@ -6,8 +6,8 @@ /* File: upmf_print.c -Version: 0.0.5 -Date: 24-MAR-2015 +Version: 0.0.7 +Date: 21-MAY-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -142,7 +142,7 @@ int U_pmf_onerec_print(const char *contents, const char *blimit, int recnum, int int type = Header.Type & U_PMR_TYPE_MASK; /* strip the U_PMR_RECFLAG bit, leaving the indexable part */ if(type < U_PMR_MIN || type > U_PMR_MAX)return(-1); /* unknown EMF+ record type */ - status = U_PMF_CMN_HDR_print(Header, recnum, off); /* EMF+ part */ + status = U_PMF_CMN_HDR_print(contents, Header, recnum, off); /* EMF+ part */ /* Buggy EMF+ can set the continue bit and then do something else. In that case, force out the pending Object. Side effect - clears the pending object. */ @@ -222,14 +222,16 @@ int U_pmf_onerec_print(const char *contents, const char *blimit, int recnum, int /** \brief Print data from a U_PMF_CMN_HDR object \return number of bytes in record, 0 on error + \param contents pointer to a buffer holding this EMF+ record \param Header Header of the record \param precnum EMF+ record number in file. \param off Offset in file to the start of this EMF+ record. common structure present at the beginning of all(*) EMF+ records */ -int U_PMF_CMN_HDR_print(U_PMF_CMN_HDR Header, int precnum, int off){ - printf(" %-29srec+:%5d type:%X offset:%8d rsize:%8u dsize:%8u flags:%4.4X\n", - U_pmr_names(Header.Type &U_PMR_TYPE_MASK),precnum, Header.Type,off,Header.Size,Header.DataSize,Header.Flags); +int U_PMF_CMN_HDR_print(const char *contents, U_PMF_CMN_HDR Header, int precnum, int off){ + printf(" %-29srec+:%5d type:%X offset:%8d rsize:%8u dsize:%8u flags:%4.4X crc32:%8.8X\n", + U_pmr_names(Header.Type &U_PMR_TYPE_MASK),precnum, Header.Type,off,Header.Size,Header.DataSize,Header.Flags, + lu_crc32(contents,Header.Size)); return((int) Header.Size); } @@ -1852,7 +1854,12 @@ int U_PMF_TRANSFORMMATRIX_print(const char *contents, const char *blimit){ EMF+ manual 2.2.2.47, Microsoft name: EmfPlusTransformMatrix Object */ int U_PMF_TRANSFORMMATRIX2_print(U_PMF_TRANSFORMMATRIX *Tm){ - printf(" Matrix:{%f,%f,%f,%f,%f,%f}", Tm->m11, Tm->m12, Tm->m21, Tm->m22, Tm->dX, Tm->dY); + if(Tm){ + printf(" Matrix:{%f,%f,%f,%f,%f,%f}", Tm->m11, Tm->m12, Tm->m21, Tm->m22, Tm->dX, Tm->dY); + } + else { + printf(" Matrix:(None)"); + } return(1); } diff --git a/src/libuemf/upmf_print.h b/src/libuemf/upmf_print.h index fe1c57d60..a25374487 100644 --- a/src/libuemf/upmf_print.h +++ b/src/libuemf/upmf_print.h @@ -6,8 +6,8 @@ /* File: upmf_print.h -Version: 0.0.4 -Date: 24-MAR-2015 +Version: 0.0.5 +Date: 28-APR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2015 David Mathog and California Institute of Technology (Caltech) @@ -23,7 +23,7 @@ extern "C" { #include "upmf.h" /* includes uemf.h */ /* prototypes for simple types and enums used in PMR records */ -int U_PMF_CMN_HDR_print(U_PMF_CMN_HDR Header, int precnum, int off); +int U_PMF_CMN_HDR_print(const char *contents, U_PMF_CMN_HDR Header, int precnum, int off); int U_PMF_UINT8_ARRAY_print(const char *Start, const uint8_t *Array, int Elements, char *End); int U_PMF_BRUSHTYPEENUMERATION_print(int otype); int U_PMF_HATCHSTYLEENUMERATION_print(int hstype); diff --git a/src/libuemf/uwmf.c b/src/libuemf/uwmf.c index 35d38f69a..62e3d3c06 100644 --- a/src/libuemf/uwmf.c +++ b/src/libuemf/uwmf.c @@ -19,8 +19,8 @@ /* File: uwmf.c -Version: 0.0.16 -Date: 25-MAR-2015 +Version: 0.0.17 +Date: 28-MAR-2015 Author: David Mathog, Biology Division, Caltech email: mathog@caltech.edu Copyright: 2014 David Mathog and California Institute of Technology (Caltech) @@ -696,7 +696,8 @@ int packed_DIB_safe( 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 + uint32_t numCt; // these values will be set in get_DIB_params + int32_t width, height, colortype, 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 @@ -1564,7 +1565,7 @@ int wmf_finish( #if U_BYTE_SWAP //This is a Big Endian machine, WMF data must be Little Endian - U_wmf_endian(wt->buf,wt->used,1); + U_wmf_endian(wt->buf,wt->used,1,0); // BE to LE, entire file #endif (void) U_wmr_properties(U_WMR_INVALID); /* force the release of the lookup table memory, returned value is irrelevant */ @@ -1610,7 +1611,7 @@ int wmf_readdata( else { #if U_BYTE_SWAP //This is a Big Endian machine, WMF data is Little Endian - U_wmf_endian(*contents,*length,0); // LE to BE + U_wmf_endian(*contents,*length,0,0); // LE to BE, entire file #endif } } @@ -4720,10 +4721,10 @@ int U_WMRCORE_PALETTE_get( */ void U_BITMAPCOREHEADER_get( const char *BmiCh, - int32_t *Size, - int32_t *Width, - int32_t *Height, - int32_t *BitCount + uint32_t *Size, + int32_t *Width, + int32_t *Height, + int32_t *BitCount ){ uint32_t utmp4; uint16_t utmp2; @@ -4800,14 +4801,14 @@ int wget_DIB_params( const char *dib, const char **px, const U_RGBQUAD **ct, - int32_t *numCt, - int32_t *width, - int32_t *height, - int32_t *colortype, - int32_t *invert + uint32_t *numCt, + int32_t *width, + int32_t *height, + int32_t *colortype, + int32_t *invert ){ uint32_t bic; - int32_t Size; + uint32_t Size; bic = U_BI_RGB; // this information is not in the coreheader; U_BITMAPCOREHEADER_get(dib, &Size, width, height, colortype); if(Size != 0xC ){ //BitmapCoreHeader @@ -4816,7 +4817,7 @@ int wget_DIB_params( */ uint32_t uig4; int32_t ig4; - U_BITMAPINFOHEADER_get(dib, &uig4, width, height,&uig4, (uint32_t *) colortype, &bic, &uig4, &ig4, &ig4,&uig4, &uig4); + U_BITMAPINFOHEADER_get(dib, &uig4, width, height,&uig4, (uint32_t *) colortype, &bic, &uig4, &ig4, &ig4, &uig4, &uig4); } if(*height < 0){ *height = -*height; @@ -5559,7 +5560,8 @@ int U_WMRPOLYGON_get( ){ 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); + int iLength = (*Length)*sizeof(U_POINT16); + if(IS_MEM_UNSAFE(*Data, iLength, contents+size))return(0); } return size; } @@ -5578,7 +5580,8 @@ int U_WMRPOLYLINE_get( ){ 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); + int iLength = (*Length)*sizeof(U_POINT16); + if(IS_MEM_UNSAFE(*Data, iLength, contents+size))return(0); } return size; } @@ -5605,7 +5608,8 @@ int U_WMRESCAPE_get( ){ 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); + int iLength=*Length; + if(IS_MEM_UNSAFE(*Data, iLength, contents+size))return(0); } return size; } diff --git a/src/libuemf/uwmf.h b/src/libuemf/uwmf.h index 2237d2221..027de8e06 100644 --- a/src/libuemf/uwmf.h +++ b/src/libuemf/uwmf.h @@ -36,11 +36,11 @@ /* File: uwmf.h -Version: 0.0.11 -Date: 23-APR-2014 +Version: 0.0.12 +Date: 28-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 _UWMF_ @@ -2407,8 +2407,8 @@ int wmr_arc_points(U_RECT16 rclBox, U_POINT16 ArcStart, U_POINT16 ArcEn void U_BITMAPINFOHEADER_get(const char *Bmih, uint32_t *Size, int32_t *Width, int32_t *Height, uint32_t *Planes, uint32_t *BitCount, uint32_t *Compression, uint32_t *SizeImage, int32_t *XPelsPerMeter, int32_t *YPelsPerMeter, uint32_t *ClrUsed, uint32_t *ClrImportant); -void U_BITMAPCOREHEADER_get(const char *BmiCh, int32_t *Size, int32_t *Width, int32_t *Height, int32_t *BitCount); -int wget_DIB_params(const char *dib, const char **px, const U_RGBQUAD **ct, int32_t *numCt, +void U_BITMAPCOREHEADER_get(const char *BmiCh, uint32_t *Size, int32_t *Width, int32_t *Height, int32_t *BitCount); +int wget_DIB_params(const char *dib, const char **px, const U_RGBQUAD **ct, uint32_t *numCt, int32_t *width, int32_t *height, int32_t *colortype, int32_t *invert); int U_WMREOF_get(const char *contents); int U_WMRSETBKCOLOR_get(const char *contents, U_COLORREF *Color); diff --git a/src/libuemf/uwmf_endian.c b/src/libuemf/uwmf_endian.c index 38a321ad0..de0b3ef87 100644 --- a/src/libuemf/uwmf_endian.c +++ b/src/libuemf/uwmf_endian.c @@ -6,11 +6,11 @@ /* File: uwmf_endian.c -Version: 0.1.3 -Date: 27-MAR-2014 +Version: 0.1.4 +Date: 28-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 @@ -1470,21 +1470,24 @@ void U_WMRCREATEREGION_swap(char *record, int torev){ \param contents pointer to the buffer holding the entire EMF in memory \param length number of bytes in the buffer \param torev 1 for native to reversed, 0 for reversed to native + \param onerec 1 if this is operating on a single record instead of an entire file Normally this would be called immediately before writing the data to a file or immediately after reading the data from a file. */ -int U_wmf_endian(char *contents, size_t length, int torev){ - size_t off; +int U_wmf_endian(char *contents, size_t length, int torev, int onerec){ + size_t off=0; uint32_t OK, Size16; uint8_t iType; char *record; int recnum, offset; record = contents; - off = wmfheader_swap(record,torev); fflush(stdout); /* WMF header is not a normal record, handle it separately */ - record += off; - offset = off; + if(!onerec){ + off = wmfheader_swap(record,torev); fflush(stdout); /* WMF header is not a normal record, handle it separately */ + record += off; + offset = off; + } OK = 1; recnum = 1; /* used when debugging */ @@ -1759,6 +1762,7 @@ int U_wmf_endian(char *contents, size_t length, int torev){ record += 2*Size16; offset += 2*Size16; recnum++; + if(onerec)break; } //end of while return(1); } diff --git a/src/libuemf/uwmf_endian.h b/src/libuemf/uwmf_endian.h index 57fd4ae44..6ce7f1984 100644 --- a/src/libuemf/uwmf_endian.h +++ b/src/libuemf/uwmf_endian.h @@ -6,11 +6,11 @@ /* File: uwmf_endian.h -Version: 0.0.2 -Date: 26-NOV-2013 +Version: 0.0.3 +Date: 28-APR-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 _UWMF_ENDIAN_ @@ -24,7 +24,7 @@ extern "C" { //! \cond // prototypes -int U_wmf_endian(char *contents, size_t length, int torev); +int U_wmf_endian(char *contents, size_t length, int torev, int onerec); //! \endcond #ifdef __cplusplus diff --git a/src/libuemf/uwmf_print.c b/src/libuemf/uwmf_print.c index dd460b2b0..d6d1b584e 100644 --- a/src/libuemf/uwmf_print.c +++ b/src/libuemf/uwmf_print.c @@ -6,11 +6,11 @@ /* File: uwmf_print.c -Version: 0.0.4 -Date: 05-FEB-2014 +Version: 0.0.6 +Date: 21-MAY-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 @@ -1351,13 +1351,20 @@ int U_wmf_onerec_print(const char *contents, const char *blimit, int recnum, siz iType = *(uint8_t *)(contents + offsetof(U_METARECORD, iType ) ); -#if 1 - printf("%-30srecord:%5d type:%-4u offset:%8d rsize:%8u\n", - U_wmr_names(iType), recnum, iType, (int) off, (int) size); -#else /* show record checksums, this is NOT portable, result changes with endian type, useful for debugging */ - printf("%-30srecord:%5d type:%-4u offset:%8d size:%8u recchecksum:%u\n", - U_wmr_names(iType), recnum, iType, (int) off, (int) size, U_16_checksum((int16_t *)contents, size)); + uint32_t crc; +#if U_BYTE_SWAP + //This is a Big Endian machine, WMF crc values must be calculated on Little Endian form + char *swapbuf=malloc(size); + if(!swapbuf)return(-1); + memcpy(swapbuf,contents,size); + U_wmf_endian(swapbuf,size,1,1); // BE to LE + crc=lu_crc32(swapbuf,size); + free(swapbuf); +#else + crc=lu_crc32(contents,size); #endif + printf("%-30srecord:%5d type:%-4u offset:%8d rsize:%8u crc32:%8.8X\n", + U_wmr_names(iType), recnum, iType, (int) off, (int) size, crc); switch (iType) { -- cgit v1.2.3