X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxrc.C;h=8208bb2103d240b3632203685e0692ac3c14e77b;hb=d4f8fe124906af839a02d1ad3b7894e14fb69a37;hp=a70fd8ae0150300de5302965599ca538f818fa98;hpb=9bd413bfd7382d49c07b18106fb0ef0a3a1194b4;p=lyx.git diff --git a/src/lyxrc.C b/src/lyxrc.C index a70fd8ae01..8208bb2103 100644 --- a/src/lyxrc.C +++ b/src/lyxrc.C @@ -25,7 +25,7 @@ #include "converter.h" #include "format.h" #include "gettext.h" -#include "lastfiles.h" +#include "session.h" #include "LColor.h" #include "lyxlex.h" #include "lyxfont.h" @@ -40,14 +40,18 @@ #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; +namespace lyx { + +namespace os = support::os; + +using support::ascii_lowercase; +using support::bformat; +using support::expandPath; +using support::FileName; +using support::getEnv; +using support::libFileSearch; +using support::token; using std::cout; using std::endl; @@ -64,8 +68,6 @@ namespace { keyword_item lyxrcTags[] = { { "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND }, { "\\alternate_language", LyXRC::RC_ALT_LANG }, - { "\\ascii_linelen", LyXRC::RC_ASCII_LINELEN }, - { "\\ascii_roff_command", LyXRC::RC_ASCIIROFF_COMMAND }, { "\\auto_number", LyXRC::RC_AUTO_NUMBER }, { "\\auto_region_delete", LyXRC::RC_AUTOREGIONDELETE }, { "\\auto_reset_options", LyXRC::RC_AUTORESET_OPTIONS }, @@ -76,11 +78,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 }, @@ -104,12 +106,14 @@ keyword_item lyxrcTags[] = { { "\\language_global_options", LyXRC::RC_LANGUAGE_GLOBAL_OPTIONS }, { "\\language_package", LyXRC::RC_LANGUAGE_PACKAGE }, { "\\language_use_babel", LyXRC::RC_LANGUAGE_USE_BABEL }, - { "\\lastfiles", LyXRC::RC_LASTFILES }, + { "\\load_session", LyXRC::RC_LOADSESSION }, { "\\make_backup", LyXRC::RC_MAKE_BACKUP }, { "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE }, { "\\num_lastfiles", LyXRC::RC_NUMLASTFILES }, { "\\path_prefix", LyXRC::RC_PATH_PREFIX }, { "\\personal_dictionary", LyXRC::RC_PERS_DICT }, + { "\\plaintext_linelen", LyXRC::RC_PLAINTEXT_LINELEN }, + { "\\plaintext_roff_command", LyXRC::RC_PLAINTEXT_ROFF_COMMAND }, { "\\popup_bold_font", LyXRC::RC_POPUP_BOLD_FONT }, { "\\popup_font_encoding", LyXRC::RC_POPUP_FONT_ENCODING }, { "\\popup_normal_font", LyXRC::RC_POPUP_NORMAL_FONT }, @@ -151,6 +155,9 @@ keyword_item lyxrcTags[] = { { "\\screen_font_sizes", LyXRC::RC_SCREEN_FONT_SIZES }, { "\\screen_font_typewriter", LyXRC::RC_SCREEN_FONT_TYPEWRITER }, { "\\screen_font_typewriter_foundry", LyXRC::RC_SCREEN_FONT_TYPEWRITER_FOUNDRY }, + { "\\screen_geometry_height", LyXRC::RC_SCREEN_GEOMETRY_HEIGHT }, + { "\\screen_geometry_width", LyXRC::RC_SCREEN_GEOMETRY_WIDTH }, + { "\\screen_geometry_xysaved", LyXRC::RC_SCREEN_GEOMETRY_XYSAVED }, { "\\screen_zoom", LyXRC::RC_SCREEN_ZOOM }, { "\\serverpipe", LyXRC::RC_SERVERPIPE }, { "\\set_color", LyXRC::RC_SET_COLOR }, @@ -159,10 +166,13 @@ 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 }, { "\\use_personal_dictionary", LyXRC::RC_USE_PERS_DICT }, // compatibility with versions older than 1.4.0 only { "\\use_pspell", LyXRC::RC_USE_SPELL_LIB }, @@ -173,8 +183,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); @@ -209,7 +218,6 @@ void LyXRC::setDefaults() { print_paper_flag = "-t"; print_paper_dimension_flag = "-T"; document_path.erase(); - tempdir_path = "/tmp"; view_dvi_paper_option.erase(); default_papersize = PAPER_DEFAULT; custom_export_format = "ps"; @@ -220,7 +228,9 @@ void LyXRC::setDefaults() { dpi = 75; // Because a screen typically is wider than a piece of paper: zoom = 150; - wheel_jump = 5; + geometry_width = 0; + geometry_height = 0; + geometry_xysaved = true; // Default LaTeX font size: font_sizes[LyXFont::SIZE_TINY] = "5.0"; font_sizes[LyXFont::SIZE_SCRIPT] = "7.0"; @@ -244,12 +254,14 @@ void LyXRC::setDefaults() { autosave = 300; auto_region_delete = true; auto_reset_options = false; - ascii_linelen = 65; + plaintext_linelen = 65; num_lastfiles = maxlastfiles; check_lastfiles = true; + use_lastfilepos = true; + 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"; @@ -271,19 +283,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 = to_utf8(support::user_name()); - user_email = lyx::support::user_email(); + user_email = to_utf8(support::user_email()); } @@ -302,7 +316,7 @@ void oldFontFormat(string & family, string & foundry) } // namespace anon -int LyXRC::read(string const & filename) +int LyXRC::read(FileName const & filename) { LyXLex lexrc(lyxrcTags, lyxrcCount); if (lyxerr.debugging(Debug::PARSER)) @@ -356,12 +370,12 @@ int LyXRC::read(LyXLex & lexrc) switch (static_cast(le)) { case RC_INPUT: // Include file if (lexrc.next()) { - string const tmp = - LibFileSearch(string(), + FileName const tmp = + libFileSearch(string(), lexrc.getString()); if (read(tmp)) { lexrc.printError("Error reading " - "included file: "+tmp); + "included file: " + tmp.absFilename()); } } break; @@ -385,21 +399,21 @@ 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(); - } - break; + windows_style_tex_paths = lexrc.getBool(); + } + break; case RC_TEX_ALLOWS_SPACES: if (lexrc.next()) { tex_allows_spaces = lexrc.getBool(); - } - break; + } + break; case RC_KBMAP: if (lexrc.next()) { @@ -412,7 +426,7 @@ int LyXRC::read(LyXLex & lexrc) string const kmap(os::internal_path(lexrc.getString())); if (kmap.empty()) { // nothing - } else if (!LibFileSearch("kbd", kmap, + } else if (!libFileSearch("kbd", kmap, "kmap").empty()) { primary_kbmap = kmap; } else { @@ -426,7 +440,7 @@ int LyXRC::read(LyXLex & lexrc) string const kmap(os::internal_path(lexrc.getString())); if (kmap.empty()) { // nothing - } else if (!LibFileSearch("kbd", kmap, + } else if (!libFileSearch("kbd", kmap, "kmap").empty()) { secondary_kbmap = kmap; } else { @@ -630,9 +644,21 @@ int LyXRC::read(LyXLex & lexrc) } break; - case RC_WHEEL_JUMP: + case RC_SCREEN_GEOMETRY_HEIGHT: + if (lexrc.next()) { + geometry_height = lexrc.getInteger(); + } + break; + + case RC_SCREEN_GEOMETRY_WIDTH: + if (lexrc.next()) { + geometry_width = lexrc.getInteger(); + } + break; + + case RC_SCREEN_GEOMETRY_XYSAVED: if (lexrc.next()) { - wheel_jump = lexrc.getInteger(); + geometry_xysaved = lexrc.getBool(); } break; @@ -694,21 +720,21 @@ int LyXRC::read(LyXLex & lexrc) case RC_DOCUMENTPATH: if (lexrc.next()) { document_path = os::internal_path(lexrc.getString()); - document_path = ExpandPath(document_path); + document_path = expandPath(document_path); } break; case RC_TEMPLATEPATH: if (lexrc.next()) { template_path = os::internal_path(lexrc.getString()); - template_path = ExpandPath(template_path); + template_path = expandPath(template_path); } break; case RC_TEMPDIRPATH: if (lexrc.next()) { tempdir_path = os::internal_path(lexrc.getString()); - tempdir_path = ExpandPath(tempdir_path); + tempdir_path = expandPath(tempdir_path); } break; @@ -718,9 +744,15 @@ int LyXRC::read(LyXLex & lexrc) } break; - case RC_LASTFILES: + case RC_USELASTFILEPOS: + if (lexrc.next()) { + use_lastfilepos = lexrc.getBool(); + } + break; + + case RC_LOADSESSION: if (lexrc.next()) { - lastfiles = ExpandPath(os::internal_path(lexrc.getString())); + load_session = lexrc.getBool(); } break; @@ -844,7 +876,7 @@ int LyXRC::read(LyXLex & lexrc) case RC_SERVERPIPE: if (lexrc.next()) { lyxpipes = os::internal_path(lexrc.getString()); - lyxpipes = ExpandPath(lyxpipes); + lyxpipes = expandPath(lyxpipes); } break; @@ -860,14 +892,14 @@ int LyXRC::read(LyXLex & lexrc) } break; - case RC_ASCIIROFF_COMMAND: + case RC_PLAINTEXT_ROFF_COMMAND: if (lexrc.next()) { - ascii_roff_command = lexrc.getString(); + plaintext_roff_command = lexrc.getString(); } break; - case RC_ASCII_LINELEN: + case RC_PLAINTEXT_LINELEN: if (lexrc.next()) { - ascii_linelen = lexrc.getInteger(); + plaintext_linelen = lexrc.getInteger(); } break; // Spellchecker settings: @@ -929,7 +961,7 @@ int LyXRC::read(LyXLex & lexrc) case RC_BACKUPDIR_PATH: if (lexrc.next()) { backupdir_path = os::internal_path(lexrc.getString()); - backupdir_path = ExpandPath(backupdir_path); + backupdir_path = expandPath(backupdir_path); } break; case RC_DATE_INSERT_FORMAT: @@ -1001,7 +1033,7 @@ int LyXRC::read(LyXLex & lexrc) if (lexrc.next()) { command = lexrc.getString(); } - movers.set(fmt, command); + setMover(fmt, command); break; } @@ -1019,11 +1051,10 @@ int LyXRC::read(LyXLex & lexrc) if (lexrc.next()) { flags = lexrc.getString(); } - if (command.empty() - || token(command, ' ', 0) == "none") { - converters.erase(from, to); + if (command.empty()) { + theConverters().erase(from, to); } else { - converters.add(from, to, command, flags); + theConverters().add(from, to, command, flags); } break; } @@ -1035,8 +1066,6 @@ int LyXRC::read(LyXLex & lexrc) } if (lexrc.next()) { command = lexrc.getString(); - if (token(command, ' ', 0) == "none") - command.erase(); } formats.setViewer(format, command); break; @@ -1056,30 +1085,40 @@ int LyXRC::read(LyXLex & lexrc) shortcut = lexrc.getString(); } string viewer, editor; + if (lexrc.next()) + viewer = lexrc.getString(); + if (lexrc.next()) + editor = lexrc.getString(); + string flags; // Hack to ensure compatibility with versions older - // than 1.4.0 + // than 1.5.0 int le = lexrc.lex(); if (le != LyXLex::LEX_FEOF && le != LyXLex::LEX_UNDEF) { - viewer = lexrc.getString(); - if (le == LyXLex::LEX_DATA) { - if (token(viewer, ' ', 0) == "none") - viewer.erase(); - if (lexrc.next()) { - editor = lexrc.getString(); - if (token(editor, ' ', 0) == "none") - editor.erase(); - } - } else { + flags = lexrc.getString(); + if (le != LyXLex::LEX_DATA) { // We have got a known token. // Therefore this is an old style // format definition without - // viewer and editor. - lexrc.pushToken(viewer); - viewer.erase(); + // flags. + lexrc.pushToken(flags); + flags.erase(); } } + 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)) { + if (theConverters().formatIsUsed(format)) { lyxerr << "Can't delete format " << format << endl; } else { @@ -1087,7 +1126,7 @@ int LyXRC::read(LyXLex & lexrc) } } else { formats.add(format, extension, prettyname, - shortcut, viewer, editor); + shortcut, viewer, editor, flgs); } break; } @@ -1153,21 +1192,32 @@ 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 } } /// Update converters data-structures - converters.update(formats); - converters.buildGraph(); + theConverters().update(formats); + theConverters().buildGraph(); return 0; } -void LyXRC::write(string const & filename, bool ignore_system_lyxrc) const +void LyXRC::write(FileName const & filename, bool ignore_system_lyxrc) const { - ofstream ofs(filename.c_str()); + ofstream ofs(filename.toFilesystemEncoding().c_str()); if (ofs) write(ofs, ignore_system_lyxrc); } @@ -1281,7 +1331,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'; } @@ -1337,17 +1387,17 @@ 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) { os << "\\tex_allows_spaces " << convert(tex_allows_spaces) << '\n'; - } + } case RC_KBMAP: if (ignore_system_lyxrc || use_kbmap != system_lyxrc.use_kbmap) { @@ -1429,6 +1479,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"; @@ -1461,10 +1525,23 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const zoom != system_lyxrc.zoom) { os << "\\screen_zoom " << zoom << '\n'; } - case RC_WHEEL_JUMP: + case RC_SCREEN_GEOMETRY_HEIGHT: + if (ignore_system_lyxrc || + geometry_height != system_lyxrc.geometry_height) { + os << "\\screen_geometry_height " << geometry_height + << '\n'; + } + case RC_SCREEN_GEOMETRY_WIDTH: + if (ignore_system_lyxrc || + geometry_width != system_lyxrc.geometry_width) { + os << "\\screen_geometry_width " << geometry_width + << '\n'; + } + case RC_SCREEN_GEOMETRY_XYSAVED: if (ignore_system_lyxrc || - wheel_jump != system_lyxrc.wheel_jump) { - os << "\\wheel_jump " << wheel_jump << '\n'; + geometry_xysaved != system_lyxrc.geometry_xysaved) { + os << "\\screen_geometry_xysaved " << convert(geometry_xysaved) + << '\n'; } case RC_CURSOR_FOLLOWS_SCROLLBAR: if (ignore_system_lyxrc || @@ -1742,11 +1819,17 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const string const path = os::external_path(document_path); os << "\\document_path \"" << path << "\"\n"; } - case RC_LASTFILES: + case RC_USELASTFILEPOS: + if (ignore_system_lyxrc || + use_lastfilepos != system_lyxrc.use_lastfilepos) { + os << "\\use_lastfilepos " << convert(use_lastfilepos) + << '\n'; + } + case RC_LOADSESSION: if (ignore_system_lyxrc || - lastfiles != system_lyxrc.lastfiles) { - string const path = os::external_path(lastfiles); - os << "\\lastfiles \"" << path << "\"\n"; + load_session != system_lyxrc.load_session) { + os << "\\load_session " << convert(load_session) + << "\n"; } case RC_NUMLASTFILES: if (ignore_system_lyxrc || @@ -1773,10 +1856,10 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const } case RC_USETEMPDIR: // Ignore it - case RC_ASCII_LINELEN: + case RC_PLAINTEXT_LINELEN: if (ignore_system_lyxrc || - ascii_linelen != system_lyxrc.ascii_linelen) { - os << "\\ascii_linelen " << ascii_linelen << '\n'; + plaintext_linelen != system_lyxrc.plaintext_linelen) { + os << "\\plaintext_linelen " << plaintext_linelen << '\n'; } case RC_MAKE_BACKUP: if (ignore_system_lyxrc || @@ -1791,13 +1874,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const } os << "\n#\n" - << "# ASCII EXPORT SECTION ##############################\n" + << "# PLAIN TEXT EXPORT SECTION ##############################\n" << "#\n\n"; - case RC_ASCIIROFF_COMMAND: + case RC_PLAINTEXT_ROFF_COMMAND: if (ignore_system_lyxrc || - ascii_roff_command != system_lyxrc.ascii_roff_command) { - os << "\\ascii_roff_command \"" << ascii_roff_command + plaintext_roff_command != system_lyxrc.plaintext_roff_command) { + os << "\\plaintext_roff_command \"" << plaintext_roff_command << "\"\n"; } @@ -1957,7 +2040,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const << "#\n\n"; case RC_FORMAT: - // New/modifed formats + // New/modified formats for (Formats::const_iterator cit = formats.begin(); cit != formats.end(); ++cit) { Format const * format = @@ -1967,13 +2050,23 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const format->prettyname() != cit->prettyname() || format->shortcut() != cit->shortcut() || format->viewer() != cit->viewer() || - format->editor() != cit->editor()) + format->editor() != cit->editor() || + format->documentFormat() != cit->documentFormat() || + format->vectorFormat() != cit->vectorFormat()) { os << "\\format \"" << cit->name() << "\" \"" << cit->extension() << "\" \"" << cit->prettyname() << "\" \"" << cit->shortcut() << "\" \"" << cit->viewer() << "\" \"" - << cit->editor() << "\"\n"; + << cit->editor() << "\" \""; + std::vector flags; + if (cit->documentFormat()) + flags.push_back("document"); + if (cit->vectorFormat()) + flags.push_back("vector"); + os << support::getStringFromVector(flags); + os << "\"\n"; + } } // Look for deleted formats @@ -1981,7 +2074,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const cit != system_formats.end(); ++cit) if (!formats.getFormat(cit->name())) os << "\\format \"" << cit->name() - << "\" \"\" \"\" \"\" \"\" \"\"\n"; + << "\" \"\" \"\" \"\" \"\" \"\" \"\"\n"; case RC_VIEWER: // Ignore it @@ -1991,10 +2084,10 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const case RC_CONVERTER: // Look for new converters - for (Converters::const_iterator cit = converters.begin(); - cit != converters.end(); ++cit) { + for (Converters::const_iterator cit = theConverters().begin(); + cit != theConverters().end(); ++cit) { Converter const * converter = - system_converters.getConverter(cit->from, + theSystemConverters().getConverter(cit->from, cit->to); if (!converter || converter->command != cit->command || @@ -2006,9 +2099,9 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const } // New/modifed converters - for (Converters::const_iterator cit = system_converters.begin(); - cit != system_converters.end(); ++cit) - if (!converters.getConverter(cit->from, cit->to)) + for (Converters::const_iterator cit = theSystemConverters().begin(); + cit != theSystemConverters().end(); ++cit) + if (!theConverters().getConverter(cit->from, cit->to)) os << "\\converter \"" << cit->from << "\" \"" << cit->to << "\" \"\" \"\"\n"; @@ -2018,12 +2111,13 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc) const << "#\n\n"; // Look for new movers - Movers::iterator const sysbegin = system_movers.begin(); - Movers::iterator const sysend = system_movers.end(); + Movers::const_iterator const sysbegin = theSystemMovers().begin(); + Movers::const_iterator const sysend = theSystemMovers().end(); + Movers::const_iterator it = theMovers().begin(); + Movers::const_iterator end = theMovers().end(); - for (Movers::iterator it = movers.begin(), end = movers.end(); - it != end; ++it) { - Movers::iterator const sysit = + for (; it != end; ++it) { + Movers::const_iterator const sysit = std::find_if(sysbegin, sysend, SameMover(*it)); if (sysit == sysend) { std::string const & fmt = it->first; @@ -2064,9 +2158,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: @@ -2078,12 +2173,12 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("Specify an alternate language. The default is to use the language of the document."); break; - case RC_ASCIIROFF_COMMAND: - str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"none\" is specified, an internal routine is used."); + case RC_PLAINTEXT_ROFF_COMMAND: + str = _("Use to define an external program to render tables in plain text output. E.g. \"groff -t -Tlatin1 $$FName\" where $$FName is the input file. If \"\" is specified, an internal routine is used."); break; - case RC_ASCII_LINELEN: - str = _("This is the maximum line length of an exported text file (LaTeX, SGML or plain text)."); + case RC_PLAINTEXT_LINELEN: + str = _("The maximum line length of exported plain text/LaTeX/SGML files. If set to 0, paragraphs are output in a single line; if the line length is > 0, paragraphs are separated by a blank line."); break; case RC_AUTOREGIONDELETE: @@ -2137,9 +2232,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\"."); @@ -2226,8 +2318,12 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("De-select if you don't want babel to be used when the language of the document is the default language."); break; - case RC_LASTFILES: - str = _("The file where the last-files information should be stored."); + case RC_USELASTFILEPOS: + str = _("De-select if you do not want LyX to scroll to saved position."); + break; + + case RC_LOADSESSION: + str = _("De-select to prevent loading files opened from the last lyx session."); break; case RC_MAKE_BACKUP: @@ -2239,7 +2335,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: @@ -2314,7 +2411,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: @@ -2385,6 +2482,15 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("The zoom percentage for screen fonts. A setting of 100% will make the fonts roughly the same size as on paper."); break; + case RC_SCREEN_GEOMETRY_HEIGHT: + case RC_SCREEN_GEOMETRY_WIDTH: + str = _("Specify geometry of the main view in width x height (values from last session will not be used if non-zero values are specified)."); + break; + + case RC_SCREEN_GEOMETRY_XYSAVED: + str = _("Allow session manager to save and restore windows position."); + break; + case RC_SERVERPIPE: str = _("This starts the lyxserver. The pipes get an additional extension \".in\" and \".out\". Only for advanced users."); break; @@ -2411,6 +2517,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; @@ -2432,25 +2541,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