From d3b647ab2b19626b2f86b5c2af3946c1fcf22068 Mon Sep 17 00:00:00 2001 From: Twinki Date: Sat, 15 Jun 2024 12:51:47 -0400 Subject: Use new Skip File & Skip Directory in usvfs (#2033) * Use new Skip File & Skip Directory in usvfs. # Motivations https://github.com/ModOrganizer2/usvfs/pull/61 Highlights some reasons why the ability to skip files & directories would be beneficial # Modifications - Add two new settings, `skip_file_suffixes` and `skip_directories` - Wire the two new settings up to usvfs - Add two new buttons to the `Workarounds` dialog, one to adjust Skip File Suffixes and another for Skip Directories, both buttons act nearly identical to the Executable Blacklist button - Add a new grouping in the `Workarounds` dialog box that contains the usvfs buttons to keep the dialog a tad organized --- src/usvfsconnector.cpp | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'src/usvfsconnector.cpp') diff --git a/src/usvfsconnector.cpp b/src/usvfsconnector.cpp index 4a54f9fd..7b75b870 100644 --- a/src/usvfsconnector.cpp +++ b/src/usvfsconnector.cpp @@ -160,6 +160,21 @@ UsvfsConnector::UsvfsConnector() usvfsBlacklistExecutable(buf.data()); } + usvfsClearSkipFileSuffixes(); + for (auto& suffix : s.skipFileSuffixes()) { + if (suffix.isEmpty()) { + continue; + } + std::wstring buf = suffix.toStdWString(); + usvfsAddSkipFileSuffix(buf.data()); + } + + usvfsClearSkipDirectories(); + for (auto& dir : s.skipDirectories()) { + std::wstring buf = dir.toStdWString(); + usvfsAddSkipDirectory(buf.data()); + } + usvfsClearLibraryForceLoads(); m_LogWorker.moveToThread(&m_WorkerThread); @@ -228,7 +243,9 @@ void UsvfsConnector::updateParams(MOBase::log::Levels logLevel, env::CoreDumpTypes coreDumpType, const QString& crashDumpsPath, std::chrono::seconds spawnDelay, - QString executableBlacklist) + QString executableBlacklist, + const QStringList& skipFileSuffixes, + const QStringList& skipDirectories) { using namespace std::chrono; @@ -248,6 +265,21 @@ void UsvfsConnector::updateParams(MOBase::log::Levels logLevel, std::wstring buf = exec.toStdWString(); usvfsBlacklistExecutable(buf.data()); } + + usvfsClearSkipFileSuffixes(); + for (auto& suffix : skipFileSuffixes) { + if (suffix.isEmpty()) { + continue; + } + std::wstring buf = suffix.toStdWString(); + usvfsAddSkipFileSuffix(buf.data()); + } + + usvfsClearSkipDirectories(); + for (auto& dir : skipDirectories) { + std::wstring buf = dir.toStdWString(); + usvfsAddSkipDirectory(buf.data()); + } } void UsvfsConnector::updateForcedLibraries( -- cgit v1.3.1