mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
Partially fix bug 4532: http://bugzilla.lyx.org/show_bug.cgi?id=4532.
See in particular comment 6. We forcibly load stdinsets.inc unless the TextClass declares: Provides stdinsets 1 There isn't really any such package, of course. We're just using this (per a suggestion by JMarc) to say we've loaded relevant info about the standard insets. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22802 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
78080c1dc2
commit
8fec5f512d
@ -16,7 +16,7 @@
|
||||
# Font Nothing to put here, below are descriptions of the different
|
||||
# allowable adjustments for the font used to draw the text
|
||||
# appearing within the inset text. All these items are optional.
|
||||
# Color Color of
|
||||
# Color Color of text
|
||||
# Size Font size of the textallowed value: Small, Smaller, ...
|
||||
# FIXME defined in FontSize in FontEnums.h
|
||||
# Family FIXME defined in FontFamily in FontEnums.h
|
||||
@ -31,24 +31,26 @@
|
||||
# optional.
|
||||
# Color see definition above (in the Font node).
|
||||
# Size see definition above (in the Font node).
|
||||
# ...
|
||||
#
|
||||
# EndFont Nothing to put here, it's just a markup to indicate that we are
|
||||
# finished with the LabelFont definition.
|
||||
# MultiPar Indicates that multiple paragraphs are allowed within the inset
|
||||
# or not. FIXME: what is the default?
|
||||
# Decoration: Classic, Minimalistic, Conglomerate. Decoration styles
|
||||
# PassThru Do not do various LaTeX conversions, like the phrases
|
||||
# LaTeX, LyX, quote commands, etc.
|
||||
# LaTeX, LyX, quote commands, etc.
|
||||
# KeepEmpty Do not delete empty paragraphs (?)
|
||||
# FreeSpacing Preserve multiple spaces etc.
|
||||
# ForceLTR Force the "latex" language, leading to Left-to-Right
|
||||
# (latin) output, e.g., in ERT or URL. A kludge.
|
||||
# (latin) output, e.g., in ERT or URL. A kludge.
|
||||
# Requires Require a given (supported) feature. Multiple features must
|
||||
# be comma-separated.
|
||||
# be comma-separated.
|
||||
#End
|
||||
|
||||
Format 6
|
||||
|
||||
Provides stdinsets 1
|
||||
|
||||
InsetLayout Marginal
|
||||
LabelString margin
|
||||
LatexType command
|
||||
|
@ -454,34 +454,59 @@ bool TextClass::read(FileName const & filename, ReadType rt)
|
||||
LYXERR(Debug::TCLASS, "Finished reading " + translateRT(rt) + ": " +
|
||||
to_utf8(makeDisplayPath(filename.absFilename())));
|
||||
|
||||
if (rt == BASECLASS) {
|
||||
if (defaultlayout_.empty()) {
|
||||
lyxerr << "Error: Textclass '" << name_
|
||||
<< "' is missing a defaultstyle." << endl;
|
||||
if (rt != BASECLASS)
|
||||
return error;
|
||||
|
||||
if (defaultlayout_.empty()) {
|
||||
lyxerr << "Error: Textclass '" << name_
|
||||
<< "' is missing a defaultstyle." << endl;
|
||||
error = true;
|
||||
}
|
||||
|
||||
//Try to erase "stdinsets" from the provides_ set.
|
||||
//The
|
||||
// Provides stdinsets 1
|
||||
//declaration simply tells us that the standard insets have been
|
||||
//defined. (It's found in stdinsets.inc but could also be used in
|
||||
//user-defined files.) There isn't really any such package. So we
|
||||
//might as well go ahead and erase it.
|
||||
//If we do not succeed, then it was not there, which means that
|
||||
//the textclass did not provide the definitions of the standard
|
||||
//insets. So we need to try to load them.
|
||||
int erased = provides_.erase("stdinsets");
|
||||
if (!erased) {
|
||||
FileName tmp = libFileSearch("layouts", "stdinsets.inc");
|
||||
|
||||
if (tmp.empty()) {
|
||||
frontend::Alert::warning(_("Missing File"),
|
||||
_("Could not find stdinsets.inc! This may lead to data loss!"));
|
||||
error = true;
|
||||
} else if (read(tmp, MERGE)) {
|
||||
frontend::Alert::warning(_("Corrupt File"),
|
||||
_("Could not read stdinsets.inc! This may lead to data loss!"));
|
||||
error = true;
|
||||
}
|
||||
|
||||
min_toclevel_ = Layout::NOT_IN_TOC;
|
||||
max_toclevel_ = Layout::NOT_IN_TOC;
|
||||
const_iterator cit = begin();
|
||||
const_iterator the_end = end();
|
||||
for ( ; cit != the_end ; ++cit) {
|
||||
int const toclevel = (*cit)->toclevel;
|
||||
if (toclevel != Layout::NOT_IN_TOC) {
|
||||
if (min_toclevel_ == Layout::NOT_IN_TOC)
|
||||
min_toclevel_ = toclevel;
|
||||
else
|
||||
min_toclevel_ = min(min_toclevel_,
|
||||
toclevel);
|
||||
max_toclevel_ = max(max_toclevel_,
|
||||
toclevel);
|
||||
}
|
||||
}
|
||||
LYXERR(Debug::TCLASS, "Minimum TocLevel is " << min_toclevel_
|
||||
<< ", maximum is " << max_toclevel_);
|
||||
|
||||
}
|
||||
|
||||
min_toclevel_ = Layout::NOT_IN_TOC;
|
||||
max_toclevel_ = Layout::NOT_IN_TOC;
|
||||
const_iterator cit = begin();
|
||||
const_iterator the_end = end();
|
||||
for ( ; cit != the_end ; ++cit) {
|
||||
int const toclevel = (*cit)->toclevel;
|
||||
if (toclevel != Layout::NOT_IN_TOC) {
|
||||
if (min_toclevel_ == Layout::NOT_IN_TOC)
|
||||
min_toclevel_ = toclevel;
|
||||
else
|
||||
min_toclevel_ = min(min_toclevel_,
|
||||
toclevel);
|
||||
max_toclevel_ = max(max_toclevel_,
|
||||
toclevel);
|
||||
}
|
||||
}
|
||||
LYXERR(Debug::TCLASS, "Minimum TocLevel is " << min_toclevel_
|
||||
<< ", maximum is " << max_toclevel_);
|
||||
|
||||
return error;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user