OpenTween.FilterDialog.ButtonRuleCopy_Click C# (CSharp) Method

ButtonRuleCopy_Click() private method

private ButtonRuleCopy_Click ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void
        private void ButtonRuleCopy_Click(object sender, EventArgs e)
        {
            if (ListTabs.SelectedIndex > -1 && ListFilters.SelectedItem != null)
            {
                TabModel[] selectedTabs;
                using (TabsDialog dialog = new TabsDialog(_sts))
                {
                    dialog.MultiSelect = true;
                    dialog.Text = Properties.Resources.ButtonRuleCopy_ClickText1;

                    if (dialog.ShowDialog(this) == DialogResult.Cancel) return;

                    selectedTabs = dialog.SelectedTabs;
                }

                string tabname = ListTabs.SelectedItem.ToString();
                List<PostFilterRule> filters = new List<PostFilterRule>();

                foreach (int idx in ListFilters.SelectedIndices)
                {
                    var tab = (FilterTabModel)_sts.Tabs[tabname];
                    filters.Add(tab.FilterArray[idx].Clone());
                }
                foreach (var tb in selectedTabs.Cast<FilterTabModel>())
                {
                    if (tb.TabName == tabname) continue;

                    foreach (PostFilterRule flt in filters)
                    {
                        if (!tb.FilterArray.Contains(flt))
                            tb.AddFilter(flt.Clone());
                    }
                }
                SetFilters(tabname);
            }
        }