]> git.lyx.org Git - lyx.git/blobdiff - src/text3.C
Partial fix bug 2092: branches not propagated to child documents
[lyx.git] / src / text3.C
index 6497505a7e0b46cc626d0a60bb4a9efd7fba5fe9..f9e37c61311ceb128de9a96a01c29b0deb66d073 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "lyxtext.h"
 
+#include "BranchList.h"
 #include "FloatList.h"
 #include "FuncStatus.h"
 #include "buffer.h"
@@ -775,11 +776,6 @@ void LyXText::dispatch(LCursor & cur, FuncRequest & cmd)
                break;
        }
 
-       case LFUN_KEYMAP_TOGGLE:
-               cur.clearSelection();
-               bv->switchKeyMap();
-               break;
-
        case LFUN_SPACE_INSERT:
                if (cur.paragraph().layout()->free_spacing)
                        insertChar(cur, ' ');
@@ -1566,8 +1562,10 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                        FuncStatus & flag) const
 {
        BOOST_ASSERT(cur.text() == this);
+
        LyXFont const & font = real_current_font;
        bool enable = true;
+       InsetBase::Code code = InsetBase::NO_CODE;
 
        switch (cmd.action) {
 
@@ -1579,11 +1577,6 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                enable = changeDepthAllowed(cur, INC_DEPTH);
                break;
 
-       case LFUN_INSET_OPTARG:
-               enable = numberOfOptArgs(cur.paragraph())
-                       < cur.paragraph().layout()->optionalargs;
-               break;
-
        case LFUN_APPENDIX:
                flag.setOnOff(cur.paragraph().params().startOfAppendix());
                return true;
@@ -1592,10 +1585,6 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                enable = (cur.paragraph().layout()->labeltype == LABEL_BIBLIO);
                break;
 
-#if 0
-       // the functions which insert insets
-       InsetBase::Code code = InsetBase::NO_CODE;
-       switch (cmd.action) {
        case LFUN_DIALOG_SHOW_NEW_INSET:
                if (cmd.argument == "bibitem")
                        code = InsetBase::BIBITEM_CODE;
@@ -1673,7 +1662,7 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                break;
        case LFUN_INSERT_CHARSTYLE:
                code = InsetBase::CHARSTYLE_CODE;
-               if (buf->params().getLyXTextClass().charstyles().empty())
+               if (cur.buffer().params().getLyXTextClass().charstyles().empty())
                        enable = false;
                break;
        case LFUN_INSERT_BOX:
@@ -1681,7 +1670,7 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                break;
        case LFUN_INSERT_BRANCH:
                code = InsetBase::BRANCH_CODE;
-               if (buf->params().branchlist().empty())
+               if (cur.buffer().getMasterBuffer()->params().branchlist().empty())
                        enable = false;
                break;
        case LFUN_INSERT_LABEL:
@@ -1689,6 +1678,8 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                break;
        case LFUN_INSET_OPTARG:
                code = InsetBase::OPTARG_CODE;
+               enable = numberOfOptArgs(cur.paragraph())
+                       < cur.paragraph().layout()->optionalargs;
                break;
        case LFUN_ENVIRONMENT_INSERT:
                code = InsetBase::BOX_CODE;
@@ -1723,6 +1714,11 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                if (cur.inTexted())
                        code = InsetBase::SPACE_CODE;
                break;
+
+#ifdef WITH_WARNINGS
+#warning This LFUN is not used anymore and should be nuked (JMarc 29/10/2005)
+#endif
+#if 0
        case LFUN_INSET_DIALOG_SHOW: {
                InsetBase * inset = cur.nextInset();
                enable = inset;
@@ -1736,37 +1732,8 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
                }
                break;
        }
-       default:
-               break;
-       }
-
-       if (code != InsetBase::NO_CODE
-                       && (cur.empty() || !cur.inset().insetAllowed(code)))
-               enable = false;
-
 #endif
 
-       case LFUN_DIALOG_SHOW_NEW_INSET:
-       case LFUN_INSET_ERT:
-       case LFUN_INSERT_BOX:
-       case LFUN_INSERT_BRANCH:
-       case LFUN_ENVIRONMENT_INSERT:
-       case LFUN_INDEX_INSERT:
-       case LFUN_INDEX_PRINT:
-       case LFUN_TOC_INSERT:
-       case LFUN_HTMLURL:
-       case LFUN_URL:
-       case LFUN_QUOTE:
-       case LFUN_HYPHENATION:
-       case LFUN_LIGATURE_BREAK:
-       case LFUN_HFILL:
-       case LFUN_MENU_SEPARATOR:
-       case LFUN_LDOTS:
-       case LFUN_END_OF_SENTENCE:
-       case LFUN_SPACE_INSERT:
-       case LFUN_INSET_DIALOG_SHOW:
-               break;
-
        case LFUN_INSET_MODIFY:
                // We need to disable this, because we may get called for a
                // tabular cell via
@@ -1853,15 +1820,6 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        case LFUN_PASTESELECTION:
        case LFUN_DATE_INSERT:
        case LFUN_SELFINSERT:
-       case LFUN_INSERT_LABEL:
-       case LFUN_INSERT_NOTE:
-       case LFUN_INSERT_CHARSTYLE:
-       case LFUN_INSET_FLOAT:
-       case LFUN_INSET_FOOTNOTE:
-       case LFUN_INSET_MARGINAL:
-       case LFUN_INSET_WIDE_FLOAT:
-       case LFUN_INSET_WRAP:
-       case LFUN_TABULAR_INSERT:
        case LFUN_INSERT_LINE:
        case LFUN_INSERT_PAGEBREAK:
        case LFUN_MATH_DISPLAY:
@@ -1898,13 +1856,11 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        case LFUN_HUNG_UMLAUT:
        case LFUN_CIRCLE:
        case LFUN_OGONEK:
-       case LFUN_FLOAT_LIST:
        case LFUN_ACCEPT_CHANGE:
        case LFUN_REJECT_CHANGE:
        case LFUN_THESAURUS_ENTRY:
        case LFUN_PARAGRAPH_APPLY:
        case LFUN_ESCAPE:
-       case LFUN_KEYMAP_TOGGLE:
        case LFUN_ENDBUF:
        case LFUN_BEGINNINGBUF:
        case LFUN_BEGINNINGBUFSEL:
@@ -1916,6 +1872,11 @@ bool LyXText::getStatus(LCursor & cur, FuncRequest const & cmd,
        default:
                return false;
        }
+
+       if (code != InsetBase::NO_CODE
+           && (cur.empty() || !cur.inset().insetAllowed(code)))
+               enable = false;
+
        flag.enabled(enable);
        return true;
 }