[Scribus] inserting a frame into already linked frames
Mon Jul 10 07:28:04 CEST 2006
Thanks for your continued time and thoughts.
On reading and re-reading your responses and my original posts, I am
wondering if my original post was perhaps ambiguous. The problem I was
trying to describe was that of inserting a *text* frame into a chain of
linked *text* frames.
>>>Date: Sun, 09 Jul 2006 11:14:56 -0400
>>>From: Gregory Pittman <gpittman at iglou.com>
>>>Subject: Re: [Scribus] inserting a frame into already linked frames
>>>To: scribus at nashi.altmuehlnet.de
>>>Message-ID: <44B11D70.8030903 at iglou.com>
>>>Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>>>>I have encountered this situation in most documents, and still haven't
>>>>found a good solution. The issue is that for various reasons, I find I
>>>>need to insert a frame somewhere in the middle of an existing set of
>>>>linked frames. The problem is that Scribus doesn't seem to allow me to
>>>>link my new frame to any frame which has existing links. So the only way
>>>>that I have found to successfully insert a frame is to manually unlink
>>>>all the frames from the insertion point to the last frame in the chain,
>>>>link in my new frame, and then manually re-link all the frames together
>>>>that I just had to unlink. If the chain has many frames (if I have
>>>>tables, then there can be 50 or more frames invloved, then this is very
>>>>I have looked around for some way to force link or unlink a frame, but
>>>>have found nothing so far. Is there something I've missed which makes
> Perhaps the developers will know -- seems a rather complex operation to
I would expect it to be a vary simple operation. In terms of the file
format, and most likely the memory structures as well, I expect it to
consist of simply manipulating a linked list.
Eg: if each frame has a 'previous_link' and 'next_link' field, then
inserting a new frame B *before* frame A consists of:
B.next_link = A;
B.previous_link = A.previous_link;
A.previous_link = B;
if (B.previous_link != null) B.previous_link.next_link = B;
alternatively, inserting B *after* A consists of:
B.previous_link = A;
B.next_link = A.next_link;
A.next_link = B;
if (B.next_link != null) B.next_link.previous_link = B;
> As far as I know, you can delete/insert content in the middle of a
> series of linked frames.
I'm not sure I understand this sentence. If you mean 'As far as I know,
you can delete/insert a text frame in the middle of a series of linked
frames', then are you referring to a method different to the one I've
described, with its attendent problems? If so, I would be pleased to try
it out - what do you have in mind?
If you are referring to inserting/deleting content, as distinct to
frames, then I agree - it is easily done; but that is not the issue that
I have been referring to. I specifically need to insert or delete a text
frame into/from the middle of a chain of text frames, and the current
way I am doing it requires me to perform a whole series of completely
unnecessary steps to accomplish this.
Thanks again for your thoughtful input.
More information about the scribus