]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
Add commented-out code that might prove useful one day
[lyx.git] / src / Text3.cpp
index f3d4d61a24e9d71d9b0078430505a026c69078fc..148b1d4f8bb53ded73420b51af2ecc37e19ebcde 100644 (file)
@@ -58,6 +58,7 @@
 #include "insets/InsetGraphics.h"
 #include "insets/InsetGraphicsParams.h"
 #include "insets/InsetInfo.h"
+#include "insets/InsetIndexMacro.h"
 #include "insets/InsetIPAMacro.h"
 #include "insets/InsetNewline.h"
 #include "insets/InsetQuotes.h"
@@ -749,7 +750,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.selection())
                        cutSelection(cur, false);
                else
-                       deleteWordForward(cur, cmd.getArg(0) == "force");
+                       deleteWordForward(cur, cmd.getArg(0) != "confirm");
                finishChange(cur, false);
                break;
 
@@ -757,7 +758,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                if (cur.selection())
                        cutSelection(cur, false);
                else
-                       deleteWordBackward(cur, cmd.getArg(0) == "force");
+                       deleteWordBackward(cur, cmd.getArg(0) != "confirm");
                finishChange(cur, false);
                break;
 
@@ -914,12 +915,14 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_UP:
        case LFUN_DOWN: {
                // stop/start the selection
-               bool const select = cmd.action() == LFUN_DOWN_SELECT
-                                       || cmd.action() == LFUN_UP_SELECT;
+               bool select = cmd.action() == LFUN_DOWN_SELECT ||
+                       cmd.action() == LFUN_UP_SELECT;
+
                // move cursor up/down
-               bool const up = cmd.action() == LFUN_UP_SELECT || cmd.action() == LFUN_UP;
+               bool up = cmd.action() == LFUN_UP_SELECT || cmd.action() == LFUN_UP;
+               bool const atFirstOrLastRow = cur.atFirstOrLastRow(up);
 
-               if (!cur.atFirstOrLastRow(up)) {
+               if (!atFirstOrLastRow) {
                        needsUpdate |= cur.selHandle(select);
                        cur.upDownInText(up, needsUpdate);
                        needsUpdate |= cur.beforeDispatchCursor().inMathed();
@@ -935,35 +938,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                                        cur.forceBufferUpdate();
                                break;
                        }
-                       needsUpdate |= cur.selHandle(select);
-                       bool const can_move = cur.upDownInText(up, needsUpdate);
-                       // if the cursor can be moved up or down at an upper level,
-                       // delegate the dispatch to next level. Otherwise, we are
-                       // done.
-                       if (can_move) {
-                               cmd = FuncRequest(up ? LFUN_FINISHED_UP : LFUN_FINISHED_DOWN);
-                               cur.undispatched();
-                       }
-               }
-
-               break;
-       }
-
-       case LFUN_FINISHED_UP:
-       case LFUN_FINISHED_DOWN: {
-               // move cursor up/down
-               bool const up = cmd.action() == LFUN_FINISHED_UP;
 
-               if (!cur.atFirstOrLastRow(up)) {
+                       // if the cursor cannot be moved up or down do not remove
+                       // the selection right now, but wait for the next dispatch.
+                       if (select)
+                               needsUpdate |= cur.selHandle(select);
                        cur.upDownInText(up, needsUpdate);
-                       needsUpdate |= cur.beforeDispatchCursor().inMathed();
-               } else {
-                       bool const can_move = cur.upDownInText(up, needsUpdate);
-                       // if the cursor can be moved up or down and we are not
-                       // moving cusor at top level, wait for the next dispatch.
-                       // Otherwise, we are done.
-                       if (can_move)
-                               cur.undispatched();
+                       cur.undispatched();
                }
 
                break;
@@ -1244,7 +1225,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        if (cur.pos() == cur.paragraph().size())
                                // Par boundary, force full-screen update
                                singleParUpdate = false;
-                       else if (cmd.getArg(0) != "force" && cur.confirmDeletion()) {
+                       else if (cmd.getArg(0) == "confirm" && cur.confirmDeletion()) {
                                cur.resetAnchor();
                                cur.selection(true);
                                cur.posForward();
@@ -1269,7 +1250,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                                // Par boundary, full-screen update
                                if (par_boundary)
                                        singleParUpdate = false;
-                               else if (cmd.getArg(0) != "force" && cur.confirmDeletion(true)) {
+                               else if (cmd.getArg(0) == "confirm" && cur.confirmDeletion(true)) {
                                        cur.resetAnchor();
                                        cur.selection(true);
                                        cur.posBackward();
@@ -2110,6 +2091,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_BRANCH_INSERT:
        case LFUN_PHANTOM_INSERT:
        case LFUN_ERT_INSERT:
+       case LFUN_INDEXMACRO_INSERT:
        case LFUN_LISTING_INSERT:
        case LFUN_MARGINALNOTE_INSERT:
        case LFUN_ARGUMENT_INSERT:
@@ -2529,7 +2511,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                string const lang_arg = cmd.getArg(0);
                bool const reset = (lang_arg.empty() || lang_arg == "reset");
                Language const * lang =
-                       reset ? reset_language
+                       reset ? cur.bv().buffer().params().language
                              : languages.getLanguage(lang_arg);
                // we allow reset_language, which is 0, but only if it
                // was requested via empty or "reset" arg.
@@ -3182,7 +3164,10 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                break;
        case LFUN_FLEX_INSERT: {
                code = FLEX_CODE;
-               docstring s = from_ascii("Flex:") + from_utf8(cmd.getArg(0));
+               docstring s = from_utf8(cmd.getArg(0));
+               // Prepend "Flex:" prefix if not there
+               if (!prefixIs(s, from_ascii("Flex:")))
+                       s = from_ascii("Flex:") + s;
                if (!cur.buffer()->params().documentClass().hasInsetLayout(s))
                        enable = false;
                else {
@@ -3292,6 +3277,14 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                }
                code = HYPERLINK_CODE;
                break;
+       case LFUN_INDEXMACRO_INSERT: {
+               string const arg = cmd.getArg(0);
+               if (arg == "sortkey")
+                       code = INDEXMACRO_SORTKEY_CODE;
+               else
+                       code = INDEXMACRO_CODE;
+               break;
+       }
        case LFUN_IPAMACRO_INSERT: {
                string const arg = cmd.getArg(0);
                if (arg == "deco")