public void CreateArchive(Metadata metadata, bool deletePagesDirectoryIfNecessary) { string pagesPath; if (PathFormatter.IsEnabled) { pagesPath = PathFormatter.GetPages(metadata); } else { pagesPath = string.Format(CultureInfo.InvariantCulture, "{0}{1}/", PathFormatter.GetCacheDirectory(), metadata.Id); } foreach (IArchiveWriter archiveWriter in ArchiveWriters) { CreateArchive(archiveWriter, metadata, pagesPath); } if (deletePagesDirectoryIfNecessary) { int[] cachedPageIndices = CacheFileSystem.GetCachedPageIndices(metadata.Id); if (cachedPageIndices.Length == metadata.Images.Pages.Count) { Directory.Delete(pagesPath, true); } } }
private void WebBrowser_GalleryDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { int galleryId = (int)webBrowser.Tag; if (!CacheFileSystem.DoesCoverExists(galleryId)) { Metadata cachedMetadata = SearchResultCache.Find(galleryId); CoverDownloaderFilters filters; if (DetailsBrowserSettings.CoverLoadBlockAction == DetailsCoverLoadBlockAction.None) { filters = CoverDownloaderFilters.All; } else if (DetailsBrowserSettings.CoverLoadBlockAction == DetailsCoverLoadBlockAction.Confirm) { bool isInHidelist = MetadataKeywordLists.Hidelist.IsInMetadata(cachedMetadata); if (isInHidelist && MessageBox.Show("This gallery is currently hidden. Do you want to download the cover?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } filters = CoverDownloaderFilters.All & ~CoverDownloaderFilters.Hidelist; } else { filters = CoverDownloaderFilters.None; } CoverDownloader.Download(cachedMetadata, filters); } }
public LibraryTreeView(LibraryFilter libraryFilter, LibraryModel libraryModel, List <IArchiveWriter> archiveWriters, WebBrowserTreeNodeToolTip webBrowserToolTip, SearchHandler searchHandler, ICacheFileSystem cacheFileSystem) { InitializeComponent(); LibraryFilter = libraryFilter; LibraryModel = libraryModel; ArchiveWriters = archiveWriters; SearchHandler = searchHandler; CacheFileSystem = cacheFileSystem as CacheFileSystem; // lazy hack. WebBrowserToolTip = webBrowserToolTip; treeView = new TreeViewEx(); SuspendLayout(); // // // treeView.HideSelection = false; treeView.HotTracking = true; treeView.Dock = DockStyle.Fill; treeView.Sorted = true; treeView.TreeViewNodeSorter = new LibraryTreeViewNodeSorter(LibrarySortType.CreationTime, SortOrder.Descending); treeView.AfterSelect += TreeView_AfterSelect; treeView.NodeActivated += TreeView_NodeActivated; treeView.NodeContextMenuRequested += TreeView_NodeContextMenuRequested; // TODO: add this once I have sorting options //treeViewContextMenu = new ContextMenu(); //treeViewContextMenu.Popup += TreeViewContextMenu_Popup; //treeView.ContextMenu = treeViewContextMenu; // // this // Controls.Add(treeView); LibraryFilter.SortTypeChanged += LibraryFilter_SortTypeChanged; LibraryFilter.SortOrderChanged += LibraryFilter_SortOrderChanged; LibraryFilter.TextChanged += LibraryFilter_TextChanged; LibraryModel.Poll += LibraryModel_Poll; ResumeLayout(false); }
private void ItemContentNodeContextMenu_Popup(object sender, EventArgs e) { ContextMenu contextMenu = sender as ContextMenu; TreeNode treeNode = contextMenu.Tag as TreeNode; AddBookmarkItemTask item = treeNode.Tag as AddBookmarkItemTask; contextMenu.MenuItems.Clear(); if (item != null) { string[] tokens = item.Item.Value.Split(new char[] { ':' }); int galleryId; int pageIndex; string query; int tagId; string tagType; string tagName; if (QueryParser.ParseDetailsSearch(tokens, out galleryId)) { contextMenu.MenuItems.Add(new MenuItem("&Show Details", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); contextMenu.MenuItems.Add("-"); contextMenu.MenuItems.Add(new MenuItem("&Read", (sender2, e2) => { CacheFileSystem.OpenFirstCachedPage(galleryId); })); contextMenu.MenuItems.Add(new MenuItem("&Browse", (sender2, e2) => { CacheFileSystem.SelectFirstCachedPage(galleryId); })); contextMenu.MenuItems.Add(new MenuItem("&Show in Explorer", (sender2, e2) => { CacheFileSystem.SelectPagesFolder(galleryId); })); } else if (QueryParser.ParseDownloadSearch(tokens, out galleryId)) { contextMenu.MenuItems.Add(new MenuItem("&Show Download", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); contextMenu.MenuItems.Add("-"); contextMenu.MenuItems.Add(new MenuItem("&Read", (sender2, e2) => { CacheFileSystem.OpenFirstCachedPage(galleryId); })); contextMenu.MenuItems.Add(new MenuItem("&Browse", (sender2, e2) => { CacheFileSystem.SelectFirstCachedPage(galleryId); })); contextMenu.MenuItems.Add(new MenuItem("&Show in Explorer", (sender2, e2) => { CacheFileSystem.SelectPagesFolder(galleryId); })); } else if (QueryParser.ParseRecentSearch(tokens, out pageIndex)) { contextMenu.MenuItems.Add(new MenuItem("&Recent Search", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); } else if (QueryParser.ParseQuerySearch(tokens, out query, out pageIndex)) { contextMenu.MenuItems.Add(new MenuItem("&Query Search", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); } else if (QueryParser.ParseTaggedSearch(tokens, out tagId, out tagType, out tagName, out pageIndex)) { contextMenu.MenuItems.Add(new MenuItem("&Tagged Search", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); } else if (QueryParser.ParseLibrarySearch(tokens, out pageIndex)) { contextMenu.MenuItems.Add(new MenuItem("&Show in Library", (sender2, e2) => { SearchHandler.ParseAndExecuteSearchText(item.Item.Value); })); } contextMenu.MenuItems.Add("-"); contextMenu.MenuItems.Add(new MenuItem("&Remove bookmark", (sender2, e2) => { WebBrowserToolTip.RemoveToolTip(treeNode); treeNode.Remove(); BookmarksModel.RemoveBookmark(item.Path); }) { Name = "remove" }); // TODO: "move to..." command (to change the bookmark path) } }