From dbac090dfa98747f78504a20113df43fa9a78fc2 Mon Sep 17 00:00:00 2001 From: Josh Andler Date: Thu, 1 Apr 2010 01:14:55 -0700 Subject: Patch by Daniel_J for 522327 (bzr r9267) --- src/extension/internal/filter/filter-file.cpp | 2 +- src/extension/internal/filter/filter.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/filter/filter-file.cpp b/src/extension/internal/filter/filter-file.cpp index 7cb671f51..89afca133 100644 --- a/src/extension/internal/filter/filter-file.cpp +++ b/src/extension/internal/filter/filter-file.cpp @@ -161,7 +161,7 @@ Filter::filters_load_node (Inkscape::XML::Node * node, gchar * menuname) mywriter writer; sp_repr_write_stream(node, writer, 0, FALSE, g_quark_from_static_string("svg"), 0, 0); - Inkscape::Extension::build_from_mem(xml_str, new Filter::Filter(g_strdup(writer.c_str()))); + Inkscape::Extension::build_from_mem(xml_str, new Filter(g_strdup(writer.c_str()))); g_free(xml_str); return; } diff --git a/src/extension/internal/filter/filter.cpp b/src/extension/internal/filter/filter.cpp index 30e622507..c2d80b28b 100644 --- a/src/extension/internal/filter/filter.cpp +++ b/src/extension/internal/filter/filter.cpp @@ -219,7 +219,7 @@ Filter::filter_init (gchar const * id, gchar const * name, gchar const * submenu "%s\n" "\n" "\n", name, id, submenu, tip); - Inkscape::Extension::build_from_mem(xml_str, new Filter::Filter(filter)); + Inkscape::Extension::build_from_mem(xml_str, new Filter(filter)); g_free(xml_str); return; } -- cgit v1.2.3 From d037400fcf3fba455e092ed6c1e34163eb6c7b7f Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sat, 3 Apr 2010 18:50:12 +0200 Subject: Fix grid extension (bzr r9281.1.10) --- src/extension/internal/grid.cpp | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index d4b35b261..deef367a4 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -46,13 +46,12 @@ Grid::load (Inkscape::Extension::Extension */*module*/) namespace { -Glib::ustring build_lines(int axis, Geom::Rect bounding_area, - float offset, float spacing) +void build_lines(int axis, Geom::Rect bounding_area, float offset, + float spacing, SVG::PathString &path_data) { Geom::Point point_offset(0.0, 0.0); point_offset[axis] = offset; - SVG::PathString path_data; for (Geom::Point start_point = bounding_area.min(); start_point[axis] + offset <= (bounding_area.max())[axis]; start_point[axis] += spacing) { @@ -62,8 +61,6 @@ Glib::ustring build_lines(int axis, Geom::Rect bounding_area, path_data.moveTo(start_point + point_offset) .lineTo(end_point + point_offset); } - - return path_data; } } @@ -89,10 +86,8 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc if (bounds) { bounding_area = *bounds; } - - gdouble doc_height = sp_document_height(document->doc()); - Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], doc_height - bounding_area.min()[Geom::Y]), - Geom::Point(bounding_area.max()[Geom::X], doc_height - bounding_area.max()[Geom::Y])); + Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], bounding_area.min()[Geom::Y]), + Geom::Point(bounding_area.max()[Geom::X], bounding_area.max()[Geom::Y])); bounding_area = temprec; } @@ -103,10 +98,9 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc float offsets[2] = { module->get_param_float("xoffset"), module->get_param_float("yoffset") }; - Glib::ustring path_data(""); + SVG::PathString path_data; for ( int axis = 0 ; axis < 2 ; ++axis ) { - path_data += build_lines(axis, bounding_area, - offsets[axis], spacings[axis]); + build_lines(axis, bounding_area, offsets[axis], spacings[axis], path_data); } Inkscape::XML::Document * xml_doc = sp_document_repr_doc(document->doc()); -- cgit v1.2.3 From 62342e4e8ab205fed32748197f926595071743cc Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Sun, 4 Apr 2010 00:00:17 +0200 Subject: remove debug text from cairo-render-context.cpp (bzr r9289) --- src/extension/internal/cairo-render-context.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/cairo-render-context.cpp b/src/extension/internal/cairo-render-context.cpp index 877bdb952..cf3c72432 100644 --- a/src/extension/internal/cairo-render-context.cpp +++ b/src/extension/internal/cairo-render-context.cpp @@ -80,7 +80,8 @@ #include //#define TRACE(_args) g_printf _args -#define TRACE(_args) g_message _args +//#define TRACE(_args) g_message _args +#define TRACE(_args) //#define TEST(_args) _args #define TEST(_args) @@ -819,7 +820,6 @@ CairoRenderContext::setSurfaceTarget(cairo_surface_t *surface, bool is_vector, c bool CairoRenderContext::_finishSurfaceSetup(cairo_surface_t *surface, cairo_matrix_t *ctm) { -g_message("enter"); if(surface == NULL) { return false; } @@ -846,7 +846,7 @@ g_message("enter"); } _is_valid = TRUE; -g_message("leave"); + return true; } -- cgit v1.2.3 From 2b115a6b3457a06498167e978a2fdf47f5f2655c Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Sun, 4 Apr 2010 00:19:13 +0200 Subject: Fix --export-page-drawing option in PDF, PS and LaTeX export. (bzr r9290) --- src/extension/internal/cairo-renderer.cpp | 6 +----- src/extension/internal/latex-text-renderer.cpp | 3 ++- 2 files changed, 3 insertions(+), 6 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 6e4bb3b7e..52f070591 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -631,12 +631,8 @@ CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool page if (ret && !pageBoundingBox) { - double high = sp_document_height(doc); - if (ctx->_vector_based_target) - high *= PT_PER_PX; - Geom::Matrix tp(Geom::Translate(-d.x0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0), - (d.y1 - high) * (ctx->_vector_based_target ? PX_PER_PT : 1.0))); + -d.y0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0))); ctx->transform(&tp); } diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index 28bba1beb..1fdf1d7fd 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -501,7 +501,8 @@ LaTeXTextRenderer::setupDocument(SPDocument *doc, bool pageBoundingBox, SPItem * if (!pageBoundingBox) { - push_transform( Geom::Translate( - d->min() ) ); + Geom::Translate t(-d->min()[Geom::X], d->max()[Geom::Y] - sp_document_height(doc)); + push_transform( t ); } // flip y-axis -- cgit v1.2.3 From 95a0c8412e84f5e0cc1d9a63fce2be75f9fa517e Mon Sep 17 00:00:00 2001 From: Krzysztof Kosi??ski Date: Tue, 6 Apr 2010 16:11:54 +0200 Subject: Revert the inverted coordinate system fix. 3D Boxes and guides require an XML-level backwards compatibility mechanism to fix properly, and it's too late in the 0.48 cycle to introduce it. (bzr r9298) --- src/extension/internal/cairo-renderer.cpp | 6 +++++- src/extension/internal/grid.cpp | 18 ++++++++++++------ src/extension/internal/latex-text-renderer.cpp | 3 +-- 3 files changed, 18 insertions(+), 9 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 52f070591..6e4bb3b7e 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -631,8 +631,12 @@ CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool page if (ret && !pageBoundingBox) { + double high = sp_document_height(doc); + if (ctx->_vector_based_target) + high *= PT_PER_PX; + Geom::Matrix tp(Geom::Translate(-d.x0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0), - -d.y0 * (ctx->_vector_based_target ? PX_PER_PT : 1.0))); + (d.y1 - high) * (ctx->_vector_based_target ? PX_PER_PT : 1.0))); ctx->transform(&tp); } diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index deef367a4..d4b35b261 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -46,12 +46,13 @@ Grid::load (Inkscape::Extension::Extension */*module*/) namespace { -void build_lines(int axis, Geom::Rect bounding_area, float offset, - float spacing, SVG::PathString &path_data) +Glib::ustring build_lines(int axis, Geom::Rect bounding_area, + float offset, float spacing) { Geom::Point point_offset(0.0, 0.0); point_offset[axis] = offset; + SVG::PathString path_data; for (Geom::Point start_point = bounding_area.min(); start_point[axis] + offset <= (bounding_area.max())[axis]; start_point[axis] += spacing) { @@ -61,6 +62,8 @@ void build_lines(int axis, Geom::Rect bounding_area, float offset, path_data.moveTo(start_point + point_offset) .lineTo(end_point + point_offset); } + + return path_data; } } @@ -86,8 +89,10 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc if (bounds) { bounding_area = *bounds; } - Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], bounding_area.min()[Geom::Y]), - Geom::Point(bounding_area.max()[Geom::X], bounding_area.max()[Geom::Y])); + + gdouble doc_height = sp_document_height(document->doc()); + Geom::Rect temprec = Geom::Rect(Geom::Point(bounding_area.min()[Geom::X], doc_height - bounding_area.min()[Geom::Y]), + Geom::Point(bounding_area.max()[Geom::X], doc_height - bounding_area.max()[Geom::Y])); bounding_area = temprec; } @@ -98,9 +103,10 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc float offsets[2] = { module->get_param_float("xoffset"), module->get_param_float("yoffset") }; - SVG::PathString path_data; + Glib::ustring path_data(""); for ( int axis = 0 ; axis < 2 ; ++axis ) { - build_lines(axis, bounding_area, offsets[axis], spacings[axis], path_data); + path_data += build_lines(axis, bounding_area, + offsets[axis], spacings[axis]); } Inkscape::XML::Document * xml_doc = sp_document_repr_doc(document->doc()); diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index 1fdf1d7fd..28bba1beb 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -501,8 +501,7 @@ LaTeXTextRenderer::setupDocument(SPDocument *doc, bool pageBoundingBox, SPItem * if (!pageBoundingBox) { - Geom::Translate t(-d->min()[Geom::X], d->max()[Geom::Y] - sp_document_height(doc)); - push_transform( t ); + push_transform( Geom::Translate( - d->min() ) ); } // flip y-axis -- cgit v1.2.3 From 7557c867cfcd841cf46935e7bf7fbee53709c150 Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Thu, 8 Apr 2010 23:05:52 +0200 Subject: PDF+LaTeX: fix bug 555488, and fix bug with missing space after setting justification Fixed bugs: - https://launchpad.net/bugs/555488 (bzr r9301) --- src/extension/internal/latex-text-renderer.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/latex-text-renderer.cpp b/src/extension/internal/latex-text-renderer.cpp index 28bba1beb..c6c597b7a 100644 --- a/src/extension/internal/latex-text-renderer.cpp +++ b/src/extension/internal/latex-text-renderer.cpp @@ -350,13 +350,13 @@ Flowing in rectangle is possible, not in arb shape. g_free(strtext); g_strfreev(splitstr); - if (!flowtext->has_internal_frame()) { - // has_internal_frame includes a check that frame is a SPRect + SPItem *frame_item = flowtext->get_frame(NULL); + if (!frame_item || !SP_IS_RECT(frame_item)) { g_warning("LaTeX export: non-rectangular flowed text shapes are not supported, skipping text."); return; // don't know how to handle non-rect frames yet. is quite uncommon for latex users i think } - SPRect *frame = SP_RECT(flowtext->get_frame(NULL)); + SPRect *frame = SP_RECT(frame_item); Geom::Rect framebox = sp_rect_get_rect(frame) * transform(); // get position and alignment @@ -365,13 +365,13 @@ Flowing in rectangle is possible, not in arb shape. gchar const *justification = ""; switch (flowtext->layout.paragraphAlignment(flowtext->layout.begin())) { case Inkscape::Text::Layout::LEFT: - justification = "\\raggedright"; + justification = "\\raggedright "; break; case Inkscape::Text::Layout::RIGHT: - justification = "\\raggedleft"; + justification = "\\raggedleft "; break; case Inkscape::Text::Layout::CENTER: - justification = "\\centering"; + justification = "\\centering "; case Inkscape::Text::Layout::FULL: default: // no need to add LaTeX code for standard justified output :) -- cgit v1.2.3 From 98c1f52afb5011477a9ad164ede006414e0e32af Mon Sep 17 00:00:00 2001 From: "Johan B. C. Engelen" Date: Sat, 10 Apr 2010 14:51:38 +0200 Subject: fix bug 168275 by removing a ceil on document height and width in pdf/eps/ps exporter. Fixed bugs: - https://launchpad.net/bugs/168275 (bzr r9306) --- src/extension/internal/cairo-renderer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/cairo-renderer.cpp b/src/extension/internal/cairo-renderer.cpp index 6e4bb3b7e..ebdb82a69 100644 --- a/src/extension/internal/cairo-renderer.cpp +++ b/src/extension/internal/cairo-renderer.cpp @@ -608,8 +608,8 @@ CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool page NRRect d; if (pageBoundingBox) { d.x0 = d.y0 = 0; - d.x1 = ceil(sp_document_width(doc)); - d.y1 = ceil(sp_document_height(doc)); + d.x1 = sp_document_width(doc); + d.y1 = sp_document_height(doc); } else { sp_item_invoke_bbox(base, &d, sp_item_i2d_affine(base), TRUE, SPItem::RENDERING_BBOX); } -- cgit v1.2.3 From e2fe2f42f1e688936eec062e45785cc0c8fc035f Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Wed, 14 Apr 2010 19:30:26 +0200 Subject: Fix for ImageMagick solarize extension. Fixed bugs: - https://launchpad.net/bugs/362271 (bzr r9329) --- src/extension/internal/bitmap/solarize.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/bitmap/solarize.cpp b/src/extension/internal/bitmap/solarize.cpp index 147c4f0b5..ea9ec42f3 100644 --- a/src/extension/internal/bitmap/solarize.cpp +++ b/src/extension/internal/bitmap/solarize.cpp @@ -18,7 +18,9 @@ namespace Bitmap { void Solarize::applyEffect(Magick::Image* image) { - image->solarize(_factor); + // Image Magick Quantum depth = 16 + // 655.35 = (2^16 - 1) / 100 + image->solarize(_factor * 655.35); } void -- cgit v1.2.3 From d48d6579e86f42fbd376dfe94ef36adae19d1154 Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Mon, 19 Apr 2010 21:37:04 +0200 Subject: Extensions. JavaFX output fix by ycswyw. Fixed bugs: - https://launchpad.net/bugs/439270 (bzr r9355) --- src/extension/internal/javafx-out.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp index ca061a63a..a4d348940 100644 --- a/src/extension/internal/javafx-out.cpp +++ b/src/extension/internal/javafx-out.cpp @@ -791,7 +791,8 @@ bool JavaFXOutput::doBody(SPDocument *doc, SPObject *obj) SPShape *shape = SP_SHAPE(item); SPCurve *curve = shape->curve; if (!curve->is_empty()) { - out(" %s(),\n", id.c_str()); + String jfxid = sanatize(id); + out(" %s(),\n", jfxid.c_str()); } } } -- cgit v1.2.3 From 74bd4815d7af73ed1595e3daf5c6fd40ea20336c Mon Sep 17 00:00:00 2001 From: Nicolas Dufour Date: Wed, 21 Apr 2010 23:40:54 +0200 Subject: Extensions. Fix Render>Grid extension (Bug #401567). Fixed bugs: - https://launchpad.net/bugs/401567 (bzr r9361) --- src/extension/internal/grid.cpp | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) (limited to 'src/extension/internal') diff --git a/src/extension/internal/grid.cpp b/src/extension/internal/grid.cpp index d4b35b261..39bca52d8 100644 --- a/src/extension/internal/grid.cpp +++ b/src/extension/internal/grid.cpp @@ -46,25 +46,29 @@ Grid::load (Inkscape::Extension::Extension */*module*/) namespace { -Glib::ustring build_lines(int axis, Geom::Rect bounding_area, - float offset, float spacing) +Glib::ustring build_lines(Geom::Rect bounding_area, + float offset[], float spacing[]) { Geom::Point point_offset(0.0, 0.0); - point_offset[axis] = offset; SVG::PathString path_data; - for (Geom::Point start_point = bounding_area.min(); - start_point[axis] + offset <= (bounding_area.max())[axis]; - start_point[axis] += spacing) { - Geom::Point end_point = start_point; - end_point[1-axis] = (bounding_area.max())[1-axis]; - - path_data.moveTo(start_point + point_offset) - .lineTo(end_point + point_offset); - } - return path_data; -} + for ( int axis = 0 ; axis < 2 ; ++axis ) { + point_offset[axis] = offset[axis]; + + for (Geom::Point start_point = bounding_area.min(); + start_point[axis] + offset[axis] <= (bounding_area.max())[axis]; + start_point[axis] += spacing[axis]) { + Geom::Point end_point = start_point; + end_point[1-axis] = (bounding_area.max())[1-axis]; + + path_data.moveTo(start_point + point_offset) + .lineTo(end_point + point_offset); + } + } + // std::cout << "Path data:" << path_data.c_str() << std::endl; + return path_data; + } } @@ -104,11 +108,9 @@ Grid::effect (Inkscape::Extension::Effect *module, Inkscape::UI::View::View *doc module->get_param_float("yoffset") }; Glib::ustring path_data(""); - for ( int axis = 0 ; axis < 2 ; ++axis ) { - path_data += build_lines(axis, bounding_area, - offsets[axis], spacings[axis]); - } + path_data = build_lines(bounding_area, + offsets, spacings); Inkscape::XML::Document * xml_doc = sp_document_repr_doc(document->doc()); Inkscape::XML::Node * current_layer = static_cast(document)->currentLayer()->repr; Inkscape::XML::Node * path = xml_doc->createElement("svg:path"); -- cgit v1.2.3