mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 13:18:28 +00:00
TocWidget: Remove possibly dangling BufferView pointer
This commit is contained in:
parent
3d6a7a1200
commit
cde3f6b84c
@ -248,7 +248,6 @@ int TocModel::modelDepth() const
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
TocModels::TocModels()
|
||||
: bv_(0)
|
||||
{
|
||||
names_ = new TocTypeModel(this);
|
||||
names_sorted_ = new TocModelSortProxyModel(this);
|
||||
@ -272,7 +271,7 @@ void TocModels::clear()
|
||||
int TocModels::depth(QString const & type)
|
||||
{
|
||||
const_iterator it = models_.find(type);
|
||||
if (!bv_ || it == models_.end())
|
||||
if (it == models_.end())
|
||||
return 0;
|
||||
return it.value()->modelDepth();
|
||||
}
|
||||
@ -280,8 +279,6 @@ int TocModels::depth(QString const & type)
|
||||
|
||||
QAbstractItemModel * TocModels::model(QString const & type)
|
||||
{
|
||||
if (!bv_)
|
||||
return 0;
|
||||
iterator it = models_.find(type);
|
||||
if (it != models_.end())
|
||||
return it.value()->model();
|
||||
@ -296,12 +293,13 @@ QAbstractItemModel * TocModels::nameModel()
|
||||
}
|
||||
|
||||
|
||||
QModelIndex TocModels::currentIndex(QString const & type) const
|
||||
QModelIndex TocModels::currentIndex(QString const & type,
|
||||
DocIterator const & dit) const
|
||||
{
|
||||
const_iterator it = models_.find(type);
|
||||
if (!bv_ || it == models_.end())
|
||||
if (it == models_.end())
|
||||
return QModelIndex();
|
||||
return it.value()->modelIndex(bv_->cursor());
|
||||
return it.value()->modelIndex(dit);
|
||||
}
|
||||
|
||||
|
||||
@ -341,9 +339,8 @@ void TocModels::updateItem(QString const & type, DocIterator const & dit)
|
||||
|
||||
void TocModels::reset(BufferView const * bv)
|
||||
{
|
||||
bv_ = bv;
|
||||
clear();
|
||||
if (!bv_) {
|
||||
if (!bv) {
|
||||
iterator end = models_.end();
|
||||
for (iterator it = models_.begin(); it != end; ++it)
|
||||
it.value()->reset();
|
||||
@ -354,7 +351,7 @@ void TocModels::reset(BufferView const * bv)
|
||||
names_->blockSignals(true);
|
||||
names_->beginResetModel();
|
||||
names_->insertColumns(0, 1);
|
||||
TocList const & tocs = bv_->buffer().masterBuffer()->tocBackend().tocs();
|
||||
TocList const & tocs = bv->buffer().masterBuffer()->tocBackend().tocs();
|
||||
TocList::const_iterator it = tocs.begin();
|
||||
TocList::const_iterator toc_end = tocs.end();
|
||||
for (; it != toc_end; ++it) {
|
||||
|
@ -121,7 +121,8 @@ public:
|
||||
///
|
||||
QAbstractItemModel * nameModel();
|
||||
///
|
||||
QModelIndex currentIndex(QString const & type) const;
|
||||
QModelIndex currentIndex(QString const & type,
|
||||
DocIterator const & dit) const;
|
||||
///
|
||||
void goTo(QString const & type, QModelIndex const & index) const;
|
||||
///
|
||||
@ -142,8 +143,6 @@ private:
|
||||
///
|
||||
void clear();
|
||||
///
|
||||
BufferView const * bv_;
|
||||
///
|
||||
QHash<QString, TocModel *> models_;
|
||||
///
|
||||
TocTypeModel * names_;
|
||||
|
@ -456,7 +456,11 @@ void TocWidget::finishUpdateView()
|
||||
if (!persistent_)
|
||||
setTreeDepth(depth_);
|
||||
persistentCB->setChecked(persistent_);
|
||||
select(gui_view_.tocModels().currentIndex(current_type_));
|
||||
// select the item at current cursor location
|
||||
if (gui_view_.documentBufferView()) {
|
||||
DocIterator const & dit = gui_view_.documentBufferView()->cursor();
|
||||
select(gui_view_.tocModels().currentIndex(current_type_, dit));
|
||||
}
|
||||
}
|
||||
filterContents();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user