]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/TocWidget.cpp
Revert unwanted part
[lyx.git] / src / frontends / qt4 / TocWidget.cpp
index 9aa2c07b78b7bbe44ed6bc6ad1de1a0350663e95..fbb017ad7c005f752fa4c4f99b09df5ed44881ff 100644 (file)
@@ -61,6 +61,10 @@ TocWidget::TocWidget(GuiView & gui_view, QWidget * parent)
 
        // The toc types combo won't change its model.
        typeCO->setModel(gui_view_.tocModels().nameModel());
+
+       // Make sure the buttons are disabled when first shown without a loaded
+       // Buffer.
+       enableControls(false);
 }
 
 
@@ -128,7 +132,7 @@ void TocWidget::setTreeDepth(int depth)
        // but my qt 4.1.2 doesn't have expandAll()..
        //tocTV->expandAll();
        QModelIndexList indices = tocTV->model()->match(
-               tocTV->model()->index(0,0),
+               tocTV->model()->index(0, 0),
                Qt::DisplayRole, "*", -1,
                Qt::MatchFlags(Qt::MatchWildcard|Qt::MatchRecursive));
 
@@ -217,6 +221,21 @@ void TocWidget::enableControls(bool enable)
        moveDownTB->setEnabled(enable);
        moveInTB->setEnabled(enable);
        moveOutTB->setEnabled(enable);
+       if (!enable) {
+               depthSL->setMaximum(0);
+               depthSL->setValue(0);
+       }
+}
+
+
+/// Test if synchronized navigation is possible
+static bool canNavigate(QString const & type)
+{
+       // It is not possible to have synchronous navigation in a correctl
+       // and efficient way with the label type because Toc::item() do a linear
+       // seatch. Even if fixed, it might even not be desirable to do so if we 
+       // want to support drag&drop of labels and references.
+       return type != "label";
 }
 
 
@@ -244,7 +263,8 @@ void TocWidget::updateView()
        depthSL->setMaximum(gui_view_.tocModels().depth(current_type_));
        depthSL->setValue(depth_);
        setTreeDepth(depth_);
-       select(gui_view_.tocModels().currentIndex(current_type_));
+       if (canNavigate(current_type_))
+               select(gui_view_.tocModels().currentIndex(current_type_));
 }