Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Switch to QStringList
Browse files Browse the repository at this point in the history
Twinki14 committed Jun 11, 2024
1 parent 215dfd8 commit a62c39d
Showing 8 changed files with 59 additions and 45 deletions.
7 changes: 4 additions & 3 deletions src/organizercore.cpp
Original file line number Diff line number Diff line change
@@ -470,8 +470,8 @@ void OrganizerCore::updateVFSParams(log::Levels logLevel,
const QString& crashDumpsPath,
std::chrono::seconds spawnDelay,
QString executableBlacklist,
const QString& skipFileSuffixes,
const QString& skipDirectories)
const QStringList& skipFileSuffixes,
const QStringList& skipDirectories)
{
setGlobalCoreDumpType(coreDumpType);

@@ -486,7 +486,8 @@ void OrganizerCore::setLogLevel(log::Levels level)
updateVFSParams(
m_Settings.diagnostics().logLevel(), m_Settings.diagnostics().coreDumpType(),
QString::fromStdWString(getGlobalCoreDumpPath()),
m_Settings.diagnostics().spawnDelay(), m_Settings.executablesBlacklist(), m_Settings.skipFileSuffixes(), m_Settings.skipDirectories());
m_Settings.diagnostics().spawnDelay(), m_Settings.executablesBlacklist(),
m_Settings.skipFileSuffixes(), m_Settings.skipDirectories());

log::getDefault().setLevel(m_Settings.diagnostics().logLevel());
}
4 changes: 2 additions & 2 deletions src/organizercore.h
Original file line number Diff line number Diff line change
@@ -339,8 +339,8 @@ class OrganizerCore : public QObject, public MOBase::IPluginDiagnose

void updateVFSParams(MOBase::log::Levels logLevel, env::CoreDumpTypes coreDumpType,
const QString& coreDumpsPath, std::chrono::seconds spawnDelay,
QString executableBlacklist, const QString& skipFileSuffixes,
const QString& skipDirectories);
QString executableBlacklist, const QStringList& skipFileSuffixes,
const QStringList& skipDirectories);

void setLogLevel(MOBase::log::Levels level);

20 changes: 12 additions & 8 deletions src/settings.cpp
Original file line number Diff line number Diff line change
@@ -316,28 +316,32 @@ void Settings::setExecutablesBlacklist(const QString& s)
set(m_Settings, "Settings", "executable_blacklist", s);
}

QString Settings::skipFileSuffixes() const
QStringList Settings::skipFileSuffixes() const
{
static const QString def = (QStringList() << ".mohidden").join(";");

return get<QString>(m_Settings, "Settings", "skip_file_suffixes", def);
auto setting = get<QString>(m_Settings, "Settings", "skip_file_suffixes", def);

return setting.split(";");
}

void Settings::setSkipFileSuffixes(const QString& s)
void Settings::setSkipFileSuffixes(const QStringList& s)
{
set(m_Settings, "Settings", "skip_file_suffixes", s);
set(m_Settings, "Settings", "skip_file_suffixes", s.join(";"));
}

QString Settings::skipDirectories() const
QStringList Settings::skipDirectories() const
{
static const QString def = (QStringList() << ".git").join(";");

return get<QString>(m_Settings, "Settings", "skip_directories", def);
auto setting = get<QString>(m_Settings, "Settings", "skip_directories", def);

return setting.split(";");
}

void Settings::setSkipDirectories(const QString& s)
void Settings::setSkipDirectories(const QStringList& s)
{
set(m_Settings, "Settings", "skip_directories", s);
set(m_Settings, "Settings", "skip_directories", s.join(";"));
}

void Settings::setMotdHash(uint hash)
8 changes: 4 additions & 4 deletions src/settings.h
Original file line number Diff line number Diff line change
@@ -795,11 +795,11 @@ class Settings : public QObject
bool isExecutableBlacklisted(const QString& s) const;
void setExecutablesBlacklist(const QString& s);

QString skipFileSuffixes() const;
void setSkipFileSuffixes(const QString& s);
QStringList skipFileSuffixes() const;
void setSkipFileSuffixes(const QStringList& s);

QString skipDirectories() const;
void setSkipDirectories(const QString& s);
QStringList skipDirectories() const;
void setSkipDirectories(const QStringList& s);

// ? looks obsolete, only used by dead code
//
35 changes: 22 additions & 13 deletions src/settingsdialogworkarounds.cpp
Original file line number Diff line number Diff line change
@@ -124,8 +124,9 @@ WorkaroundsSettingsTab::changeBlacklistLater(QWidget* parent, const QString& cur
return blacklist.join(";");
}

std::optional<QString>
WorkaroundsSettingsTab::changeSkipFileSuffixes(QWidget* parent, const QString& current)
std::optional<QStringList>
WorkaroundsSettingsTab::changeSkipFileSuffixes(QWidget* parent,
const QStringList& current)
{
bool ok = false;

@@ -138,23 +139,28 @@ WorkaroundsSettingsTab::changeSkipFileSuffixes(QWidget* parent, const QString& c
"filename ends.\n\n"
"Example:\n"
" .txt - Would skip all files that end with .txt, <any text>.txt\n"
" some_file.txt - Would skip all files that end with some_file.txt, <any text>some_file.txt"),
current.split(";").join("\n"), &ok);
" some_file.txt - Would skip all files that end with some_file.txt, <any "
"text>some_file.txt"),
current.join("\n"), &ok);

if (!ok) {
return {};
}

QStringList fileSuffixes;
for (auto& suffix : result.split("\n")) {
fileSuffixes << suffix.trimmed();
auto trimmed = suffix.trimmed();
if (!trimmed.isEmpty()) {
fileSuffixes << trimmed;
}
}

return fileSuffixes.join(";");
return fileSuffixes;
}

std::optional<QString>
WorkaroundsSettingsTab::changeSkipDirectories(QWidget* parent, const QString& current)
std::optional<QStringList>
WorkaroundsSettingsTab::changeSkipDirectories(QWidget* parent,
const QStringList& current)
{
bool ok = false;

@@ -166,18 +172,21 @@ WorkaroundsSettingsTab::changeSkipDirectories(QWidget* parent, const QString& cu
"Example:\n"
" .git\n"
" instructions"),
current.split(";").join("\n"), &ok);
current.join("\n"), &ok);

if (!ok) {
return {};
}

QStringList directories;
for (auto& dir : result.split("\n")) {
directories << dir.trimmed();
auto trimmed = dir.trimmed();
if (!trimmed.isEmpty()) {
directories << trimmed;
}
}

return directories.join(";");
return directories;
}

void WorkaroundsSettingsTab::on_execBlacklistBtn_clicked()
@@ -187,14 +196,14 @@ void WorkaroundsSettingsTab::on_execBlacklistBtn_clicked()
}
}

void WorkaroundsSettingsTab::on_skipFileSuffixBtn_clicked()
void WorkaroundsSettingsTab::on_skipFileSuffixBtn_clicked()
{
if (auto s = changeSkipFileSuffixes(parentWidget(), m_SkipFileSuffixes)) {
m_SkipFileSuffixes = *s;
}
}

void WorkaroundsSettingsTab::on_skipDirectoriesBtn_clicked()
void WorkaroundsSettingsTab::on_skipDirectoriesBtn_clicked()
{
if (auto s = changeSkipDirectories(parentWidget(), m_SkipDirectories)) {
m_SkipDirectories = *s;
12 changes: 6 additions & 6 deletions src/settingsdialogworkarounds.h
Original file line number Diff line number Diff line change
@@ -23,21 +23,21 @@ class WorkaroundsSettingsTab : public SettingsTab
// shows the blacklist dialog from the given string and returns the new
// blacklist if the user accepted it
//
static std::optional<QString> changeSkipFileSuffixes(QWidget* parent,
const QString& current);
static std::optional<QStringList> changeSkipFileSuffixes(QWidget* parent,
const QStringList& current);

// shows the blacklist dialog from the given string and returns the new
// blacklist if the user accepted it
//
static std::optional<QString> changeSkipDirectories(QWidget* parent,
const QString& current);
static std::optional<QStringList> changeSkipDirectories(QWidget* parent,
const QStringList& current);

void update();

private:
QString m_ExecutableBlacklist;
QString m_SkipFileSuffixes;
QString m_SkipDirectories;
QStringList m_SkipFileSuffixes;
QStringList m_SkipDirectories;

void on_bsaDateBtn_clicked();
void on_execBlacklistBtn_clicked();
14 changes: 7 additions & 7 deletions src/usvfsconnector.cpp
Original file line number Diff line number Diff line change
@@ -161,7 +161,7 @@ UsvfsConnector::UsvfsConnector()
}

usvfsClearSkipFileSuffixes();
for (auto& suffix : s.skipFileSuffixes().split(";")) {
for (auto& suffix : s.skipFileSuffixes()) {
if (suffix.isEmpty()) {
continue;
}
@@ -170,11 +170,11 @@ UsvfsConnector::UsvfsConnector()
}

usvfsClearSkipDirectories();
for (auto& dir : s.skipDirectories().split(";")) {
for (auto& dir : s.skipDirectories()) {
std::wstring buf = dir.toStdWString();
usvfsAddSkipDirectory(buf.data());
}

usvfsClearLibraryForceLoads();

m_LogWorker.moveToThread(&m_WorkerThread);
@@ -244,8 +244,8 @@ void UsvfsConnector::updateParams(MOBase::log::Levels logLevel,
const QString& crashDumpsPath,
std::chrono::seconds spawnDelay,
QString executableBlacklist,
const QString& skipFileSuffixes,
const QString& skipDirectories)
const QStringList& skipFileSuffixes,
const QStringList& skipDirectories)
{
using namespace std::chrono;

@@ -267,7 +267,7 @@ void UsvfsConnector::updateParams(MOBase::log::Levels logLevel,
}

usvfsClearSkipFileSuffixes();
for (auto& suffix : skipFileSuffixes.split(";")) {
for (auto& suffix : skipFileSuffixes) {
if (suffix.isEmpty()) {
continue;
}
@@ -276,7 +276,7 @@ void UsvfsConnector::updateParams(MOBase::log::Levels logLevel,
}

usvfsClearSkipDirectories();
for (auto& dir : skipDirectories.split(";")) {
for (auto& dir : skipDirectories) {
std::wstring buf = dir.toStdWString();
usvfsAddSkipDirectory(buf.data());
}
4 changes: 2 additions & 2 deletions src/usvfsconnector.h
Original file line number Diff line number Diff line change
@@ -84,8 +84,8 @@ class UsvfsConnector : public QObject

void updateParams(MOBase::log::Levels logLevel, env::CoreDumpTypes coreDumpType,
const QString& crashDumpsPath, std::chrono::seconds spawnDelay,
QString executableBlacklist, const QString& skipFileSuffixes,
const QString& skipDirectories);
QString executableBlacklist, const QStringList& skipFileSuffixes,
const QStringList& skipDirectories);

void updateForcedLibraries(
const QList<MOBase::ExecutableForcedLoadSetting>& forcedLibraries);

0 comments on commit a62c39d

Please sign in to comment.