summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2017-06-11 18:58:59 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2017-06-11 18:58:59 +0000
commit2218ecdfec042a7ee333e9091790e2d1e398350f (patch)
tree009e468f93e910093de1ca1e78c21c6563741446 /src
parentWorking on powermask (diff)
downloadinkscape-2218ecdfec042a7ee333e9091790e2d1e398350f.tar.gz
inkscape-2218ecdfec042a7ee333e9091790e2d1e398350f.zip
Working on powermask
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-powermask.cpp23
-rw-r--r--src/live_effects/lpe-powermask.h1
2 files changed, 20 insertions, 4 deletions
diff --git a/src/live_effects/lpe-powermask.cpp b/src/live_effects/lpe-powermask.cpp
index 8b9d981c4..cc276c870 100644
--- a/src/live_effects/lpe-powermask.cpp
+++ b/src/live_effects/lpe-powermask.cpp
@@ -67,7 +67,12 @@ LPEPowerMask::setMask(){
SPMask *mask = SP_ITEM(sp_lpe_item)->mask_ref->getObject();
SPObject *elemref = NULL;
SPDocument * document = SP_ACTIVE_DOCUMENT;
- if(!document || !mask) {
+ if (!document || !mask) {
+ return;
+ }
+ Inkscape::XML::Node *root = sp_lpe_item->document->getReprRoot();
+ Inkscape::XML::Node *root_origin = document->getReprRoot();
+ if (root_origin != root) {
return;
}
Inkscape::XML::Document *xml_doc = document->getReprDoc();
@@ -109,10 +114,10 @@ LPEPowerMask::setMask(){
filter->appendChild(primitive2);
Inkscape::GC::release(primitive2);
}
+ if ((elemref = document->getObjectById(box_id))) {
+ elemref->deleteObject(true);
+ }
if (background) {
- if ((elemref = document->getObjectById(box_id))) {
- elemref->deleteObject(true);
- }
box = xml_doc->createElement("svg:path");
box->setAttribute("id", box_id.c_str());
box->setAttribute("style", background_style.param_getSVGValue());
@@ -187,9 +192,12 @@ LPEPowerMask::setMask(){
}
char const* filter = sp_repr_css_property (css, "filter", NULL);
if(!filter || !strcmp(filter, filter_uri.c_str())) {
+
if (invert) {
+ std::cout << "qqqqqqqqqqqqqqqqqqqqqqqqq\n";
sp_repr_css_set_property (css, "filter", filter_uri.c_str());
} else {
+ std::cout << "aaaaaaaaaaaaaaaaaaaaaaaaaaaaqq\n";
sp_repr_css_set_property (css, "filter", NULL);
}
Glib::ustring css_str;
@@ -197,6 +205,13 @@ LPEPowerMask::setMask(){
mask_node->setAttribute("style", css_str.c_str());
}
}
+ mask->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
+}
+
+void
+LPEPowerMask::doEffect (SPCurve * curve)
+{
+
}
void
diff --git a/src/live_effects/lpe-powermask.h b/src/live_effects/lpe-powermask.h
index 1bd06e914..1cc7a888b 100644
--- a/src/live_effects/lpe-powermask.h
+++ b/src/live_effects/lpe-powermask.h
@@ -19,6 +19,7 @@ public:
LPEPowerMask(LivePathEffectObject *lpeobject);
virtual ~LPEPowerMask();
virtual void doBeforeEffect (SPLPEItem const* lpeitem);
+ virtual void doEffect (SPCurve * curve);
virtual void doOnRemove (SPLPEItem const* /*lpeitem*/);
virtual Gtk::Widget * newWidget();
void toggleMask();