]> git.lyx.org Git - features.git/commitdiff
Generate an error dialog if there are unknown layouts.
authorDekel Tsur <dekelts@tau.ac.il>
Mon, 16 Jul 2001 14:11:35 +0000 (14:11 +0000)
committerDekel Tsur <dekelts@tau.ac.il>
Mon, 16 Jul 2001 14:11:35 +0000 (14:11 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2247 a592a061-630c-0410-9148-cb99ea01b6c8

src/ChangeLog
src/buffer.C

index 3a6ad87ba2b5d7f68315ae45ebc1dbb28b131fa4..c3bbb2f8e621bf983c10538429a7668a1e4badef 100644 (file)
@@ -1,3 +1,8 @@
+2001-07-13  Dekel Tsur  <dekelts@tau.ac.il>
+
+       * buffer.C (readLyXformat2): Generate an error dialog if there are
+       unknown layouts.
+
 2001-07-16  Juergen Vigna  <jug@sad.it>
 
        * sp_spell.C: always compile ISpell part.
index f92beccb9121c0979f50bd519ef55ada7e3fbaff..0260aac4a6e5dd1e51b53c35373d5e194ae02961 100644 (file)
@@ -298,6 +298,7 @@ ErtComp ert_comp;
 } // anon
 
 
+set<string> unknown_layouts;
 
 // candidate for move to BufferView
 // (at least some parts in the beginning of the func)
@@ -309,6 +310,7 @@ ErtComp ert_comp;
 // Returns false if "\the_end" is not read for formats >= 2.13. (Asger)
 bool Buffer::readLyXformat2(LyXLex & lex, Paragraph * par)
 {
+       unknown_layouts.clear();
 #ifdef NO_LATEX
        ert_comp.contents.erase();
        ert_comp.active = false;
@@ -363,7 +365,20 @@ bool Buffer::readLyXformat2(LyXLex & lex, Paragraph * par)
                first_par = par;
 
        paragraph = first_par;
-       
+
+       if (!unknown_layouts.empty()) {
+               string list;
+               for (set<string>::const_iterator it = unknown_layouts.begin();
+                    it != unknown_layouts.end(); ++it) {
+                       if (it != unknown_layouts.begin())
+                               list += ", ";
+                       list += *it;
+               }
+               WriteAlert(_("Textclass Loading Error!"),
+                          _("The following layouts are undefined:"),
+                          list+".");
+       }       
+
        return the_end_read;
 }
 
@@ -505,6 +520,7 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par,
                                // layout not found
                                // use default layout "Standard" (0)
                                par->layout = 0;
+                               unknown_layouts.insert(layoutname);
                        }
                        // Test whether the layout is obsolete.
                        LyXLayout const & layout =