]> git.lyx.org Git - features.git/commitdiff
fix inserting text file into a text inset
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 31 Jan 2005 17:21:17 +0000 (17:21 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Mon, 31 Jan 2005 17:21:17 +0000 (17:21 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9560 a592a061-630c-0410-9148-cb99ea01b6c8

src/BufferView_pimpl.C
src/ChangeLog
src/buffer.C

index 23bc6e0a97657704cb30546e3ea11c1a29d2dc6c..56fe22748f1a1324bd87090959aec72108a0d134 100644 (file)
@@ -809,7 +809,7 @@ void BufferView::Pimpl::MenuInsertLyXFile(string const & filenm)
        owner_->message(bformat(_("Inserting document %1$s..."), disp_fn));
 
        bv_->cursor().clearSelection();
-       bv_->text()->breakParagraph(bv_->cursor());
+       bv_->getLyXText()->breakParagraph(bv_->cursor());
 
        BOOST_ASSERT(bv_->cursor().inTexted());
 
index 302cba77df93ee9dec48333aa90b5ba7627cd70c..9231149145921966271644c32dda07bb636a556b 100644 (file)
@@ -1,3 +1,15 @@
+2005-01-27  Jean-Marc Lasgouttes  <lasgouttes@lyx.org>
+
+       * BufferView_pimpl.C (MenuInsertLyXFile): do breakParagraph on the
+       LyXText containing the cursor, not the top-level one.
+
+       * buffer.C (Impl): make sure the toplevel insettext has AutoBreak_
+       true. 
+       (insertStringAsLines): rename par to pit; use temporary variable
+       par to hold a Paragraph; do not store par.layout() in a variable,
+       since the pointer may die when breaking paragraphs; pass pars to
+       breakParagraph() instead of Buffer::paragraphs().
+
 2005-01-31  Asger Ottar Alstrup  <aalstrup@laerdal.dk>
 
        * lyxlex_pimpl.h: #include <fstream>.
@@ -39,7 +51,7 @@
        * vc-backend.C (find_file): rewrite to use boost.filesystem
        (scanMaster): ditto
 
-       * main.C (main): sett default name check for boost.filesystem to
+       * main.C (main): set default name check for boost.filesystem to
        no check
 
        * lyxfunc.C (menuNew): rewrite to use boost.filesystem
 2005-01-24  Jürgen Spitzmüller  <j.spitzmueller@gmx.de>
 
        * LaTeXFeatures.[Ch]: Add a static list packages_ that
-       holds the contens of packages.lst. New functions getAvailable
+       holds the contents of packages.lst. New functions getAvailable
        and isAvailable to parse and check that list, resp.
 
        * LyXAction.C:
index 86a39eafcff57da592f566a5b32f5297f7c8e513..72322b07a43649d9c173e5da2db2cc596c81ff20 100644 (file)
@@ -198,6 +198,7 @@ Buffer::Impl::Impl(Buffer & parent, string const & file, bool readonly_)
          filename(file), filepath(OnlyPath(file)), file_fully_loaded(false),
                inset(params)
 {
+       inset.setAutoBreakRows(true);
        lyxvc.buffer(&parent);
        temppath = createBufferTmpDir();
        // FIXME: And now do something if temppath == string(), because we
@@ -472,23 +473,22 @@ bool Buffer::readDocument(LyXLex & lex)
 
 // needed to insert the selection
 void Buffer::insertStringAsLines(ParagraphList & pars,
-       pit_type & par, pos_type & pos,
+       pit_type & pit, pos_type & pos,
        LyXFont const & fn, string const & str, bool autobreakrows)
 {
-       LyXLayout_ptr const & layout = pars[par].layout();
-
        LyXFont font = fn;
 
-       pars[par].checkInsertChar(font);
+       pars[pit].checkInsertChar(font);
        // insert the string, don't insert doublespace
        bool space_inserted = true;
        for (string::const_iterator cit = str.begin();
-           cit != str.end(); ++cit) {
+           cit != str.end(); ++cit) { 
+               Paragraph & par = pars[pit];
                if (*cit == '\n') {
-                       if (autobreakrows && (!pars[par].empty() || pars[par].allowEmpty())) {
-                               breakParagraph(params(), paragraphs(), par, pos,
-                                              layout->isEnvironment());
-                               ++par;
+                       if (autobreakrows && (!par.empty() || par.allowEmpty())) {
+                               breakParagraph(params(), pars, pit, pos,
+                                              par.layout()->isEnvironment());
+                               ++pit;
                                pos = 0;
                                space_inserted = true;
                        } else {
@@ -496,18 +496,18 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
                        }
                        // do not insert consecutive spaces if !free_spacing
                } else if ((*cit == ' ' || *cit == '\t') &&
-                          space_inserted && !pars[par].isFreeSpacing()) {
+                          space_inserted && !par.isFreeSpacing()) {
                        continue;
                } else if (*cit == '\t') {
-                       if (!pars[par].isFreeSpacing()) {
+                       if (!par.isFreeSpacing()) {
                                // tabs are like spaces here
-                               pars[par].insertChar(pos, ' ', font);
+                               par.insertChar(pos, ' ', font);
                                ++pos;
                                space_inserted = true;
                        } else {
                                const pos_type n = 8 - pos % 8;
                                for (pos_type i = 0; i < n; ++i) {
-                                       pars[par].insertChar(pos, ' ', font);
+                                       par.insertChar(pos, ' ', font);
                                        ++pos;
                                }
                                space_inserted = true;
@@ -517,7 +517,7 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
                        continue;
                } else {
                        // just insert the character
-                       pars[par].insertChar(pos, *cit, font);
+                       par.insertChar(pos, *cit, font);
                        ++pos;
                        space_inserted = (*cit == ' ');
                }