Merged name and extension services and incremented version

This commit is contained in:
MF
2020-01-22 21:53:00 +00:00
parent e2801a83f7
commit 06a424178a
10 changed files with 38 additions and 90 deletions
-2
View File
@@ -36,7 +36,6 @@ add_library(${PROJ_NAME} SHARED
include/bsapacker/IArchiveBuilder.h
include/bsapacker/IArchiveBuilderFactory.h
include/bsapacker/IArchiveBuilderHelper.h
include/bsapacker/IArchiveExtensionService.h
include/bsapacker/IArchiveNameService.h
include/bsapacker/IDummyPluginLogic.h
include/bsapacker/IDummyPluginService.h
@@ -63,7 +62,6 @@ add_library(${PROJ_NAME} SHARED
src/ArchiveBuildDirector.cpp
src/ArchiveBuilderFactory.cpp
src/ArchiveBuilderHelper.cpp
src/ArchiveExtensionService.cpp
src/ArchiveNameService.cpp
src/BsaPacker.cpp
src/BSArchive.cpp
@@ -1,16 +0,0 @@
#ifndef IARCHIVEEXTENSIONSERVICE_H
#define IARCHIVEEXTENSIONSERVICE_H
#include <QString>
namespace BsaPacker
{
class IArchiveExtensionService
{
public:
virtual ~IArchiveExtensionService() = default;
virtual QString GetFileExtension() const = 0;
};
}
#endif // IARCHIVEEXTENSIONSERVICE_H
+1
View File
@@ -11,6 +11,7 @@ namespace BsaPacker
{
public:
virtual ~IArchiveNameService() = default;
virtual QString GetFileExtension() const = 0;
virtual QString GetArchiveFullPath(bsa_archive_type_e, const IModDto*) const = 0;
};
}
-28
View File
@@ -1,28 +0,0 @@
#include "ArchiveExtensionService.h"
#include "NexusId.h"
namespace BsaPacker
{
ArchiveExtensionService::ArchiveExtensionService(const IModContext* modContext)
: m_ModContext(modContext)
{
}
QString ArchiveExtensionService::GetFileExtension() const
{
switch (this->m_ModContext->GetNexusId()) {
case NexusId::Morrowind:
case NexusId::Oblivion:
case NexusId::Fallout3:
case NexusId::NewVegas:
case NexusId::Skyrim:
case NexusId::SkyrimSE:
return QStringLiteral(".bsa");
case NexusId::Fallout4:
return QStringLiteral(".ba2");
default:
return QString();
}
}
}
-21
View File
@@ -1,21 +0,0 @@
#ifndef ARCHIVEEXTENSIONSERVICE_H
#define ARCHIVEEXTENSIONSERVICE_H
#include <bsapacker/IArchiveExtensionService.h>
#include <bsapacker/IModContext.h>
namespace BsaPacker
{
class ArchiveExtensionService : public IArchiveExtensionService
{
public:
ArchiveExtensionService(const IModContext* modContext);
~ArchiveExtensionService() override = default;
QString GetFileExtension() const override;
private:
const IModContext* m_ModContext = nullptr;
};
}
#endif // ARCHIVEEXTENSIONSERVICE_H
+24 -5
View File
@@ -1,18 +1,37 @@
#include "ArchiveNameService.h"
#include "NexusId.h"
namespace BsaPacker
{
ArchiveNameService::ArchiveNameService(const IArchiveExtensionService* archiveExtensionService)
: m_ArchiveExtensionService(archiveExtensionService)
ArchiveNameService::ArchiveNameService(const IModContext* modContext)
: m_ModContext(modContext)
{
}
QString ArchiveNameService::GetArchiveFullPath(bsa_archive_type_e type, const IModDto* modDto) const
QString ArchiveNameService::GetFileExtension() const
{
return modDto->Directory() + '/' + modDto->ModName() + this->Infix(type) + this->m_ArchiveExtensionService->GetFileExtension();
switch (this->m_ModContext->GetNexusId()) {
case NexusId::Morrowind:
case NexusId::Oblivion:
case NexusId::Fallout3:
case NexusId::NewVegas:
case NexusId::Skyrim:
case NexusId::SkyrimSE:
return QStringLiteral(".bsa");
case NexusId::Fallout4:
return QStringLiteral(".ba2");
default:
return QString();
}
}
QString ArchiveNameService::Infix(bsa_archive_type_e type) const
QString ArchiveNameService::GetArchiveFullPath(const bsa_archive_type_e type, const IModDto* modDto) const
{
return modDto->Directory() + '/' + modDto->ModForename() + this->Infix(type) + this->GetFileExtension();
}
QString ArchiveNameService::Infix(const bsa_archive_type_e type) const
{
switch (type) {
case baFO4:
+4 -3
View File
@@ -2,18 +2,19 @@
#define ARCHIVENAMESERVICE_H
#include <bsapacker/IArchiveNameService.h>
#include <bsapacker/IArchiveExtensionService.h>
#include <bsapacker/IModContext.h>
namespace BsaPacker
{
class ArchiveNameService : public IArchiveNameService
{
public:
ArchiveNameService(const IArchiveExtensionService* archiveExtensionService);
ArchiveNameService(const IModContext* modContext);
~ArchiveNameService() override = default;
QString GetArchiveFullPath(bsa_archive_type_e type, const IModDto* modDto) const override;
QString GetFileExtension() const override;
private:
const IArchiveExtensionService* m_ArchiveExtensionService = nullptr;
const IModContext* m_ModContext = nullptr;
QString Infix(bsa_archive_type_e type) const;
};
+3 -9
View File
@@ -4,7 +4,6 @@
#include <bsapacker/ArchiveBuildDirector.h>
#include <bsapacker/ArchiveBuilderHelper.h>
#include <bsapacker/ArchiveBuilderFactory.h>
#include "ArchiveExtensionService.h"
#include <ArchiveNameService.h>
#include "BsaPackerWorker.h"
#include "DummyPluginLogic.h"
@@ -48,14 +47,11 @@ namespace BsaPacker
MOBase::VersionInfo Bsa_Packer::version() const
{
return MOBase::VersionInfo(1, 0, 1, MOBase::VersionInfo::RELEASE_FINAL);
return MOBase::VersionInfo(1, 0, 2, MOBase::VersionInfo::RELEASE_FINAL);
}
bool Bsa_Packer::isActive() const
{
if (this->m_Organizer->managedGame()->gameShortName() == "Fallout4") {
return false;
}
return this->m_SettingsService->GetPluginSetting(SettingsService::SETTING_ENABLED).toBool();
}
@@ -90,11 +86,9 @@ namespace BsaPacker
di::bind<IArchiveAutoService>.to<ArchiveAutoService>(),
di::bind<IDummyPluginServiceFactory>.to<DummyPluginServiceFactory>(),
di::bind<IFileWriterService>.to<FileWriterService>(),
di::bind<IArchiveExtensionService>.to<ArchiveExtensionService>(),
di::bind<IArchiveNameService>.to<ArchiveNameService>(),
di::bind<IDummyPluginLogic>.to<DummyPluginLogic>(),
di::bind<IHideLooseAssetService>.to<HideLooseAssetService>(),
// merge ArchiveExtensionService and ArchiveNameService
di::bind<IArchiveNameService>.to<ArchiveNameService>()
di::bind<IHideLooseAssetService>.to<HideLooseAssetService>()
);
BsaPackerWorker worker = di::create<BsaPackerWorker>(injector);
+3 -3
View File
@@ -8,9 +8,9 @@ namespace BsaPacker
{
DummyPluginLogic::DummyPluginLogic(
const ISettingsService* settingsService,
const IArchiveExtensionService* archiveExtensionService)
const IArchiveNameService* archiveNameService)
: m_SettingsService(settingsService),
m_ArchiveExtensionService(archiveExtensionService)
m_ArchiveNameService(archiveNameService)
{
}
@@ -37,7 +37,7 @@ namespace BsaPacker
bool DummyPluginLogic::canCreateDummy(const std::array<QString, SIZE>& fileList,
const QString& fileNameNoExtension) const
{
const QFileInfo& archive(fileNameNoExtension + this->m_ArchiveExtensionService->GetFileExtension());
const QFileInfo& archive(fileNameNoExtension + this->m_ArchiveNameService->GetFileExtension());
if (!(archive.exists() && archive.isFile())) {
return false;
}
+3 -3
View File
@@ -3,7 +3,7 @@
#include <bsapacker/IDummyPluginLogic.h>
#include <bsapacker/ISettingsService.h>
#include <bsapacker/IArchiveExtensionService.h>
#include <bsapacker/IArchiveNameService.h>
namespace BsaPacker
{
@@ -11,7 +11,7 @@ namespace BsaPacker
{
public:
DummyPluginLogic(const ISettingsService* settingsService,
const IArchiveExtensionService* archiveExtensionService);
const IArchiveNameService* archiveNameService);
~DummyPluginLogic() override = default;
[[nodiscard]] bool canCreateDummyESP(const QString& fileNameNoExtension) const override;
[[nodiscard]] bool canCreateDummyESL(const QString& fileNameNoExtension) const override;
@@ -22,7 +22,7 @@ namespace BsaPacker
const QString& fileNameNoExtension) const;
const ISettingsService* m_SettingsService = nullptr;
const IArchiveExtensionService* m_ArchiveExtensionService = nullptr;
const IArchiveNameService* m_ArchiveNameService = nullptr;
};
}