mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-11-25 20:52:44 +01:00
Work on ASSA tag helper
This commit is contained in:
parent
d26298bcd0
commit
0484a39373
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
3.6.2 BETA (xth July 2021)
|
3.6.2 BETA (xth July 2021)
|
||||||
* NEW:
|
* NEW:
|
||||||
* Keep ASSA tags (no html for italic/font etc.)
|
* Keep ASSA override tags (no html for italic/font etc. in text box)
|
||||||
* ASSA tag helper/intellisense shortcut
|
* ASSA override tag helper (shortcut + custom templates)
|
||||||
* Shortcuts for video contrast/brightness (mpv only)
|
* Shortcuts for video contrast/brightness (mpv only)
|
||||||
* Waveform "Right-click + Ctrl" will toggle select of a subtitle
|
* Waveform "Right-click + Ctrl" will toggle select of a subtitle
|
||||||
* Waveform "Right-click + Shift" will select a range subtitles
|
* Waveform "Right-click + Shift" will select a range subtitles
|
||||||
@ -15,7 +15,6 @@
|
|||||||
* Update Polish translation - thx admas
|
* Update Polish translation - thx admas
|
||||||
* Update Portuguese translation - thx hugok79
|
* Update Portuguese translation - thx hugok79
|
||||||
* Update Hungarian translation - thx Zityi
|
* Update Hungarian translation - thx Zityi
|
||||||
* Use ngen64 on 64-bit - thx XhmikosR
|
|
||||||
* ASSA: Support for ScalingX/ScalingY/Spacing/Angle/Strikeout - thx ausencia
|
* ASSA: Support for ScalingX/ScalingY/Spacing/Angle/Strikeout - thx ausencia
|
||||||
* MPC: Try to search for mpc-be too - thx Fábio
|
* MPC: Try to search for mpc-be too - thx Fábio
|
||||||
* Shortcut F5 is now "Play selected lines"
|
* Shortcut F5 is now "Play selected lines"
|
||||||
@ -24,7 +23,8 @@
|
|||||||
* Try to pick best image for bdsup with fading - thx peter-qgd
|
* Try to pick best image for bdsup with fading - thx peter-qgd
|
||||||
* Adhere to max number of lines - thx Andrebavila
|
* Adhere to max number of lines - thx Andrebavila
|
||||||
* Optimize "modify selection - styles"
|
* Optimize "modify selection - styles"
|
||||||
* Update installer from Inno Setup version 5 to version 6
|
* Installer: Update Inno Setup from version 5 to version 6
|
||||||
|
* Installer: Use ngen64 on 64-bit - thx XhmikosR
|
||||||
* FIXED:
|
* FIXED:
|
||||||
* Fix load/save some ASSA storage style settings - thx Andrebavila
|
* Fix load/save some ASSA storage style settings - thx Andrebavila
|
||||||
* Fix for italic in DCinemaSmpte2007/2010/2014 - thx Marko
|
* Fix for italic in DCinemaSmpte2007/2010/2014 - thx Marko
|
||||||
|
@ -6781,6 +6781,26 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
|
|
||||||
private void HelpToolStripMenuItem1Click(object sender, EventArgs e)
|
private void HelpToolStripMenuItem1Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (_intellisenceList != null && _intellisenceList.Focused)
|
||||||
|
{
|
||||||
|
var item = _intellisenceList.Items[_intellisenceList.SelectedIndex] as AssaTagHelper.IntellisenseItem;
|
||||||
|
if (item != null && !string.IsNullOrEmpty(item.HelpLink))
|
||||||
|
{
|
||||||
|
UiUtil.OpenUrl(item.HelpLink);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_intellisenceListOriginal != null && _intellisenceListOriginal.Focused)
|
||||||
|
{
|
||||||
|
var item = _intellisenceListOriginal.Items[_intellisenceListOriginal.SelectedIndex] as AssaTagHelper.IntellisenseItem;
|
||||||
|
if (item != null && !string.IsNullOrEmpty(item.HelpLink))
|
||||||
|
{
|
||||||
|
UiUtil.OpenUrl(item.HelpLink);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ReloadFromSourceView();
|
ReloadFromSourceView();
|
||||||
UiUtil.ShowHelp(string.Empty);
|
UiUtil.ShowHelp(string.Empty);
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,14 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
public string TypedWord { get; set; }
|
public string TypedWord { get; set; }
|
||||||
public string ActiveTagAtCursor { get; set; }
|
public string ActiveTagAtCursor { get; set; }
|
||||||
public Font Font { get; set; }
|
public Font Font { get; set; }
|
||||||
|
public string HelpLink { get; set; }
|
||||||
|
|
||||||
public IntellisenseItem(string value, string hint, bool allowInTransformations)
|
public IntellisenseItem(string value, string hint, bool allowInTransformations, string helpLink = null)
|
||||||
{
|
{
|
||||||
Value = value;
|
Value = value;
|
||||||
Hint = hint;
|
Hint = hint;
|
||||||
AllowInTransformations = allowInTransformations;
|
AllowInTransformations = allowInTransformations;
|
||||||
|
HelpLink = helpLink;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
@ -50,17 +52,17 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
|
|
||||||
private static readonly List<IntellisenseItem> Keywords = new List<IntellisenseItem>
|
private static readonly List<IntellisenseItem> Keywords = new List<IntellisenseItem>
|
||||||
{
|
{
|
||||||
new IntellisenseItem("{\\i1}", "Italic on", false),
|
new IntellisenseItem("{\\i1}", "Italic on", false, "https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#italic"),
|
||||||
new IntellisenseItem("{\\i0}", "Italic off", false),
|
new IntellisenseItem("{\\i0}", "Italic off", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#italic"),
|
||||||
|
|
||||||
new IntellisenseItem("{\\b1}", "Bold on", false),
|
new IntellisenseItem("{\\b1}", "Bold on", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#bold"),
|
||||||
new IntellisenseItem("{\\b0}", "Bold off", false),
|
new IntellisenseItem("{\\b0}", "Bold off", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#bold"),
|
||||||
|
|
||||||
new IntellisenseItem("{\\u1}", "Underline on", false),
|
new IntellisenseItem("{\\u1}", "Underline on", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#underline"),
|
||||||
new IntellisenseItem("{\\u0}", "Underline off", false),
|
new IntellisenseItem("{\\u0}", "Underline off", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#underline"),
|
||||||
|
|
||||||
new IntellisenseItem("{\\s1}", "Strikeout on", false),
|
new IntellisenseItem("{\\s1}", "Strikeout on", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#strikeout"),
|
||||||
new IntellisenseItem("{\\s0}", "Strikeout off", false),
|
new IntellisenseItem("{\\s0}", "Strikeout off", false,"https://www.nikse.dk/SubtitleEdit/AssaOverrideTags#strikeout"),
|
||||||
|
|
||||||
new IntellisenseItem("{\\mov(x1,y1,x2,y2,start,end)}", "Move", false),
|
new IntellisenseItem("{\\mov(x1,y1,x2,y2,start,end)}", "Move", false),
|
||||||
new IntellisenseItem("{\\pos(x,y)}", "Set position", false),
|
new IntellisenseItem("{\\pos(x,y)}", "Set position", false),
|
||||||
@ -172,13 +174,20 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tb.SelectedText = item.Value;
|
if (tb.SelectionStart > 0 && tb.Text[tb.SelectionStart-1] == '}' && item.Value.StartsWith('\\'))
|
||||||
|
{
|
||||||
|
tb.SelectedText = "{" + item.Value;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tb.SelectedText = item.Value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var newStart = oldStart + item.Value.Length;
|
var newStart = oldStart + item.Value.Length;
|
||||||
|
|
||||||
// merge tags before/after
|
// merge tags before/after
|
||||||
var subtract = MergeTagAtCursor(tb, oldStart);
|
var subtract = MergeTagAtCursor(tb, oldStart, true);
|
||||||
subtract += MergeTagAtCursor(tb, newStart);
|
subtract += MergeTagAtCursor(tb, newStart, false);
|
||||||
tb.SelectionStart = newStart - subtract - item.TypedWord.Length;
|
tb.SelectionStart = newStart - subtract - item.TypedWord.Length;
|
||||||
|
|
||||||
tb.ResumeLayout();
|
tb.ResumeLayout();
|
||||||
@ -257,11 +266,16 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
tb.Text = tb.Text.Remove(start, endTagIndex - start + 1);
|
tb.Text = tb.Text.Remove(start, endTagIndex - start + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tb.Text[start] == '}')
|
||||||
|
{
|
||||||
|
start++;
|
||||||
|
}
|
||||||
|
|
||||||
tb.SelectionStart = start; // position cursor
|
tb.SelectionStart = start; // position cursor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int MergeTagAtCursor(SETextBox tb, int cursorPosition)
|
public static int MergeTagAtCursor(SETextBox tb, int cursorPosition, bool before)
|
||||||
{
|
{
|
||||||
if (cursorPosition >= tb.Text.Length)
|
if (cursorPosition >= tb.Text.Length)
|
||||||
{
|
{
|
||||||
@ -271,7 +285,7 @@ namespace Nikse.SubtitleEdit.Logic
|
|||||||
if (cursorPosition > 0 && tb.Text[cursorPosition - 1] == '}' && tb.Text[cursorPosition] == '{')
|
if (cursorPosition > 0 && tb.Text[cursorPosition - 1] == '}' && tb.Text[cursorPosition] == '{')
|
||||||
{
|
{
|
||||||
tb.Text = tb.Text.Remove(cursorPosition - 1, 2);
|
tb.Text = tb.Text.Remove(cursorPosition - 1, 2);
|
||||||
return 2;
|
return before ? 2 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cursorPosition > 0 && tb.Text[cursorPosition - 1] == '\\' && tb.Text[cursorPosition] == '{')
|
if (cursorPosition > 0 && tb.Text[cursorPosition - 1] == '\\' && tb.Text[cursorPosition] == '{')
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Nikse.SubtitleEdit.Controls;
|
using Nikse.SubtitleEdit.Controls;
|
||||||
using Nikse.SubtitleEdit.Core;
|
|
||||||
using Nikse.SubtitleEdit.Core.Common;
|
using Nikse.SubtitleEdit.Core.Common;
|
||||||
using Nikse.SubtitleEdit.Core.Enums;
|
using Nikse.SubtitleEdit.Core.Enums;
|
||||||
using Nikse.SubtitleEdit.Core.SubtitleFormats;
|
using Nikse.SubtitleEdit.Core.SubtitleFormats;
|
||||||
|
Loading…
Reference in New Issue
Block a user