mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-06 00:10:59 +00:00
Fix bugs 3528 and 3534 by Ozgur Ugras BARAN and myself:
* ControlToc::updateBackend(): emit Buffer::structureChanged() * QToc: - updateToc(), updateType(), typeModel(): deleted. * TocWidget - updateGui() manually with ControlToc::typenames() - on_typeCO_activated(): changed to on_typeCO_currentIndexChanged() git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18258 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
e916170647
commit
5b5ee8cc32
@ -117,6 +117,7 @@ void ControlToc::outlineOut()
|
||||
void ControlToc::updateBackend()
|
||||
{
|
||||
kernel().buffer().tocBackend().update();
|
||||
kernel().buffer().structureChanged();
|
||||
}
|
||||
|
||||
|
||||
|
@ -67,7 +67,7 @@ QStandardItemModel * QToc::tocModel(int type)
|
||||
}
|
||||
|
||||
LYXERR(Debug::GUI)
|
||||
<< "QToc: type_ " << type
|
||||
<< "QToc: type " << type
|
||||
<< " toc_models_.size() " << toc_models_.size()
|
||||
<< endl;
|
||||
|
||||
@ -110,32 +110,12 @@ bool QToc::initialiseParams(std::string const & data)
|
||||
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();
|
||||
|
@ -39,17 +39,9 @@ public:
|
||||
///
|
||||
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;
|
||||
///
|
||||
@ -66,10 +58,6 @@ Q_SIGNALS:
|
||||
private:
|
||||
///
|
||||
std::vector<TocModel *> toc_models_;
|
||||
///
|
||||
QStringListModel type_model_;
|
||||
///
|
||||
int type_;
|
||||
};
|
||||
|
||||
} // namespace frontend
|
||||
|
@ -91,9 +91,10 @@ void TocWidget::selectionChanged(const QModelIndex & current,
|
||||
|
||||
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):
|
||||
@ -139,8 +140,7 @@ void TocWidget::setTreeDepth(int depth)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TocWidget::on_typeCO_activated(int value)
|
||||
void TocWidget::on_typeCO_currentIndexChanged(int value)
|
||||
{
|
||||
setTocModel(value);
|
||||
}
|
||||
@ -240,22 +240,30 @@ void TocWidget::update()
|
||||
|
||||
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());
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ protected Q_SLOTS:
|
||||
|
||||
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();
|
||||
|
Loading…
Reference in New Issue
Block a user