]> git.lyx.org Git - lyx.git/blobdiff - src/Text2.cpp
version.h: tex2lyx can have the same actual fileformat
[lyx.git] / src / Text2.cpp
index 1741028dfdc6d68bb3f033e039e6ff42f138ebdb..7893b8ed71e3b98b34cf36dd94e44a6ce7db198d 100644 (file)
@@ -157,7 +157,7 @@ void Text::setInsetFont(BufferView const & bv, pit_type pit,
                pos_type pos, Font const & font)
 {
        Inset * const inset = pars_[pit].getInset(pos);
-       LASSERT(inset && inset->resetFontEdit(), /**/);
+       LASSERT(inset && inset->resetFontEdit(), return);
 
        CursorSlice::idx_type endidx = inset->nargs();
        for (CursorSlice cs(*inset); cs.idx() != endidx; ++cs.idx()) {
@@ -176,7 +176,7 @@ void Text::setInsetFont(BufferView const & bv, pit_type pit,
 void Text::setLayout(pit_type start, pit_type end,
                     docstring const & layout)
 {
-       LASSERT(start != end, /**/);
+       LASSERT(start != end, return);
 
        Buffer const & buffer = owner_->buffer();
        BufferParams const & bp = buffer.params();
@@ -194,7 +194,7 @@ void Text::setLayout(pit_type start, pit_type end,
 // set layout over selection and make a total rebreak of those paragraphs
 void Text::setLayout(Cursor & cur, docstring const & layout)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
 
        pit_type start = cur.selBegin().pit();
        pit_type end = cur.selEnd().pit() + 1;
@@ -207,8 +207,6 @@ void Text::setLayout(Cursor & cur, docstring const & layout)
 static bool changeDepthAllowed(Text::DEPTH_CHANGE type,
                        Paragraph const & par, int max_depth)
 {
-       if (par.layout().labeltype == LABEL_BIBLIO)
-               return false;
        int const depth = par.params().depth();
        if (type == Text::INC_DEPTH && depth < max_depth)
                return true;
@@ -220,7 +218,7 @@ static bool changeDepthAllowed(Text::DEPTH_CHANGE type,
 
 bool Text::changeDepthAllowed(Cursor & cur, DEPTH_CHANGE type) const
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        // this happens when selecting several cells in tabular (bug 2630)
        if (cur.selBegin().idx() != cur.selEnd().idx())
                return false;
@@ -240,7 +238,7 @@ bool Text::changeDepthAllowed(Cursor & cur, DEPTH_CHANGE type) const
 
 void Text::changeDepth(Cursor & cur, DEPTH_CHANGE type)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        pit_type const beg = cur.selBegin().pit();
        pit_type const end = cur.selEnd().pit() + 1;
        cur.recordUndoSelection();
@@ -265,7 +263,7 @@ void Text::changeDepth(Cursor & cur, DEPTH_CHANGE type)
 
 void Text::setFont(Cursor & cur, Font const & font, bool toggleall)
 {
-       LASSERT(this == cur.text(), /**/);
+       LASSERT(this == cur.text(), return);
        // Set the current_font
        // Determine basis font
        FontInfo layoutfont;
@@ -320,7 +318,7 @@ void Text::setFont(Cursor & cur, Font const & font, bool toggleall)
                        newfi.setSeries(INHERIT_SERIES);
        
                FontShape newshp = newfi.shape();
-               if (newshp !=   INHERIT_SHAPE && newshp != IGNORE_SHAPE &&
+               if (newshp != INHERIT_SHAPE && newshp != IGNORE_SHAPE &&
                                newshp == oldfi.shape())
                        newfi.setShape(INHERIT_SHAPE);
 
@@ -385,21 +383,21 @@ void Text::setFont(BufferView const & bv, CursorSlice const & begin,
 
 bool Text::cursorTop(Cursor & cur)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        return setCursor(cur, 0, 0);
 }
 
 
 bool Text::cursorBottom(Cursor & cur)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        return setCursor(cur, cur.lastpit(), boost::prior(paragraphs().end())->size());
 }
 
 
 void Text::toggleFree(Cursor & cur, Font const & font, bool toggleall)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        // If the mask is completely neutral, tell user
        if (font.fontInfo() == ignore_font && font.language() == ignore_language) {
                // Could only happen with user style
@@ -431,7 +429,7 @@ void Text::toggleFree(Cursor & cur, Font const & font, bool toggleall)
 
 docstring Text::getStringToIndex(Cursor const & cur)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
 
        if (cur.selection())
                return cur.selectionAsString(false);
@@ -484,7 +482,7 @@ void Text::setLabelWidthStringToSequence(Cursor const & cur,
 
 void Text::setParagraphs(Cursor & cur, docstring arg, bool merge) 
 {
-       LASSERT(cur.text(), /**/);
+       LBUFERR(cur.text());
 
        //FIXME UNICODE
        string const argument = to_utf8(arg);
@@ -510,12 +508,9 @@ void Text::setParagraphs(Cursor & cur, docstring arg, bool merge)
 }
 
 
-//FIXME This is a little redundant now, but it's probably worth keeping,
-//especially if we're going to go away from using serialization internally
-//quite so much.
 void Text::setParagraphs(Cursor & cur, ParagraphParameters const & p) 
 {
-       LASSERT(cur.text(), /**/);
+       LBUFERR(cur.text());
 
        depth_type priordepth = -1;
        Layout priorlayout;
@@ -541,8 +536,8 @@ void Text::setParagraphs(Cursor & cur, ParagraphParameters const & p)
 // this really should just insert the inset and not move the cursor.
 void Text::insertInset(Cursor & cur, Inset * inset)
 {
-       LASSERT(this == cur.text(), /**/);
-       LASSERT(inset, /**/);
+       LBUFERR(this == cur.text());
+       LBUFERR(inset);
        cur.paragraph().insertInset(cur.pos(), inset, cur.current_font,
                Change(cur.buffer()->params().trackChanges
                ? Change::INSERTED : Change::UNCHANGED));
@@ -556,16 +551,13 @@ bool Text::setCursor(Cursor & cur, pit_type par, pos_type pos,
        bool const update_needed = !tm.contains(par);
        Cursor old = cur;
        setCursorIntern(cur, par, pos, setfont, boundary);
-       // FIXME There is a chance that we'll miss a screen update here.
-       // If so, then do DEPM and then check if cur wants an update and
-       // go ahead and do it, if so.
        return cur.bv().checkDepm(cur, old) || update_needed;
 }
 
 
 void Text::setCursor(CursorSlice & cur, pit_type par, pos_type pos)
 {
-       LASSERT(par != int(paragraphs().size()), /**/);
+       LASSERT(par != int(paragraphs().size()), return);
        cur.pit() = par;
        cur.pos() = pos;
 
@@ -574,15 +566,15 @@ void Text::setCursor(CursorSlice & cur, pit_type par, pos_type pos)
 
        // None of these should happen, but we're scaredy-cats
        if (pos < 0) {
-               lyxerr << "don't like -1" << endl;
-               LASSERT(false, /**/);
+               LYXERR0("Don't like -1!");
+               LATTEST(false);
        }
 
        if (pos > para.size()) {
-               lyxerr << "don't like 1, pos: " << pos
+               LYXERR0("Don't like 1, pos: " << pos
                       << " size: " << para.size()
-                      << " par: " << par << endl;
-               LASSERT(false, /**/);
+                      << " par: " << par);
+               LATTEST(false);
        }
 }
 
@@ -590,7 +582,7 @@ void Text::setCursor(CursorSlice & cur, pit_type par, pos_type pos)
 void Text::setCursorIntern(Cursor & cur,
                              pit_type par, pos_type pos, bool setfont, bool boundary)
 {
-       LASSERT(this == cur.text(), /**/);
+       LBUFERR(this == cur.text());
        cur.boundary(boundary);
        setCursor(cur.top(), par, pos);
        if (setfont)
@@ -781,7 +773,13 @@ bool Text::cursorDownParagraph(Cursor & cur)
 {
        bool updated = false;
        if (cur.pit() != cur.lastpit())
-               updated = setCursor(cur, cur.pit() + 1, 0);
+               if (lyxrc.mac_like_cursor_movement)
+                       if (cur.pos() == cur.lastpos())
+                               updated = setCursor(cur, cur.pit() + 1, getPar(cur.pit() + 1).size());
+                       else
+                               updated = setCursor(cur, cur.pit(), cur.lastpos());
+               else
+                       updated = setCursor(cur, cur.pit() + 1, 0);
        else
                updated = setCursor(cur, cur.pit(), cur.lastpos());
        return updated;
@@ -925,7 +923,7 @@ bool Text::deleteEmptyParagraphMechanism(Cursor & cur,
 
 void Text::deleteEmptyParagraphMechanism(pit_type first, pit_type last, bool trackChanges)
 {
-       LASSERT(first >= 0 && first <= last && last < (int) pars_.size(), /**/);
+       LASSERT(first >= 0 && first <= last && last < (int) pars_.size(), return);
 
        for (pit_type pit = first; pit <= last; ++pit) {
                Paragraph & par = pars_[pit];