Exemplo n.º 1
0
        public SettingsForm(IGeneralConfigService configService, SettingsViews activeView = SettingsViews.GeneralSettings) : this()
        {
            var config = configService.LoadConfiguration();

            ViewModel = new SettingsControlViewModel(configService,
                config,
                new SettingsView
                {
                    Control = new GeneralSettings(new GeneralSettingsViewModel(config)),
                    View = SettingsViews.GeneralSettings
                },
                new SettingsView
                {
                    Control = new TodoSettings(new TodoSettingsViewModel(config)),
                    View = SettingsViews.TodoSettings
                },
                new SettingsView
                {
                    Control = new InspectionSettings(new InspectionSettingsViewModel(config)),
                    View = SettingsViews.InspectionSettings
                },
                new SettingsView
                {
                    Control = new UnitTestSettings(new UnitTestSettingsViewModel(config)),
                    View = SettingsViews.UnitTestSettings
                },
                new SettingsView
                {
                    Control = new IndenterSettings(new IndenterSettingsViewModel(config)),
                    View = SettingsViews.IndenterSettings
                },
                activeView);

            ViewModel.OnWindowClosed += ViewModel_OnWindowClosed;
        }
        public SettingsControlViewModel(IMessageBox messageBox,
                                        IConfigurationService <Configuration> configService,
                                        Configuration config,
                                        SettingsView generalSettings,
                                        SettingsView todoSettings,
                                        SettingsView inspectionSettings,
                                        SettingsView unitTestSettings,
                                        SettingsView indenterSettings,
                                        SettingsView autoCompleteSettings,
                                        SettingsView windowSettings,
                                        SettingsView referenceSettings,
                                        SettingsViews activeView = UI.Settings.SettingsViews.GeneralSettings)
        {
            _messageBox    = messageBox;
            _configService = configService;
            _config        = config;

            SettingsViews = new ObservableCollection <SettingsView>
            {
                generalSettings, todoSettings, inspectionSettings, unitTestSettings, indenterSettings, autoCompleteSettings, windowSettings, referenceSettings
            };

            SelectedSettingsView = SettingsViews.First(v => v.View == activeView);

            OKButtonCommand     = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => SaveAndCloseWindow());
            CancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseWindow());
            ResetButtonCommand  = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ResetSettings());
        }
Exemplo n.º 3
0
        public SettingsForm(IGeneralConfigService configService, SettingsViews activeView = SettingsViews.GeneralSettings) : this()
        {
            var config = configService.LoadConfiguration();

            ViewModel = new SettingsControlViewModel(configService,
                                                     config,
                                                     new SettingsView
            {
                Control = new GeneralSettings(new GeneralSettingsViewModel(config)),
                View    = SettingsViews.GeneralSettings
            },
                                                     new SettingsView
            {
                Control = new TodoSettings(new TodoSettingsViewModel(config)),
                View    = SettingsViews.TodoSettings
            },
                                                     new SettingsView
            {
                Control = new InspectionSettings(new InspectionSettingsViewModel(config)),
                View    = SettingsViews.InspectionSettings
            },
                                                     new SettingsView
            {
                Control = new UnitTestSettings(new UnitTestSettingsViewModel(config)),
                View    = SettingsViews.UnitTestSettings
            },
                                                     new SettingsView
            {
                Control = new IndenterSettings(new IndenterSettingsViewModel(config)),
                View    = SettingsViews.IndenterSettings
            },
                                                     activeView);

            ViewModel.OnWindowClosed += ViewModel_OnWindowClosed;
        }
Exemplo n.º 4
0
        private void ResetSettings()
        {
            var defaultConfig = _configService.GetDefaultConfiguration();

            foreach (var vm in SettingsViews.Select(v => v.Control.ViewModel))
            {
                vm.SetToDefaults(defaultConfig);
            }
        }
Exemplo n.º 5
0
        public SettingsForm(IGeneralConfigService configService,
                            IMessageBox messageBox,
                            ISettingsViewModelFactory viewModelFactory,
                            SettingsViews activeView = SettingsViews.GeneralSettings)
            : this()
        {
            var config = configService.LoadConfiguration();

            ViewModel = new SettingsControlViewModel(messageBox, configService,
                                                     config,
                                                     new SettingsView
            {
                Control = new GeneralSettings(viewModelFactory.Create <Rubberduck.Settings.GeneralSettings>(config)),
                View    = SettingsViews.GeneralSettings
            },
                                                     new SettingsView
            {
                Control = new TodoSettings(viewModelFactory.Create <ToDoListSettings>(config)),
                View    = SettingsViews.TodoSettings
            },
                                                     new SettingsView
            {
                Control = new InspectionSettings(viewModelFactory.Create <CodeInspectionSettings>(config)),
                View    = SettingsViews.InspectionSettings
            },
                                                     new SettingsView
            {
                Control = new UnitTestSettings(viewModelFactory.Create <Rubberduck.UnitTesting.Settings.UnitTestSettings>(config)),
                View    = SettingsViews.UnitTestSettings
            },
                                                     new SettingsView
            {
                Control = new IndenterSettings(viewModelFactory.Create <SmartIndenter.IndenterSettings>(config)),
                View    = SettingsViews.IndenterSettings
            },
                                                     new SettingsView
            {
                Control = new AutoCompleteSettings(viewModelFactory.Create <Rubberduck.Settings.AutoCompleteSettings>(config)),
                View    = SettingsViews.AutoCompleteSettings
            },
                                                     new SettingsView
            {
                Control = new WindowSettings(viewModelFactory.Create <Rubberduck.Settings.WindowSettings>(config)),
                View    = SettingsViews.WindowSettings
            },
                                                     new SettingsView
            {
                Control = new AddRemoveReferencesUserSettings(viewModelFactory.Create <ReferenceSettings>()),
                View    = SettingsViews.ReferenceSettings
            },
                                                     activeView);

            ViewModel.OnWindowClosed += ViewModel_OnWindowClosed;
        }
Exemplo n.º 6
0
        private void SaveConfig()
        {
            var oldLangCode = _config.UserSettings.GeneralSettings.Language.Code;

            foreach (var vm in SettingsViews.Select(v => v.Control.ViewModel))
            {
                vm.UpdateConfig(_config);
            }

            _configService.SaveConfiguration(_config);
        }
Exemplo n.º 7
0
        protected override async Task OnLoadStateAsync(LoadStateEventArgs e)
        {
            if (this.ViewModel == null)
            {
                this.SetViewModel(new SettingsViewModel());
            }

            try
            {
                if (e.PageState.ContainsKey(LAST_SELECTED_INDEX))
                {
                    // Restore the last viewed pivot from page state
                    pivot.SelectedIndex = (int)e.PageState[LAST_SELECTED_INDEX];
                }
                else
                {
                    // Use the page parameter to determine the starting pivot
                    int           selected = e.NavigationEventArgs.Parameter is int?(int)e.NavigationEventArgs.Parameter : 0;
                    SettingsViews view     = (SettingsViews)selected;
                    switch (view)
                    {
                    case SettingsViews.PrivacyPolicy:
                        pivot.SelectedIndex = 2;
                        break;

                    case SettingsViews.TermsOfService:
                        pivot.SelectedIndex = 3;
                        break;

                    case SettingsViews.About:
                        pivot.SelectedIndex = 4;
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Platform.Current.Logger.LogError(ex, "Error with determining which Pivot to set to SelectedIndex.");
            }

            await base.OnLoadStateAsync(e);
        }
Exemplo n.º 8
0
        public SettingsControlViewModel(IGeneralConfigService configService,
                                        Configuration config,
                                        SettingsView generalSettings,
                                        SettingsView todoSettings,
                                        SettingsView inspectionSettings,
                                        SettingsView unitTestSettings,
                                        SettingsView indenterSettings,
                                        SettingsViews activeView = UI.Settings.SettingsViews.GeneralSettings)
        {
            _configService = configService;
            _config        = config;

            SettingsViews = new ObservableCollection <SettingsView>
            {
                generalSettings, todoSettings, inspectionSettings, unitTestSettings, indenterSettings
            };

            SelectedSettingsView = SettingsViews.First(v => v.View == activeView);

            _okButtonCommand     = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => SaveAndCloseWindow());
            _cancelButtonCommand = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => CloseWindow());
            _resetButtonCommand  = new DelegateCommand(LogManager.GetCurrentClassLogger(), _ => ResetSettings());
        }
        public SettingsControlViewModel(IGeneralConfigService configService,
            Configuration config,
            SettingsView generalSettings,
            SettingsView todoSettings,
            SettingsView inspectionSettings,
            SettingsView unitTestSettings,
            SettingsView indenterSettings,
            SettingsViews activeView = Settings.SettingsViews.GeneralSettings)
        {
            _configService = configService;
            _config = config;

            SettingsViews = new ObservableCollection<SettingsView>
            {
                generalSettings, todoSettings, inspectionSettings, unitTestSettings, indenterSettings
            };

            SelectedSettingsView = SettingsViews.First(v => v.View == activeView);

            _okButtonCommand = new DelegateCommand(_ => SaveAndCloseWindow());
            _cancelButtonCommand = new DelegateCommand(_ => CloseWindow());
            _resetButtonCommand = new DelegateCommand(_ => ResetSettings());
        }
Exemplo n.º 10
0
        private SettingsControlViewModel GetDefaultViewModel(ConfigurationLoader configService, SettingsViews activeView = SettingsViews.GeneralSettings)
        {
            var config = configService.LoadConfiguration();

            return(new SettingsControlViewModel(configService,
                                                config,
                                                new SettingsView
            {
                Control = new GeneralSettings(new GeneralSettingsViewModel(config)),
                View = SettingsViews.GeneralSettings
            },
                                                new SettingsView
            {
                Control = new TodoSettings(new TodoSettingsViewModel(config)),
                View = SettingsViews.TodoSettings
            },
                                                new SettingsView
            {
                Control = new InspectionSettings(new InspectionSettingsViewModel(config)),
                View = SettingsViews.InspectionSettings
            },
                                                new SettingsView
            {
                Control = new UnitTestSettings(new UnitTestSettingsViewModel(config)),
                View = SettingsViews.UnitTestSettings
            },
                                                new SettingsView
            {
                Control = new IndenterSettings(new IndenterSettingsViewModel(config)),
                View = SettingsViews.IndenterSettings
            },
                                                activeView));
        }
Exemplo n.º 11
0
        public SettingsForm(IGeneralConfigService configService,
                            IOperatingSystem operatingSystem,
                            IMessageBox messageBox,
                            IVbeSettings vbeSettings,
                            IConfigProvider <ReferenceSettings> referencesProvider,
                            IFileSystemBrowserFactory browserFactory,
                            SettingsViews activeView = SettingsViews.GeneralSettings) : this()
        {
            var config = configService.LoadConfiguration();

            ViewModel = new SettingsControlViewModel(messageBox, configService,
                                                     config,
                                                     new SettingsView
            {
                // FIXME inject types marked as ExperimentalFeatures

                /*
                 * These ExperimentalFeatureTypes were originally obtained by directly calling into the IoC container
                 * (since only it knows, which Assemblies have been loaded as Plugins). The code is preserved here for easy access.
                 * RubberduckIoCInstaller.AssembliesToRegister()
                 *     .SelectMany(s => s.DefinedTypes)
                 *     .Where(w => Attribute.IsDefined(w, typeof(ExperimentalAttribute)))
                 */
                Control = new GeneralSettings(new GeneralSettingsViewModel(config, operatingSystem, messageBox, vbeSettings, new List <Type>())),
                View    = SettingsViews.GeneralSettings
            },
                                                     new SettingsView
            {
                Control = new TodoSettings(new TodoSettingsViewModel(config)),
                View    = SettingsViews.TodoSettings
            },
                                                     new SettingsView
            {
                Control = new InspectionSettings(new InspectionSettingsViewModel(config)),
                View    = SettingsViews.InspectionSettings
            },
                                                     new SettingsView
            {
                Control = new UnitTestSettings(new UnitTestSettingsViewModel(config)),
                View    = SettingsViews.UnitTestSettings
            },
                                                     new SettingsView
            {
                Control = new IndenterSettings(new IndenterSettingsViewModel(config)),
                View    = SettingsViews.IndenterSettings
            },
                                                     new SettingsView
            {
                Control = new AutoCompleteSettings(new AutoCompleteSettingsViewModel(config)),
                View    = SettingsViews.AutoCompleteSettings
            },
                                                     new SettingsView
            {
                Control = new WindowSettings(new WindowSettingsViewModel(config)),
                View    = SettingsViews.WindowSettings
            },
                                                     new SettingsView
            {
                Control = new AddRemoveReferencesUserSettings(new AddRemoveReferencesUserSettingsViewModel(referencesProvider, browserFactory)),
                View    = SettingsViews.ReferenceSettings
            },
                                                     activeView);

            ViewModel.OnWindowClosed += ViewModel_OnWindowClosed;
        }
Exemplo n.º 12
0
        private SettingsControlViewModel GetDefaultViewModel(ConfigurationLoader configService, SettingsViews activeView = SettingsViews.GeneralSettings)
        {
            var config = configService.LoadConfiguration();

            return new SettingsControlViewModel(configService,
                config,
                new SettingsView
                {
                    Control = new GeneralSettings(new GeneralSettingsViewModel(config)),
                    View = SettingsViews.GeneralSettings
                },
                new SettingsView
                {
                    Control = new TodoSettings(new TodoSettingsViewModel(config)),
                    View = SettingsViews.TodoSettings
                },
                new SettingsView
                {
                    Control = new InspectionSettings(new InspectionSettingsViewModel(config)),
                    View = SettingsViews.InspectionSettings
                },
                new SettingsView
                {
                    Control = new UnitTestSettings(new UnitTestSettingsViewModel(config)),
                    View = SettingsViews.UnitTestSettings
                },
                new SettingsView
                {
                    Control = new IndenterSettings(new IndenterSettingsViewModel(config)),
                    View = SettingsViews.IndenterSettings
                },
                activeView);
        }