diff --git a/Icons/Black/AssaAttachments.png b/Icons/Black/AssaAttachments.png
new file mode 100644
index 000000000..d30580ceb
Binary files /dev/null and b/Icons/Black/AssaAttachments.png differ
diff --git a/Icons/Black/AssaDraw.png b/Icons/Black/AssaDraw.png
new file mode 100644
index 000000000..03ff3bd33
Binary files /dev/null and b/Icons/Black/AssaDraw.png differ
diff --git a/Icons/Black/AssaProperties.png b/Icons/Black/AssaProperties.png
new file mode 100644
index 000000000..e3b78db53
Binary files /dev/null and b/Icons/Black/AssaProperties.png differ
diff --git a/Icons/Black/AssaStyle.png b/Icons/Black/AssaStyle.png
new file mode 100644
index 000000000..1aba2e50e
Binary files /dev/null and b/Icons/Black/AssaStyle.png differ
diff --git a/Icons/Black/BeautifyTimeCodes.png b/Icons/Black/BeautifyTimeCodes.png
new file mode 100644
index 000000000..1662eba06
Binary files /dev/null and b/Icons/Black/BeautifyTimeCodes.png differ
diff --git a/Icons/Black/BurnIn.png b/Icons/Black/BurnIn.png
new file mode 100644
index 000000000..116ccf99f
Binary files /dev/null and b/Icons/Black/BurnIn.png differ
diff --git a/Icons/Black/EbuProperties.png b/Icons/Black/EbuProperties.png
new file mode 100644
index 000000000..ee9454cc1
Binary files /dev/null and b/Icons/Black/EbuProperties.png differ
diff --git a/Icons/Black/Find.png b/Icons/Black/Find.png
new file mode 100644
index 000000000..0d9217ca2
Binary files /dev/null and b/Icons/Black/Find.png differ
diff --git a/Icons/Black/FixCommonErrors.png b/Icons/Black/FixCommonErrors.png
new file mode 100644
index 000000000..c37f8aa7e
Binary files /dev/null and b/Icons/Black/FixCommonErrors.png differ
diff --git a/Icons/Black/Help.png b/Icons/Black/Help.png
new file mode 100644
index 000000000..b83bf6e16
Binary files /dev/null and b/Icons/Black/Help.png differ
diff --git a/Icons/Black/IttProperties.png b/Icons/Black/IttProperties.png
new file mode 100644
index 000000000..d2963ed40
Binary files /dev/null and b/Icons/Black/IttProperties.png differ
diff --git a/Icons/Black/Netflix.png b/Icons/Black/Netflix.png
new file mode 100644
index 000000000..bf7f31581
Binary files /dev/null and b/Icons/Black/Netflix.png differ
diff --git a/Icons/Black/New.png b/Icons/Black/New.png
new file mode 100644
index 000000000..1459df11e
Binary files /dev/null and b/Icons/Black/New.png differ
diff --git a/Icons/Black/Open.png b/Icons/Black/Open.png
new file mode 100644
index 000000000..482d4dbb9
Binary files /dev/null and b/Icons/Black/Open.png differ
diff --git a/Icons/Black/RemoveTextForHi.png b/Icons/Black/RemoveTextForHi.png
new file mode 100644
index 000000000..dcb275631
Binary files /dev/null and b/Icons/Black/RemoveTextForHi.png differ
diff --git a/Icons/Black/Replace.png b/Icons/Black/Replace.png
new file mode 100644
index 000000000..f31a8d436
Binary files /dev/null and b/Icons/Black/Replace.png differ
diff --git a/Icons/Black/Save.png b/Icons/Black/Save.png
new file mode 100644
index 000000000..e8cd98e95
Binary files /dev/null and b/Icons/Black/Save.png differ
diff --git a/Icons/Black/SaveAs.png b/Icons/Black/SaveAs.png
new file mode 100644
index 000000000..a0d78f312
Binary files /dev/null and b/Icons/Black/SaveAs.png differ
diff --git a/Icons/Black/Settings.png b/Icons/Black/Settings.png
new file mode 100644
index 000000000..2af5c8dbe
Binary files /dev/null and b/Icons/Black/Settings.png differ
diff --git a/Icons/Black/SourceView.png b/Icons/Black/SourceView.png
new file mode 100644
index 000000000..6d55e38bc
Binary files /dev/null and b/Icons/Black/SourceView.png differ
diff --git a/Icons/Black/SpellCheck.png b/Icons/Black/SpellCheck.png
new file mode 100644
index 000000000..d03eca483
Binary files /dev/null and b/Icons/Black/SpellCheck.png differ
diff --git a/Icons/Black/VideoToggle.png b/Icons/Black/VideoToggle.png
new file mode 100644
index 000000000..6ab17cd8e
Binary files /dev/null and b/Icons/Black/VideoToggle.png differ
diff --git a/Icons/Black/VisualSync.png b/Icons/Black/VisualSync.png
new file mode 100644
index 000000000..adbd0b312
Binary files /dev/null and b/Icons/Black/VisualSync.png differ
diff --git a/Icons/Black/WaveformToggle.png b/Icons/Black/WaveformToggle.png
new file mode 100644
index 000000000..8c4af4a27
Binary files /dev/null and b/Icons/Black/WaveformToggle.png differ
diff --git a/Icons/Black/WebVttProperties.png b/Icons/Black/WebVttProperties.png
new file mode 100644
index 000000000..110e5501b
Binary files /dev/null and b/Icons/Black/WebVttProperties.png differ
diff --git a/Icons/DarkTheme/AssaAttachments.png b/Icons/DarkTheme/AssaAttachments.png
index 49ad2e205..48fad3d30 100644
Binary files a/Icons/DarkTheme/AssaAttachments.png and b/Icons/DarkTheme/AssaAttachments.png differ
diff --git a/Icons/DarkTheme/AssaDraw.png b/Icons/DarkTheme/AssaDraw.png
new file mode 100644
index 000000000..95a3fae53
Binary files /dev/null and b/Icons/DarkTheme/AssaDraw.png differ
diff --git a/Icons/DarkTheme/EbuProperties.png b/Icons/DarkTheme/EbuProperties.png
index d16c2566f..48c75bd9b 100644
Binary files a/Icons/DarkTheme/EbuProperties.png and b/Icons/DarkTheme/EbuProperties.png differ
diff --git a/Icons/DarkTheme/VideoToggle.png b/Icons/DarkTheme/VideoToggle.png
index 0ae5f5b48..df80697dd 100644
Binary files a/Icons/DarkTheme/VideoToggle.png and b/Icons/DarkTheme/VideoToggle.png differ
diff --git a/Icons/DarkTheme/WaveformToggle.png b/Icons/DarkTheme/WaveformToggle.png
index 90ac63b73..c631f19ee 100644
Binary files a/Icons/DarkTheme/WaveformToggle.png and b/Icons/DarkTheme/WaveformToggle.png differ
diff --git a/Icons/DefaultTheme/AssaAttachments.png b/Icons/DefaultTheme/AssaAttachments.png
index 72cfdbaa4..da25cfd3a 100644
Binary files a/Icons/DefaultTheme/AssaAttachments.png and b/Icons/DefaultTheme/AssaAttachments.png differ
diff --git a/Icons/DefaultTheme/AssaDraw.png b/Icons/DefaultTheme/AssaDraw.png
new file mode 100644
index 000000000..e22e0af8a
Binary files /dev/null and b/Icons/DefaultTheme/AssaDraw.png differ
diff --git a/Icons/DefaultTheme/EbuProperties.png b/Icons/DefaultTheme/EbuProperties.png
index 9b38a186d..6910a8fa6 100644
Binary files a/Icons/DefaultTheme/EbuProperties.png and b/Icons/DefaultTheme/EbuProperties.png differ
diff --git a/Icons/DefaultTheme/VideoToggle.png b/Icons/DefaultTheme/VideoToggle.png
index 627dbead3..48f075b1b 100644
Binary files a/Icons/DefaultTheme/VideoToggle.png and b/Icons/DefaultTheme/VideoToggle.png differ
diff --git a/Icons/DefaultTheme/WaveformToggle.png b/Icons/DefaultTheme/WaveformToggle.png
index 49f423bf8..e2861d65a 100644
Binary files a/Icons/DefaultTheme/WaveformToggle.png and b/Icons/DefaultTheme/WaveformToggle.png differ
diff --git a/Icons/Old/AssaAttachments.png b/Icons/Legacy/AssaAttachments.png
similarity index 100%
rename from Icons/Old/AssaAttachments.png
rename to Icons/Legacy/AssaAttachments.png
diff --git a/Icons/Old/AssaDraw.png b/Icons/Legacy/AssaDraw.png
similarity index 100%
rename from Icons/Old/AssaDraw.png
rename to Icons/Legacy/AssaDraw.png
diff --git a/Icons/Old/AssaProperties.png b/Icons/Legacy/AssaProperties.png
similarity index 100%
rename from Icons/Old/AssaProperties.png
rename to Icons/Legacy/AssaProperties.png
diff --git a/Icons/Old/AssaStyle.png b/Icons/Legacy/AssaStyle.png
similarity index 100%
rename from Icons/Old/AssaStyle.png
rename to Icons/Legacy/AssaStyle.png
diff --git a/Icons/Old/BeautifyTimeCodes.png b/Icons/Legacy/BeautifyTimeCodes.png
similarity index 100%
rename from Icons/Old/BeautifyTimeCodes.png
rename to Icons/Legacy/BeautifyTimeCodes.png
diff --git a/Icons/Old/BurnIn.png b/Icons/Legacy/BurnIn.png
similarity index 100%
rename from Icons/Old/BurnIn.png
rename to Icons/Legacy/BurnIn.png
diff --git a/Icons/Old/EbuProperties.png b/Icons/Legacy/EbuProperties.png
similarity index 100%
rename from Icons/Old/EbuProperties.png
rename to Icons/Legacy/EbuProperties.png
diff --git a/Icons/Old/Find.png b/Icons/Legacy/Find.png
similarity index 100%
rename from Icons/Old/Find.png
rename to Icons/Legacy/Find.png
diff --git a/Icons/Old/FixCommonErrors.png b/Icons/Legacy/FixCommonErrors.png
similarity index 100%
rename from Icons/Old/FixCommonErrors.png
rename to Icons/Legacy/FixCommonErrors.png
diff --git a/Icons/Old/Help.png b/Icons/Legacy/Help.png
similarity index 100%
rename from Icons/Old/Help.png
rename to Icons/Legacy/Help.png
diff --git a/Icons/Old/IttProperties.png b/Icons/Legacy/IttProperties.png
similarity index 100%
rename from Icons/Old/IttProperties.png
rename to Icons/Legacy/IttProperties.png
diff --git a/Icons/Old/Netflix.png b/Icons/Legacy/Netflix.png
similarity index 100%
rename from Icons/Old/Netflix.png
rename to Icons/Legacy/Netflix.png
diff --git a/Icons/Old/New.png b/Icons/Legacy/New.png
similarity index 100%
rename from Icons/Old/New.png
rename to Icons/Legacy/New.png
diff --git a/Icons/Old/Open.png b/Icons/Legacy/Open.png
similarity index 100%
rename from Icons/Old/Open.png
rename to Icons/Legacy/Open.png
diff --git a/Icons/Old/RemoveTextForHI.png b/Icons/Legacy/RemoveTextForHI.png
similarity index 100%
rename from Icons/Old/RemoveTextForHI.png
rename to Icons/Legacy/RemoveTextForHI.png
diff --git a/Icons/Old/Replace.png b/Icons/Legacy/Replace.png
similarity index 100%
rename from Icons/Old/Replace.png
rename to Icons/Legacy/Replace.png
diff --git a/Icons/Old/Save.png b/Icons/Legacy/Save.png
similarity index 100%
rename from Icons/Old/Save.png
rename to Icons/Legacy/Save.png
diff --git a/Icons/Old/SaveAs.png b/Icons/Legacy/SaveAs.png
similarity index 100%
rename from Icons/Old/SaveAs.png
rename to Icons/Legacy/SaveAs.png
diff --git a/Icons/Old/Settings.png b/Icons/Legacy/Settings.png
similarity index 100%
rename from Icons/Old/Settings.png
rename to Icons/Legacy/Settings.png
diff --git a/Icons/Old/SourceView.png b/Icons/Legacy/SourceView.png
similarity index 100%
rename from Icons/Old/SourceView.png
rename to Icons/Legacy/SourceView.png
diff --git a/Icons/Old/SpellCheck.png b/Icons/Legacy/SpellCheck.png
similarity index 100%
rename from Icons/Old/SpellCheck.png
rename to Icons/Legacy/SpellCheck.png
diff --git a/Icons/Old/VideoToggle.png b/Icons/Legacy/VideoToggle.png
similarity index 100%
rename from Icons/Old/VideoToggle.png
rename to Icons/Legacy/VideoToggle.png
diff --git a/Icons/Old/VisualSync.png b/Icons/Legacy/VisualSync.png
similarity index 100%
rename from Icons/Old/VisualSync.png
rename to Icons/Legacy/VisualSync.png
diff --git a/Icons/Old/WaveformToggle.png b/Icons/Legacy/WaveformToggle.png
similarity index 100%
rename from Icons/Old/WaveformToggle.png
rename to Icons/Legacy/WaveformToggle.png
diff --git a/Icons/Old/WebVttProperties.png b/Icons/Legacy/WebVttProperties.png
similarity index 100%
rename from Icons/Old/WebVttProperties.png
rename to Icons/Legacy/WebVttProperties.png
diff --git a/LanguageBaseEnglish.xml b/LanguageBaseEnglish.xml
index 5d6d70bec..19ae7092c 100644
--- a/LanguageBaseEnglish.xml
+++ b/LanguageBaseEnglish.xml
@@ -2498,6 +2498,8 @@ can edit in same subtitle file (collaboration)
Use syntax coloring
Html color
ASSA color
+ Theme
+ Automatic
Dark theme
Use dark theme
Show list view grid lines
diff --git a/build.bat b/build.bat
index b38c7ad56..78dd9f395 100644
--- a/build.bat
+++ b/build.bat
@@ -191,6 +191,7 @@ IF NOT EXIST "temp_zip\Icons" MD "temp_zip\Icons"
IF NOT EXIST "temp_zip\Icons\DefaultTheme" MD "temp_zip\Icons\DefaultTheme"
IF NOT EXIST "temp_zip\Icons\DarkTheme" MD "temp_zip\Icons\DarkTheme"
IF NOT EXIST "temp_zip\Icons\Legacy" MD "temp_zip\Icons\Legacy"
+IF NOT EXIST "temp_zip\Icons\Black" MD "temp_zip\Icons\Black"
ECHO.
COPY /Y /V "..\..\..\..\LICENSE.txt" "temp_zip\"
@@ -220,6 +221,7 @@ COPY /Y /V "..\..\..\..\Icons\*.ico" "temp_zip\Icons\"
COPY /Y /V "..\..\..\..\Icons\DefaultTheme\*.png" "temp_zip\Icons\DefaultTheme"
COPY /Y /V "..\..\..\..\Icons\DarkTheme\*.png" "temp_zip\Icons\DarkTheme"
COPY /Y /V "..\..\..\..\Icons\Legacy\*.png" "temp_zip\Icons\Legacy"
+COPY /Y /V "..\..\..\..\Icons\Black\*.png" "temp_zip\Icons\Black"
PUSHD "temp_zip"
START "" /B /WAIT "%SEVENZIP%" a -tzip -mx=9 "SubtitleEdit-%VERSION%.zip" * >NUL
diff --git a/build_beta.bat b/build_beta.bat
index 9728e137a..e95f72b59 100644
--- a/build_beta.bat
+++ b/build_beta.bat
@@ -165,6 +165,7 @@ IF NOT EXIST "temp_zip\Icons" MD "temp_zip\Icons"
IF NOT EXIST "temp_zip\Icons\DefaultTheme" MD "temp_zip\Icons\DefaultTheme"
IF NOT EXIST "temp_zip\Icons\DarkTheme" MD "temp_zip\Icons\DarkTheme"
IF NOT EXIST "temp_zip\Icons\Legacy" MD "temp_zip\Icons\Legacy"
+IF NOT EXIST "temp_zip\Icons\Black" MD "temp_zip\Icons\Black"
ECHO.
COPY /Y /V "..\..\..\..\LICENSE.txt" "temp_zip\"
@@ -194,6 +195,7 @@ COPY /Y /V "..\..\..\..\Icons\*.ico" "temp_zip\Icons\"
COPY /Y /V "..\..\..\..\Icons\DefaultTheme\*.png" "temp_zip\Icons\DefaultTheme"
COPY /Y /V "..\..\..\..\Icons\DarkTheme\*.png" "temp_zip\Icons\DarkTheme"
COPY /Y /V "..\..\..\..\Icons\Legacy\*.png" "temp_zip\Icons\Legacy"
+COPY /Y /V "..\..\..\..\Icons\Black\*.png" "temp_zip\Icons\Black"
PUSHD "temp_zip"
START "" /B /WAIT "%SEVENZIP%" a -tzip -mx=9 "SubtitleEditBeta.zip" * >NUL
diff --git a/installer/Subtitle_Edit_Installer.iss b/installer/Subtitle_Edit_Installer.iss
index e5411476d..36710843c 100644
--- a/installer/Subtitle_Edit_Installer.iss
+++ b/installer/Subtitle_Edit_Installer.iss
@@ -264,8 +264,10 @@ Source: ..\Icons\vtt.ico; DestDir: {app}\Icons;
Source: ..\Icons\smi.ico; DestDir: {app}\Icons; Flags: ignoreversion onlyifdoesntexist; Components: main
Source: ..\Icons\itt.ico; DestDir: {app}\Icons; Flags: ignoreversion onlyifdoesntexist; Components: main
-Source: ..\Icons\DarkTheme\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\DarkTheme; Flags: ignoreversion onlyifdoesntexist; Components: main
-Source: ..\Icons\DefaultTheme\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\DefaultTheme; Flags: ignoreversion onlyifdoesntexist; Components: main
+Source: ..\Icons\DarkTheme\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\DarkTheme; Flags: ignoreversion onlyifdoesntexist; Components: main
+Source: ..\Icons\DefaultTheme\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\DefaultTheme; Flags: ignoreversion onlyifdoesntexist; Components: main
+Source: ..\Icons\Legacy\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\Legacy; Flags: ignoreversion onlyifdoesntexist; Components: main
+Source: ..\Icons\Black\*.png; DestDir: {userappdata}\Subtitle Edit\Icons\Black; Flags: ignoreversion onlyifdoesntexist; Components: main
#ifdef localize
Source: {#bindir}\Languages\ar-EG.xml; DestDir: {app}\Languages; Flags: ignoreversion; Components: translations
@@ -728,6 +730,7 @@ begin
DelTree(ExpandConstant('{userappdata}\Subtitle Edit\Plugins\*.*'), False, True, False);
RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\Plugins'));
DelTree(ExpandConstant('{userappdata}\Subtitle Edit\Icons\*.*'), False, True, False);
+ RemoveDir(ExpandConstant('{userappdata}\Subtitle Edit\Icons'));
end;
diff --git a/src/ui/Controls/VideoPlayerContainer.cs b/src/ui/Controls/VideoPlayerContainer.cs
index 0203b099a..fb8ee0046 100644
--- a/src/ui/Controls/VideoPlayerContainer.cs
+++ b/src/ui/Controls/VideoPlayerContainer.cs
@@ -647,11 +647,20 @@ namespace Nikse.SubtitleEdit.Controls
{
_panelControls.Visible = true;
_panelControls.BringToFront();
- _panelSubtitle.Height -= ControlsHeight;
- if (PanelPlayer.Dock == DockStyle.Fill)
+ var useCompleteFullscreen = VideoPlayer is LibMpvDynamic && Configuration.Settings.General.MpvHandlesPreviewText;
+ if (useCompleteFullscreen && PanelPlayer.Dock == DockStyle.Fill)
{
- PanelPlayer.Dock = DockStyle.None;
+ // keep fullscreen
+ }
+ else
+ {
+ _panelSubtitle.Height -= ControlsHeight;
+
+ if (PanelPlayer.Dock == DockStyle.Fill)
+ {
+ PanelPlayer.Dock = DockStyle.None;
+ }
}
}
@@ -1272,6 +1281,16 @@ namespace Nikse.SubtitleEdit.Controls
_pictureBoxFullscreen.Visible = false;
}
+ public void SetFullFixed()
+ {
+ var useCompleteFullscreen = VideoPlayer is LibMpvDynamic && Configuration.Settings.General.MpvHandlesPreviewText;
+ if (useCompleteFullscreen)
+ {
+ PanelPlayer.Dock = DockStyle.Fill;
+ _panelControls.BringToFront();
+ }
+ }
+
public void ShowFullScreenControls()
{
_pictureBoxFullscreen.Image = (Image)_resources.GetObject("pictureBoxNoFS.Image");
diff --git a/src/ui/Forms/FixCommonErrors.cs b/src/ui/Forms/FixCommonErrors.cs
index 7e85ff1cc..ad37094bb 100644
--- a/src/ui/Forms/FixCommonErrors.cs
+++ b/src/ui/Forms/FixCommonErrors.cs
@@ -822,6 +822,13 @@ namespace Nikse.SubtitleEdit.Forms
_newLog.Clear();
Subtitle = new Subtitle(FixedSubtitle, false);
+
+ if (listView1.Items[IndexFixDoubleDash].Checked)
+ {
+ var fixItem = (FixItem)listView1.Items[IndexFixDoubleDash].Tag;
+ fixItem.Action.Invoke();
+ }
+
if (listView1.Items[IndexFixOcrErrorsViaReplaceList].Checked)
{
var fixItem = (FixItem)listView1.Items[IndexFixOcrErrorsViaReplaceList].Tag;
diff --git a/src/ui/Forms/GenerateVideoWithHardSubs.Designer.cs b/src/ui/Forms/GenerateVideoWithHardSubs.Designer.cs
index 91b3b3e99..58b89c17c 100644
--- a/src/ui/Forms/GenerateVideoWithHardSubs.Designer.cs
+++ b/src/ui/Forms/GenerateVideoWithHardSubs.Designer.cs
@@ -153,7 +153,7 @@ namespace Nikse.SubtitleEdit.Forms
this.contextMenuStripGenerate.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.promptParameterBeforeGenerateToolStripMenuItem});
this.contextMenuStripGenerate.Name = "contextMenuStripGenerate";
- this.contextMenuStripGenerate.Size = new System.Drawing.Size(290, 48);
+ this.contextMenuStripGenerate.Size = new System.Drawing.Size(290, 26);
//
// promptParameterBeforeGenerateToolStripMenuItem
//
@@ -670,7 +670,8 @@ namespace Nikse.SubtitleEdit.Forms
"h264_nvenc",
"hevc_nvenc",
"h264_amf",
- "hevc_amf"});
+ "hevc_amf",
+ "prores_ks"});
this.comboBoxVideoEncoding.Location = new System.Drawing.Point(95, 58);
this.comboBoxVideoEncoding.Name = "comboBoxVideoEncoding";
this.comboBoxVideoEncoding.Size = new System.Drawing.Size(121, 21);
diff --git a/src/ui/Forms/GenerateVideoWithHardSubs.cs b/src/ui/Forms/GenerateVideoWithHardSubs.cs
index 489878e73..5c12d3dd3 100644
--- a/src/ui/Forms/GenerateVideoWithHardSubs.cs
+++ b/src/ui/Forms/GenerateVideoWithHardSubs.cs
@@ -296,6 +296,11 @@ namespace Nikse.SubtitleEdit.Forms
using (var saveDialog = new SaveFileDialog { FileName = SuggestNewVideoFileName(), Filter = "MP4|*.mp4|Matroska|*.mkv|WebM|*.webm", AddExtension = true })
{
+ if (comboBoxVideoEncoding.Text == "prores_ks")
+ {
+ saveDialog.Filter = "mov|*.mov|Matroska|*.mkv|Material eXchange Format|*.mxf";
+ }
+
if (saveDialog.ShowDialog(this) != DialogResult.OK)
{
buttonGenerate.Enabled = true;
@@ -475,6 +480,10 @@ namespace Nikse.SubtitleEdit.Forms
{
fileName += ".vp9";
}
+ else if (comboBoxVideoEncoding.Text == "prores_ks")
+ {
+ fileName += ".ProRes";
+ }
else
{
fileName += ".x264";
@@ -485,6 +494,11 @@ namespace Nikse.SubtitleEdit.Forms
fileName += $".{numericUpDownCutFromHours.Text}-{numericUpDownCutFromMinutes.Text}-{numericUpDownCutFromSeconds.Text}_{numericUpDownCutToHours.Text}-{numericUpDownCutToMinutes.Text}-{numericUpDownCutToSeconds.Text}";
}
+ if (comboBoxVideoEncoding.Text == "prores_ks")
+ {
+ return fileName.Replace(".", "_") + ".mov";
+ }
+
return fileName.Replace(".", "_") + ".mp4";
}
@@ -830,6 +844,10 @@ namespace Nikse.SubtitleEdit.Forms
{
UiUtil.OpenUrl("https://trac.ffmpeg.org/wiki/HWAccelIntro");
}
+ else if (comboBoxVideoEncoding.Text == "prores_ks")
+ {
+ UiUtil.OpenUrl("https://ottverse.com/ffmpeg-convert-to-apple-prores-422-4444-hq");
+ }
else
{
UiUtil.OpenUrl("http://trac.ffmpeg.org/wiki/Encode/H.264");
@@ -869,7 +887,10 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxCrf.Items.Add(string.Empty);
labelTune.Visible = true;
comboBoxTune.Visible = true;
- labelCRF.Text = "CRF";
+ labelCRF.Visible = true;
+ comboBoxCrf.Visible = true;
+ labelPreset.Text = LanguageSettings.Current.GenerateVideoWithBurnedInSubs.Preset;
+ labelCRF.Text = LanguageSettings.Current.GenerateVideoWithBurnedInSubs.Crf;
labelCrfHint.Text = string.Empty;
FillPresets(comboBoxVideoEncoding.Text);
@@ -921,6 +942,19 @@ namespace Nikse.SubtitleEdit.Forms
labelCrfHint.Text = "0=best quality, 10=best speed";
comboBoxCrf.Text = string.Empty;
}
+ else if (comboBoxVideoEncoding.Text == "prores_ks")
+ {
+ labelPreset.Text = "Profile";
+ comboBoxPreset.SelectedItem = 2;
+
+ // https://ottverse.com/ffmpeg-convert-to-apple-prores-422-4444-hq/
+
+ labelCRF.Visible = false;
+ comboBoxCrf.Visible = false;
+
+ labelTune.Visible = false;
+ comboBoxTune.Visible = false;
+ }
else
{
for (var i = 17; i <= 28; i++)
@@ -931,7 +965,6 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxCrf.Text = "23";
}
comboBoxCrf.EndUpdate();
-
}
private void FillTuneIn(string videoCodec)
@@ -1006,10 +1039,7 @@ namespace Nikse.SubtitleEdit.Forms
}
else if (videoCodec == "hevc_amf")
{
- items = new List
- {
- string.Empty,
- };
+ items = new List { string.Empty };
}
else if (videoCodec == "libvpx-vp9")
{
@@ -1018,6 +1048,13 @@ namespace Nikse.SubtitleEdit.Forms
comboBoxTune.Visible = false;
comboBoxTune.Text = string.Empty;
}
+ else if (videoCodec == "prores_ks")
+ {
+ items = new List { string.Empty };
+ labelTune.Visible = false;
+ comboBoxTune.Visible = false;
+ comboBoxTune.Text = string.Empty;
+ }
comboBoxTune.Items.Clear();
foreach (var item in items)
@@ -1111,6 +1148,18 @@ namespace Nikse.SubtitleEdit.Forms
{
items = new List { string.Empty };
}
+ else if (videoCodec == "prores_ks")
+ {
+ items = new List
+ {
+ "proxy",
+ "lt",
+ "standard",
+ "hq",
+ "4444",
+ "4444xq",
+ };
+ }
comboBoxPreset.Items.Clear();
foreach (var item in items)
diff --git a/src/ui/Forms/Options/Settings.Designer.cs b/src/ui/Forms/Options/Settings.Designer.cs
index 0f5cf4ef9..6745911fc 100644
--- a/src/ui/Forms/Options/Settings.Designer.cs
+++ b/src/ui/Forms/Options/Settings.Designer.cs
@@ -4112,7 +4112,7 @@
//
// pictureBoxEbuProperties
//
- this.pictureBoxEbuProperties.Location = new System.Drawing.Point(323, 398);
+ this.pictureBoxEbuProperties.Location = new System.Drawing.Point(323, 400);
this.pictureBoxEbuProperties.Name = "pictureBoxEbuProperties";
this.pictureBoxEbuProperties.Size = new System.Drawing.Size(32, 32);
this.pictureBoxEbuProperties.TabIndex = 59;
@@ -4120,7 +4120,7 @@
//
// pictureBoxWebVttProperties
//
- this.pictureBoxWebVttProperties.Location = new System.Drawing.Point(285, 398);
+ this.pictureBoxWebVttProperties.Location = new System.Drawing.Point(285, 400);
this.pictureBoxWebVttProperties.Name = "pictureBoxWebVttProperties";
this.pictureBoxWebVttProperties.Size = new System.Drawing.Size(32, 32);
this.pictureBoxWebVttProperties.TabIndex = 58;
@@ -4128,7 +4128,7 @@
//
// pictureBoxIttProperties
//
- this.pictureBoxIttProperties.Location = new System.Drawing.Point(247, 398);
+ this.pictureBoxIttProperties.Location = new System.Drawing.Point(247, 400);
this.pictureBoxIttProperties.Name = "pictureBoxIttProperties";
this.pictureBoxIttProperties.Size = new System.Drawing.Size(32, 32);
this.pictureBoxIttProperties.TabIndex = 57;
@@ -4136,7 +4136,7 @@
//
// pictureBoxToggleVideo
//
- this.pictureBoxToggleVideo.Location = new System.Drawing.Point(209, 398);
+ this.pictureBoxToggleVideo.Location = new System.Drawing.Point(209, 400);
this.pictureBoxToggleVideo.Name = "pictureBoxToggleVideo";
this.pictureBoxToggleVideo.Size = new System.Drawing.Size(32, 32);
this.pictureBoxToggleVideo.TabIndex = 56;
@@ -4144,7 +4144,7 @@
//
// pictureBoxToggleWaveform
//
- this.pictureBoxToggleWaveform.Location = new System.Drawing.Point(171, 398);
+ this.pictureBoxToggleWaveform.Location = new System.Drawing.Point(171, 400);
this.pictureBoxToggleWaveform.Name = "pictureBoxToggleWaveform";
this.pictureBoxToggleWaveform.Size = new System.Drawing.Size(32, 32);
this.pictureBoxToggleWaveform.TabIndex = 55;
@@ -4152,7 +4152,7 @@
//
// pictureBoxAssaDraw
//
- this.pictureBoxAssaDraw.Location = new System.Drawing.Point(133, 399);
+ this.pictureBoxAssaDraw.Location = new System.Drawing.Point(133, 400);
this.pictureBoxAssaDraw.Name = "pictureBoxAssaDraw";
this.pictureBoxAssaDraw.Size = new System.Drawing.Size(32, 32);
this.pictureBoxAssaDraw.TabIndex = 54;
@@ -4160,7 +4160,7 @@
//
// pictureBoxAssAttachments
//
- this.pictureBoxAssAttachments.Location = new System.Drawing.Point(95, 399);
+ this.pictureBoxAssAttachments.Location = new System.Drawing.Point(95, 400);
this.pictureBoxAssAttachments.Name = "pictureBoxAssAttachments";
this.pictureBoxAssAttachments.Size = new System.Drawing.Size(32, 32);
this.pictureBoxAssAttachments.TabIndex = 53;
@@ -4168,7 +4168,7 @@
//
// pictureBoxAssProperties
//
- this.pictureBoxAssProperties.Location = new System.Drawing.Point(57, 399);
+ this.pictureBoxAssProperties.Location = new System.Drawing.Point(57, 400);
this.pictureBoxAssProperties.Name = "pictureBoxAssProperties";
this.pictureBoxAssProperties.Size = new System.Drawing.Size(32, 32);
this.pictureBoxAssProperties.TabIndex = 52;
@@ -4176,7 +4176,7 @@
//
// pictureBoxAssStyleManager
//
- this.pictureBoxAssStyleManager.Location = new System.Drawing.Point(19, 399);
+ this.pictureBoxAssStyleManager.Location = new System.Drawing.Point(19, 400);
this.pictureBoxAssStyleManager.Name = "pictureBoxAssStyleManager";
this.pictureBoxAssStyleManager.Size = new System.Drawing.Size(32, 32);
this.pictureBoxAssStyleManager.TabIndex = 51;
@@ -4185,7 +4185,7 @@
// labelToolbarIconTheme
//
this.labelToolbarIconTheme.AutoSize = true;
- this.labelToolbarIconTheme.Location = new System.Drawing.Point(487, 276);
+ this.labelToolbarIconTheme.Location = new System.Drawing.Point(15, 346);
this.labelToolbarIconTheme.Name = "labelToolbarIconTheme";
this.labelToolbarIconTheme.Size = new System.Drawing.Size(39, 13);
this.labelToolbarIconTheme.TabIndex = 50;
@@ -4195,7 +4195,7 @@
//
this.comboBoxToolbarIconTheme.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBoxToolbarIconTheme.FormattingEnabled = true;
- this.comboBoxToolbarIconTheme.Location = new System.Drawing.Point(487, 291);
+ this.comboBoxToolbarIconTheme.Location = new System.Drawing.Point(15, 361);
this.comboBoxToolbarIconTheme.Name = "comboBoxToolbarIconTheme";
this.comboBoxToolbarIconTheme.Size = new System.Drawing.Size(202, 21);
this.comboBoxToolbarIconTheme.TabIndex = 49;
diff --git a/src/ui/Forms/Options/Settings.cs b/src/ui/Forms/Options/Settings.cs
index 78e4af853..54ab691cd 100644
--- a/src/ui/Forms/Options/Settings.cs
+++ b/src/ui/Forms/Options/Settings.cs
@@ -393,6 +393,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
labelToggleSourceView.Text = language.ToggleView;
labelTBSettings.Text = language.SettingsName;
labelTBHelp.Text = language.Help;
+ labelToolbarIconTheme.Text = language.Theme;
checkBoxToolbarNew.Text = LanguageSettings.Current.General.Visible;
checkBoxToolbarOpen.Text = LanguageSettings.Current.General.Visible;
checkBoxToolbarSave.Text = LanguageSettings.Current.General.Visible;
@@ -1218,7 +1219,7 @@ namespace Nikse.SubtitleEdit.Forms.Options
comboBoxToolbarIconTheme.SelectedIndexChanged -= comboBoxToolbarIconTheme_SelectedIndexChanged;
var directories = Directory.GetDirectories(Configuration.IconsDirectory);
comboBoxToolbarIconTheme.Items.Clear();
- comboBoxToolbarIconTheme.Items.Add("Auto");
+ comboBoxToolbarIconTheme.Items.Add($"- {LanguageSettings.Current.Settings.Automatic} -");
comboBoxToolbarIconTheme.SelectedIndex = 0;
foreach (var dir in directories)
{
@@ -3690,23 +3691,23 @@ namespace Nikse.SubtitleEdit.Forms.Options
TryLoadIcon(pictureBoxEbuProperties, "EbuProperties");
}
- private void TryLoadIcon(PictureBox button, string iconName)
+ private void TryLoadIcon(PictureBox pictureBox, string iconName)
{
- pictureBoxEbuProperties.Image?.Dispose();
- pictureBoxEbuProperties.Image = null;
+ pictureBox.Image?.Dispose();
+ pictureBox.Image = null;
var theme = comboBoxToolbarIconTheme.Text;
var themeFullPath = Path.Combine(Configuration.IconsDirectory, theme, iconName + ".png");
if (comboBoxToolbarIconTheme.SelectedIndex > 0 && File.Exists(themeFullPath))
{
- button.Image = new Bitmap(themeFullPath);
+ pictureBox.Image = new Bitmap(themeFullPath);
return;
}
var fullPath = Path.Combine(Configuration.IconsDirectory, "DefaultTheme", iconName + ".png");
if (File.Exists(fullPath))
{
- button.Image = new Bitmap(fullPath);
+ pictureBox.Image = new Bitmap(fullPath);
}
}
}
diff --git a/src/ui/Forms/VideoPlayerUndocked.cs b/src/ui/Forms/VideoPlayerUndocked.cs
index a739ff75d..1a98dcb5d 100644
--- a/src/ui/Forms/VideoPlayerUndocked.cs
+++ b/src/ui/Forms/VideoPlayerUndocked.cs
@@ -19,7 +19,7 @@ namespace Nikse.SubtitleEdit.Forms
private readonly Keys _mainGeneralGoToPrevSubtitlePlayTranslate = UiUtil.GetKeys(Configuration.Settings.Shortcuts.GeneralGoToPrevSubtitlePlayTranslate);
private bool _autoSized;
- private Dictionary _mouseMoveDiff;
+ private readonly Dictionary _mouseMoveDiff;
private int _mouseLastX = -1;
private int _mouseLastY = -1;
@@ -240,6 +240,7 @@ namespace Nikse.SubtitleEdit.Forms
_videoPlayerContainer.SetSubtitleFont();
_videoPlayerContainer.SubtitleText = string.Empty;
_videoPlayerContainer.ShowFullScreenControls();
+ _videoPlayerContainer.SetFullFixed();
timer1.Start();
}
diff --git a/src/ui/Languages/bg-BG.xml b/src/ui/Languages/bg-BG.xml
index 14f3fbda5..c22f23d4d 100644
--- a/src/ui/Languages/bg-BG.xml
+++ b/src/ui/Languages/bg-BG.xml
@@ -3,7 +3,7 @@
Subtitle Edit
3.6.13
- Последен превод на български 10.05.2023: KalinM
+ Последен превод на български 15.05.2023: KalinM
bg-BG
OK
@@ -1296,7 +1296,7 @@ https://github.com/SubtitleEdit/subtitleedit
Затвори видео файла
Отваряне на втори файл със субтитри...
Задаване на видео отместване...
- SMPTE тайминг (избиране на не цяло число кадрова честота)
+ SMPTE синхронизация (не цяло число честота на кадрите)
Генериране на текст от видео...
Генериране на празно видео...
Генериране на видео със записани субтитри...
@@ -1314,7 +1314,7 @@ https://github.com/SubtitleEdit/subtitleedit
Правопис
- Проверка на правопис...
+ Проверка на правописа...
Правописна проверка от този ред
Търси дублиращи се думи
Търси дублиращи се редове
@@ -1632,7 +1632,7 @@ https://github.com/SubtitleEdit/subtitleedit
Брой съвпадащи думи: {0}
Проверка на правопис
Преди проверката на правопис
- Проверка на правопис: Променени '{0}' на '{1}'
+ Проверка на правописа: Променени '{0}' на '{1}'
Преди добавянето на тага '{0}'
'{0}' добавени тагове
ред {0} на {1}
@@ -1730,7 +1730,7 @@ https://github.com/SubtitleEdit/subtitleedit
Преди задаване на изместване на началното време и коригиране на останалото
Преди задаване на изместване на крайното време и коригиране на останалото
Преди задаване на крайното време на видеото и авт. изчисляване на началното
- Искате ли да продължите с текущата проверка на правопис?
+ Ще продължите ли с текущата проверка на правописа?
Симв./сек.: {0:0.00}
Вземете честотата на кадри от видео файла
Ново съобщение: {0} ({1}): {2}
@@ -2211,7 +2211,7 @@ https://github.com/SubtitleEdit/subtitleedit
По средата
Цвят на шрифта на субтитрите
Цвят на фона на субтитрите
- Проверка на правопис
+ Проверка на правописа
Запомняне на предишните файлове (за повторно отваряне)
Стартиране с последния зареден файл
Запомняне на избрания ред
@@ -2403,6 +2403,8 @@ https://github.com/SubtitleEdit/subtitleedit
Оцветяване на синтаксиса
Html цвят
ASSA цвят
+ Тема
+ Автоматично
Тъмна тема
Използване на тъмна тема
Показване на решетка в изгледа на списъка
@@ -2480,7 +2482,7 @@ https://github.com/SubtitleEdit/subtitleedit
Размяна на диалоговите тирета
Превключване на кавички
Превключване на HI тагове
- Превключване на персонализирани тагове
+ Превключване на персонализирани тагове (обграждане с)
Превключване на музикални символи
Подравняване (редовете в момента)
Подравняване Долу-Ляво - {\an1}
@@ -2723,7 +2725,7 @@ https://github.com/SubtitleEdit/subtitleedit
Върни назад
- Проверка на правопис
+ Проверка на правописа
Пълен текст
Думата не е намерена
Език
@@ -2736,14 +2738,14 @@ https://github.com/SubtitleEdit/subtitleedit
Доб.няколко в OCR списъкаЗАзамяна
Прекрати
- Изпол. винаги
+ Използвай винаги
Предложения
- Проверка на правопис [{0}] - {1}
+ Проверка на правописа [{0}] - {1}
Редактирай текста
Редактирай думата
Добави "{0}" към списъка с думи
Добави '{0}' към потреб. речник
- Поправяне на думи с различна големина на буквите
+ Поправяне на думи с разл. големина на буквите
Корекция на имената чрез «Предложение за проверка на правописа»
Питане за непозната буква
Промяна опред. член на думи, завършващи на «in», «ing»(Само за англ.)
diff --git a/src/ui/Logic/Language.cs b/src/ui/Logic/Language.cs
index b2832d2f1..7153537a6 100644
--- a/src/ui/Logic/Language.cs
+++ b/src/ui/Logic/Language.cs
@@ -2852,6 +2852,8 @@ can edit in same subtitle file (collaboration)",
UseSyntaxColoring = "Use syntax coloring",
HtmlColor = "Html color",
AssaColor = "ASSA color",
+ Automatic = "Automatic",
+ Theme = "Theme",
DarkTheme = "Dark theme",
DarkThemeEnabled = "Use dark theme",
DarkThemeShowGridViewLines = "Show list view grid lines",
diff --git a/src/ui/Logic/LanguageDeserializer.cs b/src/ui/Logic/LanguageDeserializer.cs
index 684a61fe4..6fbe74ac6 100644
--- a/src/ui/Logic/LanguageDeserializer.cs
+++ b/src/ui/Logic/LanguageDeserializer.cs
@@ -6784,6 +6784,12 @@ namespace Nikse.SubtitleEdit.Logic
case "Settings/AssaColor":
language.Settings.AssaColor = reader.Value;
break;
+ case "Settings/Theme":
+ language.Settings.Theme = reader.Value;
+ break;
+ case "Settings/Automatic":
+ language.Settings.Automatic = reader.Value;
+ break;
case "Settings/DarkTheme":
language.Settings.DarkTheme = reader.Value;
break;
diff --git a/src/ui/Logic/LanguageStructure.cs b/src/ui/Logic/LanguageStructure.cs
index 37152604f..e016f61c9 100644
--- a/src/ui/Logic/LanguageStructure.cs
+++ b/src/ui/Logic/LanguageStructure.cs
@@ -2676,6 +2676,8 @@ namespace Nikse.SubtitleEdit.Logic
public string UseSyntaxColoring { get; set; }
public string HtmlColor { get; set; }
public string AssaColor { get; set; }
+ public string Theme { get; set; }
+ public string Automatic { get; set; }
public string DarkTheme { get; set; }
public string DarkThemeEnabled { get; set; }
public string DarkThemeShowGridViewLines { get; set; }
diff --git a/src/ui/Logic/VideoPreviewGenerator.cs b/src/ui/Logic/VideoPreviewGenerator.cs
index 0e50e9f5f..f4694df31 100644
--- a/src/ui/Logic/VideoPreviewGenerator.cs
+++ b/src/ui/Logic/VideoPreviewGenerator.cs
@@ -104,7 +104,46 @@ namespace Nikse.SubtitleEdit.Logic
var presetSettings = string.Empty;
if (!string.IsNullOrEmpty(preset))
{
- presetSettings = $" -preset {preset}";
+ if (videoEncoding == "prores_ks")
+ {
+ if (preset == "proxy")
+ {
+ preset = "0";
+ }
+ else if (preset == "lt")
+ {
+ preset = "1";
+ }
+ else if (preset == "standard")
+ {
+ preset = "2";
+ }
+ else if (preset == "hq")
+ {
+ preset = "3";
+ }
+ else if (preset == "4444")
+ {
+ preset = "4";
+ }
+ else if (preset == "4444xq")
+ {
+ preset = "5";
+ }
+ else
+ {
+ preset = string.Empty;
+ }
+
+ if (!string.IsNullOrEmpty(preset))
+ {
+ presetSettings = $" -profile:v {preset}";
+ }
+ }
+ else
+ {
+ presetSettings = $" -preset {preset}";
+ }
}
var crfSettings = string.Empty;