diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-11-02 23:14:28 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2017-11-02 23:14:28 +0000 |
| commit | 08382df305f91a07349031e785500eb7be34872c (patch) | |
| tree | a47356965661c877b46ac2a26ebc017638291477 /src | |
| parent | Remove unrelated code (diff) | |
| download | inkscape-08382df305f91a07349031e785500eb7be34872c.tar.gz inkscape-08382df305f91a07349031e785500eb7be34872c.zip | |
Move finctions away object sets
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-powerclip.cpp | 19 | ||||
| -rw-r--r-- | src/live_effects/lpe-powerclip.h | 2 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.cpp | 18 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.h | 3 | ||||
| -rw-r--r-- | src/object-set.h | 2 | ||||
| -rw-r--r-- | src/selection-chemistry.cpp | 26 | ||||
| -rw-r--r-- | src/verbs.cpp | 11 |
7 files changed, 54 insertions, 27 deletions
diff --git a/src/live_effects/lpe-powerclip.cpp b/src/live_effects/lpe-powerclip.cpp index 40a9cdbfb..18276270d 100644 --- a/src/live_effects/lpe-powerclip.cpp +++ b/src/live_effects/lpe-powerclip.cpp @@ -395,6 +395,25 @@ LPEPowerClip::flattenClip(SPItem * clip_data, Geom::PathVector &path_in) } } +void sp_inverse_powerclip(Inkscape::Selection *sel) { + if (!sel->isEmpty()) { + auto selList = sel->items(); + for(auto i = boost::rbegin(selList); i != boost::rend(selList); ++i) { + SPLPEItem* lpeitem = dynamic_cast<SPLPEItem*>(*i); + if (lpeitem) { + Effect::createAndApply(POWERCLIP, SP_ACTIVE_DOCUMENT, lpeitem); + Effect* lpe = lpeitem->getCurrentLPE(); + lpe->getRepr()->setAttribute("is_inverse", "false"); + lpe->getRepr()->setAttribute("is_visible", "true"); + lpe->getRepr()->setAttribute("inverse", "true"); + lpe->getRepr()->setAttribute("flatten", "false"); + lpe->getRepr()->setAttribute("hide_clip", "false"); + dynamic_cast<LPEPowerClip *>(lpe)->convertShapes(); + } + } + } +} + }; //namespace LivePathEffect }; /* namespace Inkscape */ diff --git a/src/live_effects/lpe-powerclip.h b/src/live_effects/lpe-powerclip.h index 38485b798..6f99d220f 100644 --- a/src/live_effects/lpe-powerclip.h +++ b/src/live_effects/lpe-powerclip.h @@ -38,6 +38,8 @@ private: bool convert_shapes; }; +void sp_inverse_powerclip(Inkscape::Selection *sel); + } //namespace LivePathEffect } //namespace Inkscape #endif diff --git a/src/live_effects/lpe-powermask.cpp b/src/live_effects/lpe-powermask.cpp index 05510f258..b7c88584b 100644 --- a/src/live_effects/lpe-powermask.cpp +++ b/src/live_effects/lpe-powermask.cpp @@ -303,6 +303,24 @@ LPEPowerMask::doOnRemove (SPLPEItem const* lpeitem) } } +void sp_inverse_powerclip(Inkscape::Selection *sel) { + if (!sel->isEmpty()) { + auto selList = sel->items(); + for(auto i = boost::rbegin(selList); i != boost::rend(selList); ++i) { + SPLPEItem* lpeitem = dynamic_cast<SPLPEItem*>(*i); + if (lpeitem) { + Effect::createAndApply(POWERMASK, SP_ACTIVE_DOCUMENT, lpeitem); + Effect* lpe = lpeitem->getCurrentLPE(); + lpe->getRepr()->setAttribute("invert", "false"); + lpe->getRepr()->setAttribute("is_visible", "true"); + lpe->getRepr()->setAttribute("hide_mask", "false"); + lpe->getRepr()->setAttribute("background", "true"); + lpe->getRepr()->setAttribute("background_color", "#ffffffff"); + } + } + } +} + }; //namespace LivePathEffect }; /* namespace Inkscape */ diff --git a/src/live_effects/lpe-powermask.h b/src/live_effects/lpe-powermask.h index a54424e2f..d2d87fd41 100644 --- a/src/live_effects/lpe-powermask.h +++ b/src/live_effects/lpe-powermask.h @@ -35,6 +35,9 @@ private: Geom::Path mask_box; }; +void sp_inverse_powermask(Inkscape::Selection *sel); + } //namespace LivePathEffect } //namespace Inkscape + #endif diff --git a/src/object-set.h b/src/object-set.h index 2e57966e6..a8061593a 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -422,7 +422,7 @@ public: void tile(bool apply = true); //"Object to Pattern" void untile(); void createBitmapCopy(); - void setMask(bool apply_clip_path, bool apply_to_layer = false, bool skip_undo = false, bool inverse = false); + void setMask(bool apply_clip_path, bool apply_to_layer = false, bool skip_undo = false); void editMask(bool clip); void unsetMask(const bool apply_clip_path, const bool skip_undo = false); void setClipGroup(); diff --git a/src/selection-chemistry.cpp b/src/selection-chemistry.cpp index 43e7d8af5..0bd611163 100644 --- a/src/selection-chemistry.cpp +++ b/src/selection-chemistry.cpp @@ -95,8 +95,6 @@ SPCycleType SP_CYCLING = SP_CYCLE_FOCUS; #include "ui/tool/control-point-selection.h" #include "ui/tool/multi-path-manipulator.h" #include "live_effects/effect.h" -#include "live_effects/lpe-powerclip.h" -#include "live_effects/lpe-powermask.h" #include "live_effects/parameter/originalpath.h" #include "layer-manager.h" #include "object-set.h" @@ -3864,7 +3862,7 @@ void ObjectSet::setClipGroup() * If \a apply_clip_path parameter is true, clipPath is created, otherwise mask * */ - void ObjectSet::setMask(bool apply_clip_path, bool apply_to_layer, bool skip_undo, bool inverse) + void ObjectSet::setMask(bool apply_clip_path, bool apply_to_layer, bool skip_undo) { if(!desktop() && apply_to_layer) return; @@ -4018,27 +4016,7 @@ void ObjectSet::setClipGroup() } apply_mask_to->setAttribute(attributeName, Glib::ustring("url(#") + mask_id + ')'); - if (inverse) { - using namespace Inkscape::LivePathEffect; - if (apply_clip_path) { - Effect::createAndApply(POWERCLIP, doc, item); - Effect* lpe = SP_LPE_ITEM(item)->getCurrentLPE(); - lpe->getRepr()->setAttribute("is_inverse", "false"); - lpe->getRepr()->setAttribute("is_visible", "true"); - lpe->getRepr()->setAttribute("inverse", "true"); - lpe->getRepr()->setAttribute("flatten", "false"); - lpe->getRepr()->setAttribute("hide_clip", "false"); - dynamic_cast<LPEPowerClip *>(lpe)->convertShapes(); - } else { - Effect::createAndApply(POWERMASK, doc, item); - Effect* lpe = SP_LPE_ITEM(item)->getCurrentLPE(); - lpe->getRepr()->setAttribute("invert", "false"); - lpe->getRepr()->setAttribute("is_visible", "true"); - lpe->getRepr()->setAttribute("hide_mask", "false"); - lpe->getRepr()->setAttribute("background", "true"); - lpe->getRepr()->setAttribute("background_color", "#ffffffff"); - } - } + } for (std::vector<SPItem*>::const_iterator i = items_to_delete.begin(); i != items_to_delete.end(); ++i) { diff --git a/src/verbs.cpp b/src/verbs.cpp index 962196d06..27fc29dd4 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -85,6 +85,9 @@ #include "ui/icon-names.h" #include "ui/tools/node-tool.h" #include "ui/dialog/save-template-dialog.h" +#include "live_effects/effect.h" +#include "live_effects/lpe-powerclip.h" +#include "live_effects/lpe-powermask.h" using Inkscape::DocumentUndo; using Inkscape::UI::Dialog::ActionAlign; @@ -1593,7 +1596,9 @@ void ObjectVerb::perform( SPAction *action, void *data) sel->setMask(false, false); break; case SP_VERB_OBJECT_SET_INVERSE_MASK: - sel->setMask(false, false, false, true); + sel->setMask(false, false); + using Inkscape::LivePathEffect; + sp_inverse_powermask(sp_action_get_selection(action)); break; case SP_VERB_OBJECT_EDIT_MASK: sel->editMask(false); @@ -1605,7 +1610,9 @@ void ObjectVerb::perform( SPAction *action, void *data) sel->setMask(true, false); break; case SP_VERB_OBJECT_SET_INVERSE_CLIPPATH: - sel->setMask(true, false, false, true); + sel->setMask(true, false); + using Inkscape::LivePathEffect; + sp_inverse_powerclip(sp_action_get_selection(action)); break; case SP_VERB_OBJECT_CREATE_CLIP_GROUP: sel->setClipGroup(); |
