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::handleInternalLink(DesuraId id, uint8 action, const std::vector<std::string> &argsList) { if (g_pMainApp->isOffline() && action != ACTION_LAUNCH) return; Args args(argsList); bool handled = true; switch (action) { case ACTION_UPLOAD : uploadMCF( id ); break; case ACTION_CREATE : createMCF( id ); break; case ACTION_RESUPLOAD : resumeUploadMCF( id, args ); break; #ifdef WIN32 case ACTION_INSTALLEDW : installedWizard(); break; #endif case ACTION_SHOWSETTINGS: showSettings(args); break; case ACTION_APPUPDATELOG: showUpdateLogApp( id.getItem() ); break; case ACTION_PAUSE : setPauseItem( id , true ); break; case ACTION_UNPAUSE : setPauseItem( id , false ); break; case ACTION_UNINSTALL : uninstallMCF( id ); break; case ACTION_PROMPT : showPrompt(id, args); break; case ACTION_UPDATELOG : showUpdateLog(id); break; case ACTION_DISPCDKEY : showCDKey(id, args); break; default: handled = false; break; } if (handled || checkForm(id)) return; switch (action) { case ACTION_INSTALL : installItem(id, args); break; case ACTION_LAUNCH : launchItem(id, args); break; case ACTION_VERIFY : verifyItem(id, args); break; case ACTION_UPDATE : updateItem(id, args); break; case ACTION_TEST : installTestMCF(id, args); break; case ACTION_INSCHECK : installCheck(id); break; case ACTION_SHOWUPDATE : showUpdateForm(id, args); break; case ACTION_SWITCHBRANCH: switchBranch(id, args); break; case ACTION_CLEANCOMPLEXMOD: cleanComplexMod(id); break; default: Warning(gcString("Unknown internal link {0} for item {1}\n.", (uint32)action, id.toInt64())); break; } }
void InternalLink::showPrompt(DesuraId id, LinkArgs args) { std::string prompt = args.getArgValue("prompt"); gcRefPtr<UserCore::Item::ItemInfoI> item = GetUserCore()->getItemManager()->findItemInfo( id ); if (prompt == "update") { args.push_back("reminder=true"); showUpdateForm(id, args); } 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); } else if (prompt == "needtorunfirst") { std::string parentId = args.getArgValue("parentid"); DesuraId pid(parentId.c_str(), "games"); showNeedToRun(id, pid); } else { gcAssert(false); } }