diff --git a/MusicLyricApp/Api/Music/NetEaseMusicApi.cs b/MusicLyricApp/Api/Music/NetEaseMusicApi.cs index e5d67e8..02cf6ee 100644 --- a/MusicLyricApp/Api/Music/NetEaseMusicApi.cs +++ b/MusicLyricApp/Api/Music/NetEaseMusicApi.cs @@ -30,10 +30,24 @@ protected override ResultVo GetPlaylistVo0(string playlistId) if (resp.Code == 200) { - // cache song - GlobalCache.DoCache(Source(), CacheType.NET_EASE_SONG, value => value.Id, resp.Playlist.Tracks); + var songIds = resp.Playlist.TrackIds.Select(e => e.Id.ToString()).ToArray(); - return new ResultVo(resp.Convert()); + SimpleSongVo[] simpleSongVos; + if (songIds.Length > 0) + { + simpleSongVos = new SimpleSongVo[songIds.Length]; + var songVo = GetSongVo0(songIds); + for (var i = 0; i < songIds.Length; i++) + { + simpleSongVos[i] = songVo[songIds[i]].Data; + } + } + else + { + simpleSongVos = Array.Empty(); + } + + return new ResultVo(resp.Convert(simpleSongVos)); } else if (resp.Code == 20001) { @@ -88,7 +102,7 @@ protected override Dictionary> GetSongVo0(string[] song DisplayId = songId, Pics = song.Al.PicUrl, Name = song.Name, - Singer = string.Join(",", song.Ar.Select(e => e.Name)), + Singer = song.Ar.Select(e => e.Name).ToArray(), Album = song.Al.Name, Duration = song.Dt }); diff --git a/MusicLyricApp/Api/Music/QQMusicApi.cs b/MusicLyricApp/Api/Music/QQMusicApi.cs index 9b1afb6..57fe76d 100644 --- a/MusicLyricApp/Api/Music/QQMusicApi.cs +++ b/MusicLyricApp/Api/Music/QQMusicApi.cs @@ -73,7 +73,7 @@ protected override Dictionary> GetSongVo0(string[] song Pics = $"https://y.qq.com/music/photo_new/T002R800x800M000{songRes.Data.Album.Pmid}.jpg", // #212 QQ music need use title attribute as song name Name = GlobalUtils.GetOrDefault(songRes.Data.Title, songRes.Data.Name), - Singer = string.Join(",", songRes.Data.Singer.Select(e => e.Name)), + Singer = songRes.Data.Singer.Select(e => e.Name).ToArray(), Album = songRes.Data.Album.Name, Duration = songRes.Data.Interval * 1000 }); diff --git a/MusicLyricApp/Bean/Constants.cs b/MusicLyricApp/Bean/Constants.cs index d82d63a..ea568ff 100644 --- a/MusicLyricApp/Bean/Constants.cs +++ b/MusicLyricApp/Bean/Constants.cs @@ -5,7 +5,7 @@ namespace MusicLyricApp.Bean { public static class Constants { - public const string Version = "v6.4"; + public const string Version = "v6.5"; public static readonly string SettingPath = Environment.CurrentDirectory + "\\MusicLyricAppSetting.json"; diff --git a/MusicLyricApp/Bean/MusicLyricsVO.cs b/MusicLyricApp/Bean/MusicLyricsVO.cs index 2a55645..05de736 100644 --- a/MusicLyricApp/Bean/MusicLyricsVO.cs +++ b/MusicLyricApp/Bean/MusicLyricsVO.cs @@ -350,7 +350,7 @@ public class SimpleSongVo /// /// 歌手名 /// - public string Singer { get; set; } + public string[] Singer { get; set; } } /// diff --git a/MusicLyricApp/Bean/NetEaseMusicBean.cs b/MusicLyricApp/Bean/NetEaseMusicBean.cs index 4b0c332..2f093a1 100644 --- a/MusicLyricApp/Bean/NetEaseMusicBean.cs +++ b/MusicLyricApp/Bean/NetEaseMusicBean.cs @@ -194,14 +194,15 @@ public class PlaylistResult /// public Privilege[] Privileges { get; set; } - public PlaylistVo Convert() + public PlaylistVo Convert(SimpleSongVo[] simpleSongVos) { + var creator = Playlist.Creator; return new PlaylistVo { Name = Playlist.Name, - AuthorName = Playlist.Creator.Nickname, + AuthorName = creator == null ? "" : creator.Nickname, Description = Playlist.Description, - SimpleSongVos = Playlist.Tracks.Select(e => e.ConvertSimple()).ToArray() + SimpleSongVos = simpleSongVos }; } } @@ -276,6 +277,16 @@ public class SimplePlaylist /// public class Playlist : SimplePlaylist { + /// + /// 歌单名 + /// + public string Name { get; set; } + + /// + /// 歌单创建者 + /// + public Creator Creator { get; set; } + /// /// 歌单封面 ID /// @@ -286,8 +297,6 @@ public class Playlist : SimplePlaylist /// public long CreateTime { get; set; } - public int Status { get; set; } - /// /// 订阅数量 /// @@ -303,15 +312,17 @@ public class Playlist : SimplePlaylist /// public long CommentCount { get; set; } - /// - /// 歌单标签 - /// - public string[] Tags { get; set; } - /// /// 歌单歌曲列表信息 /// - public Song[] Tracks { get; set; } + public SimpleTrack[] TrackIds { get; set; } + } + + public class SimpleTrack + { + public long Id { get; set; } + + public long Uid { get; set; } } /// @@ -396,7 +407,7 @@ public SimpleSongVo ConvertSimple() Id = Id, DisplayId = Id, Name = Name, - Singer = string.Join(",", Ar.Select(e => e.Name)) + Singer = Ar.Select(e => e.Name).ToArray() }; } } diff --git a/MusicLyricApp/Bean/QQMusicBean.cs b/MusicLyricApp/Bean/QQMusicBean.cs index 0115cf9..d97d7a8 100644 --- a/MusicLyricApp/Bean/QQMusicBean.cs +++ b/MusicLyricApp/Bean/QQMusicBean.cs @@ -494,7 +494,7 @@ public SimpleSongVo ConvertSimple() Id = Id, DisplayId = Mid, Name = Name, - Singer = string.Join(",", Singer.Select(e => e.Name)) + Singer = Singer.Select(e => e.Name).ToArray() }; } } @@ -560,7 +560,7 @@ public SimpleSongVo ConvertSimple() Id = Songid.ToString(), DisplayId = Songmid, Name = Songname, - Singer = string.Join(",", singer.Select(e => e.Name)) + Singer = singer.Select(e => e.Name).ToArray() }; } } diff --git a/MusicLyricApp/Bean/ScalingFormConfig.cs b/MusicLyricApp/Bean/ScalingFormConfig.cs new file mode 100644 index 0000000..32db812 --- /dev/null +++ b/MusicLyricApp/Bean/ScalingFormConfig.cs @@ -0,0 +1,78 @@ +using System; +using System.Drawing; +using System.Windows.Forms; + +namespace MusicLyricApp.Bean +{ + public class ScalingFormConfig + { + /// + /// 定义当前窗体的宽度 + /// + public float X; + + /// + /// 定义当前窗体的高度 + /// + public float Y; + + public ScalingFormConfig(Control cons) + { + X = cons.Width; + Y = cons.Height; + + SetTag(cons); + } + + public void SetControls(Control cons) + { + var newX = cons.Width / X; //获取当前宽度与初始宽度的比例 + var newY = cons.Height / Y; //获取当前高度与初始高度的比例 + SetControls(newX, newY, cons); + } + + private static void SetControls(float newx, float newy, Control cons) + { + //遍历窗体中的控件,重新设置控件的值 + foreach(Control con in cons.Controls) + { + //获取控件的Tag属性值,并分割后存储字符串数组 + if(con.Tag != null) + { + var mytag = con.Tag.ToString().Split(';'); + + //根据窗体缩放的比例确定控件的值 + con.Width = Convert.ToInt32(Convert.ToSingle(mytag[0]) * newx); //宽度 + con.Height = Convert.ToInt32(Convert.ToSingle(mytag[1]) * newy); //高度 + con.Left = Convert.ToInt32(Convert.ToSingle(mytag[2]) * newx); //左边距 + con.Top = Convert.ToInt32(Convert.ToSingle(mytag[3]) * newy); //顶边距 + + var currentSize = Convert.ToSingle(mytag[4]) * newy; //字体大小 + con.Font = new Font(con.Font.Name, currentSize, con.Font.Style, con.Font.Unit); + + if(con.Controls.Count > 0) + { + SetControls(newx, newy, con); + } + } + } + } + + /// + /// 控件大小随窗体大小等比例缩放, + /// 在窗体重载中使用 + /// + /// + private static void SetTag(Control cons) + { + foreach(Control con in cons.Controls) + { + con.Tag = con.Width + ";" + con.Height + ";" + con.Left + ";" + con.Top + ";" + con.Font.Size; + if(con.Controls.Count > 0) + { + SetTag(con); + } + } + } + } +} \ No newline at end of file diff --git a/MusicLyricApp/Bean/SettingBase.cs b/MusicLyricApp/Bean/SettingBase.cs index 3204d56..29d8900 100644 --- a/MusicLyricApp/Bean/SettingBase.cs +++ b/MusicLyricApp/Bean/SettingBase.cs @@ -14,6 +14,36 @@ public class SettingBean public class ConfigBean { + /// + /// LRC 歌词时间戳格式 + /// + public string LrcTimestampFormat = "[mm:ss.SSS]"; + + /// + /// SRT 歌词时间戳格式 + /// + public string SrtTimestampFormat = "HH:mm:ss,SSS"; + + /// + /// 启用逐字歌词模式 + /// + public bool EnableVerbatimLyric = false; + + /// + /// 忽略空的歌词行 + /// + public bool IgnoreEmptyLyric = true; + + /// + /// 小数位处理策略 + /// + public DotTypeEnum DotType = DotTypeEnum.DOWN; + + /// + /// 多个歌手的分隔符 + /// + public string SingerSeparator = ","; + /// /// 参数记忆 /// @@ -132,31 +162,6 @@ public class PersistParamBean /// 指定歌词合并的分隔符 /// public string LrcMergeSeparator = string.Empty; - - /// - /// LRC 歌词时间戳格式 - /// - public string LrcTimestampFormat = "[mm:ss.SSS]"; - - /// - /// SRT 歌词时间戳格式 - /// - public string SrtTimestampFormat = "HH:mm:ss,SSS"; - - /// - /// 启用逐字歌词模式 - /// - public bool EnableVerbatimLyric = false; - - /// - /// 忽略空的歌词行 - /// - public bool IgnoreEmptyLyric = true; - - /// - /// 小数位处理策略 - /// - public DotTypeEnum DotType = DotTypeEnum.DOWN; /// /// 输出文件格式 diff --git a/MusicLyricApp/MainForm.Designer.cs b/MusicLyricApp/MainForm.Designer.cs index de4e804..86912a7 100644 --- a/MusicLyricApp/MainForm.Designer.cs +++ b/MusicLyricApp/MainForm.Designer.cs @@ -30,6 +30,8 @@ private void AfterInitializeComponent() this.SearchType_ComboBox.Items.AddRange(GlobalUtils.GetEnumDescArray()); this.OutputFormat_CombBox.Items.AddRange(new object[] { "LRC", "SRT" }); this.SearchSource_ComboBox.Items.AddRange(GlobalUtils.GetEnumDescArray()); + + _scalingFormConfig = new ScalingFormConfig(this); } #region Windows 窗体设计器生成的代码 @@ -370,7 +372,6 @@ private void InitializeComponent() this.Controls.Add(this.LrcType_ComboBox); this.Controls.Add(this.Save_Btn); this.Controls.Add(this.Top_MenuStrip); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.KeyPreview = true; this.MainMenuStrip = this.Top_MenuStrip; @@ -379,6 +380,7 @@ private void InitializeComponent() this.Text = "云音乐歌词提取 " + Constants.Version; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyDown); + this.Resize += new System.EventHandler(this.MainForm_Resize); this.Top_MenuStrip.ResumeLayout(false); this.Top_MenuStrip.PerformLayout(); this.ResumeLayout(false); diff --git a/MusicLyricApp/MainForm.cs b/MusicLyricApp/MainForm.cs index ccb560e..060dab0 100644 --- a/MusicLyricApp/MainForm.cs +++ b/MusicLyricApp/MainForm.cs @@ -38,6 +38,8 @@ public partial class MainForm : MusicLyricForm private BlurForm _blurForm; + private ScalingFormConfig _scalingFormConfig; + [DllImport("user32.dll")] private static extern IntPtr GetActiveWindow(); @@ -317,7 +319,8 @@ private Dictionary> SearchBySongId(List歌曲ID private void SingleSearch(List songIdDict) { - var isVerbatimLyric = _globalSearchInfo.SettingBean.Param.EnableVerbatimLyric; + var isVerbatimLyric = _globalSearchInfo.SettingBean.Config.EnableVerbatimLyric; + var singerSeparator = _globalSearchInfo.SettingBean.Config.SingerSeparator; var resDict = SearchBySongId(songIdDict, isVerbatimLyric); var songId = songIdDict.First().SongId; @@ -329,7 +332,7 @@ private void SingleSearch(List songIdDict) // 前端设置 SongName_TextBox.Text = result.SongVo.Name; - Singer_TextBox.Text = result.SongVo.Singer; + Singer_TextBox.Text = string.Join(singerSeparator, result.SongVo.Singer); Album_TextBox.Text = result.SongVo.Album; UpdateLrcTextBox(string.Empty); } @@ -339,7 +342,7 @@ private void SingleSearch(List songIdDict) /// private void BatchSearch(List ids) { - var isVerbatimLyric = _globalSearchInfo.SettingBean.Param.EnableVerbatimLyric; + var isVerbatimLyric = _globalSearchInfo.SettingBean.Config.EnableVerbatimLyric; var resultMaps = SearchBySongId(ids, isVerbatimLyric); // 输出日志 @@ -398,6 +401,10 @@ public async void Search_Btn_Click(object sender, EventArgs e) _globalSaveVoMap.Clear(); var songIds = InitInputSongIds(); + if (songIds.Count == 0) + { + throw new MusicLyricException(ErrorMsg.SEARCH_RESULT_EMPTY); + } if (songIds.Count > 1) { BatchSearch(songIds); @@ -572,16 +579,18 @@ private async void SingleSave() MessageBox.Show(ErrorMsg.LRC_NOT_EXIST, "提示"); return; } + + var config = _globalSearchInfo.SettingBean.Config; // 纯音乐跳过 - if (saveVo.LyricVo.IsPureMusic() && _globalSearchInfo.SettingBean.Config.IgnorePureMusicInSave) + if (saveVo.LyricVo.IsPureMusic() && config.IgnorePureMusicInSave) { MessageBox.Show(ErrorMsg.PURE_MUSIC_IGNORE_SAVE, "提示"); return; } var saveDialog = new SaveFileDialog(); - saveDialog.FileName = GlobalUtils.GetOutputName(saveVo, _globalSearchInfo.SettingBean.Config.OutputFileNameFormat); + saveDialog.FileName = GlobalUtils.GetOutputName(saveVo, config.OutputFileNameFormat, config.SingerSeparator); saveDialog.Filter = _globalSearchInfo.SettingBean.Param.OutputFileFormat.ToDescription(); if (saveDialog.ShowDialog() != DialogResult.OK) @@ -615,6 +624,8 @@ private async void BatchSave() { return; } + + var config = _globalSearchInfo.SettingBean.Config; // 保存 var skipCount = 0; @@ -634,13 +645,13 @@ private async void BatchSave() { var saveVo = item.Value; var lyricVo = saveVo.LyricVo; - if (lyricVo.IsEmpty() || (lyricVo.IsPureMusic() && _globalSearchInfo.SettingBean.Config.IgnorePureMusicInSave)) + if (lyricVo.IsEmpty() || (lyricVo.IsPureMusic() && config.IgnorePureMusicInSave)) { skipCount++; continue; } - var path = filePath + '/' + GlobalUtils.GetOutputName(saveVo, _globalSearchInfo.SettingBean.Config.OutputFileNameFormat) + fileSuffix; + var path = filePath + '/' + GlobalUtils.GetOutputName(saveVo, config.OutputFileNameFormat, config.SingerSeparator) + fileSuffix; await WriteToFile(path, lyricVo); success.Add(item.Key); @@ -689,6 +700,8 @@ private async Task BatchSaveForUrl(string filePath, ISet success) return false; } + var config = _globalSearchInfo.SettingBean.Config; + foreach (var line in csvBean.Lines) { var url = line[urlIndex]; @@ -703,7 +716,7 @@ private async Task BatchSaveForUrl(string filePath, ISet success) continue; } - var path = filePath + '/' + GlobalUtils.GetOutputName(saveVo, _globalSearchInfo.SettingBean.Config.OutputFileNameFormat) + GlobalUtils.GetSuffix(url); + var path = filePath + '/' + GlobalUtils.GetOutputName(saveVo, config.OutputFileNameFormat, config.SingerSeparator) + GlobalUtils.GetSuffix(url); if (await HttpUtils.DownloadFile(url, path)) { @@ -1052,5 +1065,10 @@ void Action() _inCheckVersion = false; } } + + private void MainForm_Resize(object sender, EventArgs e) + { + _scalingFormConfig?.SetControls(this); + } } } \ No newline at end of file diff --git a/MusicLyricApp/MusicLyricApp.csproj b/MusicLyricApp/MusicLyricApp.csproj index 472f150..9915e6e 100644 --- a/MusicLyricApp/MusicLyricApp.csproj +++ b/MusicLyricApp/MusicLyricApp.csproj @@ -255,6 +255,7 @@ + diff --git a/MusicLyricApp/SettingForm.Designer.cs b/MusicLyricApp/SettingForm.Designer.cs index 5085205..d0650ef 100644 --- a/MusicLyricApp/SettingForm.Designer.cs +++ b/MusicLyricApp/SettingForm.Designer.cs @@ -29,15 +29,18 @@ protected override void Dispose(bool disposing) private void AfterInitializeComponent() { + _scalingFormConfig = new ScalingFormConfig(this); + // 歌词时间戳 Dot_ComboBox.Items.AddRange(GlobalUtils.GetEnumDescArray()); - Dot_ComboBox.SelectedIndex = (int)_settingBean.Param.DotType; - LrcTimestampFormat_TextBox.Text = _settingBean.Param.LrcTimestampFormat; - SrtTimestampFormat_TextBox.Text = _settingBean.Param.SrtTimestampFormat; + Dot_ComboBox.SelectedIndex = (int)_settingBean.Config.DotType; + LrcTimestampFormat_TextBox.Text = _settingBean.Config.LrcTimestampFormat; + SrtTimestampFormat_TextBox.Text = _settingBean.Config.SrtTimestampFormat; + SingerSeparator_TextBox.Text = _settingBean.Config.SingerSeparator; // 原文歌词 - IgnoreEmptyLyric_CheckBox.Checked = _settingBean.Param.IgnoreEmptyLyric; - VerbatimLyric_CheckBox.Checked = _settingBean.Param.EnableVerbatimLyric; + IgnoreEmptyLyric_CheckBox.Checked = _settingBean.Config.IgnoreEmptyLyric; + VerbatimLyric_CheckBox.Checked = _settingBean.Config.EnableVerbatimLyric; // 译文歌词 TransLostRule_ComboBox.Items.AddRange(GlobalUtils.GetEnumDescArray()); @@ -144,6 +147,8 @@ private void InitializeComponent() this.label10 = new System.Windows.Forms.Label(); this.IgnorePureMusicInSave_CheckBox = new System.Windows.Forms.CheckBox(); this.Reset_Btn = new System.Windows.Forms.Button(); + this.label15 = new System.Windows.Forms.Label(); + this.SingerSeparator_TextBox = new System.Windows.Forms.TextBox(); this.Timestamp_GroupBox.SuspendLayout(); this.AppConfig_GroupBox.SuspendLayout(); this.OriginLyric_GroupBox.SuspendLayout(); @@ -163,9 +168,10 @@ private void InitializeComponent() this.Save_Btn.BackColor = System.Drawing.Color.Honeydew; this.Save_Btn.FlatAppearance.BorderColor = System.Drawing.Color.Silver; this.Save_Btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.Save_Btn.Location = new System.Drawing.Point(613, 639); + this.Save_Btn.Location = new System.Drawing.Point(920, 958); + this.Save_Btn.Margin = new System.Windows.Forms.Padding(4); this.Save_Btn.Name = "Save_Btn"; - this.Save_Btn.Size = new System.Drawing.Size(97, 50); + this.Save_Btn.Size = new System.Drawing.Size(146, 75); this.Save_Btn.TabIndex = 0; this.Save_Btn.Text = "保存"; this.Save_Btn.UseVisualStyleBackColor = false; @@ -173,27 +179,30 @@ private void InitializeComponent() // // RememberParam_CheckBox // - this.RememberParam_CheckBox.Location = new System.Drawing.Point(6, 37); + this.RememberParam_CheckBox.Location = new System.Drawing.Point(9, 56); + this.RememberParam_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.RememberParam_CheckBox.Name = "RememberParam_CheckBox"; - this.RememberParam_CheckBox.Size = new System.Drawing.Size(78, 17); + this.RememberParam_CheckBox.Size = new System.Drawing.Size(117, 26); this.RememberParam_CheckBox.TabIndex = 1; this.RememberParam_CheckBox.Text = "参数记忆"; this.RememberParam_CheckBox.UseVisualStyleBackColor = true; // // AutoReadClipboard_CheckBox // - this.AutoReadClipboard_CheckBox.Location = new System.Drawing.Point(207, 37); + this.AutoReadClipboard_CheckBox.Location = new System.Drawing.Point(310, 56); + this.AutoReadClipboard_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.AutoReadClipboard_CheckBox.Name = "AutoReadClipboard_CheckBox"; - this.AutoReadClipboard_CheckBox.Size = new System.Drawing.Size(112, 17); + this.AutoReadClipboard_CheckBox.Size = new System.Drawing.Size(168, 26); this.AutoReadClipboard_CheckBox.TabIndex = 2; this.AutoReadClipboard_CheckBox.Text = "自动读取剪贴板"; this.AutoReadClipboard_CheckBox.UseVisualStyleBackColor = true; // // AutoCheckUpdate_CheckBox // - this.AutoCheckUpdate_CheckBox.Location = new System.Drawing.Point(336, 37); + this.AutoCheckUpdate_CheckBox.Location = new System.Drawing.Point(504, 56); + this.AutoCheckUpdate_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.AutoCheckUpdate_CheckBox.Name = "AutoCheckUpdate_CheckBox"; - this.AutoCheckUpdate_CheckBox.Size = new System.Drawing.Size(98, 17); + this.AutoCheckUpdate_CheckBox.Size = new System.Drawing.Size(147, 26); this.AutoCheckUpdate_CheckBox.TabIndex = 3; this.AutoCheckUpdate_CheckBox.Text = "自动检查更新"; this.AutoCheckUpdate_CheckBox.UseVisualStyleBackColor = true; @@ -202,16 +211,18 @@ private void InitializeComponent() // this.RomajiMode_ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.RomajiMode_ComboBox.FormattingEnabled = true; - this.RomajiMode_ComboBox.Location = new System.Drawing.Point(112, 58); + this.RomajiMode_ComboBox.Location = new System.Drawing.Point(168, 87); + this.RomajiMode_ComboBox.Margin = new System.Windows.Forms.Padding(4); this.RomajiMode_ComboBox.Name = "RomajiMode_ComboBox"; - this.RomajiMode_ComboBox.Size = new System.Drawing.Size(100, 20); + this.RomajiMode_ComboBox.Size = new System.Drawing.Size(148, 26); this.RomajiMode_ComboBox.TabIndex = 7; // // label3 // - this.label3.Location = new System.Drawing.Point(15, 61); + this.label3.Location = new System.Drawing.Point(22, 92); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(90, 12); + this.label3.Size = new System.Drawing.Size(135, 18); this.label3.TabIndex = 8; this.label3.Text = "罗马音转换模式"; // @@ -219,49 +230,55 @@ private void InitializeComponent() // this.RomajiSystem_ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.RomajiSystem_ComboBox.FormattingEnabled = true; - this.RomajiSystem_ComboBox.Location = new System.Drawing.Point(112, 21); + this.RomajiSystem_ComboBox.Location = new System.Drawing.Point(168, 32); + this.RomajiSystem_ComboBox.Margin = new System.Windows.Forms.Padding(4); this.RomajiSystem_ComboBox.Name = "RomajiSystem_ComboBox"; - this.RomajiSystem_ComboBox.Size = new System.Drawing.Size(100, 20); + this.RomajiSystem_ComboBox.Size = new System.Drawing.Size(148, 26); this.RomajiSystem_ComboBox.TabIndex = 10; // // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(8, 36); + this.label6.Location = new System.Drawing.Point(12, 54); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(65, 12); + this.label6.Size = new System.Drawing.Size(98, 18); this.label6.TabIndex = 13; this.label6.Text = "LRC 时间戳"; // // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(8, 75); + this.label7.Location = new System.Drawing.Point(12, 112); + this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(65, 12); + this.label7.Size = new System.Drawing.Size(98, 18); this.label7.TabIndex = 14; this.label7.Text = "SRT 时间戳"; // // LrcTimestampFormat_TextBox // - this.LrcTimestampFormat_TextBox.Location = new System.Drawing.Point(103, 33); + this.LrcTimestampFormat_TextBox.Location = new System.Drawing.Point(154, 50); + this.LrcTimestampFormat_TextBox.Margin = new System.Windows.Forms.Padding(4); this.LrcTimestampFormat_TextBox.Name = "LrcTimestampFormat_TextBox"; - this.LrcTimestampFormat_TextBox.Size = new System.Drawing.Size(100, 21); + this.LrcTimestampFormat_TextBox.Size = new System.Drawing.Size(148, 28); this.LrcTimestampFormat_TextBox.TabIndex = 15; // // SrtTimestampFormat_TextBox // - this.SrtTimestampFormat_TextBox.Location = new System.Drawing.Point(103, 72); + this.SrtTimestampFormat_TextBox.Location = new System.Drawing.Point(154, 108); + this.SrtTimestampFormat_TextBox.Margin = new System.Windows.Forms.Padding(4); this.SrtTimestampFormat_TextBox.Name = "SrtTimestampFormat_TextBox"; - this.SrtTimestampFormat_TextBox.Size = new System.Drawing.Size(100, 21); + this.SrtTimestampFormat_TextBox.Size = new System.Drawing.Size(148, 28); this.SrtTimestampFormat_TextBox.TabIndex = 16; // // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(8, 115); + this.label8.Location = new System.Drawing.Point(12, 172); + this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(77, 12); + this.label8.Size = new System.Drawing.Size(116, 18); this.label8.TabIndex = 17; this.label8.Text = "毫秒截位规则"; // @@ -269,16 +286,18 @@ private void InitializeComponent() // this.Dot_ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.Dot_ComboBox.FormattingEnabled = true; - this.Dot_ComboBox.Location = new System.Drawing.Point(103, 112); + this.Dot_ComboBox.Location = new System.Drawing.Point(154, 168); + this.Dot_ComboBox.Margin = new System.Windows.Forms.Padding(4); this.Dot_ComboBox.Name = "Dot_ComboBox"; - this.Dot_ComboBox.Size = new System.Drawing.Size(100, 20); + this.Dot_ComboBox.Size = new System.Drawing.Size(148, 26); this.Dot_ComboBox.TabIndex = 18; // // label1 // - this.label1.Location = new System.Drawing.Point(15, 36); + this.label1.Location = new System.Drawing.Point(22, 54); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(82, 12); + this.label1.Size = new System.Drawing.Size(123, 18); this.label1.TabIndex = 19; this.label1.Text = "译文缺省规则"; // @@ -286,50 +305,56 @@ private void InitializeComponent() // this.TransLostRule_ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.TransLostRule_ComboBox.FormattingEnabled = true; - this.TransLostRule_ComboBox.Location = new System.Drawing.Point(115, 33); + this.TransLostRule_ComboBox.Location = new System.Drawing.Point(172, 50); + this.TransLostRule_ComboBox.Margin = new System.Windows.Forms.Padding(4); this.TransLostRule_ComboBox.Name = "TransLostRule_ComboBox"; - this.TransLostRule_ComboBox.Size = new System.Drawing.Size(98, 20); + this.TransLostRule_ComboBox.Size = new System.Drawing.Size(145, 26); this.TransLostRule_ComboBox.TabIndex = 20; // // label9 // - this.label9.Location = new System.Drawing.Point(15, 74); + this.label9.Location = new System.Drawing.Point(22, 111); + this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(82, 12); + this.label9.Size = new System.Drawing.Size(123, 18); this.label9.TabIndex = 21; this.label9.Text = "译文匹配精度"; // // TranslateMatchPrecisionDeviation_TextBox // - this.TranslateMatchPrecisionDeviation_TextBox.Location = new System.Drawing.Point(115, 71); + this.TranslateMatchPrecisionDeviation_TextBox.Location = new System.Drawing.Point(172, 106); + this.TranslateMatchPrecisionDeviation_TextBox.Margin = new System.Windows.Forms.Padding(4); this.TranslateMatchPrecisionDeviation_TextBox.Name = "TranslateMatchPrecisionDeviation_TextBox"; - this.TranslateMatchPrecisionDeviation_TextBox.Size = new System.Drawing.Size(73, 21); + this.TranslateMatchPrecisionDeviation_TextBox.Size = new System.Drawing.Size(108, 28); this.TranslateMatchPrecisionDeviation_TextBox.TabIndex = 22; this.TranslateMatchPrecisionDeviation_TextBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.LrcMatchDigit_TextBox_KeyPress); // // label5 // this.label5.Font = new System.Drawing.Font("宋体", 10F); - this.label5.Location = new System.Drawing.Point(194, 74); + this.label5.Location = new System.Drawing.Point(291, 111); + this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(24, 12); + this.label5.Size = new System.Drawing.Size(36, 18); this.label5.TabIndex = 23; this.label5.Text = "MS"; // // IgnoreEmptyLyric_CheckBox // - this.IgnoreEmptyLyric_CheckBox.Location = new System.Drawing.Point(6, 35); + this.IgnoreEmptyLyric_CheckBox.Location = new System.Drawing.Point(9, 52); + this.IgnoreEmptyLyric_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.IgnoreEmptyLyric_CheckBox.Name = "IgnoreEmptyLyric_CheckBox"; - this.IgnoreEmptyLyric_CheckBox.Size = new System.Drawing.Size(110, 17); + this.IgnoreEmptyLyric_CheckBox.Size = new System.Drawing.Size(165, 26); this.IgnoreEmptyLyric_CheckBox.TabIndex = 24; this.IgnoreEmptyLyric_CheckBox.Text = "跳过空白歌词行"; this.IgnoreEmptyLyric_CheckBox.UseVisualStyleBackColor = true; // // VerbatimLyric_CheckBox // - this.VerbatimLyric_CheckBox.Location = new System.Drawing.Point(6, 73); + this.VerbatimLyric_CheckBox.Location = new System.Drawing.Point(9, 110); + this.VerbatimLyric_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.VerbatimLyric_CheckBox.Name = "VerbatimLyric_CheckBox"; - this.VerbatimLyric_CheckBox.Size = new System.Drawing.Size(110, 17); + this.VerbatimLyric_CheckBox.Size = new System.Drawing.Size(165, 26); this.VerbatimLyric_CheckBox.TabIndex = 25; this.VerbatimLyric_CheckBox.Text = "QQ音乐逐字歌词"; this.VerbatimLyric_CheckBox.UseVisualStyleBackColor = true; @@ -337,32 +362,36 @@ private void InitializeComponent() // // NetEase_Cookie_TextBox // - this.NetEase_Cookie_TextBox.Location = new System.Drawing.Point(105, 75); + this.NetEase_Cookie_TextBox.Location = new System.Drawing.Point(158, 112); + this.NetEase_Cookie_TextBox.Margin = new System.Windows.Forms.Padding(4); this.NetEase_Cookie_TextBox.Name = "NetEase_Cookie_TextBox"; - this.NetEase_Cookie_TextBox.Size = new System.Drawing.Size(323, 21); + this.NetEase_Cookie_TextBox.Size = new System.Drawing.Size(482, 28); this.NetEase_Cookie_TextBox.TabIndex = 26; // // label2 // - this.label2.Location = new System.Drawing.Point(6, 78); + this.label2.Location = new System.Drawing.Point(9, 117); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(80, 12); + this.label2.Size = new System.Drawing.Size(120, 18); this.label2.TabIndex = 27; this.label2.Text = "网易云Cookie"; // // label4 // - this.label4.Location = new System.Drawing.Point(6, 122); + this.label4.Location = new System.Drawing.Point(9, 183); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(80, 12); + this.label4.Size = new System.Drawing.Size(120, 18); this.label4.TabIndex = 28; this.label4.Text = "QQ音乐Cookie"; // // QQMusic_Cookie_TextBox // - this.QQMusic_Cookie_TextBox.Location = new System.Drawing.Point(105, 122); + this.QQMusic_Cookie_TextBox.Location = new System.Drawing.Point(158, 183); + this.QQMusic_Cookie_TextBox.Margin = new System.Windows.Forms.Padding(4); this.QQMusic_Cookie_TextBox.Name = "QQMusic_Cookie_TextBox"; - this.QQMusic_Cookie_TextBox.Size = new System.Drawing.Size(323, 21); + this.QQMusic_Cookie_TextBox.Size = new System.Drawing.Size(482, 28); this.QQMusic_Cookie_TextBox.TabIndex = 29; // // Timestamp_GroupBox @@ -373,9 +402,11 @@ private void InitializeComponent() this.Timestamp_GroupBox.Controls.Add(this.label6); this.Timestamp_GroupBox.Controls.Add(this.SrtTimestampFormat_TextBox); this.Timestamp_GroupBox.Controls.Add(this.label7); - this.Timestamp_GroupBox.Location = new System.Drawing.Point(12, 12); + this.Timestamp_GroupBox.Location = new System.Drawing.Point(18, 18); + this.Timestamp_GroupBox.Margin = new System.Windows.Forms.Padding(4); this.Timestamp_GroupBox.Name = "Timestamp_GroupBox"; - this.Timestamp_GroupBox.Size = new System.Drawing.Size(227, 155); + this.Timestamp_GroupBox.Padding = new System.Windows.Forms.Padding(4); + this.Timestamp_GroupBox.Size = new System.Drawing.Size(340, 232); this.Timestamp_GroupBox.TabIndex = 30; this.Timestamp_GroupBox.TabStop = false; this.Timestamp_GroupBox.Text = "歌词时间戳"; @@ -383,9 +414,10 @@ private void InitializeComponent() // TimestampHelp_Btn // this.TimestampHelp_Btn.ForeColor = System.Drawing.Color.Red; - this.TimestampHelp_Btn.Location = new System.Drawing.Point(212, 12); + this.TimestampHelp_Btn.Location = new System.Drawing.Point(318, 18); + this.TimestampHelp_Btn.Margin = new System.Windows.Forms.Padding(4); this.TimestampHelp_Btn.Name = "TimestampHelp_Btn"; - this.TimestampHelp_Btn.Size = new System.Drawing.Size(21, 21); + this.TimestampHelp_Btn.Size = new System.Drawing.Size(32, 32); this.TimestampHelp_Btn.TabIndex = 19; this.TimestampHelp_Btn.Text = "?"; this.TimestampHelp_Btn.UseVisualStyleBackColor = true; @@ -394,20 +426,22 @@ private void InitializeComponent() // SettingTips_TextBox // this.SettingTips_TextBox.BackColor = System.Drawing.SystemColors.Info; - this.SettingTips_TextBox.Location = new System.Drawing.Point(483, 183); + this.SettingTips_TextBox.Location = new System.Drawing.Point(724, 274); + this.SettingTips_TextBox.Margin = new System.Windows.Forms.Padding(4); this.SettingTips_TextBox.Multiline = true; this.SettingTips_TextBox.Name = "SettingTips_TextBox"; this.SettingTips_TextBox.ReadOnly = true; this.SettingTips_TextBox.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.SettingTips_TextBox.Size = new System.Drawing.Size(227, 437); + this.SettingTips_TextBox.Size = new System.Drawing.Size(338, 654); this.SettingTips_TextBox.TabIndex = 31; // // OutputHelp_Btn // this.OutputHelp_Btn.ForeColor = System.Drawing.Color.Red; - this.OutputHelp_Btn.Location = new System.Drawing.Point(425, 0); + this.OutputHelp_Btn.Location = new System.Drawing.Point(638, 0); + this.OutputHelp_Btn.Margin = new System.Windows.Forms.Padding(4); this.OutputHelp_Btn.Name = "OutputHelp_Btn"; - this.OutputHelp_Btn.Size = new System.Drawing.Size(21, 21); + this.OutputHelp_Btn.Size = new System.Drawing.Size(32, 32); this.OutputHelp_Btn.TabIndex = 20; this.OutputHelp_Btn.Text = "?"; this.OutputHelp_Btn.UseVisualStyleBackColor = true; @@ -423,18 +457,21 @@ private void InitializeComponent() this.AppConfig_GroupBox.Controls.Add(this.label2); this.AppConfig_GroupBox.Controls.Add(this.QQMusic_Cookie_TextBox); this.AppConfig_GroupBox.Controls.Add(this.label4); - this.AppConfig_GroupBox.Location = new System.Drawing.Point(12, 183); + this.AppConfig_GroupBox.Location = new System.Drawing.Point(18, 274); + this.AppConfig_GroupBox.Margin = new System.Windows.Forms.Padding(4); this.AppConfig_GroupBox.Name = "AppConfig_GroupBox"; - this.AppConfig_GroupBox.Size = new System.Drawing.Size(452, 164); + this.AppConfig_GroupBox.Padding = new System.Windows.Forms.Padding(4); + this.AppConfig_GroupBox.Size = new System.Drawing.Size(678, 246); this.AppConfig_GroupBox.TabIndex = 32; this.AppConfig_GroupBox.TabStop = false; this.AppConfig_GroupBox.Text = "应用设置"; // // AggregatedBlurSearchCheckBox // - this.AggregatedBlurSearchCheckBox.Location = new System.Drawing.Point(103, 37); + this.AggregatedBlurSearchCheckBox.Location = new System.Drawing.Point(154, 56); + this.AggregatedBlurSearchCheckBox.Margin = new System.Windows.Forms.Padding(4); this.AggregatedBlurSearchCheckBox.Name = "AggregatedBlurSearchCheckBox"; - this.AggregatedBlurSearchCheckBox.Size = new System.Drawing.Size(98, 17); + this.AggregatedBlurSearchCheckBox.Size = new System.Drawing.Size(147, 26); this.AggregatedBlurSearchCheckBox.TabIndex = 30; this.AggregatedBlurSearchCheckBox.Text = "聚合模糊搜索"; this.AggregatedBlurSearchCheckBox.UseVisualStyleBackColor = true; @@ -443,9 +480,11 @@ private void InitializeComponent() // this.OriginLyric_GroupBox.Controls.Add(this.IgnoreEmptyLyric_CheckBox); this.OriginLyric_GroupBox.Controls.Add(this.VerbatimLyric_CheckBox); - this.OriginLyric_GroupBox.Location = new System.Drawing.Point(254, 12); + this.OriginLyric_GroupBox.Location = new System.Drawing.Point(381, 18); + this.OriginLyric_GroupBox.Margin = new System.Windows.Forms.Padding(4); this.OriginLyric_GroupBox.Name = "OriginLyric_GroupBox"; - this.OriginLyric_GroupBox.Size = new System.Drawing.Size(210, 155); + this.OriginLyric_GroupBox.Padding = new System.Windows.Forms.Padding(4); + this.OriginLyric_GroupBox.Size = new System.Drawing.Size(315, 152); this.OriginLyric_GroupBox.TabIndex = 33; this.OriginLyric_GroupBox.TabStop = false; this.OriginLyric_GroupBox.Text = "原文歌词"; @@ -457,9 +496,11 @@ private void InitializeComponent() this.TransLyric_GroupBox.Controls.Add(this.TranslateMatchPrecisionDeviation_TextBox); this.TransLyric_GroupBox.Controls.Add(this.label9); this.TransLyric_GroupBox.Controls.Add(this.label5); - this.TransLyric_GroupBox.Location = new System.Drawing.Point(483, 12); + this.TransLyric_GroupBox.Location = new System.Drawing.Point(724, 18); + this.TransLyric_GroupBox.Margin = new System.Windows.Forms.Padding(4); this.TransLyric_GroupBox.Name = "TransLyric_GroupBox"; - this.TransLyric_GroupBox.Size = new System.Drawing.Size(227, 155); + this.TransLyric_GroupBox.Padding = new System.Windows.Forms.Padding(4); + this.TransLyric_GroupBox.Size = new System.Drawing.Size(340, 232); this.TransLyric_GroupBox.TabIndex = 34; this.TransLyric_GroupBox.TabStop = false; this.TransLyric_GroupBox.Text = "译文歌词"; @@ -468,10 +509,11 @@ private void InitializeComponent() // this.TransConfig_TabControl.Controls.Add(this.Romaji_TabPage); this.TransConfig_TabControl.Controls.Add(this.TranslateApi_TabPage); - this.TransConfig_TabControl.Location = new System.Drawing.Point(12, 163); + this.TransConfig_TabControl.Location = new System.Drawing.Point(18, 244); + this.TransConfig_TabControl.Margin = new System.Windows.Forms.Padding(4); this.TransConfig_TabControl.Name = "TransConfig_TabControl"; this.TransConfig_TabControl.SelectedIndex = 0; - this.TransConfig_TabControl.Size = new System.Drawing.Size(422, 150); + this.TransConfig_TabControl.Size = new System.Drawing.Size(633, 225); this.TransConfig_TabControl.TabIndex = 0; // // Romaji_TabPage @@ -480,29 +522,32 @@ private void InitializeComponent() this.Romaji_TabPage.Controls.Add(this.label3); this.Romaji_TabPage.Controls.Add(this.label11); this.Romaji_TabPage.Controls.Add(this.RomajiMode_ComboBox); - this.Romaji_TabPage.Location = new System.Drawing.Point(4, 22); + this.Romaji_TabPage.Location = new System.Drawing.Point(4, 28); + this.Romaji_TabPage.Margin = new System.Windows.Forms.Padding(4); this.Romaji_TabPage.Name = "Romaji_TabPage"; - this.Romaji_TabPage.Padding = new System.Windows.Forms.Padding(3); - this.Romaji_TabPage.Size = new System.Drawing.Size(414, 124); + this.Romaji_TabPage.Padding = new System.Windows.Forms.Padding(4); + this.Romaji_TabPage.Size = new System.Drawing.Size(625, 193); this.Romaji_TabPage.TabIndex = 0; this.Romaji_TabPage.Text = "罗马音"; this.Romaji_TabPage.UseVisualStyleBackColor = true; // // label11 // - this.label11.Location = new System.Drawing.Point(15, 24); + this.label11.Location = new System.Drawing.Point(22, 36); + this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(90, 12); + this.label11.Size = new System.Drawing.Size(135, 18); this.label11.TabIndex = 38; this.label11.Text = "罗马音系统"; // // TranslateApi_TabPage // this.TranslateApi_TabPage.Controls.Add(this.tabControl1); - this.TranslateApi_TabPage.Location = new System.Drawing.Point(4, 22); + this.TranslateApi_TabPage.Location = new System.Drawing.Point(4, 28); + this.TranslateApi_TabPage.Margin = new System.Windows.Forms.Padding(4); this.TranslateApi_TabPage.Name = "TranslateApi_TabPage"; - this.TranslateApi_TabPage.Padding = new System.Windows.Forms.Padding(3); - this.TranslateApi_TabPage.Size = new System.Drawing.Size(414, 124); + this.TranslateApi_TabPage.Padding = new System.Windows.Forms.Padding(4); + this.TranslateApi_TabPage.Size = new System.Drawing.Size(625, 193); this.TranslateApi_TabPage.TabIndex = 1; this.TranslateApi_TabPage.Text = "翻译 API"; this.TranslateApi_TabPage.UseVisualStyleBackColor = true; @@ -511,10 +556,11 @@ private void InitializeComponent() // this.tabControl1.Controls.Add(this.BaiduTranslate_TabPage); this.tabControl1.Controls.Add(this.CaiYunTranslate_TabPage); - this.tabControl1.Location = new System.Drawing.Point(6, 6); + this.tabControl1.Location = new System.Drawing.Point(9, 9); + this.tabControl1.Margin = new System.Windows.Forms.Padding(4); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(394, 110); + this.tabControl1.Size = new System.Drawing.Size(591, 165); this.tabControl1.TabIndex = 37; // // BaiduTranslate_TabPage @@ -523,41 +569,46 @@ private void InitializeComponent() this.BaiduTranslate_TabPage.Controls.Add(this.BaiduTranslateAppId_TextBox); this.BaiduTranslate_TabPage.Controls.Add(this.label13); this.BaiduTranslate_TabPage.Controls.Add(this.label12); - this.BaiduTranslate_TabPage.Location = new System.Drawing.Point(4, 22); + this.BaiduTranslate_TabPage.Location = new System.Drawing.Point(4, 28); + this.BaiduTranslate_TabPage.Margin = new System.Windows.Forms.Padding(4); this.BaiduTranslate_TabPage.Name = "BaiduTranslate_TabPage"; - this.BaiduTranslate_TabPage.Padding = new System.Windows.Forms.Padding(3); - this.BaiduTranslate_TabPage.Size = new System.Drawing.Size(386, 84); + this.BaiduTranslate_TabPage.Padding = new System.Windows.Forms.Padding(4); + this.BaiduTranslate_TabPage.Size = new System.Drawing.Size(583, 133); this.BaiduTranslate_TabPage.TabIndex = 0; this.BaiduTranslate_TabPage.Text = "百度翻译"; this.BaiduTranslate_TabPage.UseVisualStyleBackColor = true; // // BaiduTranslateSecret_TextBox // - this.BaiduTranslateSecret_TextBox.Location = new System.Drawing.Point(81, 52); + this.BaiduTranslateSecret_TextBox.Location = new System.Drawing.Point(122, 78); + this.BaiduTranslateSecret_TextBox.Margin = new System.Windows.Forms.Padding(4); this.BaiduTranslateSecret_TextBox.Name = "BaiduTranslateSecret_TextBox"; - this.BaiduTranslateSecret_TextBox.Size = new System.Drawing.Size(285, 21); + this.BaiduTranslateSecret_TextBox.Size = new System.Drawing.Size(426, 28); this.BaiduTranslateSecret_TextBox.TabIndex = 40; // // BaiduTranslateAppId_TextBox // - this.BaiduTranslateAppId_TextBox.Location = new System.Drawing.Point(81, 14); + this.BaiduTranslateAppId_TextBox.Location = new System.Drawing.Point(122, 21); + this.BaiduTranslateAppId_TextBox.Margin = new System.Windows.Forms.Padding(4); this.BaiduTranslateAppId_TextBox.Name = "BaiduTranslateAppId_TextBox"; - this.BaiduTranslateAppId_TextBox.Size = new System.Drawing.Size(285, 21); + this.BaiduTranslateAppId_TextBox.Size = new System.Drawing.Size(426, 28); this.BaiduTranslateAppId_TextBox.TabIndex = 39; // // label13 // - this.label13.Location = new System.Drawing.Point(18, 55); + this.label13.Location = new System.Drawing.Point(27, 82); + this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(50, 12); + this.label13.Size = new System.Drawing.Size(75, 18); this.label13.TabIndex = 38; this.label13.Text = "密钥"; // // label12 // - this.label12.Location = new System.Drawing.Point(18, 16); + this.label12.Location = new System.Drawing.Point(27, 24); + this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(50, 12); + this.label12.Size = new System.Drawing.Size(75, 18); this.label12.TabIndex = 37; this.label12.Text = "APP ID"; // @@ -565,26 +616,29 @@ private void InitializeComponent() // this.CaiYunTranslate_TabPage.Controls.Add(this.CaiYunTranslateToken_TextBox); this.CaiYunTranslate_TabPage.Controls.Add(this.label14); - this.CaiYunTranslate_TabPage.Location = new System.Drawing.Point(4, 22); + this.CaiYunTranslate_TabPage.Location = new System.Drawing.Point(4, 28); + this.CaiYunTranslate_TabPage.Margin = new System.Windows.Forms.Padding(4); this.CaiYunTranslate_TabPage.Name = "CaiYunTranslate_TabPage"; - this.CaiYunTranslate_TabPage.Padding = new System.Windows.Forms.Padding(3); - this.CaiYunTranslate_TabPage.Size = new System.Drawing.Size(386, 84); + this.CaiYunTranslate_TabPage.Padding = new System.Windows.Forms.Padding(4); + this.CaiYunTranslate_TabPage.Size = new System.Drawing.Size(583, 133); this.CaiYunTranslate_TabPage.TabIndex = 2; this.CaiYunTranslate_TabPage.Text = "彩云小译"; this.CaiYunTranslate_TabPage.UseVisualStyleBackColor = true; // // CaiYunTranslateToken_TextBox // - this.CaiYunTranslateToken_TextBox.Location = new System.Drawing.Point(75, 14); + this.CaiYunTranslateToken_TextBox.Location = new System.Drawing.Point(112, 21); + this.CaiYunTranslateToken_TextBox.Margin = new System.Windows.Forms.Padding(4); this.CaiYunTranslateToken_TextBox.Name = "CaiYunTranslateToken_TextBox"; - this.CaiYunTranslateToken_TextBox.Size = new System.Drawing.Size(285, 21); + this.CaiYunTranslateToken_TextBox.Size = new System.Drawing.Size(426, 28); this.CaiYunTranslateToken_TextBox.TabIndex = 42; // // label14 // - this.label14.Location = new System.Drawing.Point(12, 16); + this.label14.Location = new System.Drawing.Point(18, 24); + this.label14.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(50, 12); + this.label14.Size = new System.Drawing.Size(75, 18); this.label14.TabIndex = 41; this.label14.Text = "Token"; // @@ -596,10 +650,11 @@ private void InitializeComponent() this.LyricShow_DataGridView.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.DisplayedCells; this.LyricShow_DataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.LyricShow_DataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.Column1, this.Column2 }); - this.LyricShow_DataGridView.Location = new System.Drawing.Point(12, 23); + this.LyricShow_DataGridView.Location = new System.Drawing.Point(18, 34); + this.LyricShow_DataGridView.Margin = new System.Windows.Forms.Padding(4); this.LyricShow_DataGridView.Name = "LyricShow_DataGridView"; this.LyricShow_DataGridView.RowTemplate.Height = 23; - this.LyricShow_DataGridView.Size = new System.Drawing.Size(203, 123); + this.LyricShow_DataGridView.Size = new System.Drawing.Size(304, 184); this.LyricShow_DataGridView.TabIndex = 37; this.LyricShow_DataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.TransType_DataGridView_CellContentClick); this.LyricShow_DataGridView.CellMouseMove += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.TransList_DataGridView_CellMouseMove); @@ -628,42 +683,48 @@ private void InitializeComponent() this.Output_GroupBox.Controls.Add(this.OutputHelp_Btn); this.Output_GroupBox.Controls.Add(this.LyricShow_DataGridView); this.Output_GroupBox.Controls.Add(this.TransConfig_TabControl); - this.Output_GroupBox.Location = new System.Drawing.Point(12, 362); + this.Output_GroupBox.Location = new System.Drawing.Point(18, 543); + this.Output_GroupBox.Margin = new System.Windows.Forms.Padding(4); this.Output_GroupBox.Name = "Output_GroupBox"; - this.Output_GroupBox.Size = new System.Drawing.Size(452, 327); + this.Output_GroupBox.Padding = new System.Windows.Forms.Padding(4); + this.Output_GroupBox.Size = new System.Drawing.Size(678, 490); this.Output_GroupBox.TabIndex = 35; this.Output_GroupBox.TabStop = false; this.Output_GroupBox.Text = "输出设置"; // // SeparateFileForIsolated_CheckBox // - this.SeparateFileForIsolated_CheckBox.Location = new System.Drawing.Point(226, 61); + this.SeparateFileForIsolated_CheckBox.Location = new System.Drawing.Point(339, 92); + this.SeparateFileForIsolated_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.SeparateFileForIsolated_CheckBox.Name = "SeparateFileForIsolated_CheckBox"; - this.SeparateFileForIsolated_CheckBox.Size = new System.Drawing.Size(202, 17); + this.SeparateFileForIsolated_CheckBox.Size = new System.Drawing.Size(303, 26); this.SeparateFileForIsolated_CheckBox.TabIndex = 39; this.SeparateFileForIsolated_CheckBox.Text = "“独立”歌词格式分文件保存"; this.SeparateFileForIsolated_CheckBox.UseVisualStyleBackColor = true; // // OutputName_TextBox // - this.OutputName_TextBox.Location = new System.Drawing.Point(222, 125); + this.OutputName_TextBox.Location = new System.Drawing.Point(333, 188); + this.OutputName_TextBox.Margin = new System.Windows.Forms.Padding(4); this.OutputName_TextBox.Name = "OutputName_TextBox"; - this.OutputName_TextBox.Size = new System.Drawing.Size(208, 21); + this.OutputName_TextBox.Size = new System.Drawing.Size(310, 28); this.OutputName_TextBox.TabIndex = 38; // // label10 // - this.label10.Location = new System.Drawing.Point(222, 98); + this.label10.Location = new System.Drawing.Point(333, 147); + this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(65, 12); + this.label10.Size = new System.Drawing.Size(98, 18); this.label10.TabIndex = 37; this.label10.Text = "保存文件名"; // // IgnorePureMusicInSave_CheckBox // - this.IgnorePureMusicInSave_CheckBox.Location = new System.Drawing.Point(226, 23); + this.IgnorePureMusicInSave_CheckBox.Location = new System.Drawing.Point(339, 34); + this.IgnorePureMusicInSave_CheckBox.Margin = new System.Windows.Forms.Padding(4); this.IgnorePureMusicInSave_CheckBox.Name = "IgnorePureMusicInSave_CheckBox"; - this.IgnorePureMusicInSave_CheckBox.Size = new System.Drawing.Size(93, 17); + this.IgnorePureMusicInSave_CheckBox.Size = new System.Drawing.Size(140, 26); this.IgnorePureMusicInSave_CheckBox.TabIndex = 36; this.IgnorePureMusicInSave_CheckBox.Text = "跳过纯音乐"; this.IgnorePureMusicInSave_CheckBox.UseVisualStyleBackColor = true; @@ -673,19 +734,39 @@ private void InitializeComponent() this.Reset_Btn.BackColor = System.Drawing.Color.OldLace; this.Reset_Btn.FlatAppearance.BorderColor = System.Drawing.Color.Silver; this.Reset_Btn.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.Reset_Btn.Location = new System.Drawing.Point(483, 639); + this.Reset_Btn.Location = new System.Drawing.Point(724, 958); + this.Reset_Btn.Margin = new System.Windows.Forms.Padding(4); this.Reset_Btn.Name = "Reset_Btn"; - this.Reset_Btn.Size = new System.Drawing.Size(97, 50); + this.Reset_Btn.Size = new System.Drawing.Size(146, 75); this.Reset_Btn.TabIndex = 36; this.Reset_Btn.Text = "重置"; this.Reset_Btn.UseVisualStyleBackColor = false; this.Reset_Btn.Click += new System.EventHandler(this.Close_Btn_Click); // + // label15 + // + this.label15.Location = new System.Drawing.Point(381, 190); + this.label15.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(98, 18); + this.label15.TabIndex = 40; + this.label15.Text = "歌手分隔符"; + // + // SingerSeparator_TextBox + // + this.SingerSeparator_TextBox.Location = new System.Drawing.Point(510, 186); + this.SingerSeparator_TextBox.Margin = new System.Windows.Forms.Padding(4); + this.SingerSeparator_TextBox.Name = "SingerSeparator_TextBox"; + this.SingerSeparator_TextBox.Size = new System.Drawing.Size(148, 28); + this.SingerSeparator_TextBox.TabIndex = 19; + // // SettingForm // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(724, 701); + this.ClientSize = new System.Drawing.Size(1086, 1052); + this.Controls.Add(this.SingerSeparator_TextBox); + this.Controls.Add(this.label15); this.Controls.Add(this.Reset_Btn); this.Controls.Add(this.Output_GroupBox); this.Controls.Add(this.TransLyric_GroupBox); @@ -695,11 +776,12 @@ private void InitializeComponent() this.Controls.Add(this.SettingTips_TextBox); this.Controls.Add(this.Save_Btn); this.Controls.Add(this.Timestamp_GroupBox); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4); this.MaximizeBox = false; this.Name = "SettingForm"; this.Text = "设置"; + this.Resize += new System.EventHandler(this.SettingForm_Resize); this.Timestamp_GroupBox.ResumeLayout(false); this.Timestamp_GroupBox.PerformLayout(); this.AppConfig_GroupBox.ResumeLayout(false); @@ -722,6 +804,9 @@ private void InitializeComponent() this.PerformLayout(); } + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox SingerSeparator_TextBox; + private System.Windows.Forms.CheckBox SeparateFileForIsolated_CheckBox; private System.Windows.Forms.CheckBox AggregatedBlurSearchCheckBox; diff --git a/MusicLyricApp/SettingForm.cs b/MusicLyricApp/SettingForm.cs index 2105ad3..01a0cf7 100644 --- a/MusicLyricApp/SettingForm.cs +++ b/MusicLyricApp/SettingForm.cs @@ -12,6 +12,8 @@ namespace MusicLyricApp public partial class SettingForm : MusicLyricForm { private readonly SettingBean _settingBean; + + private ScalingFormConfig _scalingFormConfig; public SettingForm(SettingBean settingBean) { @@ -37,13 +39,14 @@ private void Close_Btn_Click(object sender, EventArgs e) if (input == Save_Btn) { // 歌词时间戳 - _settingBean.Param.DotType = (DotTypeEnum)Dot_ComboBox.SelectedIndex; - _settingBean.Param.LrcTimestampFormat = LrcTimestampFormat_TextBox.Text; - _settingBean.Param.SrtTimestampFormat = SrtTimestampFormat_TextBox.Text; + _settingBean.Config.DotType = (DotTypeEnum)Dot_ComboBox.SelectedIndex; + _settingBean.Config.LrcTimestampFormat = LrcTimestampFormat_TextBox.Text; + _settingBean.Config.SrtTimestampFormat = SrtTimestampFormat_TextBox.Text; + _settingBean.Config.SingerSeparator = SingerSeparator_TextBox.Text; // 原文歌词 - _settingBean.Param.IgnoreEmptyLyric = IgnoreEmptyLyric_CheckBox.Checked; - _settingBean.Param.EnableVerbatimLyric = VerbatimLyric_CheckBox.Checked; + _settingBean.Config.IgnoreEmptyLyric = IgnoreEmptyLyric_CheckBox.Checked; + _settingBean.Config.EnableVerbatimLyric = VerbatimLyric_CheckBox.Checked; // 译文歌词 _settingBean.Config.TransConfig.LostRule = (TransLyricLostRuleEnum)TransLostRule_ComboBox.SelectedIndex; @@ -277,5 +280,10 @@ private void SingleTransTypeEventListener(Dictionary tra break; } } + + private void SettingForm_Resize(object sender, EventArgs e) + { + _scalingFormConfig?.SetControls(this); + } } } \ No newline at end of file diff --git a/MusicLyricApp/ShortcutForm.Designer.cs b/MusicLyricApp/ShortcutForm.Designer.cs index 55e034e..4166796 100644 --- a/MusicLyricApp/ShortcutForm.Designer.cs +++ b/MusicLyricApp/ShortcutForm.Designer.cs @@ -51,12 +51,12 @@ private void InitializeComponent() this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(254, 141); this.Controls.Add(this.Shortcut_Browser); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.MinimizeBox = false; this.Name = "ShortcutForm"; this.Text = "快捷键"; + this.Resize += new System.EventHandler(this.ShortcutForm_Resize); this.ResumeLayout(false); } diff --git a/MusicLyricApp/ShortcutForm.cs b/MusicLyricApp/ShortcutForm.cs index c2727c0..cd34129 100644 --- a/MusicLyricApp/ShortcutForm.cs +++ b/MusicLyricApp/ShortcutForm.cs @@ -1,13 +1,19 @@ -using System.Text; +using System; +using System.Text; using Markdig; +using MusicLyricApp.Bean; namespace MusicLyricApp { public partial class ShortcutForm : MusicLyricForm { + private ScalingFormConfig _scalingFormConfig; + public ShortcutForm() { InitializeComponent(); + + _scalingFormConfig = new ScalingFormConfig(this); var sb = new StringBuilder(); sb @@ -34,5 +40,10 @@ public ShortcutForm() Shortcut_Browser.DocumentText = Markdown.ToHtml(sb.ToString()); } + + private void ShortcutForm_Resize(object sender, EventArgs e) + { + _scalingFormConfig?.SetControls(this); + } } } \ No newline at end of file diff --git a/MusicLyricApp/UpgradeForm.Designer.cs b/MusicLyricApp/UpgradeForm.Designer.cs index ec8a4a9..1f45df0 100644 --- a/MusicLyricApp/UpgradeForm.Designer.cs +++ b/MusicLyricApp/UpgradeForm.Designer.cs @@ -107,11 +107,11 @@ private void InitializeComponent() this.Controls.Add(this.UpgradeSpan1_Label); this.Controls.Add(this.Upgrade_Btn); this.Controls.Add(this.label1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Name = "UpgradeForm"; this.Text = "版本更新"; + this.Resize += new System.EventHandler(this.UpgradeForm_Resize); this.ResumeLayout(false); } diff --git a/MusicLyricApp/UpgradeForm.cs b/MusicLyricApp/UpgradeForm.cs index 1372384..4cafe99 100644 --- a/MusicLyricApp/UpgradeForm.cs +++ b/MusicLyricApp/UpgradeForm.cs @@ -8,6 +8,9 @@ namespace MusicLyricApp public partial class UpgradeForm : MusicLyricForm { private readonly GitHubInfo _gitHubInfo; + + private ScalingFormConfig _scalingFormConfig; + private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private const string SEPARATOR = " | "; @@ -24,6 +27,7 @@ public UpgradeForm(GitHubInfo info) InitializeComponent(); _gitHubInfo = info; + _scalingFormConfig = new ScalingFormConfig(this); UpgradeTag_Label.Text = info.TagName; UpgradeSpan1_Label.Text = $"更新日期:{info.PublishedAt.DateTime.AddHours(8)}" + SEPARATOR + $"下载次数:{info.Assets[0].DownloadCount}"; @@ -47,5 +51,10 @@ private void Upgrade_Btn_Click(object sender, EventArgs e) Logger.Error(ex, "打开失败"); } } + + private void UpgradeForm_Resize(object sender, EventArgs e) + { + _scalingFormConfig?.SetControls(this); + } } } \ No newline at end of file diff --git a/MusicLyricApp/Utils/GlobalUtils.cs b/MusicLyricApp/Utils/GlobalUtils.cs index dab7749..57395b5 100644 --- a/MusicLyricApp/Utils/GlobalUtils.cs +++ b/MusicLyricApp/Utils/GlobalUtils.cs @@ -162,7 +162,7 @@ public static bool CheckNum(string s) /** * 获取输出文件名 */ - public static string GetOutputName(SaveVo saveVo, string format) + public static string GetOutputName(SaveVo saveVo, string format, string singerSeparator) { if (saveVo == null) { @@ -180,7 +180,7 @@ public static string GetOutputName(SaveVo saveVo, string format) .Replace("${index}", saveVo.Index.ToString()) .Replace("${id}", songVo.DisplayId) .Replace("${name}", ControlLength(songVo.Name)) - .Replace("${singer}", ControlLength(songVo.Singer)) + .Replace("${singer}", ControlLength(string.Join(singerSeparator, songVo.Singer))) .Replace("${album}", ControlLength(songVo.Album)); outputName = ResolveCustomFunction(outputName); diff --git a/MusicLyricApp/Utils/LyricUtils.cs b/MusicLyricApp/Utils/LyricUtils.cs index 3627016..2f4e948 100644 --- a/MusicLyricApp/Utils/LyricUtils.cs +++ b/MusicLyricApp/Utils/LyricUtils.cs @@ -31,13 +31,14 @@ public abstract class LyricUtils public static async Task> GetOutputContent(LyricVo lyricVo, SearchInfo searchInfo) { var param = searchInfo.SettingBean.Param; + var config = searchInfo.SettingBean.Config; - var dotType = param.DotType; - var timestampFormat = param.OutputFileFormat == OutputFormatEnum.SRT ? param.SrtTimestampFormat : param.LrcTimestampFormat; + var dotType = config.DotType; + var timestampFormat = param.OutputFileFormat == OutputFormatEnum.SRT ? config.SrtTimestampFormat : config.LrcTimestampFormat; var voListList = await FormatLyric(lyricVo.Lyric, lyricVo.TranslateLyric, searchInfo); - if (lyricVo.SearchSource == SearchSourceEnum.QQ_MUSIC && searchInfo.SettingBean.Param.EnableVerbatimLyric) + if (lyricVo.SearchSource == SearchSourceEnum.QQ_MUSIC && config.EnableVerbatimLyric) { for (var i = 0; i < voListList.Count; i++) { @@ -67,7 +68,7 @@ public static async Task> GetOutputContent(LyricVo lyricVo, SearchI /// public static string DealVerbatimLyric(string originLrc, SearchSourceEnum searchSource) { - var defaultParam = new PersistParamBean(); + var defaultParam = new ConfigBean(); var sb = new StringBuilder(); foreach (var line in SplitLrc(originLrc)) @@ -161,7 +162,7 @@ private static async Task>> FormatLyric(string originLrc, var outputLyricsTypes = searchInfo.SettingBean.Config.DeserializationOutputLyricsTypes(); var showLrcType = searchInfo.SettingBean.Param.ShowLrcType; var searchSource = searchInfo.SettingBean.Param.SearchSource; - var ignoreEmptyLyric = searchInfo.SettingBean.Param.IgnoreEmptyLyric; + var ignoreEmptyLyric = searchInfo.SettingBean.Config.IgnoreEmptyLyric; var res = new List>(); diff --git a/MusicLyricAppTest/Utils/GlobalUtilsTest.cs b/MusicLyricAppTest/Utils/GlobalUtilsTest.cs index 9a76884..711a381 100644 --- a/MusicLyricAppTest/Utils/GlobalUtilsTest.cs +++ b/MusicLyricAppTest/Utils/GlobalUtilsTest.cs @@ -121,7 +121,7 @@ public void GetOutputNameTest() var songVo = new SongVo { Name = "name0", - Singer = "singer1", + Singer = new [] {"singer1", "singer2"}, Album = "album2", DisplayId = "id3", Id = "id4", @@ -129,10 +129,10 @@ public void GetOutputNameTest() var saveVo = new SaveVo(10, songVo, null); - Assert.AreEqual("name0 - singer1", GetOutputName(saveVo, "${name} - ${singer}")); - Assert.AreEqual("10 & name0 p id3 @ name0 - singer1 x album2", GetOutputName(saveVo, - "${index} & ${name} p ${id} @ ${name} - ${singer} x ${album}")); - Assert.AreEqual("$name - $singer", GetOutputName(saveVo, "$name - $singer")); + Assert.AreEqual("name0 - singer1,singer2", GetOutputName(saveVo, "${name} - ${singer}", ",")); + Assert.AreEqual("10 & name0 p id3 @ name0 - singer1,singer2 x album2", GetOutputName(saveVo, + "${index} & ${name} p ${id} @ ${name} - ${singer} x ${album}", ",")); + Assert.AreEqual("$name - $singer", GetOutputName(saveVo, "$name - $singer", ",")); } } } \ No newline at end of file diff --git a/README.md b/README.md index 6149b04..7371763 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ maintained personally, all features are free. If you would like to treat the cre | username | donate | platform | date | |:-------------|:----------|:-------|:-----------| +| 张大师 | 3 CNY | wechat | 2024-12-26 | | * TUYA | 8 CNY | alipay | 2024-12-24 | | Q*L | 1.66 CNY | wechat | 2024-12-22 | | 白巧克力 | 10 CNY | wechat | 2024-12-22 | diff --git a/images/6_2_version.png b/images/6_2_version.png new file mode 100644 index 0000000..8f77430 Binary files /dev/null and b/images/6_2_version.png differ diff --git a/images/latest_version.png b/images/latest_version.png index 8f77430..a077b10 100644 Binary files a/images/latest_version.png and b/images/latest_version.png differ