]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
Fix bug #11716
[lyx.git] / src / LyXRC.cpp
index 99289aa1b02fd68de1036dc8d3ef695149d34887..7b7b2627102dbab9c5b562e83d8a168731ac3cc5 100644 (file)
@@ -61,7 +61,7 @@ namespace {
 
 // The format should also be updated in configure.py, and conversion code
 // should be added to prefs2prefs_prefs.py.
-static unsigned int const LYXRC_FILEFORMAT = 29; // spitz: remove \\date_insert_format
+static unsigned int const LYXRC_FILEFORMAT = 31; // lasgouttes: add \ct_additions_underlined
 // when adding something to this array keep it sorted!
 LexerKeyword lyxrcTags[] = {
        { "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND },
@@ -92,10 +92,11 @@ LexerKeyword lyxrcTags[] = {
        { "\\converter", LyXRC::RC_CONVERTER },
        { "\\converter_cache_maxage", LyXRC::RC_CONVERTER_CACHE_MAXAGE },
        { "\\copier", LyXRC::RC_COPIER },
+       { "\\ct_additions_underlined", LyXRC::RC_CT_ADDITIONS_UNDERLINED },
        { "\\cursor_follows_scrollbar", LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR },
        { "\\cursor_width", LyXRC::RC_CURSOR_WIDTH },
        { "\\def_file", LyXRC::RC_DEFFILE },
-       { "\\default_decimal_point", LyXRC::RC_DEFAULT_DECIMAL_POINT },
+       { "\\default_decimal_point", LyXRC::RC_DEFAULT_DECIMAL_SEP },
        { "\\default_length_unit", LyXRC::RC_DEFAULT_LENGTH_UNIT },
        { "\\default_otf_view_format", LyXRC::RC_DEFAULT_OTF_VIEW_FORMAT },
        { "\\default_platex_view_format", LyXRC::RC_DEFAULT_PLATEX_VIEW_FORMAT },
@@ -159,6 +160,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\print_paper_dimension_flag", LyXRC::RC_PRINTPAPERDIMENSIONFLAG },
        { "\\print_paper_flag", LyXRC::RC_PRINTPAPERFLAG },
        { "\\pygmentize_command", LyXRC::RC_PYGMENTIZE_COMMAND },
+       { "\\respect_os_kbd_language", LyXRC::RC_RESPECT_OS_KBD_LANGUAGE },
        { "\\save_compressed", LyXRC::RC_SAVE_COMPRESSED },
        { "\\save_origin", LyXRC::RC_SAVE_ORIGIN },
        { "\\screen_dpi", LyXRC::RC_SCREEN_DPI },
@@ -200,6 +202,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\use_system_theme_icons", LyXRC::RC_USE_SYSTEM_THEME_ICONS },
        { "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
        { "\\user_email", LyXRC::RC_USER_EMAIL },
+       { "\\user_initials", LyXRC::RC_USER_INITIALS },
        { "\\user_name", LyXRC::RC_USER_NAME },
        { "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION },
        // compatibility with versions older than 1.4.0 only
@@ -477,16 +480,16 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                        break;
 
                case RC_SCREEN_FONT_SIZES:
-                       lexrc >> font_sizes[FONT_SIZE_TINY];
-                       lexrc >> font_sizes[FONT_SIZE_SCRIPT];
-                       lexrc >> font_sizes[FONT_SIZE_FOOTNOTE];
-                       lexrc >> font_sizes[FONT_SIZE_SMALL];
-                       lexrc >> font_sizes[FONT_SIZE_NORMAL];
-                       lexrc >> font_sizes[FONT_SIZE_LARGE];
-                       lexrc >> font_sizes[FONT_SIZE_LARGER];
-                       lexrc >> font_sizes[FONT_SIZE_LARGEST];
-                       lexrc >> font_sizes[FONT_SIZE_HUGE];
-                       lexrc >> font_sizes[FONT_SIZE_HUGER];
+                       lexrc >> font_sizes[TINY_SIZE];
+                       lexrc >> font_sizes[SCRIPT_SIZE];
+                       lexrc >> font_sizes[FOOTNOTE_SIZE];
+                       lexrc >> font_sizes[SMALL_SIZE];
+                       lexrc >> font_sizes[NORMAL_SIZE];
+                       lexrc >> font_sizes[LARGE_SIZE];
+                       lexrc >> font_sizes[LARGER_SIZE];
+                       lexrc >> font_sizes[LARGEST_SIZE];
+                       lexrc >> font_sizes[HUGE_SIZE];
+                       lexrc >> font_sizes[HUGER_SIZE];
                        break;
 
                case RC_SCREEN_FONT_SCALABLE:
@@ -669,6 +672,10 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                                lyxpipes = os::internal_path(lexrc.getString());
                        break;
 
+               case RC_CT_ADDITIONS_UNDERLINED:
+                       lexrc >> ct_additions_underlined;
+                       break;
+
                case RC_CURSOR_FOLLOWS_SCROLLBAR:
                        lexrc >> cursor_follows_scrollbar;
                        break;
@@ -751,8 +758,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                        if (lexrc.next())
                                backupdir_path = os::internal_path(lexrc.getString());
                        break;
-               case RC_DEFAULT_DECIMAL_POINT:
-                       lexrc >> default_decimal_point;
+               case RC_DEFAULT_DECIMAL_SEP:
+                       lexrc >> default_decimal_sep;
                        break;
                case RC_DEFAULT_LENGTH_UNIT:
                        if (lexrc.next())
@@ -797,6 +804,9 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                case RC_LANGUAGE_COMMAND_LOCAL:
                        lexrc >> language_command_local;
                        break;
+               case RC_RESPECT_OS_KBD_LANGUAGE:
+                       lexrc >> respect_os_kbd_language;
+                       break;
                case RC_VISUAL_CURSOR:
                        lexrc >> visual_cursor;
                        break;
@@ -880,6 +890,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                                        flgs |= Format::zipped_native;
                                else if (flag == "menu=export")
                                        flgs |= Format::export_menu;
+                               else if (flag == "menu=none")
+                                       flgs |= Format::no_menu;
                                else
                                        LYXERR0("Ignoring unknown flag `"
                                               << flag << "' for format `"
@@ -965,6 +977,9 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                case RC_USER_EMAIL:
                        lexrc >> user_email;
                        break;
+               case RC_USER_INITIALS:
+                       lexrc >> user_initials;
+                       break;
 
                case RC_PATH_PREFIX:
                        lexrc >> path_prefix;
@@ -1440,6 +1455,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
                // fall through
+       case RC_USER_INITIALS:
+               os << "\\user_initials \"" << user_initials << "\"\n";
+               if (tag != RC_LAST)
+                       break;
+               // fall through
        case RC_SHOW_BANNER:
                if (ignore_system_lyxrc ||
                    show_banner != system_lyxrc.show_banner) {
@@ -1571,6 +1591,16 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
                // fall through
+       case RC_CT_ADDITIONS_UNDERLINED:
+               if (ignore_system_lyxrc ||
+                   ct_additions_underlined
+                   != system_lyxrc.ct_additions_underlined) {
+                       os << "\\ct_additions_underlined "
+                          << convert<string>(ct_additions_underlined) << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
+               // fall through
        case RC_CURSOR_FOLLOWS_SCROLLBAR:
                if (ignore_system_lyxrc ||
                    cursor_follows_scrollbar
@@ -1721,40 +1751,40 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                // fall through
        case RC_SCREEN_FONT_SIZES:
                if (ignore_system_lyxrc ||
-                   font_sizes[FONT_SIZE_TINY]
-                   != system_lyxrc.font_sizes[FONT_SIZE_TINY] ||
-                   font_sizes[FONT_SIZE_SCRIPT]
-                   != system_lyxrc.font_sizes[FONT_SIZE_SCRIPT] ||
-                   font_sizes[FONT_SIZE_FOOTNOTE]
-                   != system_lyxrc.font_sizes[FONT_SIZE_FOOTNOTE] ||
-                   font_sizes[FONT_SIZE_SMALL]
-                   != system_lyxrc.font_sizes[FONT_SIZE_SMALL] ||
-                   font_sizes[FONT_SIZE_NORMAL]
-                   != system_lyxrc.font_sizes[FONT_SIZE_NORMAL] ||
-                   font_sizes[FONT_SIZE_LARGE]
-                   != system_lyxrc.font_sizes[FONT_SIZE_LARGE] ||
-                   font_sizes[FONT_SIZE_LARGER]
-                   != system_lyxrc.font_sizes[FONT_SIZE_LARGER] ||
-                   font_sizes[FONT_SIZE_LARGEST]
-                   != system_lyxrc.font_sizes[FONT_SIZE_LARGEST] ||
-                   font_sizes[FONT_SIZE_HUGE]
-                   != system_lyxrc.font_sizes[FONT_SIZE_HUGE] ||
-                   font_sizes[FONT_SIZE_HUGER]
-                   != system_lyxrc.font_sizes[FONT_SIZE_HUGER]) {
+                   font_sizes[TINY_SIZE]
+                   != system_lyxrc.font_sizes[TINY_SIZE] ||
+                   font_sizes[SCRIPT_SIZE]
+                   != system_lyxrc.font_sizes[SCRIPT_SIZE] ||
+                   font_sizes[FOOTNOTE_SIZE]
+                   != system_lyxrc.font_sizes[FOOTNOTE_SIZE] ||
+                   font_sizes[SMALL_SIZE]
+                   != system_lyxrc.font_sizes[SMALL_SIZE] ||
+                   font_sizes[NORMAL_SIZE]
+                   != system_lyxrc.font_sizes[NORMAL_SIZE] ||
+                   font_sizes[LARGE_SIZE]
+                   != system_lyxrc.font_sizes[LARGE_SIZE] ||
+                   font_sizes[LARGER_SIZE]
+                   != system_lyxrc.font_sizes[LARGER_SIZE] ||
+                   font_sizes[LARGEST_SIZE]
+                   != system_lyxrc.font_sizes[LARGEST_SIZE] ||
+                   font_sizes[HUGE_SIZE]
+                   != system_lyxrc.font_sizes[HUGE_SIZE] ||
+                   font_sizes[HUGER_SIZE]
+                   != system_lyxrc.font_sizes[HUGER_SIZE]) {
                        streamsize old_prec = os.precision();
                        os.setf(ios::fixed);
                        os.precision(2);
                        os << "\\screen_font_sizes"
-                          << ' ' << font_sizes[FONT_SIZE_TINY]
-                          << ' ' << font_sizes[FONT_SIZE_SCRIPT]
-                          << ' ' << font_sizes[FONT_SIZE_FOOTNOTE]
-                          << ' ' << font_sizes[FONT_SIZE_SMALL]
-                          << ' ' << font_sizes[FONT_SIZE_NORMAL]
-                          << ' ' << font_sizes[FONT_SIZE_LARGE]
-                          << ' ' << font_sizes[FONT_SIZE_LARGER]
-                          << ' ' << font_sizes[FONT_SIZE_LARGEST]
-                          << ' ' << font_sizes[FONT_SIZE_HUGE]
-                          << ' ' << font_sizes[FONT_SIZE_HUGER]
+                          << ' ' << font_sizes[TINY_SIZE]
+                          << ' ' << font_sizes[SCRIPT_SIZE]
+                          << ' ' << font_sizes[FOOTNOTE_SIZE]
+                          << ' ' << font_sizes[SMALL_SIZE]
+                          << ' ' << font_sizes[NORMAL_SIZE]
+                          << ' ' << font_sizes[LARGE_SIZE]
+                          << ' ' << font_sizes[LARGER_SIZE]
+                          << ' ' << font_sizes[LARGEST_SIZE]
+                          << ' ' << font_sizes[HUGE_SIZE]
+                          << ' ' << font_sizes[HUGER_SIZE]
                           << '\n';
                        os.precision(old_prec);
                        os.unsetf(ios::fixed);
@@ -2263,10 +2293,10 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                   << "#\n\n";
 
        // fall through
-       case RC_DEFAULT_DECIMAL_POINT:
+       case RC_DEFAULT_DECIMAL_SEP:
                if (ignore_system_lyxrc ||
-                   default_decimal_point != system_lyxrc.default_decimal_point) {
-                       os << "\\default_decimal_point " << default_decimal_point << '\n';
+                   default_decimal_sep != system_lyxrc.default_decimal_sep) {
+                       os << "\\default_decimal_point \"" << default_decimal_sep << "\"" << '\n';
                }
                if (tag != RC_LAST)
                        break;
@@ -2421,6 +2451,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                        os << "\\mark_foreign_language " <<
                                convert<string>(mark_foreign_language) << '\n';
                }
+               // fall through
+       case RC_RESPECT_OS_KBD_LANGUAGE:
+               if (ignore_system_lyxrc ||
+                   respect_os_kbd_language
+                   != system_lyxrc.respect_os_kbd_language) {
+                       os << "\\respect_os_kbd_language " <<
+                               convert<string>(respect_os_kbd_language) << '\n';
+               }
+               //fall through
                if (tag != RC_LAST)
                        break;
 
@@ -2508,6 +2547,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                            format->documentFormat() != cit->documentFormat() ||
                            format->vectorFormat() != cit->vectorFormat() ||
                            format->inExportMenu() != cit->inExportMenu() ||
+                           format->noMenu() != cit->noMenu() ||
                            format->mime() != cit->mime()) {
                                os << "\\format \"" << cit->name() << "\" \""
                                   << cit->extensions() << "\" \""
@@ -2730,6 +2770,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_CONVERTER:
        case LyXRC::RC_CONVERTER_CACHE_MAXAGE:
        case LyXRC::RC_COPIER:
+       case LyXRC::RC_CT_ADDITIONS_UNDERLINED:
        case LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR:
        case LyXRC::RC_SCROLL_BELOW_DOCUMENT:
        case LyXRC::RC_GUI_LANGUAGE:
@@ -2778,6 +2819,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_MACRO_EDIT_STYLE:
        case LyXRC::RC_MAKE_BACKUP:
        case LyXRC::RC_MARK_FOREIGN_LANGUAGE:
+       case LyXRC::RC_RESPECT_OS_KBD_LANGUAGE:
        case LyXRC::RC_MOUSE_WHEEL_SPEED:
        case LyXRC::RC_MOUSE_MIDDLEBUTTON_PASTE:
        case LyXRC::RC_NUMLASTFILES:
@@ -2852,6 +2894,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_THESAURUSDIRPATH:
        case LyXRC::RC_UIFILE:
        case LyXRC::RC_USER_EMAIL:
+       case LyXRC::RC_USER_INITIALS:
        case LyXRC::RC_USER_NAME:
        case LyXRC::RC_USE_CONVERTER_CACHE:
        case LyXRC::RC_USE_CONVERTER_NEEDAUTH_FORBIDDEN:
@@ -2878,7 +2921,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_FORWARD_SEARCH_DVI:
        case LyXRC::RC_FORWARD_SEARCH_PDF:
        case LyXRC::RC_EXPORT_OVERWRITE:
-       case LyXRC::RC_DEFAULT_DECIMAL_POINT:
+       case LyXRC::RC_DEFAULT_DECIMAL_SEP:
        case LyXRC::RC_DEFAULT_LENGTH_UNIT:
        case LyXRC::RC_SCROLL_WHEEL_ZOOM:
        case LyXRC::RC_CURSOR_WIDTH:
@@ -3099,6 +3142,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("Select to control the highlighting of words with a language foreign to that of the document.");
                break;
 
+       case RC_RESPECT_OS_KBD_LANGUAGE:
+               str = _("Select to use the current keyboard language, as set from the operating system, as default input language.");
+               break;
+
        case RC_MOUSE_WHEEL_SPEED:
                str = _("The scrolling speed of the mouse wheel.");
                break;