/// <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); }
/// <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); }
/// <summary> /// Creates an instance of the main window view. /// </summary> public MainWindow() { InitializeComponent(); isUserWorkUnsaved = false; project = new TexturePackProject(); projectSaveUrl = string.Empty; }