diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-09-30 14:05:42 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2019-09-30 14:05:42 +0000 |
| commit | 8c0ce697003c01ce10807adb3a08b5353c19a447 (patch) | |
| tree | 831c4f953706f1930d6094c50c564e52a2a39d30 /src/live_effects | |
| parent | Fix issue 872. LPE on rects is not rendering in browsers (diff) | |
| download | inkscape-8c0ce697003c01ce10807adb3a08b5353c19a447.tar.gz inkscape-8c0ce697003c01ce10807adb3a08b5353c19a447.zip | |
Apply a Nathan Lee fix to all LPE changing from SP_ACTIVE_DOCUMET to LPE->document. It also remove a boring check and allow to preview on file explorer some Items blocked.
Diffstat (limited to 'src/live_effects')
| -rw-r--r-- | src/live_effects/effect.cpp | 2 | ||||
| -rw-r--r-- | src/live_effects/lpe-clone-original.cpp | 4 | ||||
| -rw-r--r-- | src/live_effects/lpe-copy_rotate.cpp | 14 | ||||
| -rw-r--r-- | src/live_effects/lpe-fillet-chamfer.cpp | 6 | ||||
| -rw-r--r-- | src/live_effects/lpe-measure-segments.cpp | 24 | ||||
| -rw-r--r-- | src/live_effects/lpe-mirror_symmetry.cpp | 18 | ||||
| -rw-r--r-- | src/live_effects/lpe-offset.cpp | 2 | ||||
| -rw-r--r-- | src/live_effects/lpe-powerclip.cpp | 8 | ||||
| -rw-r--r-- | src/live_effects/lpe-powermask.cpp | 10 | ||||
| -rw-r--r-- | src/live_effects/lpe-ruler.cpp | 4 | ||||
| -rw-r--r-- | src/live_effects/parameter/colorpicker.cpp | 2 |
11 files changed, 39 insertions, 55 deletions
diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index 1dcdfb566..3cc6f247a 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -1177,7 +1177,7 @@ Effect::isNodePointSelected(Geom::Point const &nodePoint) const void Effect::processObjects(LPEAction lpe_action) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } diff --git a/src/live_effects/lpe-clone-original.cpp b/src/live_effects/lpe-clone-original.cpp index 0e285c66d..8df64b6c0 100644 --- a/src/live_effects/lpe-clone-original.cpp +++ b/src/live_effects/lpe-clone-original.cpp @@ -127,7 +127,7 @@ LPECloneOriginal::newWidget() void LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, const gchar * attributes, const gchar * css_properties) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document || !origin || !dest) { return; } @@ -282,7 +282,7 @@ LPECloneOriginal::cloneAttrbutes(SPObject *origin, SPObject *dest, const gchar * void LPECloneOriginal::doBeforeEffect (SPLPEItem const* lpeitem){ start_listening(); - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } diff --git a/src/live_effects/lpe-copy_rotate.cpp b/src/live_effects/lpe-copy_rotate.cpp index 8c52d13b0..f9c083d39 100644 --- a/src/live_effects/lpe-copy_rotate.cpp +++ b/src/live_effects/lpe-copy_rotate.cpp @@ -114,17 +114,13 @@ LPECopyRotate::doAfterEffect (SPLPEItem const* lpeitem) { is_load = false; if (split_items) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } items.clear(); container = dynamic_cast<SPObject *>(sp_lpe_item->parent); - Inkscape::XML::Node *root = sp_lpe_item->document->getReprRoot(); - Inkscape::XML::Node *root_origin = document->getReprRoot(); - if (root_origin != root) { - return; - } + Inkscape::XML::Node *root = getSPDoc()->getReprRoot(); if (previous_num_copies != num_copies) { gint numcopies_gap = previous_num_copies - num_copies; if (numcopies_gap > 0 && num_copies != 0) { @@ -209,7 +205,7 @@ void LPECopyRotate::cloneStyle(SPObject *orig, SPObject *dest) void LPECopyRotate::cloneD(SPObject *orig, SPObject *dest, Geom::Affine transform, bool reset) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } @@ -272,7 +268,7 @@ LPECopyRotate::cloneD(SPObject *orig, SPObject *dest, Geom::Affine transform, bo Inkscape::XML::Node * LPECopyRotate::createPathBase(SPObject *elemref) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return nullptr; } @@ -300,7 +296,7 @@ LPECopyRotate::createPathBase(SPObject *elemref) { void LPECopyRotate::toItem(Geom::Affine transform, size_t i, bool reset) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } diff --git a/src/live_effects/lpe-fillet-chamfer.cpp b/src/live_effects/lpe-fillet-chamfer.cpp index 771fdaf73..315e943f5 100644 --- a/src/live_effects/lpe-fillet-chamfer.cpp +++ b/src/live_effects/lpe-fillet-chamfer.cpp @@ -96,7 +96,7 @@ void LPEFilletChamfer::doOnApply(SPLPEItem const *lpeItem) Satellites satellites; double power = radius; if (!flexible) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); Glib::ustring display_unit = document->getDisplayUnit()->abbr.c_str(); power = Inkscape::Util::Quantity::convert(power, unit.get_abbreviation(), display_unit.c_str()); } @@ -250,7 +250,7 @@ void LPEFilletChamfer::updateAmount() setSelected(_pathvector_satellites); double power = radius; if (!flexible) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); Glib::ustring display_unit = document->getDisplayUnit()->abbr.c_str(); power = Inkscape::Util::Quantity::convert(power, unit.get_abbreviation(), display_unit.c_str()); } @@ -315,7 +315,7 @@ void LPEFilletChamfer::doBeforeEffect(SPLPEItem const *lpeItem) if (number_nodes != previous_number_nodes) { double power = radius; if (!flexible) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); Glib::ustring display_unit = document->getDisplayUnit()->abbr.c_str(); power = Inkscape::Util::Quantity::convert(power, unit.get_abbreviation(), display_unit.c_str()); } diff --git a/src/live_effects/lpe-measure-segments.cpp b/src/live_effects/lpe-measure-segments.cpp index 27f5ce4bb..a0e13b020 100644 --- a/src/live_effects/lpe-measure-segments.cpp +++ b/src/live_effects/lpe-measure-segments.cpp @@ -310,7 +310,7 @@ LPEMeasureSegments::on_my_switch_page(Gtk::Widget* page, guint page_number) void LPEMeasureSegments::createArrowMarker(Glib::ustring mode) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document || !sp_lpe_item|| !sp_lpe_item->getId()) { return; } @@ -380,7 +380,7 @@ LPEMeasureSegments::createArrowMarker(Glib::ustring mode) void LPEMeasureSegments::createTextLabel(Geom::Point pos, size_t counter, double length, Geom::Coord angle, bool remove, bool valid) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document || !sp_lpe_item || !sp_lpe_item->getId()) { return; } @@ -528,7 +528,7 @@ LPEMeasureSegments::createTextLabel(Geom::Point pos, size_t counter, double leng void LPEMeasureSegments::createLine(Geom::Point start,Geom::Point end, Glib::ustring name, size_t counter, bool main, bool remove, bool arrows) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document || !sp_lpe_item || !sp_lpe_item->getId()) { return; } @@ -651,12 +651,12 @@ LPEMeasureSegments::doOnApply(SPLPEItem const* lpeitem) item->removeCurrentPathEffect(false); return; } - SPDocument *document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); bool saved = DocumentUndo::getUndoSensitive(document); DocumentUndo::setUndoSensitive(document, false); Inkscape::XML::Node *styleNode = nullptr; Inkscape::XML::Node* textNode = nullptr; - Inkscape::XML::Node *root = SP_ACTIVE_DOCUMENT->getReprRoot(); + Inkscape::XML::Node *root = document->getReprRoot(); for (unsigned i = 0; i < root->childCount(); ++i) { if (Glib::ustring(root->nthChild(i)->name()) == "svg:style") { @@ -671,7 +671,7 @@ LPEMeasureSegments::doOnApply(SPLPEItem const* lpeitem) if (textNode == nullptr) { // Style element found but does not contain text node! std::cerr << "StyleDialog::_getStyleTextNode(): No text node!" << std::endl; - textNode = SP_ACTIVE_DOCUMENT->getReprDoc()->createTextNode(""); + textNode = document->getReprDoc()->createTextNode(""); styleNode->appendChild(textNode); Inkscape::GC::release(textNode); } @@ -680,8 +680,8 @@ LPEMeasureSegments::doOnApply(SPLPEItem const* lpeitem) if (styleNode == nullptr) { // Style element not found, create one - styleNode = SP_ACTIVE_DOCUMENT->getReprDoc()->createElement("svg:style"); - textNode = SP_ACTIVE_DOCUMENT->getReprDoc()->createTextNode(""); + styleNode = document->getReprDoc()->createElement("svg:style"); + textNode = document->getReprDoc()->createTextNode(""); root->addChild(styleNode, nullptr); Inkscape::GC::release(styleNode); @@ -819,16 +819,12 @@ LPEMeasureSegments::doBeforeEffect (SPLPEItem const* lpeitem) { SPLPEItem * splpeitem = const_cast<SPLPEItem *>(lpeitem); Glib::ustring lpobjid = this->lpeobj->getId(); - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } //Avoid crashes on previews - Inkscape::XML::Node *root = splpeitem->document->getReprRoot(); - Inkscape::XML::Node *root_origin = document->getReprRoot(); - if (root_origin != root) { - return; - } + Inkscape::XML::Node *root = document->getReprRoot(); Geom::Affine parentaffinetransform = i2anc_affine(SP_OBJECT(lpeitem->parent), SP_OBJECT(document->getRoot())); Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(lpeitem), SP_OBJECT(document->getRoot())); Geom::Affine itemtransform = affinetransform * parentaffinetransform.inverse(); diff --git a/src/live_effects/lpe-mirror_symmetry.cpp b/src/live_effects/lpe-mirror_symmetry.cpp index 6dbeffe18..9dec35c16 100644 --- a/src/live_effects/lpe-mirror_symmetry.cpp +++ b/src/live_effects/lpe-mirror_symmetry.cpp @@ -85,16 +85,12 @@ void LPEMirrorSymmetry::doAfterEffect (SPLPEItem const* lpeitem) { is_load = false; - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } container = dynamic_cast<SPObject *>(sp_lpe_item->parent); - Inkscape::XML::Node *root = sp_lpe_item->document->getReprRoot(); - Inkscape::XML::Node *root_origin = document->getReprRoot(); - if (root_origin != root) { - return; - } + Inkscape::XML::Node *root = document->getReprRoot(); if (split_items && !discard_orig_path) { Geom::Line ls((Geom::Point)start_point, (Geom::Point)end_point); @@ -241,7 +237,7 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) } } else if ( mode == MT_V){ - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (document) { Geom::Affine transform = i2anc_affine(SP_OBJECT(lpeitem), nullptr).inverse(); Geom::Point sp = Geom::Point(document->getWidth().value("px")/2.0, 0) * transform; @@ -251,7 +247,7 @@ LPEMirrorSymmetry::doBeforeEffect (SPLPEItem const* lpeitem) center_point.param_setValue(Geom::middle_point((Geom::Point)start_point, (Geom::Point)end_point)); } } else { //horizontal page - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (document) { Geom::Affine transform = i2anc_affine(SP_OBJECT(lpeitem), nullptr).inverse(); Geom::Point sp = Geom::Point(0, document->getHeight().value("px")/2.0) * transform; @@ -283,7 +279,7 @@ void LPEMirrorSymmetry::cloneStyle(SPObject *orig, SPObject *dest) void LPEMirrorSymmetry::cloneD(SPObject *orig, SPObject *dest, bool reset) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } @@ -334,7 +330,7 @@ LPEMirrorSymmetry::cloneD(SPObject *orig, SPObject *dest, bool reset) Inkscape::XML::Node * LPEMirrorSymmetry::createPathBase(SPObject *elemref) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return nullptr; } @@ -361,7 +357,7 @@ LPEMirrorSymmetry::createPathBase(SPObject *elemref) { void LPEMirrorSymmetry::toMirror(Geom::Affine transform, bool reset) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } diff --git a/src/live_effects/lpe-offset.cpp b/src/live_effects/lpe-offset.cpp index 4c3aa6b50..401875700 100644 --- a/src/live_effects/lpe-offset.cpp +++ b/src/live_effects/lpe-offset.cpp @@ -199,7 +199,7 @@ void LPEOffset::doBeforeEffect (SPLPEItem const* lpeitem) { original_bbox(lpeitem); - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } diff --git a/src/live_effects/lpe-powerclip.cpp b/src/live_effects/lpe-powerclip.cpp index d96e2caae..461a22125 100644 --- a/src/live_effects/lpe-powerclip.cpp +++ b/src/live_effects/lpe-powerclip.cpp @@ -137,7 +137,7 @@ LPEPowerClip::doAfterEffect (SPLPEItem const* lpeitem){ void LPEPowerClip::addInverse (SPItem * clip_data, SPCurve * clipcurve, Geom::Affine affine, bool root){ gchar * is_inverse_str = is_inverse.param_getSVGValue(); - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } @@ -200,7 +200,7 @@ LPEPowerClip::addInverse (SPItem * clip_data, SPCurve * clipcurve, Geom::Affine void LPEPowerClip::updateInverse (SPItem * clip_data) { - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } @@ -239,7 +239,7 @@ LPEPowerClip::updateInverse (SPItem * clip_data) { void LPEPowerClip::removeInverse (SPItem * clip_data){ - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return; } @@ -295,7 +295,7 @@ LPEPowerClip::doEffect_path(Geom::PathVector const & path_in){ SPClipPath *clip_path = SP_ITEM(sp_lpe_item)->clip_ref->getObject(); if (!hide_clip && flatten && isVisible()) { path_out *= sp_item_transform_repr (sp_lpe_item).inverse(); - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (!document) { return path_out; } diff --git a/src/live_effects/lpe-powermask.cpp b/src/live_effects/lpe-powermask.cpp index c4579eea2..4c3d0bc88 100644 --- a/src/live_effects/lpe-powermask.cpp +++ b/src/live_effects/lpe-powermask.cpp @@ -125,15 +125,11 @@ void LPEPowerMask::setMask(){ SPMask *mask = SP_ITEM(sp_lpe_item)->mask_ref->getObject(); SPObject *elemref = nullptr; - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); 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::Node *root = document->getReprRoot(); Inkscape::XML::Document *xml_doc = document->getReprDoc(); Inkscape::XML::Node *box = nullptr; Inkscape::XML::Node *filter = nullptr; @@ -314,7 +310,7 @@ LPEPowerMask::doOnRemove (SPLPEItem const* lpeitem) background.param_setValue(false); setMask(); SPObject *elemref = nullptr; - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); Glib::ustring mask_id = (Glib::ustring)mask->getId(); Glib::ustring filter_id = mask_id + (Glib::ustring)"_inverse"; if ((elemref = document->getObjectById(filter_id))) { diff --git a/src/live_effects/lpe-ruler.cpp b/src/live_effects/lpe-ruler.cpp index 75052ad33..600508372 100644 --- a/src/live_effects/lpe-ruler.cpp +++ b/src/live_effects/lpe-ruler.cpp @@ -77,7 +77,7 @@ LPERuler::ruler_mark(Geom::Point const &A, Geom::Point const &n, MarkType const using namespace Geom; double real_mark_length = mark_length; - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (document) { real_mark_length = Inkscape::Util::Quantity::convert(real_mark_length, unit.get_abbreviation(), document->getDisplayUnit()->abbr.c_str()); } @@ -133,7 +133,7 @@ LPERuler::doEffect_pwd2 (Geom::Piecewise<Geom::D2<Geom::SBasis> > const & pwd2_i std::vector<double> s_cuts; double real_mark_distance = mark_distance; - SPDocument * document = SP_ACTIVE_DOCUMENT; + SPDocument *document = getSPDoc(); if (document) { real_mark_distance = Inkscape::Util::Quantity::convert(real_mark_distance, unit.get_abbreviation(), document->getDisplayUnit()->abbr.c_str()); } diff --git a/src/live_effects/parameter/colorpicker.cpp b/src/live_effects/parameter/colorpicker.cpp index 8163b3672..a15b2668b 100644 --- a/src/live_effects/parameter/colorpicker.cpp +++ b/src/live_effects/parameter/colorpicker.cpp @@ -115,7 +115,7 @@ ColorPickerParam::param_newWidget() *param_wr, param_effect->getRepr(), param_effect->getSPDoc() ); - SPDocument *document = SP_ACTIVE_DOCUMENT; + SPDocument *document = param_effect->getSPDoc(); bool saved = DocumentUndo::getUndoSensitive(document); DocumentUndo::setUndoSensitive(document, false); colorpickerwdg->setRgba32(value); |
