summaryrefslogtreecommitdiff
path: root/src/usvfsconnector.cpp
diff options
context:
space:
mode:
authorTwinki <Twinki14@users.noreply.github.com>2024-06-15 12:51:47 -0400
committerGitHub <noreply@github.com>2024-06-15 18:51:47 +0200
commitd3b647ab2b19626b2f86b5c2af3946c1fcf22068 (patch)
tree3dac9ed85783bdf1bb682cd4a436cfa9197ba382 /src/usvfsconnector.cpp
parent6d08d434a8a5a4471a620974a52550ada05ab663 (diff)
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
Diffstat (limited to 'src/usvfsconnector.cpp')
-rw-r--r--src/usvfsconnector.cpp34
1 files changed, 33 insertions, 1 deletions
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(