Пример #1
0
 static TextFilterSettings()
 {
     if (settings == null)
     {
         settings = new TextFilterSettings();
     }
 }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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();
        }
Пример #4
0
        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());
            }
        }