]> git.lyx.org Git - lyx.git/blobdiff - src/LyXAction.C
fix bug 2089: Touching Navigate menu crashes Lyx when a TOC inset is in a section...
[lyx.git] / src / LyXAction.C
index d7eee1b91e03e92acbb4571e7c306c1006bebe44..9c98b95881f240a21594b5be70ce639512bc289e 100644 (file)
@@ -26,7 +26,7 @@ using lyx::support::split;
 using lyx::support::trim;
 
 using std::endl;
-
+using std::string;
 using std::ostream;
 
 
@@ -114,6 +114,8 @@ void LyXAction::init()
                { LFUN_ENDBUF, "buffer-end", ReadOnly },
                { LFUN_ENDBUFSEL, "buffer-end-select", ReadOnly },
                { LFUN_EXPORT, "buffer-export", ReadOnly },
+               { LFUN_EXPORT_CUSTOM, "buffer-export-custom", ReadOnly },
+               { LFUN_PRINT, "buffer-print", ReadOnly },
                { LFUN_IMPORT, "buffer-import", NoBuffer },
                { LFUN_MENUNEW, "buffer-new", NoBuffer },
                { LFUN_MENUNEWTMPLT,"buffer-new-template", NoBuffer },
@@ -126,22 +128,22 @@ void LyXAction::init()
                { LFUN_WRITEAS, "buffer-write-as", ReadOnly },
                { LFUN_CANCEL, "cancel", NoBuffer },
                { LFUN_INSET_CAPTION, "caption-insert", Noop },
-               { LFUN_LEFT, "char-backward", ReadOnly },
-               { LFUN_RIGHT, "char-forward", ReadOnly },
+               { LFUN_LEFT, "char-backward", ReadOnly | NoUpdate},
+               { LFUN_RIGHT, "char-forward", ReadOnly | NoUpdate},
                { LFUN_EXEC_COMMAND, "command-execute", NoBuffer },
                { LFUN_PREFIX, "command-prefix", NoBuffer },
                { LFUN_SEQUENCE, "command-sequence", NoBuffer },
                { LFUN_COPY, "copy", ReadOnly },
                { LFUN_CUT, "cut", Noop },
                { LFUN_DATE_INSERT, "date-insert", Noop },
-               { LFUN_BACKSPACE, "delete-backward", Noop },
+               { LFUN_BACKSPACE, "delete-backward", SingleParUpdate },
                { LFUN_BACKSPACE_SKIP, "delete-backward-skip", Noop },
-               { LFUN_DELETE, "delete-forward", Noop },
+               { LFUN_DELETE, "delete-forward", SingleParUpdate },
                { LFUN_DELETE_SKIP, "delete-forward-skip", Noop },
                { LFUN_DEPTH_MIN, "depth-decrement", Noop },
                { LFUN_DEPTH_PLUS, "depth-increment", Noop },
                { LFUN_LDOTS, "dots-insert", Noop },
-               { LFUN_DOWN, "down", ReadOnly },
+               { LFUN_DOWN, "down", ReadOnly | NoUpdate},
                { LFUN_DOWNSEL, "down-select", ReadOnly },
                { LFUN_DROP_LAYOUTS_CHOICE, "drop-layouts-choice", ReadOnly },
                { LFUN_END_OF_SENTENCE, "end-of-sentence-period-insert", Noop },
@@ -186,14 +188,19 @@ void LyXAction::init()
                { LFUN_INSERT_LABEL, "label-insert", Noop },
                { LFUN_INSET_OPTARG, "optional-insert", Noop },
                { LFUN_INSERT_BIBITEM, "bibitem-insert", Noop },
+               { LFUN_INSERT_CITATION, "citation-insert", Noop },
+               { LFUN_BIBDB_ADD, "bibtex-database-add", Noop },
+               { LFUN_BIBDB_DEL, "bibtex-database-del", Noop },
+               { LFUN_INSERT_LINE, "line-insert", Noop },
+               { LFUN_INSERT_PAGEBREAK, "pagebreak-insert", Noop },
                { LFUN_LANGUAGE, "language", Noop },
                { LFUN_LAYOUT, "layout", Noop },
                { LFUN_LAYOUT_PARAGRAPH, "layout-paragraph", ReadOnly },
                { LFUN_LAYOUT_TABULAR, "layout-tabular", Noop },
-               { LFUN_HOME, "line-begin", ReadOnly },
+               { LFUN_HOME, "line-begin", ReadOnly | NoUpdate},
                { LFUN_HOMESEL, "line-begin-select", ReadOnly },
                { LFUN_DELETE_LINE_FORWARD, "line-delete-forward", Noop },
-               { LFUN_END, "line-end", ReadOnly },
+               { LFUN_END, "line-end", ReadOnly | NoUpdate},
                { LFUN_ENDSEL, "line-end-select", ReadOnly },
 #if 0
                { LFUN_INSET_LIST, "list-insert", Noop },
@@ -222,16 +229,19 @@ void LyXAction::init()
                { LFUN_MENU_OPEN_BY_NAME, "menu-open", NoBuffer },
                { LFUN_MENU_SEPARATOR, "menu-separator-insert", Noop },
                { LFUN_META_FAKE, "meta-prefix", NoBuffer },
-               { LFUN_INSET_MINIPAGE, "minipage-insert", Noop },
                { LFUN_INSERT_BRANCH, "branch-insert", Noop },
+               { LFUN_INSERT_CHARSTYLE, "charstyle-insert", Noop },
                { LFUN_INSERT_NOTE, "note-insert", Noop },
+               { LFUN_INSERT_BOX, "box-insert", Noop },
                { LFUN_GOTONOTE, "note-next", ReadOnly },
-               { LFUN_INSET_TOGGLE, "inset-toggle", ReadOnly },
-               { LFUN_DOWN_PARAGRAPH, "paragraph-down", ReadOnly },
+               { LFUN_INSET_TOGGLE, "", ReadOnly },
+               { LFUN_NEXT_INSET_TOGGLE, "next-inset-toggle", ReadOnly },
+               { LFUN_ALL_INSETS_TOGGLE, "all-insets-toggle", ReadOnly },
+               { LFUN_DOWN_PARAGRAPH, "paragraph-down", ReadOnly | NoUpdate},
                { LFUN_DOWN_PARAGRAPHSEL, "paragraph-down-select", ReadOnly },
                { LFUN_GOTO_PARAGRAPH, "paragraph-goto", ReadOnly },
                { LFUN_PARAGRAPH_SPACING, "paragraph-spacing", Noop },
-               { LFUN_UP_PARAGRAPH, "paragraph-up", ReadOnly },
+               { LFUN_UP_PARAGRAPH, "paragraph-up", ReadOnly | NoUpdate},
                { LFUN_UP_PARAGRAPHSEL, "paragraph-up-select", ReadOnly },
                { LFUN_PASTE, "paste", Noop },
                { LFUN_SAVEPREFERENCES, "preferences-save", NoBuffer },
@@ -239,16 +249,16 @@ void LyXAction::init()
                { LFUN_QUOTE, "quote-insert", Noop },
                { LFUN_RECONFIGURE, "reconfigure", NoBuffer },
                { LFUN_REDO, "redo", Noop },
-               { LFUN_REF_GOTO, "reference-goto", ReadOnly },
+               { LFUN_LABEL_GOTO, "label-goto", ReadOnly },
                { LFUN_REFERENCE_GOTO, "reference-next", ReadOnly },
-               { LFUN_NEXT, "screen-down", ReadOnly },
+               { LFUN_NEXT, "screen-down", ReadOnly | NoUpdate},
                { LFUN_NEXTSEL, "screen-down-select", ReadOnly },
                { LFUN_SCREEN_FONT_UPDATE, "screen-font-update", NoBuffer },
                { LFUN_CENTER, "screen-recenter", ReadOnly },
-               { LFUN_PRIOR, "screen-up", ReadOnly },
+               { LFUN_PRIOR, "screen-up", ReadOnly | NoUpdate},
                { LFUN_PRIORSEL, "screen-up-select", ReadOnly },
                { LFUN_SCROLL_INSET, "inset-scroll", ReadOnly },
-               { LFUN_SELFINSERT, "self-insert", Noop },
+               { LFUN_SELFINSERT, "self-insert", SingleParUpdate },
                { LFUN_SPACE_INSERT, "space-insert", Noop },
                { LFUN_CHARATCURSOR, "server-char-after", ReadOnly },
                { LFUN_GETFONT, "server-get-font", ReadOnly },
@@ -272,7 +282,7 @@ void LyXAction::init()
                { LFUN_TOCVIEW, "toc-view", ReadOnly },
                { LFUN_TOGGLECURSORFOLLOW, "toggle-cursor-follows-scrollbar", ReadOnly },
                { LFUN_UNDO, "undo", Noop },
-               { LFUN_UP, "up", ReadOnly },
+               { LFUN_UP, "up", ReadOnly | NoUpdate},
                { LFUN_UPSEL, "up-select", ReadOnly },
                { LFUN_URL, "url-insert", Noop },
                { LFUN_VC_CHECKIN, "vc-check-in", ReadOnly },
@@ -280,14 +290,14 @@ void LyXAction::init()
                { LFUN_VC_REGISTER, "vc-register", ReadOnly },
                { LFUN_VC_REVERT, "vc-revert", ReadOnly },
                { LFUN_VC_UNDO, "vc-undo-last", ReadOnly },
-               { LFUN_WORDLEFT, "word-backward", ReadOnly },
+               { LFUN_WORDLEFT, "word-backward", ReadOnly | NoUpdate},
                { LFUN_WORDLEFTSEL, "word-backward-select", ReadOnly },
                { LFUN_CAPITALIZE_WORD, "word-capitalize", Noop },
                { LFUN_DELETE_WORD_BACKWARD, "word-delete-backward", Noop },
                { LFUN_DELETE_WORD_FORWARD, "word-delete-forward", Noop },
                { LFUN_WORDFINDBACKWARD, "word-find-backward", ReadOnly },
                { LFUN_WORDFINDFORWARD, "word-find-forward", ReadOnly },
-               { LFUN_WORDRIGHT, "word-forward", ReadOnly },
+               { LFUN_WORDRIGHT, "word-forward", ReadOnly | NoUpdate},
                { LFUN_WORDRIGHTSEL, "word-forward-select", ReadOnly },
                { LFUN_LOWCASE_WORD, "word-lowcase", Noop },
                { LFUN_WORDSEL, "word-select", ReadOnly },
@@ -296,9 +306,9 @@ void LyXAction::init()
                { LFUN_TRANSPOSE_CHARS, "chars-transpose", Noop },
                { LFUN_FLOAT_LIST, "float-list", Noop },
                { LFUN_ESCAPE, "escape", ReadOnly },
-               { LFUN_FORKS_KILL, "kill-forks", NoBuffer },
                { LFUN_TOOLTIPS_TOGGLE, "toggle-tooltips", NoBuffer },
                { LFUN_TRACK_CHANGES, "track-changes", Noop },
+               { LFUN_OUTPUT_CHANGES, "output-changes", Noop },
                { LFUN_MERGE_CHANGES, "merge-changes", Noop },
                { LFUN_ACCEPT_CHANGE, "accept-change", Noop },
                { LFUN_REJECT_CHANGE, "reject-change", Noop },
@@ -307,7 +317,7 @@ void LyXAction::init()
                { LFUN_DIALOG_SHOW, "dialog-show", NoBuffer },
                { LFUN_DIALOG_SHOW_NEW_INSET, "dialog-show-new-inset", Noop },
                { LFUN_DIALOG_SHOW_NEXT_INSET, "dialog-show-next-inset", Noop },
-               { LFUN_DIALOG_UPDATE, "dialog-update", Noop },
+               { LFUN_DIALOG_UPDATE, "dialog-update", NoBuffer },
                { LFUN_DIALOG_HIDE, "dialog-hide", Noop },
                { LFUN_DIALOG_DISCONNECT_INSET, "dialog-disconnect-inset", Noop },
                { LFUN_INSET_APPLY, "inset-apply", Noop },
@@ -319,6 +329,29 @@ void LyXAction::init()
                { LFUN_PARAGRAPH_APPLY, "paragraph-params-apply", Noop },
                { LFUN_PARAGRAPH_UPDATE, "", Noop },
                { LFUN_EXTERNAL_EDIT, "external-edit", Noop },
+               { LFUN_GRAPHICS_EDIT, "graphics-edit", Noop },
+               { LFUN_REPEAT, "repeat", NoBuffer },
+               { LFUN_WORD_FIND, "word-find", ReadOnly },
+               { LFUN_WORD_REPLACE, "word-replace", Noop },
+               { LFUN_LANGUAGE_BUFFER, "buffer-language", Noop },
+               { LFUN_TEXTCLASS_APPLY, "textclass-apply", Noop },
+               { LFUN_TEXTCLASS_LOAD, "textclass-load", Noop },
+               { LFUN_SAVE_AS_DEFAULT, "buffer-save-as-default", Noop },
+               { LFUN_BUFFERPARAMS_APPLY, "buffer-params-apply", Noop },
+               { LFUN_LYXRC_APPLY, "lyxrc-apply", NoBuffer },
+               { LFUN_INSET_REFRESH, "", Noop },
+               { LFUN_NEXTBUFFER, "buffer-next", ReadOnly },
+               { LFUN_PREVIOUSBUFFER, "buffer-previous", ReadOnly },
+               { LFUN_WORDS_COUNT, "words-count", ReadOnly },
+               { LFUN_FINISHED_RIGHT, "", ReadOnly },
+               { LFUN_FINISHED_LEFT, "", ReadOnly },
+               { LFUN_FINISHED_UP, "", ReadOnly },
+               { LFUN_FINISHED_DOWN, "", ReadOnly },
+               { LFUN_MOUSE_PRESS, "", ReadOnly },
+               { LFUN_MOUSE_MOTION, "", ReadOnly },
+               { LFUN_MOUSE_RELEASE, "", ReadOnly },
+               { LFUN_MOUSE_DOUBLE, "", ReadOnly },
+               { LFUN_MOUSE_TRIPLE, "", ReadOnly },
                { LFUN_NOACTION, "", Noop }
        };
 
@@ -366,7 +399,10 @@ bool LyXAction::funcHasFlag(kb_action action,
 {
        info_map::const_iterator ici = lyx_info_map.find(action);
 
-       BOOST_ASSERT(ici != lyx_info_map.end());
+       if (ici == lyx_info_map.end()) {
+               lyxerr << "action: " << action << " is not known." << endl;
+               BOOST_ASSERT(false);
+       }
 
        return ici->second.attrib & flag;
 }