1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
#include "DummyPluginLogic.h"
#include <QFileInfo>
#include <array>
#include "SettingsService.h"
namespace BsaPacker
{
DummyPluginLogic::DummyPluginLogic(
const ISettingsService* settingsService,
const IArchiveNameService* archiveNameService)
: m_SettingsService(settingsService),
m_ArchiveNameService(archiveNameService)
{
}
bool DummyPluginLogic::canCreateDummyESP(const QString& fileNameNoExtension, const bsa_archive_type_e type) const
{
const std::array<QString, 2>& fileList = {
fileNameNoExtension + ".esm",
fileNameNoExtension + ".esp"
};
return this->canCreateDummy(fileList, fileNameNoExtension, type);
}
bool DummyPluginLogic::canCreateDummyESL(const QString& fileNameNoExtension, const bsa_archive_type_e type) const
{
const std::array<QString, 3>& fileList = {
fileNameNoExtension + ".esm",
fileNameNoExtension + ".esp",
fileNameNoExtension + ".esl"
};
return this->canCreateDummy(fileList, fileNameNoExtension, type);
}
template<std::size_t SIZE>
bool DummyPluginLogic::canCreateDummy(const std::array<QString, SIZE>& fileList,
const QString& fileNameNoExtension,
const bsa_archive_type_e type) const
{
const QFileInfo archive(fileNameNoExtension + this->m_ArchiveNameService->Infix(type) + this->m_ArchiveNameService->GetFileExtension());
if (!(archive.exists() && archive.isFile())) {
return false;
}
if (!this->m_SettingsService->GetPluginSetting(SettingsService::SETTING_CREATE_PLUGINS).toBool()) {
return false;
}
for (const QString& info : fileList) {
const QFileInfo fileInfo(info);
if (fileInfo.exists() && fileInfo.isFile()) {
return false;
}
}
return true;
}
}
|