}
LYXERR(Debug::GUI)
- << "QToc: type_ " << type
+ << "QToc: type " << type
<< " toc_models_.size() " << toc_models_.size()
<< endl;
if (!ControlToc::initialiseParams(data))
return false;
update();
+ modelReset();
return true;
}
void QToc::update()
-{
- updateType();
- updateToc();
- modelReset();
-}
-
-
-void QToc::updateType()
-{
- QStringList type_list;
-
- vector<docstring> const & type_names = typeNames();
- BOOST_ASSERT(!type_names.empty());
- for (size_t i = 0; i != type_names.size(); ++i)
- type_list.append(toqstr(type_names[i]));
-
- type_model_.setStringList(type_list);
-}
-
-
-void QToc::updateToc()
{
toc_models_.clear();
TocList::const_iterator it = tocs().begin();
///
void update();
///
- void updateToc();
- ///
- void updateType();
-
bool canOutline(int type) const;
QStandardItemModel * tocModel(int type);
-
- QStringListModel * typeModel()
- { return &type_model_; }
-
///
QModelIndex const getCurrentIndex(int type) const;
///
private:
///
std::vector<TocModel *> toc_models_;
- ///
- QStringListModel type_model_;
- ///
- int type_;
};
} // namespace frontend
void TocWidget::on_updateTB_clicked()
{
+ // The backend update can take some time so we disable
+ // the controls while waiting.
+ enableControls(false);
form_->updateBackend();
- form_->update();
- update();
}
/* FIXME (Ugras 17/11/06):
}
}
-
-void TocWidget::on_typeCO_activated(int value)
+void TocWidget::on_typeCO_currentIndexChanged(int value)
{
setTocModel(value);
}
void TocWidget::updateGui()
{
- QStringListModel * type_model = form_->typeModel();
- if (type_model->stringList().isEmpty()) {
+ vector<docstring> const & type_names = form_->typeNames();
+ if (type_names.empty()) {
enableControls(false);
- typeCO->setModel(type_model);
+ typeCO->clear();
tocTV->setModel(new QStandardItemModel);
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
return;
}
QString current_text = typeCO->currentText();
- typeCO->setModel(type_model);
- int const current_type = typeCO->findText(current_text);
+ lyxerr << "current_text " << fromqstr(current_text) << endl;
+ typeCO->blockSignals(true);
+ int current_type = -1;
+ for (size_t i = 0; i != type_names.size(); ++i) {
+ QString item = toqstr(type_names[i]);
+ typeCO->addItem(item);
+ if (item == current_text)
+ current_type = i;
+ }
if (current_type != -1)
typeCO->setCurrentIndex(current_type);
else
typeCO->setCurrentIndex(form_->selectedType());
+ typeCO->blockSignals(false);
setTocModel(typeCO->currentIndex());
}
void on_updateTB_clicked();
void on_depthSL_valueChanged(int depth);
- void on_typeCO_activated(int value);
+ void on_typeCO_currentIndexChanged(int value);
void on_moveUpTB_clicked();
void on_moveDownTB_clicked();
void on_moveInTB_clicked();