#include "Lexer.h"
#include "LyXRC.h"
#include "Paragraph.h"
-#include "paragraph_funcs.h"
#include "ParagraphParameters.h"
#include "TextClass.h"
#include "TextMetrics.h"
if (edit)
inset->edit(cur, true);
// Now put this into inset
- cur.text()->insertStringAsLines(cur, ds);
+ cur.text()->insertStringAsLines(cur, ds, cur.current_font);
cur.leaveInset(*inset);
return true;
}
break;
}
- // Do we need to set insets' buffer_ members, because we copied
- // some stuff? We'll assume we do and reset it otherwise.
- bool set_buffers = true;
-
switch (mode) {
case OutlineUp: {
if (start == pars.begin())
pit_type const len = distance(start, finish);
pit_type const deletepit = pit + len;
buf.undo().recordUndo(cur, ATOMIC_UNDO, newpit, deletepit - 1);
- pars.insert(dest, start, finish);
- start = boost::next(pars.begin(), deletepit);
- pit = newpit;
- pars.erase(start, finish);
+ pars.splice(dest, start, finish);
+ cur.pit() = newpit;
break;
}
case OutlineDown: {
}
// One such was found:
pit_type newpit = distance(bgn, dest);
- pit_type const len = distance(start, finish);
buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, newpit - 1);
- pars.insert(dest, start, finish);
- start = boost::next(bgn, pit);
- pit = newpit - len;
- pars.erase(start, finish);
+ pit_type const len = distance(start, finish);
+ pars.splice(dest, start, finish);
+ cur.pit() = newpit - len;
break;
}
case OutlineIn: {
}
}
}
- set_buffers = false;
break;
}
case OutlineOut: {
}
}
}
- set_buffers = false;
break;
}
}
- if (set_buffers)
- // FIXME This only really needs doing for the newly introduced
- // paragraphs. Something like:
- // pit_type const numpars = distance(start, finish);
- // start = boost::next(bgn, pit);
- // finish = boost::next(start, numpars);
- // for (; start != finish; ++start)
- // start->setBuffer(buf);
- // But while this seems to work, it is kind of fragile.
- buf.inset().setBuffer(buf);
}
}
-bool Text::isRTL(Buffer const & buffer, Paragraph const & par) const
+bool Text::isRTL(Paragraph const & par) const
{
+ Buffer const & buffer = owner_->buffer();
return par.isRTL(buffer.params());
}
pit_type const pit = cur.pit();
recUndo(cur, pit, pit + 1);
cur.finishUndo();
- swap(pars_[pit], pars_[pit + 1]);
+ pars_.swap(pit, pit + 1);
cur.buffer()->updateLabels();
needsUpdate = true;
++cur.pit();
pit_type const pit = cur.pit();
recUndo(cur, pit - 1, pit);
cur.finishUndo();
- swap(pars_[pit], pars_[pit - 1]);
+ pars_.swap(pit, pit - 1);
cur.buffer()->updateLabels();
--cur.pit();
needsUpdate = true;
if (layout.empty())
layout = tclass.defaultLayoutName();
- if (para.forcePlainLayout())
+ if (owner_->forcePlainLayout())
// in this case only the empty layout is allowed
layout = tclass.plainLayoutName();
else if (para.usePlainLayout()) {
// add a separate paragraph for the caption inset
pars.push_back(Paragraph());
- pars.back().setInsetOwner(&pars[0].inInset());
+ pars.back().setInsetOwner(&cur.text()->inset());
pars.back().setPlainOrDefaultLayout(tclass);
int cap_pit = pars.size() - 1;
// the graphics (or table).
if (!content) {
pars.push_back(Paragraph());
- pars.back().setInsetOwner(&pars[0].inInset());
+ pars.back().setInsetOwner(&cur.text()->inset());
pars.back().setPlainOrDefaultLayout(tclass);
}
break;
}
- if (lyxrc.spellcheck_continuously && cur.inTexted())
- // Take this opportunity to spellcheck current word.
- cur.paragraph().isMisspelled(cur.pos());
-
needsUpdate |= (cur.pos() != cur.lastpos()) && cur.selection();
// FIXME: The cursor flag is reset two lines below
enable = cur.inset().lyxCode() == FLEX_CODE
&& il.lyxtype() == type;
} else {
- enable = ((!isMainText(cur.bv().buffer())
+ enable = ((!isMainText()
&& cur.inset().nargs() == 1)
|| (cur.nextInset()
&& cur.nextInset()->nargs() == 1));
// However, without proper optimizations, this will inevitably
// result in unacceptable performance - just imagine a user who
// wants to select the complete content of a long document.
- if (!cur.selection()) {
- Change const & change = cur.paragraph().lookupChange(cur.pos());
- enable = change.changed();
- } else
+ if (!cur.selection())
+ enable = cur.paragraph().isChanged(cur.pos());
+ else
// TODO: context-sensitive enabling of LFUN_CHANGE_ACCEPT/REJECT
// for selections.
enable = true;
case LFUN_OUTLINE_OUT:
case LFUN_OUTLINE_DRAGMOVE:
// FIXME: LyX is not ready for outlining within inset.
- enable = isMainText(cur.bv().buffer())
+ enable = isMainText()
&& cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC;
break;
if (!clip.empty()) {
cur.recordUndo();
if (asParagraphs)
- insertStringAsParagraphs(cur, clip);
+ insertStringAsParagraphs(cur, clip, cur.current_font);
else
- insertStringAsLines(cur, clip);
+ insertStringAsLines(cur, clip, cur.current_font);
}
}