InsetText * insetText = dynamic_cast<InsetText *>(inset);
if (insetText && !insetText->allowMultiPar() || cur.lastpit() == 0) {
// reset first par to default
- LayoutPtr const layout = insetText->useEmptyLayout()
- ? bparams.getTextClass().emptyLayout()
- : bparams.getTextClass().defaultLayout();
- cur.text()->paragraphs().begin()->layout(layout);
+ cur.text()->paragraphs().begin()
+ ->setEmptyOrDefaultLayout(bparams.textClass());
cur.pos() = 0;
cur.pit() = 0;
// Merge multiple paragraphs -- hack
} else {
// reset surrounding par to default
docstring const layoutname = insetText->useEmptyLayout()
- ? bparams.getTextClass().emptyLayoutName()
- : bparams.getTextClass().defaultLayoutName();
+ ? bparams.textClass().emptyLayoutName()
+ : bparams.textClass().defaultLayoutName();
cur.leaveInset(*inset);
text->setLayout(cur, layoutname);
}
ParagraphList::iterator finish = start;
ParagraphList::iterator end = pars.end();
- TextClass::const_iterator lit =
- buf.params().getTextClass().begin();
- TextClass::const_iterator const lend =
- buf.params().getTextClass().end();
+ TextClass const & tc = buf.params().textClass();
int const thistoclevel = start->layout()->toclevel;
int toclevel;
}
case OutlineIn:
buf.undo().recordUndo(cur);
- for (; lit != lend; ++lit) {
- if ((*lit)->toclevel == thistoclevel + 1 &&
- start->layout()->labeltype == (*lit)->labeltype) {
- start->layout((*lit));
+ for (size_t i = 0; i != tc.layoutCount(); ++i) {
+ LayoutPtr const & lt = tc.layout(i);
+ if (lt->toclevel == thistoclevel + 1 &&
+ start->layout()->labeltype == lt->labeltype) {
+ start->setLayout(lt);
break;
}
}
break;
case OutlineOut:
buf.undo().recordUndo(cur);
- for (; lit != lend; ++lit) {
- if ((*lit)->toclevel == thistoclevel - 1 &&
- start->layout()->labeltype == (*lit)->labeltype) {
- start->layout((*lit));
+ for (size_t i = 0; i != tc.layoutCount(); ++i) {
+ LayoutPtr const & lt = tc.layout(i);
+ if (lt->toclevel == thistoclevel - 1 &&
+ start->layout()->labeltype == lt->labeltype) {
+ start->setLayout(lt);
break;
}
}
{
LYXERR(Debug::ACTION, "Text::dispatch: cmd: " << cmd);
+ BufferView * bv = &cur.bv();
+ TextMetrics & tm = bv->textMetrics(this);
+ if (!tm.has(cur.pit()))
+ lyx::dispatch(FuncRequest(LFUN_SCREEN_RECENTER));
+
// FIXME: We use the update flag to indicates wether a singlePar or a
// full screen update is needed. We reset it here but shall we restore it
// at the end?
cur.noUpdate();
BOOST_ASSERT(cur.text() == this);
- BufferView * bv = &cur.bv();
- TextMetrics & tm = cur.bv().textMetrics(this);
CursorSlice oldTopSlice = cur.top();
bool oldBoundary = cur.boundary();
bool sel = cur.selection();
bool up = cmd.action == LFUN_UP_SELECT || cmd.action == LFUN_UP;
bool const successful = cur.upDownInText(up, needsUpdate);
if (successful) {
- // notify insets which were left and get their update flags
- notifyCursorLeaves(cur.beforeDispatchCursor(), cur);
- cur.fixIfBroken();
-
// redraw if you leave mathed (for the decorations)
needsUpdate |= cur.beforeDispatchCursor().inMathed();
} else
Paragraph const & para = cur.paragraph();
docstring const old_layout = para.layout()->name();
- TextClass const & tclass = bv->buffer().params().getTextClass();
+ TextClass const & tclass = bv->buffer().params().textClass();
if (layout.empty())
layout = tclass.defaultLayoutName();
cur.posForward();
ParagraphList & pars = cur.text()->paragraphs();
- TextClass const & tclass = bv->buffer().params().getTextClass();
+ TextClass const & tclass = bv->buffer().params().textClass();
// add a separate paragraph for the caption inset
pars.push_back(Paragraph());
pars.back().setInsetOwner(pars[0].inInset());
- if (pars.back().useEmptyLayout())
- pars.back().layout(tclass.emptyLayout());
- else
- pars.back().layout(tclass.defaultLayout());
-
+ pars.back().setEmptyOrDefaultLayout(tclass);
int cap_pit = pars.size() - 1;
// if an empty inset was created, we create an additional empty
if (!content) {
pars.push_back(Paragraph());
pars.back().setInsetOwner(pars[0].inInset());
- if (pars.back().useEmptyLayout())
- pars.back().layout(tclass.emptyLayout());
- else
- pars.back().layout(tclass.defaultLayout());
+ pars.back().setEmptyOrDefaultLayout(tclass);
}
// reposition the cursor to the caption
break;
case LFUN_FLOAT_LIST: {
- TextClass const & tclass = bv->buffer().params().getTextClass();
+ TextClass const & tclass = bv->buffer().params().textClass();
if (tclass.floats().typeExist(to_utf8(cmd.argument()))) {
cur.recordUndo();
if (cur.selection())
case LFUN_FLEX_INSERT: {
code = FLEX_CODE;
string s = cmd.getArg(0);
- InsetLayout il = cur.buffer().params().getTextClass().insetlayout(from_utf8(s));
+ InsetLayout il = cur.buffer().params().textClass().insetLayout(from_utf8(s));
if (il.lyxtype() != "charstyle" &&
il.lyxtype() != "custom" &&
il.lyxtype() != "element" &&