Hi folks,

Please find attached three files: a change-tracking patch, and a new inset 
declaration and implementation.

Use -p0 from the top-level source dir for applying the patch. 
insetnewparagraph.{C,h} need to be placed in src/insets/.

This patch addresses bug#1277, and adds functionality to ct.

The bug-fix addresses pasting while change-tracking. The main modification is 
the "Change" parameter that has been added to moveItem().

The new functionality is to let the user break a paragraph within 
Change::UNCHANGED text. Currently, you can't do this:
i.e. from src/text.C:

void LyXText::breakParagraph(LCursor & cur, bool keep_layout)
{
        BOOST_ASSERT(this == cur.text());
        // allow only if at start or end, or all previous is new text
        Paragraph & cpar = cur.paragraph();
        pit_type cpit = cur.pit();

        if (cur.pos() != 0 && cur.pos() != cur.lastpos()
            && cpar.isChangeEdited(0, cur.pos()))
                return;
...
}

Is there a copy-editing reason for this? I think it's an important feature to 
have in change tracking.

A new inset, InsetNewparagraph, is placed at the end of the old paragraph to 
indicate that a new paragraph has been added. I copied InsetNewline, and used 
the existing "newline" arrow, but it's now blue. Anyone have an idea for a 
better symbol? How about a stylized "P"?

What is the purpose of inset->isSpace()? I don't notice any difference between 
returning true and false.

Undoing a rejected merge causes a crash. I don't know what the problem is.

This patch is probably neither robust nor optimized, so I'd appreciate an 
audit from some lyx-engine gurus.

Cheers,
JB
-- 
Johnathan K. Burchill, Ph.D.
[EMAIL PROTECTED]

Attachment: pgpmyxKvR7Vs3.pgp
Description: PGP signature

Attachment: cvs-head-ct-improvements.diff.gz
Description: GNU Zip compressed data

Attachment: insetnewparagraph.h.gz
Description: GNU Zip compressed data

Attachment: insetnewparagraph.C.gz
Description: GNU Zip compressed data

Reply via email to