Add scan and remove books tomain view, remove separate dialog.

This commit is contained in:
Michael Bucari-Tovo 2022-06-10 19:22:54 -06:00
parent 7bcabdda38
commit 52193933b2
17 changed files with 289 additions and 485 deletions

View file

@ -13,10 +13,27 @@ namespace LibationWinForms
// this is for manual scan/import. Unrelated to auto-scan
public partial class Form1
{
private ToolStripButton removeCheckedBtn = new();
private void Configure_ScanManual()
{
this.Load += refreshImportMenu;
AccountsSettingsPersister.Saved += refreshImportMenu;
#region Create and Add Tool Strip Button
removeCheckedBtn.DisplayStyle = ToolStripItemDisplayStyle.Text;
removeCheckedBtn.Name = "removeSelectedBtn";
removeCheckedBtn.Text = "Remove 0 Books";
removeCheckedBtn.AutoToolTip = false;
removeCheckedBtn.ToolTipText = "Remove checked books and series\r\nfrom Libation's database.\r\n\r\nThey will remain in your Audible account.";
removeCheckedBtn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
removeCheckedBtn.Alignment = ToolStripItemAlignment.Left;
removeCheckedBtn.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
removeCheckedBtn.Font = new System.Drawing.Font(removeCheckedBtn.Font, System.Drawing.FontStyle.Bold);
removeCheckedBtn.Click += (_, _) => productsDisplay.RemoveCheckedBooksAsync();
removeCheckedBtn.Visible = false;
statusStrip1.Items.Insert(1, removeCheckedBtn);
#endregion
}
private void refreshImportMenu(object _, EventArgs __)
@ -106,10 +123,37 @@ namespace LibationWinForms
scanLibrariesRemovedBooks(scanAccountsDialog.CheckedAccounts.ToArray());
}
private void scanLibrariesRemovedBooks(params Account[] accounts)
private async void scanLibrariesRemovedBooks(params Account[] accounts)
{
using var dialog = new RemoveBooksDialog(accounts);
dialog.ShowDialog();
//This action is meant to operate on the entire library.
//For removing books within a filter set, use
//Visible Books > Remove from library
filterSearchTb.Enabled = false;
productsDisplay.Filter(null);
removeCheckedBtn.Visible = true;
closeRemoveBooksColumnToolStripMenuItem.Visible = true;
await productsDisplay.ScanAndRemoveBooksAsync(accounts);
}
private void closeRemoveBooksColumnToolStripMenuItem_Click(object sender, EventArgs e)
{
removeCheckedBtn.Visible = false;
closeRemoveBooksColumnToolStripMenuItem.Visible = false;
productsDisplay.CloseRemoveBooksColumn();
//Restore the filter
filterSearchTb.Enabled = true;
performFilter(filterSearchTb.Text);
}
private void productsDisplay_RemovableCountChanged(object sender, int removeCount)
{
removeCheckedBtn.Text = removeCount switch
{
1 => "Remove 1 Book",
_ => $"Remove {removeCount} Books"
};
}
private async Task scanLibrariesAsync(IEnumerable<Account> accounts) => await scanLibrariesAsync(accounts.ToArray());