summaryrefslogtreecommitdiffstats
path: root/src/live_effects
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2019-09-30 14:05:42 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2019-09-30 14:05:42 +0000
commit8c0ce697003c01ce10807adb3a08b5353c19a447 (patch)
tree831c4f953706f1930d6094c50c564e52a2a39d30 /src/live_effects
parentFix issue 872. LPE on rects is not rendering in browsers (diff)
downloadinkscape-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.cpp2
-rw-r--r--src/live_effects/lpe-clone-original.cpp4
-rw-r--r--src/live_effects/lpe-copy_rotate.cpp14
-rw-r--r--src/live_effects/lpe-fillet-chamfer.cpp6
-rw-r--r--src/live_effects/lpe-measure-segments.cpp24
-rw-r--r--src/live_effects/lpe-mirror_symmetry.cpp18
-rw-r--r--src/live_effects/lpe-offset.cpp2
-rw-r--r--src/live_effects/lpe-powerclip.cpp8
-rw-r--r--src/live_effects/lpe-powermask.cpp10
-rw-r--r--src/live_effects/lpe-ruler.cpp4
-rw-r--r--src/live_effects/parameter/colorpicker.cpp2
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);