diff --git a/src/sp-root.cpp b/src/sp-root.cpp
index 80c04c59f30461dec782391359e0b52b1f5d34c9..bd935074dec47dfba5663dbf6a68aebcdf5348c5 100644 (file)
--- a/src/sp-root.cpp
+++ b/src/sp-root.cpp
#include <libnr/nr-translate-scale-ops.h>
#include <xml/repr.h>
#include "svg/stringstream.h"
-#include "inkscape_version.h"
+#include "inkscape-version.h"
class SPDesktop;
static Inkscape::XML::Node *sp_root_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags);
static NRArenaItem *sp_root_show(SPItem *item, NRArena *arena, unsigned int key, unsigned int flags);
-static void sp_root_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags);
static void sp_root_print(SPItem *item, SPPrintContext *ctx);
static SPGroupClass *parent_class;
sp_object_class->write = sp_root_write;
sp_item_class->show = sp_root_show;
- sp_item_class->bbox = sp_root_bbox;
sp_item_class->print = sp_root_print;
}
static Inkscape::Version const zero_version(0, 0);
sp_version_from_string(SVG_VERSION, &root->original.svg);
- root->version.svg = root->original.svg;
- root->version.inkscape = root->original.inkscape =
- root->version.sodipodi = root->original.sodipodi = zero_version;
+ root->version.svg = zero_version;
+ root->original.svg = zero_version;
+ root->version.inkscape = zero_version;
+ root->original.inkscape = zero_version;
root->x.unset();
root->y.unset();
@@ -147,13 +146,11 @@ sp_root_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
SPGroup *group = (SPGroup *) object;
SPRoot *root = (SPRoot *) object;
- if (repr->attribute("sodipodi:docname") || repr->attribute("SP-DOCNAME")) {
- /* so we have a nonzero initial version */
- root->original.sodipodi.major = 0;
- root->original.sodipodi.minor = 1;
+ if ( !object->repr->attribute("version") ) {
+ repr->setAttribute("version", SVG_VERSION);
}
+
sp_object_read_attr(object, "version");
- sp_object_read_attr(object, "sodipodi:version");
sp_object_read_attr(object, "inkscape:version");
/* It is important to parse these here, so objects will have viewport build-time */
sp_object_read_attr(object, "x");
@@ -176,7 +173,7 @@ sp_root_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr)
}
// clear transform, if any was read in - SVG does not allow transform= on <svg>
- SP_ITEM(object)->transform = NR::identity();
+ SP_ITEM(object)->transform = Geom::identity();
}
/**
root->version.svg = root->original.svg;
}
break;
- case SP_ATTR_SODIPODI_VERSION:
- if (!sp_version_from_string(value, &root->version.sodipodi)) {
- root->version.sodipodi = root->original.sodipodi;
- }
case SP_ATTR_INKSCAPE_VERSION:
if (!sp_version_from_string(value, &root->version.inkscape)) {
root->version.inkscape = root->original.inkscape;
align = SP_ASPECT_XMIN_YMID;
} else if (!strcmp(c, "xMidYMid")) {
align = SP_ASPECT_XMID_YMID;
- } else if (!strcmp(c, "xMaxYMin")) {
+ } else if (!strcmp(c, "xMaxYMid")) {
align = SP_ASPECT_XMAX_YMID;
} else if (!strcmp(c, "xMinYMax")) {
align = SP_ASPECT_XMIN_YMAX;
}
clip = SP_ASPECT_MEET;
while (*e && *e == 32) e += 1;
- if (e) {
+ if (*e) {
if (!strcmp(e, "meet")) {
clip = SP_ASPECT_MEET;
} else if (!strcmp(e, "slice")) {
rctx.vp.y1 = root->height.computed;
}
- rctx.i2vp = NR::identity();
+ rctx.i2vp = Geom::identity();
/* And invoke parent method */
if (((SPObjectClass *) (parent_class))->update)
@@ -590,11 +583,12 @@ sp_root_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML:
}
if (flags & SP_OBJECT_WRITE_EXT) {
- repr->setAttribute("sodipodi:version", SODIPODI_VERSION);
- repr->setAttribute("inkscape:version", INKSCAPE_VERSION);
+ repr->setAttribute("inkscape:version", Inkscape::version_string);
}
- repr->setAttribute("version", SVG_VERSION);
+ if ( !repr->attribute("version") ) {
+ repr->setAttribute("version", sp_version_to_string(root->version.svg));
+ }
if (fabs(root->x.computed) > 1e-9)
sp_repr_set_svg_double(repr, "x", root->x.computed);
@@ -640,22 +634,6 @@ sp_root_show(SPItem *item, NRArena *arena, unsigned int key, unsigned int flags)
return ai;
}
-/**
- * Virtual bbox callback.
- */
-static void
-sp_root_bbox(SPItem const *item, NRRect *bbox, Geom::Matrix const &transform, unsigned const flags)
-{
- SPRoot const *root = SP_ROOT(item);
-
- if (((SPItemClass *) (parent_class))->bbox) {
- Geom::Matrix const product( to_2geom(root->c2p) * transform );
- ((SPItemClass *) (parent_class))->bbox(item, bbox,
- product,
- flags);
- }
-}
-
/**
* Virtual print callback.
*/