Skip to content

Commit

Permalink
Added file size to log and colored. #251, #252, #254
Browse files Browse the repository at this point in the history
  • Loading branch information
modiholodri committed Feb 18, 2018
1 parent 070762c commit c73546c
Show file tree
Hide file tree
Showing 4 changed files with 86 additions and 46 deletions.
Binary file modified Installation Folder/MFM Program/Movie File Merger Copyright.rtf
Binary file not shown.
9 changes: 5 additions & 4 deletions Movie File Merger/MainForm.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

119 changes: 79 additions & 40 deletions Movie File Merger/MainForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

/// <summary>
/// Checks if the horizoltal resolution in the tool tip of the new list view item is higher.
/// </summary>
/// <param name="lviExisting">Existing ListViewItem</param>
/// <param name="lviImport">Import ListViewItem</param>
/// <param name="sThisInfo">Info about this file.</param>
/// <param name="sOtherInfo">Info about the other file.</param>
/// <returns>True: if New Item Resolution is higher.</returns>
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;
}
Expand Down Expand Up @@ -1462,6 +1466,38 @@ string GetMediaInfo ( string sFileName )
return sMediaInfo;
}

/// <summary>
/// Get the file size in MIB.
/// </summary>
/// <param name="fiFle"></param>
/// <returns></returns>
long GetMib ( FileInfo fiFile )
{
long lMiB = 0;
if (File.Exists(fiFile.FullName))
{
lMiB = fiFile.Length / 1024 / 1024;
}
return lMiB;
}

/// <summary>
/// Get detailed information about the files for the tool tip.
/// </summary>
/// <param name="fiFile">The file info of the relvant file.</param>
/// <returns></returns>
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;
}

/// <summary>
/// Extracts full information of a file with MediaInfo, but returns only selected information.
/// </summary>
Expand All @@ -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;
Expand All @@ -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 );
}
}
Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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;
}
Expand Down
4 changes: 2 additions & 2 deletions Movie File Merger/MainForm.resx
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAC8
JwAAAk1TRnQBSQFMAgEBHQEAAWABAQFgAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
JwAAAk1TRnQBSQFMAgEBHQEAAWgBAQFoAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
AwABQAMAAYADAAEBAQABCAYAASAYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
Expand Down Expand Up @@ -6922,7 +6922,7 @@ the second number for the episode. Episode names will be truncated after the epi
<value>1102, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>66</value>
<value>79</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
Expand Down

0 comments on commit c73546c

Please sign in to comment.