mirror of
https://github.com/YACReader/yacreader
synced 2025-07-22 15:04:40 -04:00
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:
@ -144,7 +144,7 @@ void TableModel::setupModelData(unsigned long long int folderId,QSqlDatabase & d
|
||||
{
|
||||
//QFile f(QCoreApplication::applicationDirPath()+"/performance.txt");
|
||||
//f.open(QIODevice::Append);
|
||||
emit(beforeReset());
|
||||
beginResetModel();
|
||||
//QElapsedTimer timer;
|
||||
//timer.start();
|
||||
qDeleteAll(_data);
|
||||
@ -165,7 +165,7 @@ void TableModel::setupModelData(unsigned long long int folderId,QSqlDatabase & d
|
||||
//txtS << "TABLEMODEL: Tiempo de creaci<63>n del modelo: " << timer.elapsed() << "ms\r\n";
|
||||
db.close();
|
||||
_database = db;
|
||||
emit(reset());
|
||||
endResetModel();
|
||||
//f.close();
|
||||
}
|
||||
|
||||
|
@ -198,7 +198,7 @@ int TreeModel::rowCount(const QModelIndex &parent) const
|
||||
|
||||
void TreeModel::setupModelData(QString path)
|
||||
{
|
||||
emit(beforeReset());
|
||||
beginResetModel();
|
||||
if(rootItem != 0)
|
||||
delete rootItem; //TODO comprobar que se libera bien la memoria
|
||||
filterEnabled = false;
|
||||
@ -220,7 +220,7 @@ void TreeModel::setupModelData(QString path)
|
||||
|
||||
setupModelData(selectQuery,rootItem);
|
||||
_database.close();
|
||||
emit(reset());
|
||||
endResetModel();
|
||||
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ void TreeModel::setupModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
|
||||
void TreeModel::setupFilteredModelData()
|
||||
{
|
||||
emit(beforeReset());
|
||||
beginResetModel();
|
||||
|
||||
//TODO hay que liberar memoria de anteriores filtrados
|
||||
|
||||
@ -285,7 +285,8 @@ void TreeModel::setupFilteredModelData()
|
||||
selectQuery.exec();
|
||||
setupFilteredModelData(selectQuery,rootItem);
|
||||
_database.close();
|
||||
emit(reset());
|
||||
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
void TreeModel::setupFilteredModelData(QSqlQuery &sqlquery, TreeItem *parent)
|
||||
@ -381,7 +382,7 @@ void TreeModel::setFilter(QString filter, bool includeComics)
|
||||
|
||||
void TreeModel::resetFilter()
|
||||
{
|
||||
emit(beforeReset());
|
||||
beginResetModel();
|
||||
filter = "";
|
||||
includeComics = false;
|
||||
//TODO hay que liberar la memoria reservada para el filtrado
|
||||
@ -389,10 +390,12 @@ void TreeModel::resetFilter()
|
||||
filteredItems.clear();
|
||||
TreeItem * root = rootItem;
|
||||
rootItem = rootBeforeFilter; //TODO si no se aplica el filtro previamente, esto invalidar<61>a en modelo
|
||||
//if(root !=0)
|
||||
// delete root;
|
||||
if(root !=0)
|
||||
delete root;
|
||||
|
||||
rootBeforeFilter = 0;
|
||||
filterEnabled = false;
|
||||
emit(reset());
|
||||
endResetModel();
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user