OSDN Git Service

WinGui:
authorsr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Mon, 6 Apr 2009 15:15:40 +0000 (15:15 +0000)
committersr55 <sr55@b64f7644-9d1e-0410-96f1-a4d463321fa5>
Mon, 6 Apr 2009 15:15:40 +0000 (15:15 +0000)
- Add support for drag/drop of a source file onto the main window. Source will be scanned on drop.
- Misc code tweaks.

git-svn-id: svn://localhost/HandBrake/trunk@2306 b64f7644-9d1e-0410-96f1-a4d463321fa5

win/C#/frmAddPreset.cs
win/C#/frmMain.Designer.cs
win/C#/frmMain.cs

index 00b288c..56bc5f5 100644 (file)
@@ -11,9 +11,9 @@ namespace Handbrake
 {\r
     public partial class frmAddPreset : Form\r
     {\r
-        private frmMain frmMainWindow;\r
-        Presets.PresetsHandler presetCode;\r
-        private string query = "";\r
+        private readonly frmMain frmMainWindow;\r
+        readonly Presets.PresetsHandler presetCode;\r
+        private readonly string query = "";\r
 \r
         public frmAddPreset(frmMain fmw, string query_string, Presets.PresetsHandler presetHandler)\r
         {\r
index c14091d..6db93aa 100644 (file)
@@ -4,6 +4,9 @@
           Homepage: <http://handbrake.fr>.\r
           It may be used under the terms of the GNU General Public License. */\r
 \r
+using System;\r
+using System.Windows.Forms;\r
+\r
 namespace Handbrake\r
 {\r
     partial class frmMain\r
@@ -180,14 +183,9 @@ namespace Handbrake
             this.Check_ChapterMarkers = new System.Windows.Forms.CheckBox();\r
             this.tabs_panel = new System.Windows.Forms.TabControl();\r
             this.tab_Filters = new System.Windows.Forms.TabPage();\r
-            this.ctl_deinterlace = new Handbrake.Deinterlace();\r
-            this.ctl_denoise = new Handbrake.Denoise();\r
-            this.ctl_decomb = new Handbrake.Decomb();\r
-            this.ctl_detelecine = new Handbrake.Detelecine();\r
             this.tab_chapters = new System.Windows.Forms.TabPage();\r
             this.label31 = new System.Windows.Forms.Label();\r
             this.h264Tab = new System.Windows.Forms.TabPage();\r
-            this.x264Panel = new Handbrake.Controls.x264Panel();\r
             this.tab_query = new System.Windows.Forms.TabPage();\r
             this.btn_clear = new System.Windows.Forms.Button();\r
             this.label34 = new System.Windows.Forms.Label();\r
@@ -221,6 +219,11 @@ namespace Handbrake
             this.notifyIcon = new System.Windows.Forms.NotifyIcon(this.components);\r
             this.StatusStrip = new System.Windows.Forms.StatusStrip();\r
             this.lbl_encode = new System.Windows.Forms.ToolStripStatusLabel();\r
+            this.ctl_deinterlace = new Handbrake.Deinterlace();\r
+            this.ctl_denoise = new Handbrake.Denoise();\r
+            this.ctl_decomb = new Handbrake.Decomb();\r
+            this.ctl_detelecine = new Handbrake.Detelecine();\r
+            this.x264Panel = new Handbrake.Controls.x264Panel();\r
             notifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);\r
             notifyIconMenu.SuspendLayout();\r
             ((System.ComponentModel.ISupportInitialize)(this.slider_videoQuality)).BeginInit();\r
@@ -1871,48 +1874,6 @@ namespace Handbrake
             this.tab_Filters.Text = "Video Filters";\r
             this.tab_Filters.UseVisualStyleBackColor = true;\r
             // \r
-            // ctl_deinterlace\r
-            // \r
-            this.ctl_deinterlace.AutoSize = true;\r
-            this.ctl_deinterlace.Location = new System.Drawing.Point(19, 95);\r
-            this.ctl_deinterlace.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_deinterlace.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_deinterlace.Name = "ctl_deinterlace";\r
-            this.ctl_deinterlace.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_deinterlace.TabIndex = 41;\r
-            this.ctl_deinterlace.onChange += new System.EventHandler(this.ctl_deinterlace_changed);\r
-            // \r
-            // ctl_denoise\r
-            // \r
-            this.ctl_denoise.AutoSize = true;\r
-            this.ctl_denoise.Location = new System.Drawing.Point(19, 123);\r
-            this.ctl_denoise.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_denoise.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_denoise.Name = "ctl_denoise";\r
-            this.ctl_denoise.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_denoise.TabIndex = 40;\r
-            // \r
-            // ctl_decomb\r
-            // \r
-            this.ctl_decomb.AutoSize = true;\r
-            this.ctl_decomb.Location = new System.Drawing.Point(19, 66);\r
-            this.ctl_decomb.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_decomb.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_decomb.Name = "ctl_decomb";\r
-            this.ctl_decomb.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_decomb.TabIndex = 39;\r
-            this.ctl_decomb.onChange += new System.EventHandler(this.ctl_decomb_changed);\r
-            // \r
-            // ctl_detelecine\r
-            // \r
-            this.ctl_detelecine.AutoSize = true;\r
-            this.ctl_detelecine.Location = new System.Drawing.Point(19, 38);\r
-            this.ctl_detelecine.Margin = new System.Windows.Forms.Padding(0);\r
-            this.ctl_detelecine.MaximumSize = new System.Drawing.Size(400, 30);\r
-            this.ctl_detelecine.Name = "ctl_detelecine";\r
-            this.ctl_detelecine.Size = new System.Drawing.Size(275, 28);\r
-            this.ctl_detelecine.TabIndex = 38;\r
-            // \r
             // tab_chapters\r
             // \r
             this.tab_chapters.BackColor = System.Drawing.Color.Transparent;\r
@@ -1950,14 +1911,6 @@ namespace Handbrake
             this.h264Tab.Text = "Advanced";\r
             this.h264Tab.UseVisualStyleBackColor = true;\r
             // \r
-            // x264Panel\r
-            // \r
-            this.x264Panel.Location = new System.Drawing.Point(0, 0);\r
-            this.x264Panel.Name = "x264Panel";\r
-            this.x264Panel.Size = new System.Drawing.Size(720, 306);\r
-            this.x264Panel.TabIndex = 0;\r
-            this.x264Panel.x264Query = "";\r
-            // \r
             // tab_query\r
             // \r
             this.tab_query.Controls.Add(this.btn_clear);\r
@@ -2306,8 +2259,59 @@ namespace Handbrake
             this.lbl_encode.Size = new System.Drawing.Size(31, 17);\r
             this.lbl_encode.Text = "{0}";\r
             // \r
+            // ctl_deinterlace\r
+            // \r
+            this.ctl_deinterlace.AutoSize = true;\r
+            this.ctl_deinterlace.Location = new System.Drawing.Point(19, 95);\r
+            this.ctl_deinterlace.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_deinterlace.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_deinterlace.Name = "ctl_deinterlace";\r
+            this.ctl_deinterlace.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_deinterlace.TabIndex = 41;\r
+            this.ctl_deinterlace.onChange += new System.EventHandler(this.ctl_deinterlace_changed);\r
+            // \r
+            // ctl_denoise\r
+            // \r
+            this.ctl_denoise.AutoSize = true;\r
+            this.ctl_denoise.Location = new System.Drawing.Point(19, 123);\r
+            this.ctl_denoise.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_denoise.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_denoise.Name = "ctl_denoise";\r
+            this.ctl_denoise.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_denoise.TabIndex = 40;\r
+            // \r
+            // ctl_decomb\r
+            // \r
+            this.ctl_decomb.AutoSize = true;\r
+            this.ctl_decomb.Location = new System.Drawing.Point(19, 66);\r
+            this.ctl_decomb.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_decomb.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_decomb.Name = "ctl_decomb";\r
+            this.ctl_decomb.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_decomb.TabIndex = 39;\r
+            this.ctl_decomb.onChange += new System.EventHandler(this.ctl_decomb_changed);\r
+            // \r
+            // ctl_detelecine\r
+            // \r
+            this.ctl_detelecine.AutoSize = true;\r
+            this.ctl_detelecine.Location = new System.Drawing.Point(19, 38);\r
+            this.ctl_detelecine.Margin = new System.Windows.Forms.Padding(0);\r
+            this.ctl_detelecine.MaximumSize = new System.Drawing.Size(400, 30);\r
+            this.ctl_detelecine.Name = "ctl_detelecine";\r
+            this.ctl_detelecine.Size = new System.Drawing.Size(275, 28);\r
+            this.ctl_detelecine.TabIndex = 38;\r
+            // \r
+            // x264Panel\r
+            // \r
+            this.x264Panel.Location = new System.Drawing.Point(0, 0);\r
+            this.x264Panel.Name = "x264Panel";\r
+            this.x264Panel.Size = new System.Drawing.Size(720, 306);\r
+            this.x264Panel.TabIndex = 0;\r
+            this.x264Panel.x264Query = "";\r
+            // \r
             // frmMain\r
             // \r
+            this.AllowDrop = true;\r
             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);\r
             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
             this.AutoScroll = true;\r
@@ -2556,6 +2560,6 @@ namespace Handbrake
         private System.Windows.Forms.Label lbl_max;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn number;\r
         private System.Windows.Forms.DataGridViewTextBoxColumn name;\r
-\r
\r
     }\r
 }
\ No newline at end of file
index fc6f98c..c8bc46e 100644 (file)
@@ -13,6 +13,7 @@ using System.IO;
 using System.Diagnostics;\r
 using System.Threading;\r
 using Handbrake.Functions;\r
+using Handbrake.Presets;\r
 \r
 namespace Handbrake\r
 {\r
@@ -23,7 +24,7 @@ namespace Handbrake
         Main hb_common_func = new Main();\r
         Encode encodeHandler = new Encode();\r
         Queue.QueueHandler encodeQueue = new Queue.QueueHandler();\r
-        Presets.PresetsHandler presetHandler = new Presets.PresetsHandler();\r
+        PresetsHandler presetHandler = new PresetsHandler();\r
         Parsing.Title selectedTitle;\r
         Parsing.DVD thisDVD;\r
 \r
@@ -50,9 +51,7 @@ namespace Handbrake
             splash.Show();\r
 \r
             //Create a label that can be updated from the parent thread.\r
-            Label lblStatus = new Label();\r
-            lblStatus.Size = new Size(250, 20);\r
-            lblStatus.Location = new Point(10, 280);\r
+            Label lblStatus = new Label {Size = new Size(250, 20), Location = new Point(10, 280)};\r
             splash.Controls.Add(lblStatus);\r
             InitializeComponent();\r
 \r
@@ -84,6 +83,7 @@ namespace Handbrake
             loadPresetPanel();                       // Load the Preset Panel\r
             treeView_presets.ExpandAll();\r
             lbl_encode.Text = "";\r
+            lbl_max.Text = "";\r
             queueWindow = new frmQueue(encodeQueue);        // Prepare the Queue\r
             if (Properties.Settings.Default.QueryEditorTab != "Checked")\r
                 tabs_panel.TabPages.RemoveAt(5); // Remove the query editor tab if the user does not want it enabled.\r
@@ -186,10 +186,39 @@ namespace Handbrake
             if (Properties.Settings.Default.MainWindowMinimize == "Checked")\r
                 this.Resize += new EventHandler(frmMain_Resize);\r
 \r
-            // Handle Encode Start\r
+            // Handle Encode Start / Finish / Pause\r
             encodeQueue.OnEncodeEnded += new EventHandler(encodeEnded);\r
             encodeQueue.OnPaused += new EventHandler(encodePaused);\r
             encodeQueue.OnEncodeStart += new EventHandler(encodeStarted);\r
+\r
+            // Handle a file being draged onto the GUI.\r
+            this.DragEnter += new DragEventHandler(frmMain_DragEnter);\r
+            this.DragDrop += new DragEventHandler(frmMain_DragDrop);\r
+        }\r
+\r
+        private static void frmMain_DragEnter(object sender, DragEventArgs e)\r
+        {\r
+            if (e.Data.GetDataPresent(DataFormats.FileDrop, false))\r
+                e.Effect = DragDropEffects.All;\r
+        }\r
+        private void frmMain_DragDrop(object sender, DragEventArgs e)\r
+        {\r
+            string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];\r
+            if (fileList != null)\r
+            {\r
+                if (fileList[0].StartsWith("\\"))\r
+                    MessageBox.Show("Sorry, HandBrake does not support UNC file paths. \nTry mounting the share as a network drive in My Computer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);\r
+                else\r
+                {\r
+                    if (fileList[0] != "")\r
+                    {\r
+                        setupGUIforScan(fileList[0]);\r
+                        startScan(fileList[0]);\r
+                    }\r
+                    else\r
+                        text_source.Text = "Click 'Source' to continue";\r
+                }\r
+            }\r
         }\r
         private void encodeStarted(object sender, EventArgs e)\r
         {\r
@@ -227,10 +256,7 @@ namespace Handbrake
         private void mnu_encodeLog_Click(object sender, EventArgs e)\r
         {\r
             String file;\r
-            if (lastAction == "scan")\r
-                file = "dvdinfo.dat";\r
-            else\r
-                file = "hb_encode_log.dat";\r
+            file = lastAction == "scan" ? "dvdinfo.dat" : "hb_encode_log.dat";\r
 \r
             frmActivityWindow dvdInfoWindow = new frmActivityWindow(file, encodeHandler);\r
             dvdInfoWindow.Show();\r
@@ -309,7 +335,7 @@ namespace Handbrake
         private void mnu_UpdateCheck_Click(object sender, EventArgs e)\r
         {\r
             Boolean update = hb_common_func.updateCheck(true);\r
-            if (update == true)\r
+            if (update)\r
             {\r
                 frmUpdater updateWindow = new frmUpdater();\r
                 updateWindow.Show();\r
@@ -467,7 +493,7 @@ namespace Handbrake
                         x264Panel.reset2Defaults();\r
 \r
                         // Send the query from the file to the Query Parser class\r
-                        Functions.QueryParser presetQuery = QueryParser.Parse(query);\r
+                        QueryParser presetQuery = QueryParser.Parse(query);\r
 \r
                         // Now load the preset\r
                         presetLoader.presetLoader(this, presetQuery, presetName, loadPictureSettings);\r
@@ -1599,8 +1625,8 @@ namespace Handbrake
 \r
                 string strCmdLine = String.Format(@"cmd /c """"{0}"" -i ""{1}"" -t0 -v >""{2}"" 2>&1""", handbrakeCLIPath, inputFile, dvdInfoPath);\r
 \r
-                ProcessStartInfo hbParseDvd = new ProcessStartInfo("CMD.exe", strCmdLine);\r
-                hbParseDvd.WindowStyle = ProcessWindowStyle.Hidden;\r
+                ProcessStartInfo hbParseDvd = new ProcessStartInfo("CMD.exe", strCmdLine)\r
+                                                  {WindowStyle = ProcessWindowStyle.Hidden};\r
 \r
                 using (hbproc = Process.Start(hbParseDvd))\r
                 {\r
@@ -1707,8 +1733,8 @@ namespace Handbrake
 \r
                 AppName = AppName.ToUpper();\r
 \r
-                System.Diagnostics.Process[] prs = Process.GetProcesses();\r
-                foreach (System.Diagnostics.Process proces in prs)\r
+                Process[] prs = Process.GetProcesses();\r
+                foreach (Process proces in prs)\r
                 {\r
                     if (proces.ProcessName.ToUpper() == AppName)\r
                     {\r
@@ -1869,7 +1895,7 @@ namespace Handbrake
                 drp_videoEncoder.Text = oldval;\r
             }\r
         }\r
-        private void setBitrateSelections384(ComboBox dropDown)\r
+        private static void setBitrateSelections384(ComboBox dropDown)\r
         {\r
             dropDown.Items.Clear();\r
             dropDown.Items.Add("32");\r
@@ -1888,7 +1914,7 @@ namespace Handbrake
             dropDown.Items.Add("320");\r
             dropDown.Items.Add("384");\r
         }\r
-        private void setBitrateSelections320(ComboBox dropDown)\r
+        private static void setBitrateSelections320(ComboBox dropDown)\r
         {\r
             dropDown.Items.Clear();\r
             dropDown.Items.Add("32");\r
@@ -1906,7 +1932,7 @@ namespace Handbrake
             dropDown.Items.Add("256");\r
             dropDown.Items.Add("320");\r
         }\r
-        private void setBitrateSelections160(ComboBox dropDown)\r
+        private static void setBitrateSelections160(ComboBox dropDown)\r
         {\r
             dropDown.Items.Clear();\r
             dropDown.Items.Add("32");\r
@@ -1920,7 +1946,7 @@ namespace Handbrake
             dropDown.Items.Add("128");\r
             dropDown.Items.Add("160");\r
         }\r
-        private void setMixDownAllOptions(ComboBox dropdown)\r
+        private static void setMixDownAllOptions(ComboBox dropdown)\r
         {\r
             dropdown.Items.Clear();\r
             dropdown.Items.Add("Automatic");\r
@@ -1930,7 +1956,7 @@ namespace Handbrake
             dropdown.Items.Add("Dolby Pro Logic II");\r
             dropdown.Items.Add("6 Channel Discrete");\r
         }\r
-        private void setMixDownNotAAC(ComboBox dropdown)\r
+        private static void setMixDownNotAAC(ComboBox dropdown)\r
         {\r
             dropdown.Items.Clear();\r
             dropdown.Items.Add("Automatic");\r
@@ -2022,24 +2048,19 @@ namespace Handbrake
         public void loadPresetPanel()\r
         {\r
             presetHandler.loadPresetData();\r
-\r
             treeView_presets.Nodes.Clear();\r
 \r
-            List<Presets.Preset> presetNameList;\r
-            List<string> presetNames;\r
             TreeNode preset_treeview;\r
-\r
             TreeNode rootNode = new TreeNode();\r
             TreeNode rootNodeTwo = new TreeNode();\r
             TreeNode childNode;\r
             int workingLevel = 0;\r
-            string previousCategory = String.Empty;\r
-            string currentCategory = String.Empty;\r
+            string previousCategory = String.Empty, currentCategory = String.Empty;\r
 \r
-            presetNameList = presetHandler.getBuildInPresets();\r
+            List<Preset> presetNameList = presetHandler.getBuildInPresets();\r
             if (presetNameList.Count != 0)\r
             {\r
-                foreach (Presets.Preset preset in presetNameList)\r
+                foreach (Preset preset in presetNameList)\r
                 {\r
                     // Handle Root Nodes\r
 \r
@@ -2100,11 +2121,10 @@ namespace Handbrake
             }\r
 \r
             // User Presets\r
-            presetNames = presetHandler.getUserPresetNames();\r
+            List<string> presetNames = presetHandler.getUserPresetNames();\r
             foreach (string preset in presetNames)\r
             {\r
-                preset_treeview = new TreeNode(preset);\r
-                preset_treeview.ForeColor = Color.Black;\r
+                preset_treeview = new TreeNode(preset) {ForeColor = Color.Black};\r
 \r
                 // Now Fill Out List View with Items\r
                 treeView_presets.Nodes.Add(preset_treeview);\r