]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
* de/UserGuide: some translation work.
[lyx.git] / src / LyXRC.cpp
index 487255f5fba67f1f4aa1783eb728e4b464cb3bed..d7e2a786ed5d0335d96ff41dd16b12bcd5420db7 100644 (file)
@@ -99,6 +99,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\example_path", LyXRC::RC_EXAMPLEPATH },
        { "\\export_overwrite", LyXRC::RC_EXPORT_OVERWRITE },
        { "\\font_encoding", LyXRC::RC_FONT_ENCODING },
+       { "\\force_paint_single_char", LyXRC::RC_FORCE_PAINT_SINGLE_CHAR },
        { "\\format", LyXRC::RC_FILEFORMAT },
        { "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI },
        { "\\forward_search_pdf", LyXRC::RC_FORWARD_SEARCH_PDF },
@@ -377,13 +378,13 @@ void oldFontFormat(string & family, string & foundry)
 } // namespace anon
 
 
-bool LyXRC::read(FileName const & filename)
+bool LyXRC::read(FileName const & filename, bool check_format)
 {
        Lexer lexrc(lyxrcTags);
        lexrc.setFile(filename);
        LYXERR(Debug::LYXRC, "Reading '" << filename << "'...");
-       ReturnValues retval = read(lexrc);
-       if (retval != FormatMismatch)
+       ReturnValues retval = read(lexrc, check_format);
+       if (!check_format || retval != FormatMismatch)
                return retval == ReadOK;
 
        LYXERR(Debug::FILES, "Converting LyXRC file to " << LYXRC_FILEFORMAT);
@@ -397,7 +398,7 @@ bool LyXRC::read(FileName const & filename)
        Lexer lexrc2(lyxrcTags);
        lexrc2.setFile(tempfile);
        LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'...");
-       retval = read(lexrc2);
+       retval = read(lexrc2, check_format);
        tempfile.removeFile();
        return retval == ReadOK;
 }
@@ -410,11 +411,11 @@ bool LyXRC::read(istream & is)
        Lexer lexrc(lyxrcTags);
        lexrc.setStream(is);
        LYXERR(Debug::LYXRC, "Reading istream...");
-       return read(lexrc) == ReadOK;
+       return read(lexrc, false) == ReadOK;
 }
 
 
-LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
+LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
 {
        if (lyxerr.debugging(Debug::PARSER))
                lexrc.printTable(lyxerr);
@@ -422,6 +423,9 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
        if (!lexrc.isOK())
                return ReadError;
 
+       // default for current rowpainter capabilities
+       force_paint_single_char = true;
+
        // format prior to 2.0 and introduction of format tag
        unsigned int format = 0;
 
@@ -453,9 +457,9 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
                                FileName const tmp =
                                        libFileSearch(string(),
                                                      lexrc.getString());
-                               if (read(tmp)) {
-                                       lexrc.printError("Error reading "
-                                                        "included file: " + tmp.absFileName());
+                               if (read(tmp, check_format)) {
+                                       lexrc.printError(
+                                           "Error reading included file: " + tmp.absFileName());
                                }
                        }
                        break;
@@ -523,6 +527,10 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
                        lexrc >> fontenc;
                        break;
 
+               case RC_FORCE_PAINT_SINGLE_CHAR:
+                       lexrc >> force_paint_single_char;
+                       break;
+                               
                case RC_PRINTER:
                        lexrc >> printer;
                        break;
@@ -1090,6 +1098,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
                                        flgs |= Format::document;
                                else if (flag == "vector")
                                        flgs |= Format::vector;
+                               else if (flag == "menu=export")
+                                       flgs |= Format::export_menu;
                                else
                                        LYXERR0("Ignoring unknown flag `"
                                               << flag << "' for format `"
@@ -1262,7 +1272,7 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
 
                // This is triggered the first time through the loop unless
                // we hit a format tag.
-               if (format != LYXRC_FILEFORMAT)
+               if (check_format && format != LYXRC_FILEFORMAT)
                        return FormatMismatch;
        }
 
@@ -2178,6 +2188,14 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
 
+       case RC_FORCE_PAINT_SINGLE_CHAR:
+               if (ignore_system_lyxrc ||
+                   force_paint_single_char != system_lyxrc.force_paint_single_char) {
+                       os << "\\force_paint_single_char \"" << force_paint_single_char << "\"\n";
+               }
+               if (tag != RC_LAST)
+                       break;
+
                os << "\n#\n"
                   << "# FILE SECTION ######################################\n"
                   << "#\n\n";
@@ -2878,6 +2896,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_ESC_CHARS:
        case LyXRC::RC_EXAMPLEPATH:
        case LyXRC::RC_FONT_ENCODING:
+       case LyXRC::RC_FORCE_PAINT_SINGLE_CHAR:
        case LyXRC::RC_FILEFORMAT:
        case LyXRC::RC_GROUP_LAYOUTS:
        case LyXRC::RC_HUNSPELLDIR_PATH:
@@ -3120,6 +3139,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("The font encoding used for the LaTeX2e fontenc package. T1 is highly recommended for non-English languages.");
                break;
 
+       case RC_FORCE_PAINT_SINGLE_CHAR:
+               str = _("Disable any kerning and ligatures for text drawing on screen.");
+               break;
+
        case RC_FILEFORMAT:
                break;