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;