예제 #1
0
        /// <summary>
        /// Ask whether changes should be saved. Returns false if cancelled, else true.
        /// </summary>
        public override bool AskSaveChanges()
        {
            if (_suppressAskSave)
            {
                return(true);
            }

            StopSeeking();

            if (CurrentTasMovie != null && CurrentTasMovie.Changes)
            {
                var result = MainForm.DoWithTempMute(() => MessageBox.Show(
                                                         "Save Changes?",
                                                         "Tastudio",
                                                         MessageBoxButtons.YesNoCancel,
                                                         MessageBoxIcon.Question,
                                                         MessageBoxDefaultButton.Button3));
                if (result == DialogResult.Yes)
                {
                    SaveTas();
                }
                else if (result == DialogResult.No)
                {
                    CurrentTasMovie.ClearChanges();
                    return(true);
                }
                else if (result == DialogResult.Cancel)
                {
                    return(false);
                }
            }

            return(true);
        }
예제 #2
0
        private void SaveTas()
        {
            if (string.IsNullOrEmpty(CurrentTasMovie.Filename) ||
                CurrentTasMovie.Filename == DefaultTasProjName())
            {
                SaveAsTas();
            }
            else
            {
                _autosaveTimer?.Stop();
                MainForm.DoWithTempMute(() =>
                {
                    MessageStatusLabel.Text = "Saving...";
                    Cursor = Cursors.WaitCursor;
                    Update();
                    CurrentTasMovie.Save();
                    if (Settings.AutosaveInterval > 0)
                    {
                        _autosaveTimer?.Start();
                    }

                    MessageStatusLabel.Text = "File saved.";
                    Settings.RecentTas.Add(CurrentTasMovie.Filename);
                    Cursor = Cursors.Default;
                });
            }
        }
        public override bool AskSaveChanges()
        {
            if (_watches.Changes)
            {
                var result = MainForm.DoWithTempMute(() => MessageBox.Show("Save Changes?", "RAM Watch", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button3));
                if (result == DialogResult.Yes)
                {
                    if (string.IsNullOrWhiteSpace(_watches.CurrentFileName))
                    {
                        SaveAs();
                    }
                    else
                    {
                        _watches.Save();
                        Config.RecentWatches.Add(_watches.CurrentFileName);
                    }
                }
                else if (result == DialogResult.No)
                {
                    _watches.Changes = false;
                    return(true);
                }
                else if (result == DialogResult.Cancel)
                {
                    return(false);
                }
            }

            return(true);
        }
예제 #4
0
        private void SaveAsTas()
        {
            _autosaveTimer.Stop();
            MainForm.DoWithTempMute(() =>
            {
                ClearLeftMouseStates();
                var filename = CurrentTasMovie.Filename;
                if (string.IsNullOrWhiteSpace(filename) || filename == DefaultTasProjName())
                {
                    filename = SuggestedTasProjName();
                }

                var file = SaveFileDialog(
                    filename,
                    Config.PathEntries.MovieAbsolutePath(),
                    "Tas Project Files",
                    "tasproj",
                    this
                    );

                if (file != null)
                {
                    CurrentTasMovie.Filename = file.FullName;
                    MessageStatusLabel.Text  = "Saving...";
                    Cursor = Cursors.WaitCursor;
                    Update();
                    CurrentTasMovie.Save();
                    Settings.RecentTas.Add(CurrentTasMovie.Filename);
                    UpdateWindowTitle();
                    MessageStatusLabel.Text = "File saved.";
                    Cursor = Cursors.Default;
                }

                // keep insisting
                if (Settings.AutosaveInterval > 0)
                {
                    _autosaveTimer.Start();
                }

                MainForm.SetWindowText();
            });
        }