private void DisplayPrompt(PreferenceType preferenceType, string title, string text, string checkText) { if (!preferences.GetSavePromptPreference(preferenceType)) { return; } PromptView prompt = Injector.GetInstance <PromptView>(); CheckBoxData checkData = new CheckBoxData(preferenceType, checkText); prompt.Initialize(title, text, new CheckBoxData[] { checkData }); bool?result = prompt.ShowDialog(); if (result == false) { args.CancelLoading(); } if (prompt.RememberChoice && prompt.GetChecked(preferenceType)) { preferences.SetPromptPreference(preferenceType, false); database.SavePromptSavePref(preferenceType, false); } }
private void InitializeUI(UserPreferencesModel preferences) { promptOutsidePlaceholder.IsChecked = preferences.PromptOutsidePlaceholders == OutsidePlaceholdersPrefType.PROMPT; promptOutsidePlaceholder.Visibility = promptOutsidePlaceholder.IsChecked == true ? Visibility.Collapsed : Visibility.Visible; promptUnsavedProfiledLayout.IsChecked = preferences.GetSavePromptPreference(PreferenceType.PROMPT_SAVE_PROFILE_LAYOUT_CHANGE); promptUnsavedLayoutLayout.IsChecked = preferences.GetSavePromptPreference(PreferenceType.PROMPT_APPLY_LAYOUT_LAYOUT_CHANGE); promptUnsavedProfiledExit.IsChecked = preferences.GetSavePromptPreference(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT); promptUnsavedLayoutExit.IsChecked = preferences.GetSavePromptPreference(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT); useInvariantCulture.IsChecked = preferences.UseInvariantCulture; promptCheckBoxes = new Dictionary <PreferenceType, CheckBox> { { PreferenceType.PROMPT_SAVE_PROFILE_LAYOUT_CHANGE, promptUnsavedProfiledLayout }, { PreferenceType.PROMPT_APPLY_LAYOUT_LAYOUT_CHANGE, promptUnsavedLayoutLayout }, { PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT, promptUnsavedProfiledExit }, { PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT, promptUnsavedLayoutExit }, }; applyButton.Click += ApplyClicked; }
private bool CheckUnsavedChanges() { string text = ""; bool promptUser = false; List <CheckBoxData> checkData = new List <CheckBoxData>(); UnsavedChangeType saved = layoutIO.GetSaveStatus(); bool twoPrompts = !saved.HasFlag(UnsavedChangeType.PROFILE) && preferences.GetSavePromptPreference(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT) && !saved.HasFlag(UnsavedChangeType.R3E) && preferences.GetSavePromptPreference(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT); string listHeader = twoPrompts ? "* " : ""; if (!saved.HasFlag(UnsavedChangeType.PROFILE) && preferences.GetSavePromptPreference(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT)) { checkData.Add(new CheckBoxData(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT, "Don't ask for unsaved profile when exiting application")); text += $"{listHeader}Profile \"{selectedProfile.Selection.Name}\" has unsaved changes.\n"; promptUser = true; } if (!saved.HasFlag(UnsavedChangeType.R3E) && preferences.GetSavePromptPreference(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT)) { checkData.Add(new CheckBoxData(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT, "Don't ask for unapplied layout when exiting application")); text += $"{listHeader}Current layout is not applied to R3E.\n"; promptUser = true; } text += "Exit anyway?"; if (!promptUser) { return(true); } PromptView prompt = Injector.GetInstance <PromptView>(); prompt.Initialize("Unsaved changes", text, checkData.ToArray()); bool result = (bool)prompt.ShowDialog(); if (prompt.RememberChoice && prompt.HasCkeck(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT) && prompt.GetChecked(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT)) { preferences.SetPromptPreference(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT, false); database.SavePromptSavePref(PreferenceType.PROMPT_SAVE_PROFILE_APP_EXIT, false); } if (prompt.RememberChoice && prompt.HasCkeck(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT) && prompt.GetChecked(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT)) { preferences.SetPromptPreference(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT, false); database.SavePromptSavePref(PreferenceType.PROMPT_APPLY_LAYOUT_APP_EXIT, false); } if (!result) { args.FormArgs.Cancel = true; return(false); } return(true); }