mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-03 16:31:13 +00:00
fix inserting text file into a text inset
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9560 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
30e565bb29
commit
3f74d3dc9b
@ -809,7 +809,7 @@ void BufferView::Pimpl::MenuInsertLyXFile(string const & filenm)
|
|||||||
owner_->message(bformat(_("Inserting document %1$s..."), disp_fn));
|
owner_->message(bformat(_("Inserting document %1$s..."), disp_fn));
|
||||||
|
|
||||||
bv_->cursor().clearSelection();
|
bv_->cursor().clearSelection();
|
||||||
bv_->text()->breakParagraph(bv_->cursor());
|
bv_->getLyXText()->breakParagraph(bv_->cursor());
|
||||||
|
|
||||||
BOOST_ASSERT(bv_->cursor().inTexted());
|
BOOST_ASSERT(bv_->cursor().inTexted());
|
||||||
|
|
||||||
|
@ -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>
|
2005-01-31 Asger Ottar Alstrup <aalstrup@laerdal.dk>
|
||||||
|
|
||||||
* lyxlex_pimpl.h: #include <fstream>.
|
* lyxlex_pimpl.h: #include <fstream>.
|
||||||
@ -39,7 +51,7 @@
|
|||||||
* vc-backend.C (find_file): rewrite to use boost.filesystem
|
* vc-backend.C (find_file): rewrite to use boost.filesystem
|
||||||
(scanMaster): ditto
|
(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
|
no check
|
||||||
|
|
||||||
* lyxfunc.C (menuNew): rewrite to use boost.filesystem
|
* lyxfunc.C (menuNew): rewrite to use boost.filesystem
|
||||||
@ -88,7 +100,7 @@
|
|||||||
2005-01-24 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
2005-01-24 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
|
||||||
|
|
||||||
* LaTeXFeatures.[Ch]: Add a static list packages_ that
|
* 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.
|
and isAvailable to parse and check that list, resp.
|
||||||
|
|
||||||
* LyXAction.C:
|
* LyXAction.C:
|
||||||
|
28
src/buffer.C
28
src/buffer.C
@ -198,6 +198,7 @@ Buffer::Impl::Impl(Buffer & parent, string const & file, bool readonly_)
|
|||||||
filename(file), filepath(OnlyPath(file)), file_fully_loaded(false),
|
filename(file), filepath(OnlyPath(file)), file_fully_loaded(false),
|
||||||
inset(params)
|
inset(params)
|
||||||
{
|
{
|
||||||
|
inset.setAutoBreakRows(true);
|
||||||
lyxvc.buffer(&parent);
|
lyxvc.buffer(&parent);
|
||||||
temppath = createBufferTmpDir();
|
temppath = createBufferTmpDir();
|
||||||
// FIXME: And now do something if temppath == string(), because we
|
// FIXME: And now do something if temppath == string(), because we
|
||||||
@ -472,23 +473,22 @@ bool Buffer::readDocument(LyXLex & lex)
|
|||||||
|
|
||||||
// needed to insert the selection
|
// needed to insert the selection
|
||||||
void Buffer::insertStringAsLines(ParagraphList & pars,
|
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)
|
LyXFont const & fn, string const & str, bool autobreakrows)
|
||||||
{
|
{
|
||||||
LyXLayout_ptr const & layout = pars[par].layout();
|
|
||||||
|
|
||||||
LyXFont font = fn;
|
LyXFont font = fn;
|
||||||
|
|
||||||
pars[par].checkInsertChar(font);
|
pars[pit].checkInsertChar(font);
|
||||||
// insert the string, don't insert doublespace
|
// insert the string, don't insert doublespace
|
||||||
bool space_inserted = true;
|
bool space_inserted = true;
|
||||||
for (string::const_iterator cit = str.begin();
|
for (string::const_iterator cit = str.begin();
|
||||||
cit != str.end(); ++cit) {
|
cit != str.end(); ++cit) {
|
||||||
|
Paragraph & par = pars[pit];
|
||||||
if (*cit == '\n') {
|
if (*cit == '\n') {
|
||||||
if (autobreakrows && (!pars[par].empty() || pars[par].allowEmpty())) {
|
if (autobreakrows && (!par.empty() || par.allowEmpty())) {
|
||||||
breakParagraph(params(), paragraphs(), par, pos,
|
breakParagraph(params(), pars, pit, pos,
|
||||||
layout->isEnvironment());
|
par.layout()->isEnvironment());
|
||||||
++par;
|
++pit;
|
||||||
pos = 0;
|
pos = 0;
|
||||||
space_inserted = true;
|
space_inserted = true;
|
||||||
} else {
|
} else {
|
||||||
@ -496,18 +496,18 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
|
|||||||
}
|
}
|
||||||
// do not insert consecutive spaces if !free_spacing
|
// do not insert consecutive spaces if !free_spacing
|
||||||
} else if ((*cit == ' ' || *cit == '\t') &&
|
} else if ((*cit == ' ' || *cit == '\t') &&
|
||||||
space_inserted && !pars[par].isFreeSpacing()) {
|
space_inserted && !par.isFreeSpacing()) {
|
||||||
continue;
|
continue;
|
||||||
} else if (*cit == '\t') {
|
} else if (*cit == '\t') {
|
||||||
if (!pars[par].isFreeSpacing()) {
|
if (!par.isFreeSpacing()) {
|
||||||
// tabs are like spaces here
|
// tabs are like spaces here
|
||||||
pars[par].insertChar(pos, ' ', font);
|
par.insertChar(pos, ' ', font);
|
||||||
++pos;
|
++pos;
|
||||||
space_inserted = true;
|
space_inserted = true;
|
||||||
} else {
|
} else {
|
||||||
const pos_type n = 8 - pos % 8;
|
const pos_type n = 8 - pos % 8;
|
||||||
for (pos_type i = 0; i < n; ++i) {
|
for (pos_type i = 0; i < n; ++i) {
|
||||||
pars[par].insertChar(pos, ' ', font);
|
par.insertChar(pos, ' ', font);
|
||||||
++pos;
|
++pos;
|
||||||
}
|
}
|
||||||
space_inserted = true;
|
space_inserted = true;
|
||||||
@ -517,7 +517,7 @@ void Buffer::insertStringAsLines(ParagraphList & pars,
|
|||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
// just insert the character
|
// just insert the character
|
||||||
pars[par].insertChar(pos, *cit, font);
|
par.insertChar(pos, *cit, font);
|
||||||
++pos;
|
++pos;
|
||||||
space_inserted = (*cit == ' ');
|
space_inserted = (*cit == ' ');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user