]> git.lyx.org Git - lyx.git/blobdiff - src/Text3.cpp
That didn't really work. So revert to old CSS for gray notes.
[lyx.git] / src / Text3.cpp
index be9a189029a679b6d41991561737133746c38a1a..1f9e355812da1a59d29fd03e8564b9fe39c843e7 100644 (file)
@@ -48,9 +48,7 @@
 
 #include "frontends/Application.h"
 #include "frontends/Clipboard.h"
-#include "frontends/LyXView.h"
 #include "frontends/Selection.h"
-#include "frontends/WorkArea.h"
 
 #include "insets/InsetCollapsable.h"
 #include "insets/InsetCommand.h"
@@ -143,7 +141,7 @@ static void mathDispatch(Cursor & cur, FuncRequest const & cmd, bool display)
 #ifdef ENABLE_ASSERTIONS
                const int old_pos = cur.pos();
 #endif
-               cur.insert(new InsetMathHull(hullSimple));
+               cur.insert(new InsetMathHull(cur.buffer(), hullSimple));
 #ifdef ENABLE_ASSERTIONS
                LASSERT(old_pos == cur.pos(), /**/);
 #endif
@@ -167,7 +165,7 @@ static void mathDispatch(Cursor & cur, FuncRequest const & cmd, bool display)
                                && sel.find(from_ascii("\\newlyxcommand")) == string::npos
                                && sel.find(from_ascii("\\def")) == string::npos)
                {
-                       InsetMathHull * formula = new InsetMathHull;
+                       InsetMathHull * formula = new InsetMathHull(cur.buffer());
                        string const selstr = to_utf8(sel);
                        istringstream is(selstr);
                        Lexer lex;
@@ -186,7 +184,7 @@ static void mathDispatch(Cursor & cur, FuncRequest const & cmd, bool display)
                        } else
                                cur.insert(formula);
                } else {
-                       cur.insert(new MathMacroTemplate(sel));
+                       cur.insert(new MathMacroTemplate(cur.buffer(), sel));
                }
        }
        if (valid)
@@ -209,7 +207,7 @@ void regexpDispatch(Cursor & cur, FuncRequest const & cmd)
        // It may happen that sel is empty but there is a selection
        replaceSelection(cur);
 
-       cur.insert(new InsetMathHull(hullRegexp));
+       cur.insert(new InsetMathHull(cur.buffer(), hullRegexp));
        cur.nextInset()->edit(cur, true);
        cur.niceInsert(sel);
 
@@ -231,7 +229,7 @@ static bool doInsertInset(Cursor & cur, Text * text,
 {
        Buffer & buffer = cur.bv().buffer();
        BufferParams const & bparams = buffer.params();
-       Inset * inset = createInset(buffer, cmd);
+       Inset * inset = createInset(&buffer, cmd);
        if (!inset)
                return false;
 
@@ -1053,13 +1051,13 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                // before inserting into the document. See bug #5626.
                bool loaded = bv->buffer().isFullyLoaded();
                bv->buffer().setFullyLoaded(false);
-               Inset * inset = createInset(bv->buffer(), cmd);
+               Inset * inset = createInset(&bv->buffer(), cmd);
                bv->buffer().setFullyLoaded(loaded);
 
                if (inset) {
                        // FIXME (Abdel 01/02/2006):
                        // What follows would be a partial fix for bug 2154:
-                       //   http://bugzilla.lyx.org/show_bug.cgi?id=2154
+                       //   http://www.lyx.org/trac/ticket/2154
                        // This automatically put the label inset _after_ a
                        // numbered section. It should be possible to extend the mechanism
                        // to any kind of LateX environement.
@@ -1096,26 +1094,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        }
 
        case LFUN_INSET_DISSOLVE: {
-               // first, try if there's an inset at cursor
-               // FIXME: this first part should be moved to
-               // a LFUN_NEXT_INSET_DISSOLVE, or be called via
-               // some generic "next-inset inset-dissolve"
-               Inset * inset = cur.nextInset();
-               if (inset && inset->isActive()) {
-                       Cursor tmpcur = cur;
-                       tmpcur.pushBackward(*inset);
-                       inset->dispatch(tmpcur, cmd);
-                       if (tmpcur.result().dispatched()) {
-                               cur.dispatched();
-                               break;
-                       }
-               }
-               // if it did not work, try the underlying inset
-               if (dissolveInset(cur)) {
+               if (dissolveInset(cur))
                        needsUpdate = true;
-                       break;
-               }
-               // if it did not work, do nothing.
                break;
        }
 
@@ -1388,7 +1368,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        else
                                c = par.getChar(pos - 1);
                        string arg = to_utf8(cmd.argument());
-                       cur.insert(new InsetQuotes(bv->buffer(), c, (arg == "single")
+                       cur.insert(new InsetQuotes(cur.buffer(), c, (arg == "single")
                                ? InsetQuotes::SingleQuotes : InsetQuotes::DoubleQuotes));
                        cur.posForward();
                }
@@ -1615,9 +1595,9 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        docstring ds = cur.selectionAsString(false);
                        cutSelection(cur, true, false);
                        FuncRequest cmd0(cmd, ds);
-                       inset = createInset(cur.bv().buffer(), cmd0);
+                       inset = createInset(cur.buffer(), cmd0);
                } else {
-                       inset = createInset(cur.bv().buffer(), cmd);
+                       inset = createInset(cur.buffer(), cmd);
                }
                if (!inset)
                        break;
@@ -1773,7 +1753,8 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        MacroType type = MacroTypeNewcommand;
                        if (s2 == "def")
                                type = MacroTypeDef;
-                       MathMacroTemplate * inset = new MathMacroTemplate(from_utf8(token(s, ' ', 0)), nargs, false, type);
+                       MathMacroTemplate * inset = new MathMacroTemplate(cur.buffer(),
+                               from_utf8(token(s, ' ', 0)), nargs, false, type);
                        inset->setBuffer(bv->buffer());
                        insertInset(cur, inset);
 
@@ -1801,7 +1782,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_MATH_BIGDELIM: {
                cur.recordUndo();
                cap::replaceSelection(cur);
-               cur.insert(new InsetMathHull(hullSimple));
+               cur.insert(new InsetMathHull(cur.buffer(), hullSimple));
                checkAndActivateInset(cur, true);
                LASSERT(cur.inMathed(), /**/);
                cur.dispatch(cmd);
@@ -1998,7 +1979,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
        case LFUN_ACCENT_HUNGARIAN_UMLAUT:
        case LFUN_ACCENT_CIRCLE:
        case LFUN_ACCENT_OGONEK:
-               theLyXFunc().handleKeyFunc(cmd.action);
+               theApp()->handleKeyFunc(cmd.action);
                if (!cmd.argument().empty())
                        // FIXME: Are all these characters encoded in one byte in utf8?
                        bv->translateAndInsert(cmd.argument()[0], this, cur);
@@ -2027,7 +2008,7 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
                        setParagraphs(cur, p);
                        // FIXME This should be simplified when InsetFloatList takes a
                        // Buffer in its constructor.
-                       InsetFloatList * ifl = new InsetFloatList(to_utf8(cmd.argument()));
+                       InsetFloatList * ifl = new InsetFloatList(cur.buffer(), to_utf8(cmd.argument()));
                        ifl->setBuffer(bv->buffer());
                        insertInset(cur, ifl);
                        cur.posForward();
@@ -2524,21 +2505,6 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
                enable = cur.pit() < cur.lastpit() && !cur.selection();
                break;
 
-       case LFUN_INSET_DISSOLVE:
-               if (!cmd.argument().empty()) {
-                       InsetLayout const & il = cur.inset().getLayout();
-                       InsetLayout::InsetLyXType const type = 
-                                       translateLyXType(to_utf8(cmd.argument()));
-                       enable = cur.inset().lyxCode() == FLEX_CODE
-                                && il.lyxtype() == type;
-               } else {
-                       enable = ((!isMainText()
-                                     && cur.inset().nargs() == 1)
-                                 || (cur.nextInset()
-                                     && cur.nextInset()->nargs() == 1));
-               }
-               break;
-
        case LFUN_CHANGE_ACCEPT:
        case LFUN_CHANGE_REJECT:
                // In principle, these LFUNs should only be enabled if there
@@ -2598,9 +2564,11 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
 
        case LFUN_LANGUAGE:
                enable = !cur.inset().getLayout().isPassThru();
+               break;
 
        case LFUN_BREAK_PARAGRAPH:
                enable = cur.inset().getLayout().isMultiPar();
+               break;
 
        case LFUN_WORD_DELETE_FORWARD:
        case LFUN_WORD_DELETE_BACKWARD:
@@ -2718,10 +2686,6 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_ACCENT_UMLAUT:
        case LFUN_ACCENT_UNDERBAR:
        case LFUN_ACCENT_UNDERDOT:
-       case LFUN_APPENDIX:
-       case LFUN_DEPTH_DECREMENT:
-       case LFUN_DEPTH_INCREMENT:
-       case LFUN_FILE_INSERT:
        case LFUN_FONT_BOLD:
        case LFUN_FONT_BOLDSYMBOL:
        case LFUN_FONT_TYPEWRITER:
@@ -2738,15 +2702,6 @@ bool Text::getStatus(Cursor & cur, FuncRequest const & cmd,
        case LFUN_FONT_STRIKEOUT:
        case LFUN_FONT_UULINE:
        case LFUN_FONT_UWAVE:
-       case LFUN_LABEL_GOTO:
-       case LFUN_LAYOUT_TABULAR:
-       case LFUN_MENU_OPEN:
-       case LFUN_NOACTION:
-       case LFUN_NOTE_NEXT:
-       case LFUN_REFERENCE_NEXT:
-       case LFUN_SERVER_GOTO_FILE_ROW:
-       case LFUN_SERVER_NOTIFY:
-       case LFUN_SERVER_SET_XY:
        case LFUN_TEXTSTYLE_APPLY:
        case LFUN_TEXTSTYLE_UPDATE:
                if (cur.inset().getLayout().isPassThru())