Esempio n. 1
0
        private Window CreateSettingsExperience()
        {
            var defaultCategory = new SettingsCategoryViewModel(
                EarTrumpet.Properties.Resources.SettingsCategoryTitle,
                "\xE71D",
                EarTrumpet.Properties.Resources.SettingsDescriptionText,
                null,
                new SettingsPageViewModel[]
            {
                new EarTrumpetShortcutsPageViewModel(_settings),
                new EarTrumpetLegacySettingsPageViewModel(_settings),
                new EarTrumpetAboutPageViewModel(() => _errorReporter.DisplayDiagnosticData())
            });

            var allCategories = new List <SettingsCategoryViewModel>();

            allCategories.Add(defaultCategory);

            if (AddonManager.Host.SettingsItems != null)
            {
                allCategories.AddRange(AddonManager.Host.SettingsItems.Select(a => a.Get(AddonManager.FindAddonInfoForObject(a))));
            }

            var viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories);

            return(new SettingsWindow {
                DataContext = viewModel
            });
        }
Esempio n. 2
0
        private Window CreateSettingsExperience()
        {
            var defaultCategory = new SettingsCategoryViewModel(
                EarTrumpet.Properties.Resources.SettingsCategoryTitle,
                "\xE71D",
                EarTrumpet.Properties.Resources.SettingsDescriptionText,
                null,
                new SettingsPageViewModel[]
            {
                new EarTrumpetShortcutsPageViewModel(_settings),
                new EarTrumpetLegacySettingsPageViewModel(_settings),
                new EarTrumpetAboutPageViewModel(() => _errorReporter.DisplayDiagnosticData())
            });

            var allCategories = new List <SettingsCategoryViewModel>();

            allCategories.Add(defaultCategory);

            if (AddonManager.Host.SettingsItems != null)
            {
                allCategories.AddRange(AddonManager.Host.SettingsItems.Select(a => a.Get(AddonManager.FindAddonInfoForObject(a))));
            }

            bool canClose  = false;
            var  viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories);
            var  window    = new SettingsWindow {
                DataContext = viewModel
            };

            window.CloseClicked += () => viewModel.OnClosing();
            viewModel.Close     += () =>
            {
                canClose = true;
                window.SafeClose();
            };
            window.Closing += (_, e) =>
            {
                if (canClose)
                {
                    _settingsWindow.Destroyed();
                }
                else
                {
                    e.Cancel = true;
                    viewModel.OnClosing();
                }
            };
            return(window);
        }
Esempio n. 3
0
        //
        private Window CreateSettingsExperience()
        {
            var defaultCategory = new SettingsCategoryViewModel(EarTrumpet.Properties.Resources.SettingsCategoryTitle, "\xE71D",
                                                                EarTrumpet.Properties.Resources.SettingsDescriptionText,
                                                                null,
                                                                new SettingsPageViewModel[] {
                new EarTrumpetShortcutsPageViewModel(),
                new EarTrumpetLegacySettingsPageViewModel(),
                #region hamed
                new EarTrumpetStartupSettingsPageViewModel(),
                new EarTrumpetLanguageSettingsPageViewModel(),
                #endregion
                new EarTrumpetAboutPageViewModel(),
            }.ToList());

            var allCategories = new List <SettingsCategoryViewModel>();

            allCategories.Add(defaultCategory);
            if (SettingsViewModel.AddonItems != null)
            {
                allCategories.AddRange(SettingsViewModel.AddonItems.Select(a => a.Get()));
            }

            bool canClose  = false;
            var  viewModel = new SettingsViewModel(EarTrumpet.Properties.Resources.SettingsWindowText, allCategories);
            var  window    = new SettingsWindow();

            window.CloseClicked += () => viewModel.OnClosing();
            viewModel.Close     += () =>
            {
                canClose = true;
                window.SafeClose();
            };
            window.DataContext = viewModel;
            window.Closing    += (_, e) =>
            {
                if (canClose)
                {
                    _settingsWindow.Destroyed();
                }
                else
                {
                    e.Cancel = true;
                    viewModel.OnClosing();
                }
            };
            return(window);
        }
        public void RegisterSettingsDialog(string category, SettingsViewModel viewModel)
        {
            if (!_categories.ContainsKey(category))
            {
                _categories[category] = new SettingsCategoryViewModel {
                    Title = category, Dialogs = new ObservableCollection <SettingsViewModel>()
                };
                _categoryViewModels.Add(_categories[category]);
            }

            _categories[category].Dialogs.Add(viewModel);

            if (_categoryViewModels.Count == 1)
            {
                SelectedSetting = viewModel;

                _categories[category].IsExpanded = true;
            }
        }