]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.cpp
Implement sane UI for switching tristate toolbars (#6364)
[lyx.git] / src / LyXAction.cpp
index d73b2a9b590eb3c57cba84678c78c2c473a3e521..462e397d3a7c8d6fd0c4a5c81684a1cfe228162c 100644 (file)
@@ -714,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 },
@@ -760,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.
@@ -866,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 },
@@ -890,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.
@@ -1024,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
@@ -1215,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
@@ -1365,19 +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->Output->General->Date format. For
-                      possible formats see the manual page of the
-                      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.
@@ -1450,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
@@ -1516,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
  */
@@ -1530,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
@@ -1570,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 },
@@ -1898,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.
@@ -1930,7 +1967,8 @@ 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
@@ -1945,6 +1983,7 @@ void LyXAction::init()
                       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"|"name-noext"|"path"|"class"
                       vcs: "tree-revision"|"revision"|"author"|"date"|"time"
@@ -2284,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)
@@ -2347,9 +2386,9 @@ 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 },
@@ -2360,9 +2399,9 @@ void LyXAction::init()
  * \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> [ignorenests]
+ * \li Syntax: layout-toggle <LAYOUT> [ignoreautonests]
  * \li Params: <LAYOUT>: the layout to toggle\n
-               ignorenests: If specified, nesting advices will be ignored.
+               ignoreautonests: If specified, nesting advices will be ignored.
  * \li Origin: lasgouttes, 14 May 2018
  * \endvar
  */
@@ -2560,6 +2599,26 @@ void LyXAction::init()
  * \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
@@ -2597,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
@@ -3246,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
@@ -3386,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.
@@ -3601,10 +3680,11 @@ 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
  */
@@ -3737,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
@@ -3772,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
@@ -3831,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
@@ -3877,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.
@@ -4135,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.
@@ -4381,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);
@@ -4427,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();
 }