]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
support to load the mathdots package via the document settings; fixes #5373; fileform...
[lyx.git] / src / LyXRC.cpp
index 67ba6780d487e7c13b0a91bf933b889f8f4603ec..252bbfb36d4c3c28c8a1a3feaa9f3355dfa2d296 100644 (file)
@@ -43,6 +43,7 @@
 
 #include <fstream>
 #include <iostream>
+#include <algorithm>
 
 using namespace std;
 using namespace lyx::support;
@@ -172,6 +173,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY },
        { "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM },
        { "\\scroll_below_document", LyXRC::RC_SCROLL_BELOW_DOCUMENT },
+       { "\\scroll_wheel_zoom", LyXRC::RC_SCROLL_WHEEL_ZOOM },
        { "\\serverpipe", LyXRC::RC_SERVERPIPE },
        { "\\set_color", LyXRC::RC_SET_COLOR },
        { "\\show_banner", LyXRC::RC_SHOW_BANNER },
@@ -197,6 +199,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
        // compatibility with versions older than 1.4.0 only
        { "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
+       { "\\use_system_colors", LyXRC::RC_USE_SYSTEM_COLORS },
        // compatibility with versions older than 1.4.0 only
        { "\\use_tempdir", LyXRC::RC_USETEMPDIR },
        { "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
@@ -284,7 +287,10 @@ void LyXRC::setDefaults()
        backupdir_path.erase();
        display_graphics = true;
        // Spellchecker settings:
-#if defined(USE_ASPELL)
+// FIXME: this check should test the target platform (darwin)
+#if defined(USE_MACOSX_PACKAGING)
+       spellchecker = "native";
+#elif defined(USE_ASPELL)
        spellchecker = "aspell";
 #elif defined(USE_HUNSPELL)
        spellchecker = "hunspell";
@@ -316,6 +322,7 @@ void LyXRC::setDefaults()
        date_insert_format = "%x";
        cursor_follows_scrollbar = false;
        scroll_below_document = false;
+       scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_CTRL;
        paragraph_markers = false;
        mac_like_word_movement = false;
        macro_edit_style = MACRO_EDIT_INLINE_BOX;
@@ -324,6 +331,7 @@ void LyXRC::setDefaults()
        preview_hashed_labels  = false;
        preview_scale_factor = 1.0;
        use_converter_cache = true;
+       use_system_colors = false;
        use_tooltip = true;
        use_pixmap_cache = false;
        converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months
@@ -908,6 +916,9 @@ int LyXRC::read(Lexer & lexrc)
                case RC_ACCEPT_COMPOUND:
                        lexrc >> spellchecker_accept_compound;
                        break;
+               case RC_USE_SYSTEM_COLORS:
+                       lexrc >> use_system_colors;
+                       break;
                case RC_USE_TOOLTIP:
                        lexrc >> use_tooltip;
                        break;
@@ -1191,6 +1202,23 @@ int LyXRC::read(Lexer & lexrc)
                                }
                        }
                        break;
+               case RC_SCROLL_WHEEL_ZOOM:
+                       if (lexrc.next()) {
+                               string const tmp = lexrc.getString();
+                               if (tmp == "ctrl")
+                                       scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_CTRL;
+                               else if (tmp == "shift")
+                                       scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_SHIFT;
+                               else if (tmp == "alt")
+                                       scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_ALT;
+                               else {
+                                       scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_OFF;
+                                       if (tmp != "off" && tmp != "false")
+                                               LYXERR0("Unrecognized scroll_wheel_zoom status \""
+                                                      << tmp << '"');
+                               }
+                       }
+                       break;
 
                // Obsoteted in 1.4.0
                case RC_USETEMPDIR:
@@ -1433,6 +1461,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                        case PAPER_B3:
                        case PAPER_B4:
                        case PAPER_B6:
+                       case PAPER_C0:
+                       case PAPER_C1:
+                       case PAPER_C2:
+                       case PAPER_C3:
+                       case PAPER_C4:
+                       case PAPER_C5:
+                       case PAPER_C6:
                        case PAPER_JISB0:
                        case PAPER_JISB1:
                        case PAPER_JISB2:
@@ -2352,6 +2387,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                // obsoleted in 2.0
                if (tag != RC_LAST)
                        break;
+       case RC_USE_SYSTEM_COLORS:
+               if (ignore_system_lyxrc ||
+                   use_system_colors != system_lyxrc.use_system_colors) {
+                       os << "\\use_system_colors "
+                          << convert<string>(use_system_colors)
+                          << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
        case RC_USE_TOOLTIP:
                if (ignore_system_lyxrc ||
                    use_tooltip != system_lyxrc.use_tooltip) {
@@ -2560,6 +2604,29 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
 
+       case RC_SCROLL_WHEEL_ZOOM:
+               if (ignore_system_lyxrc ||
+                       scroll_wheel_zoom != system_lyxrc.scroll_wheel_zoom) {
+                       string status;
+                       switch (scroll_wheel_zoom) {
+                       case SCROLL_WHEEL_ZOOM_OFF:
+                               status = "off";
+                               break;
+                       case SCROLL_WHEEL_ZOOM_CTRL:
+                               status = "ctrl";
+                               break;
+                       case SCROLL_WHEEL_ZOOM_SHIFT:
+                               status = "shift";
+                               break;
+                       case SCROLL_WHEEL_ZOOM_ALT:
+                               status = "alt";
+                               break;
+                       }
+                       os << "\\scroll_wheel_zoom " << status << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
+
                os << "\n#\n"
                   << "# FORMATS SECTION ##########################\n"
                   << "#\n\n";
@@ -2879,6 +2946,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        case LyXRC::RC_USE_ESC_CHARS:
        case LyXRC::RC_USE_INP_ENC:
        case LyXRC::RC_USE_PERS_DICT:
+       case LyXRC::RC_USE_SYSTEM_COLORS:
        case LyXRC::RC_USE_TOOLTIP:
        case LyXRC::RC_USE_PIXMAP_CACHE:
        case LyXRC::RC_USE_SPELL_LIB:
@@ -2897,6 +2965,8 @@ 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_SCROLL_WHEEL_ZOOM:
        case LyXRC::RC_LAST:
                break;
        }
@@ -3327,6 +3397,10 @@ string const LyXRC::getDescription(LyXRCTags tag)
        case RC_USETEMPDIR:
                break;
 
+       case RC_USE_USE_SYSTEM_COLORS:
+               str = _("Enable use the system colors for some things like main window background and selection.");
+               break;
+
        case RC_USE_TOOLTIP:
                str = _("Enable the automatic appearance of tool tips in the work area.");
                break;