Apache OpenOffice (AOO) Bugzilla – Issue 123048
line skew parameter is not read from file for connectors in OO draw
Last modified: 2017-05-20 10:34:01 UTC
Created attachment 81340 [details] TGZ contins three files, my sample odg file, one picture after saving the file, one picture after re-opening the file. I have two standard connector lines between two objects (e.g. rectangles) In order to avoid the lines lying above each other the "line skew" parameter was used (using the gui). When reopening the file, all lines are lying above each other again an the line skew parameters are "0". As the "line skew" parameters are set correctly in the content.xml file, I assume that the reading of the parameter / filling the connector object is not working correctly somehow. Verified on Linux (RHEL6) and Windows XP with Apache OO draw 4.0.0
I see this as well, testing AOO400m3(Build:9702) - Rev. 1503704 2013-07-16 11:18:40 (Tue, 16 Jul 2013) - Linux i686 Steps: 1) File > New > Draw 2) Insert two objects 3) Add a connector between glue points on the two objects 4) Manually adjust the routing of the connector (drag the middle handle, for example) 5) File > Save 6) File > Reload The connector has returned to the default routing; the manual adjustment is lost. As Joerg mentioned, the file seems fine: a file created with 4.0 then loaded in AOO 3.4.1 shows the correct adjustment. This looks like a regression.
I ran into the same problem. I created a more complex diagram with many connectors requiring careful adjustments to maintain readability. After save and reload of the file all adjustments were gone. The problem can be consistently replicated. If data are required I could submit an example, too. Environment is Draw 4.0 on Win 7.
It is an error in opening. The information in the file format is correct, both the line-skew attribute and the calculated path. It is OK in AOO3.4.1 It fails at least since r1370716.
It is severe, that existing drawings are destroyed on opening. Therefore I request release blocker.
do we have a fix already in place?
No. I think Armin will know, whether it is safely doable for AOO4.01. I put him in CC.
ALG: I will take this one as it's on my list, currently still on another one...
It wsa OK in r1369534, and broken in r1369786
ALG: Grepping, taking a look, building xmloff...
ALG: What has changed is that the layout suppression in 3.4.1 was not working for 3.4.1 due to the following line: if ( bEdgeTrackUserDefined && (GetModel() && GetModel()->isLocked()) ) This was adapted to if(bEdgeTrackUserDefined || !GetModel() || GetModel()->isLocked()) which works as designed, so ImpCalcEdgeTrack will never be used during load. Problem is that the former error allowed values from the ItemSet to be set at the EdgeTrack using ImpSetAttrToEdgeInfo; this is *never* done now before later in SdrEdgeObj::ImpRecalcEdgeTrack() really *pEdgeTrack=ImpCalcEdgeTrack(*pEdgeTrack,aCon1,aCon2,&aEdgeInfo); ImpSetEdgeInfoToAttr(); is called. This *will* kill values which are in the ItemSet, but were vere adapted/set at the EdgeInfo (in ImpSetEdgeInfoToAttr). To solve this, the object needs to remember if ImpCalcEdgeTrack was ever suppressed, and if yes, get to a valid state by calling ImpCalcEdgeTrack once and then ImpSetAttrToEdgeInfo. After that, all will be as if layouting would have never been suppressed at all. Testing this theory...
ALG: Works as intended. This error shows how fragile stuff as the connectors is and that it nees rework urgently. Having redundant information in the ItemSet and in the local EdgeInfo is dangerous (as rendundant information always is). Doing some more tests...
ALG: Okay, looks good. Comitting and requesting AOO401 flag due to regression...
Committed for AOO410
approve showstopper request
"alg" committed SVN revision 1519451 into trunk: i123048 Corrected connector layout after reload
Hmm, a 4.0.1 release blocker yet the committed target is is 4.1? A typo, or I'm confused again. ALG: Thanks for looking at this!
correct target
@Joe: As long as the flag is not on '+' I see the fix targeted to AOO410. *If* the flag is given, I change it when comitting to AOO401 usually.
approve showstopper request again
set target milestone
ALG: Checked and committed to AOO401, changed target, done.
"alg" committed SVN revision 1519625 into branches/AOO401: i123048 Corrected connector layout after reload
The latest available build in cwiki is AOO401m2(Build:9711) - Rev. 1518667, waiting for the build AOO401 (rev. 1519625) or the later
This problem still exist in AOO401m2(Build:9711) - Rev. 1518667 OS win 7
(In reply to Prachi from comment #24) > This problem still exist in AOO401m2(Build:9711) - Rev. 1518667 > OS win 7 Per comment 22 this was fixed in revision 1519625 1518667 < 1519625
back to fixed
ALG: @Ariel: Thanks, you were faster than me! @Prachi: Thanks that you offer support and started reviewing, please look at my comment 20 in task 122982 for more info on revisions. @Yuzhen Fan: Seems you should give people more information when you hand over tasks for reviewing...
*** Issue 123315 has been marked as a duplicate of this issue. ***