summaryrefslogtreecommitdiffstats
path: root/src/style.cpp
diff options
context:
space:
mode:
authorTomasz Boczkowski <penginsbacon@gmail.com>2014-10-14 09:46:46 +0000
committerTomasz Boczkowski <penginsbacon@gmail.com>2014-10-14 09:46:46 +0000
commitca13fe9ec12404692ecf1a8429023b2e38356b30 (patch)
treee1513acaeb76c361b9418dc2161e8388af24a25a /src/style.cpp
parentMerged src/style.h from svg-paints-support branch (diff)
downloadinkscape-ca13fe9ec12404692ecf1a8429023b2e38356b30.tar.gz
inkscape-ca13fe9ec12404692ecf1a8429023b2e38356b30.zip
Merged src/style.cpp from svg-paints-support branch
(bzr r13611.1.4)
Diffstat (limited to 'src/style.cpp')
-rw-r--r--src/style.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/style.cpp b/src/style.cpp
index abc928d76..c20d7ed70 100644
--- a/src/style.cpp
+++ b/src/style.cpp
@@ -437,6 +437,8 @@ SPStyle::~SPStyle() {
// Remove connections
release_connection.disconnect();
+ fill_ps_changed_connection.disconnect();
+ stroke_ps_changed_connection.disconnect();
// The following shoud be moved into SPIPaint and SPIFilter
if (fill.value.href) {
@@ -496,10 +498,10 @@ SPStyle::clear() {
filter.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_filter_ref_changed), this));
fill.value.href = new SPPaintServerReference(document);
- fill.value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_fill_paint_server_ref_changed), this));
+ fill_ps_changed_connection = fill.value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_fill_paint_server_ref_changed), this));
stroke.value.href = new SPPaintServerReference(document);
- stroke.value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_stroke_paint_server_ref_changed), this));
+ stroke_ps_changed_connection = stroke.value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_stroke_paint_server_ref_changed), this));
}
cloned = false;
@@ -1112,6 +1114,7 @@ sp_style_fill_paint_server_ref_changed(SPObject *old_ref, SPObject *ref, SPStyle
ref->connectModified(sigc::bind(sigc::ptr_fun(&sp_style_paint_server_ref_modified), style));
}
+ style->signal_fill_ps_changed.emit(old_ref, ref);
sp_style_paint_server_ref_modified(ref, 0, style);
}
@@ -1129,6 +1132,7 @@ sp_style_stroke_paint_server_ref_changed(SPObject *old_ref, SPObject *ref, SPSty
ref->connectModified(sigc::bind(sigc::ptr_fun(&sp_style_paint_server_ref_modified), style));
}
+ style->signal_stroke_ps_changed.emit(old_ref, ref);
sp_style_paint_server_ref_modified(ref, 0, style);
}
@@ -1357,7 +1361,11 @@ sp_style_set_ipaint_to_uri(SPStyle *style, SPIPaint *paint, const Inkscape::URI
// now that we have a document, we can create it here
if (!paint->value.href && document) {
paint->value.href = new SPPaintServerReference(document);
- paint->value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun((paint == &style->fill)? sp_style_fill_paint_server_ref_changed : sp_style_stroke_paint_server_ref_changed), style));
+ if (paint == &style->fill) {
+ style->fill_ps_changed_connection = paint->value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_fill_paint_server_ref_changed), style));
+ } else {
+ style->stroke_ps_changed_connection = paint->value.href->changedSignal().connect(sigc::bind(sigc::ptr_fun(sp_style_stroke_paint_server_ref_changed), style));
+ }
}
if (paint->value.href){