fix: don't try to delete mods multiple times
Shows a more helpful message if there's a parsing error when reading the index file. Also fixes a clazy warning with using the `.data()` method in a temporary QByteArray object.
This commit is contained in:
		| @@ -339,6 +339,9 @@ bool ModFolderModel::deleteMods(const QModelIndexList& indexes) | ||||
|  | ||||
|     for (auto i: indexes) | ||||
|     { | ||||
|         if(i.column() != 0) { | ||||
|             continue; | ||||
|         } | ||||
|         Mod &m = mods[i.row()]; | ||||
|         auto index_dir = indexDir(); | ||||
|         m.destroy(index_dir); | ||||
|   | ||||
| @@ -162,12 +162,14 @@ auto V1::getIndexForMod(QDir& index_dir, QString& index_file_name) -> Mod | ||||
|  | ||||
|     // NOLINTNEXTLINE(modernize-avoid-c-arrays) | ||||
|     char errbuf[200]; | ||||
|     table = toml_parse(index_file.readAll().data(), errbuf, sizeof(errbuf)); | ||||
|     auto file_bytearray = index_file.readAll(); | ||||
|     table = toml_parse(file_bytearray.data(), errbuf, sizeof(errbuf)); | ||||
|  | ||||
|     index_file.close(); | ||||
|  | ||||
|     if (!table) { | ||||
|         qCritical() << QString("Could not open file %1!").arg(indexFileName(mod.name)); | ||||
|         qWarning() << QString("Could not open file %1!").arg(indexFileName(index_file_name)); | ||||
|         qWarning() << "Reason: " << QString(errbuf); | ||||
|         return {}; | ||||
|     } | ||||
|      | ||||
|   | ||||
		Reference in New Issue
	
	Block a user