]> git.lyx.org Git - lyx.git/blobdiff - src/BufferParams.cpp
make frontend::Application a bit slimmer
[lyx.git] / src / BufferParams.cpp
index 1c4281d358bef4cbd1716b1b503734be4c43b976..a713f84c52a74bfec1853b65c883c76c8500f224 100644 (file)
@@ -21,6 +21,7 @@
 #include "BranchList.h"
 #include "buffer_funcs.h"
 #include "Bullet.h"
+#include "Color.h"
 #include "debug.h"
 #include "Encoding.h"
 #include "gettext.h"
@@ -28,7 +29,6 @@
 #include "LaTeXFeatures.h"
 #include "Messages.h"
 #include "ModuleList.h"
-#include "Color.h"
 #include "Font.h"
 #include "Lexer.h"
 #include "LyXRC.h"
 #include "insets/InsetListingsParams.h"
 
 #include "support/convert.h"
+#include "support/docstream.h"
 #include "support/filetools.h"
 #include "support/Translator.h"
 #include "support/lstrings.h"
 
-#include <boost/array.hpp>
-
 #include <algorithm>
 #include <sstream>
 
@@ -196,13 +195,13 @@ PaperOrientationTranslator const & paperorientationtranslator()
 
 
 // Page sides
-typedef Translator<int, TextClass::PageSides> SidesTranslator;
+typedef Translator<int, PageSides> SidesTranslator;
 
 
 SidesTranslator const init_sidestranslator()
 {
-       SidesTranslator translator(1, TextClass::OneSide);
-       translator.addPair(2, TextClass::TwoSides);
+       SidesTranslator translator(1, OneSide);
+       translator.addPair(2, TwoSides);
        return translator;
 }
 
@@ -287,8 +286,8 @@ public:
 
        AuthorList authorlist;
        BranchList branchlist;
-       boost::array<Bullet, 4> temp_bullets;
-       boost::array<Bullet, 4> user_defined_bullets;
+       Bullet temp_bullets[4];
+       Bullet user_defined_bullets[4];
        Spacing spacing;
        /** This is the amount of space used for paragraph_separation "skip",
         * and for detached paragraphs in "indented" documents.
@@ -353,7 +352,7 @@ BufferParams::BufferParams()
        fontsTypewriterScale = 100;
        inputenc = "auto";
        graphicsDriver = "default";
-       sides = TextClass::OneSide;
+       sides = OneSide;
        columns = 1;
        listings_params = string();
        pagestyle = "default";
@@ -584,7 +583,7 @@ string const BufferParams::readToken(Lexer & lex, string const & token)
                                        branch_ptr->setColor(color);
                                // Update also the Color table:
                                if (color == "none")
-                                       color = lcolor.getX11Name(Color::background);
+                                       color = lcolor.getX11Name(Color_background);
                                // FIXME UNICODE
                                lcolor.setColor(to_utf8(branch), color);
 
@@ -864,10 +863,10 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
        // if needed
        if (sides != tclass.sides()) {
                switch (sides) {
-               case TextClass::OneSide:
+               case OneSide:
                        clsoptions << "oneside,";
                        break;
-               case TextClass::TwoSides:
+               case TwoSides:
                        clsoptions << "twoside,";
                        break;
                }
@@ -903,7 +902,7 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
                // when Vietnamese is used, babel must directly be loaded with the
                // language options, not in the class options, see
                // http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg129417.html
-               int viet = language_options.str().find("vietnam");
+               size_t viet = language_options.str().find("vietnam");
                // viet = string::npos when not found
                if (lyxrc.language_global_options && !language_options.str().empty()
                        && viet == string::npos)
@@ -1168,7 +1167,8 @@ bool BufferParams::writeLaTeX(odocstream & os, LaTeXFeatures & features,
        // * Has to be loaded before the "LyX specific LaTeX commands" to
        //   avoid errors with algorithm floats.
        odocstringstream oss;
-       pdfoptions().writeLaTeX(oss);
+       // use hyperref explicitely when it is required
+       pdfoptions().writeLaTeX(oss, features.isRequired("hyperref"));
        lyxpreamble += oss.str();
 
        // this might be useful...
@@ -1392,15 +1392,14 @@ void BufferParams::clearLayoutModules() {
 
 Font const BufferParams::getFont() const
 {
-       Font f = getTextClass().defaultfont();
-       f.setLanguage(language);
+       FontInfo f = getTextClass().defaultfont();
        if (fontsDefaultFamily == "rmdefault")
-               f.setFamily(Font::ROMAN_FAMILY);
+               f.setFamily(ROMAN_FAMILY);
        else if (fontsDefaultFamily == "sfdefault")
-               f.setFamily(Font::SANS_FAMILY);
+               f.setFamily(SANS_FAMILY);
        else if (fontsDefaultFamily == "ttdefault")
-               f.setFamily(Font::TYPEWRITER_FAMILY);
-       return f;
+               f.setFamily(TYPEWRITER_FAMILY);
+       return Font(f, language);
 }
 
 
@@ -1574,7 +1573,7 @@ string const BufferParams::babelCall(string const & lang_opts) const
        // when Vietnamese is used, babel must directly be loaded with the
        // language options, see
        // http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg129417.html
-       int viet = lang_opts.find("vietnam");
+       size_t viet = lang_opts.find("vietnam");
        // viet = string::npos when not found
        if (!lyxrc.language_global_options || viet != string::npos)
                return "\\usepackage[" + lang_opts + "]{babel}";
@@ -1621,7 +1620,7 @@ void BufferParams::writeEncodingPreamble(odocstream & os,
                        os << "]{inputenc}\n";
                        texrow.newline();
                }
-               if (package == Encoding::CJK) {
+               if (package == Encoding::CJK || features.mustProvide("CJK")) {
                        os << "\\usepackage{CJK}\n";
                        texrow.newline();
                }