simplify setInsetFont, removing a potential bug (an invalid DocIterator was built). Use CursorSlices when possible.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19690 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Alfredo Braunstein 2007-08-21 10:54:04 +00:00
parent 6f7f17098d
commit c1b155fbe8

View File

@ -314,25 +314,16 @@ void Text::setInsetFont(Buffer const & buffer, pit_type pit,
pars_[pit].getInset(pos)->noFontChange());
Inset * const inset = pars_[pit].getInset(pos);
DocIterator dit = doc_iterator_begin(*inset);
// start of the last cell
DocIterator end = dit;
end.idx() = end.lastidx();
while (true) {
Text * text = dit.text();
Inset * cell = dit.realInset();
if (text && cell) {
DocIterator cellbegin = doc_iterator_begin(*cell);
CursorSlice::idx_type endidx = inset->nargs();
for (CursorSlice cs(*inset); cs.idx() != endidx; ++cs.idx()) {
Text * text = cs.text();
if (text) {
// last position of the cell
DocIterator cellend = cellbegin;
CursorSlice cellend = cs;
cellend.pit() = cellend.lastpit();
cellend.pos() = cellend.lastpos();
text->setFont(buffer, cellbegin.top(), cellend.top(), font, toggleall);
text->setFont(buffer, cs, cellend, font, toggleall);
}
if (dit == end)
break;
dit.forwardIdx();
}
}