X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FLyXRC.cpp;h=6bc28e960a979dd3a7d73fefc773848fe2e1d9d2;hb=33b7088719c3c72e81483e3a82a321971403f505;hp=d4bac81278c0682b98568ffa6a196dd5a7e8f085;hpb=c671740d8323c99526f0d3d2e9bc34b6accc65b6;p=lyx.git diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp index d4bac81278..6bc28e960a 100644 --- a/src/LyXRC.cpp +++ b/src/LyXRC.cpp @@ -18,30 +18,32 @@ #include "LyXRC.h" +#include "BufferList.h" #include "ColorSet.h" #include "Converter.h" #include "FontEnums.h" #include "Format.h" +#include "FuncCode.h" +#include "FuncRequest.h" #include "Lexer.h" #include "LyX.h" #include "Mover.h" -#include "Session.h" #include "SpellChecker.h" #include "version.h" -#include "graphics/GraphicsTypes.h" - #include "support/convert.h" #include "support/debug.h" #include "support/environment.h" #include "support/FileName.h" #include "support/filetools.h" -#include "support/gettext.h" #include "support/lstrings.h" #include "support/os.h" #include "support/Package.h" #include "support/TempFile.h" -#include "support/userinfo.h" + +#ifdef USE_MACOSX_PACKAGING +#include "support/AppleSupport.h" +#endif #include #include @@ -58,8 +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 = 19; // rgh: remove print support - +static unsigned int const LYXRC_FILEFORMAT = 36; // rkh: spellcheck_continuously default // when adding something to this array keep it sorted! LexerKeyword lyxrcTags[] = { { "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND }, @@ -76,6 +77,9 @@ LexerKeyword lyxrcTags[] = { { "\\bind_file", LyXRC::RC_BINDFILE }, { "\\check_lastfiles", LyXRC::RC_CHECKLASTFILES }, { "\\chktex_command", LyXRC::RC_CHKTEX_COMMAND }, + { "\\citation_search", LyXRC::RC_CITATION_SEARCH }, + { "\\citation_search_pattern", LyXRC::RC_CITATION_SEARCH_PATTERN }, + { "\\citation_search_view", LyXRC::RC_CITATION_SEARCH_VIEW }, { "\\close_buffer_with_last_view", LyXRC::RC_CLOSE_BUFFER_WITH_LAST_VIEW }, { "\\completion_cursor_text", LyXRC::RC_COMPLETION_CURSOR_TEXT }, { "\\completion_inline_delay", LyXRC::RC_COMPLETION_INLINE_DELAY }, @@ -90,13 +94,15 @@ 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 }, + { "\\ct_markup_copied", LyXRC::RC_CT_MARKUP_COPIED }, { "\\cursor_follows_scrollbar", LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR }, { "\\cursor_width", LyXRC::RC_CURSOR_WIDTH }, - { "\\date_insert_format", LyXRC::RC_DATE_INSERT_FORMAT }, { "\\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 }, { "\\default_view_format", LyXRC::RC_DEFAULT_VIEW_FORMAT }, { "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN }, { "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS }, @@ -104,8 +110,8 @@ LexerKeyword lyxrcTags[] = { { "\\editor_alternatives", LyXRC::RC_EDITOR_ALTERNATIVES }, { "\\escape_chars", LyXRC::RC_ESC_CHARS }, { "\\example_path", LyXRC::RC_EXAMPLEPATH }, + { "\\experimental:bookmarks_visibility", LyXRC::RC_BOOKMARKS_VISIBILITY }, { "\\export_overwrite", LyXRC::RC_EXPORT_OVERWRITE }, - { "\\font_encoding", LyXRC::RC_FONT_ENCODING }, { "\\format", LyXRC::RC_FILEFORMAT }, { "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI }, { "\\forward_search_pdf", LyXRC::RC_FORWARD_SEARCH_PDF }, @@ -123,6 +129,7 @@ LexerKeyword lyxrcTags[] = { { "\\index_alternatives", LyXRC::RC_INDEX_ALTERNATIVES }, { "\\index_command", LyXRC::RC_INDEX_COMMAND }, { "\\input", LyXRC::RC_INPUT }, + { "\\jbibtex_alternatives", LyXRC::RC_JBIBTEX_ALTERNATIVES }, { "\\jbibtex_command", LyXRC::RC_JBIBTEX_COMMAND }, { "\\jindex_command", LyXRC::RC_JINDEX_COMMAND }, { "\\kbmap", LyXRC::RC_KBMAP }, @@ -156,6 +163,8 @@ LexerKeyword lyxrcTags[] = { { "\\print_landscape_flag", LyXRC::RC_PRINTLANDSCAPEFLAG }, { "\\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 }, @@ -188,14 +197,16 @@ LexerKeyword lyxrcTags[] = { { "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH }, { "\\ui_file", LyXRC::RC_UIFILE }, { "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE }, + { "\\use_converter_needauth", LyXRC::RC_USE_CONVERTER_NEEDAUTH }, + { "\\use_converter_needauth_forbidden", LyXRC::RC_USE_CONVERTER_NEEDAUTH_FORBIDDEN }, { "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS }, - { "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE }, - { "\\use_qimage", LyXRC::RC_USE_QIMAGE }, + { "\\use_native_filedialog", LyXRC::RC_USE_NATIVE_FILEDIALOG }, // compatibility with versions older than 1.4.0 only { "\\use_system_colors", LyXRC::RC_USE_SYSTEM_COLORS }, { "\\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 @@ -207,155 +218,6 @@ LexerKeyword lyxrcTags[] = { const int lyxrcCount = sizeof(lyxrcTags) / sizeof(lyxrcTags[0]); -} // namespace anon - - -LyXRC::LyXRC() -{ - setDefaults(); -} - - -void LyXRC::setDefaults() -{ - icon_set = string(); - use_system_theme_icons = false; - bind_file = "cua"; - def_file = "default"; - ui_file = "default"; - // The current document directory - texinputs_prefix = "."; - print_landscape_flag = "-t landscape"; - print_paper_flag = "-t"; - print_paper_dimension_flag = "-T"; - document_path.erase(); - view_dvi_paper_option.erase(); - default_view_format = "pdf2"; - default_otf_view_format = "pdf4"; - chktex_command = "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38"; - bibtex_command = "bibtex"; - fontenc = "default"; - index_command = "makeindex -c -q"; - nomencl_command = "makeindex -s nomencl.ist"; - dpi = 75; - // Because a screen is typically wider than a piece of paper: - zoom = 150; - allow_geometry_session = true; - // Default LaTeX font size: - font_sizes[FONT_SIZE_TINY] = "5.0"; - font_sizes[FONT_SIZE_SCRIPT] = "7.0"; - font_sizes[FONT_SIZE_FOOTNOTE] = "8.0"; - font_sizes[FONT_SIZE_SMALL] = "9.0"; - font_sizes[FONT_SIZE_NORMAL] = "10.0"; - font_sizes[FONT_SIZE_LARGE] = "12.0"; - font_sizes[FONT_SIZE_LARGER] = "14.4"; - font_sizes[FONT_SIZE_LARGEST] = "17.26"; - font_sizes[FONT_SIZE_HUGE] = "20.74"; - font_sizes[FONT_SIZE_HUGER] = "24.88"; - use_scalable_fonts = true; - roman_font_name = ""; - sans_font_name = ""; - typewriter_font_name = ""; - autosave = 300; - auto_region_delete = true; - auto_reset_options = false; - plaintext_linelen = 65; - mouse_wheel_speed = 1.0; - num_lastfiles = maxlastfiles; - check_lastfiles = true; - use_lastfilepos = true; - load_session = false; - make_backup = true; - save_compressed = false; - save_origin = false; - backupdir_path.erase(); - display_graphics = true; - // Spellchecker settings: -// 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"; -#else - spellchecker = "aspell"; -#endif - spellchecker_accept_compound = false; - spellcheck_continuously = false; - completion_minlength = 6; - spellcheck_notes = true; - use_kbmap = false; - visual_cursor = false; - auto_number = true; - mark_foreign_language = true; - language_auto_begin = true; - language_auto_end = true; - language_global_options = true; - language_package_selection = LP_AUTO; - language_custom_package = "\\usepackage{babel}"; - language_command_begin = "\\selectlanguage{$$lang}"; - language_command_local = "\\foreignlanguage{$$lang}{"; - sort_layouts = false; - group_layouts = true; - gui_language = "auto"; - show_banner = true; - windows_style_tex_paths = false; - tex_allows_spaces = false; - date_insert_format = "%x"; - cursor_follows_scrollbar = false; - scroll_below_document = false; - scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_CTRL; - paragraph_markers = false; - mac_dontswap_ctrl_meta = false; - mac_like_cursor_movement = false; - macro_edit_style = MACRO_EDIT_INLINE_BOX; - dialogs_iconify_with_main = false; - preview = PREVIEW_OFF; - preview_hashed_labels = false; - preview_scale_factor = 1.0; - use_converter_cache = true; - use_system_colors = false; - use_tooltip = true; - use_pixmap_cache = false; - use_qimage = true; - converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months - user_name = to_utf8(support::user_name()); - 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; - - // Fullscreen settings - full_screen_limit = false; - full_screen_toolbars = true; - full_screen_tabbar = true; - full_screen_menubar = true; - full_screen_scrollbar = true; - full_screen_width = 700; - - completion_cursor_text = true; - completion_popup_math = true; - completion_popup_text = false; - completion_popup_delay = 2.0; - completion_popup_after_complete = true; - autocorrection_math = false; - completion_inline_math = true; - completion_inline_text = false; - completion_inline_dots = -1; - completion_inline_delay = 0.2; - default_decimal_point = "."; - default_length_unit = Length::CM; - cursor_width = 1; - close_buffer_with_last_view = "yes"; - mouse_middlebutton_paste = true; -} - - -namespace { void oldFontFormat(string & family, string & foundry) { @@ -367,7 +229,7 @@ void oldFontFormat(string & family, string & foundry) foundry.erase(); } -} // namespace anon +} // namespace bool LyXRC::read(FileName const & filename, bool check_format) @@ -395,6 +257,8 @@ bool LyXRC::read(FileName const & filename, bool check_format) lexrc2.setFile(tempfile); LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'..."); retval = read(lexrc2, check_format); + if (retval == FormatMismatch) + LYXERR0("Conversion failed for " << filename.absFileName()); } return retval == ReadOK; } @@ -420,7 +284,11 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) return ReadError; // format prior to 2.0 and introduction of format tag - unsigned int format = 0; + 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 @@ -443,14 +311,14 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) switch (static_cast(le)) { case RC_LYXRCFORMAT: if (lexrc.next()) - format = lexrc.getInteger(); + rc_format = lexrc.getInteger(); break; case RC_INPUT: // Include file if (lexrc.next()) { FileName const tmp = libFileSearch(string(), lexrc.getString()); - if (read(tmp, check_format)) { + if (!read(tmp, check_format)) { lexrc.printError( "Error reading included file: " + tmp.absFileName()); } @@ -520,10 +388,6 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) } break; - case RC_FONT_ENCODING: - lexrc >> fontenc; - break; - case RC_PRINTLANDSCAPEFLAG: lexrc >> print_landscape_flag; break; @@ -536,6 +400,12 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc >> print_paper_flag; break; + case RC_PYGMENTIZE_COMMAND: + if (lexrc.next(true)) { + pygmentize_command = lexrc.getString(); + } + break; + case RC_VIEWDVI_PAPEROPTION: if (lexrc.next()) view_dvi_paper_option = lexrc.getString(); @@ -567,6 +437,12 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) } break; + case RC_JBIBTEX_ALTERNATIVES: + if (lexrc.next(true)) { + jbibtex_alternatives.insert(lexrc.getString()); + } + break; + case RC_INDEX_ALTERNATIVES: if (lexrc.next(true)) { index_alternatives.insert(lexrc.getString()); @@ -602,7 +478,9 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) break; case RC_SCREEN_ZOOM: - lexrc >> zoom; + lexrc >> defaultZoom; + if (defaultZoom < 10) + defaultZoom = 10; break; case RC_GEOMETRY_SESSION: @@ -610,16 +488,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: @@ -631,45 +509,33 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) break; case RC_DOCUMENTPATH: - if (lexrc.next()) { + if (lexrc.next()) document_path = os::internal_path(lexrc.getString()); - document_path = expandPath(document_path); - } break; case RC_EXAMPLEPATH: - if (lexrc.next()) { + if (lexrc.next()) example_path = os::internal_path(lexrc.getString()); - example_path = expandPath(example_path); - } break; case RC_TEMPLATEPATH: - if (lexrc.next()) { + if (lexrc.next()) template_path = os::internal_path(lexrc.getString()); - template_path = expandPath(template_path); - } break; case RC_TEMPDIRPATH: - if (lexrc.next()) { + if (lexrc.next()) tempdir_path = os::internal_path(lexrc.getString()); - tempdir_path = expandPath(tempdir_path); - } break; case RC_THESAURUSDIRPATH: - if (lexrc.next()) { + if (lexrc.next()) thesaurusdir_path = os::internal_path(lexrc.getString()); - thesaurusdir_path = expandPath(thesaurusdir_path); - } break; case RC_HUNSPELLDIR_PATH: - if (lexrc.next()) { + if (lexrc.next()) hunspelldir_path = os::internal_path(lexrc.getString()); - hunspelldir_path = expandPath(hunspelldir_path); - } break; case RC_USELASTFILEPOS: @@ -784,13 +650,17 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc.printError("Missing color tag."); break; } - string lyx_name = lexrc.getString(); + string const lyx_name = lexrc.getString(); if (!lexrc.next()) { lexrc.printError("Missing color name for color: `$$Token'"); break; } - string x11_name = lexrc.getString(); + string const x11_name = lexrc.getString(); + + string x11_darkname = x11_name; + if (lexrc.next()) + x11_darkname = lexrc.getString(); ColorCode const col = lcolor.getFromLyXName(lyx_name); @@ -799,8 +669,10 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) col == Color_ignore) break; - if (!lcolor.setColor(col, x11_name)) + if (!lcolor.setColor(col, x11_name, x11_darkname)) LYXERR0("Bad lyxrc set_color for " << lyx_name); + LYXERR(Debug::LYXRC, "Set " << lyx_name << "(" << col << ") to " + << x11_name << " and " << x11_darkname); break; } @@ -811,11 +683,36 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_SERVERPIPE: if (lexrc.next()) { - lyxpipes = os::internal_path(lexrc.getString()); - lyxpipes = expandPath(lyxpipes); + string userdir = package().user_support().absFileName(); + if (userdir.back() == '/') + userdir.pop_back(); + lyxpipes = subst(os::internal_path(lexrc.getString()), "$$UserDir", + userdir); } break; + case RC_CITATION_SEARCH: + lexrc >> citation_search; + break; + + case RC_CITATION_SEARCH_PATTERN: + if (lexrc.next()) + citation_search_pattern = lexrc.getString(); + break; + + case RC_CITATION_SEARCH_VIEW: + if (lexrc.next()) + citation_search_view = lexrc.getString(); + break; + + case RC_CT_ADDITIONS_UNDERLINED: + lexrc >> ct_additions_underlined; + break; + + case RC_CT_MARKUP_COPIED: + lexrc >> ct_markup_copied; + break; + case RC_CURSOR_FOLLOWS_SCROLLBAR: lexrc >> cursor_follows_scrollbar; break; @@ -861,18 +758,15 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_ACCEPT_COMPOUND: lexrc >> spellchecker_accept_compound; break; + case RC_USE_NATIVE_FILEDIALOG: + lexrc >> use_native_filedialog; + break; case RC_USE_SYSTEM_COLORS: lexrc >> use_system_colors; break; case RC_USE_TOOLTIP: lexrc >> use_tooltip; break; - case RC_USE_PIXMAP_CACHE: - lexrc >> use_pixmap_cache; - break; - case RC_USE_QIMAGE: - lexrc >> use_qimage; - break; case RC_SPELLCHECKER: lexrc >> spellchecker; break; @@ -898,21 +792,16 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc >> save_origin; break; case RC_BACKUPDIR_PATH: - if (lexrc.next()) { + if (lexrc.next()) backupdir_path = os::internal_path(lexrc.getString()); - backupdir_path = expandPath(backupdir_path); - } 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()) default_length_unit = (Length::UNIT) lexrc.getInteger(); break; - case RC_DATE_INSERT_FORMAT: - lexrc >> date_insert_format; - break; case RC_LANGUAGE_CUSTOM_PACKAGE: lexrc >> language_custom_package; break; @@ -952,6 +841,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; @@ -995,16 +887,17 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_VIEWER: { string format, command; lexrc >> format >> command; - formats.setViewer(format, command); + theFormats().setViewer(format, command); break; } case RC_FILEFORMAT: { bool ok = true; - string format, extensions, prettyname, shortcut; + string format, extensions, shortcut; + docstring prettyname; if (!(lexrc >> format >> extensions)) ok = false; if (ok && lexrc.next(true)) - prettyname = lexrc.getString(); + prettyname = lexrc.getDocString(); else ok = false; if (ok) @@ -1034,6 +927,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 `" @@ -1045,25 +940,27 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) if (theConverters().formatIsUsed(format)) LYXERR0("Can't delete format " << format); else - formats.erase(format); + theFormats().erase(format); } else { - formats.add(format, extensions, prettyname, + theFormats().add(format, extensions, prettyname, shortcut, viewer, editor, mime, flgs); } break; } case RC_VIEWER_ALTERNATIVES: { string format, command; - lexrc >> format; - lexrc >> command; - viewer_alternatives[format].insert(command); + if ((lexrc >> format) && lexrc.next(true)) { + command = lexrc.getString(); + viewer_alternatives[format].insert(command); + } break; } case RC_EDITOR_ALTERNATIVES: { string format, command; - lexrc >> format; - lexrc >> command; - editor_alternatives[format].insert(command); + if ((lexrc >> format) && lexrc.next(true)) { + command = lexrc.getString(); + editor_alternatives[format].insert(command); + } break; } @@ -1071,6 +968,10 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc >> default_otf_view_format; break; + case RC_DEFAULT_PLATEX_VIEW_FORMAT: + lexrc >> default_platex_view_format; + break; + case RC_DEFAULT_VIEW_FORMAT: lexrc >> default_view_format; break; @@ -1113,6 +1014,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; @@ -1121,6 +1025,12 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_USE_CONVERTER_CACHE: lexrc >> use_converter_cache; break; + case RC_USE_CONVERTER_NEEDAUTH_FORBIDDEN: + lexrc >> use_converter_needauth_forbidden; + break; + case RC_USE_CONVERTER_NEEDAUTH: + lexrc >> use_converter_needauth; + break; case RC_CONVERTER_CACHE_MAXAGE: lexrc >> converter_cache_maxage; break; @@ -1208,19 +1118,37 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc >> mouse_middlebutton_paste; break; + case RC_BOOKMARKS_VISIBILITY: + if (lexrc.next()) { + string const tmp = lexrc.getString(); + if (tmp == "none") + bookmarks_visibility = BMK_NONE; + else if (tmp == "margin") + bookmarks_visibility = BMK_MARGIN; + else if (tmp == "inline") + bookmarks_visibility = BMK_INLINE; + else { + bookmarks_visibility = BMK_NONE; + LYXERR0("Unrecognized bookmark visibility " << tmp <<'"'); + } + } + break; + + case RC_LAST: break; // this is just a dummy } // This is triggered the first time through the loop unless // we hit a format tag. - if (check_format && format != LYXRC_FILEFORMAT) + if (check_format && rc_format != LYXRC_FILEFORMAT) return FormatMismatch; } /// Update converters data-structures - theConverters().update(formats); + theConverters().update(theFormats()); theConverters().buildGraph(); + theBufferList().invalidateConverterCache(); return ReadOK; } @@ -1269,7 +1197,7 @@ namespace { "\"", "\\\""); } -} +} // namespace void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) const @@ -1306,7 +1234,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_DEFFILE: if (ignore_system_lyxrc || def_file != system_lyxrc.def_file) { @@ -1323,7 +1251,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# MISC SECTION ######################################\n" << "#\n\n"; // bind files are not done here. - + // fall through case RC_PATH_PREFIX: if (ignore_system_lyxrc || path_prefix != system_lyxrc.path_prefix) { @@ -1331,6 +1259,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_UIFILE: if (ignore_system_lyxrc || ui_file != system_lyxrc.ui_file) { @@ -1339,6 +1268,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_AUTOREGIONDELETE: if (ignore_system_lyxrc || auto_region_delete != system_lyxrc.auto_region_delete) { @@ -1349,6 +1279,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_AUTORESET_OPTIONS: if (ignore_system_lyxrc || auto_reset_options != system_lyxrc.auto_reset_options) { @@ -1360,6 +1291,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_AUTOSAVE: if (ignore_system_lyxrc || autosave != system_lyxrc.autosave) { @@ -1368,6 +1300,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_DISPLAY_GRAPHICS: if (ignore_system_lyxrc || display_graphics != system_lyxrc.display_graphics) { @@ -1379,6 +1312,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SORT_LAYOUTS: if (ignore_system_lyxrc || sort_layouts != system_lyxrc.sort_layouts) { @@ -1387,6 +1321,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_GROUP_LAYOUTS: if (ignore_system_lyxrc || group_layouts != system_lyxrc.group_layouts) { @@ -1395,6 +1330,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_VIEWDVI_PAPEROPTION: if (ignore_system_lyxrc || view_dvi_paper_option @@ -1406,6 +1342,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_CHKTEX_COMMAND: if (ignore_system_lyxrc || chktex_command != system_lyxrc.chktex_command) { @@ -1413,6 +1350,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_BIBTEX_ALTERNATIVES: { CommandSet::const_iterator it = bibtex_alternatives.begin(); CommandSet::const_iterator end = bibtex_alternatives.end(); @@ -1425,6 +1363,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; } + // fall through case RC_BIBTEX_COMMAND: if (ignore_system_lyxrc || bibtex_command != system_lyxrc.bibtex_command) { @@ -1432,6 +1371,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_JBIBTEX_COMMAND: if (ignore_system_lyxrc || jbibtex_command != system_lyxrc.jbibtex_command) { @@ -1439,6 +1379,20 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + case RC_JBIBTEX_ALTERNATIVES: { + CommandSet::const_iterator it = jbibtex_alternatives.begin(); + CommandSet::const_iterator end = jbibtex_alternatives.end(); + for ( ; it != end; ++it) { + if (ignore_system_lyxrc + || !system_lyxrc.jbibtex_alternatives.count(*it)) + os << "\\jbibtex_alternatives \"" + << *it << "\"\n"; + } + if (tag != RC_LAST) + break; + } + // fall through case RC_INDEX_ALTERNATIVES: { CommandSet::const_iterator it = index_alternatives.begin(); CommandSet::const_iterator end = index_alternatives.end(); @@ -1451,6 +1405,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; } + // fall through case RC_INDEX_COMMAND: if (ignore_system_lyxrc || index_command != system_lyxrc.index_command) { @@ -1458,6 +1413,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_JINDEX_COMMAND: if (ignore_system_lyxrc || jindex_command != system_lyxrc.jindex_command) { @@ -1465,6 +1421,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SPLITINDEX_COMMAND: if (ignore_system_lyxrc || splitindex_command != system_lyxrc.splitindex_command) { @@ -1472,6 +1429,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_NOMENCL_COMMAND: if (ignore_system_lyxrc || nomencl_command != system_lyxrc.nomencl_command) { @@ -1479,6 +1437,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + case RC_PYGMENTIZE_COMMAND: + if (ignore_system_lyxrc || + pygmentize_command != system_lyxrc.pygmentize_command) { + os << "\\pygmentize_command \"" << escapeCommand(pygmentize_command) << "\"\n"; + } + if (tag != RC_LAST) + break; + // fall through case RC_TEX_EXPECTS_WINDOWS_PATHS: // Don't write this setting to the preferences file, // but allow temporary changes (bug 7557). @@ -1488,6 +1455,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_TEX_ALLOWS_SPACES: if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) { os << "\\tex_allows_spaces " @@ -1495,6 +1463,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_KBMAP: if (ignore_system_lyxrc || use_kbmap != system_lyxrc.use_kbmap) { @@ -1502,6 +1471,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_KBMAP_PRIMARY: if (ignore_system_lyxrc || primary_kbmap != system_lyxrc.primary_kbmap) { @@ -1510,6 +1480,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_KBMAP_SECONDARY: if (ignore_system_lyxrc || secondary_kbmap != system_lyxrc.secondary_kbmap) { @@ -1518,6 +1489,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SERVERPIPE: if (ignore_system_lyxrc || lyxpipes != system_lyxrc.lyxpipes) { @@ -1526,25 +1498,22 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - case RC_DATE_INSERT_FORMAT: - if (ignore_system_lyxrc || - date_insert_format != system_lyxrc.date_insert_format) { - os << "\\date_insert_format \"" << date_insert_format - << "\"\n"; - } - if (tag != RC_LAST) - break; - + // fall through case RC_USER_NAME: os << "\\user_name \"" << user_name << "\"\n"; if (tag != RC_LAST) break; - + // fall through case RC_USER_EMAIL: os << "\\user_email \"" << user_email << "\"\n"; 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) { @@ -1552,7 +1521,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_PREVIEW: if (ignore_system_lyxrc || preview != system_lyxrc.preview) { @@ -1572,7 +1541,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_PREVIEW_HASHED_LABELS: if (ignore_system_lyxrc || preview_hashed_labels != @@ -1582,7 +1551,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_PREVIEW_SCALE_FACTOR: if (ignore_system_lyxrc || preview_scale_factor != system_lyxrc.preview_scale_factor) { @@ -1591,7 +1560,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_USE_CONVERTER_CACHE: if (ignore_system_lyxrc || use_converter_cache != system_lyxrc.use_converter_cache) { @@ -1600,7 +1569,25 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through + case RC_USE_CONVERTER_NEEDAUTH_FORBIDDEN: + if (ignore_system_lyxrc || + use_converter_needauth_forbidden != system_lyxrc.use_converter_needauth_forbidden) { + os << "\\use_converter_needauth_forbidden " + << convert(use_converter_needauth_forbidden) << '\n'; + } + if (tag != RC_LAST) + break; + // fall through + case RC_USE_CONVERTER_NEEDAUTH: + if (ignore_system_lyxrc || + use_converter_needauth != system_lyxrc.use_converter_needauth) { + os << "\\use_converter_needauth " + << convert(use_converter_needauth) << '\n'; + } + if (tag != RC_LAST) + break; + // fall through case RC_CONVERTER_CACHE_MAXAGE: if (ignore_system_lyxrc || converter_cache_maxage != system_lyxrc.converter_cache_maxage) { @@ -1613,7 +1600,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c os << "\n#\n" << "# SCREEN & FONTS SECTION ############################\n" << "#\n\n"; - + // fall through case RC_ICON_SET: if (ignore_system_lyxrc || icon_set != system_lyxrc.icon_set) { @@ -1622,7 +1609,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_USE_SYSTEM_THEME_ICONS: if (ignore_system_lyxrc || use_system_theme_icons != system_lyxrc.use_system_theme_icons) { @@ -1632,7 +1619,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SCREEN_DPI: if (ignore_system_lyxrc || dpi != system_lyxrc.dpi) { @@ -1640,13 +1627,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_ZOOM: if (ignore_system_lyxrc || - zoom != system_lyxrc.zoom) { - os << "\\screen_zoom " << zoom << '\n'; + defaultZoom != system_lyxrc.defaultZoom) { + os << "\\screen_zoom " << defaultZoom << '\n'; } if (tag != RC_LAST) break; + // fall through case RC_GEOMETRY_SESSION: if (ignore_system_lyxrc || allow_geometry_session != system_lyxrc.allow_geometry_session) { @@ -1655,6 +1644,57 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + 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" + << "\\citation_search " + << convert(citation_search) + << '\n'; + } + if (tag != RC_LAST) + break; + // fall through + case RC_CITATION_SEARCH_VIEW: + if (ignore_system_lyxrc || + citation_search_view != system_lyxrc.citation_search_view) { + os << "\\citation_search_view \"" + << citation_search_view << "\"\n"; + } + if (tag != RC_LAST) + break; + // fall through + case RC_CITATION_SEARCH_PATTERN: + if (ignore_system_lyxrc || + citation_search_pattern != system_lyxrc.citation_search_pattern) { + os << "\\citation_search_pattern \"" + << citation_search_pattern << "\"\n"; + } + 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(ct_additions_underlined) << '\n'; + } + if (tag != RC_LAST) + break; + // fall through + case RC_CT_MARKUP_COPIED: + if (ignore_system_lyxrc || + ct_markup_copied + != system_lyxrc.ct_markup_copied) { + os << "\\ct_markup_copied " + << convert(ct_markup_copied) << '\n'; + } + if (tag != RC_LAST) + break; + // fall through case RC_CURSOR_FOLLOWS_SCROLLBAR: if (ignore_system_lyxrc || cursor_follows_scrollbar @@ -1664,6 +1704,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_CURSOR_WIDTH: if (ignore_system_lyxrc || cursor_width @@ -1673,6 +1714,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCROLL_BELOW_DOCUMENT: if (ignore_system_lyxrc || scroll_below_document @@ -1682,6 +1724,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_PARAGRAPH_MARKERS: if (ignore_system_lyxrc || paragraph_markers @@ -1691,6 +1734,27 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + case RC_BOOKMARKS_VISIBILITY: + if (ignore_system_lyxrc || + bookmarks_visibility != system_lyxrc.bookmarks_visibility) { + string status; + switch (bookmarks_visibility) { + case BMK_NONE: + status = "none"; + break; + case BMK_INLINE: + status = "inline"; + break; + case BMK_MARGIN: + status = "margin"; + break; + } + os << "\\experimental:bookmarks_visibility " << status << '\n'; + } + if (tag != RC_LAST) + break; + // fall through case RC_MAC_DONTSWAP_CTRL_META: if (ignore_system_lyxrc || mac_dontswap_ctrl_meta @@ -1700,6 +1764,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MAC_LIKE_CURSOR_MOVEMENT: if (ignore_system_lyxrc || mac_like_cursor_movement @@ -1709,6 +1774,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MACRO_EDIT_STYLE: if (ignore_system_lyxrc || macro_edit_style @@ -1722,6 +1788,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_DIALOGS_ICONIFY_WITH_MAIN: if (ignore_system_lyxrc || dialogs_iconify_with_main @@ -1731,6 +1798,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_ROMAN: if (ignore_system_lyxrc || roman_font_name != system_lyxrc.roman_font_name) { @@ -1739,6 +1807,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_ROMAN_FOUNDRY: if (ignore_system_lyxrc || roman_font_foundry != system_lyxrc.roman_font_foundry) { @@ -1747,6 +1816,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_SANS: if (ignore_system_lyxrc || sans_font_name != system_lyxrc.sans_font_name) { @@ -1755,6 +1825,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_SANS_FOUNDRY: if (ignore_system_lyxrc || sans_font_foundry != system_lyxrc.sans_font_foundry) { @@ -1763,6 +1834,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_TYPEWRITER: if (ignore_system_lyxrc || typewriter_font_name != system_lyxrc.typewriter_font_name) { @@ -1771,6 +1843,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SCREEN_FONT_TYPEWRITER_FOUNDRY: if (ignore_system_lyxrc || typewriter_font_foundry != system_lyxrc.typewriter_font_foundry) { @@ -1779,7 +1852,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SCREEN_FONT_SCALABLE: if (ignore_system_lyxrc || use_scalable_fonts != system_lyxrc.use_scalable_fonts) { @@ -1789,48 +1862,50 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // 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); } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_LIMIT: if (ignore_system_lyxrc || full_screen_limit != system_lyxrc.full_screen_limit) { @@ -1840,6 +1915,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_TOOLBARS: if (ignore_system_lyxrc || full_screen_toolbars != system_lyxrc.full_screen_toolbars) { @@ -1849,6 +1925,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_SCROLLBAR: if (ignore_system_lyxrc || full_screen_scrollbar != system_lyxrc.full_screen_scrollbar) { @@ -1858,6 +1935,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_STATUSBAR: if (ignore_system_lyxrc || full_screen_statusbar != system_lyxrc.full_screen_statusbar) { @@ -1867,6 +1945,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_TABBAR: if (ignore_system_lyxrc || full_screen_tabbar != system_lyxrc.full_screen_tabbar) { @@ -1876,6 +1955,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FULL_SCREEN_MENUBAR: if (ignore_system_lyxrc || full_screen_menubar != system_lyxrc.full_screen_menubar) { @@ -1885,6 +1965,7 @@ 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: if (ignore_system_lyxrc || full_screen_width != system_lyxrc.full_screen_width) { @@ -1894,6 +1975,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_OPEN_BUFFERS_IN_TABS: if (ignore_system_lyxrc || open_buffers_in_tabs != system_lyxrc.open_buffers_in_tabs) { @@ -1903,6 +1985,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SINGLE_CLOSE_TAB_BUTTON: if (ignore_system_lyxrc || single_close_tab_button != system_lyxrc.single_close_tab_button) { @@ -1912,6 +1995,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SINGLE_INSTANCE: if (ignore_system_lyxrc || single_instance != system_lyxrc.single_instance) { @@ -1921,6 +2005,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FORWARD_SEARCH_DVI: if (ignore_system_lyxrc || forward_search_dvi != system_lyxrc.forward_search_dvi) { @@ -1928,6 +2013,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_FORWARD_SEARCH_PDF: if (ignore_system_lyxrc || forward_search_pdf != system_lyxrc.forward_search_pdf) { @@ -1940,15 +2026,19 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# COLOR SECTION ###################################\n" << "#\n\n"; + // fall through case RC_SET_COLOR: for (int i = 0; i < Color_ignore; ++i) { ColorCode lc = static_cast(i); - string const col = lcolor.getX11Name(lc); + string const col = lcolor.getAllX11HexNames(lc).first; + string const darkcol = lcolor.getAllX11HexNames(lc).second; if (ignore_system_lyxrc - || col != system_lcolor.getX11Name(lc)) { + || col != system_lcolor.getAllX11HexNames(lc).first + || darkcol != system_lcolor.getAllX11HexNames(lc).second) { os << "\\set_color \"" << lcolor.getLyXName(lc) << "\" \"" - << col << "\"\n"; + << col << "\" \"" + << darkcol << "\"\n"; } } if (tag != RC_LAST) @@ -1958,6 +2048,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# PRINTER SECTION ###################################\n" << "#\n\n"; + // fall through case RC_PRINTLANDSCAPEFLAG: if (ignore_system_lyxrc || print_landscape_flag != system_lyxrc.print_landscape_flag) { @@ -1966,7 +2057,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_PRINTPAPERFLAG: if (ignore_system_lyxrc || print_paper_flag != system_lyxrc.print_paper_flag) { @@ -1975,7 +2066,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_PRINTPAPERDIMENSIONFLAG: if (ignore_system_lyxrc || print_paper_dimension_flag @@ -1990,6 +2081,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# TEX SECTION #######################################\n" << "#\n\n"; + // fall through case RC_TEXINPUTS_PREFIX: if (ignore_system_lyxrc || texinputs_prefix != system_lyxrc.texinputs_prefix) { @@ -1997,19 +2089,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - - case RC_FONT_ENCODING: - if (ignore_system_lyxrc || - fontenc != system_lyxrc.fontenc) { - os << "\\font_encoding \"" << fontenc << "\"\n"; - } - if (tag != RC_LAST) - break; - + // fall through os << "\n#\n" << "# FILE SECTION ######################################\n" << "#\n\n"; - + // fall through case RC_DOCUMENTPATH: if (ignore_system_lyxrc || document_path != system_lyxrc.document_path) { @@ -2018,6 +2102,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_USELASTFILEPOS: if (ignore_system_lyxrc || use_lastfilepos != system_lyxrc.use_lastfilepos) { @@ -2026,6 +2111,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LOADSESSION: if (ignore_system_lyxrc || load_session != system_lyxrc.load_session) { @@ -2034,6 +2120,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MOUSE_WHEEL_SPEED: if (ignore_system_lyxrc || mouse_wheel_speed != system_lyxrc.mouse_wheel_speed) { @@ -2041,6 +2128,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MOUSE_MIDDLEBUTTON_PASTE: if (ignore_system_lyxrc || mouse_middlebutton_paste != system_lyxrc.mouse_middlebutton_paste) { @@ -2049,6 +2137,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_INLINE_DELAY: if (ignore_system_lyxrc || completion_inline_delay != system_lyxrc.completion_inline_delay) { @@ -2056,6 +2145,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_INLINE_MATH: if (ignore_system_lyxrc || completion_inline_math != system_lyxrc.completion_inline_math) { @@ -2064,6 +2154,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_INLINE_TEXT: if (ignore_system_lyxrc || completion_inline_text != system_lyxrc.completion_inline_text) { @@ -2072,6 +2163,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_INLINE_DOTS: if (ignore_system_lyxrc || completion_inline_dots != system_lyxrc.completion_inline_dots) { @@ -2080,6 +2172,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_AUTOCORRECTION_MATH: if (ignore_system_lyxrc || autocorrection_math != system_lyxrc.autocorrection_math) { @@ -2088,6 +2181,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_POPUP_DELAY: if (ignore_system_lyxrc || completion_popup_delay != system_lyxrc.completion_popup_delay) { @@ -2095,6 +2189,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_POPUP_MATH: if (ignore_system_lyxrc || completion_popup_math != system_lyxrc.completion_popup_math) { @@ -2103,6 +2198,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_POPUP_TEXT: if (ignore_system_lyxrc || completion_popup_text != system_lyxrc.completion_popup_text) { @@ -2111,6 +2207,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_CURSOR_TEXT: if (ignore_system_lyxrc || completion_cursor_text != system_lyxrc.completion_cursor_text) { @@ -2119,6 +2216,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_POPUP_AFTER_COMPLETE: if (ignore_system_lyxrc || completion_popup_after_complete @@ -2128,6 +2226,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_COMPLETION_MINLENGTH: if (ignore_system_lyxrc || completion_minlength != system_lyxrc.completion_minlength) { @@ -2136,14 +2235,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - - case RC_NUMLASTFILES: + // fall through + case RC_NUMLASTFILES: if (ignore_system_lyxrc || num_lastfiles != system_lyxrc.num_lastfiles) { os << "\\num_lastfiles " << num_lastfiles << '\n'; } if (tag != RC_LAST) break; + // fall through case RC_CHECKLASTFILES: if (ignore_system_lyxrc || check_lastfiles != system_lyxrc.check_lastfiles) { @@ -2152,6 +2252,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_EXAMPLEPATH: if (ignore_system_lyxrc || example_path != system_lyxrc.example_path) { @@ -2160,6 +2261,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_TEMPLATEPATH: if (ignore_system_lyxrc || template_path != system_lyxrc.template_path) { @@ -2168,6 +2270,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_TEMPDIRPATH: if (ignore_system_lyxrc || tempdir_path != system_lyxrc.tempdir_path) { @@ -2176,6 +2279,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_THESAURUSDIRPATH: if (ignore_system_lyxrc || thesaurusdir_path != system_lyxrc.thesaurusdir_path) { @@ -2184,6 +2288,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_HUNSPELLDIR_PATH: if (ignore_system_lyxrc || hunspelldir_path != system_lyxrc.hunspelldir_path) { @@ -2192,6 +2297,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_PLAINTEXT_LINELEN: if (ignore_system_lyxrc || plaintext_linelen != system_lyxrc.plaintext_linelen) { @@ -2199,6 +2305,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MAKE_BACKUP: if (ignore_system_lyxrc || make_backup != system_lyxrc.make_backup) { @@ -2206,6 +2313,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SAVE_COMPRESSED: if (ignore_system_lyxrc || save_compressed != system_lyxrc.save_compressed) { @@ -2213,6 +2321,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_SAVE_ORIGIN: if (ignore_system_lyxrc || save_origin != system_lyxrc.save_origin) { @@ -2220,6 +2329,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_BACKUPDIR_PATH: if (ignore_system_lyxrc || backupdir_path != system_lyxrc.backupdir_path) { @@ -2237,6 +2347,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# SPELLCHECKER SECTION ##############################\n" << "#\n\n"; + // fall through case RC_ACCEPT_COMPOUND: if (ignore_system_lyxrc || spellchecker_accept_compound != system_lyxrc.spellchecker_accept_compound) { @@ -2245,6 +2356,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_ALT_LANG: if (ignore_system_lyxrc || spellchecker_alt_lang != system_lyxrc.spellchecker_alt_lang) { @@ -2253,6 +2365,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_ESC_CHARS: if (ignore_system_lyxrc || spellchecker_esc_chars != system_lyxrc.spellchecker_esc_chars) { @@ -2260,6 +2373,17 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + case RC_USE_NATIVE_FILEDIALOG: + if (ignore_system_lyxrc || + use_native_filedialog != system_lyxrc.use_native_filedialog) { + os << "\\use_native_filedialog " + << convert(use_native_filedialog) + << '\n'; + } + if (tag != RC_LAST) + break; + // fall through case RC_USE_SYSTEM_COLORS: if (ignore_system_lyxrc || use_system_colors != system_lyxrc.use_system_colors) { @@ -2269,6 +2393,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_USE_TOOLTIP: if (ignore_system_lyxrc || use_tooltip != system_lyxrc.use_tooltip) { @@ -2278,37 +2403,21 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - case RC_USE_PIXMAP_CACHE: - if (ignore_system_lyxrc || - use_pixmap_cache != system_lyxrc.use_pixmap_cache) { - os << "\\use_pixmap_cache " - << convert(use_pixmap_cache) - << '\n'; - } - if (tag != RC_LAST) - break; - case RC_USE_QIMAGE: - if (ignore_system_lyxrc || - use_qimage != system_lyxrc.use_qimage) { - os << "\\use_qimage " - << convert(use_qimage) - << '\n'; - } - if (tag != RC_LAST) - break; + // fall through os << "\n#\n" << "# LANGUAGE SUPPORT SECTION ##########################\n" << "#\n\n"; - case RC_DEFAULT_DECIMAL_POINT: + // fall through + 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; - + // fall through case RC_DEFAULT_LENGTH_UNIT: if (ignore_system_lyxrc || default_length_unit != system_lyxrc.default_length_unit) { @@ -2316,7 +2425,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SPELLCHECKER: if (ignore_system_lyxrc || spellchecker != system_lyxrc.spellchecker) { @@ -2324,7 +2433,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SPELLCHECK_CONTINUOUSLY: if (ignore_system_lyxrc || spellcheck_continuously != system_lyxrc.spellcheck_continuously) { @@ -2333,7 +2442,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SPELLCHECK_NOTES: if (ignore_system_lyxrc || spellcheck_notes != system_lyxrc.spellcheck_notes) { @@ -2342,7 +2451,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_VISUAL_CURSOR: if (ignore_system_lyxrc || visual_cursor != system_lyxrc.visual_cursor) { @@ -2350,6 +2459,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_CLOSE_BUFFER_WITH_LAST_VIEW: if (ignore_system_lyxrc || close_buffer_with_last_view != system_lyxrc.close_buffer_with_last_view) { @@ -2358,6 +2468,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_CUSTOM_PACKAGE: if (ignore_system_lyxrc || language_custom_package != system_lyxrc.language_custom_package) { @@ -2366,6 +2477,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_GLOBAL_OPTIONS: if (ignore_system_lyxrc || language_global_options @@ -2376,6 +2488,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_PACKAGE_SELECTION: if (ignore_system_lyxrc || language_package_selection != system_lyxrc.language_package_selection) { @@ -2397,6 +2510,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_COMMAND_BEGIN: if (ignore_system_lyxrc || language_command_begin @@ -2407,6 +2521,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_COMMAND_END: if (ignore_system_lyxrc || language_command_end @@ -2416,6 +2531,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_COMMAND_LOCAL: if (ignore_system_lyxrc || language_command_local @@ -2426,6 +2542,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_AUTO_BEGIN: if (ignore_system_lyxrc || language_auto_begin != system_lyxrc.language_auto_begin) { @@ -2434,6 +2551,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_LANGUAGE_AUTO_END: if (ignore_system_lyxrc || language_auto_end != system_lyxrc.language_auto_end) { @@ -2442,6 +2560,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_MARK_FOREIGN_LANGUAGE: if (ignore_system_lyxrc || mark_foreign_language @@ -2449,6 +2568,15 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c os << "\\mark_foreign_language " << convert(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(respect_os_kbd_language) << '\n'; + } + //fall through if (tag != RC_LAST) break; @@ -2456,6 +2584,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# 2nd MISC SUPPORT SECTION ##########################\n" << "#\n\n"; + // fall through case RC_AUTO_NUMBER: if (ignore_system_lyxrc || auto_number != system_lyxrc.auto_number) { @@ -2463,6 +2592,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_GUI_LANGUAGE: if (ignore_system_lyxrc || gui_language != system_lyxrc.gui_language) { @@ -2470,6 +2600,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through case RC_EXPORT_OVERWRITE: if (ignore_system_lyxrc || export_overwrite != system_lyxrc.export_overwrite) { @@ -2489,7 +2620,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - + // fall through case RC_SCROLL_WHEEL_ZOOM: if (ignore_system_lyxrc || scroll_wheel_zoom != system_lyxrc.scroll_wheel_zoom) { @@ -2517,12 +2648,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# FORMATS SECTION ##########################\n" << "#\n\n"; + // fall through case RC_FILEFORMAT: // New/modified formats - for (Formats::const_iterator cit = formats.begin(); - cit != formats.end(); ++cit) { + for (Formats::const_iterator cit = theFormats().begin(); + cit != theFormats().end(); ++cit) { Format const * format = - system_formats.getFormat(cit->name()); + theSystemFormats().getFormat(cit->name()); if (!format || format->extensions() != cit->extensions() || format->prettyname() != cit->prettyname() || @@ -2532,10 +2664,11 @@ 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() << "\" \"" - << cit->prettyname() << "\" \"" + << to_utf8(cit->prettyname()) << "\" \"" << cit->shortcut() << "\" \"" << escapeCommand(cit->viewer()) << "\" \"" << escapeCommand(cit->editor()) << "\" \""; @@ -2555,13 +2688,14 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } // Look for deleted formats - for (Formats::const_iterator cit = system_formats.begin(); - cit != system_formats.end(); ++cit) - if (!formats.getFormat(cit->name())) + for (Formats::const_iterator cit = theSystemFormats().begin(); + cit != theSystemFormats().end(); ++cit) + if (!theFormats().getFormat(cit->name())) os << "\\format \"" << cit->name() << "\" \"\" \"\" \"\" \"\" \"\" \"\" \"\"\n"; if (tag != RC_LAST) break; + // fall through case RC_VIEWER_ALTERNATIVES: { Alternatives::const_iterator it = viewer_alternatives.begin(); Alternatives::const_iterator const en = viewer_alternatives.end(); @@ -2587,6 +2721,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; } + // fall through case RC_EDITOR_ALTERNATIVES: { Alternatives::const_iterator it = editor_alternatives.begin(); Alternatives::const_iterator const en = editor_alternatives.end(); @@ -2612,6 +2747,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; } + // fall through case RC_DEFAULT_OTF_VIEW_FORMAT: if ((ignore_system_lyxrc || default_otf_view_format != system_lyxrc.default_otf_view_format) @@ -2620,13 +2756,25 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; + // fall through + case RC_DEFAULT_PLATEX_VIEW_FORMAT: + if ((ignore_system_lyxrc || + default_platex_view_format != system_lyxrc.default_platex_view_format) + && !default_platex_view_format.empty()) { + os << "\\default_platex_view_format " << default_platex_view_format << '\n'; + } + if (tag != RC_LAST) + break; + // fall through case RC_DEFAULT_VIEW_FORMAT: - if (ignore_system_lyxrc || - default_view_format != system_lyxrc.default_view_format) { + if ((ignore_system_lyxrc || + default_view_format != system_lyxrc.default_view_format) + && !default_view_format.empty()) { os << "\\default_view_format " << default_view_format << '\n'; } if (tag != RC_LAST) break; + // fall through case RC_VIEWER: // Ignore it if (tag != RC_LAST) @@ -2636,6 +2784,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "# CONVERTERS SECTION ##########################\n" << "#\n\n"; + // fall through case RC_CONVERTER: // Look for new converters for (Converters::const_iterator cit = theConverters().begin(); @@ -2660,7 +2809,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c << "\" \"" << cit->to() << "\" \"\" \"\"\n"; if (tag != RC_LAST) break; - + // fall through case RC_COPIER: if (tag == RC_LAST) os << "\n#\n" @@ -2710,6 +2859,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_ACCEPT_COMPOUND: if (lyxrc_orig.spellchecker_accept_compound != lyxrc_new.spellchecker_accept_compound) if (theSpellChecker()) theSpellChecker()->advanceChangeNumber(); + // fall through case LyXRC::RC_ALT_LANG: case LyXRC::RC_PLAINTEXT_LINELEN: case LyXRC::RC_AUTOCORRECTION_MATH: @@ -2721,6 +2871,10 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_BIBTEX_ALTERNATIVES: case LyXRC::RC_BIBTEX_COMMAND: case LyXRC::RC_BINDFILE: + case LyXRC::RC_BOOKMARKS_VISIBILITY: + case LyXRC::RC_CITATION_SEARCH: + case LyXRC::RC_CITATION_SEARCH_PATTERN: + case LyXRC::RC_CITATION_SEARCH_VIEW: case LyXRC::RC_CHECKLASTFILES: case LyXRC::RC_COMPLETION_CURSOR_TEXT: case LyXRC::RC_COMPLETION_INLINE_DELAY: @@ -2738,11 +2892,13 @@ 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_CT_MARKUP_COPIED: case LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR: case LyXRC::RC_SCROLL_BELOW_DOCUMENT: - case LyXRC::RC_DATE_INSERT_FORMAT: case LyXRC::RC_GUI_LANGUAGE: case LyXRC::RC_DEFAULT_OTF_VIEW_FORMAT: + case LyXRC::RC_DEFAULT_PLATEX_VIEW_FORMAT: case LyXRC::RC_DEFAULT_VIEW_FORMAT: case LyXRC::RC_DEFFILE: case LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN: @@ -2753,10 +2909,10 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) if (path.exists() && path.isDirectory()) package().document_dir() = FileName(lyxrc.document_path); } + // fall through case LyXRC::RC_EDITOR_ALTERNATIVES: case LyXRC::RC_ESC_CHARS: case LyXRC::RC_EXAMPLEPATH: - case LyXRC::RC_FONT_ENCODING: case LyXRC::RC_FILEFORMAT: case LyXRC::RC_GROUP_LAYOUTS: case LyXRC::RC_HUNSPELLDIR_PATH: @@ -2764,8 +2920,10 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_INDEX_ALTERNATIVES: case LyXRC::RC_INDEX_COMMAND: case LyXRC::RC_JBIBTEX_COMMAND: + case LyXRC::RC_JBIBTEX_ALTERNATIVES: case LyXRC::RC_JINDEX_COMMAND: case LyXRC::RC_NOMENCL_COMMAND: + case LyXRC::RC_PYGMENTIZE_COMMAND: case LyXRC::RC_INPUT: case LyXRC::RC_KBMAP: case LyXRC::RC_KBMAP_PRIMARY: @@ -2784,17 +2942,27 @@ 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: case LyXRC::RC_PARAGRAPH_MARKERS: case LyXRC::RC_PATH_PREFIX: if (lyxrc_orig.path_prefix != lyxrc_new.path_prefix) { - prependEnvPath("PATH", lyxrc_new.path_prefix); + prependEnvPath("PATH", replaceEnvironmentPath(lyxrc_new.path_prefix)); // Resets python path support::os::python(true); } + // fall through case LyXRC::RC_PREVIEW: + if (lyxrc_orig.preview != lyxrc_new.preview) { + // Update all previews of all documents. + /* FIXME: this can be very expensive. It would be cheaper + * to kill all existing previews and update visible + * previews.*/ + theBufferList().updatePreviews(); + } + // fall through case LyXRC::RC_PREVIEW_HASHED_LABELS: case LyXRC::RC_PREVIEW_SCALE_FACTOR: case LyXRC::RC_PRINTLANDSCAPEFLAG: @@ -2803,6 +2971,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_SAVE_COMPRESSED: case LyXRC::RC_SAVE_ORIGIN: case LyXRC::RC_SCREEN_DPI: + case LyXRC::RC_SCREEN_FONT_ROMAN: case LyXRC::RC_SCREEN_FONT_ROMAN_FOUNDRY: case LyXRC::RC_SCREEN_FONT_SANS: @@ -2811,8 +2980,21 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_SCREEN_FONT_SIZES: case LyXRC::RC_SCREEN_FONT_TYPEWRITER: case LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY: - case LyXRC::RC_GEOMETRY_SESSION: case LyXRC::RC_SCREEN_ZOOM: + if (lyxrc_orig.roman_font_name != lyxrc_new.roman_font_name + || lyxrc_orig.sans_font_name != lyxrc_new.sans_font_name + || lyxrc_orig.typewriter_font_name != lyxrc_new.typewriter_font_name + || lyxrc_orig.roman_font_foundry != lyxrc_new.roman_font_foundry + || lyxrc_orig.sans_font_foundry != lyxrc_new.sans_font_foundry + || lyxrc_orig.use_scalable_fonts != lyxrc_new.use_scalable_fonts + || !std::equal(std::begin(lyxrc_orig.font_sizes), std::end(lyxrc_orig.font_sizes), + std::begin(lyxrc_new.font_sizes)) + || lyxrc_orig.typewriter_font_foundry != lyxrc_new.typewriter_font_foundry + || lyxrc_orig.defaultZoom != lyxrc_new.defaultZoom) { + dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE)); + } + // fall through + case LyXRC::RC_GEOMETRY_SESSION: case LyXRC::RC_SERVERPIPE: case LyXRC::RC_SET_COLOR: case LyXRC::RC_SHOW_BANNER: @@ -2820,6 +3002,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_SPELLCHECKER: if (lyxrc_orig.spellchecker != lyxrc_new.spellchecker) setSpellChecker(); + // fall through case LyXRC::RC_SPELLCHECK_CONTINUOUSLY: case LyXRC::RC_SPELLCHECK_NOTES: case LyXRC::RC_SPLITINDEX_COMMAND: @@ -2830,16 +3013,19 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) if (lyxrc_orig.windows_style_tex_paths != lyxrc_new.windows_style_tex_paths) { os::windows_style_tex_paths(lyxrc_new.windows_style_tex_paths); } + // fall through case LyXRC::RC_TEXINPUTS_PREFIX: 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: + case LyXRC::RC_USE_CONVERTER_NEEDAUTH: + case LyXRC::RC_USE_NATIVE_FILEDIALOG: case LyXRC::RC_USE_SYSTEM_COLORS: case LyXRC::RC_USE_TOOLTIP: - case LyXRC::RC_USE_PIXMAP_CACHE: - case LyXRC::RC_USE_QIMAGE: case LyXRC::RC_USE_SYSTEM_THEME_ICONS: case LyXRC::RC_VIEWDVI_PAPEROPTION: case LyXRC::RC_SINGLE_CLOSE_TAB_BUTTON: @@ -2859,7 +3045,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: @@ -2868,6 +3054,15 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) } +set LyXRC::getRCs() +{ + set res; + for (int i = 0; i != lyxrcCount; ++i) + res.insert(ltrim(lyxrcTags[i].tag, "\\")); + return res; +} + + #if 0 string const LyXRC::getDescription(LyXRCTags tag) { @@ -2928,6 +3123,14 @@ string const LyXRC::getDescription(LyXRCTags tag) case RC_CONVERTER: break; + case RC_CONVERTER_NEEDAUTH_FORBIDDEN: + str = _("Forbid use of external converters with 'needauth' option to prevent undesired effects."); + break; + + case RC_CONVERTER_NEEDAUTH: + str = _("Ask user before calling external converters with 'needauth' option to prevent undesired effects."); + break; + case RC_COPIER: break; @@ -2955,11 +3158,6 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("Show a small box around a Math Macro with the macro name when the cursor is inside."); break; - case RC_DATE_INSERT_FORMAT: - //xgettext:no-c-format - str = _("This accepts the normal strftime formats; see man strftime for full details. E.g.\"%A, %e. %B %Y\"."); - break; - case RC_DEFFILE: str = _("Command definition file. Can either specify an absolute path, or LyX will look in its global and local commands/ directories."); break; @@ -2992,10 +3190,6 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("The path that LyX will set when offering to choose an example. An empty value selects the directory LyX was started from."); break; - case RC_FONT_ENCODING: - str = _("The font encoding used for the LaTeX2e fontenc package. T1 is highly recommended for non-English languages."); - break; - case RC_FILEFORMAT: break; @@ -3011,6 +3205,10 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("Define the options of makeindex (cf. man makeindex) to be used for nomenclatures. This might differ from the index processing options."); break; + case RC_PYGMENTIZE_COMMAND: + str = _("The command to run the python pygments syntax highlighter."); + break; + case RC_INPUT: break; @@ -3068,9 +3266,12 @@ 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 = bformat(_("The scrolling speed of the mouse wheel."), - maxlastfiles); + str = _("The scrolling speed of the mouse wheel."); break; case RC_COMPLETION_POPUP_DELAY: @@ -3242,10 +3443,6 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("Enable the automatic appearance of tool tips in the work area."); break; - case RC_USE_PIXMAP_CACHE: - str = _("Enable the pixmap cache that might improve performance on Mac and Windows."); - break; - case RC_VIEWDVI_PAPEROPTION: _("Specify the paper command to DVI viewer (leave empty or use \"-paper\")"); break;