mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-09 18:52:46 +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()
|
void ControlToc::updateBackend()
|
||||||
{
|
{
|
||||||
kernel().buffer().tocBackend().update();
|
kernel().buffer().tocBackend().update();
|
||||||
|
kernel().buffer().structureChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ QStandardItemModel * QToc::tocModel(int type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
LYXERR(Debug::GUI)
|
LYXERR(Debug::GUI)
|
||||||
<< "QToc: type_ " << type
|
<< "QToc: type " << type
|
||||||
<< " toc_models_.size() " << toc_models_.size()
|
<< " toc_models_.size() " << toc_models_.size()
|
||||||
<< endl;
|
<< endl;
|
||||||
|
|
||||||
@ -110,32 +110,12 @@ bool QToc::initialiseParams(std::string const & data)
|
|||||||
if (!ControlToc::initialiseParams(data))
|
if (!ControlToc::initialiseParams(data))
|
||||||
return false;
|
return false;
|
||||||
update();
|
update();
|
||||||
|
modelReset();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void QToc::update()
|
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();
|
toc_models_.clear();
|
||||||
TocList::const_iterator it = tocs().begin();
|
TocList::const_iterator it = tocs().begin();
|
||||||
|
@ -39,17 +39,9 @@ public:
|
|||||||
///
|
///
|
||||||
void update();
|
void update();
|
||||||
///
|
///
|
||||||
void updateToc();
|
|
||||||
///
|
|
||||||
void updateType();
|
|
||||||
|
|
||||||
bool canOutline(int type) const;
|
bool canOutline(int type) const;
|
||||||
|
|
||||||
QStandardItemModel * tocModel(int type);
|
QStandardItemModel * tocModel(int type);
|
||||||
|
|
||||||
QStringListModel * typeModel()
|
|
||||||
{ return &type_model_; }
|
|
||||||
|
|
||||||
///
|
///
|
||||||
QModelIndex const getCurrentIndex(int type) const;
|
QModelIndex const getCurrentIndex(int type) const;
|
||||||
///
|
///
|
||||||
@ -66,10 +58,6 @@ Q_SIGNALS:
|
|||||||
private:
|
private:
|
||||||
///
|
///
|
||||||
std::vector<TocModel *> toc_models_;
|
std::vector<TocModel *> toc_models_;
|
||||||
///
|
|
||||||
QStringListModel type_model_;
|
|
||||||
///
|
|
||||||
int type_;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace frontend
|
} // namespace frontend
|
||||||
|
@ -91,9 +91,10 @@ void TocWidget::selectionChanged(const QModelIndex & current,
|
|||||||
|
|
||||||
void TocWidget::on_updateTB_clicked()
|
void TocWidget::on_updateTB_clicked()
|
||||||
{
|
{
|
||||||
|
// The backend update can take some time so we disable
|
||||||
|
// the controls while waiting.
|
||||||
|
enableControls(false);
|
||||||
form_->updateBackend();
|
form_->updateBackend();
|
||||||
form_->update();
|
|
||||||
update();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FIXME (Ugras 17/11/06):
|
/* FIXME (Ugras 17/11/06):
|
||||||
@ -139,8 +140,7 @@ void TocWidget::setTreeDepth(int depth)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TocWidget::on_typeCO_currentIndexChanged(int value)
|
||||||
void TocWidget::on_typeCO_activated(int value)
|
|
||||||
{
|
{
|
||||||
setTocModel(value);
|
setTocModel(value);
|
||||||
}
|
}
|
||||||
@ -240,22 +240,30 @@ void TocWidget::update()
|
|||||||
|
|
||||||
void TocWidget::updateGui()
|
void TocWidget::updateGui()
|
||||||
{
|
{
|
||||||
QStringListModel * type_model = form_->typeModel();
|
vector<docstring> const & type_names = form_->typeNames();
|
||||||
if (type_model->stringList().isEmpty()) {
|
if (type_names.empty()) {
|
||||||
enableControls(false);
|
enableControls(false);
|
||||||
typeCO->setModel(type_model);
|
typeCO->clear();
|
||||||
tocTV->setModel(new QStandardItemModel);
|
tocTV->setModel(new QStandardItemModel);
|
||||||
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
tocTV->setEditTriggers(QAbstractItemView::NoEditTriggers);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
QString current_text = typeCO->currentText();
|
QString current_text = typeCO->currentText();
|
||||||
typeCO->setModel(type_model);
|
lyxerr << "current_text " << fromqstr(current_text) << endl;
|
||||||
int const current_type = typeCO->findText(current_text);
|
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)
|
if (current_type != -1)
|
||||||
typeCO->setCurrentIndex(current_type);
|
typeCO->setCurrentIndex(current_type);
|
||||||
else
|
else
|
||||||
typeCO->setCurrentIndex(form_->selectedType());
|
typeCO->setCurrentIndex(form_->selectedType());
|
||||||
|
typeCO->blockSignals(false);
|
||||||
|
|
||||||
setTocModel(typeCO->currentIndex());
|
setTocModel(typeCO->currentIndex());
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ protected Q_SLOTS:
|
|||||||
|
|
||||||
void on_updateTB_clicked();
|
void on_updateTB_clicked();
|
||||||
void on_depthSL_valueChanged(int depth);
|
void on_depthSL_valueChanged(int depth);
|
||||||
void on_typeCO_activated(int value);
|
void on_typeCO_currentIndexChanged(int value);
|
||||||
void on_moveUpTB_clicked();
|
void on_moveUpTB_clicked();
|
||||||
void on_moveDownTB_clicked();
|
void on_moveDownTB_clicked();
|
||||||
void on_moveInTB_clicked();
|
void on_moveInTB_clicked();
|
||||||
|
Loading…
Reference in New Issue
Block a user