diff --git a/ProjectCleaner.uplugin b/ProjectCleaner.uplugin index 41ed8631..b9b99469 100644 --- a/ProjectCleaner.uplugin +++ b/ProjectCleaner.uplugin @@ -1,9 +1,9 @@ { "FileVersion": 3, "Version": 1, - "VersionName": "1.6.0", + "VersionName": "1.7.0", "FriendlyName": "ProjectCleaner", - "Description": "UE4 plugin for managing unused assets in project.", + "Description": "Unreal engine plugin for managing all unused assets and empty folders in project", "Category": "ProjectManagementTools", "CreatedBy": "Ashot Barkhudaryan", "CreatedByURL": "https://github.com/ashe23", diff --git a/Source/ProjectCleaner/Private/Core/ProjectCleanerManager.cpp b/Source/ProjectCleaner/Private/Core/ProjectCleanerManager.cpp index 6807d511..3315d711 100644 --- a/Source/ProjectCleaner/Private/Core/ProjectCleanerManager.cpp +++ b/Source/ProjectCleaner/Private/Core/ProjectCleanerManager.cpp @@ -17,6 +17,8 @@ FProjectCleanerManager::FProjectCleanerManager() CleanerConfigs = GetMutableDefault(); ensure(CleanerConfigs); + + CleanerConfigs->LoadConfig(); } FProjectCleanerManager::~FProjectCleanerManager() @@ -40,6 +42,8 @@ void FProjectCleanerManager::Update() { OnCleanerManagerUpdated.Execute(); } + + CleanerConfigs->PostEditChange(); } void FProjectCleanerManager::ExcludeSelectedAssets(const TArray& Assets) diff --git a/Source/ProjectCleaner/Public/StructsContainer.h b/Source/ProjectCleaner/Public/StructsContainer.h index 1d3bf59b..60e29168 100644 --- a/Source/ProjectCleaner/Public/StructsContainer.h +++ b/Source/ProjectCleaner/Public/StructsContainer.h @@ -23,22 +23,29 @@ class ICleanerUIActions virtual int32 DeleteEmptyFolders() = 0; }; -UCLASS(Transient) +UCLASS(Transient, Config=EditorPerProjectUserSettings) class UCleanerConfigs : public UObject { GENERATED_BODY() public: - UPROPERTY(DisplayName = "Scan Developer Content", EditAnywhere, Category = "CleanerConfigs", meta = (ToolTip = "Scan assets in 'Developers' folder. By Default false")) + UPROPERTY(DisplayName = "Scan Developer Content", EditAnywhere, Config, Category = "CleanerConfigs", meta = (ToolTip = "Scan assets in 'Developers' folder. By Default false")) bool bScanDeveloperContents = false; - UPROPERTY(DisplayName = "Delete Empty Folders After Assets Deleted", EditAnywhere, Category = "CleanerConfigs") + UPROPERTY(DisplayName = "Delete Empty Folders After Assets Deleted", EditAnywhere, Config, Category = "CleanerConfigs") bool bAutomaticallyDeleteEmptyFolders = true; - UPROPERTY(DisplayName = "Paths", EditAnywhere, Category = "CleanerConfigs|ExcludeOptions", meta = (ContentDir)) + UPROPERTY(DisplayName = "Paths", EditAnywhere, Config, Category = "CleanerConfigs|ExcludeOptions", meta = (ContentDir)) TArray Paths; - UPROPERTY(DisplayName = "Classes", EditAnywhere, Category = "CleanerConfigs|ExcludeOptions") + UPROPERTY(DisplayName = "Classes", EditAnywhere, Config, Category = "CleanerConfigs|ExcludeOptions") TArray Classes; + + virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override + { + Super::PostEditChangeProperty(PropertyChangedEvent); + + SaveConfig(); + } }; UCLASS(Transient)