* index-tag-all adds a copy of the index entry under cursor to after all occurrences of the
word that precedes the index inset.
-
+
* inset-insert-copy inserts the inset's content (in ToC pane) at the position of the cursor.
* inset-split is a new convenience function that splits an inset into two at the given
* info-insert buffer vcs-*: renamed to info-insert vcs *
+* outline-in/out can now take argument "local", that restricts their
+ action to the current paragraph.
+
* set-graphics-group was renamed to graphics-set-group.
* tabular-feature: added toggle parameters "toggle-all-lines", "toggle-border-lines"
* \li Action: Moves the current group in the downward direction in the
hierarchy of the document structure.
* \li Notion: Part -> Chapter -> Section -> etc.
- * \li Syntax: outline-in
+ * \li Syntax: outline-in [local]
+ * \li Params: local: if given, only the current paragraph will be affected.
* \li Origin: Vermeer, 23 Mar 2006
* \endvar
*/
* \li Action: Moves the current group in the upward direction in the
hierarchy of the document structure.
* \li Notion: Part <- Chapter <- Section <- etc.
- * \li Syntax: outline-out
+ * \li Syntax: outline-out [local]
+ * \li Params: local: if given, only the current paragraph will be affected.
* \li Origin: Vermeer, 23 Mar 2006
* \endvar
*/
}
-void outline(OutlineOp mode, Cursor & cur)
+void outline(OutlineOp mode, Cursor & cur, bool local)
{
Buffer & buf = *cur.buffer();
Text & text = *cur.text();
if (finish != end)
++finish;
- // Seek the one (on same level) below
- for (; finish != end; ++finish) {
- toclevel = text.getTocLevel(distance(bgn, finish));
- if (toclevel != Layout::NOT_IN_TOC && toclevel <= thistoclevel)
- break;
+ if (!local || (mode != OutlineIn && mode != OutlineOut)) {
+ // Seek the one (on same level) below
+ for (; finish != end; ++finish) {
+ toclevel = text.getTocLevel(distance(bgn, finish));
+ if (toclevel != Layout::NOT_IN_TOC && toclevel <= thistoclevel)
+ break;
+ }
}
switch (mode) {
case LFUN_OUTLINE_UP: {
pos_type const opos = cur.pos();
- outline(OutlineUp, cur);
+ outline(OutlineUp, cur, false);
setCursor(cur, cur.pit(), opos);
cur.forceBufferUpdate();
needsUpdate = true;
case LFUN_OUTLINE_DOWN: {
pos_type const opos = cur.pos();
- outline(OutlineDown, cur);
+ outline(OutlineDown, cur, false);
setCursor(cur, cur.pit(), opos);
cur.forceBufferUpdate();
needsUpdate = true;
}
case LFUN_OUTLINE_IN:
- outline(OutlineIn, cur);
+ outline(OutlineIn, cur, cmd.getArg(0) == "local");
cur.forceBufferUpdate();
needsUpdate = true;
break;
case LFUN_OUTLINE_OUT:
- outline(OutlineOut, cur);
+ outline(OutlineOut, cur, cmd.getArg(0) == "local");
cur.forceBufferUpdate();
needsUpdate = true;
break;