]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/TocWidget.cpp
Fix the warning message "TocModel.cpp: type not found" when (re-)loading a file.
[lyx.git] / src / frontends / qt4 / TocWidget.cpp
index 80e867c7d1d05e3ce1b80f9e7fc87364c3c7b296..be4c9c7696adc5cda0af02bb524bb7c660bdfc9b 100644 (file)
@@ -68,6 +68,7 @@ TocWidget::TocWidget(GuiView & gui_view, QWidget * parent)
 
        // Only one item selected at a time.
        tocTV->setSelectionMode(QAbstractItemView::SingleSelection);
+       setFocusProxy(tocTV);
 
        // The toc types combo won't change its model.
        typeCO->setModel(gui_view_.tocModels().nameModel());
@@ -313,6 +314,8 @@ void TocWidget::setTreeDepth(int depth)
 
 void TocWidget::on_typeCO_currentIndexChanged(int index)
 {
+       if (index == -1)
+               return;
        current_type_ = typeCO->itemData(index).toString();
        updateView();
        if (typeCO->hasFocus())
@@ -387,21 +390,16 @@ void TocWidget::enableControls(bool enable)
 void TocWidget::updateView()
 {
        if (!gui_view_.documentBufferView()) {
-               enableControls(false);
-               typeCO->setEnabled(false);
                tocTV->setModel(0);
-               tocTV->setEnabled(false);
                depthSL->setMaximum(0);
                depthSL->setValue(0);
-               persistentCB->setEnabled(false);
-               sortCB->setEnabled(false);
-               depthSL->setEnabled(false);
+               setEnabled(false);
                return;
        }
+       setEnabled(true);
        bool const is_sortable = isSortable();
        sortCB->setEnabled(is_sortable);
-       depthSL->setEnabled(true);
-       typeCO->setEnabled(true);
+       bool focus_ = tocTV->hasFocus();
        tocTV->setEnabled(false);
        tocTV->setUpdatesEnabled(false);
 
@@ -437,6 +435,8 @@ void TocWidget::updateView()
        filterContents();
        tocTV->setEnabled(true);
        tocTV->setUpdatesEnabled(true);
+       if (focus_)
+               tocTV->setFocus();
 }