X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fparagraph_funcs.C;h=c5b7171fa11e0ca64716a1b814ac7f9f64b147cf;hb=5091380d6bad1686800e384ed1bbb03836a15aab;hp=4486bae1b4722eddef55db8082c088f4e2ba9c6b;hpb=a727b3206398d35d47ce60128232e45a1891b69d;p=lyx.git diff --git a/src/paragraph_funcs.C b/src/paragraph_funcs.C index 4486bae1b4..c5b7171fa1 100644 --- a/src/paragraph_funcs.C +++ b/src/paragraph_funcs.C @@ -1,12 +1,12 @@ -/* This file is part of - * ====================================================== - * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. +/** + * \file paragraph_funcs.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * ====================================================== */ + * \author Lars Gullik Bjønnes + * + * Full author contact details are available in file CREDITS + */ #include @@ -33,35 +33,43 @@ void breakParagraph(BufferParams const & bparams, tmp->layout(bparams.getLyXTextClass().defaultLayout()); // remember to set the inset_owner tmp->setInsetOwner(par->inInset()); - + // this is an idea for a more userfriendly layout handling, I will // see what the users say - + // layout stays the same with latex-environments if (flag) { tmp->layout(par->layout()); tmp->setLabelWidthString(par->params().labelWidthString()); } - bool isempty = (par->layout()->keepempty && par->empty()); - + bool const isempty = (par->layout()->keepempty && par->empty()); + if (!isempty && (par->size() > pos || par->empty() || flag == 2)) { tmp->layout(par->layout()); tmp->params().align(par->params().align()); tmp->setLabelWidthString(par->params().labelWidthString()); - + tmp->params().lineBottom(par->params().lineBottom()); par->params().lineBottom(false); tmp->params().pagebreakBottom(par->params().pagebreakBottom()); par->params().pagebreakBottom(false); tmp->params().spaceBottom(par->params().spaceBottom()); par->params().spaceBottom(VSpace(VSpace::NONE)); - + tmp->params().depth(par->params().depth()); tmp->params().noindent(par->params().noindent()); - + // copy everything behind the break-position // to the new paragraph + +#ifdef WITH_WARNINGS +#warning this seems wrong +#endif + /* FIXME: if !keepempty, empty() == true, then we reach + * here with size() == 0. So pos_end becomes - 1. Why + * doesn't this cause problems ??? + */ pos_type pos_end = par->size() - 1; pos_type i = pos; pos_type j = pos; @@ -74,25 +82,25 @@ void breakParagraph(BufferParams const & bparams, par->erase(i); } } - - // just an idea of me - if (!pos) { - tmp->params().lineTop(par->params().lineTop()); - tmp->params().pagebreakTop(par->params().pagebreakTop()); - tmp->params().spaceTop(par->params().spaceTop()); - tmp->bibkey = par->bibkey; - - par->bibkey = 0; - par->params().clear(); - - par->layout(bparams.getLyXTextClass().defaultLayout()); - - // layout stays the same with latex-environments - if (flag) { - par->layout(tmp->layout()); - par->setLabelWidthString(tmp->params().labelWidthString()); - par->params().depth(tmp->params().depth()); - } + + if (pos) + return; + + tmp->params().lineTop(par->params().lineTop()); + tmp->params().pagebreakTop(par->params().pagebreakTop()); + tmp->params().spaceTop(par->params().spaceTop()); + tmp->bibkey = par->bibkey; + + par->bibkey = 0; + par->params().clear(); + + par->layout(bparams.getLyXTextClass().defaultLayout()); + + // layout stays the same with latex-environments + if (flag) { + par->layout(tmp->layout()); + par->setLabelWidthString(tmp->params().labelWidthString()); + par->params().depth(tmp->params().depth()); } } @@ -117,7 +125,7 @@ void breakParagraphConservative(BufferParams const & bparams, if (tmp->insertFromMinibuffer(j - pos)) ++j; } - + for (pos_type k = pos_end; k >= pos; --k) { par->erase(k); } @@ -125,14 +133,8 @@ void breakParagraphConservative(BufferParams const & bparams, } -#if 0 -// Be carefull, this does not make any check at all. -// This method has wrong name, it combined this par with the next par. -// In that sense it is the reverse of break paragraph. (Lgb) -void pasteParagraph(BufferParams const & bparams, - Paragraph * par) +void mergeParagraph(BufferParams const & bparams, Paragraph * par) { - // copy the next paragraph to this one Paragraph * the_next = par->next(); // first the DTP-stuff @@ -158,6 +160,7 @@ void pasteParagraph(BufferParams const & bparams, } +#if 0 Paragraph * depthHook(Paragraph * par, Paragraph::depth_type depth) { Paragraph * newpar = par; @@ -176,7 +179,7 @@ Paragraph * depthHook(Paragraph * par, Paragraph::depth_type depth) } -Paragraph * outerHook(Paragraph * par) +Paragraph * outerHook(Paragraph * par) { if (!par->getDepth()) return 0;