>>>>> "Lars" == Lars Gullik Bjønnes <[EMAIL PROTECTED]> writes:
Lars> I like it. We should reduce these up-calls as much as possible. OK. So here is an expanded version, where I replaced all the easy things. Lars> Would be brilliant if we came to the point where the pimpl owner Lars> did not have to be present at all. We cannot really do that, since we use bv_ as an opaque object in many places. However, there are not many things that look into bv_ anymore: fantomas[ssh]: grep 'bv_->' BufferView_pimpl.C bv_->showErrorList(_("Parse")); // require bv_->text. LyXText * text = bv_->text(); if (!bv_->text()) { LyXText & t = *bv_->text(); LyXText & t = *bv_->text(); // LyXText const * t = bv_->text(); return buffer_ && bv_->text(); LyXText * text = bv_->getLyXText(); bv_->text()->setCursor(cursor_, par.pit(), if (bv_->getLyXText()->real_current_font.isRightToLeft()) { bv_->getLyXText()->breakParagraph(cursor_); bv_->text()->setCursor(cursor_, 0, 0); InsetBase * inset = bv_->text()->editXY(cur, cmd.x, cmd.y); bv_->gotoLabel(label); bv_->getLyXText()->acceptChange(cursor_); bv_->getLyXText()->rejectChange(cursor_); I guess text() and getLyXText() could be moved into BufferView::Pimpl. Then the only remaining methods are showErrorList (I am not sure why loadLyXFile is not in BufferView anyway) and gotoLabel. Lars, I'd appreciate if you could take a look at the patch and check I did not do anything wrong. JMarc