Merge pull request #4329 from OmrSi/extend-to-SC-with-gap

Add "Extend to next scene change with gap" shortcut
This commit is contained in:
Nikolaj Olsson 2020-08-25 16:34:21 +02:00 committed by GitHub
commit 536432dadc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 31 additions and 2 deletions

View File

@ -2320,6 +2320,7 @@ can edit in same subtitle file (collaboration)",
AdjustSetEndAndOffsetTheRestAndGoToNext = "Set end, offset the rest and go to next", AdjustSetEndAndOffsetTheRestAndGoToNext = "Set end, offset the rest and go to next",
AdjustExtendCurrentSubtitle = "Extend current line to next subtitle or max duration", AdjustExtendCurrentSubtitle = "Extend current line to next subtitle or max duration",
AdjustExtendToNextSceneChange = "Extend selected lines to next scene change (or next subtitle)", AdjustExtendToNextSceneChange = "Extend selected lines to next scene change (or next subtitle)",
AdjustExtendToNextSceneChangeWithGap = "Extend selected lines to next scene change with min. gap (or next subtitle)",
AdjustExtendToPreviousSceneChange = "Extend selected lines to previous scene change (or previous subtitle)", AdjustExtendToPreviousSceneChange = "Extend selected lines to previous scene change (or previous subtitle)",
AdjustExtendToNextSubtitle = "Extend selected lines to next subtitle", AdjustExtendToNextSubtitle = "Extend selected lines to next subtitle",
AdjustExtendToPreviousSubtitle = "Extend selected lines to previous subtitle", AdjustExtendToPreviousSubtitle = "Extend selected lines to previous subtitle",

View File

@ -5500,6 +5500,9 @@ namespace Nikse.SubtitleEdit.Core
case "Settings/AdjustExtendToNextSceneChange": case "Settings/AdjustExtendToNextSceneChange":
language.Settings.AdjustExtendToNextSceneChange = reader.Value; language.Settings.AdjustExtendToNextSceneChange = reader.Value;
break; break;
case "Settings/AdjustExtendToNextSceneChangeWithGap":
language.Settings.AdjustExtendToNextSceneChangeWithGap = reader.Value;
break;
case "Settings/AdjustExtendToPreviousSceneChange": case "Settings/AdjustExtendToPreviousSceneChange":
language.Settings.AdjustExtendToPreviousSceneChange = reader.Value; language.Settings.AdjustExtendToPreviousSceneChange = reader.Value;
break; break;

View File

@ -2191,6 +2191,7 @@
public string AdjustSetEndAndOffsetTheRestAndGoToNext { get; set; } public string AdjustSetEndAndOffsetTheRestAndGoToNext { get; set; }
public string AdjustExtendCurrentSubtitle { get; set; } public string AdjustExtendCurrentSubtitle { get; set; }
public string AdjustExtendToNextSceneChange { get; set; } public string AdjustExtendToNextSceneChange { get; set; }
public string AdjustExtendToNextSceneChangeWithGap { get; set; }
public string AdjustExtendToPreviousSceneChange { get; set; } public string AdjustExtendToPreviousSceneChange { get; set; }
public string AdjustExtendToNextSubtitle { get; set; } public string AdjustExtendToNextSubtitle { get; set; }
public string AdjustExtendToPreviousSubtitle { get; set; } public string AdjustExtendToPreviousSubtitle { get; set; }

View File

@ -1906,6 +1906,7 @@ $HorzAlign = Center
public string MoveEndOneFrameBackKeepGapNext { get; set; } public string MoveEndOneFrameBackKeepGapNext { get; set; }
public string MoveEndOneFrameForwardKeepGapNext { get; set; } public string MoveEndOneFrameForwardKeepGapNext { get; set; }
public string MainAdjustExtendToNextSceneChange { get; set; } public string MainAdjustExtendToNextSceneChange { get; set; }
public string MainAdjustExtendToNextSceneChangeWithGap { get; set; }
public string MainAdjustExtendToPreviousSceneChange { get; set; } public string MainAdjustExtendToPreviousSceneChange { get; set; }
public string MainAdjustExtendToNextSubtitle { get; set; } public string MainAdjustExtendToNextSubtitle { get; set; }
public string MainAdjustExtendToPreviousSubtitle { get; set; } public string MainAdjustExtendToPreviousSubtitle { get; set; }
@ -2062,6 +2063,7 @@ $HorzAlign = Center
Waveform1000MsRight = "Right"; Waveform1000MsRight = "Right";
MainTranslateGoogleTranslate = "Control+Shift+G"; MainTranslateGoogleTranslate = "Control+Shift+G";
MainAdjustExtendToNextSceneChange = string.Empty; MainAdjustExtendToNextSceneChange = string.Empty;
MainAdjustExtendToNextSceneChangeWithGap = string.Empty;
MainAdjustExtendToPreviousSceneChange = string.Empty; MainAdjustExtendToPreviousSceneChange = string.Empty;
MainAdjustExtendToNextSubtitle = "Control+Shift+E"; MainAdjustExtendToNextSubtitle = "Control+Shift+E";
MainAdjustExtendToPreviousSubtitle = "Alt+Shift+E"; MainAdjustExtendToPreviousSubtitle = "Alt+Shift+E";
@ -6835,6 +6837,12 @@ $HorzAlign = Center
settings.Shortcuts.MainAdjustExtendToNextSceneChange = subNode.InnerText; settings.Shortcuts.MainAdjustExtendToNextSceneChange = subNode.InnerText;
} }
subNode = node.SelectSingleNode("MainAdjustExtendToNextSceneChangeWithGap");
if (subNode != null)
{
settings.Shortcuts.MainAdjustExtendToNextSceneChangeWithGap = subNode.InnerText;
}
subNode = node.SelectSingleNode("MainAdjustExtendToPreviousSceneChange"); subNode = node.SelectSingleNode("MainAdjustExtendToPreviousSceneChange");
if (subNode != null) if (subNode != null)
{ {
@ -8088,6 +8096,7 @@ $HorzAlign = Center
textWriter.WriteElementString("MoveEndOneFrameBackKeepGapNext", settings.Shortcuts.MoveEndOneFrameBackKeepGapNext); textWriter.WriteElementString("MoveEndOneFrameBackKeepGapNext", settings.Shortcuts.MoveEndOneFrameBackKeepGapNext);
textWriter.WriteElementString("MoveEndOneFrameForwardKeepGapNext", settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext); textWriter.WriteElementString("MoveEndOneFrameForwardKeepGapNext", settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext);
textWriter.WriteElementString("MainAdjustExtendToNextSceneChange", settings.Shortcuts.MainAdjustExtendToNextSceneChange); textWriter.WriteElementString("MainAdjustExtendToNextSceneChange", settings.Shortcuts.MainAdjustExtendToNextSceneChange);
textWriter.WriteElementString("MainAdjustExtendToNextSceneChangeWithGap", settings.Shortcuts.MainAdjustExtendToNextSceneChangeWithGap);
textWriter.WriteElementString("MainAdjustExtendToPreviousSceneChange", settings.Shortcuts.MainAdjustExtendToPreviousSceneChange); textWriter.WriteElementString("MainAdjustExtendToPreviousSceneChange", settings.Shortcuts.MainAdjustExtendToPreviousSceneChange);
textWriter.WriteElementString("MainAdjustExtendToNextSubtitle", settings.Shortcuts.MainAdjustExtendToNextSubtitle); textWriter.WriteElementString("MainAdjustExtendToNextSubtitle", settings.Shortcuts.MainAdjustExtendToNextSubtitle);
textWriter.WriteElementString("MainAdjustExtendToPreviousSubtitle", settings.Shortcuts.MainAdjustExtendToPreviousSubtitle); textWriter.WriteElementString("MainAdjustExtendToPreviousSubtitle", settings.Shortcuts.MainAdjustExtendToPreviousSubtitle);

View File

@ -14717,6 +14717,11 @@ namespace Nikse.SubtitleEdit.Forms
ExtendSelectedLinesToNextSceneChange(); ExtendSelectedLinesToNextSceneChange();
e.SuppressKeyPress = true; e.SuppressKeyPress = true;
} }
else if (_shortcuts.MainAdjustExtendToNextSceneChangeWithGap == e.KeyData)
{
ExtendSelectedLinesToNextSceneChange(true);
e.SuppressKeyPress = true;
}
else if (_shortcuts.MainAdjustExtendToPreviousSceneChange == e.KeyData) else if (_shortcuts.MainAdjustExtendToPreviousSceneChange == e.KeyData)
{ {
ExtendSelectedLinesToPreviousSceneChange(); ExtendSelectedLinesToPreviousSceneChange();
@ -15076,7 +15081,7 @@ namespace Nikse.SubtitleEdit.Forms
} }
} }
private void ExtendSelectedLinesToNextSceneChange() private void ExtendSelectedLinesToNextSceneChange(bool withGap = false)
{ {
var historyAdded = false; var historyAdded = false;
foreach (ListViewItem selectedItem in SubtitleListview1.SelectedItems) foreach (ListViewItem selectedItem in SubtitleListview1.SelectedItems)
@ -15096,7 +15101,14 @@ namespace Nikse.SubtitleEdit.Forms
historyAdded = true; historyAdded = true;
} }
p.EndTime.TotalMilliseconds = Math.Min(nearestSceneChange * 1000, nearestStartTimeWithGap); if (!withGap)
{
p.EndTime.TotalMilliseconds = Math.Min(nearestSceneChange * 1000, nearestStartTimeWithGap);
}
else
{
p.EndTime.TotalMilliseconds = Math.Min(nearestSceneChange * 1000 - Configuration.Settings.General.MinimumMillisecondsBetweenLines, nearestStartTimeWithGap);
}
if (_subtitleAlternate != null && Configuration.Settings.General.AllowEditOfOriginalSubtitle) if (_subtitleAlternate != null && Configuration.Settings.General.AllowEditOfOriginalSubtitle)
{ {

View File

@ -1361,6 +1361,7 @@ namespace Nikse.SubtitleEdit.Forms
AddNode(createAndAdjustNode, language.AdjustEndOneFrameForwardKeepGapNext, nameof(Configuration.Settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext)); AddNode(createAndAdjustNode, language.AdjustEndOneFrameForwardKeepGapNext, nameof(Configuration.Settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext));
AddNode(createAndAdjustNode, language.RecalculateDurationOfCurrentSubtitle, nameof(Configuration.Settings.Shortcuts.GeneralAutoCalcCurrentDuration)); AddNode(createAndAdjustNode, language.RecalculateDurationOfCurrentSubtitle, nameof(Configuration.Settings.Shortcuts.GeneralAutoCalcCurrentDuration));
AddNode(createAndAdjustNode, language.AdjustExtendToNextSceneChange, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChange)); AddNode(createAndAdjustNode, language.AdjustExtendToNextSceneChange, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChange));
AddNode(createAndAdjustNode, language.AdjustExtendToNextSceneChangeWithGap, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChangeWithGap));
AddNode(createAndAdjustNode, language.AdjustExtendToPreviousSceneChange, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSceneChange)); AddNode(createAndAdjustNode, language.AdjustExtendToPreviousSceneChange, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSceneChange));
AddNode(createAndAdjustNode, language.AdjustExtendToNextSubtitle, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSubtitle)); AddNode(createAndAdjustNode, language.AdjustExtendToNextSubtitle, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSubtitle));
AddNode(createAndAdjustNode, language.AdjustExtendToPreviousSubtitle, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSubtitle)); AddNode(createAndAdjustNode, language.AdjustExtendToPreviousSubtitle, nameof(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSubtitle));

View File

@ -110,6 +110,7 @@ namespace Nikse.SubtitleEdit.Logic
public Keys MainAdjustMoveEndOneFrameBackKeepGapNext { get; set; } public Keys MainAdjustMoveEndOneFrameBackKeepGapNext { get; set; }
public Keys MainAdjustMoveEndOneFrameForwardKeepGapNext { get; set; } public Keys MainAdjustMoveEndOneFrameForwardKeepGapNext { get; set; }
public Keys MainAdjustExtendToNextSceneChange { get; set; } public Keys MainAdjustExtendToNextSceneChange { get; set; }
public Keys MainAdjustExtendToNextSceneChangeWithGap { get; set; }
public Keys MainAdjustExtendToPreviousSceneChange { get; set; } public Keys MainAdjustExtendToPreviousSceneChange { get; set; }
public Keys MainAdjustExtendToNextSubtitle { get; set; } public Keys MainAdjustExtendToNextSubtitle { get; set; }
public Keys MainAdjustExtendToPreviousSubtitle { get; set; } public Keys MainAdjustExtendToPreviousSubtitle { get; set; }
@ -287,6 +288,7 @@ namespace Nikse.SubtitleEdit.Logic
MainAdjustMoveEndOneFrameBackKeepGapNext = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MoveEndOneFrameBackKeepGapNext); MainAdjustMoveEndOneFrameBackKeepGapNext = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MoveEndOneFrameBackKeepGapNext);
MainAdjustMoveEndOneFrameForwardKeepGapNext = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext); MainAdjustMoveEndOneFrameForwardKeepGapNext = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MoveEndOneFrameForwardKeepGapNext);
MainAdjustExtendToNextSceneChange = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChange); MainAdjustExtendToNextSceneChange = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChange);
MainAdjustExtendToNextSceneChangeWithGap = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSceneChangeWithGap);
MainAdjustExtendToPreviousSceneChange = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSceneChange); MainAdjustExtendToPreviousSceneChange = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSceneChange);
MainAdjustExtendToNextSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSubtitle); MainAdjustExtendToNextSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToNextSubtitle);
MainAdjustExtendToPreviousSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSubtitle); MainAdjustExtendToPreviousSubtitle = UiUtil.GetKeys(Configuration.Settings.Shortcuts.MainAdjustExtendToPreviousSubtitle);