private void SetupPalettes() { PaletteManager Manager = PaletteManager.Instance(); Manager.Reload(); Manager.AutoConfig(_World != null ? _World.Path : "", _SelectedRenderer.RendererName); dgPalettes.Rows.Clear(); foreach (PaletteFile File in Manager.AllPalettes) { DataGridViewRow Row = dgPalettes.Rows[dgPalettes.Rows.Add(File.Selected, File.Name, File.Version)]; Row.Tag = File; if (File.Version != String.Empty) { Row.Cells[1].ToolTipText = string.Format("{0} v{1} by {2}\r\n{3}", File.Name, File.Version, File.Author, File.Description); } else { Row.Cells[1].ToolTipText = string.Format("{0} by {1}\r\n{2}", File.Name, File.Author, File.Description); } } if (chkTrackChanges.Checked && _PaletteWatcher == null) { // ReSharper disable once AssignNullToNotNullAttribute // *** Safe to assume the EXE file isn't going to have a NULL path. _PaletteWatcher = new FileSystemWatcher(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)) { EnableRaisingEvents = true, IncludeSubdirectories = true, Filter = "*.pal", NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.DirectoryName }; _PaletteWatcher.Changed += PaletteFilesUpdated; } }