X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXAction.cpp;h=6b6a982aa66c06f2282e107d980669139c14970e;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=5b0745312024b6ba1fcaeb42f11de935b7473e27;hpb=19efc7df458054bbb4858716135a3140aead1bf3;p=lyx.git diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp index 5b07453120..6b6a982aa6 100644 --- a/src/LyXAction.cpp +++ b/src/LyXAction.cpp @@ -74,7 +74,7 @@ LyXAction lyxaction; void LyXAction::newFunc(FuncCode action, string const & name, - unsigned int attrib, LyXAction::func_type type) + unsigned int attrib, LyXAction::FuncType type) { lyx_func_map[name] = action; FuncInfo tmpinfo; @@ -97,13 +97,14 @@ void LyXAction::init() // magnitudes faster. static bool init; - if (init) return; + if (init) + return; struct ev_item { FuncCode action; char const * name; unsigned int attrib; - func_type type; + FuncType type; }; ev_item const items[] = { @@ -885,7 +886,7 @@ void LyXAction::init() * \li Origin: Tommaso, Nov 15 2007 * \endvar */ - { LFUN_WORD_FINDADV, "word-findadv", ReadOnly, Edit }, + { LFUN_WORD_FINDADV, "word-findadv", ReadOnly | NoBuffer, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_WORD_FORWARD * \li Action: Moves the cursor to the logically next beginning of a word. @@ -1073,6 +1074,15 @@ void LyXAction::init() */ { LFUN_INSET_END_SELECT, "inset-end-select", ReadOnly, Edit }, +/*! + * \var lyx::FuncCode lyx::LFUN_INSET_SELECT_ALL + * \li Action: Selects all contents of an inset. + * \li Syntax: inset-select-all + * \li Origin: vfr, 22 Aug 2009 + * \endvar + */ + { LFUN_INSET_SELECT_ALL, "inset-select-all", ReadOnly, Edit }, + /*! * \var lyx::FuncCode lyx::LFUN_LINE_BEGIN * \li Action: Move the cursor to the begining of the (screen) line. @@ -1431,7 +1441,7 @@ void LyXAction::init() * \li Origin: rgh, 25 August 2007 * \endvar */ - { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", Noop, Layout }, + { LFUN_LAYOUT_MODULES_CLEAR, "layout-modules-clear", NoInternal, Layout }, /*! * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULE_ADD * \li Action: Adds a module. @@ -1441,7 +1451,7 @@ void LyXAction::init() * \li Origin: rgh, 25 August 2007 * \endvar */ - { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", Noop, Layout }, + { LFUN_LAYOUT_MODULE_ADD, "layout-module-add", NoInternal, Layout }, /*! * \var lyx::FuncCode lyx::LFUN_LAYOUT_RELOAD * \li Action: Reloads layout information. @@ -1453,7 +1463,7 @@ void LyXAction::init() * \li Origin: rgh, 3 September 2007 * \endvar */ - { LFUN_LAYOUT_RELOAD, "layout-reload", Noop, Layout }, + { LFUN_LAYOUT_RELOAD, "layout-reload", NoInternal, Layout }, /*! * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_APPLY * \li Action: Sets the text class for the current buffer. @@ -1462,7 +1472,7 @@ void LyXAction::init() the filename, minus the ".layout" extension. * \endvar */ - { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop, Layout }, + { LFUN_TEXTCLASS_APPLY, "textclass-apply", NoInternal, Layout }, /*! * \var lyx::FuncCode lyx::LFUN_TEXTCLASS_LOAD * \li Action: Loads information for a textclass from disk. @@ -1471,7 +1481,7 @@ void LyXAction::init() the filename, minus the ".layout" extension. * \endvar */ - { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop, Layout }, + { LFUN_TEXTCLASS_LOAD, "textclass-load", NoInternal, Layout }, /*! * \var lyx::FuncCode lyx::LFUN_MARK_OFF @@ -1907,14 +1917,7 @@ void LyXAction::init() * \li Origin: Dekel, 26 Aug 2000 * \endvar */ - { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly, Edit }, -/*! - * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH - * \li Action: Breaks the current paragraph at the current location. - * \li Syntax: break-paragraph - * \endvar - */ - { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop, Edit }, + { LFUN_PARAGRAPH_GOTO, "paragraph-goto", ReadOnly | NoInternal, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_BREAK_PARAGRAPH * \li Action: Breaks the current paragraph at the current location. @@ -1934,7 +1937,7 @@ void LyXAction::init() Note that the "leftindent" indent setting is deprecated. * \li Syntax: paragraph-params [] [] [] [] * \li Params: : \noindent|\indent|\indent-toggle|\leftindent LENGTH\n - : \paragraph_spacing default|single|onehalf|double|other\n + : \paragraph_spacing default|single|onehalf|double|other SIZE \n : \align block|left|right|center|default\n : \labelwidthstring WIDTH|\start_of_appendix * \li Origin: rgh, Aug 15 2007 @@ -2169,6 +2172,16 @@ void LyXAction::init() * \endvar */ { LFUN_VC_LOCKING_TOGGLE, "vc-locking-toggle", ReadOnly, System }, +/*! + * \var lyx::FuncCode lyx::LFUN_VC_REPO_UPDATE + * \li Action: Update the local archive directory in which resides + the current document with the remote repository. + * \li Notion: This is currently implemented only for SVN. + * \li Syntax: vc-repo-update + * \li Origin: sanda, 16 Oct 2009 + * \endvar + */ + { LFUN_VC_REPO_UPDATE, "vc-repo-update", ReadOnly, System }, /*! * \var lyx::FuncCode lyx::LFUN_CHANGES_TRACK @@ -2270,7 +2283,7 @@ void LyXAction::init() * \li Origin: JSpitz, 7 Aug 2006 * \endvar */ - { LFUN_INSET_DISSOLVE, "inset-dissolve", Noop, Edit }, + { LFUN_INSET_DISSOLVE, "inset-dissolve", AtPoint, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_INSET_INSERT * \li Action: Insert new inset (type given by the parameters). @@ -2361,6 +2374,14 @@ void LyXAction::init() * \endvar */ { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly, Edit }, +/*! + * \var lyx::FuncCode lyx::LFUN_GRAPHICS_RELOAD + * \li Action: Reloads the image if necessary. + * \li Syntax: graphics-reload + * \li Origin: vfr, 10 Aug 2009 + * \endvar + */ + { LFUN_GRAPHICS_RELOAD, "graphics-reload", ReadOnly | AtPoint, Edit }, /*! * \var lyx::FuncCode lyx::LFUN_SET_GRAPHICS_GROUP * \li Action: Set the group for the graphics inset on the cursor position. @@ -2505,7 +2526,7 @@ void LyXAction::init() /*! * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE * \li Action: Toggles visibility of a given toolbar between on/off/auto. - * \li Notion: Skiping "auto" when allowauto is false. + * \li Notion: Skipping "auto" when allowauto is false. * \li Syntax: toolbar-toggle [allowauto] * \li Params: : standard|extra|table|math|mathmacrotemplate| minibuffer|review|view/update|math_panels|vcs @@ -2584,8 +2605,8 @@ void LyXAction::init() * \li Action: Shows hidden dialog or create new one for a given function/inset settings etc. * \li Syntax: dialog-show [] * \li Params: : aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n - document|errorlist|ert|external|file|findreplace|findreplaceadv|float|graphics|\n - href|include|index|index_print|info|label|listings|log|mathdelimiter|\n + compare|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n + graphics|href|include|index|index_print|info|label|listings|log|mathdelimiter|\n mathmatrix|mathspace|nomenclature|nomencl_print|note|paragraph|phantom|prefs|\n print|ref|sendto|space|spellchecker|symbols|tabular|tabularcreate|\n thesaurus|texinfo|toc|view-source|vspace|wrap| \n @@ -2844,6 +2865,15 @@ void LyXAction::init() * \endvar */ { LFUN_BUFFER_CLOSE, "buffer-close", ReadOnly, Buffer }, +/*! + * \var lyx::FuncCode lyx::LFUN_BUFFER_CLOSE_ALL + * \li Action: Closes all buffers. + * \li Notion: Closes all buffers, asking whether to save it, etc, + if a buffer has been modified. + * \li Syntax: buffer-close-all + * \endvar + */ + { LFUN_BUFFER_CLOSE_ALL, "buffer-close-all", ReadOnly, Buffer }, /*! * \var lyx::FuncCode lyx::LFUN_BUFFER_EXPORT * \li Action: Exports the current buffer (document) to the given format. @@ -2938,9 +2968,8 @@ void LyXAction::init() /*! * \var lyx::FuncCode lyx::LFUN_BUFFER_TOGGLE_READ_ONLY * \li Action: Toggle editing mode of the current document between read/write and read-only. - * \li Notion: In the ->Readonly mode checks-in/commits the data if the file is under version control. - In the Readonly-> mode checkouts the data from repository. \n - If these operations fail, buffer won't be toggled. + * \li Notion: This function is not allowed if the file is under version control, since + read-only flag is often used in version control file locking. * \li Syntax: buffer-toggle-read-only * \li Origin: Lgb, 27 May 1997 * \endvar @@ -3079,7 +3108,7 @@ void LyXAction::init() * \li Origin: leeming, 30 Mar 2004 * \endvar */ - { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", Noop, Buffer }, + { LFUN_BUFFER_PARAMS_APPLY, "buffer-params-apply", NoInternal, Buffer }, /*! * \var lyx::FuncCode lyx::LFUN_FILE_INSERT @@ -3152,12 +3181,14 @@ void LyXAction::init() /*! * \var lyx::FuncCode lyx::LFUN_COMMAND_EXECUTE - * \li Action: Opens the minibuffer toolbar so that the user can type in there. + * \li Action: Switches the focus to the minibuffer so that the user can type + in there. If necessary, it opens the minibuffer toolbar. * \li Notion: Usually bound to M-x shortcut. * \li Syntax: command-execute * \endvar */ { LFUN_COMMAND_EXECUTE, "command-execute", NoBuffer, Edit }, + /*! * \var lyx::FuncCode lyx::LFUN_COMMAND_PREFIX * \li Action: Return the current key sequence and available options as a string. @@ -3197,6 +3228,19 @@ void LyXAction::init() * \endvar */ { LFUN_MESSAGE, "message", NoBuffer, System }, +/*! + * \var lyx::FuncCode lyx::LFUN_DEBUG_LEVEL_SET + * \li Action: Set debug output level. + * \li Syntax: debug-level-set + * \li Params: : comma separated list of levels or the correspondent number + of their combination. 0 is equivalent to disabling all debug + events. See lyx -dbg for the current list of debug levels + and their numbers. + * \li Origin: sanda, 28 Dec 2009 + * \endvar + */ + { LFUN_DEBUG_LEVEL_SET, "debug-level-set", NoBuffer, System }, + /*! * \var lyx::FuncCode lyx::LFUN_PREFERENCES_SAVE * \li Action: Save user preferences. @@ -3401,13 +3445,34 @@ void LyXAction::init() */ { LFUN_SECTION_SELECT, "section-select", ReadOnly, Edit }, + +/*! + * \var lyx::FuncCode lyx::LFUN_INSET_FORALL + + * \li Action: Apply the given commands on insets of a given name. WARNING: use + at your own risks; this function gives you too many ways of + shooting yourself in the foot. A typical example is + inset-forall Note note-insert + which starts an infinite loop. This is mitigated by the fact + that the number of actions is arbitrarily limited to 10000. + * \li Syntax: inset-forall + : Type of Inset. If is *, all insets are matched. + * \li Sample: The name is used like for InsetLayout in layout files: "Note" + matches all note insets, while "Note:Note" only matches LyX + yellow note insets. The following command closes all note insets \n + inset-forall Note inset-toggle close + * \li Origin: lasgouttes, 27 Nov 2009 + * \endvar + */ + { LFUN_INSET_FORALL, "inset-forall", ReadOnly, Edit }, + + { LFUN_NOACTION, "", Noop, Hidden } #ifndef DOXYGEN_SHOULD_SKIP_THIS }; - for (int i = 0; items[i].action != LFUN_NOACTION; ++i) { + for (int i = 0; items[i].action != LFUN_NOACTION; ++i) newFunc(items[i].action, items[i].name, items[i].attrib, items[i].type); - } init = true; } @@ -3419,42 +3484,42 @@ LyXAction::LyXAction() } -// Returns an action tag from a string. FuncRequest LyXAction::lookupFunc(string const & func) const { string const func2 = trim(func); - if (func2.empty()) { + if (func2.empty()) return FuncRequest(LFUN_NOACTION); - } string cmd; string const arg = split(func2, cmd, ' '); - func_map::const_iterator fit = lyx_func_map.find(cmd); + FuncMap::const_iterator const fit = lyx_func_map.find(cmd); - return fit != lyx_func_map.end() ? FuncRequest(fit->second, arg) : FuncRequest(LFUN_UNKNOWN_ACTION); + return fit != lyx_func_map.end() + ? FuncRequest(fit->second, arg) + : FuncRequest(LFUN_UNKNOWN_ACTION); } string const LyXAction::getActionName(FuncCode action) const { - info_map::const_iterator const it = lyx_info_map.find(action); + InfoMap::const_iterator const it = lyx_info_map.find(action); return it != lyx_info_map.end() ? it->second.name : string(); } -LyXAction::func_type LyXAction::getActionType(FuncCode action) const +LyXAction::FuncType LyXAction::getActionType(FuncCode action) const { - info_map::const_iterator const it = lyx_info_map.find(action); + InfoMap::const_iterator const it = lyx_info_map.find(action); return it != lyx_info_map.end() ? it->second.type : Hidden; } bool LyXAction::funcHasFlag(FuncCode action, - LyXAction::func_attrib flag) const + LyXAction::FuncAttribs flag) const { - info_map::const_iterator ici = lyx_info_map.find(action); + InfoMap::const_iterator ici = lyx_info_map.find(action); if (ici == lyx_info_map.end()) { LYXERR0("action: " << action << " is not known."); @@ -3465,13 +3530,13 @@ bool LyXAction::funcHasFlag(FuncCode action, } -LyXAction::const_func_iterator LyXAction::func_begin() const +LyXAction::const_iterator LyXAction::func_begin() const { return lyx_func_map.begin(); } -LyXAction::const_func_iterator LyXAction::func_end() const +LyXAction::const_iterator LyXAction::func_end() const { return lyx_func_map.end(); }