if(!updateInfo[0].isEmpty()||!updateInfo[1].isEmpty()||!updateInfo[2].isEmpty()||!updateInfo[3].isEmpty()){// no need to check updateInfo[4], it will only ever contain security updates already listed in updateInfo[1]
// Yes, we do intentionally use updateInfo[1], then updateInfo[0], then updateInfo[2]. The updateInfo array is populated in a different order than the one we display in.
trayIcon->showMessage("",
QString("Updates available!\n\n%1 to upgrade, %2 to install, and %3 to remove.\n\nClick the tray icon to install the updates.")
// We can't clear the updateInfo list directly as MainWindow::setUpdateInfo requires that it contains five inner lists (even if those lists are all empty).