X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=win%2FC%23%2FfrmMain.cs;h=2f1467625931789930468ba84439032b443be03b;hb=4560ade3c833f282f02d15a9473e233488617df9;hp=a5b131b7e8cc9a6d41a41edad246f77f32f0cc38;hpb=7d2ca8eb7a98bd3dab77f7be08487be9cc4c368e;p=handbrake-jp%2Fhandbrake-jp-git.git
diff --git a/win/C#/frmMain.cs b/win/C#/frmMain.cs
index a5b131b7..2f146762 100644
--- a/win/C#/frmMain.cs
+++ b/win/C#/frmMain.cs
@@ -16,12 +16,17 @@ namespace Handbrake
using System.Windows.Forms;
using Functions;
+ using HandBrake.Framework.Model;
+ using HandBrake.Framework.Services;
+ using HandBrake.Framework.Views;
using HandBrake.ApplicationServices.Functions;
using HandBrake.ApplicationServices.Model;
using HandBrake.ApplicationServices.Parsing;
using HandBrake.ApplicationServices.Services;
using HandBrake.ApplicationServices.Services.Interfaces;
+ using Handbrake.ToolWindows;
+
using Model;
using Presets;
using Properties;
@@ -72,6 +77,11 @@ namespace Handbrake
return this.dvdDriveLabel;
}
+ if (selectedTitle != null && !string.IsNullOrEmpty(selectedTitle.SourceName))
+ {
+ return Path.GetFileName(selectedTitle.SourceName);
+ }
+
if (Path.GetFileNameWithoutExtension(this.sourcePath) != "VIDEO_TS")
return Path.GetFileNameWithoutExtension(this.sourcePath);
@@ -106,7 +116,13 @@ namespace Handbrake
{
if (DateTime.Now.Subtract(Settings.Default.lastUpdateCheckDate).TotalDays > Properties.Settings.Default.daysBetweenUpdateCheck)
{
- Main.BeginCheckForUpdates(new AsyncCallback(UpdateCheckDone), false);
+ // Set when the last update was
+ Settings.Default.lastUpdateCheckDate = DateTime.Now;
+ Settings.Default.Save();
+ string url = Settings.Default.hb_build.ToString().EndsWith("1")
+ ? Settings.Default.appcast_unstable
+ : Settings.Default.appcast;
+ UpdateService.BeginCheckForUpdates(new AsyncCallback(UpdateCheckDone), false, url, Settings.Default.hb_build, Settings.Default.skipversion, Settings.Default.hb_version);
}
}
@@ -172,15 +188,13 @@ namespace Handbrake
return;
}
- UpdateCheckInformation info;
-
try
{
- info = Main.EndCheckForUpdates(result);
+ UpdateCheckInformation info = UpdateService.EndCheckForUpdates(result);
if (info.NewVersionAvailable)
{
- frmUpdater updateWindow = new frmUpdater(info.BuildInformation);
+ UpdateInfo updateWindow = new UpdateInfo(info.BuildInformation, Settings.Default.hb_version, Settings.Default.hb_build.ToString());
updateWindow.ShowDialog();
}
}
@@ -209,6 +223,10 @@ namespace Handbrake
encodeQueue.EncodeStarted += new EventHandler(encodeStarted);
encodeQueue.EncodeEnded += new EventHandler(encodeEnded);
+ // Scan Started and Completed Events
+ SourceScan.ScanStatusChanged += new EventHandler(SourceScan_ScanStatusChanged);
+ SourceScan.ScanCompleted += new EventHandler(SourceScan_ScanCompleted);
+
// Handle a file being draged onto the GUI.
this.DragEnter += new DragEventHandler(frmMain_DragEnter);
this.DragDrop += new DragEventHandler(frmMain_DragDrop);
@@ -530,7 +548,12 @@ namespace Handbrake
private void mnu_UpdateCheck_Click(object sender, EventArgs e)
{
lbl_updateCheck.Visible = true;
- Main.BeginCheckForUpdates(new AsyncCallback(this.UpdateCheckDoneMenu), false);
+ Settings.Default.lastUpdateCheckDate = DateTime.Now;
+ Settings.Default.Save();
+ string url = Settings.Default.hb_build.ToString().EndsWith("1")
+ ? Settings.Default.appcast_unstable
+ : Settings.Default.appcast;
+ UpdateService.BeginCheckForUpdates(new AsyncCallback(UpdateCheckDoneMenu), false, url, Settings.Default.hb_build, Settings.Default.skipversion, Settings.Default.hb_version);
}
///
@@ -774,6 +797,29 @@ namespace Handbrake
}
///
+ /// When the mouse moves, display a preset
+ ///
+ /// The Sender
+ /// the MouseEventArgs
+ private void TreeViewPresetsMouseMove(object sender, MouseEventArgs e)
+ {
+ TreeNode theNode = this.treeView_presets.GetNodeAt(e.X, e.Y);
+
+ if ((theNode != null))
+ {
+ // Change the ToolTip only if the pointer moved to a new node.
+ if (theNode.ToolTipText != this.ToolTip.GetToolTip(this.treeView_presets))
+ {
+ this.ToolTip.SetToolTip(this.treeView_presets, theNode.ToolTipText);
+ }
+ }
+ else // Pointer is not over a node so clear the ToolTip.
+ {
+ this.ToolTip.SetToolTip(this.treeView_presets, string.Empty);
+ }
+ }
+
+ ///
/// Preset Bar - Handle the Delete Key
///
///
@@ -893,7 +939,7 @@ namespace Handbrake
PresetLoader.LoadPreset(this, parsed, parsed.PresetName);
if (presetHandler.Add(parsed.PresetName + " (Imported)",
QueryGenerator.GenerateFullQuery(this),
- parsed.UsesPictureSettings))
+ parsed.UsesPictureSettings, string.Empty))
{
TreeNode preset_treeview = new TreeNode(parsed.PresetName + " (Imported)")
{
@@ -910,21 +956,16 @@ namespace Handbrake
///
private void ExportPreset()
{
- MessageBox.Show("This feature has not been implimented yet.", "Not Implimented", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
-
- /*SaveFileDialog savefiledialog = new SaveFileDialog();
- savefiledialog.Filter = "plist|*.plist";
+ SaveFileDialog savefiledialog = new SaveFileDialog { Filter = "plist|*.plist" };
if (treeView_presets.SelectedNode != null)
{
-
if (savefiledialog.ShowDialog() == DialogResult.OK)
{
Preset preset = presetHandler.GetPreset(treeView_presets.SelectedNode.Text);
PlistPresetHandler.Export(savefiledialog.FileName, preset);
}
- }*/
+ }
}
#endregion
@@ -1090,7 +1131,64 @@ namespace Handbrake
///
private void btn_add2Queue_Click(object sender, EventArgs e)
{
- // Get the CLI query or use the query editor if it's not empty.
+ // Add the item to the queue.
+ AddItemToQueue(true);
+ queueWindow.Show();
+ }
+
+ ///
+ /// Add Multiple Items to the Queue at once.
+ ///
+ /// The Sender
+ /// The EventArgs
+ private void MnuAddMultiToQueueClick(object sender, EventArgs e)
+ {
+ if (!Settings.Default.autoNaming)
+ {
+ MessageBox.Show("Destination Auto Naming must be enabled in preferences for this feature to work.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ if (this.SourceScan.SouceData == null)
+ {
+ MessageBox.Show("You must first scan a source or collection of source to use this feature.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+ return;
+ }
+
+ BatchAdd batchAdd = new BatchAdd();
+ if (batchAdd.ShowDialog() == DialogResult.OK)
+ {
+ int min = batchAdd.Min;
+ int max = batchAdd.Max;
+ bool errors = false;
+
+ foreach (Title title in this.SourceScan.SouceData.Titles)
+ {
+ if (title.Duration.TotalMinutes > min && title.Duration.TotalMinutes < max)
+ {
+ // Add to Queue
+ this.drp_dvdtitle.SelectedItem = title;
+
+ if (!this.AddItemToQueue(false))
+ {
+ errors = true;
+ }
+ }
+ }
+
+ if (errors)
+ {
+ MessageBox.Show(
+ "One or more items could not be added to the queue. You should check your queue and manually add any missing jobs.",
+ "Warning",
+ MessageBoxButtons.OK,
+ MessageBoxIcon.Warning);
+ }
+ }
+ }
+
+ private bool AddItemToQueue(bool showError)
+ {
string query = QueryGenerator.GenerateFullQuery(this);
if (!string.IsNullOrEmpty(rtf_query.Text))
query = rtf_query.Text;
@@ -1102,33 +1200,48 @@ namespace Handbrake
// Make sure we have a Source and Destination.
if (string.IsNullOrEmpty(jobSourcePath) || string.IsNullOrEmpty(jobDestination))
{
- MessageBox.Show("No source or destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
+ if (showError)
+ MessageBox.Show("No source or destination selected.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return false;
}
// Make sure the destination path exists.
if (!Directory.Exists(Path.GetDirectoryName(jobDestination)))
{
- MessageBox.Show("Destination Path does not exist.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
- return;
+ if (showError)
+ MessageBox.Show(string.Format("Destination Path does not exist.\nPath: {0}\n\nThis item was not added to the Queue.", Path.GetDirectoryName(jobDestination)), "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
+ return false;
}
// Make sure we don't have a duplciate on the queue.
if (encodeQueue.CheckForDestinationDuplicate(jobDestination))
{
- DialogResult result =
- MessageBox.Show(
- "There is already a queue item for this destination path. \n\n If you continue, the encode will be overwritten. Do you wish to continue?",
- "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
- if (result == DialogResult.Yes)
- encodeQueue.Add(query, this.GetTitle(), jobSourcePath, jobDestination, (rtf_query.Text != string.Empty));
+ if (showError)
+ {
+ DialogResult result;
+ result =
+ MessageBox.Show(
+ string.Format(
+ "There is already a queue item for this destination path.\nDestination Path: {0} \n\nIf you continue, the encode will be overwritten. Do you wish to continue?",
+ jobDestination),
+ "Warning",
+ MessageBoxButtons.YesNo,
+ MessageBoxIcon.Warning);
+
+ if (result != DialogResult.Yes) return false;
+ }
+ else
+ {
+ return false;
+ }
}
- else
- encodeQueue.Add(query, this.GetTitle(), jobSourcePath, jobDestination, (rtf_query.Text != string.Empty));
+
+ // Add the job.
+ encodeQueue.Add(query, this.GetTitle(), jobSourcePath, jobDestination, (rtf_query.Text != string.Empty));
lbl_encode.Text = encodeQueue.Count + " encode(s) pending in the queue";
- queueWindow.Show();
+ return true;
}
///
@@ -1259,29 +1372,31 @@ namespace Handbrake
#region Main Window and Tab Control
// Source
- private void btn_dvd_source_Click(object sender, EventArgs e)
+ private void BtnFolderScanClicked(object sender, EventArgs e)
{
+ this.btn_source.HideDropDown();
if (DVD_Open.ShowDialog() == DialogResult.OK)
{
this.selectedSourceType = SourceType.Folder;
- SelectSource(DVD_Open.SelectedPath);
+ SelectSource(DVD_Open.SelectedPath, 0);
}
else
UpdateSourceLabel();
}
- private void btn_file_source_Click(object sender, EventArgs e)
+ private void BtnFileScanClicked(object sender, EventArgs e)
{
+ this.btn_source.HideDropDown();
if (ISO_Open.ShowDialog() == DialogResult.OK)
{
this.selectedSourceType = SourceType.VideoFile;
- SelectSource(ISO_Open.FileName);
+ SelectSource(ISO_Open.FileName, 0);
}
else
UpdateSourceLabel();
}
- private void mnu_dvd_drive_Click(object sender, EventArgs e)
+ private void MnuDvdDriveClick(object sender, EventArgs e)
{
ToolStripMenuItem item = sender as ToolStripMenuItem;
if (item != null)
@@ -1295,12 +1410,50 @@ namespace Handbrake
if (this.dvdDrivePath == null) return;
this.selectedSourceType = SourceType.DvdDrive;
- SelectSource(this.dvdDrivePath);
+ SelectSource(this.dvdDrivePath, 0);
+ }
+ }
+ }
+
+ private void VideoTitleSpecificScanClick(object sender, EventArgs e)
+ {
+ this.btn_source.HideDropDown();
+ if (ISO_Open.ShowDialog() == DialogResult.OK)
+ {
+ this.selectedSourceType = SourceType.VideoFile;
+
+ int sourceTitle = 0;
+ TitleSpecificScan title = new TitleSpecificScan();
+ if (title.ShowDialog() == DialogResult.OK)
+ {
+ sourceTitle = title.Title;
+ SelectSource(ISO_Open.FileName, sourceTitle);
}
}
+ else
+ UpdateSourceLabel();
}
- private void SelectSource(string file)
+ private void FolderTitleSpecificScanClick(object sender, EventArgs e)
+ {
+ this.btn_source.HideDropDown();
+ if (DVD_Open.ShowDialog() == DialogResult.OK)
+ {
+ this.selectedSourceType = SourceType.Folder;
+
+ int sourceTitle = 0;
+ TitleSpecificScan title = new TitleSpecificScan();
+ if (title.ShowDialog() == DialogResult.OK)
+ {
+ sourceTitle = title.Title;
+ SelectSource(DVD_Open.SelectedPath, sourceTitle);
+ }
+ }
+ else
+ UpdateSourceLabel();
+ }
+
+ private void SelectSource(string file, int titleSpecific)
{
Check_ChapterMarkers.Enabled = true;
sourcePath = string.Empty;
@@ -1312,7 +1465,7 @@ namespace Handbrake
}
sourcePath = Path.GetFileName(file);
- StartScan(file, 0);
+ StartScan(file, titleSpecific);
}
private void drp_dvdtitle_Click(object sender, EventArgs e)
@@ -1350,6 +1503,12 @@ namespace Handbrake
for (int i = 1; i <= selectedTitle.AngleCount; i++)
drop_angle.Items.Add(i.ToString());
+ if (drop_angle.Items.Count == 0)
+ {
+ drop_angle.Visible = false;
+ lbl_angle.Visible = false;
+ }
+
if (drop_angle.Items.Count != 0)
drop_angle.SelectedIndex = 0;
}
@@ -1372,7 +1531,7 @@ namespace Handbrake
drop_chapterFinish.Text = drop_chapterFinish.Items[drop_chapterFinish.Items.Count - 1].ToString();
// Populate the Audio Channels Dropdown
- AudioSettings.SetTrackList(selectedTitle, this.currentlySelectedPreset);
+ AudioSettings.SetTrackListFromPreset(selectedTitle, this.currentlySelectedPreset);
// Populate the Subtitles dropdown
Subtitles.SetSubtitleTrackAuto(selectedTitle.Subtitles.ToArray());
@@ -1380,7 +1539,7 @@ namespace Handbrake
// Update the source label if we have multiple streams
if (selectedTitle != null)
if (!string.IsNullOrEmpty(selectedTitle.SourceName))
- labelSource.Text = labelSource.Text = Path.GetFileName(selectedTitle.SourceName);
+ labelSource.Text = Path.GetFileName(selectedTitle.SourceName);
// Run the AutoName & ChapterNaming functions
if (Properties.Settings.Default.autoNaming)
@@ -1397,7 +1556,7 @@ namespace Handbrake
data_chpt.Rows.Clear();
if (selectedTitle.Chapters.Count != 1)
{
- DataGridView chapterGridView = Main.ChapterNaming(data_chpt, drop_chapterFinish.Text);
+ DataGridView chapterGridView = Main.ChapterNaming(selectedTitle, data_chpt, drop_chapterFinish.Text);
if (chapterGridView != null)
data_chpt = chapterGridView;
}
@@ -1899,7 +2058,7 @@ namespace Handbrake
private void mnu_resetChapters_Click(object sender, EventArgs e)
{
data_chpt.Rows.Clear();
- DataGridView chapterGridView = Main.ChapterNaming(data_chpt, drop_chapterFinish.Text);
+ DataGridView chapterGridView = Main.ChapterNaming(selectedTitle, data_chpt, drop_chapterFinish.Text);
if (chapterGridView != null)
{
data_chpt = chapterGridView;
@@ -1943,8 +2102,6 @@ namespace Handbrake
try
{
SourceScan.Scan(sourcePath, title);
- SourceScan.ScanStatusChanged += new EventHandler(SourceScan_ScanStatusChanged);
- SourceScan.ScanCompleted += new EventHandler(SourceScan_ScanCompleted);
}
catch (Exception exc)
{
@@ -1990,7 +2147,7 @@ namespace Handbrake
BeginInvoke(new UpdateWindowHandler(UpdateScanStatusLabel));
return;
}
- lbl_encode.Text = SourceScan.ScanStatus;
+ labelSource.Text = SourceScan.ScanStatus;
}
///
@@ -2071,7 +2228,6 @@ namespace Handbrake
{
if (InvokeRequired)
BeginInvoke(new UpdateWindowHandler(EnableGUI));
- lbl_encode.Text = "Scan Completed";
foreach (Control ctrl in Controls)
ctrl.Enabled = true;
btn_start.Enabled = true;
@@ -2096,8 +2252,9 @@ namespace Handbrake
if (!(ctrl is StatusStrip || ctrl is MenuStrip || ctrl is ToolStrip))
ctrl.Enabled = false;
- lbl_encode.Visible = true;
- lbl_encode.Text = "Scanning ...";
+ labelSource.Enabled = true;
+ labelStaticSource.Enabled = true;
+ SourceLayoutPanel.Enabled = true;
btn_source.Enabled = false;
btn_start.Enabled = false;
btn_showQueue.Enabled = false;
@@ -2117,7 +2274,7 @@ namespace Handbrake
SourceScan.Stop();
- lbl_encode.Text = "Scan Cancelled!";
+ labelSource.Text = "Scan Cancelled";
}
///
@@ -2141,11 +2298,6 @@ namespace Handbrake
private void UpdateSourceLabel()
{
labelSource.Text = string.IsNullOrEmpty(sourcePath) ? "Select \"Source\" to continue." : this.SourceName;
-
- if (selectedTitle != null)
- if (!string.IsNullOrEmpty(selectedTitle.SourceName))
- // If it's one of multiple source files, make sure we don't use the folder name
- labelSource.Text = Path.GetFileName(selectedTitle.SourceName);
}
///
@@ -2296,7 +2448,7 @@ namespace Handbrake
Text = drive.RootDirectory + " (" + drive.VolumeLabel + ")",
Image = Resources.disc_small
};
- menuItem.Click += new EventHandler(mnu_dvd_drive_Click);
+ menuItem.Click += new EventHandler(MnuDvdDriveClick);
menuItems.Add(menuItem);
}
@@ -2360,11 +2512,11 @@ namespace Handbrake
try
{
// Get the information about the new build, if any, and close the window
- info = Main.EndCheckForUpdates(result);
+ info = UpdateService.EndCheckForUpdates(result);
if (info.NewVersionAvailable && info.BuildInformation != null)
{
- frmUpdater updateWindow = new frmUpdater(info.BuildInformation);
+ UpdateInfo updateWindow = new UpdateInfo(info.BuildInformation, Settings.Default.hb_version, Settings.Default.hb_build.ToString());
updateWindow.ShowDialog();
}
else
@@ -2400,7 +2552,7 @@ namespace Handbrake
return true;
}
- if (keyData == (Keys.Control | Keys.A))
+ if (keyData == (Keys.Control | Keys.Shift | Keys.A))
{
btn_add2Queue_Click(this, new EventArgs());
return true;