Comments?

Abdel.
Index: src/BufferView.C
===================================================================
--- src/BufferView.C    (revision 15013)
+++ src/BufferView.C    (working copy)
@@ -1208,12 +1208,6 @@
 }
 
 
-LyXText * BufferView::text() const
-{
-       return buffer_ ? &buffer_->text() : 0;
-}
-
-
 void BufferView::setCursor(DocIterator const & dit)
 {
        size_t const n = dit.depth();
Index: src/BufferView.h
===================================================================
--- src/BufferView.h    (revision 15013)
+++ src/BufferView.h    (working copy)
@@ -199,8 +199,6 @@
        LCursor & cursor();
        /// access to full cursor
        LCursor const & cursor() const;
-       ///
-       LyXText * text() const;
        /// sets cursor and open all relevant collapsable insets.
        void setCursor(DocIterator const &);
        /// sets cursor; this is used when handling LFUN_MOUSE_PRESS.
Index: src/lyx_cb.C
===================================================================
--- src/lyx_cb.C        (revision 15012)
+++ src/lyx_cb.C        (working copy)
@@ -362,7 +362,8 @@
                return;
 
        // clear the selection
-       if (bv->text() == bv->getLyXText())
+       LyXText & const text = bv->buffer()->text();
+       if (&text == bv->getLyXText())
                bv->cursor().clearSelection();
        if (asParagraph)
                bv->getLyXText()->insertStringAsParagraphs(bv->cursor(), 
tmpstr);
Index: src/lyxfind.C
===================================================================
--- src/lyxfind.C       (revision 15012)
+++ src/lyxfind.C       (working copy)
@@ -192,7 +192,7 @@
                ++num;
        }
 
-       bv->text()->init(bv);
+       bv->buffer()->text().init(bv);
        bv->putSelectionAt(doc_iterator_begin(buf.inset()), 0, false);
        if (num)
                buf.markDirty();
Index: src/rowpainter.C
===================================================================
--- src/rowpainter.C    (revision 15012)
+++ src/rowpainter.C    (working copy)
@@ -910,7 +910,7 @@
 void paintText(BufferView const & bv, ViewMetricsInfo const & vi,
               Painter & pain)
 {
-       LyXText * const text = bv.text();
+       LyXText & text = bv.buffer()->text();
        bool const select = bv.cursor().selection();
 
        PainterInfo pi(const_cast<BufferView *>(&bv), pain);
@@ -920,19 +920,19 @@
        if (repaintAll) {
                // Clear background (if not delegated to rows)
                pain.fillRectangle(0, vi.y1, bv.workWidth(), vi.y2 - vi.y1,
-                       text->backgroundColor());
+                       text.backgroundColor());
        }
        if (select) {
-               text->drawSelection(pi, 0, 0);
+               text.drawSelection(pi, 0, 0);
        }
 
        int yy = vi.y1;
        // draw contents
        for (pit_type pit = vi.p1; pit <= vi.p2; ++pit) {
                refreshInside = repaintAll;
-               Paragraph const & par = text->getPar(pit);
+               Paragraph const & par = text.getPar(pit);
                yy += par.ascent();
-               paintPar(pi, *bv.text(), pit, 0, yy, repaintAll);
+               paintPar(pi, text, pit, 0, yy, repaintAll);
                yy += par.descent();
        }
 
@@ -941,24 +941,24 @@
        // Try viewing the User Guide Mobius figure
 
        if (vi.p1 > 0) {
-               text->redoParagraph(vi.p1 - 1);
-               theCoords.parPos()[bv.text()][vi.p1 - 1] =
-                       Point(0, vi.y1 - text->getPar(vi.p1 - 1).descent());
+               text.redoParagraph(vi.p1 - 1);
+               theCoords.parPos()[&text][vi.p1 - 1] =
+                       Point(0, vi.y1 - text.getPar(vi.p1 - 1).descent());
        }
 
-       if (vi.p2 < lyx::pit_type(text->paragraphs().size()) - 1) {
-               text->redoParagraph(vi.p2 + 1);
-               theCoords.parPos()[bv.text()][vi.p2 + 1] =
-                       Point(0, vi.y2 + text->getPar(vi.p2 + 1).ascent());
+       if (vi.p2 < lyx::pit_type(text.paragraphs().size()) - 1) {
+               text.redoParagraph(vi.p2 + 1);
+               theCoords.parPos()[&text][vi.p2 + 1] =
+                       Point(0, vi.y2 + text.getPar(vi.p2 + 1).ascent());
        }
 
        // and grey out above (should not happen later)
-//     lyxerr << "par ascent: " << text->getPar(vi.p1).ascent() << endl;
+//     lyxerr << "par ascent: " << text.getPar(vi.p1).ascent() << endl;
        if (vi.y1 > 0 && !vi.singlepar)
                pain.fillRectangle(0, 0, bv.workWidth(), vi.y1, 
LColor::bottomarea);
 
        // and possibly grey out below
-//     lyxerr << "par descent: " << text->getPar(vi.p1).ascent() << endl;
+//     lyxerr << "par descent: " << text.getPar(vi.p1).ascent() << endl;
        if (vi.y2 < bv.workHeight() && !vi.singlepar)
                pain.fillRectangle(0, vi.y2, bv.workWidth(), bv.workHeight() - 
vi.y2, LColor::bottomarea);
 }
Index: src/text.C
===================================================================
--- src/text.C  (revision 15012)
+++ src/text.C  (working copy)
@@ -684,8 +684,11 @@
 
 int LyXText::rightMargin(Paragraph const & par) const
 {
+       // FIXME: the correct way is to only call rightMargin() only
+       // within the main LyXText. The following test is thus bogus.
+       LyXText const & text = bv()->buffer()->text();
        // We do not want rightmargins on inner texts.
-       if (bv()->text() != this)
+       if (&text != this)
                return 0;
 
        BufferParams const & params = bv()->buffer()->params();
@@ -1079,8 +1082,12 @@
        maxasc  += int(layoutasc  * 2 / (2 + pars_[pit].getDepth()));
        maxdesc += int(layoutdesc * 2 / (2 + pars_[pit].getDepth()));
 
+       // FIXME: the correct way is to do the following is to move the 
+       // following code in another method specially tailored for the 
+       // main LyXText. The following test is thus bogus.
+       LyXText const & text = bv_owner->buffer()->text();
        // Top and bottom margin of the document (only at top-level)
-       if (bv_owner->text() == this) {
+       if (&text == this) {
                if (pit == 0 && row.pos() == 0)
                        maxasc += 20;
                if (pit + 1 == pit_type(pars_.size()) &&

Reply via email to