From b784bd6b8de9a9fec142577696381262ab9ffe6f Mon Sep 17 00:00:00 2001 From: Robert McRackan Date: Wed, 11 May 2022 22:16:15 -0400 Subject: [PATCH] Batch actions for visible books: LIberate complete --- Source/LibationWinForms/Form1.Designer.cs | 28 ++++++++++++------- Source/LibationWinForms/Form1.cs | 33 +++++++++++++++++++---- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/Source/LibationWinForms/Form1.Designer.cs b/Source/LibationWinForms/Form1.Designer.cs index 21c6c13e..fb916fe2 100644 --- a/Source/LibationWinForms/Form1.Designer.cs +++ b/Source/LibationWinForms/Form1.Designer.cs @@ -47,6 +47,7 @@ this.beginBookBackupsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.beginPdfBackupsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.convertAllM4bToMp3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.liberateVisible2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportLibraryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.quickFiltersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -55,7 +56,7 @@ this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.scanningToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.visibleBooksToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.liberateToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.liberateVisibleToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.replaceTagsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.setDownloadedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -214,7 +215,8 @@ this.liberateToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.beginBookBackupsToolStripMenuItem, this.beginPdfBackupsToolStripMenuItem, - this.convertAllM4bToMp3ToolStripMenuItem}); + this.convertAllM4bToMp3ToolStripMenuItem, + this.liberateVisible2ToolStripMenuItem}); this.liberateToolStripMenuItem.Name = "liberateToolStripMenuItem"; this.liberateToolStripMenuItem.Size = new System.Drawing.Size(148, 48); this.liberateToolStripMenuItem.Text = "&Liberate"; @@ -240,6 +242,13 @@ this.convertAllM4bToMp3ToolStripMenuItem.Text = "Convert all &M4b to Mp3 [Long-running]..."; this.convertAllM4bToMp3ToolStripMenuItem.Click += new System.EventHandler(this.convertAllM4bToMp3ToolStripMenuItem_Click); // + // liberateVisible2ToolStripMenuItem + // + this.liberateVisible2ToolStripMenuItem.Name = "liberateVisible2ToolStripMenuItem"; + this.liberateVisible2ToolStripMenuItem.Size = new System.Drawing.Size(728, 54); + this.liberateVisible2ToolStripMenuItem.Text = "Liberate &Visible Books: {0}"; + this.liberateVisible2ToolStripMenuItem.Click += new System.EventHandler(this.liberateVisible); + // // exportToolStripMenuItem // this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { @@ -297,7 +306,7 @@ // visibleBooksToolStripMenuItem // this.visibleBooksToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.liberateToolStripMenuItem1, + this.liberateVisibleToolStripMenuItem, this.replaceTagsToolStripMenuItem, this.setDownloadedToolStripMenuItem, this.removeToolStripMenuItem}); @@ -305,12 +314,12 @@ this.visibleBooksToolStripMenuItem.Size = new System.Drawing.Size(267, 48); this.visibleBooksToolStripMenuItem.Text = "&Visible Books: {0}"; // - // liberateToolStripMenuItem1 + // liberateVisibleToolStripMenuItem // - this.liberateToolStripMenuItem1.Name = "liberateToolStripMenuItem1"; - this.liberateToolStripMenuItem1.Size = new System.Drawing.Size(525, 54); - this.liberateToolStripMenuItem1.Text = "&Liberate"; - this.liberateToolStripMenuItem1.Click += new System.EventHandler(this.liberateToolStripMenuItem1_Click); + this.liberateVisibleToolStripMenuItem.Name = "liberateVisibleToolStripMenuItem"; + this.liberateVisibleToolStripMenuItem.Size = new System.Drawing.Size(525, 54); + this.liberateVisibleToolStripMenuItem.Text = "&Liberate: {0}"; + this.liberateVisibleToolStripMenuItem.Click += new System.EventHandler(this.liberateVisible); // // replaceTagsToolStripMenuItem // @@ -486,9 +495,10 @@ private System.Windows.Forms.ToolStripMenuItem scanningToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem autoScanLibraryToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem visibleBooksToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem liberateToolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem liberateVisibleToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem replaceTagsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem setDownloadedToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem liberateVisible2ToolStripMenuItem; } } diff --git a/Source/LibationWinForms/Form1.cs b/Source/LibationWinForms/Form1.cs index dcfde7b5..eec78937 100644 --- a/Source/LibationWinForms/Form1.cs +++ b/Source/LibationWinForms/Form1.cs @@ -15,10 +15,13 @@ namespace LibationWinForms { public partial class Form1 : Form { - private string visibleBooksToolStripMenuItem_format { get; } private string beginBookBackupsToolStripMenuItem_format { get; } private string beginPdfBackupsToolStripMenuItem_format { get; } + private string visibleBooksToolStripMenuItem_format { get; } + private string liberateVisibleToolStripMenuItem_format { get; } + private string liberateVisible2ToolStripMenuItem_format { get; } + private ProductsGrid productsGrid { get; } public Form1() @@ -30,9 +33,11 @@ namespace LibationWinForms gridPanel.Controls.Add(productsGrid); // back up string formats - visibleBooksToolStripMenuItem_format = visibleBooksToolStripMenuItem.Text; beginBookBackupsToolStripMenuItem_format = beginBookBackupsToolStripMenuItem.Text; beginPdfBackupsToolStripMenuItem_format = beginPdfBackupsToolStripMenuItem.Text; + visibleBooksToolStripMenuItem_format = visibleBooksToolStripMenuItem.Text; + liberateVisibleToolStripMenuItem_format = liberateVisibleToolStripMenuItem.Text; + liberateVisible2ToolStripMenuItem_format = liberateVisible2ToolStripMenuItem.Text; if (this.DesignMode) return; @@ -534,11 +539,29 @@ namespace LibationWinForms => await Task.Run(setLiberatedVisibleMenuItem); void setLiberatedVisibleMenuItem() { - var notLiberated = productsGrid.GetVisible().Any(lb => lb.Book.UserDefinedItem.BookStatus == DataLayer.LiberatedStatus.NotLiberated); - this.UIThreadSync(() => liberateToolStripMenuItem1.Enabled = notLiberated); + var notLiberated = productsGrid.GetVisible().Count(lb => lb.Book.UserDefinedItem.BookStatus == DataLayer.LiberatedStatus.NotLiberated); + this.UIThreadSync(() => + { + if (notLiberated > 0) + { + liberateVisibleToolStripMenuItem.Text = string.Format(liberateVisibleToolStripMenuItem_format, notLiberated); + liberateVisibleToolStripMenuItem.Enabled = true; + + liberateVisible2ToolStripMenuItem.Text = string.Format(liberateVisible2ToolStripMenuItem_format, notLiberated); + liberateVisible2ToolStripMenuItem.Enabled = true; + } + else + { + liberateVisibleToolStripMenuItem.Text = "All visible books are liberated"; + liberateVisibleToolStripMenuItem.Enabled = false; + + liberateVisible2ToolStripMenuItem.Text = "All visible books are liberated"; + liberateVisible2ToolStripMenuItem.Enabled = false; + } + }); } - private async void liberateToolStripMenuItem1_Click(object sender, EventArgs e) + private async void liberateVisible(object sender, EventArgs e) { var visibleBooks = productsGrid.GetVisible(); await BookLiberation.ProcessorAutomationController.BackupAllBooksAsync(visibleBooks);