summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-10-04 22:08:23 +0000
committerjabiertxof <info@marker.es>2016-10-04 22:08:23 +0000
commit98f6a39975eef4b0d711e13b6743e494347d8ae0 (patch)
tree13553e67129a6313b50d1490b917db02a765822f /src
parentAttemp lock hepers (diff)
downloadinkscape-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.cpp62
-rw-r--r--src/live_effects/lpe-measure-line.h2
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;