]> git.lyx.org Git - lyx.git/blobdiff - src/factory.cpp
fix "make check" with gcc 4.3
[lyx.git] / src / factory.cpp
index 64af45381280eda2aa45c81daa6f186e8b286782..e390b228c81e6f1e2d2a612983b1481dd53e45e7 100644 (file)
@@ -3,7 +3,7 @@
  * This file is part of LyX, the document processor.
  * Licence details can be found in the file COPYING.
  *
- * \author André Pönitz
+ * \author André Pönitz
  *
  * Full author contact details are available in file CREDITS.
  */
@@ -44,6 +44,7 @@
 #include "insets/InsetNote.h"
 #include "insets/InsetBox.h"
 #include "insets/InsetBranch.h"
+#include "insets/InsetPhantom.h"
 #include "insets/InsetOptArg.h"
 #include "insets/InsetNewpage.h"
 #include "insets/InsetRef.h"
@@ -126,6 +127,13 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                        return new InsetBranch(buf, InsetBranchParams(arg));
                }
 
+               case LFUN_PHANTOM_INSERT: {
+                       string arg = cmd.getArg(0);
+                       if (arg.empty())
+                               arg = "Phantom";
+                       return new InsetPhantom(buf, arg);
+               }
+
                case LFUN_ERT_INSERT:
                        return new InsetERT(buf);
 
@@ -141,9 +149,6 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                case LFUN_OPTIONAL_INSERT:
                        return new InsetOptArg(buf);
 
-               case LFUN_BIBITEM_INSERT:
-                       return new InsetBibitem(buf, InsetCommandParams(BIBITEM_CODE));
-
                case LFUN_FLOAT_INSERT: {
                        // check if the float type exists
                        string const argument = to_utf8(cmd.argument());
@@ -323,7 +328,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                                return 0;
                        
                        }
-                       } //end LFUN_INSET_INSERT
+               } //end LFUN_INSET_INSERT
 
                case LFUN_SPACE_INSERT: {
                        string const name = cmd.getArg(0);
@@ -333,12 +338,17 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                                break;
                        }
                        InsetSpaceParams isp;
+                       // The tests for isp.math might be disabled after a file format change
                        if (name == "normal")
                                isp.kind = InsetSpaceParams::NORMAL;
                        else if (name == "protected")
                                isp.kind = InsetSpaceParams::PROTECTED;
                        else if (name == "thin")
                                isp.kind = InsetSpaceParams::THIN;
+                       else if (isp.math && name == "med")
+                               isp.kind = InsetSpaceParams::MEDIUM;
+                       else if (isp.math && name == "thick")
+                               isp.kind = InsetSpaceParams::THICK;
                        else if (name == "quad")
                                isp.kind = InsetSpaceParams::QUAD;
                        else if (name == "qquad")
@@ -349,6 +359,10 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                                isp.kind = InsetSpaceParams::ENSKIP;
                        else if (name == "negthinspace")
                                isp.kind = InsetSpaceParams::NEGTHIN;
+                       else if (isp.math && name == "negmedspace")
+                               isp.kind = InsetSpaceParams::NEGMEDIUM;
+                       else if (isp.math && name == "negthickspace")
+                               isp.kind = InsetSpaceParams::NEGTHICK;
                        else if (name == "hfill")
                                isp.kind = InsetSpaceParams::HFILL;
                        else if (name == "hfill*")
@@ -391,7 +405,7 @@ Inset * createInsetHelper(Buffer & buf, FuncRequest const & cmd)
                if (message.type_ == ErrorException) {
                        // This should never happen!
                        Alert::error(message.title_, message.details_);
-                       LyX::cref().exit(1);
+                       lyx_exit(1);
                } else if (message.type_ == WarningException) {
                        Alert::warning(message.title_, message.details_);
                        return 0;
@@ -498,7 +512,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                // can be translated to inset codes using insetCode(). And the insets'
                // write() routines should use insetName() rather than hardcoding it.
                if (tmptok == "Quotes") {
-                       inset.reset(new InsetQuotes);
+                       inset.reset(new InsetQuotes(buf));
                } else if (tmptok == "External") {
                        inset.reset(new InsetExternal(const_cast<Buffer &>(buf)));
                } else if (tmptok == "FormulaMacro") {
@@ -512,11 +526,13 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                } else if (tmptok == "Box") {
                        inset.reset(new InsetBox(buf, tmptok));
                } else if (tmptok == "Flex") {
-                       lex.next();
+                       lex.eatLine();
                        string s = lex.getString();
                        inset.reset(new InsetFlex(buf, s));
                } else if (tmptok == "Branch") {
                        inset.reset(new InsetBranch(buf, InsetBranchParams()));
+               } else if (tmptok == "Phantom") {
+                       inset.reset(new InsetPhantom(buf, tmptok));
                } else if (tmptok == "ERT") {
                        inset.reset(new InsetERT(buf));
                } else if (tmptok == "listings") {
@@ -524,7 +540,7 @@ Inset * readInset(Lexer & lex, Buffer const & buf)
                } else if (tmptok == "space") {
                        inset.reset(new InsetSpace);
                } else if (tmptok == "Tabular") {
-                       inset.reset(new InsetTabular(buf));
+                       inset.reset(new InsetTabular(const_cast<Buffer &>(buf)));
                } else if (tmptok == "Text") {
                        inset.reset(new InsetText(buf));
                } else if (tmptok == "VSpace") {