diff --git a/Installation Folder/MFM Program/Movie File Merger Copyright.rtf b/Installation Folder/MFM Program/Movie File Merger Copyright.rtf index 5181a27..8198eb5 100644 Binary files a/Installation Folder/MFM Program/Movie File Merger Copyright.rtf and b/Installation Folder/MFM Program/Movie File Merger Copyright.rtf differ diff --git a/Movie File Merger/MainForm.Designer.cs b/Movie File Merger/MainForm.Designer.cs index 43be1e6..9d5b739 100644 --- a/Movie File Merger/MainForm.Designer.cs +++ b/Movie File Merger/MainForm.Designer.cs @@ -397,6 +397,7 @@ private void InitializeComponent() "Miscelaneous", "Adults", "Clips"}); + this.cobCollections.BackColor = System.Drawing.SystemColors.Control; this.cobCollections.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cobCollections.FormattingEnabled = true; this.cobCollections.Items.AddRange(new object[] { @@ -575,7 +576,7 @@ private void InitializeComponent() // // cobDownloadCriteria // - this.cobDownloadCriteria.BackColor = System.Drawing.SystemColors.Control; + this.cobDownloadCriteria.BackColor = System.Drawing.SystemColors.ControlDark; this.cobDownloadCriteria.DropDownWidth = 130; this.cobDownloadCriteria.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.cobDownloadCriteria.FormattingEnabled = true; @@ -680,7 +681,7 @@ private void InitializeComponent() this.cobCriteria.AllowDrop = true; this.cobCriteria.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.cobCriteria.BackColor = System.Drawing.SystemColors.ControlLight; + this.cobCriteria.BackColor = System.Drawing.SystemColors.Control; this.cobCriteria.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.cobCriteria.ForeColor = System.Drawing.SystemColors.ControlDarkDark; this.cobCriteria.FormattingEnabled = true; @@ -1163,7 +1164,7 @@ private void InitializeComponent() // // cobSearchDownload // - this.cobSearchDownload.BackColor = System.Drawing.SystemColors.Control; + this.cobSearchDownload.BackColor = System.Drawing.SystemColors.ControlDarkDark; this.cobSearchDownload.DropDownWidth = 130; this.cobSearchDownload.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.cobSearchDownload.FormattingEnabled = true; @@ -1194,7 +1195,7 @@ private void InitializeComponent() // cobSearchInfo // this.cobSearchInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cobSearchInfo.BackColor = System.Drawing.SystemColors.Control; + this.cobSearchInfo.BackColor = System.Drawing.SystemColors.ControlDark; this.cobSearchInfo.DropDownWidth = 130; this.cobSearchInfo.FlatStyle = System.Windows.Forms.FlatStyle.Flat; this.cobSearchInfo.FormattingEnabled = true; diff --git a/Movie File Merger/MainForm.cs b/Movie File Merger/MainForm.cs index 5bac64a..5eea853 100644 --- a/Movie File Merger/MainForm.cs +++ b/Movie File Merger/MainForm.cs @@ -1380,28 +1380,32 @@ string ExtractFullPathFromToolTip( string strToolTip ) return strFilePath.Substring( strFilePath.IndexOf( "] ", StringComparison.CurrentCulture ) + 3 ) + "\\" + strFileName; } + int GetHorizontalRes( string sThisInfo ) + { + int iThisResolution = -1; + Match mtExistingResolution = Regex.Match(sThisInfo, "Video: \\d+"); + if (mtExistingResolution.Success) + { + string sThisResolution = Regex.Match(mtExistingResolution.Value, @"\d+").Value; + iThisResolution = Int32.Parse(sThisResolution); + } + return iThisResolution; + } + /// /// Checks if the horizoltal resolution in the tool tip of the new list view item is higher. /// - /// Existing ListViewItem - /// Import ListViewItem + /// Info about this file. + /// Info about the other file. /// True: if New Item Resolution is higher. - bool HorizontalResolutionIsHigher( ListViewItem lviExisting, ListViewItem lviImport ) + bool HorizontalResolutionIsHigher( string sThisInfo, string sOtherInfo ) { bool bResolutionIsHigher = false; - if ( cbGetHigherRes.Checked ) { - Match mtExistingResolution = Regex.Match( lviExisting.ToolTipText, "Video: \\d+" ); - if ( mtExistingResolution.Success ) { - Match mtImportResolution = Regex.Match( lviImport.ToolTipText, "Video: \\d+" ); - if ( mtImportResolution.Success ) { - string sExistingResolution = Regex.Match( mtExistingResolution.Value, @"\d+" ).Value; - int iExistingResolution = Int32.Parse( sExistingResolution ); - string sImportResolution = Regex.Match( mtImportResolution.Value, @"\d+" ).Value; - int iImportResolution = Int32.Parse( sImportResolution ); - bResolutionIsHigher = iExistingResolution < iImportResolution; - } - } + int iThisResolution = GetHorizontalRes ( sThisInfo ); + int iOtherResoution = GetHorizontalRes ( sOtherInfo ); + if (iThisResolution != -1 && iOtherResoution != -1) { + bResolutionIsHigher = iThisResolution < iOtherResoution; } return bResolutionIsHigher; } @@ -1462,6 +1466,38 @@ string GetMediaInfo ( string sFileName ) return sMediaInfo; } + /// + /// Get the file size in MIB. + /// + /// + /// + long GetMib ( FileInfo fiFile ) + { + long lMiB = 0; + if (File.Exists(fiFile.FullName)) + { + lMiB = fiFile.Length / 1024 / 1024; + } + return lMiB; + } + + /// + /// Get detailed information about the files for the tool tip. + /// + /// The file info of the relvant file. + /// + string GetFileInfo ( FileInfo fiFile ) + { + long lMiB = GetMib(fiFile); + string sInfo = lMiB + " MiB, " + fiFile.Extension.ToUpper().Substring(1); + + string sFileInfo = "File: " + fiFile.Name + "\n" + + "Path: " + fiFile.DirectoryName + "\n" + + "Info: " + sInfo + + ", Last Written " + StandardizeDate(fiFile.LastWriteTime); + return sFileInfo; + } + /// /// Extracts full information of a file with MediaInfo, but returns only selected information. /// @@ -1476,28 +1512,18 @@ void MakeToolTip( FileInfo fiFile, ListView lvThis, ListViewItem lviThis ) bool bHasMediaInfo = lviThis.ToolTipText.Contains( "Video: " ); bool bHasNewMediaInfo = lviThis.ToolTipText.Contains( "General: " ); - string sMediaInfo = ""; + string sThisMediaInfo = ""; bool bGetFullDetails = false; - long lMiB = 0; - if (File.Exists(fiFile.FullName)) - { - lMiB = fiFile.Length / 1024 / 1024; - } - string sInfo = lMiB + " MiB, " + fiFile.Extension.ToUpper().Substring(1); - - string sFileInfo = "File: " + fiFile.Name + "\n" + - "Path: " + fiFile.DirectoryName + "\n" + - "Info: " + sInfo + - ", Last Written " + StandardizeDate( fiFile.LastWriteTime ); - bool bDifferentFileInfo = !lviThis.ToolTipText.Contains( sFileInfo ); + string sThisFileInfo = GetFileInfo ( fiFile ); + bool bDifferentFileInfo = !lviThis.ToolTipText.Contains( sThisFileInfo ); switch ( strListType ) { case "Import": bool bIsGarbage = FindItem( lvGarbage, lviThis.Text ) != null; - sMediaInfo = GetExistingMediaInfo( lviThis.Text, lMiB ); - if ( sMediaInfo == "" && !bHasMediaInfo && cbGetHigherRes.Checked && !bIsGarbage ) { + sThisMediaInfo = GetExistingMediaInfo( lviThis.Text, GetMib(fiFile)); + if ( sThisMediaInfo == "" && !bHasMediaInfo && cbGetHigherRes.Checked && !bIsGarbage ) { bGetFullDetails = true; } break; @@ -1521,27 +1547,40 @@ void MakeToolTip( FileInfo fiFile, ListView lvThis, ListViewItem lviThis ) if (File.Exists(fiFile.FullName)) { SetStatus("Getting MediaInfo for " + fiFile.Name); - sMediaInfo = GetMediaInfo(fiFile.FullName); + sThisMediaInfo = GetMediaInfo(fiFile.FullName); } // Make new tool tip - lviThis.ToolTipText = sFileInfo + "\n\n" + sMediaInfo; + lviThis.ToolTipText = sThisFileInfo + "\n\n" + sThisMediaInfo; SetListViewChanged( lvThis, true ); } else if ( bDifferentFileInfo ) { string sOtherFileName = GetMainFilePathFromToolTip(lviThis.ToolTipText); if (File.Exists(sOtherFileName)) { SetStatus("Duplicated Main File for " + fiFile.Name); - sMediaInfo = GetMediaInfo(fiFile.FullName); - LogMessage("This File", Color.OrangeRed, fiFile.FullName + "\n" + sMediaInfo.TrimStart()); - LogMessage("Other File", Color.Olive, sOtherFileName + "\n" + GetMediaInfo(sOtherFileName).TrimStart()); + sThisMediaInfo = GetMediaInfo(fiFile.FullName).TrimStart(); + string sOtherMediaInfo = GetMediaInfo(sOtherFileName).TrimStart(); + FileInfo fiOtherFileName = new FileInfo(sOtherFileName); + string sOtherFileInfo = GetFileInfo(fiOtherFileName); + + int iThisResolution = GetHorizontalRes(sThisMediaInfo); + int iOtherResolution = GetHorizontalRes(sOtherMediaInfo); + Color cThisFileColor = GoodMovieColor; + if (iThisResolution != -1 && iOtherResolution != -1) + { + if (iThisResolution < iOtherResolution) cThisFileColor = BadMovieColor; + else if (iThisResolution == iOtherResolution) cThisFileColor = Color.DarkGray; + } + + LogMessage("This File", cThisFileColor, sThisFileInfo + "\n" + sThisMediaInfo); + LogMessage("Other File", Color.DarkGray, sOtherFileInfo + "\n" + sOtherMediaInfo); } else { SetStatus("Different File Info for " + fiFile.Name); - sMediaInfo = GetMediaInfo(fiFile.FullName); + sThisMediaInfo = GetMediaInfo(fiFile.FullName); } - lviThis.ToolTipText = sFileInfo + "\n\n" + sMediaInfo; + lviThis.ToolTipText = sThisFileInfo + "\n\n" + sThisMediaInfo; SetListViewChanged( lvThis, true ); } } @@ -1651,7 +1690,7 @@ void ColorImportItem( ListViewItem lviImport ) lviImport.BackColor = LowResColor; } else if ( lviExisting != null ) { - lviImport.BackColor = HorizontalResolutionIsHigher ( lviExisting, lviImport ) ? HigherResColor : + lviImport.BackColor = HorizontalResolutionIsHigher ( lviExisting.ToolTipText, lviImport.ToolTipText ) ? HigherResColor : ExistingColor; } else { @@ -1697,8 +1736,8 @@ void ColorAll( string strItemName ) lviWish.BackColor = ExistingColor; } if ( lviImport != null ) { - lviImport.BackColor = HorizontalResolutionIsHigher ( lviExisting, lviImport ) ? HigherResColor : - ExistingColor; + lviImport.BackColor = HorizontalResolutionIsHigher ( lviExisting.ToolTipText, lviImport.ToolTipText ) ? + HigherResColor : ExistingColor; if ( HorizontalResolutionTooLow ( lviImport ) ) { lviImport.BackColor = LowResColor; } diff --git a/Movie File Merger/MainForm.resx b/Movie File Merger/MainForm.resx index ab0f230..dc5fbe2 100644 --- a/Movie File Merger/MainForm.resx +++ b/Movie File Merger/MainForm.resx @@ -128,7 +128,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC8 - JwAAAk1TRnQBSQFMAgEBHQEAAWABAQFgAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + JwAAAk1TRnQBSQFMAgEBHQEAAWgBAQFoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABQAMAAYADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -6922,7 +6922,7 @@ the second number for the episode. Episode names will be truncated after the epi 1102, 17 - 66 + 79