DocumentClass const & tc = buf.params().documentClass();
- int const thistoclevel = start->layout()->toclevel;
+ int const thistoclevel = start->layout().toclevel;
int toclevel;
// Move out (down) from this section header
++finish;
// Seek the one (on same level) below
for (; finish != end; ++finish) {
- toclevel = finish->layout()->toclevel;
+ toclevel = finish->layout().toclevel;
if (toclevel != Layout::NOT_IN_TOC && toclevel <= thistoclevel) {
break;
}
// Search previous same-level header above
do {
--dest;
- toclevel = dest->layout()->toclevel;
+ toclevel = dest->layout().toclevel;
} while(dest != bgn
&& (toclevel == Layout::NOT_IN_TOC
|| toclevel > thistoclevel));
pit_type const len = distance(start, finish);
buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
for (; start != finish; ++start) {
- toclevel = start->layout()->toclevel;
+ toclevel = start->layout().toclevel;
if (toclevel == Layout::NOT_IN_TOC)
continue;
DocumentClass::const_iterator lit = tc.begin();
DocumentClass::const_iterator len = tc.end();
for (; lit != len; ++lit) {
- LayoutPtr const & lt = *lit;
- if (lt->toclevel == toclevel + 1 &&
- start->layout()->labeltype == lt->labeltype) {
- start->setLayout(lt);
+ if (lit->toclevel == toclevel + 1 &&
+ start->layout().labeltype == lit->labeltype) {
+ start->setLayout(*lit);
break;
}
}
pit_type const len = distance(start, finish);
buf.undo().recordUndo(cur, ATOMIC_UNDO, pit, pit + len - 1);
for (; start != finish; ++start) {
- toclevel = start->layout()->toclevel;
+ toclevel = start->layout().toclevel;
if (toclevel == Layout::NOT_IN_TOC)
continue;
DocumentClass::const_iterator lit = tc.begin();
DocumentClass::const_iterator len = tc.end();
for (; lit != len; ++lit) {
- LayoutPtr const & lt = *lit;
- if (lt->toclevel == toclevel - 1 &&
- start->layout()->labeltype == lt->labeltype) {
- start->setLayout(lt);
+ if (lit->toclevel == toclevel - 1 &&
+ start->layout().labeltype == lit->labeltype) {
+ start->setLayout(*lit);
break;
}
}
/*
Paragraph & par = pars_[cur.pit()];
if (inset->lyxCode() == LABEL_CODE
- && par.layout()->labeltype == LABEL_COUNTER) {
+ && par.layout().labeltype == LABEL_COUNTER) {
// Go to the end of the paragraph
// Warning: Because of Change-Tracking, the last
// position is 'size()' and not 'size()-1':
needsUpdate |= dissolveInset(cur);
break;
- case LFUN_INSET_SETTINGS:
+ case LFUN_INSET_SETTINGS: {
+ // if there is an inset at cursor, access this
+ Inset * inset = cur.nextInset();
+ if (inset) {
+ inset->showInsetDialog(bv);
+ break;
+ }
+ // if not work, access the underlying inset.
cur.inset().showInsetDialog(bv);
break;
+ }
case LFUN_SPACE_INSERT:
- if (cur.paragraph().layout()->free_spacing)
+ if (cur.paragraph().layout().free_spacing)
insertChar(cur, ' ');
else {
doInsertInset(cur, this, cmd, false, false);
break;
case LFUN_SERVER_GET_LAYOUT:
- cur.message(cur.paragraph().layout()->name());
+ cur.message(cur.paragraph().layout().name());
break;
case LFUN_LAYOUT: {
LYXERR(Debug::INFO, "LFUN_LAYOUT: (arg) " << to_utf8(layout));
Paragraph const & para = cur.paragraph();
- docstring const old_layout = para.layout()->name();
+ docstring const old_layout = para.layout().name();
DocumentClass const & tclass = bv->buffer().params().documentClass();
if (layout.empty())
// If the entry is obsolete, use the new one instead.
if (hasLayout) {
- docstring const & obs = tclass[layout]->obsoleted_by();
+ docstring const & obs = tclass[layout].obsoleted_by();
if (!obs.empty())
layout = obs;
}
pit_type spit = cur.selBegin().pit();
pit_type epit = cur.selEnd().pit() + 1;
while (spit != epit) {
- if (pars_[spit].layout()->name() != old_layout) {
+ if (pars_[spit].layout().name() != old_layout) {
change_layout = true;
break;
}
Paragraph & par = cur.paragraph();
pos_type pos = cur.pos();
BufferParams const & bufparams = bv->buffer().params();
- LayoutPtr const & style = par.layout();
- if (!style->pass_thru
+ Layout const & style = par.layout();
+ if (!style.pass_thru
&& par.getFontSettings(bufparams, pos).language()->lang() != "hebrew") {
// this avoids a double undo
// FIXME: should not be needed, ideally
else
c = par.getChar(pos - 1);
string arg = to_utf8(cmd.argument());
- if (arg == "single")
- cur.insert(new InsetQuotes(c,
- bufparams.quotes_language,
- InsetQuotes::SingleQ));
- else
- cur.insert(new InsetQuotes(c,
- bufparams.quotes_language,
- InsetQuotes::DoubleQ));
+ cur.insert(new InsetQuotes(c, bufparams.quotes_language,
+ (arg == "single") ? InsetQuotes::SingleQuotes
+ : InsetQuotes::DoubleQuotes));
cur.posForward();
}
else
case LFUN_INDEX_PRINT:
case LFUN_NOMENCL_PRINT:
case LFUN_TOC_INSERT:
- case LFUN_HFILL_INSERT:
case LFUN_LINE_INSERT:
case LFUN_NEWPAGE_INSERT:
case LFUN_PAGEBREAK_INSERT:
return true;
case LFUN_BIBITEM_INSERT:
- enable = (cur.paragraph().layout()->labeltype == LABEL_BIBLIO
+ enable = (cur.paragraph().layout().labeltype == LABEL_BIBLIO
&& cur.pos() == 0);
break;
code = NOTE_CODE;
else if (cmd.argument() == "ref")
code = REF_CODE;
+ else if (cmd.argument() == "space")
+ code = SPACE_CODE;
else if (cmd.argument() == "toc")
code = TOC_CODE;
else if (cmd.argument() == "vspace")
code = ERT_CODE;
break;
case LFUN_LISTING_INSERT:
- code = LISTINGS_CODE;
+ code = LISTINGS_CODE;
break;
case LFUN_FOOTNOTE_INSERT:
code = FOOT_CODE;
break;
case LFUN_NOTE_INSERT:
code = NOTE_CODE;
+ // in commands (sections etc., only Notes are allowed)
+ enable = (cmd.argument().empty() || cmd.getArg(0) == "Note" ||
+ !cur.paragraph().layout().isCommand());
break;
case LFUN_FLEX_INSERT: {
code = FLEX_CODE;
case LFUN_OPTIONAL_INSERT:
code = OPTARG_CODE;
enable = cur.paragraph().insetList().count(OPTARG_CODE)
- < cur.paragraph().layout()->optionalargs;
+ < cur.paragraph().layout().optionalargs;
break;
case LFUN_ENVIRONMENT_INSERT:
code = BOX_CODE;
// always allow this, since we will inset a raw quote
// if an inset is not allowed.
break;
- case LFUN_HFILL_INSERT:
case LFUN_SPECIALCHAR_INSERT:
code = SPECIALCHAR_CODE;
break;
case LFUN_OUTLINE_DOWN:
case LFUN_OUTLINE_IN:
case LFUN_OUTLINE_OUT:
- enable = (cur.paragraph().layout()->toclevel != Layout::NOT_IN_TOC);
+ enable = (cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC);
break;
case LFUN_WORD_DELETE_FORWARD: