]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Implement sane UI for switching tristate toolbars (#6364)
[lyx.git] / src / LyXAction.cpp
index e37bf9a69b91247797a75f5a5e7f379ed3c0dc77..462e397d3a7c8d6fd0c4a5c81684a1cfe228162c 100644 (file)
@@ -486,6 +486,17 @@ void LyXAction::init()
                { LFUN_BRANCH_MASTER_DEACTIVATE, "branch-master-deactivate", AtPoint, Buffer },
 
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_ANONYMIZE
+ * \li Action: For debug purposes only. Convert all [a-zA-Z0-1] characters to
+               single character. Useful when submitting docs to list or bugzilla.
+ * \li Syntax: buffer-anonymize
+ * \li Origin: sanda, Feb 1 2018
+ * \endvar
+ */
+               { LFUN_BUFFER_ANONYMIZE, "buffer-anonymize", Noop, Edit },
+
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_AUTO_SAVE
  * \li Action: Saves the current buffer to a temporary file.
@@ -703,8 +714,11 @@ void LyXAction::init()
  * \li Action: Creates a new buffer (that is, document) from a template.
  * \li Notion: Path for new files and templates can be set in Preferences dialog.
                Template will be asked for via Open-dialog.
- * \li Syntax: buffer-new-template [<FILE>]
- * \li Params: <FILE>: filename of created file with absolute path.
+ * \li Syntax: buffer-new-template [<FILE>] [<TEMPLATE FILE>]
+ * \li Params: <FILE>: filename of created file with absolute path. If empty
+ *                     or "newfile", a file with appropriate name is generated.
+ *             <TEMPLATE FILE>: filename of template with absolute path. If empty,
+ *                              a dialog is opened to select the new file.
  * \endvar
  */
                { LFUN_BUFFER_NEW_TEMPLATE,"buffer-new-template", NoBuffer, Buffer },
@@ -749,6 +763,15 @@ void LyXAction::init()
  */
                { LFUN_BUFFER_RELOAD, "buffer-reload", ReadOnly, Buffer },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_RESET_EXPORT
+ * \li Action: Removes the auxiliary file before next export to assure export is done afresh.
+ * \li Syntax: buffer-reset-export
+ * \li Origin: spitz, 27 Dec 2019
+ * \endvar
+ */
+               { LFUN_BUFFER_RESET_EXPORT, "buffer-reset-export", ReadOnly, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_SAVE_AS_DEFAULT
  * \li Action: Save the current document settings as default.
@@ -855,7 +878,8 @@ void LyXAction::init()
  * \li Notion: Saves the current buffer to disk, using the filename that
                is already associated with the buffer, asking for one if
                none is yet assigned.
- * \li Syntax: buffer-write
+ * \li Syntax: buffer-write [force]
+ * \li Params: force: write even if buffer is clean.
  * \endvar
  */
                { LFUN_BUFFER_WRITE, "buffer-write", ReadOnly, Buffer },
@@ -879,6 +903,17 @@ void LyXAction::init()
  */
                { LFUN_BUFFER_WRITE_AS, "buffer-write-as", ReadOnly, Buffer },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_BUFFER_WRITE_AS_TEMPLATE
+ * \li Action: Rename and save current buffer in the local templates directory.
+ * \li Syntax: buffer-write-as-template <FILENAME>
+ * \li Params: <FILENAME>: New name of the buffer/file. A relative path
+              is with respect to the original location of the buffer/file.
+ * \endvar
+ */
+               { LFUN_BUFFER_WRITE_AS_TEMPLATE, "buffer-write-as-template", ReadOnly, Buffer },
+
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_BUFFER_EXTERNAL_MODIFICATION_CLEAR
  * \li Action: Clear the external modification flag on the current buffer.
@@ -1013,7 +1048,7 @@ void LyXAction::init()
  * \li Origin: Levon, 16 Oct 2002
  * \endvar
  */
-               { LFUN_CHANGES_MERGE, "changes-merge", Noop, Edit },
+               { LFUN_CHANGES_MERGE, "changes-merge", ReadOnly, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CHANGES_OUTPUT
@@ -1204,6 +1239,18 @@ void LyXAction::init()
  * \endvar
  */
                { LFUN_CITATION_INSERT, "citation-insert", Noop, Edit },
+/*!
+ * \var lyx::FuncCode lyx::LFUN_CITATION_OPEN
+ * \li Action: Opens the corresponding pdf/url for a given citation inset.
+ * \li Syntax: citation-open [EXTERNAL] TARGET
+ * \li Params: <TARGET>: URL (https:,file:) of the document. \n
+               <EXTERNAL>: Use external executable script for finding target \n
+              and launching viewer. In this case TARGET consists of author and year \n
+              and will be passed as an input argument to the script.
+ * \li Origin: Sanda, 16 Aug 2020
+ * \endvar
+ */
+               { LFUN_CITATION_OPEN, "citation-open", ReadOnly | NoUpdate | Argument, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_CLIPBOARD_PASTE
@@ -1354,18 +1401,6 @@ void LyXAction::init()
  */
                { LFUN_CUT, "cut", Noop, Edit },
 
-/*!
- * \var lyx::FuncCode lyx::LFUN_DATE_INSERT
- * \li Action: Inserts the current date.
- * \li Syntax: date-insert [<ARG>]
- * \li Params: <ARG>: Format of date. The default value (%x) can be set
-                     in Preferences->Date format. For possible formats
-                     see manual page of strftime function.
- * \li Origin: jdblair, 31 Jan 2000
- * \endvar
- */
-               { LFUN_DATE_INSERT, "date-insert", Noop, Edit },
-
 /*!
  * \var lyx::FuncCode lyx::LFUN_DEBUG_LEVEL_SET
  * \li Action: Set debug output level.
@@ -1438,7 +1473,7 @@ void LyXAction::init()
  * \li Action: Shows hidden dialog or creates new one for a given function/inset settings etc.
  * \li Syntax: dialog-show <NAME> [<DATA>]
  * \li Params: <NAME>: aboutlyx|bibitem|bibtex|box|branch|changes|character|citation|\n
-               compare|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n
+               compare|counter|document|errorlist|ert|external|file|findreplace|findreplaceadv|float|\n
                graphics|href|include|index|index_print|info|label|line|listings|log|mathdelimiter|\n
                mathmatrix|mathspace|nomenclature|nomencl_print|note|paragraph|phantom|prefs|\n
                print|ref|sendto|space|spellchecker|symbols|tabular|tabularcreate|\n
@@ -1504,8 +1539,7 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_DROP_LAYOUTS_CHOICE
  * \li Action: Displays list of layout choices.
- * \li Notion: In the current (as of 2007) Qt4 frontend, this LFUN opens the
-               dropbox allowing for choice of layout.
+ * \li Notion: This LFUN opens the dropbox allowing for choice of layout.
  * \li Syntax: drop-layouts-choice
  * \endvar
  */
@@ -1518,7 +1552,7 @@ void LyXAction::init()
  * \li Params: outer:    If this is given, LyX will split the outermost environment in
                          the current nesting hierarchy.\n
                previous: If this is given, LyX will split the environment in the previous
-                         paragraph (is there is one).\n
+                         paragraph (if there is one).\n
                before:   If this is given, the new environment will be appended rather than
                          prepended.
  * \li Origin: spitz, 23 Dec 2012
@@ -1558,8 +1592,10 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_FILE_INSERT
  * \li Action: Inserts another LyX file.
- * \li Syntax: file-insert [<FILE>]
+ * \li Syntax: file-insert [<FILE>] [ignorelang]
  * \li Params: <FILE>: Filename to be inserted.
+ *             ignorelang: If given, the (main) language of the inserted file
+ *             is ignored (the context language is used).
  * \endvar
  */
                { LFUN_FILE_INSERT, "file-insert", Noop, Edit },
@@ -1854,15 +1890,6 @@ void LyXAction::init()
  */
                { LFUN_FORWARD_SEARCH, "forward-search", ReadOnly, System },
 
-/*!
- * \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_HELP_OPEN
  * \li Action: Open the given help file according to the language setting.
@@ -1895,6 +1922,19 @@ void LyXAction::init()
  */
                { LFUN_ICON_SIZE, "icon-size", NoBuffer, Buffer },
 
+
+/*!
+ * \var lyx::FuncCode lyx::LFUN_IF_RELATIVES
+ * \li Action: Helper function for master-related actions
+ * \li Notion: In a buffer, the function will be disabled if the buffer
+ *             has no master or children. It thus allows to enable
+ *             actions only in documents with master/children
+ * \li Syntax: ifrelatives <ACTION>
+ * \li Origin: spitz, 2 January 2020
+ * \endvar
+ */
+               { LFUN_IF_RELATIVES, "ifrelatives", Noop, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_INDEX_INSERT
  * \li Action: Inserts Index entry.
@@ -1927,18 +1967,26 @@ void LyXAction::init()
                the work area.\n
                2. select the text and run info-insert lfun.
  * \li Syntax: info-insert <TYPE> <ARG>
- * \li Params: <TYPE>: shortcut[s]|lyxrc|lyxinfo|package|textclass|menu|icon|buffer \n
+ * \li Params: <TYPE>: date|moddate|fixdate|time|modtime|fixtime|shortcut|shortcuts|lyxrc|
+ *                     lyxinfo|package|textclass|menu|l7n|icon|buffer|vcs \n
                <ARG>: argument for a given type. Look into InsetInfo.h for detailed
                       description. \n
+                      date: current date (formatted and localized)\n
+                      moddate: date of last modification (saving) (formatted and localized)\n
+                      fixdate: a static date (formatted and localized)\n
+                      time: current time (formatted and localized)\n
+                      modtime: time of last modification (saving) (formatted and localized)\n
+                      fixtime: a static time (formatted and localized)\n
                       shortcut[s]: name of lfun (e.g math-insert \alpha) \n
                       lyxrc: name of rc_entry (e.g. bind_file) \n
                       lyxinfo: "version" - used version of LyX \n
                       package: name of latex package (e.g. listings) \n
                       textclass: name of textclass (e.g. article) \n
                       menu: name of lfun used in menu  \n
+                      l7n: localizable string.\n
                       icon: icon of lfun used in toolbar or direct icon name\n
-                      buffer: "name"|"path"|"class"|"vcs-tree-revision"|
-                              "vcs-revision"|"vcs-author"|"vcs-date"|"vcs-time"
+                      buffer: "name"|"name-noext"|"path"|"class"
+                      vcs: "tree-revision"|"revision"|"author"|"date"|"time"
  * \li Sample: command-sequence info-insert buffer path; info-insert buffer name
  * \li Origin: bpeng, 7 Oct 2007
  * \endvar
@@ -1960,8 +2008,10 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_BEGIN
  * \li Action: Move the cursor to the beginning of the current inset
-               if it is not already there, or at the beginning of the
-               enclosing inset otherwise
+               if it is not already there. If the cursor is already at
+               the beginning of the current inset, move it to the
+               beginning of the enclosing inset or the main work area,
+               respectively, if there is no enclosing inset.
  * \li Syntax: inset-begin
  * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
@@ -1971,8 +2021,10 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_BEGIN_SELECT
  * \li Action: Move the cursor to the beginning of the current inset
-               if it is not already there, or at the beginning of the
-               enclosing inset otherwise (adding the
+               if it is not already there. If the cursor is already at
+               the beginning of the current inset, move it to the
+               beginning of the enclosing inset or the main work area,
+               respectively, if there is no enclosing inset (adding the
                traversed text to the selection).
  * \li Syntax: inset-begin-select
  * \li Origin: lasgouttes, 16 Mar 2009
@@ -2020,6 +2072,11 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_INSET_EDIT
  * \li Action: Edit the inset at cursor with an external application,
                if one is attributed.
+               If the inset is file based, the referenced file is edited.
+               Otherwise, the inset contents is written to a temporary file,
+               the inset is locked, and the temporary file is edited.
+               In this case, #LFUN_INSET_END_EDIT must be called to overtake
+               the changes and unlock the inset after editing is finished.
  * \li Syntax: inset-edit [<INSET_PARAMS>]
  * \li Params: <INSET_PARAMS>: Parameters for the inset. \n
                                Currently only the filename will be considered.
@@ -2029,11 +2086,24 @@ void LyXAction::init()
                { LFUN_INSET_EDIT, "inset-edit", ReadOnly | AtPoint, Edit },
 
 
+ /*!
+ * \var lyx::FuncCode lyx::LFUN_INSET_END_EDIT
+ * \li Action: End editing the inset at cursor with an external application.
+ *             This replaces the inset contents with the contents of the
+ *             temporary file, deletes the file and unlocks the inset.
+ * \li Syntax: inset-end-edit 
+ * \li Origin: gb, 11 Oct 2015
+ * \endvar
+ */
+               { LFUN_INSET_END_EDIT, "inset-end-edit", ReadOnly | AtPoint, Edit },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_END
- * \li Action: Move the cursor to the end of the current inset
-               if it is not already there, or at the end of the
-               enclosing inset otherwise
+ * \li Action: Move the cursor to the end of the current inset if it
+               is not already there. If the cursor is already at the
+               end of the current inset, move it to the end of the
+               enclosing inset or the main work area, respectively, if
+               there is no enclosing inset.
  * \li Syntax: inset-end
  * \li Origin: lasgouttes, 16 Mar 2009
  * \endvar
@@ -2042,9 +2112,11 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_INSET_END_SELECT
- * \li Action: Move the cursor to the end of the current inset
-               if it is not already there, or at the end of the
-               enclosing inset otherwise (adding the
+ * \li Action: Move the cursor to the end of the current inset if it
+               is not already there. If the cursor is already at the
+               end of the current inset, move it to the end of the
+               enclosing inset or the main work area, respectively, if
+               there is no enclosing inset (adding the
                traversed text to the selection).
  * \li Syntax: inset-end-select
  * \li Origin: lasgouttes, 16 Mar 2009
@@ -2130,8 +2202,8 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_INSET_SELECT_ALL
  * \li Action: Select all contents of an inset.
  * \li Notion: There are 3 successive levels: select current cell,
- *   select all cells of inset, select the inset from outside
- *   (in the enclosing inset).
+ *             select all cells of inset, select the inset from outside
+ *             (in the enclosing inset).
  * \li Syntax: inset-select-all
  * \li Origin: vfr, 22 Aug 2009; lasgouttes 1 Nov 2014
  * \endvar
@@ -2251,7 +2323,7 @@ void LyXAction::init()
 
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_LABEL_COPY_AS_REF
+ * \var lyx::FuncCode lyx::LFUN_LABEL_COPY_AS_REFERENCE
  * \li Action: Copies the label at the cursor as a cross-reference to be pasted elsewhere.
  * \li Syntax: copy-label-as-reference <LABEL>
  * \li Params: <LABEL>: The label to copy (for multi-line math)
@@ -2314,13 +2386,27 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT
  * \li Action: Sets the layout (that is, environment) for the current paragraph.
- * \li Syntax: layout <LAYOUT> [ignorenests]
+ * \li Syntax: layout <LAYOUT> [ignoreautonests]
  * \li Params: <LAYOUT>: the layout to use\n
-               ignorenests: If specified, nesting advices will be ignored.
+               ignoreautonests: If specified, nesting advices will be ignored.
  * \endvar
  */
                { LFUN_LAYOUT, "layout", Noop, Layout },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_LAYOUT_TOGGLE
+ * \li Action: Toggles the layout (that is, environment) for the current paragraph.
+ * \li Notion: Contrary to `layout', this function resets the current
+ *             (or selection) layout to the standard layout it already has the
+ *             correct layout. Useful for toolbar icons.
+ * \li Syntax: layout-toggle <LAYOUT> [ignoreautonests]
+ * \li Params: <LAYOUT>: the layout to toggle\n
+               ignoreautonests: If specified, nesting advices will be ignored.
+ * \li Origin: lasgouttes, 14 May 2018
+ * \endvar
+ */
+               { LFUN_LAYOUT_TOGGLE, "layout-toggle", Noop, Layout },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_LAYOUT_MODULES_CLEAR
  * \li Action: Clears the module list.
@@ -2495,6 +2581,45 @@ void LyXAction::init()
                { LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
 
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_EXPORT
+ * \li Action: Exports the master buffer (document) to the given format.
+ * \li Syntax: master-buffer-export [<FORMAT>] [<DEST>]
+ * \li Params: <FORMAT> is one of the formats which you can find in 
+                        Tools->Preferences->File formats->Format.
+                        Usual format you will enter is "pdf2" (pdflatex),
+                        "pdflatex" (plain tex for pdflatex) or "ps" for postscript.\n
+                        Note that "custom" is not allowed in this case.\n
+                        If absent or "default", then the default output format of the
+                        document is used.\n
+               <DEST>   If present, this argument provides the export destination
+                        filename. Its containing folder will also be the destination
+                        folder, where all the needed external files will be copied.
+ * \li Origin: rkh, 18 April 2018
+ * \endvar
+ */
+               { LFUN_MASTER_BUFFER_EXPORT, "master-buffer-export", ReadOnly, Buffer },
+               
+/*!
+ * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_FORALL
+ * \li Action: Applies a command to a buffer and all it children, starting from the master.
+ * \li Syntax: master-buffer-forall <LFUN-COMMAND>
+ * \li Params: <LFUN-COMMAND>: The command to be applied to the buffers.
+ * \li Sample: Close all Notes in buffers: \n
+              master-buffer-forall inset-forall Note inset-toggle close \n
+              Toggle change tracking on buffers: \n
+              master-buffer-forall changes-track \n
+              Toggle read-only for buffers: \n
+              master-buffer-forall buffer-toggle-read-only \n
+              Show statistics for individual buffers: \n
+              master-buffer-forall statistics \n
+              Activate the branch named "Solutions" in buffers: \n
+              master-buffer-forall branch-activate Solutions \n
+ * \li Origin: spitz, 31 Dec 2019
+ * \endvar
+ */
+               { LFUN_MASTER_BUFFER_FORALL, "master-buffer-forall", ReadOnly | Argument, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
  * \li Action: Update (export) the document built from the master buffer,
@@ -2531,7 +2656,7 @@ void LyXAction::init()
  * \li Syntax: math-matrix <COLS> <ROWS> [<DECORATION>]
  * \li Params: <DECORATION>: Decoration determines the LaTeX name of the matrix
                              that should be created. Possible values include
-                             pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix and
+                             pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix, smallmatrix, and
                              matrix. The default is 'matrix'.
  * \li Sample: math-ams-matrix 3 3 bmatrix
  * \endvar
@@ -3180,6 +3305,16 @@ void LyXAction::init()
  */
                { LFUN_PARAGRAPH_UPDATE, "", Noop, Hidden },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_SELECT
+ * \li Action: Move cursor to beginning of current paragraph
+               and select to the end in downward direction
+ * \li Notion: This function is by default bound to triple mouse click
+ * \li Syntax: paragraph-select
+ * \li Origin: Kornel, 16 Apr 2019
+ * \endvar
+ */
+               { LFUN_PARAGRAPH_SELECT, "paragraph-select", ReadOnly, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_PARAGRAPH_UP_SELECT
@@ -3320,6 +3455,16 @@ void LyXAction::init()
  */
                { LFUN_REPEAT, "repeat", NoBuffer, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_SEARCH_IGNORE
+ * \li Action: Enables/disables searching for features in findadv
+ * \li Syntax: search-ignore <type> <value>
+ * \li Params: <type>: language|color|sectioning|font|series|shape|family|markup|underline|strike
+ * \li Params: <value>: true|false
+ * \endvar
+ */
+               { LFUN_SEARCH_IGNORE, "search-ignore", ReadOnly|NoBuffer|NoUpdate, System },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_SCREEN_DOWN
  * \li Action: Moves the cursor one page in downward direction.
@@ -3535,26 +3680,46 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_SET_COLOR
- * \li Action: Set the given LyX color to the color defined by the X11 name given.
+ * \li Action: Set the given LyX color to the color defined by the X11 name given,
+ *             and optionally a specific color for dark mode.
  * \li Notion: A new color entry is created if the color is unknown.
                Color names can be stored as a part of user settings.
- * \li Syntax: set-color <LYX_NAME> <X11_NAME>
+ * \li Syntax: set-color <LYX_NAME> <X11_NAME> [<X11_DARKNAME>]
  * \li Origin: SLior, 11 Jun 2000
  * \endvar
  */
                { LFUN_SET_COLOR, "set-color", ReadOnly | NoBuffer, System },
 
 /*!
- * \var lyx::FuncCode lyx::LFUN_SET_GRAPHICS_GROUP
+ * \var lyx::FuncCode lyx::LFUN_GRAPHICS_SET_GROUP
  * \li Action: Set the group for the graphics inset on the cursor position.
- * \li Syntax: set-graphics-group [<GROUP>]
+ * \li Syntax: graphics-set-group [<GROUP>]
  * \li Params: <GROUP>: Id for an existing group. In case the Id is an empty string,
                         the graphics inset is removed from the current group.
  * \li Origin: sanda, 6 May 2008
  * \endvar
  */
-               { LFUN_SET_GRAPHICS_GROUP, "set-graphics-group", Noop, Edit },
+               { LFUN_GRAPHICS_SET_GROUP, "graphics-set-group", Noop, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_GRAPHICS_UNIFY
+ * \li Action: Set the same group for all graphics insets in the marked block.
+ * \li Syntax: graphics-unify [<GROUP>]
+ * \li Params: <GROUP>: Id for an existing group. In case the Id is an empty string,
+                        the group Id from the first graphics inset will be used.
+ * \li Origin: sanda, 7 Feb 2018
+ * \endvar
+ */
+               { LFUN_GRAPHICS_UNIFY, "graphics-unify", Noop, 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_SPACE_INSERT
@@ -3652,12 +3817,16 @@ void LyXAction::init()
  * \li Params: Generally see #LFUN_INSET_INSERT for further details.\n
  *             <FEATURE>: append-row|append-column|delete-row|delete-column|copy-row|\n
                        copy-column|move-column-right|move-column-left|move-row-down|move-row-up|\n
+                       set-line-top|set-line-bottom|set-line-left|set-line-right|\n
                        toggle-line-top|toggle-line-bottom|toggle-line-left|toggle-line-right|\n
+                       set-ltrim-top|set-rtrim-top|set-ltrim-bottom|set-rtrim-bottom\n
+                       toggle-ltrim-top|toggle-rtrim-top|toggle-ltrim-bottom|toggle-rtrim-bottom\n
                        align-left|align-right|align-center|align-block|align-decimal|set-decimal-point|\n
                        valign-top|valign-bottom|valign-middle|longtabular-align-left|\n
                        longtabular-align-center|longtabular-align-right|m-align-left|m-align-right|\n
                        m-align-center|m-valign-top|m-valign-bottom|m-valign-middle|multicolumn|\n
-                       set-all-lines|unset-all-lines|toggle-longtabular|set-longtabular|unset-longtabular|set-pwidth|\n
+                       reset-formal-default|set-all-lines|unset-all-lines|toggle-longtabular|\n
+                       set-longtabular|unset-longtabular|set-pwidth|\n
                        set-mpwidth|set-rotate-tabular|unset-rotate-tabular|toggle-rotate-tabular|\n
                        set-rotate-cell|unset-rotate-cell|toggle-rotate-cell|set-usebox|set-lthead|\n
                        unset-lthead|set-ltfirsthead|unset-ltfirsthead|set-ltfoot|unset-ltfoot|\n
@@ -3665,7 +3834,8 @@ void LyXAction::init()
                        set-special-column|set-special-multicolumn|set-special-multirow|\n
                        toggle-booktabs|set-booktabs|unset-booktabs|set-top-space|set-bottom-space|\n
                        set-interline-space|set-border-lines|tabular-valign-top|\n
-                       tabular-valign-middle|tabular-valign-bottom|set-tabular-width\n
+                       tabular-valign-middle|tabular-valign-bottom|set-tabular-width|\n
+                       toggle-varwidth-column
                Various math-environment features are handled as well, e.g. add-vline-left/right for\n
                the Grid/Array environment.\n
                <ARG>: additional argument for some commands, use debug mode to explore its values.
@@ -3686,6 +3856,18 @@ void LyXAction::init()
  */
                { LFUN_TABULAR_INSERT, "tabular-insert", Noop, Edit },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_TABULAR_STYLE_INSERT
+ * \li Action: Inserts table of a given style into the document.
+ * \li Notion: See #LFUN_TABULAR_FEATURE for some more details
+              about tabular modifications.
+ * \li Syntax: tabular-style-insert <style> <ROWS> <COLUMNS>
+ * \li Params: Valid styles are the names of the files in lib/tabletemplates,
+ *             minus _1x<n> and .lyx suffix.
+ * \li Origin: spitz, 25 Mar 2019
+ * \endvar
+ */
+               { LFUN_TABULAR_STYLE_INSERT, "tabular-style-insert", Noop, Edit },
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_TAB_DELETE
@@ -3745,8 +3927,10 @@ void LyXAction::init()
 
 /*!
  * \var lyx::FuncCode lyx::LFUN_TEXTSTYLE_APPLY
- * \li Action: Toggle user-defined (=last-time used) text style.
- * \li Notion: This style is set via #LFUN_TEXTSTYLE_UPDATE, which is
+ * \li Action: Apply last used text properties.
+ * \li Syntax: textstyle-apply [<NUM>]
+ * \li Params: <NUM>: number of the selection in the internal freefonts stack to be applied.
+ * \li Notion: These properties are stored via #LFUN_TEXTSTYLE_UPDATE, which is
                automatically triggered when using Text Style dialog.
  * \li Syntax: textstyle-apply
  * \li Origin: leeming, 12 Mar 2003
@@ -3758,7 +3942,7 @@ void LyXAction::init()
  * \var lyx::FuncCode lyx::LFUN_TEXTSTYLE_UPDATE
  * \li Action: Apply text style and update the settings to be used by #LFUN_TEXTSTYLE_APPLY.
  * \li Syntax: textstyle-update <FONT_INFO>
- * \li Params: <FONT_INFO>: specifies font atributes, e.g. family, series, shape,
+ * \li Params: <FONT_INFO>: specifies font attributes, e.g. family, series, shape,
                             size, emph, noun, underbar, number, color, language,
                             toggleall.\n
                             Use lyx -dbg action for exact syntax of text-style
@@ -3791,6 +3975,19 @@ void LyXAction::init()
 */
                { LFUN_TOOLBAR_MOVABLE, "toolbar-movable", NoBuffer, Buffer },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_TOOLBAR_SET
+ * \li Action: Sets visibility of a given toolbar to on, off, or auto.
+ * \li Notion: Skipping "auto" when allowauto is false.
+ * \li Syntax: toolbar-set <NAME> [on|off|auto]
+ * \li Params: <NAME>: standard|extra|table|math|mathmacrotemplate|\n
+                      minibuffer|review|view/update|math_panels|vcs|
+                      view-others|update-others
+ * \li Origin: spitz, 17 Dec 2020
+ * \endvar
+ */
+               { LFUN_TOOLBAR_SET, "toolbar-set", NoBuffer, Buffer },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_TOOLBAR_TOGGLE
  * \li Action: Toggles visibility of a given toolbar between on/off/auto.
@@ -3832,10 +4029,10 @@ void LyXAction::init()
 /*!
  * \var lyx::FuncCode lyx::LFUN_UNICODE_INSERT
  * \li Action: Inserts a single unicode character.
- * \li Syntax: unicode-insert <CHAR>
- * \li Params: <CHAR>: The character to insert, given as its code
+ * \li Syntax: unicode-insert <CHAR1> <CHAR2> ...
+ * \li Params: <CHARn>: The character to insert, given as its code
                        point, in hexadecimal.
- * \li Sample: unicode-insert 0x0100
+ * \li Sample: unicode-insert 0x0100 0x0259
  * \li Origin: Lgb, 22 Oct 2006
  * \endvar
  */
@@ -4049,6 +4246,18 @@ void LyXAction::init()
  */
                { LFUN_WINDOW_NEW, "window-new", NoBuffer, Buffer },
 
+/*!
+ * \var lyx::FuncCode lyx::LFUN_WINDOW_RAISE
+ * \li Action: Raises the LyX window.
+ * \li Notion: Brings the LyX window to the front. Such behavior is allowed
+               on Windows only when no other application has focus.
+               This action is used when LyX is in single instance mode.
+ * \li Syntax: window-raise
+ * \li Origin: forenr, 21 Apr 2020
+ * \endvar
+ */
+               { LFUN_WINDOW_RAISE, "window-raise", ReadOnly | NoBuffer, Hidden },
+
 /*!
  * \var lyx::FuncCode lyx::LFUN_WORD_BACKWARD
  * \li Action: Moves the cursor to the logically previous beginning of a word.
@@ -4211,8 +4420,8 @@ void LyXAction::init()
  * \li Action: Replace a string in the document.
  * \li Syntax: word-replace [<DATA>]
  * \li Params: <DATA>: data is of the form
-                       "<replace> \n
-                        <search> \n
+                       "<replacestring> \n
+                        <searchstring> \n
                         <casesensitive> <matchword> <all> <forward> <findnext>"
  * \li Origin: Andre, Jan 7 2004
  * \endvar
@@ -4295,9 +4504,9 @@ LyXAction::LyXAction()
 }
 
 
-FuncRequest LyXAction::lookupFunc(string const & func) const
+FuncRequest LyXAction::lookupFunc(string const & func_name) const
 {
-       string const func2 = trim(func);
+       string const func2 = trim(func_name);
 
        if (func2.empty())
                return FuncRequest(LFUN_NOACTION);
@@ -4341,13 +4550,13 @@ bool LyXAction::funcHasFlag(FuncCode action,
 }
 
 
-LyXAction::const_iterator LyXAction::func_begin() const
+LyXAction::const_iterator LyXAction::begin() const
 {
        return lyx_func_map.begin();
 }
 
 
-LyXAction::const_iterator LyXAction::func_end() const
+LyXAction::const_iterator LyXAction::end() const
 {
        return lyx_func_map.end();
 }