X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrc.C;h=03c9143eb07c401fbc083abb9517ecdbfe9c585a;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=316f64796ebca21ea01765c521495eaa58741844;hpb=d5443737342903de489d527802cd2cdd38987d74;p=lyx.git diff --git a/src/lyxrc.C b/src/lyxrc.C index 316f64796e..03c9143eb0 100644 --- a/src/lyxrc.C +++ b/src/lyxrc.C @@ -40,15 +40,17 @@ #include "support/os.h" #include "support/userinfo.h" -namespace os = lyx::support::os; -using lyx::support::ascii_lowercase; -using lyx::support::bformat; -using lyx::support::expandPath; -using lyx::support::getEnv; -using lyx::support::libFileSearch; -using lyx::support::token; -using lyx::support::tokenPos; +namespace lyx { + +namespace os = support::os; + +using support::ascii_lowercase; +using support::bformat; +using support::expandPath; +using support::getEnv; +using support::libFileSearch; +using support::token; using std::cout; using std::endl; @@ -77,11 +79,11 @@ keyword_item lyxrcTags[] = { { "\\check_lastfiles", LyXRC::RC_CHECKLASTFILES }, { "\\chktex_command", LyXRC::RC_CHKTEX_COMMAND }, { "\\converter", LyXRC::RC_CONVERTER }, + { "\\converter_cache_maxage", LyXRC::RC_CONVERTER_CACHE_MAXAGE }, { "\\copier", LyXRC::RC_COPIER }, { "\\cursor_follows_scrollbar", LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR }, { "\\custom_export_command", LyXRC::RC_CUSTOM_EXPORT_COMMAND }, { "\\custom_export_format", LyXRC::RC_CUSTOM_EXPORT_FORMAT }, - { "\\cygwin_path_fix_needed", LyXRC::RC_CYGWIN_PATH_FIX }, { "\\date_insert_format", LyXRC::RC_DATE_INSERT_FORMAT }, { "\\default_language", LyXRC::RC_DEFAULT_LANGUAGE }, { "\\default_papersize", LyXRC::RC_DEFAULT_PAPERSIZE }, @@ -163,8 +165,10 @@ keyword_item lyxrcTags[] = { { "\\tempdir_path", LyXRC::RC_TEMPDIRPATH }, { "\\template_path", LyXRC::RC_TEMPLATEPATH }, { "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES }, + { "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS }, { "\\ui_file", LyXRC::RC_UIFILE }, { "\\use_alt_language", LyXRC::RC_USE_ALT_LANG }, + { "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE }, { "\\use_escape_chars", LyXRC::RC_USE_ESC_CHARS }, { "\\use_input_encoding", LyXRC::RC_USE_INP_ENC }, { "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS }, @@ -178,8 +182,7 @@ keyword_item lyxrcTags[] = { { "\\user_name", LyXRC::RC_USER_NAME }, { "\\view_dvi_paper_option", LyXRC::RC_VIEWDVI_PAPEROPTION }, // compatibility with versions older than 1.4.0 only - { "\\viewer" ,LyXRC::RC_VIEWER}, - { "\\wheel_jump", LyXRC::RC_WHEEL_JUMP } + { "\\viewer" ,LyXRC::RC_VIEWER} }; const int lyxrcCount = sizeof(lyxrcTags) / sizeof(keyword_item); @@ -227,7 +230,6 @@ void LyXRC::setDefaults() { geometry_width = 0; geometry_height = 0; geometry_xysaved = true; - wheel_jump = 5; // Default LaTeX font size: font_sizes[LyXFont::SIZE_TINY] = "5.0"; font_sizes[LyXFont::SIZE_SCRIPT] = "7.0"; @@ -258,7 +260,7 @@ void LyXRC::setDefaults() { load_session = false; make_backup = true; backupdir_path.erase(); - display_graphics = lyx::graphics::ColorDisplay; + display_graphics = graphics::ColorDisplay; // Spellchecker settings: use_spell_lib = true; isp_command = "ispell"; @@ -280,19 +282,21 @@ void LyXRC::setDefaults() { language_command_local = "\\foreignlanguage{$$lang}{"; default_language = "english"; show_banner = true; - cygwin_path_fix = false; + windows_style_tex_paths = false; tex_allows_spaces = false; - date_insert_format = "%A, %e %B %Y"; + date_insert_format = "%x"; cursor_follows_scrollbar = false; dialogs_iconify_with_main = false; label_init_length = 3; preview = PREVIEW_OFF; preview_hashed_labels = false; preview_scale_factor = "0.9"; + use_converter_cache = false; + converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months - user_name = lyx::support::user_name(); + user_name = support::user_name(); - user_email = lyx::support::user_email(); + user_email = support::user_email(); } @@ -394,13 +398,13 @@ int LyXRC::read(LyXLex & lexrc) case RC_DISPLAY_GRAPHICS: if (lexrc.next()) { - display_graphics = lyx::graphics::displayTranslator().find(lexrc.getString()); + display_graphics = graphics::displayTranslator().find(lexrc.getString()); } break; - case RC_CYGWIN_PATH_FIX: + case RC_TEX_EXPECTS_WINDOWS_PATHS: if (lexrc.next()) { - cygwin_path_fix = lexrc.getBool(); + windows_style_tex_paths = lexrc.getBool(); } break; @@ -657,12 +661,6 @@ int LyXRC::read(LyXLex & lexrc) } break; - case RC_WHEEL_JUMP: - if (lexrc.next()) { - wheel_jump = lexrc.getInteger(); - } - break; - case RC_SCREEN_FONT_SIZES: if (lexrc.next()) { font_sizes[LyXFont::SIZE_TINY] = @@ -1090,9 +1088,6 @@ int LyXRC::read(LyXLex & lexrc) viewer = lexrc.getString(); if (lexrc.next()) editor = lexrc.getString(); - // The only supported flag for now is "document". - // More flags could be added in the future. - // Therefore we use tokenPos below to read the flag. string flags; // Hack to ensure compatibility with versions older // than 1.5.0 @@ -1108,13 +1103,19 @@ int LyXRC::read(LyXLex & lexrc) flags.erase(); } } - bool const document = - (tokenPos(flags, ',', "document") >= 0); - if (!flags.empty() && flags != "document") - lyxerr << "Ignoring flags other than " - "`document' in `" << flags - << "' for format `" << format << "'." - << endl; + int flgs = Format::none; + while (!flags.empty()) { + string flag; + flags = support::split(flags, flag, ','); + if (flag == "document") + flgs |= Format::document; + else if (flag == "vector") + flgs |= Format::vector; + else + lyxerr << "Ignoring unknown flag `" + << flag << "' for format `" + << format << "'." << endl; + } if (prettyname.empty()) { if (converters.formatIsUsed(format)) { lyxerr << "Can't delete format " @@ -1124,7 +1125,7 @@ int LyXRC::read(LyXLex & lexrc) } } else { formats.add(format, extension, prettyname, - shortcut, viewer, editor, document); + shortcut, viewer, editor, flgs); } break; } @@ -1190,6 +1191,17 @@ int LyXRC::read(LyXLex & lexrc) path_prefix = lexrc.getString(); break; + case RC_USE_CONVERTER_CACHE: + if (lexrc.next()) + use_converter_cache = lexrc.getBool(); + break; + + case RC_CONVERTER_CACHE_MAXAGE: + if (lexrc.next()) + converter_cache_maxage = + convert(lexrc.getString()); + break; + case RC_LAST: break; // this is just a dummy } } @@ -1318,7 +1330,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const os << "# Display graphics within LyX\n" << "# monochrome|grayscale|color|none\n" << "\\display_graphics " - << lyx::graphics::displayTranslator().find(display_graphics) + << graphics::displayTranslator().find(display_graphics) << '\n'; } @@ -1374,11 +1386,11 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const index_command != system_lyxrc.index_command) { os << "\\index_command \"" << index_command << "\"\n"; } - case RC_CYGWIN_PATH_FIX: + case RC_TEX_EXPECTS_WINDOWS_PATHS: if (ignore_system_lyxrc || - cygwin_path_fix != system_lyxrc.cygwin_path_fix) { - os << "\\cygwin_path_fix_needed " - << convert(cygwin_path_fix) << '\n'; + windows_style_tex_paths != system_lyxrc.windows_style_tex_paths) { + os << "\\tex_expects_windows_paths " + << convert(windows_style_tex_paths) << '\n'; } case RC_TEX_ALLOWS_SPACES: if (tex_allows_spaces != system_lyxrc.tex_allows_spaces) { @@ -1466,6 +1478,20 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const << preview_scale_factor << '\n'; } + case RC_USE_CONVERTER_CACHE: + if (ignore_system_lyxrc || + use_converter_cache != system_lyxrc.use_converter_cache) { + os << "\\use_converter_cache " + << convert(use_converter_cache) << '\n'; + } + + case RC_CONVERTER_CACHE_MAXAGE: + if (ignore_system_lyxrc || + converter_cache_maxage != system_lyxrc.converter_cache_maxage) { + os << "\\converter_cache_maxage" + << converter_cache_maxage << '\n'; + } + os << "\n#\n" << "# SCREEN & FONTS SECTION ############################\n" << "#\n\n"; @@ -1516,11 +1542,6 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const os << "\\screen_geometry_xysaved " << convert(geometry_xysaved) << '\n'; } - case RC_WHEEL_JUMP: - if (ignore_system_lyxrc || - wheel_jump != system_lyxrc.wheel_jump) { - os << "\\wheel_jump " << wheel_jump << '\n'; - } case RC_CURSOR_FOLLOWS_SCROLLBAR: if (ignore_system_lyxrc || cursor_follows_scrollbar @@ -2029,15 +2050,20 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const format->shortcut() != cit->shortcut() || format->viewer() != cit->viewer() || format->editor() != cit->editor() || - format->documentFormat() != cit->documentFormat()) { + format->documentFormat() != cit->documentFormat() || + format->vectorFormat() != cit->vectorFormat()) { os << "\\format \"" << cit->name() << "\" \"" << cit->extension() << "\" \"" << cit->prettyname() << "\" \"" << cit->shortcut() << "\" \"" << cit->viewer() << "\" \"" << cit->editor() << "\" \""; + std::vector flags; if (cit->documentFormat()) - os << "document"; + flags.push_back("document"); + if (cit->vectorFormat()) + flags.push_back("vector"); + os << support::getStringFromVector(flags); os << "\"\n"; } } @@ -2130,9 +2156,10 @@ void LyXRC::set_font_norm_type() } +#if 0 string const LyXRC::getDescription(LyXRCTags tag) { - string str; + docstring str; switch (tag) { case RC_ACCEPT_COMPOUND: @@ -2203,9 +2230,6 @@ string const LyXRC::getDescription(LyXRCTags tag) case RC_CUSTOM_EXPORT_FORMAT: break; - case RC_CYGWIN_PATH_FIX: - 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\"."); @@ -2309,7 +2333,8 @@ string const LyXRC::getDescription(LyXRCTags tag) break; case RC_NUMLASTFILES: - str = bformat(_("Maximal number of lastfiles. Up to %1$d can appear in the file menu."), maxlastfiles); + str = bformat(_("Maximal number of lastfiles. Up to %1$d can appear in the file menu."), + maxlastfiles); break; case RC_PATH_PREFIX: @@ -2384,7 +2409,7 @@ string const LyXRC::getDescription(LyXRCTags tag) break; case RC_PRINTPAPERDIMENSIONFLAG: - str = _("Option to specify the dimensions of the print paper."); + str = _("Option to specify the dimensions of the print paper."); break; case RC_PRINTPAPERFLAG: @@ -2490,6 +2515,9 @@ string const LyXRC::getDescription(LyXRCTags tag) case RC_TEX_ALLOWS_SPACES: break; + case RC_TEX_EXPECTS_WINDOWS_PATHS: + break; + case RC_UIFILE: str = _("The UI (user interface) file. Can either specify an absolute path, or LyX will look in its global and local ui/ directories."); break; @@ -2511,25 +2539,26 @@ string const LyXRC::getDescription(LyXRCTags tag) break; case RC_VIEWDVI_PAPEROPTION: - str = _("Specify the paper command to DVI viewer (leave empty or use \"-paper\")"); + _("Specify the paper command to DVI viewer (leave empty or use \"-paper\")"); break; case RC_VIEWER: break; - case RC_WHEEL_JUMP: - str = _("The number of lines that are scrolled by mice with wheels or five button mice."); - break; - case RC_LAST: break; } return str; } +#endif + // The global instance LyXRC lyxrc; // The global copy of the system lyxrc entries (everything except preferences) LyXRC system_lyxrc; + + +} // namespace lyx