BufferParams const & bp = cur.buffer().params();
pars.back().layout(bp.getLyXTextClass().defaultLayout());
for_each(pars.begin(), pars.end(), resetParagraph(cur.buffer()));
- pars.back().insert(0, grabSelection(cur), LyXFont());
+ // FIXME: change tracking (MG)
+ pars.back().insert(0, grabSelection(cur), LyXFont(), Change(Change::UNCHANGED));
theCuts.push(make_pair(pars, bp.textclass));
}
// tell tabular that a recent copy happened
string::const_iterator cit = str.begin();
string::const_iterator end = str.end();
for (; cit != end; ++cit, ++pos)
- // FIXME: change tracking (MG)
- par.insertChar(pos, (*cit), font, Change(Change::INSERTED));
+ par.insertChar(pos, (*cit), font, cur.buffer().params().trackChanges);
// Cut the selection
cutSelection(cur, true, false);
} else if (*cit == '\t') {
if (!par.isFreeSpacing()) {
// tabs are like spaces here
- // FIXME: change tracking (MG)
- par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+ par.insertChar(pos, ' ', font, params().trackChanges);
++pos;
space_inserted = true;
} else {
const pos_type n = 8 - pos % 8;
for (pos_type i = 0; i < n; ++i) {
- // FIXME: change tracking (MG)
- par.insertChar(pos, ' ', font, Change(Change::INSERTED));
+ par.insertChar(pos, ' ', font, params().trackChanges);
++pos;
}
space_inserted = true;
*/
} else {
// just insert the character
- // FIXME: change tracking (MG)
- par.insertChar(pos, *cit, font, Change(Change::INSERTED));
+ par.insertChar(pos, *cit, font, params().trackChanges);
++pos;
space_inserted = (*cit == ' ');
}
inset->setViewCache(&bv);
Paragraph & par = inset->text_.getPar(0);
LyXFont const font = inset->text_.getFont(par, 0);
- inset->setText(buf.substr(op, p - op), font);
+ inset->setText(buf.substr(op, p - op), font,
+ bv.buffer()->params().trackChanges);
++cols;
++cell;
}
inset->setViewCache(&bv);
Paragraph & par = inset->text_.getPar(0);
LyXFont const font = inset->text_.getFont(par, 0);
- inset->setText(buf.substr(op, p - op), font);
+ inset->setText(buf.substr(op, p - op), font,
+ bv.buffer()->params().trackChanges);
}
cols = ocol;
++row;
inset->setViewCache(&bv);
Paragraph & par = inset->text_.getPar(0);
LyXFont const font = inset->text_.getFont(par, 0);
- inset->setText(buf.substr(op, len - op), font);
+ inset->setText(buf.substr(op, len - op), font,
+ bv.buffer()->params().trackChanges);
}
return true;
}
}
-void InsetText::setText(docstring const & data, LyXFont const & font)
+void InsetText::setText(docstring const & data, LyXFont const & font, bool trackChanges)
{
clear();
Paragraph & first = paragraphs().front();
for (unsigned int i = 0; i < data.length(); ++i)
- // FIXME: change tracking (MG)
- first.insertChar(i, data[i], font, Change(Change::INSERTED));
+ first.insertChar(i, data[i], font, trackChanges);
}
///
Code lyxCode() const { return TEXT_CODE; }
///
- void setText(lyx::docstring const &, LyXFont const &);
+ void setText(lyx::docstring const &, LyXFont const &, bool trackChanges);
///
void setAutoBreakRows(bool);
///
LyXFont const font
= cur.paragraph().getFontSettings(buf.params(), pos);
int striked = ssize - cur.paragraph().erase(pos, pos + ssize);
- cur.paragraph().insert(pos, replacestr, font);
+ cur.paragraph().insert(pos, replacestr, font,
+ Change(buf.params().trackChanges ?
+ Change::INSERTED : Change::UNCHANGED));
for (int i = 0; i < rsize + striked; ++i)
cur.forwardChar();
++num;
void Paragraph::insert(pos_type start, string const & str,
- LyXFont const & font)
+ LyXFont const & font, Change const & change)
{
for (size_t i = 0, n = str.size(); i != n ; ++i)
- // FIXME: change tracking (MG)
- insertChar(start + i, str[i], font, Change(Change::INSERTED));
+ insertChar(start + i, str[i], font, change);
}
void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
- Change const & change)
+ bool trackChanges)
{
- pimpl_->insertChar(pos, c, change);
+ pimpl_->insertChar(pos, c, Change(trackChanges ?
+ Change::INSERTED : Change::UNCHANGED));
+}
+
+
+void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
+ LyXFont const & font, bool trackChanges)
+{
+ pimpl_->insertChar(pos, c, Change(trackChanges ?
+ Change::INSERTED : Change::UNCHANGED));
+ setFont(pos, font);
}
void Paragraph::insertChar(pos_type pos, Paragraph::value_type c,
- LyXFont const & font, Change const & change)
+ LyXFont const & font, Change const & change)
{
pimpl_->insertChar(pos, c, change);
setFont(pos, font);
LyXFont_size def_size) const;
///
void insert(lyx::pos_type pos, std::string const & str,
- LyXFont const & font);
+ LyXFont const & font, Change const & change);
///
- void insertChar(lyx::pos_type pos, value_type c, Change const & change);
+ void insertChar(lyx::pos_type pos, value_type c, bool trackChanges);
///
void insertChar(lyx::pos_type pos, value_type c,
- LyXFont const &, Change const & change);
+ LyXFont const &, bool trackChanges);
+ ///
+ void insertChar(lyx::pos_type pos, value_type c,
+ LyXFont const &, Change const & change);
///
void insertInset(lyx::pos_type pos, InsetBase * inset,
Change const & change);
///
void insertInset(lyx::pos_type pos, InsetBase * inset,
- LyXFont const &, Change const & change);
+ LyXFont const &, Change const & change);
///
bool insetAllowed(InsetBase_code code);
///