diff --git a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs index 51419f011d..db133df9b6 100644 --- a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs +++ b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs @@ -28,6 +28,8 @@ namespace DaggerfallWorkshop.Game.UserInterface /// public class FolderBrowser : Panel { + private const string parentDirectory = ".."; + int confirmButtonWidth = 35; int drivePanelWidth = 40; int pathPanelHeight = 12; @@ -45,6 +47,7 @@ public class FolderBrowser : Panel VerticalScrollBar folderScroller = new VerticalScrollBar(); TextLabel pathLabel = new TextLabel(); Button confirmButton = new Button(); + Checkbox showHiddenFilesCheck = new Checkbox(); Vector2 lastSize; Color unselectedColor = new Color(0.8f, 0.8f, 0.8f, 1.0f); @@ -136,6 +139,7 @@ void Setup() Components.Add(folderPanel); Components.Add(pathPanel); Components.Add(confirmButton); + Components.Add(showHiddenFilesCheck); AdjustPanels(); // Setup drive list @@ -164,6 +168,12 @@ void Setup() //folderScroller.OnScrollUp += FolderScroller_OnScrollUp; //folderScroller.OnScrollDown += FolderScroller_OnScrollDown; + showHiddenFilesCheck.Label.Text = TextManager.Instance.GetText("MainMenu", "hiddenFolders"); + showHiddenFilesCheck.Label.TextColor = unselectedColor; + showHiddenFilesCheck.CheckBoxColor = unselectedColor; + showHiddenFilesCheck.IsChecked = false; + showHiddenFilesCheck.OnToggleState += HiddenFileCheck_OnToggleState; + // Setup initial folder conditions RefreshDrives(); RefreshFolders(); @@ -201,6 +211,11 @@ void RefreshFolders() { folders.Clear(); folderList.ClearItems(); + + // Add return path + if (currentPath != drives[driveList.SelectedIndex]) + folderList.AddItem(parentDirectory); + try { string[] directoryList = Directory.GetDirectories(currentPath); @@ -208,7 +223,7 @@ void RefreshFolders() foreach (var directory in directoryList) { DirectoryInfo info = new DirectoryInfo(directory); - if ((info.Attributes & FileAttributes.Hidden) == 0) + if (showHiddenFilesCheck.IsChecked || (info.Attributes & FileAttributes.Hidden) == 0) { string name = Path.GetFileName(directory); folders.Add(name); @@ -280,6 +295,8 @@ void AdjustPanels() confirmButton.Outline.Enabled = true; confirmButton.Label.Text = confirmButtonText; //confirmButton.Label.ShadowPosition = Vector2.zero; + + showHiddenFilesCheck.Position = new Vector2(pathPanel.Position.x, pathPanel.Position.y + pathPanel.Size.y + 4); } void UpdatePathText() @@ -322,7 +339,7 @@ private void FolderList_OnUseSelectedItem() // Get new path string newPath = string.Empty; - if (folderList.SelectedItem == "..") + if (folderList.SelectedItem == parentDirectory) { // Handle return path DirectoryInfo info = new DirectoryInfo(currentPath); @@ -342,13 +359,6 @@ private void FolderList_OnUseSelectedItem() RefreshFolders(); RaisePathChangedEvent(); - // Add return path - if (currentPath != drives[driveList.SelectedIndex]) - folderList.AddItem("..", 0); - - // Update scroller units - folderScroller.TotalUnits = folderList.Count; - UpdatePathText(); } } @@ -371,6 +381,11 @@ private void ConfirmButton_OnMouseClick(BaseScreenComponent sender, Vector2 posi FolderList_OnUseSelectedItem(); } + private void HiddenFileCheck_OnToggleState() + { + RefreshFolders(); + } + #endregion } } diff --git a/Assets/Scripts/Game/UserInterfaceWindows/DaggerfallUnitySetupGameWizard.cs b/Assets/Scripts/Game/UserInterfaceWindows/DaggerfallUnitySetupGameWizard.cs index c67fd12a66..c66794c7e3 100644 --- a/Assets/Scripts/Game/UserInterfaceWindows/DaggerfallUnitySetupGameWizard.cs +++ b/Assets/Scripts/Game/UserInterfaceWindows/DaggerfallUnitySetupGameWizard.cs @@ -244,7 +244,7 @@ void ShowGameFolderStage() // Add help text findArena2Tip = GetText("findArena2Tip"); pathValidated = GetText("pathValidated"); - helpLabel.Position = new Vector2(0, 145); + helpLabel.Position = new Vector2(0, 150); helpLabel.HorizontalAlignment = HorizontalAlignment.Center; helpLabel.ShadowPosition = Vector2.zero; helpLabel.Text = findArena2Tip; diff --git a/Assets/StreamingAssets/Text/MainMenu.txt b/Assets/StreamingAssets/Text/MainMenu.txt index e2ba87c758..1f25054d86 100644 --- a/Assets/StreamingAssets/Text/MainMenu.txt +++ b/Assets/StreamingAssets/Text/MainMenu.txt @@ -45,6 +45,7 @@ missingWoods, it's missing WOODS.WLD missingVideos, it's missing one or more .VID files justNotValid, it does not appear to be valid pathValidated, Great! This looks like a valid Daggerfall folder :) +hiddenFolders, Show Hidden Folders testText, Test okText, OK keepSetting, Keep this setting? Changes will revert in 8 seconds.