PackageActionList PackageManager::GetPackageActions(PackageInfoRef package, Model* model) { PackageActionList actionList; if (package->IsSystemPackage() || package->IsSystemDependency()) return actionList; int32 state = package->State(); if (state == ACTIVATED || state == INSTALLED) { actionList.Add(PackageActionRef(new UninstallPackageAction( package, model), true)); // Add OpenPackageActions for each deskbar link found in the // package DeskbarLinkList foundLinks; if (OpenPackageAction::FindAppToLaunch(package, foundLinks) && foundLinks.CountItems() < 4) { for (int32 i = 0; i < foundLinks.CountItems(); i++) { const DeskbarLink& link = foundLinks.ItemAtFast(i); actionList.Add(PackageActionRef(new OpenPackageAction( package, model, link), true)); } } } else if (state == NONE || state == UNINSTALLED) { actionList.Add(PackageActionRef(new InstallPackageAction(package, model), true)); } // TODO: activation status return actionList; }
PackageActionList PackageManager::GetPackageActions(PackageInfoRef package, Model* model) { PackageActionList actionList; if (package->IsSystemPackage() || package->IsSystemDependency()) return actionList; int32 state = package->State(); if (state == ACTIVATED || state == INSTALLED) { actionList.Add(PackageActionRef(new UninstallPackageAction( package, model), true)); } else { actionList.Add(PackageActionRef(new InstallPackageAction(package, model), true)); } // TODO: activation status return actionList; }