* #396 New feature : match download status to files

* UI: Visible Books \> Set 'Downloaded' status automatically. Visible books. Prompts before saving changes
  * CLI: Full library. No prompt
This commit is contained in:
Robert McRackan 2022-12-06 14:58:22 -05:00
parent a54516b4f5
commit c4cebbebe7
23 changed files with 1071 additions and 604 deletions

View file

@ -0,0 +1,108 @@
namespace LibationWinForms.Dialogs
{
partial class LiberatedStatusBatchAutoDialog
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.setDownloadedCb = new System.Windows.Forms.CheckBox();
this.setNotDownloadedCb = new System.Windows.Forms.CheckBox();
this.okBtn = new System.Windows.Forms.Button();
this.cancelBtn = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// setDownloadedCb
//
this.setDownloadedCb.AutoSize = true;
this.setDownloadedCb.Location = new System.Drawing.Point(12, 12);
this.setDownloadedCb.Name = "setDownloadedCb";
this.setDownloadedCb.Size = new System.Drawing.Size(379, 19);
this.setDownloadedCb.TabIndex = 0;
this.setDownloadedCb.Text = "If the audio file can be found, set download status to \'Downloaded\'";
this.setDownloadedCb.UseVisualStyleBackColor = true;
//
// setNotDownloadedCb
//
this.setNotDownloadedCb.AutoSize = true;
this.setNotDownloadedCb.Location = new System.Drawing.Point(12, 37);
this.setNotDownloadedCb.Name = "setNotDownloadedCb";
this.setNotDownloadedCb.Size = new System.Drawing.Size(412, 19);
this.setNotDownloadedCb.TabIndex = 1;
this.setNotDownloadedCb.Text = "If the audio file cannot be found, set download status to \'Not Downloaded\'";
this.setNotDownloadedCb.UseVisualStyleBackColor = true;
//
// okBtn
//
this.okBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.okBtn.Location = new System.Drawing.Point(346, 79);
this.okBtn.Name = "okBtn";
this.okBtn.Size = new System.Drawing.Size(88, 27);
this.okBtn.TabIndex = 2;
this.okBtn.Text = "OK";
this.okBtn.UseVisualStyleBackColor = true;
this.okBtn.Click += new System.EventHandler(this.okBtn_Click);
//
// cancelBtn
//
this.cancelBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.cancelBtn.Location = new System.Drawing.Point(464, 79);
this.cancelBtn.Name = "cancelBtn";
this.cancelBtn.Size = new System.Drawing.Size(88, 27);
this.cancelBtn.TabIndex = 3;
this.cancelBtn.Text = "Cancel";
this.cancelBtn.UseVisualStyleBackColor = true;
//
// LiberatedStatusBatchAutoDialog
//
this.AcceptButton = this.okBtn;
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.cancelBtn;
this.ClientSize = new System.Drawing.Size(564, 118);
this.Controls.Add(this.cancelBtn);
this.Controls.Add(this.okBtn);
this.Controls.Add(this.setNotDownloadedCb);
this.Controls.Add(this.setDownloadedCb);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "LiberatedStatusBatchAutoDialog";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Liberated status: Scan for files";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.CheckBox setDownloadedCb;
private System.Windows.Forms.CheckBox setNotDownloadedCb;
private System.Windows.Forms.Button okBtn;
private System.Windows.Forms.Button cancelBtn;
}
}

View file

@ -0,0 +1,25 @@
using System;
using System.Windows.Forms;
namespace LibationWinForms.Dialogs
{
public partial class LiberatedStatusBatchAutoDialog : Form
{
public bool SetDownloaded { get; private set; }
public bool SetNotDownloaded { get; private set; }
public LiberatedStatusBatchAutoDialog()
{
InitializeComponent();
this.SetLibationIcon();
}
private void okBtn_Click(object sender, EventArgs e)
{
SetDownloaded = this.setDownloadedCb.Checked;
SetNotDownloaded = this.setNotDownloadedCb.Checked;
this.DialogResult = DialogResult.OK;
}
}
}

View file

@ -1,6 +1,6 @@
namespace LibationWinForms.Dialogs
{
partial class LiberatedStatusBatchDialog
partial class LiberatedStatusBatchManualDialog
{
/// <summary>
/// Required designer variable.
@ -72,7 +72,6 @@
this.cancelBtn.TabIndex = 9;
this.cancelBtn.Text = "Cancel";
this.cancelBtn.UseVisualStyleBackColor = true;
this.cancelBtn.Click += new System.EventHandler(this.cancelBtn_Click);
//
// saveBtn
//
@ -86,7 +85,7 @@
this.saveBtn.UseVisualStyleBackColor = true;
this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
//
// LiberatedStatusBatchDialog
// LiberatedStatusBatchManualDialog
//
this.AcceptButton = this.saveBtn;
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
@ -101,7 +100,7 @@
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "LiberatedStatusBatchDialog";
this.Name = "LiberatedStatusBatchManualDialog";
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
this.Text = "Liberated status: Whether the book has been downloaded";

View file

@ -8,7 +8,7 @@ using LibationFileManager;
namespace LibationWinForms.Dialogs
{
public partial class LiberatedStatusBatchDialog : Form
public partial class LiberatedStatusBatchManualDialog : Form
{
public LiberatedStatus BookLiberatedStatus { get; private set; }
@ -19,7 +19,7 @@ namespace LibationWinForms.Dialogs
public override string ToString() => Text;
}
public LiberatedStatusBatchDialog()
public LiberatedStatusBatchManualDialog()
{
InitializeComponent();
this.SetLibationIcon();
@ -35,11 +35,5 @@ namespace LibationWinForms.Dialogs
BookLiberatedStatus = ((liberatedComboBoxItem)this.bookLiberatedCb.SelectedItem).Status;
this.DialogResult = DialogResult.OK;
}
private void cancelBtn_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
this.Close();
}
}
}

View file

@ -0,0 +1,60 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>