ExtContentBrowserSettings.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. // Copyright 2017-2021 marynate. All Rights Reserved.
  2. #pragma once
  3. #include "ExtContentBrowserSettings.h"
  4. #include "ExtContentBrowser.h"
  5. #include "ExtAssetData.h"
  6. #include "HAL/FileManager.h"
  7. #include "Misc/Paths.h"
  8. #include "Modules/ModuleManager.h"
  9. #include "Misc/PackageName.h"
  10. #include "Model.h"
  11. #include "EngineGlobals.h"
  12. #include "UnrealWidget.h"
  13. #include "EditorModeManager.h"
  14. #include "UnrealEdMisc.h"
  15. #include "CrashReporterSettings.h"
  16. #include "Misc/ConfigCacheIni.h" // for FConfigCacheIni::GetString()
  17. /////////////////////////////////////////////////////////////
  18. // UExtContentBrowserSettings implementation
  19. //
  20. UExtContentBrowserSettings::FSettingChangedEvent UExtContentBrowserSettings::SettingChangedEvent;
  21. UExtContentBrowserSettings::UExtContentBrowserSettings(const FObjectInitializer& ObjectInitializer)
  22. : Super(ObjectInitializer)
  23. , NumObjectsToLoadBeforeWarning(0)
  24. , bOpenSourcesPanelByDefault(true)
  25. , SearchAndFilterRecursively(true)
  26. , UseStraightLineInDependencyViewer(true)
  27. , ShowDependencyViewerUnderAssetView(false)
  28. , NumObjectsInRecentList(10)
  29. , bShowFullCollectionNameInToolTip(true)
  30. {
  31. ResetCacheSettings();
  32. ResetThumbnailPoolSettings();
  33. ResetImportSettings();
  34. ResetExportSettings();
  35. ResetViewSettings();
  36. CommonNonContentFolders = {
  37. TEXT("Binaries"),
  38. TEXT("Config"),
  39. TEXT("DerivedDataCache"),
  40. TEXT("Intermediate"),
  41. TEXT("Resources"),
  42. TEXT("Saved"),
  43. TEXT("Source")
  44. };
  45. ExternalContentFolders = {
  46. TEXT("__ExternalActors__"),
  47. TEXT("__ExternalObjects__")
  48. };
  49. }
  50. void UExtContentBrowserSettings::ResetCacheSettings()
  51. {
  52. bCacheMode = false;
  53. CacheModeBorderColor = FLinearColor(1.0f, 0.8f, 0.f, .6f);
  54. bAutoSaveCacheOnExit = true;
  55. bAutoSaveCacheOnSwitchToCacheMode = false;
  56. bKeepCachedAssetsWhenRootRemoved = true;
  57. bShowCacheStatusBarInLiveMode = true;
  58. CacheFilePath.FilePath = FPaths::ProjectSavedDir() / "UAssetBrowser.cachedb";
  59. }
  60. void UExtContentBrowserSettings::ResetThumbnailPoolSettings()
  61. {
  62. #if ECB_WIP_OBJECT_THUMB_POOL
  63. bUseThumbnailPool = true;
  64. #else
  65. bUseThumbnailPool = false;
  66. #endif
  67. NumThumbnailsInPool = 1024;
  68. }
  69. void UExtContentBrowserSettings::ResetImportSettings()
  70. {
  71. bSkipImportIfAnyDependencyMissing = true;
  72. bImportOverwriteExistingFiles = false;
  73. bRollbackImportIfFailed = true;
  74. bImportSyncAssetsInContentBrowser = true;
  75. bImportSyncExistingAssets = true;
  76. bLoadAssetAfterImport = true;
  77. bAddImportedAssetsToCollection = false;
  78. bUniqueCollectionNameForEachImportSession = false;
  79. DefaultImportedUAssetCollectionName = FExtAssetContants::DefaultImportedUAssetCollectionName;
  80. bImportToPluginFolder = false;
  81. bWarnBeforeImportToPluginFolder = true;
  82. ImportToPluginName = NAME_None;
  83. bImportFolderColor = false;
  84. bOverrideExistingFolderColor = false;
  85. bImportIgnoreSoftReferencesError = true;
  86. }
  87. void UExtContentBrowserSettings::ResetExportSettings()
  88. {
  89. bSkipExportIfAnyDependencyMissing = false;
  90. bExportIgnoreSoftReferencesError = true;
  91. bExportOverwriteExistingFiles = true;
  92. bOpenFolderAfterExport = true;
  93. }
  94. void UExtContentBrowserSettings::ResetViewSettings()
  95. {
  96. DisplayFolders = true;
  97. DisplayEmptyFolders = true;
  98. DisplayAssetTooltip = true;
  99. DisplayEngineVersionOverlay = false;
  100. #if ECB_FEA_VALIDATE_OVERLAY
  101. DisplayValidationStatusOverlay = true;
  102. #else
  103. DisplayValidationStatusOverlay = false;
  104. #endif
  105. #if ECB_WIP_CONTENT_TYPE_OVERLAY
  106. DisplayContentTypeOverlay = false;
  107. #else
  108. DisplayContentTypeOverlay = false;
  109. #endif
  110. DisplayInvalidAssets = false;
  111. DisplayToolbarButton = true;
  112. bIgnoreFoldersStartWithDot = true;
  113. bIgnoreCommonNonContentFolders = true;
  114. bIgnoreExternalContentFolders = true;
  115. bIgnoreMoreFolders = false;
  116. }
  117. void UExtContentBrowserSettings::PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent)
  118. {
  119. Super::PostEditChangeProperty(PropertyChangedEvent);
  120. const FName Name = (PropertyChangedEvent.Property != nullptr)
  121. ? PropertyChangedEvent.Property->GetFName()
  122. : NAME_None;
  123. if (!FUnrealEdMisc::Get().IsDeletePreferences())
  124. {
  125. SaveConfig();
  126. }
  127. SettingChangedEvent.Broadcast(Name);
  128. }