private void Application_SessionEnding(object sender, SessionEndingCancelEventArgs e)
        {
            LogWriter.Write(string.Format(
                                "Due to pending Windows {0}, application will try to save the current settings and presets",
                                e.ReasonSessionEnding.ToString()));

            GlobalSettings.TrySaveToFile();

            try
            {
                PresetDataManager.WritePresetDataToFile();
                LogWriter.Write("Presets successfully saved");
            }
            catch (Exception ex)
            {
                LogWriter.Write("Presets saving failed:");
                LogWriter.Write(ex.ToString());
            }

            var splitter = Helpers.SplitterHelper.TryFindSplitter();

            if (splitter != null)
            {
                splitter.Destroy();
            }
        }
        private void OnExportPresetsClicked(object sender, RoutedEventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog();

            dialog.AddExtension     = true;
            dialog.CheckPathExists  = true;
            dialog.DefaultExt       = "*.xml";
            dialog.DereferenceLinks = true;
            dialog.Filter           = "XML file (*.xml)|*.xml";
            dialog.Title            = "Export presets";
            dialog.ValidateNames    = true;
            Interceptor.Interception.DisableMouseEvents = true;
            var result = dialog.ShowDialog(this);

            Interceptor.Interception.DisableMouseEvents = false;
            if (result != true)
            {
                return;
            }

            var extension = System.IO.Path.GetExtension(dialog.FileName);

            if (extension.ToLower() != ".xml")
            {
                Controls.MessageBox.Show(
                    "You must export presets as xml file!",
                    ApplicationInfo.AppName,
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);

                return;
            }

            try
            {
                PresetDataManager.WritePresetDataToFile(dialog.FileName);
            }
            catch (Exception ex)
            {
                LogWriter.Write(ex.ToString());
                Controls.MessageBox.Show(
                    "Presets export failed! Please refer to " + LogWriter.GetLogFileName + " for details",
                    ApplicationInfo.AppName,
                    MessageBoxButton.OK,
                    MessageBoxImage.Error);
            }
        }
        private void Window_Closing(object sender, CancelEventArgs e)
        {
            LogWriter.Write("Application is about to close. Checking for unsaved presets...");

            // checking for unsaved presets
            var unsavedPresets = new List <IPreset>();

            foreach (var preset in PresetDataManager.CurrentPresets)
            {
                if (PresetDataManager.IsPresetChanged(preset))
                {
                    unsavedPresets.Add(preset);
                }
            }

            string message = string.Empty;

            foreach (var preset in unsavedPresets)
            {
                message += string.Format("Preset '{0}'{1}", preset.Name, Environment.NewLine);
            }

            if (message.Length > 0)
            {
                var result = Controls.MessageBox.Show(
                    "Do you want to save the following unsaved presets, before you quit?\r\n\r\n" + message,
                    "You are about to quit " + ApplicationInfo.AppNameVersion,
                    MessageBoxButton.YesNoCancel,
                    MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)
                {
                    // save the presets
                    PresetDataManager.WritePresetDataToFile();
                }

                e.Cancel = result == MessageBoxResult.Cancel;
            }
        }
Exemple #4
0
        private void Window_Closing(object sender, CancelEventArgs e)
        {
            LogWriter.Write("Application is about to close. Checking for unsaved presets...");

            // Checking for unsaved presets
            var unsavedPresets = new List <IPreset>();

            foreach (var preset in PresetDataManager.CurrentPresets)
            {
                if (PresetDataManager.IsPresetChanged(preset))
                {
                    unsavedPresets.Add(preset);
                }
            }

            string message = string.Empty;

            foreach (var preset in unsavedPresets)
            {
                message += string.Format("Preset '{0}'{1}", preset.Name, Environment.NewLine);
            }

            if (message.Length > 0)
            {
                var result = Controls.MessageBox.Show(
                    "Do you want to save the following unsaved presets, before you quit?\r\n\r\n" + message,
                    "You are about to quit " + ApplicationInfo.AppNameVersion,
                    MessageBoxButton.YesNoCancel,
                    MessageBoxImage.Question);

                if (result == MessageBoxResult.Yes)
                {
                    // save the presets
                    PresetDataManager.WritePresetDataToFile();
                }

                e.Cancel = result == MessageBoxResult.Cancel;
            }
            else
            {
                // We may have a deleted preset(s)
                var  xmlPresets = PresetDataManager.ReadPresetDataFromFile();
                bool hasChanges = false;
                foreach (var preset in xmlPresets.Presets)
                {
                    try
                    {
                        if (PresetDataManager.IsPresetChanged(preset))
                        {
                            hasChanges = true;
                        }
                    }
                    catch (InvalidOperationException)
                    {
                        // Preset is deleted
                        hasChanges = true;
                    }
                }

                if (hasChanges)
                {
                    PresetDataManager.WritePresetDataToFile();
                }
            }
        }