]> git.lyx.org Git - lyx.git/blobdiff - src/LyXFunc.cpp
Revert 23154.
[lyx.git] / src / LyXFunc.cpp
index 1b7f022535d2e74ee3d038b03b3e2d067e6840f8..95ff83dc53d5816c4c3fbddd831e15b7291e6ebb 100644 (file)
@@ -379,7 +379,8 @@ void LyXFunc::processKeySym(KeySymbol const & keysym, KeyModifier state)
                        lyx_view_->updateCompletion(false, false);
        }
 
-       lyx_view_->restartCursor();
+       if (lyx_view_)
+               lyx_view_->restartCursor();
 }
 
 
@@ -711,9 +712,9 @@ void showPrintError(string const & name)
 }
 
 
-void loadTextClass(string const & name)
+void loadTextClass(string const & name, string const & buf_path)
 {
-       pair<bool, TextClassIndex> const tc_pair =
+       pair<bool, textclass_type> const tc_pair =
                textclasslist.numberOfClass(name);
 
        if (!tc_pair.first) {
@@ -723,9 +724,9 @@ void loadTextClass(string const & name)
                return;
        }
 
-       TextClassIndex const tc = tc_pair.second;
+       textclass_type const tc = tc_pair.second;
 
-       if (!textclasslist[tc].load()) {
+       if (!textclasslist[tc].load(buf_path)) {
                docstring s = bformat(_("The document class %1$s."
                                   "could not be loaded."),
                                   from_utf8(textclasslist[tc].name()));
@@ -1535,7 +1536,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        
                        Buffer * buffer = lyx_view_->buffer();
 
-                       TextClassIndex oldClass = buffer->params().textClassIndex();
+                       TextClassPtr oldClass = buffer->params().getTextClassPtr();
 
                        Cursor & cur = view()->cursor();
                        cur.recordUndoFullDocument();
@@ -1579,7 +1580,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                case LFUN_LAYOUT_MODULES_CLEAR: {
                        BOOST_ASSERT(lyx_view_);
                        Buffer * buffer = lyx_view_->buffer();
-                       TextClassIndex oldClass = buffer->params().textClassIndex();
+                       TextClassPtr oldClass = buffer->params().getTextClassPtr();
                        view()->cursor().recordUndoFullDocument();
                        buffer->params().clearLayoutModules();
                        buffer->params().makeTextClass();
@@ -1591,7 +1592,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                case LFUN_LAYOUT_MODULE_ADD: {
                        BOOST_ASSERT(lyx_view_);
                        Buffer * buffer = lyx_view_->buffer();
-                       TextClassIndex oldClass = buffer->params().textClassIndex();
+                       TextClassPtr oldClass = buffer->params().getTextClassPtr();
                        view()->cursor().recordUndoFullDocument();
                        buffer->params().addLayoutModule(argument);
                        buffer->params().makeTextClass();
@@ -1604,23 +1605,23 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                        BOOST_ASSERT(lyx_view_);
                        Buffer * buffer = lyx_view_->buffer();
 
-                       loadTextClass(argument);
+                       loadTextClass(argument, buffer->filePath());
 
-                       pair<bool, TextClassIndex> const tc_pair =
+                       pair<bool, textclass_type> const tc_pair =
                                textclasslist.numberOfClass(argument);
 
                        if (!tc_pair.first)
                                break;
 
-                       TextClassIndex const old_class = buffer->params().baseClass();
-                       TextClassIndex const new_class = tc_pair.second;
+                       textclass_type const old_class = buffer->params().getBaseClass();
+                       textclass_type const new_class = tc_pair.second;
 
                        if (old_class == new_class)
                                // nothing to do
                                break;
 
                        //Save the old, possibly modular, layout for use in conversion.
-                       TextClassIndex oldClass = buffer->params().textClassIndex();
+                       TextClassPtr oldClass = buffer->params().getTextClassPtr();
                        view()->cursor().recordUndoFullDocument();
                        buffer->params().setBaseClass(new_class);
                        buffer->params().makeTextClass();
@@ -1632,8 +1633,8 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                case LFUN_LAYOUT_RELOAD: {
                        BOOST_ASSERT(lyx_view_);
                        Buffer * buffer = lyx_view_->buffer();
-                       TextClassIndex oldClass = buffer->params().textClassIndex();
-                       TextClassIndex const tc = buffer->params().baseClass();
+                       TextClassPtr oldClass = buffer->params().getTextClassPtr();
+                       textclass_type const tc = buffer->params().getBaseClass();
                        textclasslist.reset(tc);
                        buffer->params().setBaseClass(tc);
                        buffer->params().makeTextClass();
@@ -1643,7 +1644,7 @@ void LyXFunc::dispatch(FuncRequest const & cmd)
                }
 
                case LFUN_TEXTCLASS_LOAD:
-                       loadTextClass(argument);
+                       loadTextClass(argument, lyx_view_->buffer()->filePath());
                        break;
 
                case LFUN_LYXRC_APPLY: {
@@ -1872,7 +1873,7 @@ bool LyXFunc::wasMetaKey() const
 }
 
 
-void LyXFunc::updateLayout(TextClassIndex const & oldlayout,
+void LyXFunc::updateLayout(TextClassPtr const & oldlayout,
                            Buffer * buffer)
 {
        lyx_view_->message(_("Converting document to new document class..."));
@@ -1880,7 +1881,7 @@ void LyXFunc::updateLayout(TextClassIndex const & oldlayout,
        StableDocIterator backcur(view()->cursor());
        ErrorList & el = buffer->errorList("Class Switch");
        cap::switchBetweenClasses(
-                       oldlayout, buffer->params().textClassIndex(),
+                       oldlayout, buffer->params().getTextClassPtr(),
                        static_cast<InsetText &>(buffer->inset()), el);
 
        view()->setCursor(backcur.asDocIterator(&(buffer->inset())));