corregido bug en los modelos, no se trataba de emitir las se?ales beforeReset y reset

sino de llamar a los m?todos beginResetModel() y endesetModel() para invalidar el modelo

ahora ya se puede liberar la memoria interna de los modelos sin problemas (aunque siguen existiendo memory leaks)
This commit is contained in:
Luis Ángel San Martín
2012-06-07 15:29:09 +02:00
parent 0e59d311d4
commit ecee7e65ce
3 changed files with 25 additions and 19 deletions

View File

@ -564,8 +564,8 @@ void LibraryWindow::loadLibrary(const QString & name)
{
index = 0;
sm->clear();
foldersView->setModel(NULL); //TODO comprobar pq no sirve con usar simplemente las se<73>ales beforeReset y reset
comicView->setModel(NULL);
//foldersView->setModel(NULL); //TODO comprobar pq no sirve con usar simplemente las se<73>ales beforeReset y reset
//comicView->setModel(NULL);
dm->setupModelData(path);
foldersView->setModel(dm);
@ -604,6 +604,15 @@ void LibraryWindow::loadLibrary(const QString & name)
void LibraryWindow::loadCovers(const QModelIndex & mi)
{
unsigned long long int folderId = 0;
if(mi.isValid())
{
TreeItem *item = static_cast<TreeItem*>(mi.internalPointer());
folderId = item->id;
}
//cambiado de orden, ya que al llamar a foldersFilter->clear() se invalidan los model index
if(foldersFilter->text()!="")
{
//setFoldersFilter("");
@ -620,13 +629,7 @@ void LibraryWindow::loadCovers(const QModelIndex & mi)
column = mi.column();
}
unsigned long long int folderId = 0;
if(mi.isValid())
{
TreeItem *item = static_cast<TreeItem*>(mi.internalPointer());
folderId = item->id;
}
comicView->setModel(NULL);
//comicView->setModel(NULL);
dmCV->setupModelData(folderId,dm->getDatabase());
comicView->setModel(dmCV);
//TODO automatizar (valorar si se deja al modelo)