On Tue, Aug 20, 2002 at 12:26:50PM +0200, Andre Poenitz wrote: > On Tue, Aug 20, 2002 at 01:30:02PM +0300, Martin Vermeer wrote: > > I looked at this, and it seems very, very difficult. (And it wouldn't be > > paradigmatically correct to have a 'free floating' inset containing > > stuff that nevertheless belongs as a label to the left of the bibitem. > > Actually, in this _very special case_ I don't care about "paradigmatical > correctness". The bibitem stuff convolutes so much code all over the > place... > > > I believe I can simplify bibitem a little, though. > > I'd like to see that ;-) > > Andre'
Be my guest ;-) I still don't understand it, though. But this seems to work... Martin
Index: paragraph.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/paragraph.C,v retrieving revision 1.222 diff -u -p -r1.222 paragraph.C --- paragraph.C 2002/08/15 07:53:46 1.222 +++ paragraph.C 2002/08/20 12:58:14 @@ -121,15 +122,8 @@ Paragraph::Paragraph(Paragraph const & l // this is because of the dummy layout of the paragraphs that // follow footnotes layout_ = lp.layout(); + bibkey = 0; - // ale970302 - if (lp.bibkey) { - bibkey = static_cast<InsetBibKey *> - (lp.bibkey->clone(*current_view->buffer())); - } else { - bibkey = 0; - } - // copy everything behind the break-position to the new paragraph insetlist = lp.insetlist; InsetList::iterator it = insetlist.begin(); Paragraph * Paragraph::TeXOnePar(Buffer const * buf, BufferParams const & bparams, ostream & os, TexRow & texrow, Index: text2.C =================================================================== RCS file: /cvs/lyx/lyx-devel/src/text2.C,v retrieving revision 1.247 diff -u -p -r1.247 text2.C --- text2.C 2002/08/12 20:24:08 1.247 +++ text2.C 2002/08/20 12:58:19 @@ -508,11 +510,6 @@ Paragraph * LyXText::setLayout(BufferVie : VSpace(VSpace::NONE)); if (lyxlayout->margintype == MARGIN_MANUAL) par->setLabelWidthString(lyxlayout->labelstring()); - if (lyxlayout->labeltype != LABEL_BIBLIO - && fppar->bibkey) { - delete fppar->bibkey; - fppar->bibkey = 0; - } cur.par(par); par = par->next(); } while (par != epar); @@ -1268,6 +1269,13 @@ void LyXText::setCounter(Buffer const * par->setLabelWidthString(string()); } + if (layout->labeltype != LABEL_BIBLIO) { + if (par->bibkey) { + delete par->bibkey; + par->bibkey = 0; + } + } + // is it a layout that has an automatic label? if (layout->labeltype >= LABEL_COUNTER_CHAPTER) { @@ -1332,8 +1341,7 @@ void LyXText::setCounter(Buffer const * } par->bibkey->setCounter(number); par->params().labelString(layout->labelstring()); - - // In biblio should't be following counters but... + } else { string s = layout->labelstring();
msg43185/pgp00000.pgp
Description: PGP signature