#include "Lexer.h"
#include "LyX.h"
#include "Mover.h"
-#include "Session.h"
#include "SpellChecker.h"
#include "version.h"
-#include "graphics/GraphicsTypes.h"
-
#include "support/convert.h"
#include "support/debug.h"
#include "support/environment.h"
#include "support/FileName.h"
#include "support/filetools.h"
-#include "support/gettext.h"
#include "support/lstrings.h"
#include "support/os.h"
#include "support/Package.h"
#include "support/TempFile.h"
-#include "support/userinfo.h"
+
+#ifdef USE_MACOSX_PACKAGING
+#include "support/AppleSupport.h"
+#endif
#include <fstream>
#include <iostream>
// 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 = 33; // sanda: add \citation_search_view
+static unsigned int const LYXRC_FILEFORMAT = 36; // rkh: spellcheck_continuously default
// when adding something to this array keep it sorted!
LexerKeyword lyxrcTags[] = {
{ "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND },
{ "\\bind_file", LyXRC::RC_BINDFILE },
{ "\\check_lastfiles", LyXRC::RC_CHECKLASTFILES },
{ "\\chktex_command", LyXRC::RC_CHKTEX_COMMAND },
+ { "\\citation_search", LyXRC::RC_CITATION_SEARCH },
+ { "\\citation_search_pattern", LyXRC::RC_CITATION_SEARCH_PATTERN },
{ "\\citation_search_view", LyXRC::RC_CITATION_SEARCH_VIEW },
{ "\\close_buffer_with_last_view", LyXRC::RC_CLOSE_BUFFER_WITH_LAST_VIEW },
{ "\\completion_cursor_text", LyXRC::RC_COMPLETION_CURSOR_TEXT },
{ "\\dialogs_iconify_with_main", LyXRC::RC_DIALOGS_ICONIFY_WITH_MAIN },
{ "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS },
{ "\\document_path", LyXRC::RC_DOCUMENTPATH },
+ { "\\draw_strategy", LyXRC::RC_DRAW_STRATEGY },
{ "\\editor_alternatives", LyXRC::RC_EDITOR_ALTERNATIVES },
{ "\\escape_chars", LyXRC::RC_ESC_CHARS },
{ "\\example_path", LyXRC::RC_EXAMPLEPATH },
+ { "\\experimental:bookmarks_visibility", LyXRC::RC_BOOKMARKS_VISIBILITY },
{ "\\export_overwrite", LyXRC::RC_EXPORT_OVERWRITE },
{ "\\format", LyXRC::RC_FILEFORMAT },
{ "\\forward_search_dvi", LyXRC::RC_FORWARD_SEARCH_DVI },
}
string const x11_name = lexrc.getString();
+ string x11_darkname = x11_name;
+ if (lexrc.next())
+ x11_darkname = lexrc.getString();
+
ColorCode const col =
lcolor.getFromLyXName(lyx_name);
if (col == Color_none ||
col == Color_ignore)
break;
- if (!lcolor.setColor(col, x11_name))
+ if (!lcolor.setColor(col, x11_name, x11_darkname))
LYXERR0("Bad lyxrc set_color for " << lyx_name);
- LYXERR(Debug::LYXRC, "Set " << lyx_name << "(" << col << ") to " << x11_name);
+ LYXERR(Debug::LYXRC, "Set " << lyx_name << "(" << col << ") to "
+ << x11_name << " and " << x11_darkname);
break;
}
}
break;
+ case RC_CITATION_SEARCH:
+ lexrc >> citation_search;
+ break;
+
+ case RC_CITATION_SEARCH_PATTERN:
+ if (lexrc.next())
+ citation_search_pattern = lexrc.getString();
+ break;
+
case RC_CITATION_SEARCH_VIEW:
- lexrc >> citation_search_view;
+ if (lexrc.next())
+ citation_search_view = lexrc.getString();
break;
case RC_CT_ADDITIONS_UNDERLINED:
break;
case RC_OPEN_BUFFERS_IN_TABS:
lexrc >> open_buffers_in_tabs;
+#ifdef USE_MACOSX_PACKAGING
+ if (appleUserTabbingPreferenceAlways())
+ open_buffers_in_tabs = true;
+#endif
break;
case RC_SINGLE_CLOSE_TAB_BUTTON:
lexrc >> single_close_tab_button;
lexrc >> mouse_middlebutton_paste;
break;
+ case RC_BOOKMARKS_VISIBILITY:
+ if (lexrc.next()) {
+ string const tmp = lexrc.getString();
+ if (tmp == "none")
+ bookmarks_visibility = BMK_NONE;
+ else if (tmp == "margin")
+ bookmarks_visibility = BMK_MARGIN;
+ else if (tmp == "inline")
+ bookmarks_visibility = BMK_INLINE;
+ else {
+ bookmarks_visibility = BMK_NONE;
+ LYXERR0("Unrecognized bookmark visibility " << tmp <<'"');
+ }
+ }
+ break;
+
+ case RC_DRAW_STRATEGY:
+ if (lexrc.next()) {
+ string const tmp = lexrc.getString();
+ if (tmp == "partial")
+ draw_strategy = DS_PARTIAL;
+ else if (tmp == "backingstore")
+ draw_strategy = DS_BACKINGSTORE;
+ else {
+ draw_strategy = DS_PARTIAL;
+ LYXERR0("Unrecognized draw strategy " << tmp <<'"');
+ }
+ }
+ break;
+
case RC_LAST:
break; // this is just a dummy
}
if (tag != RC_LAST)
break;
// fall through
+ case RC_CITATION_SEARCH:
+ if (ignore_system_lyxrc ||
+ citation_search != system_lyxrc.citation_search) {
+ os << "# Set to true to use script to search\n"
+ << "# locl disk for citation targets.\n"
+ << "\\citation_search "
+ << convert<string>(citation_search)
+ << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
+ // fall through
case RC_CITATION_SEARCH_VIEW:
if (ignore_system_lyxrc ||
citation_search_view != system_lyxrc.citation_search_view) {
- os << "\\citaton_search_view "
- << citation_search_view << '\n';
+ os << "\\citation_search_view \""
+ << citation_search_view << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
+ // fall through
+ case RC_CITATION_SEARCH_PATTERN:
+ if (ignore_system_lyxrc ||
+ citation_search_pattern != system_lyxrc.citation_search_pattern) {
+ os << "\\citation_search_pattern \""
+ << citation_search_pattern << "\"\n";
}
if (tag != RC_LAST)
break;
if (tag != RC_LAST)
break;
// fall through
+ case RC_BOOKMARKS_VISIBILITY:
+ if (ignore_system_lyxrc ||
+ bookmarks_visibility != system_lyxrc.bookmarks_visibility) {
+ string status;
+ switch (bookmarks_visibility) {
+ case BMK_NONE:
+ status = "none";
+ break;
+ case BMK_INLINE:
+ status = "inline";
+ break;
+ case BMK_MARGIN:
+ status = "margin";
+ break;
+ }
+ os << "\\experimental:bookmarks_visibility " << status << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
+ // fall through
case RC_MAC_DONTSWAP_CTRL_META:
if (ignore_system_lyxrc ||
mac_dontswap_ctrl_meta
}
if (tag != RC_LAST)
break;
+ // fall through
+ case RC_DRAW_STRATEGY:
+ if (ignore_system_lyxrc ||
+ draw_strategy != system_lyxrc.draw_strategy) {
+ string status;
+ switch (draw_strategy) {
+ case DS_PARTIAL:
+ status = "partial";
+ break;
+ case DS_BACKINGSTORE:
+ status = "backingstore";
+ break;
+ }
+ os << "\\draw_strategy " << status << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
+ // fall through
os << "\n#\n"
- << "# COLOR SECTION ###################################\n"
- << "#\n\n";
+ << "# COLOR SECTION ###################################\n"
+ << "#\n\n";
// fall through
case RC_SET_COLOR:
for (int i = 0; i < Color_ignore; ++i) {
ColorCode lc = static_cast<ColorCode>(i);
- string const col = lcolor.getX11HexName(lc);
+ string const col = lcolor.getAllX11HexNames(lc).first;
+ string const darkcol = lcolor.getAllX11HexNames(lc).second;
if (ignore_system_lyxrc
- || col != system_lcolor.getX11HexName(lc)) {
+ || col != system_lcolor.getAllX11HexNames(lc).first
+ || darkcol != system_lcolor.getAllX11HexNames(lc).second) {
os << "\\set_color \""
<< lcolor.getLyXName(lc) << "\" \""
- << col << "\"\n";
+ << col << "\" \""
+ << darkcol << "\"\n";
}
}
if (tag != RC_LAST)
break;
// fall through
case RC_DEFAULT_VIEW_FORMAT:
- if (ignore_system_lyxrc ||
- default_view_format != system_lyxrc.default_view_format) {
+ if ((ignore_system_lyxrc ||
+ default_view_format != system_lyxrc.default_view_format)
+ && !default_view_format.empty()) {
os << "\\default_view_format " << default_view_format << '\n';
}
if (tag != RC_LAST)
case LyXRC::RC_BIBTEX_ALTERNATIVES:
case LyXRC::RC_BIBTEX_COMMAND:
case LyXRC::RC_BINDFILE:
+ case LyXRC::RC_BOOKMARKS_VISIBILITY:
+ case LyXRC::RC_CITATION_SEARCH:
+ case LyXRC::RC_CITATION_SEARCH_PATTERN:
case LyXRC::RC_CITATION_SEARCH_VIEW:
case LyXRC::RC_CHECKLASTFILES:
case LyXRC::RC_COMPLETION_CURSOR_TEXT:
package().document_dir() = FileName(lyxrc.document_path);
}
// fall through
+ case LyXRC::RC_DRAW_STRATEGY:
case LyXRC::RC_EDITOR_ALTERNATIVES:
case LyXRC::RC_ESC_CHARS:
case LyXRC::RC_EXAMPLEPATH:
|| lyxrc_orig.roman_font_foundry != lyxrc_new.roman_font_foundry
|| lyxrc_orig.sans_font_foundry != lyxrc_new.sans_font_foundry
|| lyxrc_orig.use_scalable_fonts != lyxrc_new.use_scalable_fonts
- || lyxrc_orig.font_sizes != lyxrc_new.font_sizes
+ || !std::equal(std::begin(lyxrc_orig.font_sizes), std::end(lyxrc_orig.font_sizes),
+ std::begin(lyxrc_new.font_sizes))
|| lyxrc_orig.typewriter_font_foundry != lyxrc_new.typewriter_font_foundry
|| lyxrc_orig.defaultZoom != lyxrc_new.defaultZoom) {
dispatch(FuncRequest(LFUN_SCREEN_FONT_UPDATE));