feat: complete legacy parity and modernize operator UI
This commit is contained in:
@@ -137,9 +137,11 @@ public sealed partial class MainWindow
|
||||
},
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(kind))
|
||||
};
|
||||
SaveOperatorSettings(
|
||||
next,
|
||||
$"{OperatorFolderLabel(kind)} 폴더를 저장했습니다. 앱을 다시 시작하면 적용됩니다.");
|
||||
var savedMessage = kind == LegacyOperatorFolderKind.Design &&
|
||||
validated.MissingOptionalExternalAssetCount > 0
|
||||
? $"디자인 폴더를 저장했습니다. 외부 영상 {validated.MissingOptionalExternalAssetCount}개가 없어 관련 장면만 제한됩니다. 앱을 다시 시작하면 적용됩니다."
|
||||
: $"{OperatorFolderLabel(kind)} 폴더를 저장했습니다. 앱을 다시 시작하면 적용됩니다.";
|
||||
SaveOperatorSettings(next, savedMessage);
|
||||
}
|
||||
catch (OperationCanceledException) when (cancellationToken.IsCancellationRequested)
|
||||
{
|
||||
@@ -251,7 +253,7 @@ public sealed partial class MainWindow
|
||||
LegacyOperatorSettingsFolderKind.Scene,
|
||||
_operatorSettings.SceneDirectory,
|
||||
"앱 기본 디자인 폴더",
|
||||
"필수 장면 확인됨");
|
||||
"활성 장면·기본 자산 확인됨");
|
||||
_resourceFolderSnapshot = CreateOperatorFolderSnapshot(
|
||||
LegacyOperatorSettingsFolderKind.Resource,
|
||||
_operatorSettings.ResourceDirectory,
|
||||
@@ -290,8 +292,9 @@ public sealed partial class MainWindow
|
||||
!LegacyOperatorFolderValidator.TryValidate(
|
||||
kind,
|
||||
defaultPath,
|
||||
out _,
|
||||
out _))
|
||||
out var defaultFolder,
|
||||
out _) ||
|
||||
defaultFolder is null)
|
||||
{
|
||||
return new LegacyOperatorFolderSnapshot(
|
||||
defaultDisplay,
|
||||
@@ -304,7 +307,7 @@ public sealed partial class MainWindow
|
||||
defaultDisplay,
|
||||
IsCustom: false,
|
||||
IsValid: true,
|
||||
validStatus);
|
||||
FolderStatus(kind, defaultFolder, validStatus));
|
||||
}
|
||||
|
||||
var validation = LegacyOperatorFolderValidator.Validate(kind, configuredPath);
|
||||
@@ -320,7 +323,7 @@ public sealed partial class MainWindow
|
||||
var status = kind == LegacyOperatorSettingsFolderKind.Resource &&
|
||||
validation.Folder.DatabaseIniDetected
|
||||
? "UI·DB 설정 검증됨"
|
||||
: validStatus;
|
||||
: FolderStatus(kind, validation.Folder, validStatus);
|
||||
return new LegacyOperatorFolderSnapshot(
|
||||
validation.Folder.AbbreviatedPath,
|
||||
IsCustom: true,
|
||||
@@ -328,6 +331,15 @@ public sealed partial class MainWindow
|
||||
status);
|
||||
}
|
||||
|
||||
private static string FolderStatus(
|
||||
LegacyOperatorSettingsFolderKind kind,
|
||||
LegacyOperatorValidatedFolder folder,
|
||||
string validStatus) =>
|
||||
kind == LegacyOperatorSettingsFolderKind.Scene &&
|
||||
folder.MissingOptionalExternalAssetCount > 0
|
||||
? $"핵심 자산 확인됨 · 외부 영상 {folder.MissingOptionalExternalAssetCount}개 제외"
|
||||
: validStatus;
|
||||
|
||||
private LegacyOperatorSettingsSnapshot CreateOperatorSettingsSnapshot() => new(
|
||||
Volatile.Read(ref _operatorSettingsRevision),
|
||||
_designFolderSnapshot,
|
||||
|
||||
Reference in New Issue
Block a user