diff --git a/src/frontends/qt4/GuiToc.cpp b/src/frontends/qt4/GuiToc.cpp index 7a64ba4969..440422225e 100644 --- a/src/frontends/qt4/GuiToc.cpp +++ b/src/frontends/qt4/GuiToc.cpp @@ -66,9 +66,12 @@ void GuiToc::dispatchParams() } -void GuiToc::enableView(bool /*enable*/) +void GuiToc::enableView(bool enable) { - widget_->updateViewForce(); + widget_->checkModelChanged(); + if (!enable) + // In the opposite case, updateView() will be called anyway. + widget_->updateViewForce(); } diff --git a/src/frontends/qt4/TocWidget.cpp b/src/frontends/qt4/TocWidget.cpp index 24bc433776..e3693b7313 100644 --- a/src/frontends/qt4/TocWidget.cpp +++ b/src/frontends/qt4/TocWidget.cpp @@ -452,6 +452,14 @@ void TocWidget::updateViewForce() } +void TocWidget::checkModelChanged() +{ + if (!gui_view_.documentBufferView() || + gui_view_.tocModels().model(current_type_) != tocTV->model()) + updateViewForce(); +} + + void TocWidget::filterContents() { if (!tocTV->model()) diff --git a/src/frontends/qt4/TocWidget.h b/src/frontends/qt4/TocWidget.h index 962c21a238..39a6c2926a 100644 --- a/src/frontends/qt4/TocWidget.h +++ b/src/frontends/qt4/TocWidget.h @@ -42,6 +42,8 @@ public: /// bool getStatus(Cursor & cur, FuncRequest const & fr, FuncStatus & status) const; + // update the view when the model has changed + void checkModelChanged(); public Q_SLOTS: /// Schedule new update of the display unless already scheduled.