wiki:TEXT_CHAINING_BEHAVIOUR_R1

Version 4 (modified by milen, 16 years ago) (diff)

--

Error: Macro BackLinksMenu(None) failed
compressed data is corrupt

Error: Macro TicketQuery(summary=TEXT_CHAINING_BEHAVIOUR_R1, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|) failed
current transaction is aborted, commands ignored until end of transaction block

Analysis

(Give as much as possible of the needed information for designing and implementing the task in the following sections.)

Overview

  • Text frames should allow chaining between them. That means that when text overflows from one text frame it goes to another if they are linked. Also there should be overflow indicator.
  • There should be opportunity for the user to have multiple flows from different text frames.
  • The user should be able to point which text frame is linked with current flow and which is not.
  • There should be automatic linking when flow text frame is used. See more at TEXT_AUTO_CHAIN_BEHAVIOUR_R1
  • If there are many linked flow text frames user should have the opportunity to easily reorder/delete/unchain them.

Task requirements

  • Implement chaining prototype
    • Allow linking frames. One frame should allow connecting to itself.
    • When the place is insufficient for the text content in a text frame of the chain the rest of the content should be put in the next chained frame.
    • If all of the chained frames cannot display the content, the content gets floating and invisible.
  • Implement GUI for chained frames
    • Linking will be done through a combo box, that lists all available text frames for chaining and auto chain option
    • The combo box will be in the HUD that appears when the indicating halo is clicked
    • Also label indicating which is the previous frame if the frame is not the first one from the chain, should be in the HUD *(optional) In Sophie 1 halos for the start and end points are present. See Implementation idea *(optional) Frame connections should be visible by clicking a menu item or a checkbox in the book bottom panel
  • Implement unchaining of frames
    • User should be able to unchain chained frames by clicking a halo button. This halo buttons should have crossed arrow icon.
    • Unchaining frame separates the frame from the chain but don't destruct it.
      • If the unlinked text frame is the first one in the chain, then all the text in the chain is saved in this frame. The links between the other text frames in the chain are saved as if there are not modified pages, having only empty text frames, these pages are deleted without loosing the links in the chain.
      • If the unlinked text frame is a middle one in the chain, then the text frame is divided from the chain as the text frame before it is linked to the text frame after it and the links between the other text frames in the chain and the text are preserved.
      • If the text frame is the last one then it is divided from the chain without destroying the chain before it and the text in the chain is saved.
  • Deleting a text frame which is part of linked text frames deletes the frame and:
    • If the frame is the first one in the chain, then the frame and all the text in the chain is deleted but the text is saved in Resources . The links between the others are saved as if there are not modified pages, having only empty text frames, these pages are deleted without loosing the links in the chain.
    • If the frame is a middle frame in the chain, then in case of no destructing the links between the frames before and after the deleted frame link them, save the links between the other frames in the new created chain and save the text.
    • If the frame is the last one then the frame is deleted without destroying the chain before it and the text in the chain is saved.
  • Deleting a page that contains linked text frames with other pages' frames should act in the same way as deleting a frame but including all the linked frames in the page.

Task result

(List the end product of the task (for example "Source code", "Wiki page", etc.))

Implementation idea

(Provide some rough implementation idea(s).)

(Add links to related tasks that could be useful or helpful.)

How to demo

(Provide instructions for demonstration of the task.)

Design

(Describe your design here.)

Implementation

(Describe and link the implementation results here (from the wiki or the repository).)

Testing

(Place the testing results here.)

Comments

(Write comments for this or later revisions here.)

Attachments