Пример #1
0
        private bool SaveUnsavedFiles(ISavableFile[] unsavedItems)
        {
            if (unsavedItems.Length > 0)
            {
                using (var dialog = new UnsavedFilesDialog(unsavedItems))
                {
                    switch (dialog.ShowDialog())
                    {
                    case System.Windows.Forms.DialogResult.Yes:
                        foreach (var item in dialog.GetItemsToSave())
                        {
                            item.Save(_extensionHost.CreateOrGetReporter("Build"));
                        }
                        break;

                    case System.Windows.Forms.DialogResult.No:
                        break;

                    case System.Windows.Forms.DialogResult.Cancel:
                        return(false);
                    }
                }
            }
            return(true);
        }
Пример #2
0
        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            (_extensionHost.ControlManager as ControlManager).NotifyUnsavedFilesWhenClosing = false;

            var unsavedItems = GetUnsavedItems();

            if (unsavedItems.Length > 0)
            {
                using (var dialog = new UnsavedFilesDialog(unsavedItems))
                {
                    switch (dialog.ShowDialog())
                    {
                    case System.Windows.Forms.DialogResult.Yes:
                        foreach (var item in dialog.GetItemsToSave())
                        {
                            item.Save(_extensionHost.CreateOrGetReporter("Build"));
                        }
                        break;

                    case System.Windows.Forms.DialogResult.No:
                        break;

                    case System.Windows.Forms.DialogResult.Cancel:
                        e.Cancel = true;
                        break;
                    }
                }
            }

            if (!e.Cancel)
            {
                SaveDockPanelState();
                Rectangle usingBounds = (WindowState == FormWindowState.Normal ? this.Bounds : this.RestoreBounds);
                LiteDevelopSettings.Instance.SetValue("MainWindow.Location", usingBounds.Location);
                LiteDevelopSettings.Instance.SetValue("MainWindow.Size", usingBounds.Size);
                LiteDevelopSettings.Instance.SetValue("MainWindow.Maximized", WindowState == FormWindowState.Maximized);
            }

            (_extensionHost.ControlManager as ControlManager).NotifyUnsavedFilesWhenClosing = true;
        }
 private void ViewContent_Closing(object sender, System.Windows.Forms.FormClosingEventArgs e)
 {
     var documentContent = DocumentContent;
     if (_extensionHost.ControlManager.NotifyUnsavedFilesWhenClosing && documentContent != null && documentContent.AssociatedFile != null)
     {
         if (documentContent.AssociatedFile.HasUnsavedData)
         {
             var dialog = new UnsavedFilesDialog(new OpenedFile[1] { documentContent.AssociatedFile });
             switch (dialog.ShowDialog())
             {
                 case DialogResult.Yes:
                     dialog.GetItemsToSave()[0].Save(_extensionHost.CreateOrGetReporter("Build"));
                     break;
                 case DialogResult.Cancel:
                     e.Cancel = true;
                     break;
             }
         }
     }
 }