X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FTocModel.cpp;h=c0c3dce5487766937f49bc99b92f37f68b8a34d0;hb=ceb03b1815583a7daf6166562f6d928d7d38b356;hp=e43b3df445e792650a531bd1b72342b7480817c5;hpb=fb03f2a5ecb60dd029cf8f2a7cfe021fdcee7231;p=lyx.git diff --git a/src/frontends/qt/TocModel.cpp b/src/frontends/qt/TocModel.cpp index e43b3df445..c0c3dce548 100644 --- a/src/frontends/qt/TocModel.cpp +++ b/src/frontends/qt/TocModel.cpp @@ -126,8 +126,8 @@ QModelIndex TocModel::modelIndex(DocIterator const & dit) const if (toc_->empty()) return QModelIndex(); - unsigned int const toc_index = TocBackend::findItem(*toc_, dit) - - toc_->begin(); + unsigned int const toc_index = + static_cast(TocBackend::findItem(*toc_, dit) - toc_->begin()); QModelIndexList list = model()->match(model()->index(0, 0), Qt::UserRole, QVariant(toc_index), 1, @@ -283,7 +283,7 @@ QAbstractItemModel * TocModels::model(QString const & type) if (it != models_.end()) return it.value()->model(); LYXERR0("type not found: " << type); - return 0; + return nullptr; } @@ -327,6 +327,11 @@ TocItem const TocModels::currentItem(QString const & type, } LASSERT(index.model() == it.value()->model(), return TocItem()); + if (it.value()->empty()) { + LYXERR(Debug::GUI, "TocModels::currentItem(): requested toc is empty!"); + return TocItem(); + } + return it.value()->tocItem(index); } @@ -336,6 +341,13 @@ void TocModels::updateItem(QString const & type, DocIterator const & dit) models_[type]->updateItem(dit); } +TocModels::~TocModels(){ + QHashIterator iter(models_); + while(iter.hasNext()) { + iter.next(); + delete iter.value(); + } +} void TocModels::reset(BufferView const * bv) {