Skip to content

Conversation

@PainnBot
Copy link

@PainnBot PainnBot commented Aug 1, 2025

Implemented batch installation of Fantome/zip/wad mods, including drag-and-drop and multi-file dialog support. Added conflict detection with user prompt to skip or overwrite existing mods. Updated QML and backend to handle new signals, slots, and dialog for conflict resolution.

Implemented batch installation of Fantome/zip/wad mods, including drag-and-drop and multi-file dialog support. Added conflict detection with user prompt to skip or overwrite existing mods. Updated QML and backend to handle new signals, slots, and dialog for conflict resolution.
Copy link
Collaborator

@moonshadow565 moonshadow565 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't test this but it looks sane to me. Cmake version hack i do not like. It also removes functionality of importing extracted .wads which i would prefer not be removed in case someone is using it.

FetchContent_GetProperties(miniz)
if(NOT miniz_POPULATED)
FetchContent_Populate(miniz)
# Patch the CMakeLists.txt to use a newer minimum version
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure i like this, something like https://stackoverflow.com/a/73725257 would be more acceptable.
Or alternatively maybe bumping miniz version up if this is also fixed upstream ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not quite sure to be very honest, I'm not too professional at this type of coding yet, but will see what I can do.

const QString filePath = it.next();
// If the file is inside a directory named "chromas", skip it.
// QDirIterator always uses '/', so we only need to check for that separator.
if (filePath.contains("/chromas/", Qt::CaseInsensitive)) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bit more information on this. Where is this directory coming from? Why do we need to remove it? Can there be false positives named chromas that should not be removed?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When doing auto import for a whole folder if you have chromas there then the importing process would take a day or two as in my case I had a folder with so many skin mods and chromas so I preferred to do it part manually, so it just looks for folder that contains chroma in the name and exclude it.

continue;
}

QDirIterator it(path, nameFilters, QDir::Files, QDirIterator::Subdirectories);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is missing handling for .wad.client/.wad directories. Those should not be iterated, they should be treated as files and passed to mod-tools as such.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm sure I haven't removed the wad file handling, will have to take a look sound's like I made a mistake and wouldn't show in my end as I was mainly testing with zips

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the inputs will take another look and fix those.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants