X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FLyXRC.cpp;h=6f5a19e6079d85db9f7039c92a370026606ae73e;hb=55a3dd7b346d29a52ba305a4558e9e380ef50f47;hp=d5b62eb7b8789ffdaccd422b1029870bb2048e3a;hpb=b4f97b61cf0b257e31bcf512668ad458523d7f5a;p=lyx.git diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp index d5b62eb7b8..6f5a19e607 100644 --- a/src/LyXRC.cpp +++ b/src/LyXRC.cpp @@ -55,7 +55,7 @@ namespace os = support::os; namespace { -static unsigned int const LYXRC_FILEFORMAT = 3; +static unsigned int const LYXRC_FILEFORMAT = 5; // vfr: add default length unit // when adding something to this array keep it sorted! LexerKeyword lyxrcTags[] = { @@ -91,7 +91,7 @@ LexerKeyword lyxrcTags[] = { { "\\def_file", LyXRC::RC_DEFFILE }, { "\\default_decimal_point", LyXRC::RC_DEFAULT_DECIMAL_POINT }, { "\\default_language", LyXRC::RC_DEFAULT_LANGUAGE }, - { "\\default_papersize", LyXRC::RC_DEFAULT_PAPERSIZE }, + { "\\default_length_unit", LyXRC::RC_DEFAULT_LENGTH_UNIT }, { "\\default_view_format", LyXRC::RC_DEFAULT_VIEW_FORMAT }, { "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN }, { "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS }, @@ -250,7 +250,6 @@ void LyXRC::setDefaults() print_paper_dimension_flag = "-T"; document_path.erase(); view_dvi_paper_option.erase(); - default_papersize = PAPER_DEFAULT; default_view_format = "pdf2"; chktex_command = "chktex -n1 -n3 -n6 -n9 -n22 -n25 -n30 -n38"; bibtex_command = "bibtex"; @@ -367,6 +366,7 @@ void LyXRC::setDefaults() completion_inline_dots = -1; completion_inline_delay = 0.2; default_decimal_point = "."; + default_length_unit = Length::CM; cursor_width = 1; } @@ -402,11 +402,15 @@ bool LyXRC::read(FileName const & filename, bool check_format) LYXERR0 ("Unable to convert " << filename.absFileName() << " to format " << LYXRC_FILEFORMAT); return false; + } else { + // Keep this in the else branch, such that lexrc2 goes out + // of scope and releases the lock on tempfile before we + // attempt to remove it. This matters on Windows. + Lexer lexrc2(lyxrcTags); + lexrc2.setFile(tempfile); + LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'..."); + retval = read(lexrc2, check_format); } - Lexer lexrc2(lyxrcTags); - lexrc2.setFile(tempfile); - LYXERR(Debug::LYXRC, "Reading '" << tempfile << "'..."); - retval = read(lexrc2, check_format); tempfile.removeFile(); return retval == ReadOK; } @@ -621,28 +625,6 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) lexrc >> print_paper_flag; break; - case RC_DEFAULT_PAPERSIZE: - if (lexrc.next()) { - string const size = ascii_lowercase(lexrc.getString()); - if (size == "usletter") - default_papersize = PAPER_USLETTER; - else if (size == "legal") - default_papersize = PAPER_USLEGAL; - else if (size == "executive") - default_papersize = PAPER_USEXECUTIVE; - else if (size == "a3") - default_papersize = PAPER_A3; - else if (size == "a4") - default_papersize = PAPER_A4; - else if (size == "a5") - default_papersize = PAPER_A5; - else if (size == "b5") - default_papersize = PAPER_B5; - else if (size == "default") - default_papersize = PAPER_DEFAULT; - } - break; - case RC_VIEWDVI_PAPEROPTION: if (lexrc.next()) view_dvi_paper_option = lexrc.getString(); @@ -999,6 +981,10 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) case RC_DEFAULT_DECIMAL_POINT: lexrc >> default_decimal_point; 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; @@ -1489,58 +1475,6 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c } if (tag != RC_LAST) break; - case RC_DEFAULT_PAPERSIZE: - if (ignore_system_lyxrc || - default_papersize != system_lyxrc.default_papersize) { - os << "# The default papersize to use.\n" - << "\\default_papersize \""; - switch (default_papersize) { - case PAPER_DEFAULT: - os << "default"; break; - case PAPER_USLETTER: - os << "usletter"; break; - case PAPER_USLEGAL: - os << "legal"; break; - case PAPER_USEXECUTIVE: - os << "executive"; break; - case PAPER_A3: - os << "a3"; break; - case PAPER_A4: - os << "a4"; break; - case PAPER_A5: - os << "a5"; break; - case PAPER_B5: - os << "b5"; break; - case PAPER_CUSTOM: - case PAPER_A0: - case PAPER_A1: - case PAPER_A2: - case PAPER_A6: - case PAPER_B0: - case PAPER_B1: - case PAPER_B2: - case PAPER_B3: - case PAPER_B4: - case PAPER_B6: - case PAPER_C0: - case PAPER_C1: - case PAPER_C2: - case PAPER_C3: - case PAPER_C4: - case PAPER_C5: - case PAPER_C6: - case PAPER_JISB0: - case PAPER_JISB1: - case PAPER_JISB2: - case PAPER_JISB3: - case PAPER_JISB4: - case PAPER_JISB5: - case PAPER_JISB6: break; - } - os << "\"\n"; - } - if (tag != RC_LAST) - break; case RC_CHKTEX_COMMAND: if (ignore_system_lyxrc || chktex_command != system_lyxrc.chktex_command) { @@ -2520,6 +2454,14 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c if (tag != RC_LAST) break; + case RC_DEFAULT_LENGTH_UNIT: + if (ignore_system_lyxrc || + default_length_unit != system_lyxrc.default_length_unit) { + os << "\\default_length_unit " << int(default_length_unit) << '\n'; + } + if (tag != RC_LAST) + break; + case RC_SPELLCHECKER: if (ignore_system_lyxrc || spellchecker != system_lyxrc.spellchecker) { @@ -2942,7 +2884,6 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_DATE_INSERT_FORMAT: case LyXRC::RC_DEFAULT_LANGUAGE: case LyXRC::RC_GUI_LANGUAGE: - case LyXRC::RC_DEFAULT_PAPERSIZE: case LyXRC::RC_DEFAULT_VIEW_FORMAT: case LyXRC::RC_DEFFILE: case LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN: @@ -3069,6 +3010,7 @@ void actOnUpdatedPrefs(LyXRC const & lyxrc_orig, LyXRC const & lyxrc_new) case LyXRC::RC_FORWARD_SEARCH_PDF: case LyXRC::RC_EXPORT_OVERWRITE: case LyXRC::RC_DEFAULT_DECIMAL_POINT: + case LyXRC::RC_DEFAULT_LENGTH_UNIT: case LyXRC::RC_SCROLL_WHEEL_ZOOM: case LyXRC::RC_CURSOR_WIDTH: break; @@ -3180,10 +3122,6 @@ string const LyXRC::getDescription(LyXRCTags tag) str = _("New documents will be assigned this language."); break; - case RC_DEFAULT_PAPERSIZE: - str = _("Specify the default paper size."); - break; - case RC_DIALOGS_ICONIFY_WITH_MAIN: str = _("Iconify the dialogs when the main window is iconified. (Affects only dialogs shown after the change has been made.)"); break;