Esempio n. 1
0
        private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (ServerCheckThread != null)
            {
                ServerCheckThread.Abort(); //a join would not work, so we have to be..forcefully...
            }
            List<string> lastOpenFiles = new List<string>();
            EditorElement[] editors = GetAllEditorElements();
            bool? SaveUnsaved = null;
			if (editors != null)
			{
				for (int i = 0; i < editors.Length; ++i)
				{
					if (File.Exists(editors[i].FullFilePath))
					{
						lastOpenFiles.Add(editors[i].FullFilePath);
						if (editors[i].NeedsSave)
						{
							if (SaveUnsaved == null)
							{
								var result = MessageBox.Show(this, "Save all unsaved files?", "Saving", MessageBoxButton.YesNo, MessageBoxImage.Question);
								if (result == MessageBoxResult.Yes)
								{
									SaveUnsaved = true;
								}
								else
								{
									SaveUnsaved = false;
								}
							}
							if (SaveUnsaved.Value)
							{
								editors[i].Close(true, true);
							}
							else
							{
								editors[i].Close(false, false);
							}
						}
						else
						{
							editors[i].Close(false, false);
						}
					}
				}
			}
            Program.OptionsObject.LastOpenFiles = lastOpenFiles.ToArray();
#if !DEBUG
            if (Program.UpdateStatus.IsAvailable)
            {
                UpdateWindow updateWin = new UpdateWindow(Program.UpdateStatus) { Owner = this };
                updateWin.ShowDialog();
            }
#endif
        }
Esempio n. 2
0
 private void UpdateCheck_Click(object sender, RoutedEventArgs e)
 {
     UpdateCheck.Check(false);
     var status = Program.UpdateStatus;
     if (status.IsAvailable)
     {
         UpdateWindow uWindow = new UpdateWindow(status) { Owner = this };
         uWindow.ShowDialog();
         if (uWindow.Succeeded)
         {
             Command_SaveAll();
             lock (Program.UpdateStatus)
             {
                 Program.UpdateStatus.WriteAble = false;
                 Program.UpdateStatus.IsAvailable = false;
             }
             this.Close();
         }
     }
     else
     {
         if (status.GotException)
         {
             this.ShowMessageAsync("Failed to check", "Error while checking for updates." + Environment.NewLine + "Details: " + status.ExceptionMessage
                 , MessageDialogStyle.Affirmative, this.MetroDialogOptions);
         }
         else
         {
             this.ShowMessageAsync("Version up to date", "Your program version " + Assembly.GetEntryAssembly().GetName().Version.ToString() + " is up to date."
                 , MessageDialogStyle.Affirmative, this.MetroDialogOptions);
         }
     }
 }