public void GenerateTreeview(string FolderPath) { PresetsTreeView.Nodes.Clear(); Stack <TreeNode> stack = new Stack <TreeNode>(); DirectoryInfo rootDirectory = new DirectoryInfo(FolderPath); TreeNode node = new TreeNode(rootDirectory.Name) { Tag = rootDirectory, ImageIndex = 1, SelectedImageIndex = 1 }; stack.Push(node); while (stack.Count > 0) { TreeNode currentNode = stack.Pop(); DirectoryInfo directoryInfo = (DirectoryInfo)currentNode.Tag; DirectoryInfo[] directories = directoryInfo.GetDirectories(); foreach (DirectoryInfo directory in directories) { TreeNode childDirectoryNode = new TreeNode(directory.Name) { Tag = directory, ImageIndex = 1, SelectedImageIndex = 1 }; currentNode.Nodes.Add(childDirectoryNode); stack.Push(childDirectoryNode); } FileInfo[] files = directoryInfo.GetFiles(); foreach (FileInfo file in files) { switch (file.Extension) { case ".lcpp": try { LCPP CurrentPreset = new LCPP(file.FullName); currentNode.Nodes.Add(new TreeNode($"\"{CurrentPreset.Name}\" by {CurrentPreset.Creator} ({file.Name})") { Tag = file, ImageIndex = 0, SelectedImageIndex = 0 }); } catch (Exception e) { Console.WriteLine($"Error Loading {file.Name}\n{e.Message}"); Console.WriteLine(); Console.WriteLine("Skipping..."); } break; case ".lcpb": break; } } } PresetsTreeView.Nodes.Add(node); PresetsTreeView.ExpandAll(); Program.PresetCreatorNeedsReload = false; }
private void SavePresetButton_Click(object sender, EventArgs e) { FilenameTextBox.Text = FilenameTextBox.Text.Replace(".lcpp", ""); if (FilenameTextBox.Text.Length == 0) { Console.WriteLine("File name is empty!\nPlease give a name to the file"); return; } if (PresetsTreeView.SelectedNode?.Tag is FileInfo fi) { if (MessageBox.Show("Will you overwrite the existing file?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { LCPP OutFile = new LCPP() { Name = PresetNameTextBox.Text, Creator = PresetCreatorTextBox.Text }; for (int i = 0; i < Cameras.Count; i++) { OutFile.Add(Cameras[i].Key); } OutFile.Save(fi.FullName, Properties.Settings.Default.IsCompressPresets); Console.WriteLine("Preset Saved!"); } } else if (PresetsTreeView.SelectedNode?.Tag is DirectoryInfo di) { if (di.GetFiles().Any(O => O.Name.Equals(FilenameTextBox.Text + ".lcpp"))) { if (MessageBox.Show("Will you overwrite the existing file?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } } LCPP OutFile = new LCPP() { Name = PresetNameTextBox.Text, Creator = PresetCreatorTextBox.Text }; for (int i = 0; i < Cameras.Count; i++) { OutFile.Add(Cameras[i].Key); } OutFile.Save(Path.Combine(di.FullName, FilenameTextBox.Text + ".lcpp"), Properties.Settings.Default.IsCompressPresets); Console.WriteLine("Preset Saved!"); } GenerateTreeview(Program.PresetPath); Program.PresetSelectorNeedsReload = true; }
/// <summary> /// Creates a backup....I can't find where to put this to make it actually helpful... /// </summary> /// <param name="Cameras"><see cref="CameraEditorForm.Cameras"/></param> public static void CreateBackup(BCAM Cameras) { LCPP Backup = new LCPP(); for (int i = 0; i < Cameras.EntryCount; i++) { Backup.Add(Cameras[i]); } Backup.Creator = "LCP Backup Code"; string date = DateTime.Now.ToString("MMMM dd yyyy | h:m:s tt"); Backup.Name = "LCP Backup " + date; Backup.Save(Path.Combine(PresetPath, $"BACKUP-{date}.lcpp"), false); }
private void SelectButton_Click(object sender, EventArgs e) { if (((CameraEditorForm)ParentForm).Cameras == null) { Console.WriteLine(Program.ConsoleHalfSplitter); Console.WriteLine("Failed to add the preset!\nNo camera file is active"); Console.WriteLine(Program.ConsoleHalfSplitter); return; } try { string full = ((FileInfo)PresetsTreeView.SelectedNode.Tag).FullName; if (!File.Exists(full)) { PresetsTreeView.SelectedNode.Remove(); throw new FileNotFoundException($"Could not find file '{full}'."); } Console.WriteLine("Loading preset..."); LCPP CurrentPreset = new LCPP(full); for (int i = 0; i < CurrentPreset.Count; i++) { BCAMEntry entry = new BCAMEntry(); entry.FromClipboard(CurrentPreset[i]); ((CameraEditorForm)ParentForm).AddCamera(entry); Console.Write($"\r{Math.Min(((float)(i + 1) / (float)CurrentPreset.Count) * 100.0f, 100.0f)}% "); } Console.WriteLine(); Console.WriteLine("Preset loaded successfully!"); if (CurrentPreset.Count == 0) { Console.WriteLine("(Though the preset has no cameras...)"); } } catch (Exception ex) { Console.WriteLine(Program.ConsoleHalfSplitter); Console.WriteLine("Preset Failed to load!\n" + ex.GetType().FullName + ": " + ex.Message); Console.WriteLine(Program.ConsoleHalfSplitter); } }