]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
Do not overwrite read-only files. We now move the file to the backup directory and...
[lyx.git] / src / LyXRC.cpp
index 0bb6d81a7177eb0d69c9b1f038bac53024b0001c..4e45875f9052bbe72c25c16d4243266c2bccd3c0 100644 (file)
@@ -122,10 +122,11 @@ LexerKeyword lyxrcTags[] = {
        { "\\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_custom_package", LyXRC::RC_LANGUAGE_CUSTOM_PACKAGE },
        { "\\language_global_options", LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS },
-       { "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE },
-       { "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL },
+       { "\\language_package_selection", LyXRC::RC_LANGUAGE_PACKAGE_SELECTION },
        { "\\load_session", LyXRC::RC_LOADSESSION },
+       { "\\mac_dontswap_ctrl_meta", LyXRC::RC_MAC_DONTSWAP_CTRL_META },
        { "\\mac_like_word_movement", LyXRC::RC_MAC_LIKE_WORD_MOVEMENT },
        { "\\macro_edit_style", LyXRC::RC_MACRO_EDIT_STYLE },
        { "\\make_backup", LyXRC::RC_MAKE_BACKUP },
@@ -178,6 +179,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\set_color", LyXRC::RC_SET_COLOR },
        { "\\show_banner", LyXRC::RC_SHOW_BANNER },
        { "\\single_close_tab_button", LyXRC::RC_SINGLE_CLOSE_TAB_BUTTON },
+       { "\\single_instance", LyXRC::RC_SINGLE_INSTANCE },
        { "\\sort_layouts", LyXRC::RC_SORT_LAYOUTS },
        { "\\spell_command", LyXRC::RC_SPELL_COMMAND },
        { "\\spellcheck_continuously", LyXRC::RC_SPELLCHECK_CONTINUOUSLY },
@@ -308,8 +310,8 @@ void LyXRC::setDefaults()
        language_auto_begin = true;
        language_auto_end = true;
        language_global_options = true;
-       language_use_babel = true;
-       language_package = "\\usepackage{babel}";
+       language_package_selection = LP_AUTO;
+       language_custom_package = "\\usepackage{babel}";
        language_command_begin = "\\selectlanguage{$$lang}";
        language_command_local = "\\foreignlanguage{$$lang}{";
        sort_layouts = false;
@@ -324,6 +326,7 @@ void LyXRC::setDefaults()
        scroll_below_document = false;
        scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_CTRL;
        paragraph_markers = false;
+       mac_dontswap_ctrl_meta = false;
        mac_like_word_movement = false;
        macro_edit_style = MACRO_EDIT_INLINE_BOX;
        dialogs_iconify_with_main = false;
@@ -331,7 +334,7 @@ void LyXRC::setDefaults()
        preview_hashed_labels  = false;
        preview_scale_factor = 1.0;
        use_converter_cache = true;
-       use_system_colors = true;
+       use_system_colors = false;
        use_tooltip = true;
        use_pixmap_cache = false;
        converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months
@@ -339,6 +342,7 @@ void LyXRC::setDefaults()
        user_email = to_utf8(support::user_email());
        open_buffers_in_tabs = true;
        single_close_tab_button = false;
+       single_instance = true;
        forward_search_dvi = string();
        forward_search_pdf = string();
        export_overwrite = NO_FILES;
@@ -891,6 +895,10 @@ int LyXRC::read(Lexer & lexrc)
                        lexrc >> paragraph_markers;
                        break;
 
+               case RC_MAC_DONTSWAP_CTRL_META:
+                       lexrc >> mac_dontswap_ctrl_meta;
+                       break;
+
                case RC_MAC_LIKE_WORD_MOVEMENT:
                        lexrc >> mac_like_word_movement;
                        break;
@@ -958,8 +966,8 @@ int LyXRC::read(Lexer & lexrc)
                case RC_DATE_INSERT_FORMAT:
                        lexrc >> date_insert_format;
                        break;
-               case RC_LANGUAGE_PACKAGE:
-                       lexrc >> language_package;
+               case RC_LANGUAGE_CUSTOM_PACKAGE:
+                       lexrc >> language_custom_package;
                        break;
                case RC_LANGUAGE_AUTO_BEGIN:
                        lexrc >> language_auto_begin;
@@ -970,8 +978,23 @@ int LyXRC::read(Lexer & lexrc)
                case RC_LANGUAGE_GLOBAL_OPTIONS:
                        lexrc >> language_global_options;
                        break;
-               case RC_LANGUAGE_USE_BABEL:
-                       lexrc >> language_use_babel;
+               case RC_LANGUAGE_PACKAGE_SELECTION:
+                       if (lexrc.next()) {
+                               switch (lexrc.getInteger()) {
+                               case 0:
+                                       language_package_selection = LP_AUTO;
+                                       break;
+                               case 1:
+                                       language_package_selection = LP_BABEL;
+                                       break;
+                               case 2:
+                                       language_package_selection = LP_CUSTOM;
+                                       break;
+                               case 3:
+                                       language_package_selection = LP_NONE;
+                                       break;
+                               }
+                       }
                        break;
                case RC_LANGUAGE_COMMAND_BEGIN:
                        lexrc >> language_command_begin;
@@ -1179,6 +1202,11 @@ int LyXRC::read(Lexer & lexrc)
                case RC_SINGLE_CLOSE_TAB_BUTTON:
                        lexrc >> single_close_tab_button;
                        break;
+               case RC_SINGLE_INSTANCE:
+                       lexrc >> single_instance;
+                       if (run_mode == PREFERRED)
+                               run_mode = single_instance ? USE_REMOTE : NEW_INSTANCE;
+                       break;
                case RC_FORWARD_SEARCH_DVI:
                        if (lexrc.next(true)) 
                                forward_search_dvi = lexrc.getString();
@@ -1736,6 +1764,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_MAC_DONTSWAP_CTRL_META:
+               if (ignore_system_lyxrc ||
+                   mac_dontswap_ctrl_meta
+                   != system_lyxrc.mac_dontswap_ctrl_meta) {
+                       os << "\\mac_dontswap_ctrl_meta "
+                          << convert<string>(mac_dontswap_ctrl_meta) << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_MAC_LIKE_WORD_MOVEMENT:
                if (ignore_system_lyxrc ||
                    mac_like_word_movement
@@ -1936,6 +1973,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+       case RC_SINGLE_INSTANCE:
+               if (ignore_system_lyxrc ||
+                   single_instance != system_lyxrc.single_instance) {
+                       os << "\\single_instance "
+                          << convert<string>(single_instance)
+                          << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_FORWARD_SEARCH_DVI:
                if (ignore_system_lyxrc ||
                    forward_search_dvi != system_lyxrc.forward_search_dvi) {
@@ -2477,10 +2523,10 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
-       case RC_LANGUAGE_PACKAGE:
+       case RC_LANGUAGE_CUSTOM_PACKAGE:
                if (ignore_system_lyxrc ||
-                   language_package != system_lyxrc.language_package) {
-                       os << "\\language_package \"" << language_package
+                   language_custom_package != system_lyxrc.language_custom_package) {
+                       os << "\\language_custom_package \"" << language_custom_package
                           << "\"\n";
                }
                if (tag != RC_LAST)
@@ -2495,12 +2541,24 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
-       case RC_LANGUAGE_USE_BABEL:
+       case RC_LANGUAGE_PACKAGE_SELECTION:
                if (ignore_system_lyxrc ||
-                   language_use_babel != system_lyxrc.language_use_babel) {
-                       os << "\\language_use_babel \""
-                          << convert<string>(language_use_babel)
-                          << "\"\n";
+                   language_package_selection != system_lyxrc.language_package_selection) {
+                       os << "\\language_package_selection ";
+                       switch (language_package_selection) {
+                       case LP_AUTO: 
+                               os << "0\n";
+                               break;
+                       case LP_BABEL:
+                               os << "1\n";
+                               break;
+                       case LP_CUSTOM:
+                               os << "2\n";
+                               break;
+                       case LP_NONE:
+                               os << "3\n";
+                               break;
+                       }
                }
                if (tag != RC_LAST)
                        break;
@@ -2872,8 +2930,9 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_LANGUAGE_COMMAND_END:
        case LyXRC::RC_LANGUAGE_COMMAND_LOCAL:
        case LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS:
-       case LyXRC::RC_LANGUAGE_PACKAGE:
-       case LyXRC::RC_LANGUAGE_USE_BABEL:
+       case LyXRC::RC_LANGUAGE_CUSTOM_PACKAGE:
+       case LyXRC::RC_LANGUAGE_PACKAGE_SELECTION:
+       case LyXRC::RC_MAC_DONTSWAP_CTRL_META:
        case LyXRC::RC_MAC_LIKE_WORD_MOVEMENT:
        case LyXRC::RC_MACRO_EDIT_STYLE:
        case LyXRC::RC_MAKE_BACKUP:
@@ -2952,6 +3011,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_USE_SPELL_LIB:
        case LyXRC::RC_VIEWDVI_PAPEROPTION:
        case LyXRC::RC_SINGLE_CLOSE_TAB_BUTTON:
+       case LyXRC::RC_SINGLE_INSTANCE:
        case LyXRC::RC_SORT_LAYOUTS:
        case LyXRC::RC_FULL_SCREEN_LIMIT:
        case LyXRC::RC_FULL_SCREEN_SCROLLBAR:
@@ -3049,6 +3109,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("LyX normally doesn't allow the user to scroll further than the bottom of the document. Set to true if you prefer to scroll the bottom of the document to the top of the screen");
                break;
 
+       case RC_MAC_DONTSWAP_CTRL_META:
+               str = _("Make Apple key act as Meta and Control key as Ctrl.");
+               break;
+
        case RC_MAC_LIKE_WORD_MOVEMENT:
                str = _("Use the Mac OS X conventions for the word-level cursor movement");
                break;
@@ -3151,11 +3215,11 @@ string const LyXRC::getDescription(LyXRCTags tag)
                str = _("De-select if you don't want the language(s) used as an argument to \\documentclass.");
                break;
 
-       case RC_LANGUAGE_PACKAGE:
+       case RC_LANGUAGE_CUSTOM_PACKAGE:
                str = _("The LaTeX command for loading the language package. E.g. \"\\usepackage{babel}\", \"\\usepackage{omega}\".");
                break;
 
-       case RC_LANGUAGE_USE_BABEL:
+       case RC_LANGUAGE_PACKAGE_SELECTION:
                str = _("De-select if you don't want babel to be used when the language of the document is the default language.");
                break;