static TextFilterSettings() { if (settings == null) { settings = new TextFilterSettings(); } }
public void SettingsExecuted(object sender) { TextFilterSettings configFileCache = Settings.ShallowCopy(); OptionsDialog dialog = new OptionsDialog(); switch (dialog.WaitForResult()) { case OptionsDialog.OptionsDialogResult.apply: string args = string.Format("/filter: \"{0}\" /log: \"{1}\"", string.Join("\";\"", Settings.CurrentFilterFiles), string.Join("\";\"", Settings.CurrentLogFiles)); Settings.Save(); CreateProcess(Process.GetCurrentProcess().MainModule.FileName, args); Debug.Print(args); Application.Current.Shutdown(); break; //case OptionsDialog.OptionsDialogResult.cancel: // Settings = configFileCache.ShallowCopy(); // break; case OptionsDialog.OptionsDialogResult.edit: string workingDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); CreateProcess("notepad.exe", Settings.ConfigFile); break; case OptionsDialog.OptionsDialogResult.register: ExecuteAsAdmin(Process.GetCurrentProcess().MainModule.FileName, "/register"); SettingsExecuted(null); //FileTypeAssociation.Instance.ConfigureFTA(true); break; case OptionsDialog.OptionsDialogResult.reset: Settings.VerifyAppSettings(true); SettingsExecuted(null); break; case OptionsDialog.OptionsDialogResult.save: Settings.Save(); break; case OptionsDialog.OptionsDialogResult.unregister: ExecuteAsAdmin(Process.GetCurrentProcess().MainModule.FileName, "/unregister"); SettingsExecuted(null); //FileTypeAssociation.Instance.ConfigureFTA(false); break; case OptionsDialog.OptionsDialogResult.unknown: default: break; } }
public void SettingsExecuted(object sender) { TextFilterSettings configFileCache = Settings.ShallowCopy(); OptionsDialog dialog = new OptionsDialog(); switch (dialog.WaitForResult()) { case OptionsDialog.OptionsDialogResult.apply: { NewWindow(true); Application.Current.Shutdown(); break; } //case OptionsDialog.OptionsDialogResult.cancel: // Settings = configFileCache.ShallowCopy(); // break; case OptionsDialog.OptionsDialogResult.edit: string workingDir = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); CreateProcess("notepad.exe", Settings.ConfigFile); break; case OptionsDialog.OptionsDialogResult.register: ExecuteAsAdmin(Process.GetCurrentProcess().MainModule.FileName, "/register"); SettingsExecuted(null); //FileTypeAssociation.Instance.ConfigureFTA(true); break; case OptionsDialog.OptionsDialogResult.reset: Settings.VerifyAppSettings(true); SettingsExecuted(null); break; case OptionsDialog.OptionsDialogResult.save: Settings.Save(); break; case OptionsDialog.OptionsDialogResult.unregister: ExecuteAsAdmin(Process.GetCurrentProcess().MainModule.FileName, "/unregister"); SettingsExecuted(null); //FileTypeAssociation.Instance.ConfigureFTA(false); break; case OptionsDialog.OptionsDialogResult.unknown: default: break; } _FilterViewModel.Refresh(); }
public MainViewModel() { try { if (Base._MainViewModel != null) { return; } else { Base._MainViewModel = this; } _settings = TextFilterSettings.Settings; if (!_settings.ReadConfigFile()) { Environment.Exit(1); Application.Current.Shutdown(1); return; } // clean up old log file if exists if (!string.IsNullOrEmpty(Settings.DebugFile) && File.Exists(Settings.DebugFile)) { File.Delete(Settings.DebugFile); } SetStatus("Starting textFilter: " + Process.GetCurrentProcess().Id.ToString()); Base.NewCurrentStatus += HandleNewCurrentStatus; // Base._Parser = new Parser(); Base._FilterViewModel = new FilterViewModel(); Base._LogViewModel = new LogViewModel(); //_Parser.Enable(true); App.Current.MainWindow.Title = string.Format("{0} {1}", // {2}", Process.GetCurrentProcess().MainModule.ModuleName, Process.GetCurrentProcess().MainModule.FileVersionInfo.FileVersion); SetStatus(App.Current.MainWindow.Title); // to embed external libraries // http: //blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { String resourceName = "TextFilter." + new AssemblyName(args.Name).Name + ".dll"; using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) { Byte[] assemblyData = new Byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return(Assembly.Load(assemblyData)); } }; _timer = new System.Timers.Timer(10000); _timer.AutoReset = false; _timer.Elapsed += _timer_Elapsed; _timer.Enabled = true; SetStatus("loaded"); } catch (Exception e) { MessageBox.Show("Exception:" + e.ToString()); } }