]> git.lyx.org Git - features.git/commitdiff
Navigator:
authorAbdelrazak Younes <younes@lyx.org>
Tue, 17 Jun 2008 15:44:14 +0000 (15:44 +0000)
committerAbdelrazak Younes <younes@lyx.org>
Tue, 17 Jun 2008 15:44:14 +0000 (15:44 +0000)
- some cleanup in TocWidget
- fix Read-only document navigation.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@25292 a592a061-630c-0410-9148-cb99ea01b6c8

src/frontends/qt4/GuiToc.cpp
src/frontends/qt4/TocWidget.cpp
src/frontends/qt4/TocWidget.h

index 3ab8cee212ecdbb03b3af1a10a4efe4baf702afb..9b632748d2802794d4ac984297c5021827c5578e 100644 (file)
@@ -84,7 +84,8 @@ void GuiToc::dispatchParams()
 void GuiToc::enableView(bool enable)
 {
        if (!enable)
-               widget_->init(QString());
+               // In the opposite case, updateView() will be called anyway.
+               widget_->updateView();
 }
 
 
index 3be6aeb220c1572214128ccec1d41784dde1c826..daa77370a79c268f64d7979684b23bc5ea56462d 100644 (file)
@@ -17,6 +17,7 @@
 #include "qt_helpers.h"
 #include "TocModel.h"
 
+#include "Buffer.h"
 #include "FuncRequest.h"
 #include "LyXFunc.h"
 
@@ -216,15 +217,32 @@ void TocWidget::enableControls(bool enable)
        moveDownTB->setEnabled(enable);
        moveInTB->setEnabled(enable);
        moveOutTB->setEnabled(enable);
-
-       depthSL->setEnabled(enable);
 }
 
 
 void TocWidget::updateView()
 {
-       LYXERR(Debug::GUI, "In TocWidget::updateView()");
-       setTocModel();
+       if (!gui_view_.view()) {
+               enableControls(false);
+               typeCO->setEnabled(false);
+               tocTV->setModel(0);
+               tocTV->setEnabled(false);
+               return;
+       }
+       typeCO->setEnabled(true);
+       tocTV->setEnabled(true);
+
+       QStandardItemModel * toc_model = gui_view_.tocModels().model(current_type_);    
+       if (tocTV->model() != toc_model) {
+               tocTV->setModel(toc_model);
+               tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
+       }
+       bool controls_enabled = toc_model && toc_model->rowCount() > 0
+               && !gui_view_.buffer()->isReadonly();
+       enableControls(controls_enabled);
+
+       depthSL->setMaximum(gui_view_.tocModels().depth(current_type_));
+       depthSL->setValue(depth_);
        setTreeDepth(depth_);
        select(gui_view_.tocModels().currentIndex(current_type_));
 }
@@ -249,17 +267,6 @@ static QString decodeType(QString const & str)
 
 void TocWidget::init(QString const & str)
 {
-       if (!gui_view_.view()) {
-               enableControls(false);
-               typeCO->setEnabled(false);
-               tocTV->setModel(0);
-               tocTV->setEnabled(false);
-               return;
-       }
-
-       typeCO->setEnabled(true);
-       tocTV->setEnabled(true);
-
        typeCO->blockSignals(true);
 
        int new_index;
@@ -279,25 +286,6 @@ void TocWidget::init(QString const & str)
        typeCO->blockSignals(false);
 }
 
-
-void TocWidget::setTocModel()
-{
-       QStandardItemModel * toc_model = gui_view_.tocModels().model(current_type_);
-       
-       if (tocTV->model() != toc_model) {
-               tocTV->setModel(toc_model);
-               tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
-       }
-
-       bool controls_enabled = toc_model && toc_model->rowCount() > 0;;
-       enableControls(controls_enabled);
-
-       if (controls_enabled) {
-               depthSL->setMaximum(gui_view_.tocModels().depth(current_type_));
-               depthSL->setValue(depth_);
-       }
-}
-
 } // namespace frontend
 } // namespace lyx
 
index a9dc03f5727557a019f7cce91e0b14df9de5fddf..a379bf02386449b830a525fce43d02a77484f294 100644 (file)
@@ -40,8 +40,6 @@ public Q_SLOTS:
        void updateView();
 
 protected Q_SLOTS:
-       ///
-       void setTocModel();
        ///
        void select(QModelIndex const & index);
        ///