]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiDocument.cpp
Improve handling of local layout files. There are two bugs here that still need fixin...
[lyx.git] / src / frontends / qt4 / GuiDocument.cpp
index 2bffddda12fd367a5387518acb6cb7e89fe0a1c0..59973edb9f2ffa50448667e1ee65c2f5d09448f1 100644 (file)
@@ -152,8 +152,8 @@ public:
                // Ordering criteria:
                //   1. Availability of text class
                //   2. Description (lexicographic)
-               TextClass const & tc1 = BaseClassList::get()[lhs];
-               TextClass const & tc2 = BaseClassList::get()[rhs];
+               LayoutFile const & tc1 = BaseClassList::get()[lhs];
+               LayoutFile const & tc2 = BaseClassList::get()[rhs];
                return (tc1.isTeXClassAvailable() && !tc2.isTeXClassAvailable()) ||
                        (tc1.isTeXClassAvailable() == tc2.isTeXClassAvailable() &&
                         _(tc1.description()) < _(tc2.description()));
@@ -901,22 +901,19 @@ GuiDocument::GuiDocument(GuiView & lv)
                latexModule->psdriverCO->addItem(enc);
        }
        // latex classes
-       //FIXME This seems too involved with the kernel. Some of this
-       //should be moved to the kernel---which should perhaps just
-       //give us a list of entries or something of the sort.
        latexModule->classCO->setModel(&classes_model_);
        BaseClassList const & bcl = BaseClassList::get();
-       vector<BaseClassIndex> classList = bcl.classList();
+       vector<LayoutFileIndex> classList = bcl.classList();
        sort(classList.begin(), classList.end(), less_textclass_avail_desc());
 
-       vector<BaseClassIndex>::const_iterator cit  = classList.begin();
-       vector<BaseClassIndex>::const_iterator cen = classList.end();
+       vector<LayoutFileIndex>::const_iterator cit  = classList.begin();
+       vector<LayoutFileIndex>::const_iterator cen = classList.end();
        for (int i = 0; cit != cen; ++cit, ++i) {
-               TextClass const & tc = bcl[*cit];
+               LayoutFile const & tc = bcl[*cit];
                docstring item = (tc.isTeXClassAvailable()) ?
                        from_utf8(tc.description()) :
                        bformat(_("Unavailable: %1$s"), from_utf8(tc.description()));
-               classes_model_.insertRow(i, toqstr(item), tc.name());
+               classes_model_.insertRow(i, toqstr(item), *cit);
        }
 
        // branches
@@ -1245,6 +1242,7 @@ void GuiDocument::classChanged()
        if (idx < 0) 
                return;
        string const classname = classes_model_.getIDString(idx);
+       // FIXME There is a bug here: 4594
        if (!bp_.setBaseClass(classname)) {
                Alert::error(_("Error"), _("Unable to set document class."));
                return;
@@ -1832,7 +1830,7 @@ void GuiDocument::updateParams(BufferParams const & params)
        }
 
        // text layout
-       string const & classname = params.baseClass()->name();
+       string const & classname = params.baseClassID();
        int idx = classes_model_.findIDString(classname);
        if (idx < 0)
                lyxerr << "Unable to set layout for classname " << classname << std::endl;