#include "LyXRC.h"
-#include "debug.h"
+#include "support/debug.h"
#include "Color.h"
#include "Converter.h"
#include "Format.h"
-#include "gettext.h"
+#include "support/gettext.h"
#include "Session.h"
#include "Lexer.h"
#include "FontEnums.h"
#include "support/os.h"
#include "support/userinfo.h"
+using namespace std;
+using namespace lyx::support;
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;
-
-using std::ios;
-using std::ofstream;
-using std::ostream;
-using std::string;
-
-
namespace {
// when adding something to this array keep it sorted!
keyword_item lyxrcTags[] = {
{ "\\accept_compound", LyXRC::RC_ACCEPT_COMPOUND },
+ { "\\allow_geometry_session", LyXRC::RC_GEOMETRY_SESSION },
{ "\\alternate_language", LyXRC::RC_ALT_LANG },
{ "\\auto_number", LyXRC::RC_AUTO_NUMBER },
{ "\\auto_region_delete", LyXRC::RC_AUTOREGIONDELETE },
{ "\\display_graphics", LyXRC::RC_DISPLAY_GRAPHICS },
{ "\\document_path", LyXRC::RC_DOCUMENTPATH },
{ "\\escape_chars", LyXRC::RC_ESC_CHARS },
+ { "\\example_path", LyXRC::RC_EXAMPLEPATH },
{ "\\font_encoding", LyXRC::RC_FONT_ENCODING },
{ "\\format", LyXRC::RC_FORMAT },
{ "\\index_command", LyXRC::RC_INDEX_COMMAND },
{ "\\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 },
{ "\\show_banner", LyXRC::RC_SHOW_BANNER },
+ { "\\sort_layouts", LyXRC::RC_SORT_LAYOUTS },
{ "\\spell_command", LyXRC::RC_SPELL_COMMAND },
{ "\\tempdir_path", LyXRC::RC_TEMPDIRPATH },
{ "\\template_path", LyXRC::RC_TEMPLATEPATH },
{ "\\use_input_encoding", LyXRC::RC_USE_INP_ENC },
{ "\\use_lastfilepos", LyXRC::RC_USELASTFILEPOS },
{ "\\use_personal_dictionary", LyXRC::RC_USE_PERS_DICT },
+ { "\\use_pixmap_cache", LyXRC::RC_USE_PIXMAP_CACHE },
// compatibility with versions older than 1.4.0 only
{ "\\use_pspell", LyXRC::RC_USE_SPELL_LIB },
{ "\\use_spell_lib", LyXRC::RC_USE_SPELL_LIB },
// compatibility with versions older than 1.4.0 only
{ "\\use_tempdir", LyXRC::RC_USETEMPDIR },
+ { "\\use_tooltip", LyXRC::RC_USE_TOOLTIP },
{ "\\user_email", LyXRC::RC_USER_EMAIL },
{ "\\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}
+ { "\\viewer", LyXRC::RC_VIEWER}
};
const int lyxrcCount = sizeof(lyxrcTags) / sizeof(keyword_item);
dpi = 75;
// Because a screen typically is wider than a piece of paper:
zoom = 150;
- geometry_width = 0;
- geometry_height = 0;
- geometry_xysaved = true;
+ allow_geometry_session = true;
// Default LaTeX font size:
font_sizes[FONT_SIZE_TINY] = "5.0";
font_sizes[FONT_SIZE_SCRIPT] = "7.0";
language_package = "\\usepackage{babel}";
language_command_begin = "\\selectlanguage{$$lang}";
language_command_local = "\\foreignlanguage{$$lang}{";
+ sort_layouts = false;
default_language = "english";
show_banner = true;
windows_style_tex_paths = false;
preview_hashed_labels = false;
preview_scale_factor = "0.9";
use_converter_cache = true;
+ use_tooltip = true;
+ use_pixmap_cache = false;
converter_cache_maxage = 6 * 30 * 24 * 3600; // 6 months
user_name = to_utf8(support::user_name());
lexrc.setFile(filename);
if (!lexrc.isOK()) return -2;
- LYXERR(Debug::LYXRC) << "Reading '" << filename << "'..." << endl;
+ LYXERR(Debug::LYXRC, "Reading '" << filename << "'...");
return read(lexrc);
}
-int LyXRC::read(std::istream & is)
+int LyXRC::read(istream & is)
{
Lexer lexrc(lyxrcTags, lyxrcCount);
if (lyxerr.debugging(Debug::PARSER))
lexrc.setStream(is);
if (!lexrc.isOK()) return -2;
- LYXERR(Debug::LYXRC) << "Reading istream..." << endl;
+ LYXERR(Debug::LYXRC, "Reading istream...");
return read(lexrc);
}
}
break;
- case RC_SCREEN_GEOMETRY_HEIGHT:
- if (lexrc.next()) {
- geometry_height = lexrc.getInteger();
- }
- break;
-
- case RC_SCREEN_GEOMETRY_WIDTH:
+ case RC_GEOMETRY_SESSION:
if (lexrc.next()) {
- geometry_width = lexrc.getInteger();
- }
- break;
-
- case RC_SCREEN_GEOMETRY_XYSAVED:
- if (lexrc.next()) {
- geometry_xysaved = lexrc.getBool();
+ allow_geometry_session = lexrc.getBool();
}
break;
}
break;
+ case RC_EXAMPLEPATH:
+ if (lexrc.next()) {
+ example_path = os::internal_path(lexrc.getString());
+ example_path = expandPath(example_path);
+ }
+ break;
+
case RC_TEMPLATEPATH:
if (lexrc.next()) {
template_path = os::internal_path(lexrc.getString());
isp_use_pers_dict = lexrc.getBool();
}
break;
+ case RC_USE_TOOLTIP:
+ if (lexrc.next()) {
+ use_tooltip = lexrc.getBool();
+ }
+ break;
+ case RC_USE_PIXMAP_CACHE:
+ if (lexrc.next()) {
+ use_pixmap_cache = lexrc.getBool();
+ }
+ break;
case RC_USE_ESC_CHARS:
if (lexrc.next()) {
isp_use_esc_chars = lexrc.getBool();
int flgs = Format::none;
while (!flags.empty()) {
string flag;
- flags = support::split(flags, flag, ',');
+ flags = split(flags, flag, ',');
if (flag == "document")
flgs |= Format::document;
else if (flag == "vector")
convert<unsigned int>(lexrc.getString());
break;
+ case RC_SORT_LAYOUTS:
+ if (lexrc.next())
+ sort_layouts = lexrc.getBool();
+ break;
+
case RC_LAST: break; // this is just a dummy
}
}
class SameMover {
public:
- typedef std::pair<std::string, SpecialisedMover> Data;
+ typedef pair<string, SpecialisedMover> Data;
SameMover(Data const & comparison)
: comparison_(comparison) {}
}
if (tag != RC_LAST)
break;
-
+ case RC_SORT_LAYOUTS:
+ if (ignore_system_lyxrc ||
+ sort_layouts != system_lyxrc.sort_layouts) {
+ os << "# Sort layouts alphabetically.\n"
+ << "\\sort_layouts " << convert<string>(sort_layouts) << '\n';
+ }
+ if (tag != RC_LAST)
+ break;
case RC_VIEWDVI_PAPEROPTION:
if (ignore_system_lyxrc ||
view_dvi_paper_option
}
if (tag != RC_LAST)
break;
- case RC_SCREEN_GEOMETRY_HEIGHT:
+ case RC_GEOMETRY_SESSION:
if (ignore_system_lyxrc ||
- geometry_height != system_lyxrc.geometry_height) {
- os << "\\screen_geometry_height " << geometry_height
- << '\n';
- }
- if (tag != RC_LAST)
- break;
- case RC_SCREEN_GEOMETRY_WIDTH:
- if (ignore_system_lyxrc ||
- geometry_width != system_lyxrc.geometry_width) {
- os << "\\screen_geometry_width " << geometry_width
- << '\n';
- }
- if (tag != RC_LAST)
- break;
- case RC_SCREEN_GEOMETRY_XYSAVED:
- if (ignore_system_lyxrc ||
- geometry_xysaved != system_lyxrc.geometry_xysaved) {
- os << "\\screen_geometry_xysaved " << convert<string>(geometry_xysaved)
+ allow_geometry_session != system_lyxrc.allow_geometry_session) {
+ os << "\\allow_geometry_session " << convert<string>(allow_geometry_session)
<< '\n';
}
if (tag != RC_LAST)
}
if (tag != RC_LAST)
break;
+ case RC_EXAMPLEPATH:
+ if (ignore_system_lyxrc ||
+ example_path != system_lyxrc.example_path) {
+ string const path = os::external_path(example_path);
+ os << "\\example_path \"" << path << "\"\n";
+ }
+ if (tag != RC_LAST)
+ break;
case RC_TEMPLATEPATH:
if (ignore_system_lyxrc ||
template_path != system_lyxrc.template_path) {
}
if (tag != RC_LAST)
break;
+ case RC_USE_TOOLTIP:
+ if (ignore_system_lyxrc ||
+ use_tooltip != system_lyxrc.use_tooltip) {
+ os << "\\use_tooltip "
+ << convert<string>(use_tooltip)
+ << '\n';
+ }
+ case RC_USE_PIXMAP_CACHE:
+ if (ignore_system_lyxrc ||
+ use_pixmap_cache != system_lyxrc.use_pixmap_cache) {
+ os << "\\use_pixmap_cache "
+ << convert<string>(use_pixmap_cache)
+ << '\n';
+ }
case RC_PERS_DICT:
if (isp_pers_dict != system_lyxrc.isp_pers_dict) {
string const path = os::external_path(isp_pers_dict);
<< cit->shortcut() << "\" \""
<< cit->viewer() << "\" \""
<< cit->editor() << "\" \"";
- std::vector<string> flags;
+ vector<string> flags;
if (cit->documentFormat())
flags.push_back("document");
if (cit->vectorFormat())
flags.push_back("vector");
- os << support::getStringFromVector(flags);
+ os << getStringFromVector(flags);
os << "\"\n";
}
}
for (; it != end; ++it) {
Movers::const_iterator const sysit =
- std::find_if(sysbegin, sysend, SameMover(*it));
+ find_if(sysbegin, sysend, SameMover(*it));
if (sysit == sysend) {
- std::string const & fmt = it->first;
- std::string const & command =
+ string const & fmt = it->first;
+ string const & command =
it->second.command();
os << "\\copier " << fmt
str = _("This accepts the normal strftime formats; see man strftime for full details. E.g.\"%A, %e. %B %Y\".");
break;
+ case RC_DEFFILE:
+ 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_LANGUAGE:
str = _("New documents will be assigned this language.");
break;
str = _("Specify additional chars that can be part of a word.");
break;
+ case RC_EXAMPLEPATH:
+ str = _("The path that LyX will set when offering to choose an example. An empty value selects the directory LyX was started from.");
+ break;
+
case RC_FONT_ENCODING:
str = _("The font encoding used for the LaTeX2e fontenc package. T1 is highly recommended for non-English languages.");
break;
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.");
+ case RC_GEOMETRY_SESSION:
+ str = _("Allow session manager to save and restore windows geometry.");
break;
case RC_SERVERPIPE:
str = _("Specify whether to pass the -T input encoding option to ispell. Enable this if you cannot check the spelling of words containing accented letters. This may not work with all dictionaries.");
break;
+ case RC_USE_TOOLTIP:
+ str = _("Enable the automatic appearance of tool tips in the work area.");
+ break;
+
+ case RC_USE_PIXMAP_CACHE:
+ str = _("Enable the pixmap cache that might improve performance on Mac and Windows.");
+ break;
+
case RC_USE_SPELL_LIB:
break;