mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 22:42:38 +01:00
Added progress indicator when importing subtitles from mkv files
git-svn-id: https://subtitleedit.googlecode.com/svn/trunk@655 99eadd0c-20b8-1223-b5c4-2a2b2df33de2
This commit is contained in:
parent
8072b5dce5
commit
45afd1a1f0
@ -16,6 +16,7 @@ using Nikse.SubtitleEdit.Logic.VobSub;
|
|||||||
|
|
||||||
namespace Nikse.SubtitleEdit.Forms
|
namespace Nikse.SubtitleEdit.Forms
|
||||||
{
|
{
|
||||||
|
|
||||||
public sealed partial class Main : Form
|
public sealed partial class Main : Form
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -5454,6 +5455,13 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void MatroskaProgress(long position, long total)
|
||||||
|
{
|
||||||
|
ShowStatus(string.Format("{0}, {1:0}%", _language.ParsingMatroskaFile, position * 100 / total));
|
||||||
|
System.Threading.Thread.Sleep(100);
|
||||||
|
statusStrip1.Refresh();
|
||||||
|
}
|
||||||
|
|
||||||
private void LoadMatroskaSubtitle(MatroskaSubtitleInfo matroskaSubtitleInfo, string fileName)
|
private void LoadMatroskaSubtitle(MatroskaSubtitleInfo matroskaSubtitleInfo, string fileName)
|
||||||
{
|
{
|
||||||
bool isValid;
|
bool isValid;
|
||||||
@ -5489,7 +5497,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
ShowStatus(_language.ParsingMatroskaFile);
|
ShowStatus(_language.ParsingMatroskaFile);
|
||||||
Refresh();
|
Refresh();
|
||||||
Cursor.Current = Cursors.WaitCursor;
|
Cursor.Current = Cursors.WaitCursor;
|
||||||
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid);
|
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid, MatroskaProgress);
|
||||||
Cursor.Current = Cursors.Default;
|
Cursor.Current = Cursors.Default;
|
||||||
if (isValid)
|
if (isValid)
|
||||||
{
|
{
|
||||||
@ -5587,7 +5595,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
ShowStatus(_language.ParsingMatroskaFile);
|
ShowStatus(_language.ParsingMatroskaFile);
|
||||||
Refresh();
|
Refresh();
|
||||||
Cursor.Current = Cursors.WaitCursor;
|
Cursor.Current = Cursors.WaitCursor;
|
||||||
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid);
|
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid, MatroskaProgress);
|
||||||
Cursor.Current = Cursors.Default;
|
Cursor.Current = Cursors.Default;
|
||||||
|
|
||||||
if (isValid)
|
if (isValid)
|
||||||
@ -5671,7 +5679,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
ShowStatus(_language.ParsingMatroskaFile);
|
ShowStatus(_language.ParsingMatroskaFile);
|
||||||
Refresh();
|
Refresh();
|
||||||
Cursor.Current = Cursors.WaitCursor;
|
Cursor.Current = Cursors.WaitCursor;
|
||||||
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid);
|
List<SubtitleSequence> sub = matroska.GetMatroskaSubtitle(fileName, (int)matroskaSubtitleInfo.TrackNumber, out isValid, MatroskaProgress);
|
||||||
Cursor.Current = Cursors.Default;
|
Cursor.Current = Cursors.Default;
|
||||||
int noOfErrors = 0;
|
int noOfErrors = 0;
|
||||||
string lastError = string.Empty;
|
string lastError = string.Empty;
|
||||||
|
@ -681,7 +681,7 @@
|
|||||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
||||||
CAAAAk1TRnQBSQFMAgEBAgEAASgBCwEoAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
CAAAAk1TRnQBSQFMAgEBAgEAATABCwEwAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||||
|
@ -42,6 +42,8 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
public class Matroska
|
public class Matroska
|
||||||
{
|
{
|
||||||
|
|
||||||
|
public delegate void LoadMatroskaCallback(long position, long total);
|
||||||
|
|
||||||
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Explicit, Pack = 2)]
|
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Explicit, Pack = 2)]
|
||||||
private struct ByteLayout16
|
private struct ByteLayout16
|
||||||
{
|
{
|
||||||
@ -1208,7 +1210,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
return _subtitleList;
|
return _subtitleList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<SubtitleSequence> GetMatroskaSubtitle(string fileName, int trackNumber, out bool isValid)
|
public List<SubtitleSequence> GetMatroskaSubtitle(string fileName, int trackNumber, out bool isValid, Matroska.LoadMatroskaCallback callback)
|
||||||
{
|
{
|
||||||
byte b;
|
byte b;
|
||||||
bool done;
|
bool done;
|
||||||
@ -1273,7 +1275,8 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
f.Seek(dataSize, SeekOrigin.Current);
|
f.Seek(dataSize, SeekOrigin.Current);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (callback != null)
|
||||||
|
callback.Invoke(f.Position, f.Length);
|
||||||
endOfFile = f.Position >= f.Length;
|
endOfFile = f.Position >= f.Length;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user