diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2019-10-10 06:12:07 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-10 06:12:07 -0400 |
| commit | 168fc950f9b15ce89084316d96a1f613a12e3013 (patch) | |
| tree | 73b1eb1afd04830e65c25060f1ce4763db98b642 /src/modinfo.cpp | |
| parent | 0f5ecb8b78b86f309be3ef1902dbf4ee51738fc4 (diff) | |
| parent | 4d3495b3fb00b644c57e773bbcdbfb2eee7c0ea6 (diff) | |
Merge pull request #863 from isanae/executables-fixes
Executables fixes
Diffstat (limited to 'src/modinfo.cpp')
| -rw-r--r-- | src/modinfo.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp index e3daa4fd..6e048bfb 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -61,17 +61,32 @@ bool ModInfo::ByName(const ModInfo::Ptr &LHS, const ModInfo::Ptr &RHS) return QString::compare(LHS->name(), RHS->name(), Qt::CaseInsensitive) < 0; } +bool ModInfo::isSeparatorName(const QString& name) +{ + static QRegExp separatorExp(".*_separator"); + return separatorExp.exactMatch(name); +} + +bool ModInfo::isBackupName(const QString& name) +{ + static QRegExp backupExp(".*backup[0-9]*"); + return backupExp.exactMatch(name); +} + +bool ModInfo::isRegularName(const QString& name) +{ + return !isSeparatorName(name) && !isBackupName(name); +} + ModInfo::Ptr ModInfo::createFrom(PluginContainer *pluginContainer, const MOBase::IPluginGame *game, const QDir &dir, DirectoryEntry **directoryStructure) { QMutexLocker locker(&s_Mutex); - // int id = s_NextID++; - static QRegExp backupExp(".*backup[0-9]*"); - static QRegExp separatorExp(".*_separator"); ModInfo::Ptr result; - if (backupExp.exactMatch(dir.dirName())) { + + if (isBackupName(dir.dirName())) { result = ModInfo::Ptr(new ModInfoBackup(pluginContainer, game, dir, directoryStructure)); - } else if(separatorExp.exactMatch(dir.dirName())){ + } else if (isSeparatorName(dir.dirName())) { result = Ptr(new ModInfoSeparator(pluginContainer, game, dir, directoryStructure)); } else { result = ModInfo::Ptr(new ModInfoRegular(pluginContainer, game, dir, directoryStructure)); |
