OSDN Git Service

HashTagManageで複数ハッシュタグを選択した状態での削除が正しく動作しない不具合を修正 (thx @Tan90909090!)
authorKimura Youichi <kim.upsilon@bucyou.net>
Sun, 11 Oct 2015 16:29:49 +0000 (01:29 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sun, 11 Oct 2015 13:56:30 +0000 (22:56 +0900)
https://twitter.com/Tan90909090/status/653023872946565120

OpenTween.Tests/HashtagManageTest.cs
OpenTween/HashtagManage.cs
OpenTween/Resources/ChangeLog.txt

index 2a37ee8..4a2fef8 100644 (file)
@@ -205,6 +205,26 @@ namespace OpenTween
         }
 
         [Fact]
+        public void DeleteHashtag_MultipleTest()
+        {
+            var hashtags = new[] { "#foo", "#bar", "#baz" };
+
+            using (var atDialog = new AtIdSupplement())
+            using (var hashDialog = new HashtagManage(atDialog, hashtags, "", false, false, false))
+            {
+                hashDialog.RunSilent = true;
+
+                hashDialog.HistoryHashList.SelectedIndices.Add(2);
+                hashDialog.HistoryHashList.SelectedIndices.Add(1);
+
+                TestUtils.FireEvent(hashDialog.DeleteButton, "Click"); // 「削除(&D)」ボタン
+
+                Assert.Equal(new[] { "#foo" }, hashDialog.HistoryHashList.Items.Cast<string>());
+                Assert.Equal(new[] { "#foo" }, hashDialog.HashHistories);
+            }
+        }
+
+        [Fact]
         public void DeleteHashtag_NotSelectTest()
         {
             var hashtags = new[] { "#foo", "#bar" };
index 1a8fe91..da1c67f 100644 (file)
@@ -95,10 +95,15 @@ namespace OpenTween
             {
                 return;
             }
-            for (int i = 0; i < HistoryHashList.SelectedIndices.Count; i++)
+
+            // 削除によってインデックス番号が変わらないように逆順に処理する
+            var selectedIndices = this.HistoryHashList.SelectedIndices.Cast<int>()
+                .OrderByDescending(x => x).ToArray();
+
+            foreach (var idx in selectedIndices)
             {
-                if (UseHashText.Text == HistoryHashList.SelectedItems[0].ToString()) UseHashText.Text = "";
-                HistoryHashList.Items.RemoveAt(HistoryHashList.SelectedIndices[0]);
+                if (UseHashText.Text == HistoryHashList.Items[idx].ToString()) UseHashText.Text = "";
+                HistoryHashList.Items.RemoveAt(idx);
             }
             if (HistoryHashList.Items.Count > 0)
             {
index 1fd6edd..bc79193 100644 (file)
@@ -6,6 +6,7 @@
  * FIX: Home/Endキーの直後に左右キーを押すと以前の選択ツイートの関連発言に移動してしまう不具合を修正 (thx @coookien!)
  * FIX: 発言詳細部のコンテキストメニューからURLのコピーを実行すると「&」が「&amp;」としてコピーされる不具合を修正 (thx @pO_0q!)
  * FIX: タイムラインの流速が速い時に発言一覧のスクロールバーがちらつく現象を修正
+ * FIX: ハッシュタグ設定画面で複数のハッシュタグを選択して削除する機能が正しく動作しない不具合を修正 (thx @Tan90909090!)
 
 ==== Ver 1.2.9(2015/09/23)
  * NEW: ウィンドウ最大化中でも発言詳細部やサムネイルの幅の変更が設定に保存されるようしました