public MainWindow() { InitializeComponent(); //override the default tooltip timeout to make tooltips stay open until the user moves the mouse off the control ToolTipService.ShowDurationProperty.OverrideMetadata(typeof(DependencyObject), new FrameworkPropertyMetadata(Int32.MaxValue)); m_close = false; m_settings = new FilerSettings(); try { MainWindowViewModel vm = new MainWindowViewModel(); vm.VisibilityChangeRequest += _OnVisibilityChangeRequested; vm.DisplaySettingsWindowRequest += _OnDisplaySettingsWindowRequested; this.DataContext = vm; } catch (Exception e) { Console.WriteLine(e.Message); m_close = true; this.Close(); } _CreateTrayIcon(); ((INotifyCollectionChanged)SearchResultListView.Items).CollectionChanged += SearchResultListView_CollectionChanged; }
public SettingsWindowViewModel(SettingsWindowEventArgs args) { Settings = new FilerSettings(); AllowRepositioning = Settings.AllowRepositioning; DirectoryMonitor = args.DirectoryMonitor; RestrictedResultCountList = new List <int> { 10, 25, 50, 100, 200 }; m_directoryMonitor.ScanCompleted += _DirectoryMonitor_ScanCompleted; AddDirectoryCommand = new RelayCommand(_AddDirectory); RemoveDirectoryCommand = new RelayCommand(_RemoveDirectory); ScanDirectoriesCommand = new RelayCommand(_ScanDirectories); ToggleStartWithWindowsCommand = new RelayCommand(_ToggleStartWithWindows); m_recursiveChanged = false; m_cacheSizeLabel = ""; _LoadCacheSize(); }
public DatabaseSearcher(DatabaseLink database) { m_database = database; m_settings = new FilerSettings(); m_availableSearchFilters = new List <SearchFilter>(); m_availableSearchFilters.Add(new SearchFilter(DatabaseAccess.MatchFilters.Any, Properties.Resources.filter_any)); m_availableSearchFilters.Add(new SearchFilter(DatabaseAccess.MatchFilters.Folders, Properties.Resources.filter_folder)); m_availableSearchFilters.Add(new SearchFilter(DatabaseAccess.MatchFilters.Files, Properties.Resources.filter_file)); m_availableSearchFilters.Add(new SearchFilter(DatabaseAccess.MatchFilters.Tags, Properties.Resources.filter_tag)); m_activeSearchFilter = m_availableSearchFilters[0]; m_activeSearchID = 0; m_searchTerm = ""; m_newSearchLock = new object(); m_databaseLock = new object(); m_searchDelayTimer = new System.Timers.Timer(); m_searchDelayTimer.Interval = 250; m_searchDelayTimer.Elapsed += _SearchDelayTimer_Elapsed; m_searchDelayTimer.AutoReset = false; }
public MainWindowViewModel() { Settings = new FilerSettings(); Debug.Assert(Settings != null); Settings.SessionLog = $"---Session Debug Log Started At {DateTime.Now.ToString()}---\n"; LaunchItemChosenCommand = new RelayCommand(_OnLaunchItemChosen); EnterPressedCommand = new RelayCommand(_OnEnterPressed); ShowSettingsWindowCommand = new RelayCommand(_ShowSettingsWindow); ShowMoreResultsCommand = new RelayCommand(_ShowMoreResults); _InitializeDatabase(); m_limitedResultCollection = new ObservableCollection <Controls.SearchResultControl>(); m_latestSearchResult = null; m_resultLock = new object(); StatusMessage = "Ready"; m_enableShowMoreButton = false; m_directoryMonitor = new DirectoryMonitor(); m_directoryMonitor.ScanCompleted += _DirectoryMonitor_ScanCompleted; m_directoryMonitor.MonitoredDirectoryRemoved += _DirectoryMonitor_MonitoredDirectoryRemoved; m_directoryMonitor.StatusChanged += _DirectoryMonitor_StatusChanged; m_directoryMonitor.ScanProgress += _DirectoryMonitor_ScanProgress; m_directoryMonitor.ScanStarted += _DirectoryMonitor_ScanStarted; m_directoryMonitor.MonitoredFileCreated += _DirectoryMonitor_MonitoredFileCreated; m_directoryMonitor.MonitoredFileDeleted += _DirectoryMonitor_MonitoredFileDeleted; m_directoryMonitor.MonitoredFileRenamed += _DirectoryMonitor_MonitoredFileRenamed; if (Settings.FirstRun) { //add the user's special folders as a default m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Desktop)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyMusic)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyVideos)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.Personal)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)); m_directoryMonitor.AddMonitoredDirectory(Environment.GetFolderPath(Environment.SpecialFolder.System), false); //just want top-level for calc, notepad, etc. Settings.MonitoredDirectories = m_directoryMonitor.GetFormattedStringFromDirectoryList(); m_directoryMonitor.ScanMonitoredDirectories(); } else { var extractedDirectories = DirectoryMonitor.GetDirectoryListFromFormattedString(Settings.MonitoredDirectories); foreach (DirectoryMonitor.Directory directory in extractedDirectories) { m_directoryMonitor.AddMonitoredDirectory(directory); } } try { DatabaseItemCount = m_database.QueryDatabaseSize(); } catch (Exception crap) { Settings.SessionLog += crap.Message + "\n"; Debug.WriteLine(crap.Message); } }