// 260
LFUN_OUTLINE_IN,
LFUN_OUTLINE_OUT,
- LFUN_OUTLINE_DRAGMOVE, // roakes 20090601
LFUN_PARAGRAPH_MOVE_DOWN,
LFUN_PARAGRAPH_MOVE_UP,
+ LFUN_CURSOR_FOLLOWS_SCROLLBAR_TOGGLE, // ARRae 971202
// 265
LFUN_CLIPBOARD_PASTE,
LFUN_INSET_DISSOLVE, // jspitzm 20060807
LFUN_BUFFER_CLOSE_ALL, // vfr 20090806
LFUN_GRAPHICS_RELOAD, // vfr 20090810
LFUN_SCREEN_SHOW_CURSOR, // vfr, 20090325
- LFUN_CURSOR_FOLLOWS_SCROLLBAR_TOGGLE, // ARRae 971202
// 345
LFUN_LASTACTION // end of the table
* \endvar
*/
{ LFUN_OUTLINE_OUT, "outline-out", Noop, Edit },
-
-/*!
- * \var lyx::FuncCode lyx::LFUN_OUTLINE_DRAGMOVE
- * \li Action: Moves the document section associated with the specified
- heading to a specified location. Both the heading and the
- target paragraph are specified by the paragraph ID numbers.
- * \li Notion: The heading is a paragraph with style Part/Chapter/Section/
- etc. Id number of the paragraph is not the sequential number
- seen on the screen, but an internal number that is unique
- for all opened buffers (documents).
- * \li Syntax: outline-dragmove <PAR_ID_SECTION> <PAR_ID_DROP_POSITION>
- * \li Params: <PAR_ID_SECTION>: paragraph id of the section heading which
- is to be moved. \n
- <PAR_ID_DROP_POSITION>: the paragraph id where the section
- will be moved to.
- * \li Origin: Rob Oakes, 22 June 2009
- * \endvar
- */
- { LFUN_OUTLINE_DRAGMOVE, "outline-dragmove", Noop, Edit },
/*!
* \var lyx::FuncCode lyx::LFUN_INSET_EDIT
* \li Origin: JSpitzm, 27 Apr 2006
* \endvar
*/
-
{ LFUN_INSET_EDIT, "inset-edit", ReadOnly, Edit },
/*!
}
-static void dragMove(Cursor & cur, int moveid, int movetoid)
-{
- // Create pointers to buffers
- Buffer & buf_move = *cur.buffer();
- DocIterator dit_move = buf_move.getParFromID(moveid);
- DocIterator dit_dest = buf_move.getParFromID(movetoid);
-
- pit_type & pit_move = dit_move.pit();
- pit_type & pit_dest = dit_dest.pit();
- ParagraphList & pars = dit_move.text()->paragraphs();
-
- // Create references to the paragraphs to be moved
- ParagraphList::iterator const bgn = pars.begin();
- ParagraphList::iterator dest_start = boost::next(bgn, pit_dest);
-
- // The first paragraph of the area to be copied:
- ParagraphList::iterator start = boost::next(bgn, pit_move);
- // The final paragraph of area to be copied:
- ParagraphList::iterator finish = start;
- ParagraphList::iterator const end = pars.end();
-
- // Move out (down) from this section header
- if (finish != end)
- ++finish;
-
- // Seek the one (on same level) below
- int const thistoclevel = start->layout().toclevel;
- for (; finish != end; ++finish) {
- int const toclevel = finish->layout().toclevel;
- if (toclevel != Layout::NOT_IN_TOC
- && toclevel <= thistoclevel)
- break;
- }
-
- if (start == pars.begin() || start == dest_start)
- // Nothing to move
- return;
-
- pars.insert(dest_start, start, finish);
- pars.erase(start, finish);
-
- // 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_move.inset().setBuffer(buf_move);
-}
-
-
/// the type of outline operation
enum OutlineOp {
OutlineUp, // Move this header with text down
cur.buffer()->updateLabels();
needsUpdate = true;
break;
-
- case LFUN_OUTLINE_DRAGMOVE: {
- int const move_id = convert<int>(cmd.getArg(0));
- int const move_to_id = convert<int>(cmd.getArg(1));
- dragMove(cur, move_id, move_to_id);
- setCursor(cur, cur.pit(), 0);
- cur.buffer()->updateLabels();
- needsUpdate = true;
- break;
- }
default:
LYXERR(Debug::ACTION, "Command " << cmd << " not DISPATCHED by Text");
case LFUN_OUTLINE_DOWN:
case LFUN_OUTLINE_IN:
case LFUN_OUTLINE_OUT:
- case LFUN_OUTLINE_DRAGMOVE:
- // FIXME: LyX is not ready for outlining within inset.
- enable = isMainText()
- && cur.paragraph().layout().toclevel != Layout::NOT_IN_TOC;
- break;
case LFUN_NEWLINE_INSERT:
// LaTeX restrictions (labels or empty par)