public void deleteSelectedMods(bool suppressDialogs = false)
{
if (lsvMods.SelectedItems.Count > 0)
{
List<Mod> mods = new List<Mod>(Enumerable.Range(0, lsvMods.SelectedItems.Count)
.Select(index => (Mod)lsvMods.SelectedItems[index].Tag));
DialogResult result = DialogResult.No;
if (!suppressDialogs)
result = currentOwner.InvokeMessageBox("Are you sure you want to delete mod(s): " + Environment.NewLine + mods.Select(m => m.Name).Aggregate((i, j) => i + Environment.NewLine + j), "Delete mods?", MessageBoxButtons.YesNo);
if (result == DialogResult.Yes || suppressDialogs)
{
foreach (Mod m in mods)
{
if (m.Installed)
if (!suppressDialogs)
using (formDelete del = new formDelete(m.Name))
result = del.ShowDialog();
else
result = DialogResult.Yes;
switch (result)
{
case DialogResult.OK: //delete only
tryDelete(Paths.BACKUP + "\\" + m.Name.Replace(".zip", ".7z"));
break;
case DialogResult.Yes: //uninstall + delete
refreshModList(true, txtSearch.Text);
lsvMods.Items[lsvMods.Items.IndexOfKey(m.Name)].Checked = false;
inject(false, false, true);
break;
case DialogResult.Cancel:
return; //exit entire loop
}
tryDelete(m.Filename);
}
refreshModList(true, txtSearch.Text);
}
}
}