Merge pull request #1331 from TheKodeToad/hungry-trash
Fix updating trashing resources
This commit is contained in:
parent
6cd259becd
commit
6f86e8b66e
@ -121,7 +121,7 @@ bool Mod::applyFilter(QRegularExpression filter) const
|
|||||||
return Resource::applyFilter(filter);
|
return Resource::applyFilter(filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Mod::destroy(QDir& index_dir, bool preserve_metadata) -> bool
|
auto Mod::destroy(QDir& index_dir, bool preserve_metadata, bool attempt_trash) -> bool
|
||||||
{
|
{
|
||||||
if (!preserve_metadata) {
|
if (!preserve_metadata) {
|
||||||
qDebug() << QString("Destroying metadata for '%1' on purpose").arg(name());
|
qDebug() << QString("Destroying metadata for '%1' on purpose").arg(name());
|
||||||
@ -134,7 +134,7 @@ auto Mod::destroy(QDir& index_dir, bool preserve_metadata) -> bool
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Resource::destroy();
|
return Resource::destroy(attempt_trash);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto Mod::details() const -> const ModDetails&
|
auto Mod::details() const -> const ModDetails&
|
||||||
|
@ -79,7 +79,7 @@ public:
|
|||||||
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
|
[[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
|
||||||
|
|
||||||
// Delete all the files of this mod
|
// Delete all the files of this mod
|
||||||
auto destroy(QDir& index_dir, bool preserve_metadata = false) -> bool;
|
auto destroy(QDir& index_dir, bool preserve_metadata = false, bool attempt_trash = true) -> bool;
|
||||||
|
|
||||||
void finishResolvingWithDetails(ModDetails&& details);
|
void finishResolvingWithDetails(ModDetails&& details);
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ bool ModFolderModel::uninstallMod(const QString& filename, bool preserve_metadat
|
|||||||
for(auto mod : allMods()) {
|
for(auto mod : allMods()) {
|
||||||
if(mod->fileinfo().fileName() == filename) {
|
if(mod->fileinfo().fileName() == filename) {
|
||||||
auto index_dir = indexDir();
|
auto index_dir = indexDir();
|
||||||
mod->destroy(index_dir, preserve_metadata);
|
mod->destroy(index_dir, preserve_metadata, false);
|
||||||
|
|
||||||
update();
|
update();
|
||||||
|
|
||||||
|
@ -145,14 +145,10 @@ bool Resource::enable(EnableAction action)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Resource::destroy()
|
bool Resource::destroy(bool attemptTrash)
|
||||||
{
|
{
|
||||||
m_type = ResourceType::UNKNOWN;
|
m_type = ResourceType::UNKNOWN;
|
||||||
|
return (attemptTrash && FS::trash(m_file_info.filePath())) || FS::deletePath(m_file_info.filePath());
|
||||||
if (FS::trash(m_file_info.filePath()))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
return FS::deletePath(m_file_info.filePath());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Resource::isSymLinkUnder(const QString& instPath) const
|
bool Resource::isSymLinkUnder(const QString& instPath) const
|
||||||
|
@ -92,7 +92,7 @@ class Resource : public QObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete all files of this resource.
|
// Delete all files of this resource.
|
||||||
bool destroy();
|
bool destroy(bool attemptTrash = true);
|
||||||
|
|
||||||
[[nodiscard]] auto isSymLink() const -> bool { return m_file_info.isSymLink(); }
|
[[nodiscard]] auto isSymLink() const -> bool { return m_file_info.isSymLink(); }
|
||||||
|
|
||||||
|
@ -156,7 +156,7 @@ bool ResourceFolderModel::uninstallResource(QString file_name)
|
|||||||
{
|
{
|
||||||
for (auto& resource : m_resources) {
|
for (auto& resource : m_resources) {
|
||||||
if (resource->fileinfo().fileName() == file_name) {
|
if (resource->fileinfo().fileName() == file_name) {
|
||||||
auto res = resource->destroy();
|
auto res = resource->destroy(false);
|
||||||
|
|
||||||
update();
|
update();
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ void ModFolderLoadTask::executeTask()
|
|||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
auto mod = iter.next().value();
|
auto mod = iter.next().value();
|
||||||
if (mod->status() == ModStatus::NotInstalled) {
|
if (mod->status() == ModStatus::NotInstalled) {
|
||||||
mod->destroy(m_index_dir, false);
|
mod->destroy(m_index_dir, false, false);
|
||||||
iter.remove();
|
iter.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user