]> git.lyx.org Git - lyx.git/blobdiff - src/LyXRC.cpp
Hack to display section symbol
[lyx.git] / src / LyXRC.cpp
index 6bc28e960a979dd3a7d73fefc773848fe2e1d9d2..fa50d4a51d8aa2832ac8781bc93b5c85e6b947dd 100644 (file)
@@ -60,7 +60,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 = 36; // rkh: spellcheck_continuously default
+static unsigned int const LYXRC_FILEFORMAT = 37; // chillenb: screen_width and screen_limit
 // when adding something to this array keep it sorted!
 LexerKeyword lyxrcTags[] = {
        { "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND },
@@ -107,6 +107,7 @@ LexerKeyword lyxrcTags[] = {
        { "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN },
        { "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS },
        { "\\document_path", LyXRC::RC_DOCUMENTPATH },
+       { "\\draw_strategy", LyXRC::RC_DRAW_STRATEGY },
        { "\\editor_alternatives", LyXRC::RC_EDITOR_ALTERNATIVES },
        { "\\escape_chars", LyXRC::RC_ESC_CHARS },
        { "\\example_path", LyXRC::RC_EXAMPLEPATH },
@@ -115,13 +116,11 @@ LexerKeyword lyxrcTags[] = {
        { "\\format", LyXRC::RC_FILEFORMAT },
        { "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI },
        { "\\forward_search_pdf", LyXRC::RC_FORWARD_SEARCH_PDF },
-       { "\\fullscreen_limit", LyXRC::RC_FULL_SCREEN_LIMIT },
        { "\\fullscreen_menubar", LyXRC::RC_FULL_SCREEN_MENUBAR },
        { "\\fullscreen_scrollbar", LyXRC::RC_FULL_SCREEN_SCROLLBAR },
        { "\\fullscreen_statusbar", LyXRC::RC_FULL_SCREEN_STATUSBAR },
        { "\\fullscreen_tabbar", LyXRC::RC_FULL_SCREEN_TABBAR },
        { "\\fullscreen_toolbars", LyXRC::RC_FULL_SCREEN_TOOLBARS },
-       { "\\fullscreen_width", LyXRC::RC_FULL_SCREEN_WIDTH },
        { "\\group_layouts", LyXRC::RC_GROUP_LAYOUTS },
        { "\\gui_language", LyXRC::RC_GUI_LANGUAGE },
        { "\\hunspelldir_path", LyXRC::RC_HUNSPELLDIR_PATH },
@@ -176,6 +175,8 @@ LexerKeyword lyxrcTags[] = {
        { "\\screen_font_sizes", LyXRC::RC_SCREEN_FONT_SIZES },
        { "\\screen_font_typewriter", LyXRC::RC_SCREEN_FONT_TYPEWRITER },
        { "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY },
+       { "\\screen_limit", LyXRC::RC_SCREEN_LIMIT },
+       { "\\screen_width", LyXRC::RC_SCREEN_WIDTH },
        { "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM },
        { "\\scroll_below_document", LyXRC::RC_SCROLL_BELOW_DOCUMENT },
        { "\\scroll_wheel_zoom", LyXRC::RC_SCROLL_WHEEL_ZOOM },
@@ -286,10 +287,6 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
        // format prior to 2.0 and introduction of format tag
        unsigned int rc_format = 0;
 
-#ifdef USE_MACOSX_PACKAGING
-       open_buffers_in_tabs = appleUserTabbingPreferenceAlways();
-#endif
-
        while (lexrc.isOK()) {
                // By using two switches we take advantage of the compiler
                // telling us if we have missed a LyXRCTags element in
@@ -1041,8 +1038,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                case RC_GROUP_LAYOUTS:
                        lexrc >> group_layouts;
                        break;
-               case RC_FULL_SCREEN_LIMIT:
-                       lexrc >> full_screen_limit;
+               case RC_SCREEN_LIMIT:
+                       lexrc >> screen_limit;
                        break;
                case RC_FULL_SCREEN_TOOLBARS:
                        lexrc >> full_screen_toolbars;
@@ -1059,11 +1056,15 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                case RC_FULL_SCREEN_MENUBAR:
                        lexrc >> full_screen_menubar;
                        break;
-               case RC_FULL_SCREEN_WIDTH:
-                       lexrc >> full_screen_width;
+               case RC_SCREEN_WIDTH:
+                       lexrc >> screen_width;
                        break;
                case RC_OPEN_BUFFERS_IN_TABS:
                        lexrc >> open_buffers_in_tabs;
+#ifdef USE_MACOSX_PACKAGING
+                       if (appleUserTabbingPreferenceAlways())
+                               open_buffers_in_tabs = true;
+#endif
                        break;
                case RC_SINGLE_CLOSE_TAB_BUTTON:
                        lexrc >> single_close_tab_button;
@@ -1134,6 +1135,19 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
                        }
                        break;
 
+               case RC_DRAW_STRATEGY:
+                       if (lexrc.next()) {
+                               string const tmp = lexrc.getString();
+                               if (tmp == "partial")
+                                       draw_strategy = DS_PARTIAL;
+                               else if (tmp == "backingstore")
+                                       draw_strategy = DS_BACKINGSTORE;
+                               else {
+                                       draw_strategy = DS_PARTIAL;
+                                       LYXERR0("Unrecognized draw strategy " << tmp <<'"');
+                               }
+                       }
+                       break;
 
                case RC_LAST:
                        break; // this is just a dummy
@@ -1648,8 +1662,8 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
        case RC_CITATION_SEARCH:
                if (ignore_system_lyxrc ||
                    citation_search != system_lyxrc.citation_search) {
-                       os << "# Set to true to use script to search\n"
-                          << "# locl disk for citation targets.\n"
+                       os << "# Set to true to use script to search"
+                          << " local disk for citation targets.\n"
                           << "\\citation_search "
                           << convert<string>(citation_search)
                           << '\n';
@@ -1906,11 +1920,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
                // fall through
-       case RC_FULL_SCREEN_LIMIT:
+       case RC_SCREEN_LIMIT:
                if (ignore_system_lyxrc ||
-                   full_screen_limit != system_lyxrc.full_screen_limit) {
-                       os << "\\fullscreen_limit "
-                          << convert<string>(full_screen_limit)
+                   screen_limit != system_lyxrc.screen_limit) {
+                       os << "\\screen_limit "
+                          << convert<string>(screen_limit)
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -1966,11 +1980,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                if (tag != RC_LAST)
                        break;
                // fall through
-       case RC_FULL_SCREEN_WIDTH:
+       case RC_SCREEN_WIDTH:
                if (ignore_system_lyxrc ||
-                   full_screen_width != system_lyxrc.full_screen_width) {
-                       os << "\\fullscreen_width "
-                          << convert<string>(full_screen_width)
+                   screen_width != system_lyxrc.screen_width) {
+                       os << "\\screen_width "
+                          << screen_width.asString()
                           << '\n';
                }
                if (tag != RC_LAST)
@@ -2021,10 +2035,28 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
                }
                if (tag != RC_LAST)
                        break;
+               // fall through
+       case RC_DRAW_STRATEGY:
+               if (ignore_system_lyxrc ||
+                       draw_strategy != system_lyxrc.draw_strategy) {
+                       string status;
+                       switch (draw_strategy) {
+                       case DS_PARTIAL:
+                               status = "partial";
+                               break;
+                       case DS_BACKINGSTORE:
+                               status = "backingstore";
+                               break;
+                       }
+                       os << "\\draw_strategy " << status << '\n';
+               }
+               if (tag != RC_LAST)
+                       break;
+               // fall through
 
        os << "\n#\n"
-                       << "# COLOR SECTION ###################################\n"
-                       << "#\n\n";
+               << "# COLOR SECTION ###################################\n"
+               << "#\n\n";
 
        // fall through
        case RC_SET_COLOR:
@@ -2910,6 +2942,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
                                package().document_dir() = FileName(lyxrc.document_path);
                }
                // fall through
+       case LyXRC::RC_DRAW_STRATEGY:
        case LyXRC::RC_EDITOR_ALTERNATIVES:
        case LyXRC::RC_ESC_CHARS:
        case LyXRC::RC_EXAMPLEPATH:
@@ -3031,13 +3064,13 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new)
        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_SCREEN_LIMIT:
        case LyXRC::RC_FULL_SCREEN_SCROLLBAR:
        case LyXRC::RC_FULL_SCREEN_MENUBAR:
        case LyXRC::RC_FULL_SCREEN_STATUSBAR:
        case LyXRC::RC_FULL_SCREEN_TABBAR:
        case LyXRC::RC_FULL_SCREEN_TOOLBARS:
-       case LyXRC::RC_FULL_SCREEN_WIDTH:
+       case LyXRC::RC_SCREEN_WIDTH:
        case LyXRC::RC_VISUAL_CURSOR:
        case LyXRC::RC_CLOSE_BUFFER_WITH_LAST_VIEW:
        case LyXRC::RC_VIEWER: