Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 1f33f0d

Browse files
committed
Allow change of start time + duration via text boxes in main UI
1 parent b24c69f commit 1f33f0d

File tree

4 files changed

+43
-6
lines changed

4 files changed

+43
-6
lines changed

SubtitleEdit/SubtitleEdit.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<PackageSigningKey>Developer ID Installer</PackageSigningKey>
3232
<XamMacArch>x86_64</XamMacArch>
3333
<Profiling>false</Profiling>
34-
<I18n>cjk,mideast,other,west</I18n>
34+
<I18n>cjk,mideast,other,rare,west</I18n>
3535
</PropertyGroup>
3636
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
3737
<DebugType>full</DebugType>

SubtitleEdit/Windows/Help/AboutController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public override void AwakeFromNib ()
5050
labelTitle.StringValue = String.Format("{0} {1}.{2}.{3}, build {4}", _languageGeneral.Title, versionInfo[0], versionInfo[1], versionInfo[2], revisionNumber);
5151
}
5252

53-
labelTitle.StringValue = "Subtitle Edit Mac alpha 1";
53+
labelTitle.StringValue = "Subtitle Edit Mac alpha 2";
5454

5555
string aboutText = _language.AboutText1.TrimEnd() + Environment.NewLine +
5656
Environment.NewLine +

SubtitleEdit/Windows/MainWindow.cs

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,8 @@ public NSView VideoPlayerView
6363

6464
public void SetTimeCode(Paragraph p)
6565
{
66-
_startTime.StringValue = p.StartTime.ToString();
67-
_duration.StringValue = p.Duration.ToShortString();
66+
_startTime.StringValue = string.Format("{0:00}:{1:00}:{2:00}{3}{4:000}", p.StartTime.Hours, p.StartTime.Minutes, p.StartTime.Seconds, System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator, p.StartTime.Milliseconds);
67+
_duration.StringValue = string.Format("{0:0.000}", p.Duration.TotalSeconds);
6868
}
6969

7070
public MainWindow(IntPtr handle)
@@ -210,7 +210,7 @@ void InitializeToolbar()
210210
toolbarEncodingComboBox.Add(new NSString(Encoding.UTF8.BodyName));
211211
foreach (var ei in EncodingHelper.GetEncodings())
212212
{
213-
if (ei.Name != Encoding.UTF8.BodyName && ei.CodePage >= 949 && !ei.Name.Contains("EBCDIC") && ei.CodePage != 1047) //Configuration.Settings.General.EncodingMinimumCodePage)
213+
if (ei.Name != Encoding.UTF8.BodyName && ei.CodePage >= 949 && !ei.Name.StartsWith("IBM") && ei.CodePage != 1047) //Configuration.Settings.General.EncodingMinimumCodePage)
214214
toolbarEncodingComboBox.Add(new NSString(ei.CodePage + ": " + ei.Name));
215215
}
216216
SetEncoding(Encoding.UTF8.BodyName);
@@ -314,6 +314,12 @@ public override void AwakeFromNib()
314314
_startTimeStepper.IntValue = 0;
315315
};
316316

317+
_startTime.Activated += (object sender, EventArgs e) =>
318+
{
319+
var ms = TimeCode.ParseToMilliseconds(_startTime.StringValue);
320+
(WindowController as MainWindowController).SetStartTime(ms);
321+
};
322+
317323
_durationStepper.MinValue = -10000;
318324
_durationStepper.Increment = 100;
319325
_durationStepper.Activated += (object sender, EventArgs e) =>
@@ -322,6 +328,15 @@ public override void AwakeFromNib()
322328
_durationStepper.IntValue = 0;
323329
};
324330

331+
_duration.Activated += (object sender, EventArgs e) =>
332+
{
333+
double d;
334+
if (double.TryParse(_duration.StringValue, out d))
335+
{
336+
(WindowController as MainWindowController).UpdateDuration(d * 1000.0);
337+
}
338+
};
339+
325340
FixMacButtonTexts();
326341

327342
this.Delegate = new MainWindowDelegate(WindowController as MainWindowController);

SubtitleEdit/Windows/MainWindowController.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,18 @@ public void UpdateStartAndEndTime(int millisecondsToAdd)
551551
ReloadDataKeepSelection();
552552
}
553553

554+
public void SetStartTime(double milliseconds)
555+
{
556+
if (_selectedParagraph == null)
557+
return;
558+
559+
var durationMs = _selectedParagraph.Duration.TotalMilliseconds;
560+
_selectedParagraph.StartTime.TotalMilliseconds = milliseconds;
561+
_selectedParagraph.EndTime.TotalMilliseconds = milliseconds + durationMs;
562+
Window.SetTimeCode(_selectedParagraph);
563+
ReloadDataKeepSelection();
564+
}
565+
554566
public void UpdateEndTime(int millisecondsToAdd)
555567
{
556568
if (_selectedParagraph == null)
@@ -561,6 +573,16 @@ public void UpdateEndTime(int millisecondsToAdd)
561573
ReloadDataKeepSelection();
562574
}
563575

576+
public void UpdateDuration(double milliseconds)
577+
{
578+
if (_selectedParagraph == null)
579+
return;
580+
581+
_selectedParagraph.EndTime.TotalMilliseconds = _selectedParagraph.StartTime.TotalMilliseconds + milliseconds;
582+
Window.SetTimeCode(_selectedParagraph);
583+
ReloadDataKeepSelection();
584+
}
585+
564586
public void OpenSubtitlePrompt()
565587
{
566588
using (var dlg = NSOpenPanel.OpenPanel)
@@ -893,7 +915,7 @@ public bool ContinueIfChanged()
893915

894916
public void SetTitle()
895917
{
896-
string title = "Subtitle Edit 3.4 beta 1";
918+
string title = "Subtitle Edit 3.4 alpha 2";
897919
if (!string.IsNullOrWhiteSpace(_subtitleFileName))
898920
title += " - " + _subtitleFileName;
899921
Window.Title = title;

0 commit comments

Comments
 (0)