diff --git a/MainForm.Designer.cs b/MainForm.Designer.cs index 6be232e..e550bb0 100644 --- a/MainForm.Designer.cs +++ b/MainForm.Designer.cs @@ -73,8 +73,6 @@ namespace VideoPreview this.label1.TabIndex = 3; this.label1.Text = "File Name"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.label1.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.label1.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver); // // label2 // @@ -85,8 +83,6 @@ namespace VideoPreview this.label2.TabIndex = 5; this.label2.Text = "-"; this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.label2.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.label2.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver); // // button1 // @@ -120,8 +116,6 @@ namespace VideoPreview this.tHorizontalSeparator1.Size = new System.Drawing.Size(454, 22); this.tHorizontalSeparator1.TabIndex = 9; this.tHorizontalSeparator1.TabStop = false; - this.tHorizontalSeparator1.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.tHorizontalSeparator1.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver); // // tHorizontalSeparator3 // @@ -152,8 +146,6 @@ namespace VideoPreview this.flowLayoutPanel1.Size = new System.Drawing.Size(433, 540); this.flowLayoutPanel1.TabIndex = 1; this.flowLayoutPanel1.WrapContents = false; - this.flowLayoutPanel1.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.flowLayoutPanel1.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver); // // pictureBox1 // @@ -200,7 +192,6 @@ namespace VideoPreview this.button2.Size = new System.Drawing.Size(37, 37); this.button2.TabIndex = 2; this.toolTip1.SetToolTip(this.button2, "Options"); - this.button2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button2_MouseClick); // // button3 // @@ -217,7 +208,6 @@ namespace VideoPreview this.button3.Size = new System.Drawing.Size(35, 37); this.button3.TabIndex = 3; this.toolTip1.SetToolTip(this.button3, "Refresh"); - this.button3.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button3_MouseClick); // // button4 // @@ -234,7 +224,6 @@ namespace VideoPreview this.button4.Size = new System.Drawing.Size(37, 37); this.button4.TabIndex = 4; this.toolTip1.SetToolTip(this.button4, "Next"); - this.button4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button4_MouseClick); // // label4 // @@ -420,8 +409,6 @@ namespace VideoPreview this.MainMenuStrip = this.menuStrip1; this.Name = "MainForm"; this.Text = "Video Preview"; - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.DragOver += new System.Windows.Forms.DragEventHandler(this.Form1_DragOver); ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); diff --git a/MainForm.cs b/MainForm.cs index d5a1263..d0f4e21 100644 --- a/MainForm.cs +++ b/MainForm.cs @@ -27,6 +27,10 @@ namespace VideoPreview { InitializeComponent(); + button3.Click += delegate { refreshToolStripMenuItem_Click(null, null); }; + button4.Click += delegate { loadNextFileToolStripMenuItem_Click(null, null); }; + button2.Click += delegate { optionsToolStripMenuItem_Click(null, null); }; + button2.SetIcon("settings"); button3.SetIcon("refresh-cw"); button4.SetIcon("arrow-right-circle"); @@ -56,31 +60,17 @@ namespace VideoPreview base.OnFormClosing(e); } - - public bool IsBusy + protected override void OnDragOver(DragEventArgs e) { - get => isBusy; - set - { - isBusy = value; + base.OnDragOver(e); - ThreadControl.SetValue(pictureBox1, (isBusy ? UIcon.GetImage("loading_block") : null)); - ThreadControl.SetEnable(textBox1, !isBusy); - ThreadControl.SetEnable(button1, !isBusy); - ThreadControl.SetEnable(button2, !isBusy); - ThreadControl.SetEnable(button3, !isBusy); - ThreadControl.SetEnable(button4, !isBusy); - } - } - - - private void Form1_DragOver(object sender, DragEventArgs e) - { e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop) ? DragDropEffects.Copy : DragDropEffects.None); } - private async void Form1_DragDrop(object sender, DragEventArgs e) + protected override async void OnDragDrop(DragEventArgs e) { + base.OnDragDrop(e); + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; if (fileList == null) { @@ -110,31 +100,101 @@ namespace VideoPreview } + public bool IsBusy + { + get => isBusy; + set + { + isBusy = value; + + ThreadControl.SetValue(pictureBox1, (isBusy ? UIcon.GetImage("loading_block") : null)); + ThreadControl.SetEnable(textBox1, !isBusy); + ThreadControl.SetEnable(button1, !isBusy); + ThreadControl.SetEnable(button2, !isBusy); + ThreadControl.SetEnable(button3, !isBusy); + ThreadControl.SetEnable(button4, !isBusy); + } + } + public AppSession CurrentSession { get; set; } = new AppSession(); -#region main menu - /// /// Refresh /// /// /// - private void refreshToolStripMenuItem_Click(object sender, EventArgs e) => button3_MouseClick(null, null); + private async void refreshToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.IsBusy) + { + return; + } + + if (string.IsNullOrWhiteSpace(textBox1.Text)) + { + return; + } + + await ReadVideoFile(textBox1.Text); + } /// /// Load next file /// /// /// - private void loadNextFileToolStripMenuItem_Click(object sender, EventArgs e) => button4_MouseClick(null, null); + private async void loadNextFileToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.IsBusy) + { + return; + } + + if (string.IsNullOrWhiteSpace(textBox1.Text)) + { + return; + } + + await Task.Run(() => + { + string path = AccessibleDirectory.GetNextFile(textBox1.Text, "*.avi;*.mkv;*.mp4;*.ogm;*.mov;*.mpg;*.mpeg"); + if (string.IsNullOrWhiteSpace(path)) return; + + textBox1.Text = path; + }); + } /// /// Options /// /// /// - private void optionsToolStripMenuItem_Click(object sender, EventArgs e) => button2_MouseClick(null, null); + private void optionsToolStripMenuItem_Click(object sender, EventArgs e) + { + if (this.IsBusy) + { + return; + } + + if (optionsForm == null) optionsForm = new OptionsForm(this.CurrentSession); + if (optionsForm.ShowDialog() == DialogResult.OK) + { + this.CurrentSession = optionsForm.Session; + + this.TopMost = this.CurrentSession.AlwaysOnTop; + } + } + + /// + /// Always-On-Top + /// + /// + /// + private void toolStripMenuItem3_Click(object sender, EventArgs e) + { + this.TopMost = this.CurrentSession.AlwaysOnTop = !this.TopMost; + } /// /// View help @@ -167,61 +227,6 @@ namespace VideoPreview MessageBox.Show(Application.ProductName + " v" + Application.ProductVersion, "About", MessageBoxButtons.OK, MessageBoxIcon.Information); } -#endregion - - /// - /// Refresh - /// - /// - /// - private async void button3_MouseClick(object sender, MouseEventArgs e) - { - if (this.IsBusy) return; - if (string.IsNullOrWhiteSpace(textBox1.Text)) return; - - await ReadVideoFile(textBox1.Text); - } - - /// - /// Options - /// - /// - /// - private void button2_MouseClick(object sender, MouseEventArgs e) - { - if (this.IsBusy) - { - return; - } - - if (optionsForm == null) optionsForm = new OptionsForm(this.CurrentSession); - if (optionsForm.ShowDialog() == DialogResult.OK) - { - this.CurrentSession = optionsForm.Session; - - this.TopMost = this.CurrentSession.AlwaysOnTop; - } - } - - /// - /// Next file - /// - /// - /// - private async void button4_MouseClick(object sender, MouseEventArgs e) - { - await Task.Run(() => - { - if (this.IsBusy) return; - if (string.IsNullOrWhiteSpace(textBox1.Text)) return; - - string path = AccessibleDirectory.GetNextFile(textBox1.Text, "*.avi;*.mkv;*.mp4;*.ogm;*.mov;*.mpg;*.mpeg"); - if (string.IsNullOrWhiteSpace(path)) return; - - textBox1.Text = path; - }); - } - /// /// Close /// @@ -329,10 +334,13 @@ namespace VideoPreview protected async Task ReadVideoFile(string filename) { + if (this.IsBusy) + { + return; + } + await Task.Run(() => { - if (this.IsBusy) return; - this.IsBusy = true; Clear(); @@ -415,9 +423,5 @@ namespace VideoPreview }); } - private void toolStripMenuItem3_Click(object sender, EventArgs e) - { - this.TopMost = !this.TopMost; - } } } diff --git a/VideoPreview.csproj b/VideoPreview.csproj index 04f8017..123c1e4 100644 --- a/VideoPreview.csproj +++ b/VideoPreview.csproj @@ -2,7 +2,7 @@ WinExe - net5.0-windows + net6.0-windows8.0 true videopreview Ray Lam @@ -11,7 +11,7 @@ Ray Lam favicon.ico true - 0.1.2.041 + 0.1.3.010 diff --git a/build.bat b/build.bat index f18db46..5e82beb 100644 --- a/build.bat +++ b/build.bat @@ -1,5 +1,5 @@ rmdir /s /q "bin\Release\64\" dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\64\" -rmdir /s /q "bin\Release\86\" -dotnet publish skye.sln -r win-x86 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\86\" \ No newline at end of file +##rmdir /s /q "bin\Release\86\" +##dotnet publish skye.sln -r win-x86 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\86\" \ No newline at end of file