]> git.lyx.org Git - features.git/commitdiff
Fix crash reported by Scott. Forgot to change some pointers to
authorRichard Heck <rgheck@lyx.org>
Mon, 4 Jun 2012 16:25:02 +0000 (12:25 -0400)
committerRichard Heck <rgheck@lyx.org>
Mon, 4 Jun 2012 17:04:26 +0000 (13:04 -0400)
shared_ptr.

src/frontends/qt4/LayoutBox.cpp

index df4b076a279deaa9e57bd1299b423f2167188e85..a1514c121fd7ba4d78626beee073d83aefcc5ade 100644 (file)
@@ -24,6 +24,7 @@
 #include "BufferParams.h"
 #include "BufferView.h"
 #include "Cursor.h"
+#include "DocumentClassPtr.h"
 #include "FuncRequest.h"
 #include "FuncStatus.h"
 #include "LyX.h"
@@ -127,7 +128,7 @@ struct LayoutBox::Private
        ///
        GuiView & owner_;
        ///
-       DocumentClass const * text_class_;
+       DocumentClassConstPtr text_class_;
        ///
        Inset const * inset_;
        
@@ -530,11 +531,11 @@ void LayoutBox::setIconSize(QSize size)
 void LayoutBox::set(docstring const & layout)
 {
        d->resetFilter();
-       
-       if (!d->text_class_)
+
+       if (!d->text_class_.get())
                return;
 
-       if (!(*d->text_class_).hasLayout(layout))
+       if (!d->text_class_->hasLayout(layout))
                return;
 
        Layout const & lay = (*d->text_class_)[layout];
@@ -628,13 +629,13 @@ void LayoutBox::updateContents(bool reset)
        if (!bv) {
                d->model_->clear();
                setEnabled(false);
-               d->text_class_ = 0;
+               d->text_class_.reset();
                d->inset_ = 0;
                return;
        }
        // we'll only update the layout list if the text class has changed
        // or we've moved from one inset to another
-       DocumentClass const * text_class = &(bv->buffer().params().documentClass());
+       DocumentClassConstPtr text_class = bv->buffer().params().documentClassPtr();
        Inset const * inset = &(bv->cursor().innerText()->inset());
        if (!reset && d->text_class_ == text_class && d->inset_ == inset) {
                set(bv->cursor().innerParagraph().layout().name());
@@ -686,7 +687,7 @@ void LayoutBox::selected(int index)
                d->model_->itemFromIndex(mindex)->text());
        d->owner_.setFocus();
 
-       if (!d->text_class_) {
+       if (!d->text_class_.get()) {
                updateContents(false);
                d->resetFilter();
                return;