// 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);
}
// 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));
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";
}
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_));
}
void TocWidget::init(QString const & str)
{
- typeCO->blockSignals(true);
-
int new_index;
if (str.isEmpty())
new_index = typeCO->findData(current_type_);
new_index = typeCO->findData(current_type_);
}
+ typeCO->blockSignals(true);
typeCO->setCurrentIndex(new_index);
typeCO->blockSignals(false);
}