void GatherInfoTask::checkRequirements() { if (!isValidBranch() && !handleInvalidBranch()) return; MCFBranch branch = getMcfBranch(); UserCore::Item::BranchInfoI* branchInfo = getItemHandle()->getItemInfo()->getBranchById(branch); if (!checkNullBranch(branchInfo)) return; if (m_bCanceled) { completeStage(); return; } if (branchInfo->isPreOrderAndNotPreload()) { //show the preorder prompt getItemHandle()->getInternal()->goToStageLaunch(); return; } uint32 res = validate(); #ifdef NIX UserCore::Item::Helper::TOOL tool = (UserCore::Item::Helper::TOOL)(res>>28); //check tool deps if ( (tool > 0) && (!m_pGIHH || !m_pGIHH->showToolPrompt(tool)) ) { completeStage(); return; } res = (res<<4)>>4; #endif if (res == 0) { getItemHandle()->getItemInfo()->addToAccount(); getItemHandle()->getInternal()->goToStageDownload(branch, getMcfBuild(), HasAnyFlags(m_uiFlags, GI_FLAG_TEST)); } else { if (res == UserCore::Item::Helper::V_NONEMPTY) { if (HasAnyFlags(m_uiFlags, GI_FLAG_UPDATE)) { getItemHandle()->getInternal()->goToStageDownload(branch, getMcfBuild(), false); } else if (getItemHandle()->getItemInfo()->getStatus() & UserCore::Item::ItemInfoI::STATUS_INSTALLCOMPLEX) { if (!m_bCanceled && m_pGIHH && m_pGIHH->showComplexPrompt()) getItemHandle()->getInternal()->goToStageDownload(branch, getMcfBuild(), HasAnyFlags(m_uiFlags, GI_FLAG_TEST)); else resetStage(); } else { UserCore::Item::Helper::ACTION promptRes = UserCore::Item::Helper::C_NONE; if (!m_bCanceled && m_pGIHH) promptRes = m_pGIHH->showInstallPrompt(getItemHandle()->getItemInfo()->getPath(getMcfBranch())); switch (promptRes) { case UserCore::Item::Helper::C_REMOVE: getItemInfo()->addOFlag(UserCore::Item::ItemInfoI::OPTION_REMOVEFILES); case UserCore::Item::Helper::C_INSTALL: getItemInfo()->addToAccount(); getItemHandle()->getInternal()->goToStageDownload(branch, getMcfBuild(), HasAnyFlags(m_uiFlags, GI_FLAG_TEST)); break; case UserCore::Item::Helper::C_VERIFY: getItemInfo()->addToAccount(); getItemInfo()->addSFlag(UserCore::Item::ItemInfoI::STATUS_INSTALLED); getItemInfo()->setInstalledMcf(branch, getMcfBuild()); getItemHandle()->getInternal()->goToStageVerify(branch, getMcfBuild(), true, true, true); break; default: resetStage(); break; } } } else { if (m_bCanceled || !m_pGIHH || m_pGIHH->showError(res)) { resetStage(); } else { getItemHandle()->getItemInfo()->addToAccount(); getItemHandle()->getInternal()->goToStageDownload(branch, getMcfBuild(), HasAnyFlags(m_uiFlags, GI_FLAG_TEST)); } } } }
void MyLog::updateStage(std::string stage){ resetStage(); setStage(stage); }