void InternalLink::showPrompt(DesuraId id, Args args) { std::string prompt = args.getArgValue("prompt"); UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (prompt == "update") { std::vector<std::string> a; a.push_back("reminder=true"); showUpdateForm(id, Args(a)); } else if (prompt == "launch") { LaunchItemDialog* form = new LaunchItemDialog(m_pParent); regForm(id, form); form->setInfo(item); form->Show(true); form->Raise(); } else if (prompt == "eula") { showEULA(id); } else if (prompt == "preload") { showPreorderPrompt(id, true); } }
void InternalLink::installItem(DesuraId id, Args args) { std::string branch = args.getArgValue("branch"); std::string global = args.getArgValue("global"); MCFBranch iBranch; if (branch == "shortcut" || global == "shortcut") { iBranch = MCFBranch::BranchFromInt(-1); } else if (global.size() > 0) { iBranch = MCFBranch::BranchFromInt(Safe::atoi(global.c_str()), true); } else { iBranch = MCFBranch::BranchFromInt(Safe::atoi(branch.c_str())); } g_pMainApp->showPlay(); if (iBranch == 0 && !args.containsArg("skippreorder") && checkForPreorder(id)) return; UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_INSTALL, iBranch); if (!form) Warning(gcString("Cant find item (or item not ready) for install [{0}].\n", id.toInt64())); }
void InternalLink::resumeUploadMCF(DesuraId id, Args args) { std::string key = args.getArgValue("key"); std::string uid = args.getArgValue("uid"); UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item && !GetUserCore()->isAdmin()) { //cant upload show prompt gcMessageBox(g_pMainApp->getMainWindow(), Managers::GetString(L"#MF_NONDEV_ERROR"), Managers::GetString(L"#MF_PERMISSION_ERRTITLE")); return; } //create new create from UploadMCFForm* form = new UploadMCFForm(m_pParent); if (!key.empty()) form->setInfo_key(id, key.c_str()); else if (!uid.empty()) form->setInfo_uid(id, uid.c_str()); else form->setInfo(id); form->Show(true); form->Raise(); form->run(); m_vSubForms.push_back(form); }
void InternalLink::updateItem(DesuraId id, Args args) { bool show = args.containsArg("show") && args.getArgValue("show") == "true"; UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_UPDATE, show); if (!form) Warning(gcString("Cant find item (or item not ready) for update [{0}].\n", id.toInt64())); }
void InternalLink::installTestMCF(DesuraId id, Args args) { std::string branch = args.getArgValue("branch"); std::string build = args.getArgValue("build"); MCFBranch iBranch; MCFBuild iBuild ; if (branch.size() > 0) iBranch = MCFBranch::BranchFromInt(Safe::atoi(branch.c_str())); if (build.size() > 0) iBuild = MCFBuild::BuildFromInt(Safe::atoi(build.c_str())); UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_INSTALL_TESTMCF, iBranch, iBuild); if (!form) Warning(gcString("Cant find item (or item not ready) for install test mcf [{0}].\n", id.toInt64())); }
void InternalLink::verifyItem(DesuraId id, Args args) { bool showForm = args.getArgValue("show") != "false"; UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_VERIFY, showForm); if (!form) Warning(gcString("Cant find item (or item not ready) for verify [{0}].\n", id.toInt64())); else if (showForm == false) form->Show(false); }
void InternalLink::showCDKey(DesuraId id, Args args) { FINDFORM(id, CDKeyForm); UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item) { Warning(gcString("Cant find item for show cd key [{0}].\n", id.toInt64())); return; } std::string launch = args.getArgValue("launch"); std::string exe = args.getArgValue("exe"); CDKeyForm* form = new CDKeyForm(m_pParent, exe.c_str(), launch == "true"); m_vSubForms.push_back(form); form->setInfo(id); form->Show(true); }
void InternalLink::switchBranch(DesuraId id, Args args) { std::string branch = args.getArgValue("branch"); if (branch.size() == 0) return; MCFBranch iBranch = MCFBranch::BranchFromInt(Safe::atoi(branch.c_str())); if (iBranch == 0) return; UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_SWITCH_BRANCH, iBranch); if (!form) Warning(gcString("Cant find item (or item not ready) for uninstall [{0}].\n", id.toInt64())); }
void InternalLink::showUpdateForm(DesuraId id, Args args) { UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item) return; if (!HasAllFlags(item->getStatus(), UserCore::Item::ItemInfoI::STATUS_UPDATEAVAL)) return; std::string reminder = args.getArgValue("reminder"); //create new gather info form from UpdateInfoForm* form = new UpdateInfoForm(m_pParent); regForm(id, form); form->setInfo(id, reminder == "true"); form->Show(true); }
void InternalLink::showSettings(Args &args) { gcString c(GetGCThemeManager()->getWebPage("settings")); if (args.containsArg("tab")) { gcString tab = args.getArgValue("tab"); if (tab == "cip") tab = "games"; c += "#" + tab; } else { c += "#general"; } g_pMainApp->loadUrl(c.c_str(), SUPPORT); }
void InternalLink::launchItem(DesuraId id, Args args) { bool cdKeyArg = args.containsArg("cdkey"); bool noUpdateArg = args.containsArg("noupdate"); bool exeNumArg = args.containsArg("exe"); std::string exe = args.getArgValue("exe"); if (exe == "") exeNumArg = false; g_pMainApp->showPlay(); if (checkForPreorder(id)) return; UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo(id); bool delFlag=false; if (!item || !item->isLaunchable()) { installItem(id, Args()); return; } if (!item->hasAcceptedEula()) { showPrompt(id, FormatArgs("prompt=eula")); return; } if (!exeNumArg && item->getExeCount(true) > 1) { showExeSelect(id, cdKeyArg); return; } else if (exe.size() > 0) { item->setActiveExe(exe.c_str()); } bool hasCDKey = item->getCurrentBranch() && item->getCurrentBranch()->hasCDKey(); bool hasDLCDKey = item->getCurrentBranch() && item->getCurrentBranch()->isCDKeyValid(); if (!cdKeyArg && ((item->isFirstLaunch() && hasCDKey) || (hasCDKey && !hasDLCDKey))) { showCDKey(id, FormatArgs("launch=true", std::string("exe=") + exe)); return; } bool shouldShowGameDisk = false; if (args.containsArg("gamedisk") == false && HasAnyFlags(item->getOptions(), UserCore::Item::ItemInfoI::OPTION_DONTPROMPTGAMEDISK) == false) { size_t x=0; while (g_GameDiskList[x].isOk()) { if (item->getId() == g_GameDiskList[x] || item->getParentId() == g_GameDiskList[x]) { shouldShowGameDisk = true; break; } x++; } } if (shouldShowGameDisk) { showGameDisk(id, exe.c_str(), cdKeyArg); return; } if (noUpdateArg && !HasAnyFlags(item->getOptions(), UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE)) { item->addOFlag(UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE); delFlag = true; } UI::Forms::ItemForm* form = showItemForm(id, UI::Forms::INSTALL_ACTION::IA_LAUNCH); if (!form) Warning(gcString("Cant find item (or item not ready) for launch [{0}].\n", id.toInt64())); if (item && delFlag) item->delOFlag(UserCore::Item::ItemInfoI::OPTION_NOTREMINDUPDATE); }