]> git.lyx.org Git - lyx.git/blobdiff - src/bufferparams.C
more cursor dispatch
[lyx.git] / src / bufferparams.C
index 898412419ae7d566f46cfa754c4234eae7f2ce81..0f119fe5731b17ae4706c195b7e08afb92146062 100644 (file)
 #include "gettext.h"
 #include "language.h"
 #include "LaTeXFeatures.h"
-#include "latexrunparams.h"
+#include "LColor.h"
 #include "lyxlex.h"
 #include "lyxrc.h"
 #include "lyxtextclasslist.h"
+#include "outputparams.h"
 #include "tex-strings.h"
 #include "Spacing.h"
 #include "texrow.h"
@@ -48,7 +49,7 @@ using lyx::support::rtrim;
 using lyx::support::tokenPos;
 
 using std::endl;
-
+using std::string;
 using std::istringstream;
 using std::ostream;
 using std::ostringstream;
@@ -79,6 +80,19 @@ BufferParams::Impl::Impl()
 }
 
 
+BufferParams::Impl *
+BufferParams::MemoryTraits::clone(BufferParams::Impl const * ptr)
+{
+       return new BufferParams::Impl(*ptr);
+}
+
+
+void BufferParams::MemoryTraits::destroy(BufferParams::Impl * ptr)
+{
+       delete ptr;
+}
+
+
 BufferParams::BufferParams()
        : // Initialize textclass to point to article. if `first' is
          // true in the returned pair, then `second' is the textclass
@@ -319,25 +333,27 @@ string const BufferParams::readToken(LyXLex & lex, string const & token)
                        string const tok = lex.getString();
                        if (tok == "\\end_branch")
                                break;
+                       Branch * branch_ptr = branchlist().find(branch);
                        if (tok == "\\selected") {
                                lex.nextToken();
-                               branchlist().setSelected(branch, lex.getInteger());
+                               if (branch_ptr)
+                                       branch_ptr->setSelected(lex.getInteger());
                        }
                        // not yet operational
                        if (tok == "\\color") {
                                lex.nextToken();
                                string color = lex.getString();
-                               branchlist().setColor(branch, color);
+                               if (branch_ptr)
+                                       branch_ptr->setColor(color);
                                // Update also the LColor table:
                                if (color == "none")
                                        color = lcolor.getX11Name(LColor::background);
-                               lcolor.fill(static_cast<LColor::color>(lcolor.size()),
-                                               branch, color);
+                               lcolor.setColor(lcolor.getFromLyXName(branch), color);
                        }
                }
        } else if (token == "\\author") {
                lex.nextToken();
-               istringstream ss(STRCONV(lex.getString()));
+               istringstream ss(lex.getString());
                Author a;
                ss >> a;
                author_map.push_back(pimpl_->authorlist.record(a));
@@ -700,7 +716,7 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features,
                clsoptions << options << ',';
        }
 
-       string strOptions(STRCONV(clsoptions.str()));
+       string strOptions(clsoptions.str());
        if (!strOptions.empty()) {
                strOptions = rtrim(strOptions, ",");
                os << '[' << strOptions << ']';
@@ -977,7 +993,7 @@ bool BufferParams::writeLaTeX(ostream & os, LaTeXFeatures & features,
                if (!lyxrc.language_global_options
                    && tmp == "\\usepackage{babel}")
                        tmp = string("\\usepackage[") +
-                               STRCONV(language_options.str()) +
+                               language_options.str() +
                                "]{babel}";
                lyxpreamble += tmp + "\n";
                lyxpreamble += features.getBabelOptions();