diff --git a/SubtitleEdit.sln.DotSettings b/SubtitleEdit.sln.DotSettings
index fb114b125..ac54a4699 100644
--- a/SubtitleEdit.sln.DotSettings
+++ b/SubtitleEdit.sln.DotSettings
@@ -23,5 +23,6 @@
True
True
True
+ True
True
True
\ No newline at end of file
diff --git a/src/ui/Controls/CuesPreviewView.cs b/src/ui/Controls/CuesPreviewView.cs
index 76bcc3115..5cddf4490 100644
--- a/src/ui/Controls/CuesPreviewView.cs
+++ b/src/ui/Controls/CuesPreviewView.cs
@@ -12,11 +12,11 @@ namespace Nikse.SubtitleEdit.Controls
private string _previewText = "Subtitle text.";
private bool _showShotChange = true;
- private int _leftGap = 0;
+ private int _leftGap;
private int _leftRedZone = 7;
private int _leftGreenZone = 12;
- private int _rightGap = 0;
+ private int _rightGap;
private int _rightRedZone = 7;
private int _rightGreenZone = 12;
@@ -74,19 +74,14 @@ namespace Nikse.SubtitleEdit.Controls
set { _rightGreenZone = value; Invalidate(); }
}
- public CuesPreviewView()
- {
-
- }
-
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
using (var brush = new SolidBrush(Color.White))
{
- float width = this.Size.Width;
- float height = this.Size.Height;
+ float width = Size.Width;
+ float height = Size.Height;
// Background
brush.Color = Color.Gray;
@@ -94,31 +89,31 @@ namespace Nikse.SubtitleEdit.Controls
// Green zones
brush.Color = Color.Green;
- e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(this.LeftGreenZone), 0, FramesToPixels(this.LeftGreenZone), height);
- e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(this.RightGreenZone), height);
+ e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(LeftGreenZone), 0, FramesToPixels(LeftGreenZone), height);
+ e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(RightGreenZone), height);
// Red zone
brush.Color = Color.Firebrick;
- e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(this.LeftRedZone), 0, FramesToPixels(this.LeftRedZone), height);
- e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(this.RightRedZone), height);
+ e.Graphics.FillRectangle(brush, (width / 2) - FramesToPixels(LeftRedZone), 0, FramesToPixels(LeftRedZone), height);
+ e.Graphics.FillRectangle(brush, width / 2, 0, FramesToPixels(RightRedZone), height);
// Subtitle
brush.Color = Color.FromArgb(153, 0, 0, 0);
- e.Graphics.FillRectangle(brush, 0, 0, (width / 2) - FramesToPixels(this.LeftGap), height);
- e.Graphics.FillRectangle(brush, (width / 2) + FramesToPixels(this.RightGap), 0, (width / 2) - FramesToPixels(this.RightGap), height);
+ e.Graphics.FillRectangle(brush, 0, 0, (width / 2) - FramesToPixels(LeftGap), height);
+ e.Graphics.FillRectangle(brush, (width / 2) + FramesToPixels(RightGap), 0, (width / 2) - FramesToPixels(RightGap), height);
brush.Color = Color.White;
- if (this.LeftGap <= 12)
+ if (LeftGap <= 12)
{
- e.Graphics.DrawString(GetSubtitleLabel(1000, GetLeftOutCue()), UiUtil.GetDefaultFont(), brush, new RectangleF(5, 5, (width / 2) - FramesToPixels(this.LeftGap) - 10, height - 10));
+ e.Graphics.DrawString(GetSubtitleLabel(1000, GetLeftOutCue()), UiUtil.GetDefaultFont(), brush, new RectangleF(5, 5, (width / 2) - FramesToPixels(LeftGap) - 10, height - 10));
}
- if (this.RightGap <= 12)
+ if (RightGap <= 12)
{
- e.Graphics.DrawString(GetSubtitleLabel(GetRightInCue(), 5000), UiUtil.GetDefaultFont(), brush, new RectangleF((width / 2) + FramesToPixels(this.RightGap) + 5, 5, (width / 2) - FramesToPixels(this.RightGap) - 10, height - 10));
+ e.Graphics.DrawString(GetSubtitleLabel(GetRightInCue(), 5000), UiUtil.GetDefaultFont(), brush, new RectangleF((width / 2) + FramesToPixels(RightGap) + 5, 5, (width / 2) - FramesToPixels(RightGap) - 10, height - 10));
}
// Shot change
- if (this.ShowShotChange)
+ if (ShowShotChange)
{
brush.Color = Color.PaleGreen;
e.Graphics.FillRectangle(brush, (width / 2) - (1.5f), 0, 3f, height);
@@ -128,24 +123,24 @@ namespace Nikse.SubtitleEdit.Controls
private float FramesToPixels(float frames)
{
- return (Size.Width / (this.FrameRate * 3)) * frames;
+ return (Size.Width / (FrameRate * 3)) * frames;
}
private double GetLeftOutCue()
{
- return 3000 - (this.LeftGap * (1000 / this.FrameRate));
+ return 3000 - (LeftGap * (1000 / FrameRate));
}
private double GetRightInCue()
{
- return 3000 + (this.RightGap * (1000 / this.FrameRate));
+ return 3000 + (RightGap * (1000 / FrameRate));
}
private string GetSubtitleLabel(double start, double end)
{
var timeCodeStart = new TimeCode(start);
var timeCodeEnd = new TimeCode(end);
- return timeCodeStart.ToString() + " --> " + timeCodeEnd.ToString() + Environment.NewLine + this.PreviewText;
+ return timeCodeStart + " --> " + timeCodeEnd + Environment.NewLine + PreviewText;
}
}
}
\ No newline at end of file
diff --git a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodes.cs b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodes.cs
index f9ee86a95..a871a1288 100644
--- a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodes.cs
+++ b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodes.cs
@@ -10,7 +10,7 @@ using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
- public partial class BeautifyTimeCodes : Form
+ public sealed partial class BeautifyTimeCodes : Form
{
private readonly Subtitle _subtitle;
private readonly VideoInfo _videoInfo;
@@ -80,13 +80,24 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
if (_videoFileName != null)
{
// Load time codes
- this._timeCodes = TimeCodesFileHelper.FromDisk(videoFileName);
- this._shotChanges = shotChanges;
+ _timeCodes = TimeCodesFileHelper.FromDisk(videoFileName);
+ _shotChanges = shotChanges;
// Check if ffprobe is available
- var ffProbePath = Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation) + Path.DirectorySeparatorChar + "ffprobe" + Path.GetExtension(Configuration.Settings.General.FFmpegLocation);
- var isffProbeAvailable = !string.IsNullOrEmpty(ffProbePath) && File.Exists(ffProbePath);
- if (!isffProbeAvailable)
+ var isFfProbeAvailable = false;
+ if (!string.IsNullOrEmpty(Configuration.Settings.General.FFmpegLocation))
+ {
+ var ffProbePath = Path.Combine(Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation), "ffprobe.exe");
+ if (Configuration.IsRunningOnWindows)
+ {
+ isFfProbeAvailable = File.Exists(ffProbePath);
+ }
+ else
+ {
+ isFfProbeAvailable = true;
+ }
+ }
+ if (!isFfProbeAvailable)
{
checkBoxExtractExactTimeCodes.Enabled = false;
checkBoxExtractExactTimeCodes.Checked = false;
@@ -234,8 +245,8 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
if (form.ShowDialog(this) == DialogResult.OK)
{
- this._shotChanges = form.ShotChangesInSeconds;
- this.ShotChangesInSeconds = form.ShotChangesInSeconds;
+ _shotChanges = form.ShotChangesInSeconds;
+ ShotChangesInSeconds = form.ShotChangesInSeconds;
ShotChangeHelper.SaveShotChanges(_videoFileName, form.ShotChangesInSeconds);
RefreshControls();
}
@@ -268,12 +279,12 @@ namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
FixedSubtitle = new Subtitle(_subtitle);
TimeCodesBeautifier timeCodesBeautifier = new TimeCodesBeautifier(
- FixedSubtitle,
+ FixedSubtitle,
_frameRate,
checkBoxExtractExactTimeCodes.Checked ? _timeCodes : new List(), // ditto
checkBoxSnapToShotChanges.Checked ? _shotChanges : new List()
);
- timeCodesBeautifier.ProgressChanged += delegate(double progress)
+ timeCodesBeautifier.ProgressChanged += delegate (double progress)
{
progressBar.Value = Convert.ToInt32(progress * 100);
Application.DoEvents();
diff --git a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.Designer.cs b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.Designer.cs
index a4b32f9e2..b441b410f 100644
--- a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.Designer.cs
+++ b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.Designer.cs
@@ -1,7 +1,7 @@
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
- partial class BeautifyTimeCodesProfile
+ sealed partial class BeautifyTimeCodesProfile
{
///
/// Required designer variable.
diff --git a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.cs b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.cs
index 382cd979f..a8a5a7693 100644
--- a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.cs
+++ b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfile.cs
@@ -5,7 +5,7 @@ using Nikse.SubtitleEdit.Logic;
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
- public partial class BeautifyTimeCodesProfile : Form
+ public sealed partial class BeautifyTimeCodesProfile : Form
{
private readonly double _frameRate;
diff --git a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs
index 45d71fb77..80105f1b2 100644
--- a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs
+++ b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.Designer.cs
@@ -1,6 +1,6 @@
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
- partial class BeautifyTimeCodesProfileSimple
+ sealed partial class BeautifyTimeCodesProfileSimple
{
///
/// Required designer variable.
diff --git a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs
index 2b65c2d02..7f9ce0375 100644
--- a/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs
+++ b/src/ui/Forms/BeautifyTimeCodes/BeautifyTimeCodesProfileSimple.cs
@@ -7,7 +7,7 @@ using Nikse.SubtitleEdit.Core.SubtitleFormats;
namespace Nikse.SubtitleEdit.Forms.BeautifyTimeCodes
{
- public partial class BeautifyTimeCodesProfileSimple : Form
+ public sealed partial class BeautifyTimeCodesProfileSimple : Form
{
private readonly double _frameRate;
diff --git a/src/ui/Logic/TimeCodesGenerator.cs b/src/ui/Logic/TimeCodesGenerator.cs
index 93a52da31..e60e7017a 100644
--- a/src/ui/Logic/TimeCodesGenerator.cs
+++ b/src/ui/Logic/TimeCodesGenerator.cs
@@ -36,8 +36,9 @@ namespace Nikse.SubtitleEdit.Logic
{
_timeCodes = new List();
}
- var ffProbePath = Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation) + Path.DirectorySeparatorChar + "ffprobe" + Path.GetExtension(Configuration.Settings.General.FFmpegLocation);
- if (!Configuration.IsRunningOnWindows && (string.IsNullOrEmpty(ffProbePath) || !File.Exists(ffProbePath)))
+
+ var ffProbePath = Path.Combine(Path.GetDirectoryName(Configuration.Settings.General.FFmpegLocation), "ffprobe.exe");
+ if (!Configuration.IsRunningOnWindows && !File.Exists(ffProbePath))
{
ffProbePath = "ffprobe";
}