summaryrefslogtreecommitdiffstats
path: root/src/sp-mesh.cpp
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2016-09-26 11:26:47 +0000
committertavmjong-free <tavmjong@free.fr>2016-09-26 11:26:47 +0000
commitf273f14eb1b54861f1b3a7eb622cb481ee33cec9 (patch)
tree9603482485c7ff556213ea2f1f1b18aed5819896 /src/sp-mesh.cpp
parentAdd tracing code. (diff)
downloadinkscape-f273f14eb1b54861f1b3a7eb622cb481ee33cec9.tar.gz
inkscape-f273f14eb1b54861f1b3a7eb622cb481ee33cec9.zip
Fix undo/redo for mesh gradients.
(bzr r15135)
Diffstat (limited to 'src/sp-mesh.cpp')
-rw-r--r--src/sp-mesh.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/sp-mesh.cpp b/src/sp-mesh.cpp
index 5a6f2bd8e..1cdb2f1cc 100644
--- a/src/sp-mesh.cpp
+++ b/src/sp-mesh.cpp
@@ -9,16 +9,34 @@
* Mesh Gradient
*/
//#define MESH_DEBUG
+//#define OBJECT_TRACE
+
SPMesh::SPMesh() : SPGradient(), type( SP_MESH_TYPE_COONS ), type_set(false) {
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::SPMesh" );
+#endif
+
// Start coordinate of mesh
this->x.unset(SVGLength::NONE, 0.0, 0.0);
this->y.unset(SVGLength::NONE, 0.0, 0.0);
+
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::SPMesh", false );
+#endif
}
SPMesh::~SPMesh() {
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::~SPMesh (empty function)" );
+ objectTrace( "SPMesh::~SPMesh", false );
+#endif
}
void SPMesh::build(SPDocument *document, Inkscape::XML::Node *repr) {
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::build" );
+#endif
+
SPGradient::build(document, repr);
// Start coordinate of mesh
@@ -26,10 +44,18 @@ void SPMesh::build(SPDocument *document, Inkscape::XML::Node *repr) {
this->readAttr( "y" );
this->readAttr( "type" );
+
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::build", false );
+#endif
}
void SPMesh::set(unsigned key, gchar const *value) {
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::set" );
+#endif
+
switch (key) {
case SP_ATTR_X:
if (!this->x.read(value)) {
@@ -70,14 +96,18 @@ void SPMesh::set(unsigned key, gchar const *value) {
SPGradient::set(key, value);
break;
}
+
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::set", false );
+#endif
}
/**
* Write mesh gradient attributes to associated repr.
*/
Inkscape::XML::Node* SPMesh::write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) {
-#ifdef MESH_DEBUG
- std::cout << "sp_mesh_write() ***************************" << std::endl;
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::write", false );
#endif
if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) {
@@ -108,6 +138,9 @@ Inkscape::XML::Node* SPMesh::write(Inkscape::XML::Document *xml_doc, Inkscape::X
SPGradient::write(xml_doc, repr, flags);
+#ifdef OBJECT_TRACE
+ objectTrace( "SPMesh::write", false );
+#endif
return repr;
}
@@ -132,7 +165,7 @@ cairo_pattern_t* SPMesh::pattern_new(cairo_t * /*ct*/,
using Geom::Y;
#ifdef MESH_DEBUG
- std::cout << "sp_mesh_create_pattern: (" << bbox->x0 << "," << bbox->y0 << ") (" << bbox->x1 << "," << bbox->y1 << ") " << opacity << std::endl;
+ std::cout << "sp_mesh_create_pattern: " << (*bbox) << " " << opacity << std::endl;
#endif
this->ensureArray();