#include "LyX.h"
#include "Mover.h"
#include "Session.h"
+#include "SpellChecker.h"
#include "version.h"
#include "graphics/GraphicsTypes.h"
namespace {
-static unsigned int const LYXRC_FILEFORMAT = 1;
+// 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 = 15; // prannoy: statusbar on/off in full screen
// when adding something to this array keep it sorted!
LexerKeyword lyxrcTags[] = {
{ "\\bind_file", LyXRC::RC_BINDFILE },
{ "\\check_lastfiles", LyXRC::RC_CHECKLASTFILES },
{ "\\chktex_command", LyXRC::RC_CHKTEX_COMMAND },
+ { "\\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 },
{ "\\completion_inline_dots", LyXRC::RC_COMPLETION_INLINE_DOTS },
{ "\\completion_inline_math", LyXRC::RC_COMPLETION_INLINE_MATH },
{ "\\completion_inline_text", LyXRC::RC_COMPLETION_INLINE_TEXT },
+ { "\\completion_minlength", LyXRC::RC_COMPLETION_MINLENGTH },
{ "\\completion_popup_after_complete", LyXRC::RC_COMPLETION_POPUP_AFTER_COMPLETE },
{ "\\completion_popup_delay", LyXRC::RC_COMPLETION_POPUP_DELAY },
{ "\\completion_popup_math", LyXRC::RC_COMPLETION_POPUP_MATH },
{ "\\converter_cache_maxage", LyXRC::RC_CONVERTER_CACHE_MAXAGE },
{ "\\copier", LyXRC::RC_COPIER },
{ "\\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_language", LyXRC::RC_DEFAULT_LANGUAGE },
- { "\\default_papersize", LyXRC::RC_DEFAULT_PAPERSIZE },
+ { "\\default_length_unit", LyXRC::RC_DEFAULT_LENGTH_UNIT },
+ { "\\default_otf_view_format", LyXRC::RC_DEFAULT_OTF_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 },
{ "\\example_path", LyXRC::RC_EXAMPLEPATH },
{ "\\export_overwrite", LyXRC::RC_EXPORT_OVERWRITE },
{ "\\font_encoding", LyXRC::RC_FONT_ENCODING },
+ { "\\force_paint_single_char", LyXRC::RC_FORCE_PAINT_SINGLE_CHAR },
{ "\\format", LyXRC::RC_FILEFORMAT },
{ "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI },
{ "\\forward_search_pdf", LyXRC::RC_FORWARD_SEARCH_PDF },
{ "\\fullscreen_limit", LyXRC::RC_FULL_SCREEN_LIMIT },
{ "\\fullscreen_menubar", LyXRC::RC_FULL_SCREEN_MENUBAR },
{ "\\fullscreen_scrollbar", LyXRC::RC_FULL_SCREEN_SCROLLBAR },
+ { "\\fullscreen_statusbar", LyXRC::RC_FULL_SCREEN_STATUSBAR },
{ "\\fullscreen_tabbar", LyXRC::RC_FULL_SCREEN_TABBAR },
{ "\\fullscreen_toolbars", LyXRC::RC_FULL_SCREEN_TOOLBARS },
{ "\\fullscreen_width", LyXRC::RC_FULL_SCREEN_WIDTH },
{ "\\group_layouts", LyXRC::RC_GROUP_LAYOUTS },
{ "\\gui_language", LyXRC::RC_GUI_LANGUAGE },
{ "\\hunspelldir_path", LyXRC::RC_HUNSPELLDIR_PATH },
+ { "\\icon_set", LyXRC::RC_ICON_SET },
{ "\\index_alternatives", LyXRC::RC_INDEX_ALTERNATIVES },
{ "\\index_command", LyXRC::RC_INDEX_COMMAND },
{ "\\input", LyXRC::RC_INPUT },
{ "\\language_package_selection", LyXRC::RC_LANGUAGE_PACKAGE_SELECTION },
{ "\\load_session", LyXRC::RC_LOADSESSION },
{ "\\mac_dontswap_ctrl_meta", LyXRC::RC_MAC_DONTSWAP_CTRL_META },
- { "\\mac_like_word_movement", LyXRC::RC_MAC_LIKE_WORD_MOVEMENT },
+ { "\\mac_like_cursor_movement", LyXRC::RC_MAC_LIKE_CURSOR_MOVEMENT },
{ "\\macro_edit_style", LyXRC::RC_MACRO_EDIT_STYLE },
{ "\\make_backup", LyXRC::RC_MAKE_BACKUP },
{ "\\mark_foreign_language", LyXRC::RC_MARK_FOREIGN_LANGUAGE },
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
{ "\\tex_allows_spaces", LyXRC::RC_TEX_ALLOWS_SPACES },
{ "\\tex_expects_windows_paths", LyXRC::RC_TEX_EXPECTS_WINDOWS_PATHS },
+ { "\\texinputs_prefix", LyXRC::RC_TEXINPUTS_PREFIX },
{ "\\thesaurusdir_path", LyXRC::RC_THESAURUSDIRPATH },
{ "\\ui_file", LyXRC::RC_UIFILE },
{ "\\use_converter_cache", LyXRC::RC_USE_CONVERTER_CACHE },
{ "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS },
{ "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
+ { "\\use_qimage", LyXRC::RC_USE_QIMAGE },
// 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_name", LyXRC::RC_USER_NAME },
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 = ".";
// Get printer from the environment. If fail, use default "",
// assuming that everything is set up correctly.
printer = getEnv("PRINTER");
print_paper_dimension_flag = "-T";
document_path.erase();
view_dvi_paper_option.erase();
- default_papersize = PAPER_DEFAULT;
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";
#endif
spellchecker_accept_compound = false;
spellcheck_continuously = false;
+ completion_minlength = 6;
spellcheck_notes = true;
use_kbmap = false;
rtl_support = true;
language_command_local = "\\foreignlanguage{$$lang}{";
sort_layouts = false;
group_layouts = true;
- default_language = "english";
gui_language = "auto";
show_banner = true;
windows_style_tex_paths = false;
scroll_wheel_zoom = SCROLL_WHEEL_ZOOM_CTRL;
paragraph_markers = false;
mac_dontswap_ctrl_meta = false;
- mac_like_word_movement = false;
+ mac_like_cursor_movement = false;
macro_edit_style = MACRO_EDIT_INLINE_BOX;
dialogs_iconify_with_main = false;
preview = PREVIEW_OFF;
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());
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";
}
} // namespace anon
-bool LyXRC::read(FileName const & filename)
+bool LyXRC::read(FileName const & filename, bool check_format)
{
Lexer lexrc(lyxrcTags);
lexrc.setFile(filename);
LYXERR(Debug::LYXRC, "Reading '" << filename << "'...");
- ReturnValues retval = read(lexrc);
- if (retval != FormatMismatch)
+ ReturnValues retval = read(lexrc, check_format);
+ if (!check_format || retval != FormatMismatch)
return retval == ReadOK;
LYXERR(Debug::FILES, "Converting LyXRC file to " << LYXRC_FILEFORMAT);
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);
tempfile.removeFile();
return retval == ReadOK;
}
Lexer lexrc(lyxrcTags);
lexrc.setStream(is);
LYXERR(Debug::LYXRC, "Reading istream...");
- return read(lexrc) == ReadOK;
+ return read(lexrc, false) == ReadOK;
}
-LyXRC::ReturnValues LyXRC::read(Lexer & lexrc)
+LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
{
if (lyxerr.debugging(Debug::PARSER))
lexrc.printTable(lyxerr);
if (!lexrc.isOK())
return ReadError;
+ // default for current rowpainter capabilities
+ force_paint_single_char = true;
+
// format prior to 2.0 and introduction of format tag
unsigned int format = 0;
FileName const tmp =
libFileSearch(string(),
lexrc.getString());
- if (read(tmp)) {
- lexrc.printError("Error reading "
- "included file: " + tmp.absFileName());
+ if (read(tmp, check_format)) {
+ lexrc.printError(
+ "Error reading included file: " + tmp.absFileName());
}
}
break;
lexrc >> tex_allows_spaces;
break;
+ case RC_TEXINPUTS_PREFIX:
+ lexrc >> texinputs_prefix;
+ break;
+
case RC_KBMAP:
lexrc >> use_kbmap;
break;
lexrc >> fontenc;
break;
+ case RC_FORCE_PAINT_SINGLE_CHAR:
+ lexrc >> force_paint_single_char;
+ break;
+
case RC_PRINTER:
lexrc >> printer;
break;
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();
lexrc >> completion_popup_after_complete;
break;
+ case RC_COMPLETION_MINLENGTH:
+ lexrc >> completion_minlength;
+ break;
+
case RC_NUMLASTFILES:
lexrc >> num_lastfiles;
break;
lexrc >> check_lastfiles;
break;
+ case RC_ICON_SET:
+ lexrc >> icon_set;
+ break;
+
+ case RC_USE_SYSTEM_THEME_ICONS:
+ lexrc >> use_system_theme_icons;
+ break;
+
case RC_SCREEN_FONT_ROMAN:
if (lexrc.next()) {
roman_font_name = lexrc.getString();
lexrc >> cursor_follows_scrollbar;
break;
+ case RC_CURSOR_WIDTH:
+ lexrc >> cursor_width;
+ break;
+
case RC_SCROLL_BELOW_DOCUMENT:
lexrc >> scroll_below_document;
break;
lexrc >> mac_dontswap_ctrl_meta;
break;
- case RC_MAC_LIKE_WORD_MOVEMENT:
- lexrc >> mac_like_word_movement;
+ case RC_MAC_LIKE_CURSOR_MOVEMENT:
+ lexrc >> mac_like_cursor_movement;
break;
case RC_MACRO_EDIT_STYLE:
case RC_USE_PIXMAP_CACHE:
lexrc >> use_pixmap_cache;
break;
+ case RC_USE_QIMAGE:
+ lexrc >> use_qimage;
+ break;
case RC_SPELLCHECKER:
lexrc >> spellchecker;
break;
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;
case RC_VISUAL_CURSOR:
lexrc >> visual_cursor;
break;
+ case RC_CLOSE_BUFFER_WITH_LAST_VIEW:
+ lexrc >> close_buffer_with_last_view;
+ break;
case RC_AUTO_NUMBER:
lexrc >> auto_number;
break;
break;
}
case RC_FILEFORMAT: {
- string format, extension, prettyname, shortcut;
- lexrc >> format >> extension >> prettyname >> shortcut;
+ bool ok = true;
+ string format, extensions, prettyname, shortcut;
+ if (!(lexrc >> format >> extensions))
+ ok = false;
+ if (ok && lexrc.next(true))
+ prettyname = lexrc.getString();
+ else
+ ok = false;
+ if (ok)
+ if(!(lexrc >> shortcut))
+ ok = false;
string viewer, editor;
- if (lexrc.next(true))
+ if (ok && lexrc.next(true))
viewer = lexrc.getString();
- if (lexrc.next(true))
+ else
+ ok = false;
+ if (ok && lexrc.next(true))
editor = lexrc.getString();
- string flags;
- // Hack to ensure compatibility with versions older
- // than 1.5.0
- int le = lexrc.lex();
- if (le != Lexer::LEX_FEOF && le != Lexer::LEX_UNDEF) {
- flags = lexrc.getString();
- if (le != Lexer::LEX_DATA) {
- // We have got a known token.
- // Therefore this is an old style
- // format definition without
- // flags.
- lexrc.pushToken(flags);
- flags.erase();
- }
- }
+ else
+ ok = false;
+ string flags, mime;
+ if (!(lexrc >> flags >> mime))
+ ok = false;
int flgs = Format::none;
while (!flags.empty()) {
string flag;
flgs |= Format::document;
else if (flag == "vector")
flgs |= Format::vector;
+ else if (flag == "zipped=native")
+ flgs |= Format::zipped_native;
+ else if (flag == "menu=export")
+ flgs |= Format::export_menu;
else
LYXERR0("Ignoring unknown flag `"
<< flag << "' for format `"
<< format << "'.");
}
- if (prettyname.empty()) {
+ if (!ok)
+ LYXERR0("Syntax error in format " << format);
+ else if (prettyname.empty()) {
if (theConverters().formatIsUsed(format))
LYXERR0("Can't delete format " << format);
else
formats.erase(format);
} else {
- formats.add(format, extension, prettyname,
- shortcut, viewer, editor, flgs);
+ formats.add(format, extensions, prettyname,
+ shortcut, viewer, editor, mime, flgs);
}
break;
}
case RC_VIEWER_ALTERNATIVES: {
string format, command;
- if (lexrc.next())
- format = lexrc.getString();
- if (lexrc.eatLine())
- command = lexrc.getString();
+ lexrc >> format;
+ lexrc >> command;
viewer_alternatives[format].insert(command);
break;
}
case RC_EDITOR_ALTERNATIVES: {
string format, command;
- lexrc >> format >> command;
+ lexrc >> format;
+ lexrc >> command;
editor_alternatives[format].insert(command);
break;
}
+ case RC_DEFAULT_OTF_VIEW_FORMAT:
+ lexrc >> default_otf_view_format;
+ break;
+
case RC_DEFAULT_VIEW_FORMAT:
lexrc >> default_view_format;
break;
-
- case RC_DEFAULT_LANGUAGE:
- lexrc >> default_language;
- break;
case RC_GUI_LANGUAGE:
lexrc >> gui_language;
case RC_FULL_SCREEN_SCROLLBAR:
lexrc >> full_screen_scrollbar;
break;
+ case RC_FULL_SCREEN_STATUSBAR:
+ lexrc >> full_screen_statusbar;
+ break;
case RC_FULL_SCREEN_TABBAR:
lexrc >> full_screen_tabbar;
break;
run_mode = single_instance ? USE_REMOTE : NEW_INSTANCE;
break;
case RC_FORWARD_SEARCH_DVI:
- if (lexrc.next(true))
+ if (lexrc.next(true))
forward_search_dvi = lexrc.getString();
break;
case RC_FORWARD_SEARCH_PDF:
- if (lexrc.next(true))
+ if (lexrc.next(true))
forward_search_pdf = lexrc.getString();
break;
case RC_EXPORT_OVERWRITE:
// This is triggered the first time through the loop unless
// we hit a format tag.
- if (format != LYXRC_FILEFORMAT)
+ if (check_format && format != LYXRC_FILEFORMAT)
return FormatMismatch;
}
// Escape \ and " so that LyXLex can read the string later
string escapeCommand(string const & str) {
- return subst(subst(str , "\\", "\\\\"),
+ return subst(subst(str , "\\", "\\\\"),
"\"", "\\\"");
}
void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) const
{
LyXRCTags tag = RC_LAST;
-
+
if (!name.empty()) {
for (int i = 0; i != lyxrcCount; ++i)
if ("\\" + name == lyxrcTags[i].tag)
}
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) {
if (tag != RC_LAST)
break;
case RC_TEX_EXPECTS_WINDOWS_PATHS:
- if (ignore_system_lyxrc ||
- windows_style_tex_paths != system_lyxrc.windows_style_tex_paths) {
+ // Don't write this setting to the preferences file,
+ // but allow temporary changes (bug 7557).
+ if (ignore_system_lyxrc) {
os << "\\tex_expects_windows_paths "
<< convert<string>(windows_style_tex_paths) << '\n';
}
<< "# SCREEN & FONTS SECTION ############################\n"
<< "#\n\n";
+ case RC_ICON_SET:
+ if (ignore_system_lyxrc ||
+ icon_set != system_lyxrc.icon_set) {
+ os << "\\icon_set \"" << icon_set
+ << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
+
+ case RC_USE_SYSTEM_THEME_ICONS:
+ if (ignore_system_lyxrc ||
+ use_system_theme_icons != system_lyxrc.use_system_theme_icons) {
+ os << "\\use_system_theme_icons "
+ << convert<string>(use_system_theme_icons)
+ << "\n";
+ }
+ if (tag != RC_LAST)
+ break;
+
case RC_SCREEN_DPI:
if (ignore_system_lyxrc ||
dpi != system_lyxrc.dpi) {
}
if (tag != RC_LAST)
break;
+ case RC_CURSOR_WIDTH:
+ if (ignore_system_lyxrc ||
+ cursor_width
+ != system_lyxrc.cursor_width) {
+ os << "\\cursor_width "
+ << cursor_width << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_SCROLL_BELOW_DOCUMENT:
if (ignore_system_lyxrc ||
scroll_below_document
}
if (tag != RC_LAST)
break;
- case RC_MAC_LIKE_WORD_MOVEMENT:
+ case RC_MAC_LIKE_CURSOR_MOVEMENT:
if (ignore_system_lyxrc ||
- mac_like_word_movement
- != system_lyxrc.mac_like_word_movement) {
- os << "\\mac_like_word_movement "
- << convert<string>(mac_like_word_movement) << '\n';
+ mac_like_cursor_movement
+ != system_lyxrc.mac_like_cursor_movement) {
+ os << "\\mac_like_cursor_movement "
+ << convert<string>(mac_like_cursor_movement) << '\n';
}
if (tag != RC_LAST)
break;
}
if (tag != RC_LAST)
break;
+ case RC_FULL_SCREEN_STATUSBAR:
+ if (ignore_system_lyxrc ||
+ full_screen_statusbar != system_lyxrc.full_screen_statusbar) {
+ os << "\\fullscreen_statusbar "
+ << convert<string>(full_screen_statusbar)
+ << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_FULL_SCREEN_TABBAR:
if (ignore_system_lyxrc ||
full_screen_tabbar != system_lyxrc.full_screen_tabbar) {
<< "# TEX SECTION #######################################\n"
<< "#\n\n";
+ case RC_TEXINPUTS_PREFIX:
+ if (ignore_system_lyxrc ||
+ texinputs_prefix != system_lyxrc.texinputs_prefix) {
+ os << "\\texinputs_prefix \"" << texinputs_prefix << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
+
case RC_FONT_ENCODING:
if (ignore_system_lyxrc ||
fontenc != system_lyxrc.fontenc) {
if (tag != RC_LAST)
break;
+ case RC_FORCE_PAINT_SINGLE_CHAR:
+ if (ignore_system_lyxrc ||
+ force_paint_single_char != system_lyxrc.force_paint_single_char) {
+ os << "\\force_paint_single_char \"" << force_paint_single_char << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
+
os << "\n#\n"
<< "# FILE SECTION ######################################\n"
<< "#\n\n";
}
if (tag != RC_LAST)
break;
- case RC_NUMLASTFILES:
+ case RC_COMPLETION_MINLENGTH:
+ if (ignore_system_lyxrc ||
+ completion_minlength != system_lyxrc.completion_minlength) {
+ os << "\\completion_minlength " << convert<string>(completion_minlength)
+ << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
+
+ case RC_NUMLASTFILES:
if (ignore_system_lyxrc ||
num_lastfiles != system_lyxrc.num_lastfiles) {
os << "\\num_lastfiles " << num_lastfiles << '\n';
}
if (tag != RC_LAST)
break;
+ case RC_USE_QIMAGE:
+ if (ignore_system_lyxrc ||
+ use_qimage != system_lyxrc.use_qimage) {
+ os << "\\use_qimage "
+ << convert<string>(use_qimage)
+ << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
os << "\n#\n"
<< "# LANGUAGE SUPPORT SECTION ##########################\n"
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) {
}
if (tag != RC_LAST)
break;
+ case RC_CLOSE_BUFFER_WITH_LAST_VIEW:
+ if (ignore_system_lyxrc ||
+ close_buffer_with_last_view != system_lyxrc.close_buffer_with_last_view) {
+ os << "# When closing last view, buffer closes (yes), hides (no), or ask the user (ask)\n";
+ os << "\\close_buffer_with_last_view " << close_buffer_with_last_view << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_LANGUAGE_CUSTOM_PACKAGE:
if (ignore_system_lyxrc ||
language_custom_package != system_lyxrc.language_custom_package) {
language_package_selection != system_lyxrc.language_package_selection) {
os << "\\language_package_selection ";
switch (language_package_selection) {
- case LP_AUTO:
+ case LP_AUTO:
os << "0\n";
break;
case LP_BABEL:
}
if (tag != RC_LAST)
break;
- case RC_DEFAULT_LANGUAGE:
- if (ignore_system_lyxrc ||
- default_language != system_lyxrc.default_language) {
- os << "\\default_language " << default_language << '\n';
- }
- if (tag != RC_LAST)
- break;
case RC_GUI_LANGUAGE:
if (ignore_system_lyxrc ||
gui_language != system_lyxrc.gui_language) {
Format const * format =
system_formats.getFormat(cit->name());
if (!format ||
- format->extension() != cit->extension() ||
+ format->extensions() != cit->extensions() ||
format->prettyname() != cit->prettyname() ||
format->shortcut() != cit->shortcut() ||
format->viewer() != cit->viewer() ||
format->editor() != cit->editor() ||
format->documentFormat() != cit->documentFormat() ||
- format->vectorFormat() != cit->vectorFormat()) {
+ format->vectorFormat() != cit->vectorFormat() ||
+ format->inExportMenu() != cit->inExportMenu() ||
+ format->mime() != cit->mime()) {
os << "\\format \"" << cit->name() << "\" \""
- << cit->extension() << "\" \""
+ << cit->extensions() << "\" \""
<< cit->prettyname() << "\" \""
<< cit->shortcut() << "\" \""
<< escapeCommand(cit->viewer()) << "\" \""
flags.push_back("document");
if (cit->vectorFormat())
flags.push_back("vector");
+ if (cit->zippedNative())
+ flags.push_back("zipped=native");
+ if (cit->inExportMenu())
+ flags.push_back("menu=export");
+
os << getStringFromVector(flags);
- os << "\"\n";
+ os << "\" \"" << cit->mime() << "\"\n";
}
}
cit != system_formats.end(); ++cit)
if (!formats.getFormat(cit->name()))
os << "\\format \"" << cit->name()
- << "\" \"\" \"\" \"\" \"\" \"\" \"\"\n";
+ << "\" \"\" \"\" \"\" \"\" \"\" \"\" \"\"\n";
if (tag != RC_LAST)
break;
case RC_VIEWER_ALTERNATIVES: {
Alternatives::const_iterator it = viewer_alternatives.begin();
Alternatives::const_iterator const en = viewer_alternatives.end();
- Alternatives::const_iterator const sysend =
+ Alternatives::const_iterator const sysend =
system_lyxrc.viewer_alternatives.end();
for (; it != en; ++it) {
string const & fmt = it->first;
CommandSet const & cmd = it->second;
CommandSet::const_iterator sit = cmd.begin();
CommandSet::const_iterator const sen = cmd.end();
- Alternatives::const_iterator const sysfmt = ignore_system_lyxrc ?
+ Alternatives::const_iterator const sysfmt = ignore_system_lyxrc ?
system_lyxrc.viewer_alternatives.begin() : // we won't use it in this case
system_lyxrc.viewer_alternatives.find(fmt);
for (; sit != sen; ++sit) {
string const & cmd = *sit;
- if (ignore_system_lyxrc
+ if (ignore_system_lyxrc
|| sysfmt == sysend // format not found
|| sysfmt->second.count(cmd) == 0 // this command not found
)
- os << "\\viewer_alternatives " << fmt << " " << cmd << "\n";
+ os << "\\viewer_alternatives " << fmt << " \"" << escapeCommand(cmd) << "\"\n";
}
}
if (tag != RC_LAST)
case RC_EDITOR_ALTERNATIVES: {
Alternatives::const_iterator it = editor_alternatives.begin();
Alternatives::const_iterator const en = editor_alternatives.end();
- Alternatives::const_iterator const sysend =
+ Alternatives::const_iterator const sysend =
system_lyxrc.editor_alternatives.end();
for (; it != en; ++it) {
string const & fmt = it->first;
CommandSet const & cmd = it->second;
CommandSet::const_iterator sit = cmd.begin();
CommandSet::const_iterator const sen = cmd.end();
- Alternatives::const_iterator const sysfmt = ignore_system_lyxrc ?
+ Alternatives::const_iterator const sysfmt = ignore_system_lyxrc ?
system_lyxrc.editor_alternatives.begin() : // we won't use it in this case
system_lyxrc.editor_alternatives.find(fmt);
for (; sit != sen; ++sit) {
string const & cmd = *sit;
- if (ignore_system_lyxrc
+ if (ignore_system_lyxrc
|| sysfmt == sysend // format not found
|| sysfmt->second.count(cmd) == 0 // this command not found
)
- os << "\\editor_alternatives " << fmt << " " << cmd << "\n";
+ os << "\\editor_alternatives " << fmt << " \"" << escapeCommand(cmd) << "\"\n";
}
}
if (tag != RC_LAST)
break;
}
+ case RC_DEFAULT_OTF_VIEW_FORMAT:
+ if (ignore_system_lyxrc ||
+ default_otf_view_format != system_lyxrc.default_otf_view_format) {
+ os << "\\default_otf_view_format " << default_otf_view_format << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_DEFAULT_VIEW_FORMAT:
if (ignore_system_lyxrc ||
default_view_format != system_lyxrc.default_view_format) {
<< "\" \"" << cit->to << "\" \"\" \"\"\n";
if (tag != RC_LAST)
break;
-
+
case RC_COPIER:
if (tag == RC_LAST)
os << "\n#\n"
// if we forget an element.
LyXRC::LyXRCTags tag = LyXRC::RC_LAST;
switch (tag) {
+ case LyXRC::RC_LAST:
case LyXRC::RC_ACCEPT_COMPOUND:
+ if (lyxrc_orig.spellchecker_accept_compound != lyxrc_new.spellchecker_accept_compound)
+ if (theSpellChecker()) theSpellChecker()->advanceChangeNumber();
case LyXRC::RC_ALT_LANG:
case LyXRC::RC_PLAINTEXT_LINELEN:
case LyXRC::RC_AUTOCORRECTION_MATH:
case LyXRC::RC_COMPLETION_POPUP_DELAY:
case LyXRC::RC_COMPLETION_POPUP_MATH:
case LyXRC::RC_COMPLETION_POPUP_TEXT:
+ case LyXRC::RC_COMPLETION_MINLENGTH:
case LyXRC::RC_USELASTFILEPOS:
case LyXRC::RC_LOADSESSION:
case LyXRC::RC_CHKTEX_COMMAND:
case LyXRC::RC_CURSOR_FOLLOWS_SCROLLBAR:
case LyXRC::RC_SCROLL_BELOW_DOCUMENT:
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_OTF_VIEW_FORMAT:
case LyXRC::RC_DEFAULT_VIEW_FORMAT:
case LyXRC::RC_DEFFILE:
case LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN:
case LyXRC::RC_ESC_CHARS:
case LyXRC::RC_EXAMPLEPATH:
case LyXRC::RC_FONT_ENCODING:
+ case LyXRC::RC_FORCE_PAINT_SINGLE_CHAR:
case LyXRC::RC_FILEFORMAT:
case LyXRC::RC_GROUP_LAYOUTS:
case LyXRC::RC_HUNSPELLDIR_PATH:
+ case LyXRC::RC_ICON_SET:
case LyXRC::RC_INDEX_ALTERNATIVES:
case LyXRC::RC_INDEX_COMMAND:
case LyXRC::RC_JBIBTEX_COMMAND:
case LyXRC::RC_LANGUAGE_PACKAGE_SELECTION:
case LyXRC::RC_LYXRCFORMAT:
case LyXRC::RC_MAC_DONTSWAP_CTRL_META:
- case LyXRC::RC_MAC_LIKE_WORD_MOVEMENT:
+ case LyXRC::RC_MAC_LIKE_CURSOR_MOVEMENT:
case LyXRC::RC_MACRO_EDIT_STYLE:
case LyXRC::RC_MAKE_BACKUP:
case LyXRC::RC_MARK_FOREIGN_LANGUAGE:
case LyXRC::RC_PARAGRAPH_MARKERS:
case LyXRC::RC_PATH_PREFIX:
if (lyxrc_orig.path_prefix != lyxrc_new.path_prefix) {
- prependEnvPath("PATH", lyxrc.path_prefix);
+ prependEnvPath("PATH", lyxrc_new.path_prefix);
+ // Resets python path
+ support::os::python(true);
}
case LyXRC::RC_PREVIEW:
case LyXRC::RC_PREVIEW_HASHED_LABELS:
case LyXRC::RC_SHOW_BANNER:
case LyXRC::RC_OPEN_BUFFERS_IN_TABS:
case LyXRC::RC_SPELLCHECKER:
+ if (lyxrc_orig.spellchecker != lyxrc_new.spellchecker)
+ setSpellChecker();
case LyXRC::RC_SPELLCHECK_CONTINUOUSLY:
case LyXRC::RC_SPELLCHECK_NOTES:
case LyXRC::RC_SPLITINDEX_COMMAND:
if (lyxrc_orig.windows_style_tex_paths != lyxrc_new.windows_style_tex_paths) {
os::windows_style_tex_paths(lyxrc_new.windows_style_tex_paths);
}
+ case LyXRC::RC_TEXINPUTS_PREFIX:
case LyXRC::RC_THESAURUSDIRPATH:
case LyXRC::RC_UIFILE:
case LyXRC::RC_USER_EMAIL:
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:
case LyXRC::RC_SINGLE_INSTANCE:
case LyXRC::RC_FULL_SCREEN_LIMIT:
case LyXRC::RC_FULL_SCREEN_SCROLLBAR:
case LyXRC::RC_FULL_SCREEN_MENUBAR:
+ case LyXRC::RC_FULL_SCREEN_STATUSBAR:
case LyXRC::RC_FULL_SCREEN_TABBAR:
case LyXRC::RC_FULL_SCREEN_TOOLBARS:
case LyXRC::RC_FULL_SCREEN_WIDTH:
case LyXRC::RC_VISUAL_CURSOR:
+ case LyXRC::RC_CLOSE_BUFFER_WITH_LAST_VIEW:
case LyXRC::RC_VIEWER:
case LyXRC::RC_VIEWER_ALTERNATIVES:
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_LENGTH_UNIT:
case LyXRC::RC_SCROLL_WHEEL_ZOOM:
- case LyXRC::RC_LAST:
+ case LyXRC::RC_CURSOR_WIDTH:
break;
}
}
str = _("LyX normally doesn't update the cursor position if you move the scrollbar. Set to true if you'd prefer to always have the cursor on screen.");
break;
+ case RC_CURSOR_WIDTH:
+ str = _("Configure the width of the text cursor. Automatic zoom-controlled cursor width used when set to 0.");
+ break;
+
case RC_SCROLL_BELOW_DOCUMENT:
str = _("LyX normally doesn't allow the user to scroll further than the bottom of the document. Set to true if you prefer to scroll the bottom of the document to the top of the screen");
break;
str = _("Make Apple key act as Meta and Control key as Ctrl.");
break;
- case RC_MAC_LIKE_WORD_MOVEMENT:
- str = _("Use the Mac OS X conventions for the word-level cursor movement");
+ case RC_MAC_LIKE_CURSOR_MOVEMENT:
+ str = _("Use the Mac OS X conventions for cursor movement");
break;
case RC_SHOW_MACRO_LABEL:
str = _("Command definition file. Can either specify an absolute path, or LyX will look in its global and local commands/ directories.");
break;
- case RC_DEFAULT_VIEW_FORMAT:
- str = _("The default format used with LFUN_BUFFER_[VIEW|UPDATE].");
- break;
-
- case RC_DEFAULT_LANGUAGE:
- str = _("New documents will be assigned this language.");
+ case RC_DEFAULT_OTF_VIEW_FORMAT:
+ str = _("The default format used with LFUN_BUFFER_[VIEW|UPDATE] with non-TeX fonts.");
break;
- case RC_DEFAULT_PAPERSIZE:
- str = _("Specify the default paper size.");
+ case RC_DEFAULT_VIEW_FORMAT:
+ str = _("The default format used with LFUN_BUFFER_[VIEW|UPDATE].");
break;
case RC_DIALOGS_ICONIFY_WITH_MAIN:
str = _("The font encoding used for the LaTeX2e fontenc package. T1 is highly recommended for non-English languages.");
break;
+ case RC_FORCE_PAINT_SINGLE_CHAR:
+ str = _("Disable any kerning and ligatures for text drawing on screen.");
+ break;
+
case RC_FILEFORMAT:
break;
case RC_PATH_PREFIX:
str = _("Specify those directories which should be "
- "prepended to the PATH environment variable. "
+ "prepended to the PATH environment variable.\n"
"Use the OS native format.");
break;
str = _("Select to have visual bidi cursor movement, unselect for logical movement.");
break;
+ case RC_CLOSE_BUFFER_WITH_LAST_VIEW:
+ str = _("Specify whether, closing the last view of an open document, LyX should close the document (yes), hide it (no), or ask the user (ask).");
+ break;
+
case RC_SCREEN_DPI:
str = _("DPI (dots per inch) of your monitor is auto-detected by LyX. If that goes wrong, override the setting here.");
break;
case RC_TEX_EXPECTS_WINDOWS_PATHS:
break;
+ case RC_TEXINPUTS_PREFIX:
+ str = _("Specify those directories which should be "
+ "prepended to the TEXINPUTS environment variable.\n"
+ "A '.' represents the current document directory. "
+ "Use the OS native format.");
+ 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;