예제 #1
0
        /// <summary>
        /// Resets the project and GUI to a clean state, using the given project (from loading) or
        /// creating a new project if null. Does not reset save location as it's expected to be
        /// set before or after this call.
        /// </summary>
        private void ClearProject(TexturePackProject proj)
        {
            guidCounter = 0;
            project     = proj ?? new TexturePackProject();

            project.SpriteSheetsCleared += () =>
            {
                SetWorkUnsavedIndicator(true);
                SpritesheetsList.Items.Clear();
            };
            project.SpriteSheetAdded += (SpriteSheet newSheet) =>
            {
                SetWorkUnsavedIndicator(true);
                AddSpriteSheetTab(newSheet);
            };
            project.SpriteSheetRemoved += (SpriteSheet removedSpriteSheet) =>
            {
                SetWorkUnsavedIndicator(true);
                RemoveSpriteSheetTab(removedSpriteSheet);
            };

            SpritesheetsList.Items.Clear();

            // Load sprite sheets if present.
            project.SpriteSheets.ForEach(sheet =>
            {
                AddSpriteSheetTab(sheet);
            });

            SetWorkUnsavedIndicator(false);
        }
예제 #2
0
        /// <summary>
        /// Opens a dialog for the user to load a file, returning true if they pick a valid
        /// file.
        /// </summary>
        /// <returns>
        /// True if the user successfully loads a file, else false.
        /// </returns>
        private bool LoadProject()
        {
            try
            {
                OpenFileDialog dlg = new OpenFileDialog();
                dlg.CheckFileExists = true;
                dlg.CheckPathExists = true;
                dlg.Filter          = "JSON|*.json";
                dlg.Title           = "Load JSON texture pack file";

                if (dlg.ShowDialog() == true)
                {
                    string test       = File.ReadAllText(dlg.FileName);
                    var    loadedProj = TexturePackProject.Load(File.ReadAllText(dlg.FileName));
                    ClearProject(loadedProj);
                    projectSaveUrl = dlg.FileName;

                    return(true);
                }
            }
            catch
            {
                MessageBox.Show(
                    "The file is corrupt, read-protected or could not be loaded.",
                    "Load failed",
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);

                return(false);
            }

            return(false);
        }
예제 #3
0
        /// <summary>
        /// Creates an instance of the main window view.
        /// </summary>
        public MainWindow()
        {
            InitializeComponent();

            isUserWorkUnsaved = false;
            project           = new TexturePackProject();
            projectSaveUrl    = string.Empty;
        }