• R/O
  • HTTP
  • SSH
  • HTTPS

open-tween: 提交

開発に使用するリポジトリ


Commit MetaInfo

修訂aca0e34d49ee7f7c8e896b093e1e70c740b9ef90 (tree)
時間2022-09-03 01:22:30
作者Kimura Youichi <kim.upsilon@bucy...>
CommiterKimura Youichi

Log Message

Merge branch 'develop' into release

Change Summary

差異

--- a/.editorconfig
+++ b/.editorconfig
@@ -1,3 +1,8 @@
1+[*.csproj]
2+indent_style = space
3+indent_size = 2
4+tab_width = 2
5+
16 [*.cs]
27 indent_style = space
38 tab_width = 4
--- a/OpenTween.Tests/OpenTween.Tests.csproj
+++ b/OpenTween.Tests/OpenTween.Tests.csproj
@@ -40,6 +40,7 @@
4040 <PrivateAssets>all</PrivateAssets>
4141 <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
4242 </PackageReference>
43+ <PackageReference Include="Xunit.StaFact" Version="1.1.11" />
4344 </ItemGroup>
4445 <ItemGroup>
4546 <None Update="Resources\re.gif">
--- a/OpenTween.Tests/TweetThumbnailTest.cs
+++ b/OpenTween.Tests/TweetThumbnailTest.cs
@@ -104,7 +104,7 @@ namespace OpenTween
104104 MyCommon.EntryAssembly = mockAssembly.Object;
105105 }
106106
107- [Fact]
107+ [WinFormsFact]
108108 public void CreatePictureBoxTest()
109109 {
110110 using var thumbBox = new TweetThumbnail();
@@ -121,7 +121,7 @@ namespace OpenTween
121121 picbox.Dispose();
122122 }
123123
124- [Fact]
124+ [WinFormsFact]
125125 public async Task CancelAsyncTest()
126126 {
127127 var post = new PostClass
@@ -138,7 +138,6 @@ namespace OpenTween
138138
139139 using var tokenSource = new CancellationTokenSource();
140140
141- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
142141 var task = thumbbox.ShowThumbnailAsync(post, tokenSource.Token);
143142
144143 tokenSource.Cancel();
@@ -147,7 +146,7 @@ namespace OpenTween
147146 Assert.True(task.IsCanceled);
148147 }
149148
150- [Theory]
149+ [WinFormsTheory]
151150 [InlineData(0)]
152151 [InlineData(1)]
153152 [InlineData(2)]
@@ -178,7 +177,7 @@ namespace OpenTween
178177 Assert.Equal(count - 1, thumbbox.scrollBar.Maximum);
179178 }
180179
181- [Fact]
180+ [WinFormsFact]
182181 public async Task ShowThumbnailAsyncTest()
183182 {
184183 var post = new PostClass
@@ -193,7 +192,6 @@ namespace OpenTween
193192 using var thumbbox = new TweetThumbnail();
194193 thumbbox.Initialize(this.CreateThumbnailGenerator());
195194
196- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
197195 await thumbbox.ShowThumbnailAsync(post);
198196
199197 Assert.Equal(0, thumbbox.scrollBar.Maximum);
@@ -211,7 +209,7 @@ namespace OpenTween
211209 Assert.Equal("", thumbbox.toolTip.GetToolTip(thumbbox.PictureBox[0]));
212210 }
213211
214- [Fact]
212+ [WinFormsFact]
215213 public async Task ShowThumbnailAsyncTest2()
216214 {
217215 var post = new PostClass
@@ -227,7 +225,6 @@ namespace OpenTween
227225 using var thumbbox = new TweetThumbnail();
228226 thumbbox.Initialize(this.CreateThumbnailGenerator());
229227
230- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
231228 await thumbbox.ShowThumbnailAsync(post);
232229
233230 Assert.Equal(1, thumbbox.scrollBar.Maximum);
@@ -253,14 +250,12 @@ namespace OpenTween
253250 Assert.Equal("efgh", thumbbox.toolTip.GetToolTip(thumbbox.PictureBox[1]));
254251 }
255252
256- [Fact]
253+ [WinFormsFact]
257254 public async Task ThumbnailLoadingEventTest()
258255 {
259256 using var thumbbox = new TweetThumbnail();
260257 thumbbox.Initialize(this.CreateThumbnailGenerator());
261258
262- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
263-
264259 var post = new PostClass
265260 {
266261 TextFromApi = "てすと",
@@ -274,8 +269,6 @@ namespace OpenTween
274269 () => thumbbox.ShowThumbnailAsync(post)
275270 );
276271
277- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
278-
279272 var post2 = new PostClass
280273 {
281274 TextFromApi = "てすと http://foo.example.com/abcd",
@@ -292,7 +285,7 @@ namespace OpenTween
292285 );
293286 }
294287
295- [Fact]
288+ [WinFormsFact]
296289 public async Task ScrollTest()
297290 {
298291 var post = new PostClass
@@ -308,7 +301,6 @@ namespace OpenTween
308301 using var thumbbox = new TweetThumbnail();
309302 thumbbox.Initialize(this.CreateThumbnailGenerator());
310303
311- SynchronizationContext.SetSynchronizationContext(new SynchronizationContext());
312304 await thumbbox.ShowThumbnailAsync(post);
313305
314306 Assert.Equal(0, thumbbox.scrollBar.Minimum);
--- a/OpenTween/Api/MicrosoftTranslatorApi.cs
+++ b/OpenTween/Api/MicrosoftTranslatorApi.cs
@@ -128,7 +128,8 @@ namespace OpenTween.Api
128128 using var response = await this.Http.SendAsync(request)
129129 .ConfigureAwait(false);
130130
131- response.EnsureSuccessStatusCode();
131+ if (!response.IsSuccessStatusCode)
132+ throw new WebApiException(response.StatusCode.ToString());
132133
133134 var accessToken = await response.Content.ReadAsStringAsync()
134135 .ConfigureAwait(false);
--- a/OpenTween/ImageCache.cs
+++ b/OpenTween/ImageCache.cs
@@ -91,25 +91,21 @@ namespace OpenTween
9191
9292 return Task.Run(() =>
9393 {
94+ Task<MemoryImage>? cachedImageTask;
9495 lock (this.lockObject)
95- {
96- this.InnerDictionary.TryGetValue(address, out var cachedImageTask);
96+ this.InnerDictionary.TryGetValue(address, out cachedImageTask);
9797
98- if (cachedImageTask != null)
99- {
100- if (force)
101- this.InnerDictionary.Remove(address);
102- else
103- return cachedImageTask;
104- }
98+ if (cachedImageTask != null && !force)
99+ return cachedImageTask;
105100
106- cancelToken.ThrowIfCancellationRequested();
101+ cancelToken.ThrowIfCancellationRequested();
107102
108- var imageTask = this.FetchImageAsync(address, cancelToken);
103+ var imageTask = this.FetchImageAsync(address, cancelToken);
104+
105+ lock (this.lockObject)
109106 this.InnerDictionary[address] = imageTask;
110107
111- return imageTask;
112- }
108+ return imageTask;
113109 },
114110 cancelToken);
115111 }
--- a/OpenTween/OTPictureBox.cs
+++ b/OpenTween/OTPictureBox.cs
@@ -112,7 +112,7 @@ namespace OpenTween
112112 if (useStatusImage)
113113 this.ShowInitialImage();
114114
115- var image = await imageTask();
115+ var image = await Task.Run(imageTask);
116116
117117 if (id == this.currentImageTaskId)
118118 this.Image = image;
--- a/OpenTween/Properties/AssemblyInfo.cs
+++ b/OpenTween/Properties/AssemblyInfo.cs
@@ -22,7 +22,7 @@ using System.Runtime.InteropServices;
2222 // 次の GUID は、このプロジェクトが COM に公開される場合の、typelib の ID です
2323 [assembly: Guid("2d0ae0ba-adac-49a2-9b10-26fd69e695bf")]
2424
25-[assembly: AssemblyVersion("2.7.0.0")]
25+[assembly: AssemblyVersion("2.7.1.0")]
2626
2727 [assembly: InternalsVisibleTo("OpenTween.Tests")]
2828 [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] // for Moq
--- a/OpenTween/Properties/Resources.Designer.cs
+++ b/OpenTween/Properties/Resources.Designer.cs
@@ -571,6 +571,10 @@ namespace OpenTween.Properties {
571571 /// <summary>
572572 /// 更新履歴
573573 ///
574+ ///==== Ver 2.7.1(2022/09/03)
575+ /// * FIX: 発言一覧の選択位置を移動した際にデッドロックが発生する場合がある不具合を修正 (thx @Kazuki_Ashiya!)
576+ /// * FIX: 発言本文の翻訳時に発生したエラーが適切に処理されない不具合を修正
577+ ///
574578 ///==== Ver 2.7.0(2022/07/30)
575579 /// * NEW: 発言詳細部の日時ラベルをクリックするとWebブラウザを起動してツイートを表示する機能を追加
576580 /// * NEW: 設定画面に「Twitter API v2 の使用を有効にする」のチェックボックスを追加
@@ -578,11 +582,7 @@ namespace OpenTween.Properties {
578582 /// - Twitter の API キーを独自に書き換えている場合で、Project への移行を完了できていない等の理由で API v2 を使用できない時はチェックを外してください
579583 /// * CHG: 発言詳細部の名前ラベルを投稿者とRTしたユーザーで分けずに表示するように変更
580584 /// * FIX: タブの移動後に発言一覧が空の表示になる不具合を修正
581- /// * FIX: 読み込み中の待機ダイアログを表示する際にエラーが発生する不具合を修正
582- /// * FIX: Recentタブの読み込み時にエラーダイアログが表示される場合がある不具合を修正
583- /// * FIX: タブ名変更後にタイムラインを取得するとエラーが発生する不具合を修正
584- ///
585- ///==== Ver 2 [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
585+ /// * FIX: [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
586586 /// </summary>
587587 internal static string ChangeLog {
588588 get {
--- a/OpenTween/Resources/ChangeLog.txt
+++ b/OpenTween/Resources/ChangeLog.txt
@@ -1,5 +1,9 @@
11 更新履歴
22
3+==== Ver 2.7.1(2022/09/03)
4+ * FIX: 発言一覧の選択位置を移動した際にデッドロックが発生する場合がある不具合を修正 (thx @Kazuki_Ashiya!)
5+ * FIX: 発言本文の翻訳時に発生したエラーが適切に処理されない不具合を修正
6+
37 ==== Ver 2.7.0(2022/07/30)
48 * NEW: 発言詳細部の日時ラベルをクリックするとWebブラウザを起動してツイートを表示する機能を追加
59 * NEW: 設定画面に「Twitter API v2 の使用を有効にする」のチェックボックスを追加
--- a/OpenTween/TweetThumbnail.cs
+++ b/OpenTween/TweetThumbnail.cs
@@ -131,8 +131,8 @@ namespace OpenTween
131131 private string GetImageSearchUriSauceNao(string imageUri)
132132 => @"https://saucenao.com/search.php?url=" + Uri.EscapeDataString(imageUri);
133133
134- protected virtual Task<IEnumerable<ThumbnailInfo>> GetThumbailInfoAsync(PostClass post, CancellationToken token)
135- => this.ThumbGenerator.GetThumbnailsAsync(post, token);
134+ protected async virtual Task<IEnumerable<ThumbnailInfo>> GetThumbailInfoAsync(PostClass post, CancellationToken token)
135+ => await Task.Run(() => this.ThumbGenerator.GetThumbnailsAsync(post, token));
136136
137137 /// <summary>
138138 /// 表示するサムネイルの数を設定する
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -1,4 +1,4 @@
1-version: 2.6.0.{build}
1+version: 2.7.0.{build}
22
33 os: Visual Studio 2022
44
Show on old repository browser