X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrc.C;h=03c9143eb07c401fbc083abb9517ecdbfe9c585a;hb=35204f8f33d7400a5fefeffea533fb4cb4097211;hp=6d3d101b332bab4cf79f3fa43e977671c6f66864;hpb=43b77ba2d722cdb8a9437926f839c1dcbf3c0b89;p=lyx.git diff --git a/src/lyxrc.C b/src/lyxrc.C index 6d3d101b33..03c9143eb0 100644 --- a/src/lyxrc.C +++ b/src/lyxrc.C @@ -40,16 +40,17 @@ #include "support/os.h" #include "support/userinfo.h" -namespace os = lyx::support::os; -using lyx::docstring; -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; @@ -78,6 +79,7 @@ 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 }, @@ -166,6 +168,7 @@ keyword_item lyxrcTags[] = { { "\\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 }, @@ -257,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"; @@ -281,17 +284,19 @@ void LyXRC::setDefaults() { show_banner = true; 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(); } @@ -393,7 +398,7 @@ 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; @@ -1083,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 @@ -1101,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 " @@ -1117,7 +1125,7 @@ int LyXRC::read(LyXLex & lexrc) } } else { formats.add(format, extension, prettyname, - shortcut, viewer, editor, document); + shortcut, viewer, editor, flgs); } break; } @@ -1183,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 } } @@ -1311,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'; } @@ -1459,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"; @@ -2017,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"; } } @@ -2118,6 +2156,7 @@ void LyXRC::set_font_norm_type() } +#if 0 string const LyXRC::getDescription(LyXRCTags tag) { docstring str; @@ -2294,7 +2333,8 @@ string const LyXRC::getDescription(LyXRCTags tag) break; case RC_NUMLASTFILES: - str = lyx::from_utf8(bformat(lyx::to_utf8(_("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: @@ -2509,11 +2549,16 @@ string const LyXRC::getDescription(LyXRCTags tag) break; } - return lyx::to_utf8(str); + return str; } +#endif + // The global instance LyXRC lyxrc; // The global copy of the system lyxrc entries (everything except preferences) LyXRC system_lyxrc; + + +} // namespace lyx