]> git.lyx.org Git - features.git/blobdiff - src/paragraph_funcs.C
add ParagraphList::erase, make mergeParagraph take a Buffer* arg, adjust other funcs...
[features.git] / src / paragraph_funcs.C
index 638da10a767b4012432b6cf70832d204a4ead5f8..77462f1e936dcc2c5e0fe2e4f7f151297edd5893 100644 (file)
@@ -30,12 +30,12 @@ using std::endl;
 using std::ostream;
 
 void breakParagraph(BufferParams const & bparams,
-                   Paragraph * par,
+                   ParagraphList::iterator par,
                    pos_type pos,
                    int flag)
 {
-       // create a new paragraph
-       Paragraph * tmp = new Paragraph(par);
+       // create a new paragraph, and insert into the list
+       Paragraph * tmp = new Paragraph(&*par);
        // without doing that we get a crash when typing <Return> at the
        // end of a paragraph
        tmp->layout(bparams.getLyXTextClass().defaultLayout());
@@ -89,12 +89,12 @@ void breakParagraph(BufferParams const & bparams,
                        Change::Type change(par->lookupChange(i));
                        par->cutIntoMinibuffer(bparams, i);
                        if (tmp->insertFromMinibuffer(j - pos)) {
-                               tmp->pimpl_->setChange(j - pos, change);
+                               tmp->setChange(j - pos, change);
                                ++j;
                        }
                }
                for (i = pos_end; i >= pos; --i) {
-                       par->pimpl_->eraseIntern(i);
+                       par->eraseIntern(i);
                }
        }
 
@@ -127,12 +127,12 @@ void breakParagraph(BufferParams const & bparams,
 
 
 void breakParagraphConservative(BufferParams const & bparams,
-                               Paragraph * par,
+                               ParagraphList::iterator par,
                                pos_type pos)
 {
        // create a new paragraph
-       Paragraph * tmp = new Paragraph(par);
-       tmp->makeSameLayout(par);
+       Paragraph * tmp = new Paragraph(&*par);
+       tmp->makeSameLayout(&*par);
 
        // When can pos > Last()?
        // I guess pos == Last() is possible.
@@ -154,8 +154,10 @@ void breakParagraphConservative(BufferParams const & bparams,
 }
 
 
-void mergeParagraph(BufferParams const & bparams, ParagraphList::iterator par)
+void mergeParagraph(Buffer * buf, ParagraphList::iterator par)
 {
+       BufferParams const & bparams = buf->params;
+
        ParagraphList::iterator the_next = boost::next(par);
 
        // first the DTP-stuff
@@ -173,13 +175,7 @@ void mergeParagraph(BufferParams const & bparams, ParagraphList::iterator par)
                        ++j;
        }
 
-       // delete the next paragraph
-#warning a ParagraphList::erase is needed. (Lgb)
-       // Isn't this really just par?
-       ParagraphList::iterator ppar = boost::prior(the_next);
-       ParagraphList::iterator npar = boost::next(the_next);
-       delete &*the_next;
-       ppar->next(&*npar);
+       buf->paragraphs.erase(the_next);
 }