private void refreshListingWithSearch() { search = new Search(allEnabledItems(), searchBox.Text, settings.SearchOptions, settings.SortOptions, settings.SortDescending); updateMainListing(search.Items, true); }
private void togglePreferences() { showingPreferencesPanel = !showingPreferencesPanel; updatePreferencesPanel(); runLongOperation((() => search = new Search(allEnabledItems(), searchBox.Text, settings.SearchOptions)), (() => updateMainListing(search.Items, true)), "Finalising Directory Cache"); }
private void beginLoad(bool async = true) { Action action = (() => { TwoLight_Sortle.Load.FilesCache = TwoLight_Sortle.Load.FilesCache.LoadFromDisk<Dictionary<UInt32, Item>>( Path.Combine(Application.UserAppDataPath, "FilesCache")); }); Action deleteAction = (() => { IEnumerable<Item> deletedItems = from kvPair in TwoLight_Sortle.Load.FilesCache where !kvPair.Value.Exists select kvPair.Value; foreach (Item item in deletedItems) { item.Delete(); } TwoLight_Sortle.Load.FilesCache = TwoLight_Sortle.Load.FilesCache.Where(kvPair => kvPair.Value.Exists). ToDictionary( kvPair => kvPair.Key, kvPair => kvPair.Value); }); Action filesAction = (() => { Tags.TagList = Tags.TagList.LoadFromDisk<Dictionary<string, Tag>>(Path.Combine( Application.UserAppDataPath, "Tags")); TwoLight_Sortle.Load.FilesCache.ToList().ForEach(item => item.Value.Tags.ToList().ForEach(tag => tag.AddedImage(item.Value))); }); settings = new Settings(); Action loadSettingsAction = (() => { settings = settings.LoadFromDisk<Settings>(Path.Combine(Application.UserAppDataPath, "Settings")); }); Action callback = (() => { updateMainListing(search.Items); updateSearchOptionsMenuCheckedStatus(); updatePreferencesPanel(); buildQuickFolderAccessList(); }); Action dirStateAction = (() => { search = new Search(allEnabledItems(), "", settings.SearchOptions); startupComplete = true; }); if (async) { runLongOperation(action, null, "Verifying File Cache Integrity"); runLongOperation(deleteAction, null, "Reticulating Splines"); runLongOperation(filesAction, null, "Loading Tags Cache"); runLongOperation(loadSettingsAction, null, "Loading Directory Data"); runLongOperation(dirStateAction, callback, "Generating Directory State"); } else { action(); deleteAction(); filesAction(); loadSettingsAction(); dirStateAction(); callback(); } }