OSDN Git Service

C# 8.0 のnull許容参照型を有効化
[opentween/open-tween.git] / OpenTween / FilterDialog.cs
index 48c7941..845e5ca 100644 (file)
@@ -24,6 +24,8 @@
 // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
 // Boston, MA 02110-1301, USA.
 
+#nullable enable
+
 using System;
 using System.Collections.Generic;
 using System.ComponentModel;
@@ -89,7 +91,7 @@ namespace OpenTween
         }
         private EnableButtonMode _ruleEnableButtonMode = FilterDialog.EnableButtonMode.NotSelected;
 
-        public TabModel SelectedTab
+        public TabModel? SelectedTab
             => this.selectedTabIndex != -1 ? this.tabs[this.selectedTabIndex] : null;
 
         public FilterDialog()
@@ -427,7 +429,7 @@ namespace OpenTween
             if (rslt == DialogResult.Cancel) return;
 
             var indices = ListFilters.SelectedIndices.Cast<int>().Reverse().ToArray();  // 後ろの要素から削除
-            var tab = (FilterTabModel)this.SelectedTab;
+            var tab = (FilterTabModel)this.SelectedTab!;
 
             using (ControlTransaction.Update(ListFilters))
             {
@@ -633,7 +635,7 @@ namespace OpenTween
                 return;
             }
 
-            var tab = (FilterTabModel)this.SelectedTab;
+            var tab = (FilterTabModel)this.SelectedTab!;
             var i = ListFilters.SelectedIndex;
 
             PostFilterRule ft;
@@ -914,9 +916,9 @@ namespace OpenTween
             if (e.KeyCode == Keys.Escape)
             {
                 if (EditFilterGroup.Enabled)
-                    ButtonCancel_Click(null, null);
+                    ButtonCancel_Click(this.ButtonCancel, EventArgs.Empty);
                 else
-                    ButtonClose_Click(null, null);
+                    ButtonClose_Click(this.ButtonClose, EventArgs.Empty);
             }
         }
 
@@ -966,15 +968,16 @@ namespace OpenTween
         {
             this.selectedTabIndex = this.ListTabs.SelectedIndex;
 
-            if (ListTabs.SelectedIndex > -1)
-                SetFilters(this.SelectedTab);
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
+                SetFilters(selectedTab);
             else
                 ListFilters.Items.Clear();
         }
 
         private async void ButtonAddTab_Click(object sender, EventArgs e)
         {
-            string tabName = null;
+            string? tabName = null;
             MyCommon.TabUsageType tabType;
             using (var inputName = new InputTabName())
             {
@@ -988,7 +991,7 @@ namespace OpenTween
             if (!string.IsNullOrEmpty(tabName))
             {
                 //List対応
-                ListElement list = null;
+                ListElement? list = null;
                 if (tabType == MyCommon.TabUsageType.Lists)
                 {
                     try
@@ -1026,7 +1029,7 @@ namespace OpenTween
                         tab = new PublicSearchTabModel(tabName);
                         break;
                     case MyCommon.TabUsageType.Lists:
-                        tab = new ListTimelineTabModel(tabName, list);
+                        tab = new ListTimelineTabModel(tabName, list!);
                         break;
                     default:
                         return;
@@ -1048,9 +1051,10 @@ namespace OpenTween
 
         private void ButtonDeleteTab_Click(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
-                var tb = this.SelectedTab.TabName;
+                var tb = selectedTab.TabName;
                 var idx = ListTabs.SelectedIndex;
                 if (((TweenMain)this.Owner).RemoveSpecifiedTab(tb, true))
                 {
@@ -1064,9 +1068,10 @@ namespace OpenTween
 
         private void ButtonRenameTab_Click(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
-                var origTabName = this.SelectedTab.TabName;
+                var origTabName = selectedTab.TabName;
                 if (((TweenMain)this.Owner).TabRename(origTabName, out _))
                     this.RefreshListTabs();
             }
@@ -1074,10 +1079,11 @@ namespace OpenTween
 
         private void CheckManageRead_CheckedChanged(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
                 ((TweenMain)this.Owner).ChangeTabUnreadManage(
-                    this.SelectedTab.TabName,
+                    selectedTab.TabName,
                     CheckManageRead.Checked);
             }
         }
@@ -1130,28 +1136,31 @@ namespace OpenTween
 
         private void CheckLocked_CheckedChanged(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
-                this.SelectedTab.Protected = CheckProtected.Checked;
+                selectedTab.Protected = CheckProtected.Checked;
                 ButtonDeleteTab.Enabled = !CheckProtected.Checked;
             }
         }
 
         private void CheckNotifyNew_CheckedChanged(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
-                this.SelectedTab.Notify = CheckNotifyNew.Checked;
+                selectedTab.Notify = CheckNotifyNew.Checked;
             }
         }
 
         private void ComboSound_SelectedIndexChanged(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null)
             {
                 var filename = "";
                 if (ComboSound.SelectedIndex > -1) filename = ComboSound.SelectedItem.ToString();
-                this.SelectedTab.SoundFile = filename;
+                selectedTab.SoundFile = filename;
             }
         }
 
@@ -1174,9 +1183,9 @@ namespace OpenTween
 
         private void MoveSelectedRules(bool up)
         {
-            var tabIdx = ListTabs.SelectedIndex;
-            if (tabIdx == -1 ||
-                ListFilters.SelectedIndices.Count == 0) return;
+            var selectedTab = this.SelectedTab;
+            if (selectedTab == null || ListFilters.SelectedIndices.Count == 0)
+                return;
 
             var indices = ListFilters.SelectedIndices.Cast<int>().ToArray();
 
@@ -1194,7 +1203,7 @@ namespace OpenTween
             }
 
             var lastSelIdx = indices[0] + diff;
-            var tab = (FilterTabModel)this.SelectedTab;
+            var tab = (FilterTabModel)selectedTab;
 
             try
             {
@@ -1255,9 +1264,10 @@ namespace OpenTween
 
         private void ButtonRuleCopy_Click(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1 && ListFilters.SelectedItem != null)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null && ListFilters.SelectedItem != null)
             {
-                TabModel[] selectedTabs;
+                TabModel[] destinationTabs;
                 using (var dialog = new TabsDialog(_sts))
                 {
                     dialog.MultiSelect = true;
@@ -1265,17 +1275,17 @@ namespace OpenTween
 
                     if (dialog.ShowDialog(this) == DialogResult.Cancel) return;
 
-                    selectedTabs = dialog.SelectedTabs;
+                    destinationTabs = dialog.SelectedTabs;
                 }
 
-                var currentTab = (FilterTabModel)this.SelectedTab;
+                var currentTab = (FilterTabModel)selectedTab;
                 var filters = new List<PostFilterRule>();
 
                 foreach (int idx in ListFilters.SelectedIndices)
                 {
                     filters.Add(currentTab.FilterArray[idx].Clone());
                 }
-                foreach (var tb in selectedTabs.Cast<FilterTabModel>())
+                foreach (var tb in destinationTabs.Cast<FilterTabModel>())
                 {
                     if (tb.TabName == currentTab.TabName) continue;
 
@@ -1285,15 +1295,16 @@ namespace OpenTween
                             tb.AddFilter(flt.Clone());
                     }
                 }
-                SetFilters(this.SelectedTab);
+                SetFilters(selectedTab);
             }
         }
 
         private void ButtonRuleMove_Click(object sender, EventArgs e)
         {
-            if (ListTabs.SelectedIndex > -1 && ListFilters.SelectedItem != null)
+            var selectedTab = this.SelectedTab;
+            if (selectedTab != null && ListFilters.SelectedItem != null)
             {
-                TabModel[] selectedTabs;
+                TabModel[] destinationTabs;
                 using (var dialog = new TabsDialog(_sts))
                 {
                     dialog.MultiSelect = true;
@@ -1301,17 +1312,17 @@ namespace OpenTween
 
                     if (dialog.ShowDialog(this) == DialogResult.Cancel) return;
 
-                    selectedTabs = dialog.SelectedTabs;
+                    destinationTabs = dialog.SelectedTabs;
                 }
-                var currentTab = (FilterTabModel)this.SelectedTab;
+                var currentTab = (FilterTabModel)selectedTab;
                 var filters = new List<PostFilterRule>();
 
                 foreach (int idx in ListFilters.SelectedIndices)
                 {
                     filters.Add(currentTab.FilterArray[idx].Clone());
                 }
-                if (selectedTabs.Length == 1 && selectedTabs[0].TabName == currentTab.TabName) return;
-                foreach (var tb in selectedTabs.Cast<FilterTabModel>())
+                if (destinationTabs.Length == 1 && destinationTabs[0].TabName == currentTab.TabName) return;
+                foreach (var tb in destinationTabs.Cast<FilterTabModel>())
                 {
                     if (tb.TabName == currentTab.TabName) continue;
 
@@ -1329,7 +1340,7 @@ namespace OpenTween
                         ListFilters.Items.RemoveAt(idx);
                     }
                 }
-                SetFilters(this.SelectedTab);
+                SetFilters(selectedTab);
             }
         }