From 59a7dbe73061c8a1f219b9723c9e62ec2ffc9f45 Mon Sep 17 00:00:00 2001 From: kaboissonneault Date: Wed, 14 Feb 2024 18:06:41 -0500 Subject: [PATCH 1/2] Added checkbox to show hidden folders during Daggerfall installation setup --- .../Scripts/Game/UserInterface/FolderBrowser.cs | 17 ++++++++++++++++- .../DaggerfallUnitySetupGameWizard.cs | 2 +- Assets/StreamingAssets/Text/MainMenu.txt | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs index 51419f011d..6eb38ecedd 100644 --- a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs +++ b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs @@ -45,6 +45,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 +137,7 @@ void Setup() Components.Add(folderPanel); Components.Add(pathPanel); Components.Add(confirmButton); + Components.Add(showHiddenFilesCheck); AdjustPanels(); // Setup drive list @@ -164,6 +166,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(); @@ -208,7 +216,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 +288,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() @@ -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. From 1bdb8de54766355e51beee02153dc629873e8d3e Mon Sep 17 00:00:00 2001 From: kaboissonneault Date: Sun, 31 Mar 2024 09:57:25 -0400 Subject: [PATCH 2/2] Fixed ".." option not appearing after "Show Hidden Files" refresh folder --- .../Scripts/Game/UserInterface/FolderBrowser.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Assets/Scripts/Game/UserInterface/FolderBrowser.cs b/Assets/Scripts/Game/UserInterface/FolderBrowser.cs index 6eb38ecedd..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; @@ -209,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); @@ -332,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); @@ -352,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(); } }