void buttonDeletePalette_Click(object sender, EventArgs e) { if (MessageBox.Show(Resources.QuestionDeletePalette, Resources.CaptionDeletePalette, MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } var paletteData = gridViewPalettes.CurrentRow?.DataBoundItem as PaletteData; var selectedPalette = paletteData?.Palette; if (selectedPalette != null && !selectedPalette.IsSystem) { if (File.Exists(selectedPalette.FileName)) { try { File.Delete(selectedPalette.FileName); } catch (Exception ex) { MessageBox.Show(Resources.ErrorCannotDeletePaletteFile + Environment.NewLine + ex.Message); return; } } AllPalettes.AllowRemove = true; AllPalettes.Remove(paletteData); AllPalettes.AllowRemove = false; HasChanges = true; } }
void buttonAddPalette_Click(object sender, EventArgs e) { using (var inputDialog = new InputDialog(Resources.QueryEnterNewPaletteName)) { if (inputDialog.ShowDialog(this) == DialogResult.OK) { var newName = inputDialog.Answer.Trim(); if (string.IsNullOrEmpty(newName)) { return; } if (AllPalettes.Any(p => p.PaletteName.Equals(newName, StringComparison.CurrentCultureIgnoreCase))) { MessageBox.Show(Resources.ErrorSelectedPaletteNameAlreadyUsed); return; } var palette = new CodedPalette { Name = newName, IsSystem = false, FileName = Path.Combine(Settings.Default.UserPalettesLocationSafe, newName + SAEResources.ThreadFileExtension) }; AddNewPalette(palette); } } }
bool SaveAll() { HasChanges = false; foreach (var paletteData in AllPalettes.Where(p => !p.IsSystem)) { var palette = paletteData.Palette; if (string.IsNullOrEmpty(palette.FileName)) { continue; } try { using (var stream = new FileStream(palette.FileName, FileMode.Create)) using (var writer = XmlWriter.Create(stream)) { palette.WriteToXml(writer); } } catch (Exception ex) { MessageBox.Show(Resources.ErrorCannotSaveFile + Environment.NewLine + ex.Message); HasChanges = true; } } return(!HasChanges); }
void AddNewPalette(CodedPalette newPalette) { var paletteData = new PaletteData(newPalette); AllPalettes.Add(paletteData); gridViewPalettes.CurrentCell = gridViewPalettes.Rows[AllPalettes.IndexOf(paletteData)].Cells[0]; HasChanges = true; }
void buttonCopyPalette_Click(object sender, EventArgs e) { var paletteData = gridViewPalettes.CurrentRow?.DataBoundItem as PaletteData; var selectedPalette = paletteData?.Palette; if (selectedPalette == null) { return; } using (var inputDialog = new InputDialog(Resources.QueryEnterNewPaletteName)) { if (inputDialog.ShowDialog(this) == DialogResult.OK) { var newName = inputDialog.Answer.Trim(); if (string.IsNullOrEmpty(newName)) { return; } if (AllPalettes.Any(p => p.PaletteName.Equals(newName, StringComparison.CurrentCultureIgnoreCase))) { MessageBox.Show(Resources.ErrorSelectedPaletteNameAlreadyUsed); return; } var newPalette = selectedPalette.Clone(); newPalette.Name = newName; newPalette.IsSystem = false; newPalette.FileName = Path.Combine(Settings.Default.UserPalettesLocationSafe, newName + SAEResources.ThreadFileExtension); AddNewPalette(newPalette); } } }