private void listViewMods_ItemChecked(object sender, ItemCheckedEventArgs e) { ModInfo mod = modFolders.mods[e.Item.Index]; if (e.Item.Checked && !mod.isInstalled) { mod.installQueued = true; } else { mod.installQueued = false; } if (!e.Item.Checked && mod.isInstalled) { mod.deinstallQueued = true; } else { mod.deinstallQueued = false; } }
// Timer private void timer_Tick(object sender, EventArgs e) { bool allWorkDone = true; bool allDownloadDone = true; bool allInstallDone = true; bool allDeinstallDone = true; for (int i = 0; i < modFolders.mods.Count; i++) { ModInfo mod = modFolders.mods[i]; if (mod.updateState != listViewMods.Items[i].SubItems[5].Text) { listViewMods.Items[i].SubItems[5].Text = mod.updateState; } if (mod.findQueued && !mod.isWorking) { LockButtons(); mod.FindWebsiteUri(); } else if (mod.checkQueued && !mod.isWorking) { LockButtons(); mod.CheckForUpdate(); } else if (mod.downloadQueued && !mod.isWorking && !modDownloadBusy) { LockButtons(); modDownloadBusy = true; mod.UpdateMod(); } else if (mod.deinstallQueued && !mod.isWorking && !modDeinstallBusy) { LockButtons(); modDeinstallBusy = true; mod.DeinstallMod(); } else if (mod.installQueued && !mod.isWorking && !modInstallBusy) { LockButtons(); modInstallBusy = true; mod.InstallMod(); } if (mod.downloadBusy) { allDownloadDone = false; } if (mod.installBusy) { allInstallDone = false; } if (mod.deinstallBusy) { allDeinstallDone = false; } if (mod.checkQueued || mod.downloadQueued || mod.findQueued || mod.installQueued || mod.deinstallQueued) { allWorkDone = false; } if (mod.updateList) { mod.updateList = false; if (selectedModIndex == i) { SetModFields(); } listViewMods.Items[i].SubItems[1].Text = mod.category; listViewMods.Items[i].SubItems[2].Text = mod.uriState; listViewMods.Items[i].SubItems[3].Text = mod.versionLocalNumeric; listViewMods.Items[i].SubItems[4].Text = mod.versionLatestNumeric; listViewMods.Items[i].SubItems[6].Text = mod.website1; listViewMods.Items[i].SubItems[7].Text = mod.website2; listViewMods.Items[i].SubItems[8].Text = mod.website3; listViewMods.Items[i].SubItems[9].Text = mod.website4; listViewMods.Items[i].SubItems[10].Text = mod.website5; } } if (allDownloadDone) { modDownloadBusy = false; } if (allInstallDone) { modInstallBusy = false; } if (allDeinstallDone) { modDeinstallBusy = false; } if (allWorkDone && action) { ReloadModlistview(); UnlockButtons(); } }