]> git.lyx.org Git - lyx.git/blobdiff - src/lyxrc.C
fix "make dist" target
[lyx.git] / src / lyxrc.C
index 32edd2449a62b3c152de2bb6acfdf7282e54f635..ea6e840112e46613a00f7e276ea3b6bc23fef11b 100644 (file)
@@ -31,6 +31,7 @@
 #include "support/filetools.h"
 #include "lyxtext.h"
 #include "converter.h"
+#include "gettext.h"
 
 using std::ostream;
 using std::ofstream;
@@ -40,10 +41,10 @@ using std::endl;
 using std::vector;
 
 extern LyXAction lyxaction;
-extern kb_keymap * toplevel_keymap;
+extern boost::scoped_ptr<kb_keymap> toplevel_keymap;
 
+namespace {
 
-static
 keyword_item lyxrcTags[] = {
        { "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND },
        { "\\alternate_language", LyXRC::RC_ALT_LANG },
@@ -79,7 +80,10 @@ keyword_item lyxrcTags[] = {
        { "\\language_auto_end", LyXRC::RC_LANGUAGE_AUTO_END },
        { "\\language_command_begin", LyXRC::RC_LANGUAGE_COMMAND_BEGIN },
        { "\\language_command_end", LyXRC::RC_LANGUAGE_COMMAND_END },
+       { "\\language_command_local", LyXRC::RC_LANGUAGE_COMMAND_LOCAL },
+       { "\\language_global_options", LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS },
        { "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE },
+       { "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL },
        { "\\lastfiles", LyXRC::RC_LASTFILES },
        { "\\make_backup", LyXRC::RC_MAKE_BACKUP },
        { "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE },
@@ -136,7 +140,9 @@ keyword_item lyxrcTags[] = {
 };
 
 /* Let the range depend of the size of lyxrcTags.  Alejandro 240596 */
-static const int lyxrcCount = sizeof(lyxrcTags) / sizeof(keyword_item);
+const int lyxrcCount = sizeof(lyxrcTags) / sizeof(keyword_item);
+
+} // namespace anon
 
 
 LyXRC::LyXRC() 
@@ -220,11 +226,14 @@ void LyXRC::setDefaults() {
        rtl_support = false;
        auto_number = true;
        mark_foreign_language = true;
-       language_package = "\\usepackage{babel}";
        language_auto_begin = true;
        language_auto_end = true;
+       language_global_options = true;
+       language_use_babel = true;
+       language_package = "\\usepackage{babel}";
        language_command_begin = "\\selectlanguage{$$lang}";
        language_command_end = "\\selectlanguage{$$lang}";
+       language_command_local = "\\foreignlanguage{$$lang}{";
        default_language = "english";
        //
        new_ask_filename = false;
@@ -705,8 +714,10 @@ int LyXRC::read(string const & filename)
                                               << action << '\'' << endl;
                                }
                                res = toplevel_keymap->bind(seq, action);
-                               if (res != 0) {
+                               if (res != 0
+                                   && lyxerr.debugging(Debug::KBMAP)) {
                                        lexrc.printError(
+                                               "RC_BIND: "
                                                "Invalid key sequence `"
                                                + seq + '\''); 
                                }
@@ -800,6 +811,14 @@ int LyXRC::read(string const & filename)
                        if (lexrc.next())
                                language_auto_end = lexrc.GetBool();
                        break;
+               case RC_LANGUAGE_GLOBAL_OPTIONS:
+                       if (lexrc.next())
+                               language_global_options = lexrc.GetBool();
+                       break;
+               case RC_LANGUAGE_USE_BABEL:
+                       if (lexrc.next())
+                               language_use_babel = lexrc.GetBool();
+                       break;
                case RC_LANGUAGE_COMMAND_BEGIN:
                        if (lexrc.next())
                                language_command_begin = lexrc.GetString();
@@ -808,6 +827,10 @@ int LyXRC::read(string const & filename)
                        if (lexrc.next())
                                language_command_end = lexrc.GetString();
                        break;
+               case RC_LANGUAGE_COMMAND_LOCAL:
+                       if (lexrc.next())
+                               language_command_local = lexrc.GetString();
+                       break;
                case RC_RTL_SUPPORT:
                        if (lexrc.next())
                                rtl_support = lexrc.GetBool();
@@ -1413,6 +1436,19 @@ void LyXRC::output(ostream & os) const
                        os << "\\language_package \"" << language_package
                           << "\"\n";
                }
+       case RC_LANGUAGE_GLOBAL_OPTIONS:
+               if (language_global_options
+                   != system_lyxrc.language_global_options) {
+                       os << "\\language_global_options \""
+                          << tostr(language_global_options)
+                          << "\"\n";
+               }
+       case RC_LANGUAGE_USE_BABEL:
+               if (language_use_babel != system_lyxrc.language_use_babel) {
+                       os << "\\language_use_babel \""
+                          << tostr(language_use_babel)
+                          << "\"\n";
+               }
        case RC_LANGUAGE_COMMAND_BEGIN:
                if (language_command_begin
                    != system_lyxrc.language_command_begin) {
@@ -1426,6 +1462,13 @@ void LyXRC::output(ostream & os) const
                        os << "\\language_command_end \"" << language_command_end
                           << "\"\n";
                }
+       case RC_LANGUAGE_COMMAND_LOCAL:
+               if (language_command_local
+                   != system_lyxrc.language_command_local) {
+                       os << "\\language_command_local \""
+                          << language_command_local
+                          << "\"\n";
+               }
        case RC_LANGUAGE_AUTO_BEGIN:
                if (language_auto_begin != system_lyxrc.language_auto_begin) {
                        os << "\\language_auto_begin " 
@@ -1815,6 +1858,14 @@ string const LyXRC::getDescription(LyXRCTags tag)
        case RC_LANGUAGE_PACKAGE:
                str = N_("The latex command for loading the language package. E.g. \"\\usepackage{babel}\", \"\\usepackage{omega}\".");
                break;
+
+       case RC_LANGUAGE_GLOBAL_OPTIONS:
+               str = N_("De-select if you don't want the language(s) used as an argument to \\documentclass.");
+               break;
+
+       case RC_LANGUAGE_USE_BABEL:
+               str = N_("De-select if you don't want babel to be used when the language of the document is the default language.");
+               break;
                
        case RC_LANGUAGE_AUTO_BEGIN:
                str = N_("Select if a language switching command is needed at the beginning of the document.");
@@ -1831,7 +1882,11 @@ string const LyXRC::getDescription(LyXRCTags tag)
        case RC_LANGUAGE_COMMAND_END:
                str = N_("The latex command for changing back to the language of the document.");
                break;
-               
+
+       case RC_LANGUAGE_COMMAND_LOCAL:
+               str = N_("The latex command for local changing of the language.");
+               break;
+
        case RC_DATE_INSERT_FORMAT:
                //xgettext:no-c-format
                str = N_("This accepts the normal strftime formats; see man strftime for full details. E.g.\"%A, %e. %B %Y\".");