ParagraphList & pars = buf.text().paragraphs();
ParagraphList::iterator const bgn = pars.begin();
// The first paragraph of the area to be copied:
- ParagraphList::iterator start = lyx::next(bgn, pit);
+ ParagraphList::iterator start = pars.iterator_at(pit);
// The final paragraph of area to be copied:
ParagraphList::iterator finish = start;
ParagraphList::iterator const end = pars.end();
continue;
DocumentClass const & tc = buf.params().documentClass();
- DocumentClass::const_iterator lit = tc.begin();
- DocumentClass::const_iterator len = tc.end();
int const newtoclevel =
(mode == OutlineIn ? toclevel + 1 : toclevel - 1);
LabelType const oldlabeltype = start->layout().labeltype;
- for (; lit != len; ++lit) {
- if (lit->toclevel == newtoclevel &&
- lit->labeltype == oldlabeltype) {
- start->setLayout(*lit);
+ for (auto const & lay : tc) {
+ if (lay.toclevel == newtoclevel &&
+ lay.labeltype == oldlabeltype) {
+ start->setLayout(lay);
break;
}
}
case LFUN_PARAGRAPH_MOVE_DOWN: {
pit_type const pit = cur.pit();
cur.recordUndo(pit, pit + 1);
- cur.finishUndo();
pars_.swap(pit, pit + 1);
needsUpdate = true;
cur.forceBufferUpdate();
ParagraphList & pars = buf.text().paragraphs();
ParagraphList::iterator bgn = pars.begin();
// The first paragraph of the area to be selected:
- ParagraphList::iterator start = lyx::next(bgn, pit);
+ ParagraphList::iterator start = pars.iterator_at(pit);
// The final paragraph of area to be selected:
ParagraphList::iterator finish = start;
ParagraphList::iterator end = pars.end();
if (change_layout) {
setLayout(cur, layout);
if (cur.pit() > 0 && !ignoreautonests) {
+ pit_type prev_pit = cur.pit() - 1;
+ depth_type const cur_depth = pars_[cur.pit()].getDepth();
+ // Scan for the previous par on same nesting level
+ while (prev_pit > 0 && pars_[prev_pit].getDepth() > cur_depth)
+ --prev_pit;
set<docstring> const & autonests =
- pars_[cur.pit() - 1].layout().autonests();
+ pars_[prev_pit].layout().autonests();
set<docstring> const & autonested =
pars_[cur.pit()].layout().isAutonestedBy();
if (autonests.find(layout) != autonests.end()
if (inautoarg) {
cur.leaveInset(cur.inset());
cur.posForward();
- inautoarg = false;
}
FuncRequest const cmd2(LFUN_ARGUMENT_INSERT, la_pair.first);
lyx::dispatch(cmd2);
bool const sel = cur.selection();
doInsertInset(cur, this, cmd, true, true);
// Insert auto-insert arguments
- bool autoargs, inautoarg = false;
+ bool autoargs = false, inautoarg = false;
Layout::LaTeXArgMap args = cur.inset().getLayout().args();
- Layout::LaTeXArgMap::const_iterator lait = args.begin();
- Layout::LaTeXArgMap::const_iterator const laend = args.end();
- for (; lait != laend; ++lait) {
- Layout::latexarg arg = (*lait).second;
+ for (auto const & argt : args) {
+ Layout::latexarg arg = argt.second;
if (!inautoarg && arg.insertonnewline && cur.pos() > 0) {
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
lyx::dispatch(cmd2);
if (inautoarg) {
cur.leaveInset(cur.inset());
cur.posForward();
- inautoarg = false;
if (arg.insertonnewline && cur.pos() > 0) {
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
lyx::dispatch(cmd2);
}
}
- FuncRequest cmd2(LFUN_ARGUMENT_INSERT, (*lait).first);
+ FuncRequest cmd2(LFUN_ARGUMENT_INSERT, argt.first);
lyx::dispatch(cmd2);
autoargs = true;
inautoarg = true;
}
break;
- case LFUN_OUTLINE_UP:
+ case LFUN_OUTLINE_UP: {
+ pos_type const opos = cur.pos();
outline(OutlineUp, cur, this);
- setCursor(cur, cur.pit(), 0);
+ setCursor(cur, cur.pit(), opos);
cur.forceBufferUpdate();
needsUpdate = true;
break;
+ }
- case LFUN_OUTLINE_DOWN:
+ case LFUN_OUTLINE_DOWN: {
+ pos_type const opos = cur.pos();
outline(OutlineDown, cur, this);
- setCursor(cur, cur.pit(), 0);
+ setCursor(cur, cur.pit(), opos);
cur.forceBufferUpdate();
needsUpdate = true;
break;
+ }
case LFUN_OUTLINE_IN:
outline(OutlineIn, cur, this);
cur.buffer()->params().documentClass().insetLayout(from_utf8(s));
if (il.lyxtype() != InsetLayout::CHARSTYLE &&
il.lyxtype() != InsetLayout::CUSTOM &&
- il.lyxtype() != InsetLayout::ELEMENT &&
il.lyxtype ()!= InsetLayout::STANDARD)
enable = false;
break;
enable = true;
break;
}
+ if (beg != end && it.paragraph().hasChangedInsets(beg, end)) {
+ enable = true;
+ break;
+ }
if (in_last_par)
break;
}
case LFUN_SPELLING_ADD:
case LFUN_SPELLING_IGNORE:
case LFUN_SPELLING_REMOVE:
- enable = theSpellChecker() != NULL;
+ enable = theSpellChecker() != nullptr;
if (enable && !cmd.getArg(1).empty()) {
// validate explicitly given language
Language const * const lang = const_cast<Language *>(languages.getLanguage(cmd.getArg(1)));
- enable &= lang != NULL;
+ enable &= lang != nullptr;
}
break;
{
vector<docstring> ffList;
- FontStack::const_iterator cit = freeFonts.begin();
- FontStack::const_iterator end = freeFonts.end();
- for (; cit != end; ++cit)
- // we do not use cit-> here because gcc 2.9x does not
- // like it (JMarc)
- ffList.push_back((*cit).first);
+ for (auto const & f : freeFonts)
+ ffList.push_back(f.first);
return ffList;
}