diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2016-10-04 22:08:23 +0000 |
|---|---|---|
| committer | jabiertxof <info@marker.es> | 2016-10-04 22:08:23 +0000 |
| commit | 98f6a39975eef4b0d711e13b6743e494347d8ae0 (patch) | |
| tree | 13553e67129a6313b50d1490b917db02a765822f /src | |
| parent | Attemp lock hepers (diff) | |
| download | inkscape-98f6a39975eef4b0d711e13b6743e494347d8ae0.tar.gz inkscape-98f6a39975eef4b0d711e13b6743e494347d8ae0.zip | |
add lock
(bzr r15017.1.39)
Diffstat (limited to 'src')
| -rw-r--r-- | src/live_effects/lpe-measure-line.cpp | 62 | ||||
| -rw-r--r-- | src/live_effects/lpe-measure-line.h | 2 |
2 files changed, 28 insertions, 36 deletions
diff --git a/src/live_effects/lpe-measure-line.cpp b/src/live_effects/lpe-measure-line.cpp index 4780fb817..434dc484c 100644 --- a/src/live_effects/lpe-measure-line.cpp +++ b/src/live_effects/lpe-measure-line.cpp @@ -67,7 +67,7 @@ LPEMeasureLine::LPEMeasureLine(LivePathEffectObject *lpeobject) : line_group_05(_("Line Group 0.5*"), _("Line Group 0.5, from 0.7"), "line_group_05", &wr, this, true), rotate_anotation(_("Rotate Anotation*"), _("Rotate Anotation"), "rotate_anotation", &wr, this, true), hide_back(_("Hide if label over*"), _("Hide DIN line if label over"), "hide_back", &wr, this, true), - lock_measure(_("Lock measure data"), _("Lock measure data to avoid problems on transforms"), "lock_measure", &wr, this, true), + unlock_measure(_("Unlock measure data"), _("Unlock measure data maybe give problems on transforms"), "unlock_measure", &wr, this, false), dimline_format(_("CSS DIN line*"), _("Override CSS to DIN line, return to save, empty to reset to DIM"), "dimline_format", &wr, this,""), helperlines_format(_("CSS helpers*"), _("Override CSS to helper lines, return to save, empty to reset to DIM"), "helperlines_format", &wr, this,""), anotation_format(_("CSS anotation*"), _("Override CSS to anotation text, return to save, empty to reset to DIM"), "anotation_format", &wr, this,""), @@ -93,7 +93,7 @@ LPEMeasureLine::LPEMeasureLine(LivePathEffectObject *lpeobject) : registerParameter(&line_group_05); registerParameter(&rotate_anotation); registerParameter(&hide_back); - registerParameter(&lock_measure); + registerParameter(&unlock_measure); registerParameter(&dimline_format); registerParameter(&helperlines_format); registerParameter(&anotation_format); @@ -256,10 +256,10 @@ LPEMeasureLine::createArrowMarker(Glib::ustring mode) arrow->setAttribute("refX", "0.0"); arrow->setAttribute("refY", "0.0"); arrow->setAttribute("style", "overflow:visible"); - if (lock_measure) { - arrow->setAttribute("sodipodi:insensitive", "true"); - } else { + if (unlock_measure) { arrow->setAttribute("sodipodi:insensitive", NULL); + } else { + arrow->setAttribute("sodipodi:insensitive", "true"); } /* Create <path> */ Inkscape::XML::Node *arrow_path = xml_doc->createElement("svg:path"); @@ -288,10 +288,10 @@ LPEMeasureLine::createArrowMarker(Glib::ustring mode) } else { Inkscape::XML::Node *arrow= elemref->getRepr(); if (arrow) { - if (lock_measure) { - arrow->setAttribute("sodipodi:insensitive", "true"); - } else { + if (unlock_measure) { arrow->setAttribute("sodipodi:insensitive", NULL); + } else { + arrow->setAttribute("sodipodi:insensitive", "true"); } Inkscape::XML::Node *arrow_data = arrow->firstChild(); if (arrow_data) { @@ -339,16 +339,14 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl elemref->deleteObject(); return; } -// Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(elemref)->parent, SP_OBJECT(desktop->doc()->getRoot())); -// pos *= affinetransform; pos = pos - Point::polar(angle, text_right_left); rtext = elemref->getRepr(); sp_repr_set_svg_double(rtext, "x", pos[Geom::X]); sp_repr_set_svg_double(rtext, "y", pos[Geom::Y]); - if (lock_measure) { - rtext->setAttribute("sodipodi:insensitive", "true"); - } else { + if (unlock_measure) { rtext->setAttribute("sodipodi:insensitive", NULL); + } else { + rtext->setAttribute("sodipodi:insensitive", "true"); } } else { if (remove) { @@ -357,10 +355,10 @@ LPEMeasureLine::createTextLabel(Geom::Point pos, double length, Geom::Coord angl rtext = xml_doc->createElement("svg:text"); rtext->setAttribute("xml:space", "preserve"); rtext->setAttribute("id", ( (Glib::ustring)"text-on-" + (Glib::ustring)this->getRepr()->attribute("id")).c_str()); - if (lock_measure) { - rtext->setAttribute("sodipodi:insensitive", "true"); - } else { + if (unlock_measure) { rtext->setAttribute("sodipodi:insensitive", NULL); + } else { + rtext->setAttribute("sodipodi:insensitive", "true"); } pos = pos - Point::polar(angle, text_right_left); sp_repr_set_svg_double(rtext, "x", pos[Geom::X]); @@ -477,11 +475,7 @@ LPEMeasureLine::createLine(Geom::Point start,Geom::Point end, Glib::ustring id, end = end + Point::polar(angle, helpline_overlap ); } Geom::PathVector line_pathv; - SPDocument * doc = SP_ACTIVE_DOCUMENT; - Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(sp_lpe_item)->parent, SP_OBJECT(doc->getRoot())); - double parents_scale = (affinetransform.inverse().expansionX() + affinetransform.inverse().expansionY()) / 2.0; - double current_text_top_bottom = text_top_bottom / parents_scale; - if (main && std::abs(current_text_top_bottom) < fontsize/1.5 && hide_back && !overflow){ + if (main && std::abs(text_top_bottom) < fontsize/1.5 && hide_back && !overflow){ Geom::Path line_path; double k = 0; if (flip_side) { @@ -526,10 +520,10 @@ LPEMeasureLine::createLine(Geom::Point start,Geom::Point end, Glib::ustring id, gchar * line_str = sp_svg_write_path( line_pathv ); line->setAttribute("d" , line_str); } - if (lock_measure) { - line->setAttribute("sodipodi:insensitive", "true"); - } else { + if (unlock_measure) { line->setAttribute("sodipodi:insensitive", NULL); + } else { + line->setAttribute("sodipodi:insensitive", "true"); } line_pathv.clear(); @@ -583,8 +577,6 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) SPDocument * doc = SP_ACTIVE_DOCUMENT; Geom::Affine affinetransform = i2anc_affine(SP_OBJECT(lpeitem)->parent, SP_OBJECT(doc->getRoot())); double parents_scale = (affinetransform.inverse().expansionX() + affinetransform.inverse().expansionY()) / 2.0; - double current_text_top_bottom = text_top_bottom / parents_scale; - double current_position = position / parents_scale; Geom::PathVector pathvector = sp_path->get_original_curve()->get_pathvector(); pathvector *= affinetransform; @@ -661,9 +653,9 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) angle = std::fmod(angle, 2*M_PI); if (angle < 0) angle += 2*M_PI; if (angle >= rad_from_deg(90) && angle < rad_from_deg(270)) { - pos = pos - Point::polar(angle_cross, (current_position - current_text_top_bottom) + fontsize/2.5); + pos = pos - Point::polar(angle_cross, (position - text_top_bottom) + fontsize/2.5); } else { - pos = pos - Point::polar(angle_cross, (current_position + current_text_top_bottom) - fontsize/2.5); + pos = pos - Point::polar(angle_cross, (position + text_top_bottom) - fontsize/2.5); } if (scale_insensitive) { length *= parents_scale; @@ -671,14 +663,14 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) createTextLabel(pos, length, angle, remove); bool overflow = false; if ((anotation_width/2) + std::abs(text_right_left) > Geom::distance(start,end)/2.0) { - Geom::Point sstart = end - Point::polar(angle_cross, current_position); - Geom::Point send = end - Point::polar(angle_cross, current_position); + Geom::Point sstart = end - Point::polar(angle_cross, position); + Geom::Point send = end - Point::polar(angle_cross, position); if (text_right_left < 0 && flip_side || text_right_left > 0 && !flip_side) { - sstart = start - Point::polar(angle_cross, current_position); - send = start - Point::polar(angle_cross, current_position); + sstart = start - Point::polar(angle_cross, position); + send = start - Point::polar(angle_cross, position); } Geom::Point prog_end = Geom::Point(); - if (std::abs(current_text_top_bottom) < fontsize/1.5 && hide_back) { + if (std::abs(text_top_bottom) < fontsize/1.5 && hide_back) { if (text_right_left > 0 ) { prog_end = sstart - Point::polar(angle, std::abs(text_right_left) - (anotation_width/1.9) - (Geom::distance(start,end)/2.0)); } else { @@ -713,10 +705,10 @@ LPEMeasureLine::doBeforeEffect (SPLPEItem const* lpeitem) if (flip_side) { arrow_gap *= -1; } - hstart = hstart - Point::polar(angle_cross, current_position); + hstart = hstart - Point::polar(angle_cross, position); Glib::ustring id = (Glib::ustring)"infoline-on-start-" + (Glib::ustring)this->getRepr()->attribute("id"); createLine(start, hstart, id, false, false, remove); - hend = hend - Point::polar(angle_cross, current_position); + hend = hend - Point::polar(angle_cross, position); id = (Glib::ustring)"infoline-on-end-" + (Glib::ustring)this->getRepr()->attribute("id"); createLine(end, hend, id, false, false, remove); if (!arrows_outside) { diff --git a/src/live_effects/lpe-measure-line.h b/src/live_effects/lpe-measure-line.h index 83fef26b8..999d53af0 100644 --- a/src/live_effects/lpe-measure-line.h +++ b/src/live_effects/lpe-measure-line.h @@ -67,7 +67,7 @@ private: BoolParam line_group_05; BoolParam rotate_anotation; BoolParam hide_back; - BoolParam lock_measure; + BoolParam unlock_measure; TextParam dimline_format; TextParam helperlines_format; TextParam anotation_format; |
