#include "TextClass.h"
-#include "LayoutFile.h"
#include "CiteEnginesList.h"
-#include "Color.h"
#include "Counters.h"
#include "Floating.h"
#include "FloatList.h"
#include "Layout.h"
+#include "LayoutFile.h"
#include "Lexer.h"
-#include "Font.h"
#include "ModuleList.h"
#include "frontends/alert.h"
#include "support/lassert.h"
#include "support/debug.h"
-#include "support/ExceptionMessage.h"
#include "support/FileName.h"
#include "support/filetools.h"
#include "support/gettext.h"
// You should also run the development/tools/updatelayouts.py script,
// to update the format of all of our layout files.
//
-int const LAYOUT_FORMAT = 84; // tcuvelier: DocBook*TagType.
+int const LAYOUT_FORMAT = 90; // spitz: semantic label colors
// Layout format for the current lyx file format. Controls which format is
}
-bool TextClass::readStyle(Lexer & lexrc, Layout & lay) const
+bool TextClass::readStyle(Lexer & lexrc, Layout & lay, ReadType rt) const
{
LYXERR(Debug::TCLASS, "Reading style " << to_utf8(lay.name()));
- if (!lay.read(lexrc, *this)) {
+ if (!lay.read(lexrc, *this, rt == VALIDATION)) {
LYXERR0("Error parsing style `" << to_utf8(lay.name()) << '\'');
return false;
}
Layout lay;
// Since we couldn't read the name, we just scan the rest
// of the style and discard it.
- error = !readStyle(lexrc, lay);
+ error = !readStyle(lexrc, lay, rt);
break;
}
// block.
if (have_layout && !providestyle) {
Layout & lay = operator[](name);
- error = !readStyle(lexrc, lay);
+ error = !readStyle(lexrc, lay, rt);
}
// If the layout does not exist, then we want to create a new
// one, but not if we are in a ModifyStyle block.
else if (!have_layout && !modifystyle) {
Layout layout;
layout.setName(name);
- error = !readStyle(lexrc, layout);
+ error = !readStyle(lexrc, layout, rt);
if (!error)
layoutlist_.push_back(layout);
else {
Layout lay;
// signal to coverity that we do not care about the result
- (void)readStyle(lexrc, lay);
+ (void)readStyle(lexrc, lay, rt);
}
break;
}
defaultLayout = new Layout;
defaultLayout->setUnknown(unknown);
defaultLayout->setName(name);
- if (!readStyle(lex, *defaultLayout)) {
+ if (!readStyle(lex, *defaultLayout, BASECLASS)) {
// The only way this happens is because the hardcoded layout above
// is wrong.
LATTEST(false);
}
-DocumentClassPtr getDocumentClass(
- LayoutFile const & baseClass, LayoutModuleList const & modlist,
- string const & cengine, bool const clone)
+DocumentClassPtr getDocumentClass(LayoutFile const & baseClass, LayoutModuleList const & modlist,
+ string const & cengine, bool clone, bool internal)
{
+ bool const show_warnings = !clone && !internal;
DocumentClassPtr doc_class =
DocumentClassPtr(new DocumentClass(baseClass));
for (auto const & mod : modlist) {
LyXModule * lm = theModuleList[mod];
if (!lm) {
- docstring const msg =
- bformat(_("The module %1$s has been requested by\n"
- "this document but has not been found in the list of\n"
- "available modules. If you recently installed it, you\n"
- "probably need to reconfigure LyX.\n"), from_utf8(mod));
- if (!clone)
+ if (show_warnings) {
+ docstring const msg =
+ bformat(_("The module %1$s has been requested by\n"
+ "this document but has not been found in the list of\n"
+ "available modules. If you recently installed it, you\n"
+ "probably need to reconfigure LyX.\n"), from_utf8(mod));
frontend::Alert::warning(_("Module not available"), msg);
+ }
continue;
}
- if (!lm->isAvailable() && !clone) {
+ if (!lm->isAvailable() && show_warnings) {
docstring const prereqs = from_utf8(getStringFromVector(lm->prerequisites(), "\n\t"));
docstring const msg =
bformat(_("The module %1$s requires a package that is not\n"
FileName layout_file = libFileSearch("layouts", lm->getFilename());
if (!doc_class->read(layout_file, TextClass::MODULE)) {
docstring const msg =
- bformat(_("Error reading module %1$s\n"), from_utf8(mod));
+ bformat(_("Error reading module %1$s\n"), from_utf8(mod));
frontend::Alert::warning(_("Read Error"), msg);
}
}
LyXCiteEngine * ce = theCiteEnginesList[cengine];
if (!ce) {
- docstring const msg =
- bformat(_("The cite engine %1$s has been requested by\n"
- "this document but has not been found in the list of\n"
- "available engines. If you recently installed it, you\n"
- "probably need to reconfigure LyX.\n"), from_utf8(cengine));
- if (!clone)
+ if (show_warnings) {
+ docstring const msg =
+ bformat(_("The cite engine %1$s has been requested by\n"
+ "this document but has not been found in the list of\n"
+ "available engines. If you recently installed it, you\n"
+ "probably need to reconfigure LyX.\n"), from_utf8(cengine));
frontend::Alert::warning(_("Cite Engine not available"), msg);
- } else if (!ce->isAvailable() && !clone) {
+ }
+ } else if (!ce->isAvailable() && show_warnings) {
docstring const prereqs = from_utf8(getStringFromVector(ce->prerequisites(), "\n\t"));
docstring const msg =
bformat(_("The cite engine %1$s requires a package that is not\n"
FileName layout_file = libFileSearch("citeengines", ce->getFilename());
if (!doc_class->read(layout_file, TextClass::CITE_ENGINE)) {
docstring const msg =
- bformat(_("Error reading cite engine %1$s\n"), from_utf8(cengine));
+ bformat(_("Error reading cite engine %1$s\n"), from_utf8(cengine));
frontend::Alert::warning(_("Read Error"), msg);
}
}
{
vector<CitationStyle> const styles = citeStyles(type);
vector<string> cmds;
+ cmds.reserve(styles.size());
for (auto const & cs : styles)
cmds.push_back(cs.name);