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);
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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);
        }