Batch actions for visible books: LIberate complete

This commit is contained in:
Robert McRackan 2022-05-11 22:16:15 -04:00
parent 00df6da366
commit b784bd6b8d
2 changed files with 47 additions and 14 deletions

View File

@ -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;
}
}

View File

@ -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);