using std::cout;
using std::ios;
using std::endl;
-
-// this is crappy... why are those colors command line arguments and
-// not in lyxrc?? (Matthias)
-// Because nobody put them there. (Asger)
+using std::vector;
extern LyXAction lyxaction;
extern kb_keymap * toplevel_keymap;
{ "\\kbmap", LyXRC::RC_KBMAP },
{ "\\kbmap_primary", LyXRC::RC_KBMAP_PRIMARY },
{ "\\kbmap_secondary", LyXRC::RC_KBMAP_SECONDARY },
+ { "\\label_init_length", LyXRC::RC_LABEL_INIT_LENGTH },
{ "\\language_auto_begin", LyXRC::RC_LANGUAGE_AUTO_BEGIN },
{ "\\language_auto_end", LyXRC::RC_LANGUAGE_AUTO_END },
{ "\\language_command_begin", LyXRC::RC_LANGUAGE_COMMAND_BEGIN },
void LyXRC::setDefaults() {
+ bind_file = "cua";
+ hasBindFile = false;
ui_file = "default";
// Get printer from the environment. If fail, use default "",
// assuming that everything is set up correctly.
isp_use_pers_dict = false;
isp_use_esc_chars = false;
use_kbmap = false;
- hasBindFile = false;
rtl_support = false;
auto_number = true;
mark_foreign_language = true;
date_insert_format = "%A, %e %B %Y";
show_banner = true;
cursor_follows_scrollbar = false;
+ label_init_length = 3;
/// These variables are not stored on disk (perhaps they
// should be moved from the LyXRC class).
int LyXRC::ReadBindFile(string const & name)
{
hasBindFile = true;
- string tmp = i18nLibFileSearch("bind", name, "bind");
+ string const tmp = i18nLibFileSearch("bind", name, "bind");
lyxerr[Debug::LYXRC] << "Reading bindfile:" << tmp << endl;
- int result = read(tmp);
+ int const result = read(tmp);
if (result) {
lyxerr << "Error reading bind file: " << tmp << endl;
}
return result;
}
+void LyXRC::readBindFileIfNeeded()
+{
+ if (!hasBindFile)
+ ReadBindFile(bind_file);
+}
int LyXRC::read(string const & filename)
-{
- // Default bindfile.
- string bindFile = "cua";
-
+{
LyXLex lexrc(lyxrcTags, lyxrcCount);
if (lyxerr.debugging(Debug::PARSER))
lexrc.printTable(lyxerr);
case RC_BINDFILE: // RVDK_PATCH_5
if (lexrc.next()) {
string tmp(lexrc.GetString());
- if (bind_file.empty()) {
- // we only need the name of the first
- // bind file since that (usually)
- // includes several others.
+ if (hasBindFile)
+ // We are already in the
+ // "actually read bind file"
+ // mode.
+ ReadBindFile(tmp);
+ else
+ // We are still in the "just
+ // remember the name of the
+ // bind file" mode.
bind_file = tmp;
- }
- ReadBindFile(tmp);
}
break;
// we should not do an explicit binding before
// loading a bind file. So, in this case, load
// the default bind file.
- if (!hasBindFile) {
- ReadBindFile();
- bind_file = bindFile;
- }
+ readBindFileIfNeeded();
+
// !!!chb, dynamic key binding...
int action, res = 0;
string seq, cmd;
command = lexrc.GetString();
if (lexrc.next())
flags = lexrc.GetString();
- Converter::Add(from, to, command, flags);
+ if (command.empty() || command == "none")
+ converters.Delete(from, to);
+ else
+ converters.Add(from, to, command, flags);
break;
}
case RC_VIEWER: {
format = lexrc.GetString();
if (lexrc.next())
command = lexrc.GetString();
- Formats::SetViewer(format, command);
+ formats.SetViewer(format, command);
break;
}
case RC_FORMAT: {
prettyname = lexrc.GetString();
if (lexrc.next())
shortcut = lexrc.GetString();
- Formats::Add(format, extension, prettyname, shortcut);
+ if (prettyname.empty()) {
+ if (converters.FormatIsUsed(format))
+ lyxerr << "Can't delete format "
+ << format << endl;
+ else
+ formats.Delete(format);
+
+ } else
+ formats.Add(format, extension, prettyname,
+ shortcut);
break;
}
case RC_DEFAULT_LANGUAGE:
default_language = lexrc.GetString();
break;
+ case RC_LABEL_INIT_LENGTH:
+ if (lexrc.next())
+ label_init_length = lexrc.GetInteger();
+ break;
+
case RC_LAST: break; // this is just a dummy
}
}
os << "\\date_insert_format \"" << date_insert_format
<< "\"\n";
}
-
+ case RC_LABEL_INIT_LENGTH:
+ if (label_init_length != system_lyxrc.label_init_length) {
+ os << "\\label_init_length " << label_init_length
+ << "\n";
+ }
+
os << "\n#\n"
<< "# SCREEN & FONTS SECTION ############################\n"
<< "#\n\n";
!= system_lyxrc.font_sizes[LyXFont::SIZE_HUGER]) {
os.setf(ios::fixed);
os.precision(2);
- os << "\\screen_font_sizes";
- os << " " << font_sizes[LyXFont::SIZE_TINY];
- os << " " << font_sizes[LyXFont::SIZE_SCRIPT];
- os << " " << font_sizes[LyXFont::SIZE_FOOTNOTE];
- os << " " << font_sizes[LyXFont::SIZE_SMALL];
- os << " " << font_sizes[LyXFont::SIZE_NORMAL];
- os << " " << font_sizes[LyXFont::SIZE_LARGE];
- os << " " << font_sizes[LyXFont::SIZE_LARGER];
- os << " " << font_sizes[LyXFont::SIZE_LARGEST];
- os << " " << font_sizes[LyXFont::SIZE_HUGE];
- os << " " << font_sizes[LyXFont::SIZE_HUGER];
- os << "\n";
- }
-
- //case RC_SET_COLOR:
- // color bindings not written to preference file.
- // And we want to be warned about that. (Lgb)
+ os << "\\screen_font_sizes"
+ << " " << font_sizes[LyXFont::SIZE_TINY]
+ << " " << font_sizes[LyXFont::SIZE_SCRIPT]
+ << " " << font_sizes[LyXFont::SIZE_FOOTNOTE]
+ << " " << font_sizes[LyXFont::SIZE_SMALL]
+ << " " << font_sizes[LyXFont::SIZE_NORMAL]
+ << " " << font_sizes[LyXFont::SIZE_LARGE]
+ << " " << font_sizes[LyXFont::SIZE_LARGER]
+ << " " << font_sizes[LyXFont::SIZE_LARGEST]
+ << " " << font_sizes[LyXFont::SIZE_HUGE]
+ << " " << font_sizes[LyXFont::SIZE_HUGER]
+ << "\n";
+ }
+
+ os << "\n#\n"
+ << "# COLOR SECTION ###################################\n"
+ << "#\n\n";
+
+ case RC_SET_COLOR:
+ for (int i = 0; i < LColor::ignore; ++i ) {
+ LColor::color lc = static_cast<LColor::color>(i);
+
+ string const col(lcolor.getX11Name(lc));
+ if (col != system_lcolor.getX11Name(lc)) {
+ os << "\\set_color \""
+ << lcolor.getLyXName(lc) << "\" \""
+ << col << "\"\n";
+ }
+ }
os << "\n#\n"
<< "# PRINTER SECTION ###################################\n"
if (default_language != system_lyxrc.default_language) {
os << "\\default_language " << default_language << "\n";
}
+
+ os << "\n#\n"
+ << "# FORMATS SECTION ##########################\n"
+ << "#\n\n";
+
+ case RC_FORMAT:
+ // Look for deleted formats
+ for (Formats::const_iterator cit = formats.begin();
+ cit != formats.end(); ++cit) {
+ Format const * format =
+ system_formats.GetFormat(cit->name());
+ if (!format ||
+ format->extension() != cit->extension() ||
+ format->prettyname() != cit->prettyname() ||
+ format->shortcut() != cit->shortcut())
+ os << "\\format \"" << cit->name() << "\" \""
+ << cit->extension() << "\" \""
+ << cit->prettyname() << "\" \""
+ << cit->shortcut() << "\"\n";
+ }
+
+ // New/modifed formats
+ for (Formats::const_iterator cit = system_formats.begin();
+ cit != system_formats.end(); ++cit)
+ if (!formats.GetFormat(cit->name()))
+ os << "\\format \"" << cit->name()
+ << "\" \"\" \"\" \"\"\n";
+ case RC_VIEWER:
+ for (Formats::const_iterator cit = formats.begin();
+ cit != formats.end(); ++cit) {
+ Format const * format =
+ system_formats.GetFormat(cit->name());
+ if ((!format || format->viewer() != cit->viewer()) &&
+ (format || !cit->viewer().empty()))
+ os << "\\viewer \"" << cit->name() << "\" \""
+ << cit->viewer() << "\"\n";
+ }
+
+ os << "\n#\n"
+ << "# CONVERTERS SECTION ##########################\n"
+ << "#\n\n";
+
+ case RC_CONVERTER:
+ // Look for new converters
+ for (Converters::const_iterator cit = converters.begin();
+ cit != converters.end(); ++cit) {
+ Converter const * converter =
+ system_converters.GetConverter(cit->from,
+ cit->to);
+ if (!converter ||
+ converter->command != cit->command ||
+ converter->flags != cit->flags)
+ os << "\\converter \"" << cit->from << "\" \""
+ << cit->to << "\" \""
+ << cit->command << "\" \""
+ << cit->flags << "\"\n";
+ }
+
+ // New/modifed converters
+ for (Converters::const_iterator cit = system_converters.begin();
+ cit != system_converters.end(); ++cit)
+ if (!converters.GetConverter(cit->from, cit->to))
+ os << "\\converter \"" << cit->from
+ << "\" \"" << cit->to << "\" \"\" \"\"\n";
}
os.flush();
}
font_norm_type = OTHER_ENCODING;
}
-string LyXRC::getDescription(LyXRCTags tag)
+
+string const LyXRC::getDescription(LyXRCTags tag)
{
string str;
break;
case RC_PRINTEVENPAGEFLAG:
+ str = N_("The option to print only even pages.");
+ break;
+
case RC_PRINTODDPAGEFLAG:
+ str = N_("The option to print only odd pages.");
+ break;
+
case RC_PRINTPAGERANGEFLAG:
+ str = N_("The option for specifying a comma-separated list of pages to print.");
+ break;
+
case RC_PRINTCOPIESFLAG:
+ str = N_("The option for specifying the number of copies to print.");
+ break;
+
case RC_PRINTCOLLCOPIESFLAG:
+ str = N_("The option for specifying whether the copies should be collated.");
+ break;
+
case RC_PRINTREVERSEFLAG:
+ str = N_("The option to reverse the order of the pages printed.");
+ break;
+
case RC_PRINTLANDSCAPEFLAG:
+ str = N_("The option to print out in landscape.");
+ break;
+
case RC_PRINTPAPERFLAG:
+ str = N_("The option to specify paper type.");
+ break;
+
case RC_PRINTPAPERDIMENSIONFLAG:
- str = N_("Look at the man page for your favorite print program to learn which options to use.");
+ str = N_("Option to specify the dimensions of the print paper.");
break;
case RC_PRINTTOPRINTER:
break;
case RC_PRINT_ADAPTOUTPUT:
- str = N_("Set to true for LyX to pass the name of the destination printer to your print command.");
+ str = N_("Select for LyX to pass the name of the destination printer to your print command.");
break;
case RC_PRINTTOFILE:
break;
case RC_SCREEN_ZOOM:
+ //xgettext:no-c-format
str = N_("The zoom percentage for screen fonts. A setting of 100% will make the fonts roughly the same size as on paper.");
break;
break;
case RC_SCREEN_FONT_ENCODING:
- str = N_("The norm for the screen fonts.");
+ str = N_("The encoding for the screen fonts.");
break;
case RC_SCREEN_FONT_ENCODING_MENU:
- str = N_("The norm for the menu/popups fonts.");
+ str = N_("The encoding for the menu/popups fonts.");
break;
case RC_SET_COLOR:
break;
case RC_TEMPDIRPATH:
- str = N_("The path that LyX will use to store temporary TeX output.");
+ str = N_("LyX will place its temporary directories in this path. They will be deleted when you quit LyX.");
break;
case RC_USETEMPDIR:
- str = N_("Specify to use a temporary directory to store temporary TeX output. This directory is deleted when you quit LyX.");
+ str = N_("Select if you wish to use a temporary directory structure to store temporary TeX output.");
break;
case RC_LASTFILES:
break;
case RC_AUTOREGIONDELETE:
- str = N_("Set to false if you don't want the current selection to be replaced automatically by what you type.");
+ str = N_("De-select if you don't want the current selection to be replaced automatically by what you type.");
break;
case RC_OVERRIDE_X_DEADKEYS:
- str = N_("Set to true for LyX to take over the handling of the dead keys (a.k.a. accent keys) that may be defined for your keyboard.");
+ str = N_("Select if LyX is to take over the handling of the dead keys (a.k.a. accent keys) that may be defined for your keyboard.");
break;
break;
case RC_CHECKLASTFILES:
- str = N_("Specify to check whether the lastfiles still exist.");
+ str = N_("Select to check whether the lastfiles still exist.");
break;
case RC_VIEWDVI_PAPEROPTION:
break;
case RC_ACCEPT_COMPOUND:
- str = N_("Consider run-together words, such as \"notthe\" for \"not the\", as legal words?");
+ str = N_("Consider run-together words, such as \"diskdrive\" for \"disk drive\", as legal words?");
break;
case RC_SPELL_COMMAND:
break;
case RC_MAKE_BACKUP:
- str = N_("Set to false if you don't want LyX to create backup files.");
+ str = N_("De-select if you don't want LyX to create backup files.");
break;
case RC_BACKUPDIR_PATH:
break;
case RC_RTL_SUPPORT:
- str = N_("Use to enable support of right-to-left languages (e.g. Hebrew, Arabic).");
+ str = N_("Select to enable support of right-to-left languages (e.g. Hebrew, Arabic).");
break;
case RC_MARK_FOREIGN_LANGUAGE:
- str = N_("Use to control the highlighting of words with a language foreign to that of the document.");
+ str = N_("Select to control the highlighting of words with a language foreign to that of the document.");
break;
case RC_LANGUAGE_PACKAGE:
break;
case RC_LANGUAGE_AUTO_BEGIN:
- str = N_("Use if a language switching command is needed at the beginning of the document.");
+ str = N_("Select if a language switching command is needed at the beginning of the document.");
break;
case RC_LANGUAGE_AUTO_END:
- str = N_("Use if a language switching command is needed at the end of the document.");
+ str = N_("Select if a language switching command is needed at the end of the document.");
break;
case RC_LANGUAGE_COMMAND_BEGIN:
break;
case RC_DATE_INSERT_FORMAT:
+ //xgettext:no-c-format
str = N_("This accepts the normal strftime formats; see man strftime for full details. E.g.\"%A, %e. %B %Y\".");
break;
case RC_SHOW_BANNER:
- str = N_("Set to false if you don't want the startup banner.");
+ str = N_("De-select if you don't want the startup banner.");
break;
case RC_WHEEL_JUMP:
case RC_DEFAULT_LANGUAGE:
str = N_("New documents will be assigned this language.");
break;
+
+ case RC_LABEL_INIT_LENGTH:
+ str = N_("Maximum number of words in the initialization string for a new label");
+ break;
default:
break;