private void ButtonAdd_Click(object sender, EventArgs e) { if (IsSelected) { SelectedRule.ImporterGuid = (comboImpoetPlugins.SelectedItem as IImportPlugin).Guid; listExtensionRules.Items[listExtensionRules.SelectedIndices[0]].SubItems[1].Text = Host.ImportPlugins.Find(i => i.Guid == SelectedRule.ImporterGuid)?.Name ?? SelectedRule.ImporterGuid.ToString().ToUpper(); } else { ExtensionRule rule = new ExtensionRule(GetExt(textExtension.Text), (comboImpoetPlugins.SelectedItem as IImportPlugin).Guid); listExtensionRules.Items.Add(new ListViewItem(new string[] { rule.Extension, Host.ImportPlugins.Find(i => i.Guid == rule.ImporterGuid)?.Name ?? rule.ImporterGuid.ToString().ToUpper() }) { Tag = rule }); ExtensionRules.Add(rule); } textExtension.Text = null; }
private void Save(string fileName) { PropertyInfo[] pil = GetType().GetProperties(); using StreamWriter sw = new StreamWriter(fileName); foreach (PropertyInfo pi in pil) { if (pi.PropertyType.IsEnum) { sw.WriteLine($"{pi.Name}\t{(int)pi.GetValue(this, null)}"); } else if (Type.GetTypeCode(pi.PropertyType) != TypeCode.Object) { sw.WriteLine($"{pi.Name}\t{pi.GetValue(this, null)}"); } else { if (pi.PropertyType == StatusItems.GetType()) { foreach (var si in (List <StatusItem>)pi.GetValue(this, null)) { sw.WriteLine($"{pi.Name}\t{si}"); } } else if (pi.PropertyType == ExtensionRules.GetType()) { foreach (var si in (List <ExtensionRule>)pi.GetValue(this, null)) { sw.WriteLine($"{pi.Name}\t{si.Extension}\t{si.PlayMethod}"); } } else { sw.WriteLine($"{pi.Name}\t{pi.GetValue(this, null)}"); } } } }
private void ButtonRemove_Click(object sender, EventArgs e) { ExtensionRules.Remove(SelectedRule); listExtensionRules.Items.Remove(listExtensionRules.Items[listExtensionRules.SelectedIndices[0]]); }