示例#1
0
        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;
            }
        }
示例#2
0
        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);
                }
            }
        }
示例#3
0
        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);
        }
示例#4
0
        void AddNewPalette(CodedPalette newPalette)
        {
            var paletteData = new PaletteData(newPalette);

            AllPalettes.Add(paletteData);
            gridViewPalettes.CurrentCell = gridViewPalettes.Rows[AllPalettes.IndexOf(paletteData)].Cells[0];

            HasChanges = true;
        }
示例#5
0
        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);
                }
            }
        }