X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=win%2FC%23%2FfrmQueue.cs;h=51dafd032718a2b2655e177f9809adf1f46e3754;hb=09f854c0f5519faa2cc67f364ee747888d948d24;hp=39f54823671b0eb8eb366356f4de756ae2901171;hpb=84bcdb80d322aeb299cbd6df93ff24ca2d1cbc98;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/win/C#/frmQueue.cs b/win/C#/frmQueue.cs index 39f54823..51dafd03 100644 --- a/win/C#/frmQueue.cs +++ b/win/C#/frmQueue.cs @@ -4,50 +4,61 @@ Homepage: . It may be used under the terms of the GNU General Public License. */ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Windows.Forms; - namespace Handbrake { + using System; + using System.Collections.Generic; + using System.Collections.ObjectModel; + using System.ComponentModel; + using System.Windows.Forms; + using Functions; + using Model; + using Services; + public partial class frmQueue : Form { private delegate void UpdateHandler(); - Queue.QueueHandler queue; - public frmQueue(Queue.QueueHandler q) + private Queue queue; + private frmMain mainWindow; + + public frmQueue(Queue q, frmMain mw) { InitializeComponent(); + this.mainWindow = mw; + this.queue = q; - queue.OnEncodeStart += new EventHandler(queue_OnEncodeStart); - queue.OnQueueFinished += new EventHandler(queue_OnQueueFinished); - queue.OnPaused += new EventHandler(queue_OnPaused); + queue.EncodeStarted += new EventHandler(QueueOnEncodeStart); + queue.QueueCompleted += new EventHandler(QueueOnQueueFinished); + queue.QueuePauseRequested += new EventHandler(QueueOnPaused); } - void queue_OnPaused(object sender, EventArgs e) + + private void QueueOnPaused(object sender, EventArgs e) { - setUIEncodeFinished(); - updateUIElements(); + SetUIEncodeFinished(); + UpdateUIElements(); } - void queue_OnQueueFinished(object sender, EventArgs e) + + private void QueueOnQueueFinished(object sender, EventArgs e) { - setUIEncodeFinished(); - resetQueue(); // Reset the Queue Window + SetUIEncodeFinished(); + ResetQueue(); // Reset the Queue Window } - void queue_OnEncodeStart(object sender, EventArgs e) + + private void QueueOnEncodeStart(object sender, EventArgs e) { - setUIEncodeStarted(); // make sure the UI is set correctly - setCurrentEncodeInformation(); - updateUIElements(); // Redraw the Queue, a new encode has started. + SetUIEncodeStarted(); // make sure the UI is set correctly + SetCurrentEncodeInformation(); + UpdateUIElements(); // Redraw the Queue, a new encode has started. } /// /// Initializes the Queue list with the Arraylist from the Queue class /// - public void setQueue() + public void SetQueue() { - updateUIElements(); + UpdateUIElements(); } /// @@ -64,58 +75,64 @@ namespace Handbrake /// Indicates whether to call setQueue() before showing the window public void Show(bool doSetQueue) { - if (doSetQueue) setQueue(); + if (doSetQueue) SetQueue(); base.Show(); - Activate(); + + // Activate(); } // Start and Stop Controls private void btn_encode_Click(object sender, EventArgs e) { - if (queue.isPaused) + if (queue.PauseRequested) { - setUIEncodeStarted(); + SetUIEncodeStarted(); MessageBox.Show("Encoding restarted", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } - if (!queue.isEncodeStarted) - queue.startEncode(); - + if (!queue.IsEncoding) + queue.Start(); } + private void btn_pause_Click(object sender, EventArgs e) { - queue.pauseEncode(); - setUIEncodeFinished(); - resetQueue(); - MessageBox.Show("No further items on the queue will start. The current encode process will continue until it is finished. \nClick 'Encode' when you wish to continue encoding the queue.", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); + queue.Pause(); + SetUIEncodeFinished(); + ResetQueue(); + MessageBox.Show( + "No further items on the queue will start. The current encode process will continue until it is finished. \nClick 'Encode' when you wish to continue encoding the queue.", + "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } + // Window Display Management - private void setUIEncodeStarted() + private void SetUIEncodeStarted() { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(setUIEncodeStarted)); + BeginInvoke(new UpdateHandler(SetUIEncodeStarted)); return; } btn_encode.Enabled = false; btn_pause.Visible = true; } - private void setUIEncodeFinished() + + private void SetUIEncodeFinished() { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(setUIEncodeFinished)); + BeginInvoke(new UpdateHandler(SetUIEncodeFinished)); return; } btn_pause.Visible = false; btn_encode.Enabled = true; } - private void resetQueue() + + private void ResetQueue() { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(resetQueue)); + BeginInvoke(new UpdateHandler(ResetQueue)); return; } btn_pause.Visible = false; @@ -130,20 +147,21 @@ namespace Handbrake lbl_encodesPending.Text = list_queue.Items.Count + " encode(s) pending"; } - private void redrawQueue() + + private void RedrawQueue() { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(redrawQueue)); + BeginInvoke(new UpdateHandler(RedrawQueue)); return; } list_queue.Items.Clear(); - List theQueue = queue.getQueue(); - foreach (Queue.QueueItem queue_item in theQueue) + ReadOnlyCollection theQueue = queue.CurrentQueue; + foreach (Job queue_item in theQueue) { string q_item = queue_item.Query; - Functions.QueryParser parsed = Functions.QueryParser.Parse(q_item); + QueryParser parsed = Functions.QueryParser.Parse(q_item); // Get the DVD Title string title = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString(); @@ -168,9 +186,9 @@ namespace Handbrake // Display The Audio Track Information string audio = string.Empty; - foreach (Functions.AudioTrack track in parsed.AudioInformation) + foreach (AudioTrack track in parsed.AudioInformation) { - if (audio != "") + if (audio != string.Empty) audio += ", " + track.Encoder; else audio = track.Encoder; @@ -180,30 +198,32 @@ namespace Handbrake list_queue.Items.Add(item); } } - private void updateUIElements() + + private void UpdateUIElements() { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(updateUIElements)); + BeginInvoke(new UpdateHandler(UpdateUIElements)); return; } - redrawQueue(); + RedrawQueue(); lbl_encodesPending.Text = list_queue.Items.Count + " encode(s) pending"; } - private void setCurrentEncodeInformation() + + private void SetCurrentEncodeInformation() { try { if (InvokeRequired) { - BeginInvoke(new UpdateHandler(setCurrentEncodeInformation)); + BeginInvoke(new UpdateHandler(SetCurrentEncodeInformation)); } // found query is a global varible - Functions.QueryParser parsed = Functions.QueryParser.Parse(queue.lastQueueItem.Query); - lbl_source.Text = queue.lastQueueItem.Source; - lbl_dest.Text = queue.lastQueueItem.Destination; + QueryParser parsed = Functions.QueryParser.Parse(queue.LastEncode.Query); + lbl_source.Text = queue.LastEncode.Source; + lbl_dest.Text = queue.LastEncode.Destination; lbl_title.Text = parsed.DVDTitle == 0 ? "Auto" : parsed.DVDTitle.ToString(); @@ -221,9 +241,9 @@ namespace Handbrake // Display The Audio Track Information string audio = string.Empty; - foreach (Functions.AudioTrack track in parsed.AudioInformation) + foreach (AudioTrack track in parsed.AudioInformation) { - if (audio != "") + if (audio != string.Empty) audio += ", " + track.Encoder; else audio = track.Encoder; @@ -235,7 +255,8 @@ namespace Handbrake // Do Nothing } } - private void deleteSelectedItems() + + private void DeleteSelectedItems() { // If there are selected items if (list_queue.SelectedIndices.Count > 0) @@ -252,10 +273,9 @@ namespace Handbrake // Remove each selected item foreach (int selectedIndex in selectedIndices) - queue.remove(selectedIndex); + queue.Remove(selectedIndex); - queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file - updateUIElements(); + UpdateUIElements(); // Select the item where the first deleted item was previously if (firstSelectedIndex < list_queue.Items.Count) @@ -268,34 +288,41 @@ namespace Handbrake // Queue Management private void mnu_up_Click(object sender, EventArgs e) { - moveUp(); + MoveUp(); } + private void mnu_Down_Click(object sender, EventArgs e) { - moveDown(); + MoveDown(); } + private void mnu_delete_Click(object sender, EventArgs e) { - deleteSelectedItems(); + DeleteSelectedItems(); } + private void btn_up_Click(object sender, EventArgs e) { - moveUp(); + MoveUp(); } + private void btn_down_Click(object sender, EventArgs e) { - moveDown(); + MoveDown(); } + private void btn_delete_Click(object sender, EventArgs e) { - deleteSelectedItems(); + DeleteSelectedItems(); } + private void list_queue_deleteKey(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) - deleteSelectedItems(); + DeleteSelectedItems(); } - private void moveUp() + + private void MoveUp() { // If there are selected items and the first item is not selected if (list_queue.SelectedIndices.Count > 0 && !list_queue.SelectedIndices.Contains(0)) @@ -307,10 +334,9 @@ namespace Handbrake // Move up each selected item foreach (int selectedIndex in selectedIndices) - queue.moveUp(selectedIndex); + queue.MoveUp(selectedIndex); - queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file - updateUIElements(); + UpdateUIElements(); // Keep the selected item(s) selected, now moved up one index foreach (int selectedIndex in selectedIndices) @@ -320,7 +346,8 @@ namespace Handbrake list_queue.Select(); // Activate the control to show the selected items } - private void moveDown() + + private void MoveDown() { // If there are selected items and the last item is not selected if (list_queue.SelectedIndices.Count > 0 && @@ -336,10 +363,9 @@ namespace Handbrake // Move down each selected item foreach (int selectedIndex in selectedIndices) - queue.moveDown(selectedIndex); + queue.MoveDown(selectedIndex); - queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file - updateUIElements(); + UpdateUIElements(); // Keep the selected item(s) selected, now moved down one index foreach (int selectedIndex in selectedIndices) @@ -353,38 +379,59 @@ namespace Handbrake // Queue Import/Export Features private void mnu_batch_Click(object sender, EventArgs e) { - SaveFile.FileName = ""; + SaveFile.FileName = string.Empty; SaveFile.Filter = "Batch|.bat"; SaveFile.ShowDialog(); if (SaveFile.FileName != String.Empty) - queue.writeBatchScript(SaveFile.FileName); + queue.WriteBatchScriptToFile(SaveFile.FileName); } + private void mnu_export_Click(object sender, EventArgs e) { - SaveFile.FileName = ""; + SaveFile.FileName = string.Empty; SaveFile.Filter = "HandBrake Queue|*.queue"; SaveFile.ShowDialog(); if (SaveFile.FileName != String.Empty) - queue.write2disk(SaveFile.FileName); + queue.WriteQueueStateToFile(SaveFile.FileName); } + private void mnu_import_Click(object sender, EventArgs e) { - OpenFile.FileName = ""; + OpenFile.FileName = string.Empty; OpenFile.ShowDialog(); if (OpenFile.FileName != String.Empty) - queue.recoverQueue(OpenFile.FileName); - updateUIElements(); + queue.LoadQueueFromFile(OpenFile.FileName); + UpdateUIElements(); } + private void mnu_readd_Click(object sender, EventArgs e) { - if (queue.lastQueueItem != null) + if (!queue.LastEncode.IsEmpty) { - queue.add(queue.lastQueueItem.Query, queue.lastQueueItem.Source, queue.lastQueueItem.Destination); - queue.write2disk("hb_queue_recovery.xml"); // Update the queue recovery file - updateUIElements(); + queue.Add(queue.LastEncode.Query, queue.LastEncode.Source, queue.LastEncode.Destination, + queue.LastEncode.CustomQuery); + UpdateUIElements(); } } + private void mnu_reconfigureJob_Click(object sender, EventArgs e) + { + if (list_queue.SelectedIndices != null) + { + lock (queue) + { + lock (list_queue) + { + int index = list_queue.SelectedIndices[0]; + mainWindow.RecievingJob(queue.GetJob(index)); + queue.Remove(index); + RedrawQueue(); + } + } + } + } + + // Hide's the window when the user tries to "x" out of the window instead of closing it. protected override void OnClosing(CancelEventArgs e) { @@ -392,6 +439,5 @@ namespace Handbrake this.Hide(); base.OnClosing(e); } - } -} +} \ No newline at end of file