diff options
Diffstat (limited to 'win/CS/ToolWindows/BatchAdd.cs')
-rw-r--r-- | win/CS/ToolWindows/BatchAdd.cs | 85 |
1 files changed, 75 insertions, 10 deletions
diff --git a/win/CS/ToolWindows/BatchAdd.cs b/win/CS/ToolWindows/BatchAdd.cs index fbb864e70..25b6d4abc 100644 --- a/win/CS/ToolWindows/BatchAdd.cs +++ b/win/CS/ToolWindows/BatchAdd.cs @@ -6,9 +6,11 @@ namespace Handbrake.ToolWindows
{
using System;
+ using System.Linq;
using System.Windows.Forms;
using HandBrake.ApplicationServices;
+ using HandBrake.ApplicationServices.Parsing;
using HandBrake.ApplicationServices.Services.Interfaces;
/// <summary>
@@ -17,20 +19,35 @@ namespace Handbrake.ToolWindows public partial class BatchAdd : Form
{
/// <summary>
+ /// The standard display count texts
+ /// </summary>
+ private const string DisplayAddCount = "This will add {0} items.";
+
+ /// <summary>
+ /// The Source Data (IF Available)
+ /// </summary>
+ private readonly Source sourceData;
+
+ /// <summary>
/// The User Setting Service.
/// </summary>
private readonly IUserSettingService UserSettingService = ServiceManager.UserSettingService;
-
+
/// <summary>
/// Initializes a new instance of the <see cref="BatchAdd"/> class.
/// </summary>
- public BatchAdd()
+ /// <param name="sourceData">
+ /// The source Data.
+ /// </param>
+ public BatchAdd(Source sourceData)
{
+ this.sourceData = sourceData;
InitializeComponent();
// Get the Default values for batch encoding.
- this.minDuration.Text = this.UserSettingService.GetUserSetting<int>(UserSettingConstants.BatchMinDuration).ToString();
- this.maxDuration.Text = this.UserSettingService.GetUserSetting<int>(UserSettingConstants.BatchMaxDuration).ToString();
+ this.minDuration.Text = this.UserSettingService.GetUserSetting<string>(UserSettingConstants.BatchMinDuration);
+ this.maxDuration.Text = this.UserSettingService.GetUserSetting<string>(UserSettingConstants.BatchMaxDuration);
+ this.UpdateEncodeDisplay();
}
/// <summary>
@@ -50,18 +67,20 @@ namespace Handbrake.ToolWindows /// <param name="e">The EventArgs</param>
private void BtnScanClick(object sender, EventArgs e)
{
+ this.UserSettingService.SetUserSetting(UserSettingConstants.BatchMinDuration, this.minDuration.Text);
+ this.UserSettingService.SetUserSetting(UserSettingConstants.BatchMaxDuration, this.maxDuration.Text);
this.DialogResult = DialogResult.OK;
}
/// <summary>
/// Gets the minimum duration that the user entered.
/// </summary>
- public int Min
+ public TimeSpan Min
{
get
{
- int title;
- int.TryParse(this.minDuration.Text, out title);
+ TimeSpan title;
+ TimeSpan.TryParse(this.minDuration.Text, out title);
return title;
}
@@ -70,15 +89,61 @@ namespace Handbrake.ToolWindows /// <summary>
/// Gets the maximum duration that the user entered.
/// </summary>
- public int Max
+ public TimeSpan Max
{
get
{
- int title;
- int.TryParse(this.maxDuration.Text, out title);
+ TimeSpan title;
+ TimeSpan.TryParse(this.maxDuration.Text, out title);
return title;
}
}
+
+ /// <summary>
+ /// Update the Display which shows the number of titles that will be added.
+ /// </summary>
+ private void UpdateEncodeDisplay()
+ {
+ int count = this.sourceData.Titles.Count(title => title.Duration.TotalSeconds > this.Min.TotalSeconds && title.Duration.TotalSeconds < this.Max.TotalSeconds);
+
+ if (count > 0)
+ {
+ lbl_display.Text = string.Format(DisplayAddCount, count);
+ lbl_display.Visible = true;
+ }
+ else
+ {
+ lbl_display.Visible = false;
+ }
+ }
+
+ /// <summary>
+ /// Min Duration has changed.
+ /// </summary>
+ /// <param name="sender">
+ /// The sender.
+ /// </param>
+ /// <param name="e">
+ /// The e.
+ /// </param>
+ private void minDuration_TextChanged(object sender, EventArgs e)
+ {
+ this.UpdateEncodeDisplay();
+ }
+
+ /// <summary>
+ /// Max duration was changed
+ /// </summary>
+ /// <param name="sender">
+ /// The sender.
+ /// </param>
+ /// <param name="e">
+ /// The e.
+ /// </param>
+ private void maxDuration_TextChanged(object sender, EventArgs e)
+ {
+ this.UpdateEncodeDisplay();
+ }
}
}
\ No newline at end of file |