mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-27 14:32:35 +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
|
||||
{
|
||||
|
||||
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)
|
||||
{
|
||||
bool isValid;
|
||||
@ -5489,7 +5497,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
ShowStatus(_language.ParsingMatroskaFile);
|
||||
Refresh();
|
||||
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;
|
||||
if (isValid)
|
||||
{
|
||||
@ -5587,7 +5595,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
ShowStatus(_language.ParsingMatroskaFile);
|
||||
Refresh();
|
||||
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;
|
||||
|
||||
if (isValid)
|
||||
@ -5671,7 +5679,7 @@ namespace Nikse.SubtitleEdit.Forms
|
||||
ShowStatus(_language.ParsingMatroskaFile);
|
||||
Refresh();
|
||||
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;
|
||||
int noOfErrors = 0;
|
||||
string lastError = string.Empty;
|
||||
|
@ -681,7 +681,7 @@
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD2
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAASgBCwEoAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CAAAAk1TRnQBSQFMAgEBAgEAATABCwEwAQsBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
|
@ -42,6 +42,8 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
public class Matroska
|
||||
{
|
||||
|
||||
public delegate void LoadMatroskaCallback(long position, long total);
|
||||
|
||||
[System.Runtime.InteropServices.StructLayout(System.Runtime.InteropServices.LayoutKind.Explicit, Pack = 2)]
|
||||
private struct ByteLayout16
|
||||
{
|
||||
@ -1208,7 +1210,7 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
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;
|
||||
bool done;
|
||||
@ -1273,7 +1275,8 @@ namespace Nikse.SubtitleEdit.Logic
|
||||
f.Seek(dataSize, SeekOrigin.Current);
|
||||
}
|
||||
}
|
||||
|
||||
if (callback != null)
|
||||
callback.Invoke(f.Position, f.Length);
|
||||
endOfFile = f.Position >= f.Length;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user