mirror of
https://github.com/ModOrganizer2/modorganizer-bsapacker.git
synced 2026-07-27 14:06:14 -07:00
Initial commit
This commit is contained in:
+167
@@ -0,0 +1,167 @@
|
||||
cmake_minimum_required(VERSION 2.8.12)
|
||||
|
||||
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP> $<$<CXX_COMPILER_ID:MSVC>:$<$<CONFIG:RELEASE>:/O2>> $<$<CXX_COMPILER_ID:MSVC>:$<$<CONFIG:RELWITHDEBINFO>:/O2>>)
|
||||
|
||||
set(PROJ_NAME bsa_packer)
|
||||
|
||||
project(${PROJ_NAME})
|
||||
|
||||
set(DEPENDENCIES_DIR CACHE PATH "")
|
||||
|
||||
# hint to find qt in dependencies path
|
||||
list(APPEND CMAKE_PREFIX_PATH ${QT_ROOT}/lib/cmake)
|
||||
|
||||
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake)
|
||||
|
||||
|
||||
# pasted
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
find_package(Qt5 COMPONENTS Core Concurrent Widgets REQUIRED)
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(Boost_USE_MULTITHREADED ON)
|
||||
set(Boost_USE_STATIC_RUNTIME OFF)
|
||||
find_package(Boost REQUIRED)
|
||||
|
||||
# MO projects
|
||||
set(default_project_path "${DEPENDENCIES_DIR}/modorganizer_super")
|
||||
get_filename_component(${default_project_path} ${default_project_path} REALPATH)
|
||||
|
||||
set(project_path "${default_project_path}" CACHE PATH "path to the other mo projects")
|
||||
set(lib_path "${default_project_path}/../../install/libs")
|
||||
|
||||
add_library(${PROJ_NAME} SHARED
|
||||
include/bsapacker/IArchiveAutoService.h
|
||||
include/bsapacker/IArchiveBuilder.h
|
||||
include/bsapacker/IArchiveBuilderFactory.h
|
||||
include/bsapacker/IArchiveBuilderHelper.h
|
||||
include/bsapacker/IArchiveExtensionService.h
|
||||
include/bsapacker/IDummyPluginLogic.h
|
||||
include/bsapacker/IDummyPluginService.h
|
||||
include/bsapacker/IDummyPluginServiceFactory.h
|
||||
include/bsapacker/IEmitsValueChanged.h
|
||||
include/bsapacker/IFileWriterService.h
|
||||
include/bsapacker/IHideLooseAssetService.h
|
||||
include/bsapacker/IModDtoFactory.h
|
||||
include/bsapacker/IPackerDialog.h
|
||||
include/bsapacker/IPackerDialogFactory.h
|
||||
include/bsapacker/IPackerProgressDialog.h
|
||||
include/bsapacker/IPackerProgressDialogFactory.h
|
||||
include/bsapacker/ISettingsService.h
|
||||
|
||||
include/bsapacker/GeneralArchiveBuilder.h
|
||||
include/bsapacker/ModDtoFactory.h
|
||||
include/bsapacker/NullArchiveBuilder.h
|
||||
include/bsapacker/TextureArchiveBuilder.h
|
||||
include/bsapacker/TexturelessArchiveBuilder.h
|
||||
|
||||
src/NexusId.h
|
||||
src/BsaPackerWorker.h
|
||||
src/BsaPackerWorker.cpp
|
||||
|
||||
src/ArchiveAutoService.cpp
|
||||
src/ArchiveBuildDirector.cpp
|
||||
src/ArchiveBuilderFactory.cpp
|
||||
src/ArchiveBuilderHelper.cpp
|
||||
src/ArchiveExtensionService.cpp
|
||||
src/BsaPacker.cpp
|
||||
src/BSArchive.cpp
|
||||
src/BSArchiveAuto.cpp
|
||||
src/BSArchiveEntries.cpp
|
||||
src/DummyPluginLogic.cpp
|
||||
src/DummyPluginServiceFactory.cpp
|
||||
src/Fallout3DummyPluginService.cpp
|
||||
src/Fallout4DummyPluginService.cpp
|
||||
src/FileWriterService.cpp
|
||||
src/GeneralArchiveBuilder.cpp
|
||||
src/HideLooseAssetService.cpp
|
||||
src/ModContext.cpp
|
||||
src/ModDto.cpp
|
||||
src/ModDtoFactory.cpp
|
||||
src/NewVegasDummyPluginService.cpp
|
||||
src/NullArchiveBuilder.cpp
|
||||
src/NullDummyPluginService.cpp
|
||||
src/NullModDto.cpp
|
||||
src/OblivionDummyPluginService.cpp
|
||||
src/PackerDialog.cpp
|
||||
src/PackerDialogFactory.cpp
|
||||
src/PackerProgressDialog.cpp
|
||||
src/PackerProgressDialogFactory.cpp
|
||||
src/SettingsService.cpp
|
||||
src/SkyrimDummyPluginService.cpp
|
||||
src/SkyrimSEDummyPluginService.cpp
|
||||
src/TextureArchiveBuilder.cpp
|
||||
src/TexturelessArchiveBuilder.cpp
|
||||
)
|
||||
|
||||
add_library(BsaPacker::${PROJ_NAME} ALIAS ${PROJ_NAME})
|
||||
|
||||
target_compile_features(${PROJ_NAME} PRIVATE cxx_auto_type)
|
||||
|
||||
target_compile_options(${PROJ_NAME} PRIVATE $<$<CXX_COMPILER_ID:GNU>:-Wall>)
|
||||
|
||||
target_include_directories(${PROJ_NAME}
|
||||
PUBLIC
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
|
||||
$<INSTALL_INTERFACE:include>
|
||||
PRIVATE
|
||||
${Boost_INCLUDE_DIRS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${default_project_path}/uibase/src
|
||||
)
|
||||
|
||||
target_link_directories(${PROJ_NAME}
|
||||
PUBLIC
|
||||
${lib_path}
|
||||
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/lib>
|
||||
${Boost_LIBRARY_DIRS})
|
||||
|
||||
message("Default path is: ${default_project_path}")
|
||||
message("Project path is: ${project_path}")
|
||||
message("Lib path is: ${lib_path}")
|
||||
message("packer path is ${CMAKE_SOURCE_DIR}/include/bsapacker")
|
||||
|
||||
target_link_libraries(${PROJ_NAME}
|
||||
PUBLIC
|
||||
Qt5::Widgets
|
||||
Qt5::Concurrent
|
||||
Qt5::Gui
|
||||
${Boost_LIBRARIES}
|
||||
uibase
|
||||
libbsarch
|
||||
DirectXTex
|
||||
)
|
||||
|
||||
if (MSVC)
|
||||
set_target_properties(${PROJ_NAME} PROPERTIES COMPILE_FLAGS "/std:c++latest")
|
||||
endif()
|
||||
if (MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 4)
|
||||
# 32 bits
|
||||
set_target_properties(${PROJ_NAME} PROPERTIES LINK_FLAGS "/LARGEADDRESSAWARE")
|
||||
endif()
|
||||
|
||||
if (NOT "${OPTIMIZE_COMPILE_FLAGS}" STREQUAL "")
|
||||
set_target_properties(${PROJ_NAME} PROPERTIES COMPILE_FLAGS_RELWITHDEBINFO ${OPTIMIZE_COMPILE_FLAGS})
|
||||
endif()
|
||||
if (NOT "${OPTIMIZE_LINK_FLAGS}" STREQUAL "")
|
||||
set_target_properties(${PROJ_NAME} PROPERTIES LINK_FLAGS_RELWITHDEBINFO ${OPTIMIZE_LINK_FLAGS})
|
||||
endif()
|
||||
|
||||
###############
|
||||
## Installation
|
||||
|
||||
install(TARGETS ${PROJ_NAME}
|
||||
EXPORT ${PROJ_NAME}-targets
|
||||
#ARCHIVE DESTINATION libs
|
||||
RUNTIME DESTINATION bin/plugins)
|
||||
install(FILES $<TARGET_PDB_FILE:${PROJ_NAME}>
|
||||
DESTINATION pdb)
|
||||
install(EXPORT ${PROJ_NAME}-targets
|
||||
FILE BsaPackerTargets.cmake
|
||||
NAMESPACE BsaPacker::
|
||||
DESTINATION libs)
|
||||
|
||||
#add_subdirectory(tests)
|
||||
@@ -0,0 +1,15 @@
|
||||
set(DirectXTex_INCLUDE_DIR ${DirectXTex_DIR}/include)
|
||||
set(DirectXTex_LIBRARY_DIR ${DirectXTex_DIR}/lib)
|
||||
set(DirectXTex_VERSION ${PC_modorganizer_VERSION})
|
||||
|
||||
mark_as_advanced(DirectXTex_FOUND DirectXTex_DIR DirectXTex_INCLUDE_DIR DirectXTex_LIBRARY_DIR DirectXTex_VERSION)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(DirectXTex
|
||||
REQUIRED_VARS DirectXTex_DIR DirectXTex_INCLUDE_DIR DirectXTex_LIBRARY_DIR
|
||||
VERSION_VAR DirectXTex_VERSION
|
||||
)
|
||||
|
||||
if(DirectXTex_FOUND)
|
||||
set(DirectXTex_INCLUDE_DIRS ${modorganizer_INCLUDE_DIR})
|
||||
endif()
|
||||
@@ -0,0 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.5.0)
|
||||
|
||||
project(googletest-download NONE)
|
||||
|
||||
include(ExternalProject)
|
||||
ExternalProject_Add(googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG master
|
||||
SOURCE_DIR "${CMAKE_BINARY_DIR}/googletest-src"
|
||||
BINARY_DIR "${CMAKE_BINARY_DIR}/googletest-build"
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND ""
|
||||
)
|
||||
@@ -0,0 +1,19 @@
|
||||
#ifndef ARCHIVEAUTOSERVICE_H
|
||||
#define ARCHIVEAUTOSERVICE_H
|
||||
|
||||
#include <bsapacker/IModDto.h>
|
||||
#include <bsapacker/IArchiveAutoService.h>
|
||||
#include <qlibbsarch/BSArchiveAuto.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveAutoService : public IArchiveAutoService
|
||||
{
|
||||
public:
|
||||
ArchiveAutoService() = default;
|
||||
~ArchiveAutoService() override = default;
|
||||
void CreateBSA(BSArchiveAuto* archive, const QString& archiveName, bsa_archive_type_e type) const override;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // ARCHIVEAUTOSERVICE_H
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef ARCHIVEBUILDDIRECTOR_H
|
||||
#define ARCHIVEBUILDDIRECTOR_H
|
||||
|
||||
#include "ISettingsService.h"
|
||||
|
||||
#include <bsapacker/IArchiveBuilder.h>
|
||||
#include <bsapacker/IPackerProgressDialogFactory.h>
|
||||
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveBuildDirector
|
||||
{
|
||||
public:
|
||||
explicit ArchiveBuildDirector(
|
||||
const ISettingsService* settingsService,
|
||||
IArchiveBuilder* archiveFileBuildService);
|
||||
~ArchiveBuildDirector() = default;
|
||||
void Construct();
|
||||
|
||||
private:
|
||||
IArchiveBuilder* m_ArchiveFileBuildService = nullptr;
|
||||
const ISettingsService* m_SettingsService = nullptr;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // ARCHIVEBUILDDIRECTOR_H
|
||||
@@ -0,0 +1,27 @@
|
||||
#ifndef ARCHIVEBUILDERFACTORY_H
|
||||
#define ARCHIVEBUILDERFACTORY_H
|
||||
|
||||
|
||||
#include <bsapacker/IArchiveBuilderFactory.h>
|
||||
#include <bsapacker/IArchiveBuilder.h>
|
||||
#include <bsapacker/IArchiveBuilderHelper.h>
|
||||
#include <bsapacker/IModDto.h>
|
||||
#include <libbsarch/libbsarch.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveBuilderFactory : public IArchiveBuilderFactory
|
||||
{
|
||||
public:
|
||||
explicit ArchiveBuilderFactory(const IArchiveBuilderHelper* archiveBuilderHelper);
|
||||
~ArchiveBuilderFactory() override = default;
|
||||
// IArchiveBuilderFactory interface
|
||||
[[nodiscard]] std::vector<bsa_archive_type_e> GetArchiveTypes(const IModDto* modDto) const override;
|
||||
[[nodiscard]] std::unique_ptr<IArchiveBuilder> Create(bsa_archive_type_e archiveType, const IModDto* modDto) const override;
|
||||
|
||||
private:
|
||||
const IArchiveBuilderHelper* m_ArchiveBuilderHelper = nullptr;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // ARCHIVEBUILDERFACTORY_H
|
||||
@@ -0,0 +1,37 @@
|
||||
#ifndef ARCHIVEBUILDERHELPER_H
|
||||
#define ARCHIVEBUILDERHELPER_H
|
||||
|
||||
#include <bsapacker/IArchiveBuilderHelper.h>
|
||||
#include <bsapacker/ISettingsService.h>
|
||||
#include <qlibbsarch/BSArchiveAuto.h>
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <QDir>
|
||||
#include <QObject>
|
||||
#include <QProgressBar>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class ArchiveBuilderHelper : public IArchiveBuilderHelper
|
||||
{
|
||||
public:
|
||||
ArchiveBuilderHelper(const ISettingsService* settingsService);
|
||||
~ArchiveBuilderHelper() override = default;
|
||||
[[nodiscard]] bool isFileIgnorable(const QString&, const QStringList&) const override;
|
||||
[[nodiscard]] bool isIncompressible(const QString&) const override;
|
||||
[[nodiscard]] bool isExtensionBlacklisted(const QString&) const override;
|
||||
[[nodiscard]] uint32_t getFileCount(const QDir&) const override;
|
||||
[[nodiscard]] QStringList getRootDirectoryFilenames(const QDir&) const override;
|
||||
|
||||
const static std::array <QString, 3> INCOMPRESSIBLE_TYPES;
|
||||
//const static std::array <QString, 2> BLACKLIST;
|
||||
|
||||
private:
|
||||
const ISettingsService* m_SettingsService = nullptr;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // ARCHIVEBUILDERHELPER_H
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef GENERALARCHIVEBUILDER_H
|
||||
#define GENERALARCHIVEBUILDER_H
|
||||
|
||||
#include <bsapacker/IArchiveBuilder.h>
|
||||
#include <bsapacker/IArchiveBuilderHelper.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class GeneralArchiveBuilder : public IArchiveBuilder
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(BsaPacker::IEmitsValueChanged)
|
||||
|
||||
public:
|
||||
explicit GeneralArchiveBuilder(const IArchiveBuilderHelper* archiveBuilderHelper, const QDir& rootDir);
|
||||
~GeneralArchiveBuilder() override = default;
|
||||
uint32_t setFiles() override;
|
||||
void setShareData(bool value) override;
|
||||
[[nodiscard]] std::unique_ptr<BSArchiveAuto> getArchive() override;
|
||||
[[nodiscard]] uint32_t getFileCount() const override;
|
||||
|
||||
public Q_SLOTS:
|
||||
void cancel() override;
|
||||
|
||||
Q_SIGNALS:
|
||||
void valueChanged(int) override;
|
||||
|
||||
private:
|
||||
const IArchiveBuilderHelper* m_ArchiveBuilderHelper = nullptr;
|
||||
std::unique_ptr<BSArchiveAuto> m_Archive;
|
||||
bool m_Cancelled;
|
||||
QDir m_RootDirectory;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // GENERALARCHIVEBUILDER_H
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef IARCHIVEAUTOSERVICE_H
|
||||
#define IARCHIVEAUTOSERVICE_H
|
||||
|
||||
#include <qlibbsarch/BSArchiveAuto.h>
|
||||
#include <bsapacker/IModDto.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveAutoService
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveAutoService() = default;
|
||||
virtual void CreateBSA(BSArchiveAuto*, const QString&, bsa_archive_type_e) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IARCHIVEAUTOSERVICE_H
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef IARCHIVEBUILDER_H
|
||||
#define IARCHIVEBUILDER_H
|
||||
|
||||
#include <bsapacker/IEmitsValueChanged.h>
|
||||
#include <qlibbsarch/BSArchiveAuto.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveBuilder : public IEmitsValueChanged
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(BsaPacker::IEmitsValueChanged)
|
||||
|
||||
public:
|
||||
virtual ~IArchiveBuilder() = default;
|
||||
virtual uint32_t setFiles() = 0;
|
||||
virtual void setShareData(bool) = 0;
|
||||
[[nodiscard]] virtual std::unique_ptr<BSArchiveAuto> getArchive() = 0;
|
||||
[[nodiscard]] virtual uint32_t getFileCount() const = 0;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // IARCHIVEBUILDER_H
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef IARCHIVEBUILDERFACTORY_H
|
||||
#define IARCHIVEBUILDERFACTORY_H
|
||||
|
||||
#include <bsapacker/IModDto.h>
|
||||
#include <bsapacker/IArchiveBuilder.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveBuilderFactory
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveBuilderFactory() = default;
|
||||
virtual std::vector<bsa_archive_type_e> GetArchiveTypes(const IModDto* modDto) const = 0;
|
||||
virtual std::unique_ptr<IArchiveBuilder> Create(bsa_archive_type_e archiveType, const IModDto* modDto) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IARCHIVEBUILDERFACTORY_H
|
||||
@@ -0,0 +1,23 @@
|
||||
#ifndef IARCHIVEBUILDERHELPER_H
|
||||
#define IARCHIVEBUILDERHELPER_H
|
||||
|
||||
#include <QDir>
|
||||
#include <QString>
|
||||
#include <QStringList>
|
||||
#include <cstdint>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveBuilderHelper
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveBuilderHelper() = default;
|
||||
[[nodiscard]] virtual bool isFileIgnorable(const QString&, const QStringList&) const = 0;
|
||||
[[nodiscard]] virtual bool isIncompressible(const QString&) const = 0;
|
||||
[[nodiscard]] virtual bool isExtensionBlacklisted(const QString&) const = 0;
|
||||
[[nodiscard]] virtual uint32_t getFileCount(const QDir&) const = 0;
|
||||
[[nodiscard]] virtual QStringList getRootDirectoryFilenames(const QDir&) const = 0;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // IARCHIVEBUILDERHELPER_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef IARCHIVEEXTENSIONSERVICE_H
|
||||
#define IARCHIVEEXTENSIONSERVICE_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IArchiveExtensionService
|
||||
{
|
||||
public:
|
||||
virtual ~IArchiveExtensionService() = default;
|
||||
virtual QString GetFileExtension() const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IARCHIVEEXTENSIONSERVICE_H
|
||||
@@ -0,0 +1,18 @@
|
||||
#ifndef IDUMMYPLUGINLOGIC_H
|
||||
#define IDUMMYPLUGINLOGIC_H
|
||||
|
||||
#include <QString>
|
||||
#include <array>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IDummyPluginLogic
|
||||
{
|
||||
public:
|
||||
virtual ~IDummyPluginLogic() = default;
|
||||
[[nodiscard]] virtual bool canCreateDummyESP(const QString& fileNameNoExtension) const = 0;
|
||||
[[nodiscard]] virtual bool canCreateDummyESL(const QString& fileNameNoExtension) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IDUMMYPLUGINLOGIC_H
|
||||
@@ -0,0 +1,17 @@
|
||||
#ifndef IDUMMYPLUGINSERVICE_H
|
||||
#define IDUMMYPLUGINSERVICE_H
|
||||
|
||||
#include <QString>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IDummyPluginService
|
||||
{
|
||||
public:
|
||||
virtual ~IDummyPluginService() = default;
|
||||
virtual bool CreatePlugin(const QString& modPath,
|
||||
const QString& archiveNameBase) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IDUMMYPLUGINSERVICE_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef IDUMMYPLUGINSERVICEFACTORY_H
|
||||
#define IDUMMYPLUGINSERVICEFACTORY_H
|
||||
|
||||
#include <bsapacker/IDummyPluginService.h>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IDummyPluginServiceFactory
|
||||
{
|
||||
public:
|
||||
virtual ~IDummyPluginServiceFactory() = default;
|
||||
[[nodiscard]] virtual std::unique_ptr<IDummyPluginService> Create() const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IDUMMYPLUGINSERVICEFACTORY_H
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef IEMITSVALUECHANGED_H
|
||||
#define IEMITSVALUECHANGED_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IEmitsValueChanged : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
virtual ~IEmitsValueChanged() = default;
|
||||
|
||||
public Q_SLOTS:
|
||||
virtual void cancel() = 0;
|
||||
|
||||
Q_SIGNALS:
|
||||
virtual void valueChanged(int) = 0;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
Q_DECLARE_INTERFACE(BsaPacker::IEmitsValueChanged, "IEmitsValueChanged");
|
||||
|
||||
#endif // IEMITSVALUECHANGED_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef IFILEWRITERSERVICE_H
|
||||
#define IFILEWRITERSERVICE_H
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IFileWriterService
|
||||
{
|
||||
public:
|
||||
virtual ~IFileWriterService() = default;
|
||||
virtual bool Write(const std::string& path, const char* payload, const uint32_t size) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IFILEWRITERSERVICE_H
|
||||
@@ -0,0 +1,16 @@
|
||||
#ifndef IHIDELOOSEASSETSERVICE_H
|
||||
#define IHIDELOOSEASSETSERVICE_H
|
||||
|
||||
#include <QDir>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IHideLooseAssetService
|
||||
{
|
||||
public:
|
||||
virtual ~IHideLooseAssetService() = default;
|
||||
virtual bool HideLooseAssets(const QDir& modDirectory) const = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif // IHIDELOOSEASSETSERVICE_H
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef IMODCONTEXT_H
|
||||
#define IMODCONTEXT_H
|
||||
|
||||
#include <QDir>
|
||||
#include <QStringList>
|
||||
|
||||
namespace BsaPacker
|
||||
{
|
||||
class IModContext
|
||||
{
|
||||
public:
|
||||
virtual ~IModContext() = default;
|
||||
[[nodiscard]] virtual QString GetAbsoluteModPath(const QString& modName) const = 0;
|
||||
[[nodiscard]] virtual int GetNexusId() const = 0;
|
||||
[[nodiscard]] virtual QStringList GetPlugins(const QDir& modDirectory) const = 0;
|
||||
[[nodiscard]] virtual QStringList GetValidMods() const = 0;
|
||||
};
|
||||
} // namespace BsaPacker
|
||||
|
||||
#endif // IMODCONTEXT_H
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user