void InternalLink::onUploadTrigger(ut& info) { FINDFORM(info.id, UploadMCFForm); UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( info.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; } if (item && !HasAllFlags(item->getStatus(), UserCore::Item::ItemInfoI::STATUS_DEVELOPER) && !GetUserCore()->isAdmin()) { //cant upload show prompt gcMessageBox(g_pMainApp->getMainWindow(), Managers::GetString(L"#MF_UPERMISSION_ERROR"), Managers::GetString(L"#MF_PERMISSION_ERRTITLE")); return; } //create new create from UploadMCFForm* form = new UploadMCFForm(m_pParent); form->setInfo_path(info.id, info.path.c_str()); if (info.caller) { wxPoint pos = info.caller->GetScreenPosition(); form->SetPosition(pos); } form->Show(true); form->Raise(); form->run(); m_vSubForms.push_back(form); }
void PasswordReminder::onButtonClicked( wxCommandEvent& event ) { if (event.GetId() == m_butSend->GetId()) { if (!isEmailValid()) { gcMessageBox(this, Managers::GetString(L"#PR_VALIDEMAIL"), Managers::GetString(L"#PR_ERRTITLE")); return; } m_butSend->Enable(false); m_tbEmail->Enable(false); wxString str = m_tbEmail->GetValue(); gcString email((const wchar_t*)str.c_str()); m_pThread = new PassReminderThread(email.c_str()); m_pThread->onCompleteEvent += guiDelegate(this, &PasswordReminder::onComplete); m_pThread->onErrorEvent += guiDelegate(this, &PasswordReminder::onError); m_pThread->start(); } else { Close(); } }
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::createMCF(DesuraId id) { UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!GetUserCore()->isAdmin() && !item) { //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 CreateMCFForm* form = new CreateMCFForm(m_pParent); form->setInfo(id); form->onUploadTriggerEvent += delegate(this, &InternalLink::onUploadTrigger); form->Show(true); form->Raise(); form->run(); #ifdef NIX form->Raise(); #endif //m_wxCreateMCF_Form->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( MainForm::OnFrameClose ) ); m_vSubForms.push_back(form); }
void LoginForm::doLogin() { gcString user((const wchar_t*)m_tbUsername->GetValue().c_str()); gcString pass((const wchar_t*)m_tbPassword->GetValue().c_str()); if (user == "" || pass == "") { gcWString errMsg(L"{0}\n", Managers::GetString(L"#LF_VALDERROR")); if (user == "") errMsg += gcWString(L"\t{0}\n", Managers::GetString(L"#LF_ERRBLANKNAME")); if (pass == "") errMsg += gcWString(L"\t{0}\n", Managers::GetString(L"#LF_ERRPASSWORD")); errMsg += gcWString(L"\n{0}", Managers::GetString(L"#LF_ERRPLEASE")); gcMessageBox(this, errMsg, Managers::GetString(L"#LF_ERRTITLE")); return; } m_tbUsername->Disable(); m_tbPassword->Disable(); m_butSignin->Disable(); m_butCancel->Disable(); m_linkOffline->Disable(); m_linkNewAccount->Disable(); m_linkLostPassword->Disable(); Refresh(false); onStartLoginEvent(); }
void LoginForm::doLogin(gcString user, gcString pass) { ASSERT_UITHREAD(); if (user == "" || pass == "") { gcWString errMsg(L"{0}\n", Managers::GetString(L"#LF_VALDERROR")); if (user == "") errMsg += gcWString(L"\t{0}\n", Managers::GetString(L"#LF_ERRBLANKNAME")); if (pass == "") errMsg += gcWString(L"\t{0}\n", Managers::GetString(L"#LF_ERRPASSWORD")); errMsg += gcWString(L"\n{0}", Managers::GetString(L"#LF_ERRPLEASE")); gcMessageBox(this, errMsg, Managers::GetString(L"#LF_ERRTITLE")); return; } if (m_bDisabled) return; if (m_comboProvider) m_comboProvider->Disable(); m_butTwitter->Disable(); m_butSteam->Disable(); m_butFacebook->Disable(); m_butGoogle->Disable(); m_tbUsername->Disable(); m_tbPassword->Disable(); m_butSignin->Disable(); m_cbRemPass->Disable(); #ifdef WIN32 m_cbProxyOff->Disable(); #endif m_cbBypassSSLRevocationCheck->Disable(); m_butCancel->Disable(); m_linkOffline->Disable(); m_linkNewAccount->Disable(); m_linkLostPassword->Disable(); Refresh(false); //password will be user id cookie for autologin if (m_bAutoLogin) { auto l = std::make_pair(pass, gcString("")); onStartLoginEvent(l); } else { auto l = std::make_pair(user, pass); onStartLoginEvent(l); } }
void InternalLink::createMCF(DesuraId id) { gcTrace("Id: {0}", id); gcRefPtr<UserCore::Item::ItemInfoI> item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!GetUserCore()->isAdmin() && !item) { //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 CreateMCFForm* form = new CreateMCFForm(m_pParent); form->setInfo(id); form->onUploadTriggerEvent += delegate(this, &InternalLink::onUploadTrigger); form->Show(true); form->Raise(); form->run(); #ifdef NIX form->Raise(); #endif m_vSubForms.push_back(form); }
void InternalLink::showNeedToRun(DesuraId mid, DesuraId pid) { gcRefPtr<UserCore::Item::ItemInfoI> mod = GetUserCore()->getItemManager()->findItemInfo(mid); gcRefPtr<UserCore::Item::ItemInfoI> parent = GetUserCore()->getItemManager()->findItemInfo(pid); if (!mod || !parent) { //cant upload show prompt gcMessageBox(g_pMainApp->getMainWindow(), Managers::GetString(L"#MF_NAMERESOLVE"), Managers::GetString(L"#MF_ERRTITLE")); return; } gcWString msg(Managers::GetString(L"#MF_NEEDTORUN"), mod->getName(), parent->getName()); NeedToRunMessageHelper helper(pid); gcMessageBox(g_pMainApp->getMainWindow(), msg, Managers::GetString(L"#MF_ERRTITLE"), wxICON_EXCLAMATION | wxOK, &helper); }
void UploadInfoPage::onFileValidate(bool res, const char* path) { if (res) { initUpload(path, m_pUpInfo->upsize); } else { gcMessageBox(GetParent(), Managers::GetString(L"#UDF_NONMATCHING_FILE"), Managers::GetString(L"#UDF_UPLOAD_ERRTITLE") ); m_butUpload->Enable(true); m_tbItemFile->Enable(true); m_butFile->Enable(true); } }
void InternalLink::showPreorderPrompt(DesuraId id, bool isPreload) { UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item) return; UserCore::Item::BranchInfoI* bi = item->getCurrentBranch(); if (!bi) { for (size_t x=0; x<item->getBranchCount(); x++) { UserCore::Item::BranchInfoI *temp = item->getBranch(x); if (temp->isPreOrder()) { bi = temp; break; } } } if (!bi) return; const char* str = bi->getPreOrderExpDate(); uint32 days; uint32 hours; std::string time_available = UTIL::MISC::dateTimeToDisplay(str); UTIL::MISC::getTimeDiffFromNow(str, days, hours); gcString title(Managers::GetString("#IF_PRELOADLAUNCH_TITLE"), item->getName()); gcString msg(Managers::GetString("#IF_PRELOADLAUNCH"), item->getName(), days, Managers::GetString(isPreload?"#IF_PRELOADLAUNCH_PRELOADED":"#IF_PRELOADLAUNCH_PREORDERED"), time_available, Managers::GetString(days == 1 ? "#IF_PRELOADLAUNCH_WORD_DAY":"#IF_PRELOADLAUNCH_WORD_DAYS")); PreloadButtonHelper pobh(id); if (pobh.m_bOtherBranches) msg += gcString(Managers::GetString("#IF_PRELOADLAUNCH_INSTALLOTHER_INFO"), item->getName()); gcMessageBox(g_pMainApp->getMainWindow(), msg, title, wxICON_EXCLAMATION|wxCLOSE, &pobh); }
void UploadInfoPage::onResumeComplete(const char* path) { if (path && strcmp(path, "NULL") != 0) { initUpload(path, m_pUpInfo->upsize); } else { m_butUpload->Enable(true); m_tbItemFile->Enable(true); m_butFile->Enable(true); resetAllValues(); gcMessageBox(GetParent(), Managers::GetString(L"#UDF_NOFILE"), Managers::GetString(L"#UDF_RESUME_ERRTITLE") ); } }
void InternalLink::showUpdateLog(DesuraId id) { UserCore::Item::ItemInfoI* item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item) { //cant upload show prompt gcMessageBox(g_pMainApp->getMainWindow(), Managers::GetString(L"#MF_UPDATELOG_ITEMERROR"), Managers::GetString(L"#MF_ERRTITLE") ); return; } ChangeLogForm* form = new ChangeLogForm(m_pParent); regForm(id, form); form->setInfo(item); form->Show(true); form->Raise(); }
void InternalLink::showEULA(DesuraId id) { gcRefPtr<UserCore::Item::ItemInfoI> item = GetUserCore()->getItemManager()->findItemInfo( id ); if (!item) { //cant upload show prompt gcMessageBox(g_pMainApp->getMainWindow(), Managers::GetString(L"#MF_NAMERESOLVE"), Managers::GetString(L"#MF_ERRTITLE") ); return; } EULAForm* form = new EULAForm(m_pParent); regForm(id, form); if (form->setInfo(id)) { form->Show(true); form->Raise(); } }
void InternalLink::uploadMCF(DesuraId id) { 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); form->setInfo(id); form->Show(true); form->Raise(); form->run(); m_vSubForms.push_back(form); }
void gcErrorBox(wxWindow *parent, const char* title, const char* prompt, const gcException &e, HelperButtonsI* helper) { gcWString t(title); gcWString p(prompt); if (title && title[0] == '#') { t = gcWString(Managers::GetString(title)); } if (prompt && prompt[0] == '#') { p = gcWString(Managers::GetString(prompt)); } gcWString errMsg(L"{0}\n\n{1}", p, e); Warning(gcWString(L"{0}: {1}\n", p, e)); gcMessageBox(parent, errMsg, t, wxICON_EXCLAMATION|wxOK, helper); }
void UploadInfoPage::setInfo_path(DesuraId id, const char* path) { setInfo(id); if (path) { m_tbItemFile->SetValue(gcString(path)); if (validateInput()) { m_butUpload->Enable(false); m_tbItemFile->Enable(false); m_butFile->Enable(false); initUpload(path); } else { gcMessageBox(GetParent(), Managers::GetString(L"#UDF_ERROR_VALIDATION"), Managers::GetString(L"#UDF_ERRTITLE") ); } } }
int InstallBranch::setInfo(DesuraId id, bool selectBranch) { m_bSelectBranch = selectBranch; UserCore::Item::ItemInfoI* pItemInfo = GetUserCore()->getItemManager()->findItemInfo(id); if (!pItemInfo) return 1; m_bIsMod = id.getType() == DesuraId::TYPE_MOD; m_bIsExpansion = m_bIsMod == false && pItemInfo->getParentId().getType() == DesuraId::TYPE_GAME; m_Item = id; gcWString parName; gcWString itemName = pItemInfo->getName(); DesuraId par = pItemInfo->getParentId(); UserCore::Item::ItemInfoI *parInfo = NULL; if (par.isOk()) { parInfo = GetUserCore()->getItemManager()->findItemInfo(par); if (parInfo) parName = gcWString(parInfo->getName()); } fixName(parName); fixName(itemName); if (selectBranch == false && m_bIsMod) { m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_NOTFOUND"), itemName, parName)); m_labInfo->Wrap( 350 ); } else if (selectBranch == false && m_bIsExpansion) { m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_NOTFOUND_GAME"), itemName, parName)); m_labInfo->Wrap( 350 ); } else { m_labInfo->SetLabel(gcWString(Managers::GetString(L"#IF_BRANCHINFO"), itemName)); m_labInfo->Wrap( 350 ); } uint32 count = 0; int32 full = -1; uint32 fullReadyCount = 0; m_bBuy = true; UserCore::Item::ItemInfoI *i = pItemInfo; bool isCheckingParent = (m_bIsMod || m_bIsExpansion) && !selectBranch; if (isCheckingParent) { if (!parInfo) { gcMessageBox(GetParent(), Managers::GetString(L"#IF_IIPARENT"), Managers::GetString(L"#IF_IIERRTITLE")); return 1; } i = parInfo; } std::vector<UserCore::Item::BranchInfoI*> bList; for (uint32 x=0; x<i->getBranchCount(); x++) { UserCore::Item::BranchInfoI* bi = i->getBranch(x); if (!bi) continue; uint32 flags = bi->getFlags(); bool noRelease = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_NORELEASES); bool isPreorder = bi->isPreOrder(); bool isDemo = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_DEMO); bool onAccount = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_ONACCOUNT); bool locked = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_MEMBERLOCK|UserCore::Item::BranchInfoI::BF_REGIONLOCK); bool test = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_TEST); bool free = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_FREE); if (noRelease && !isPreorder) continue; if (!onAccount && locked) continue; if (!selectBranch && (isDemo || test)) continue; if ((free || onAccount) && isPreorder && !selectBranch) continue; bool globalFound = false; for (size_t x=0; x<bList.size(); x++) { if (bList[x]->getGlobalId() == bi->getGlobalId()) { globalFound = true; break; } } if (globalFound) continue; if (isDemo || test) { } else if (full == -1 || ((!m_bBuy || onAccount) && !free)) { if (full == -1 || m_bBuy) { //if this is the first full game or this is the first full game that you dont have to buy m_bBuy = (!onAccount && !free); full = count; } if (onAccount || free) fullReadyCount++; } bList.push_back(bi); count++; } for (size_t x=0; x<bList.size(); x++) { UserCore::Item::BranchInfoI* bi = bList[x]; gcString name = bi->getName(); gcWString title; uint32 flags = bi->getFlags(); bool noRelease = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_NORELEASES); bool isPreorder = bi->isPreOrder(); bool onAccount = HasAllFlags(flags, UserCore::Item::BranchInfoI::BF_ONACCOUNT); bool free = HasAnyFlags(flags, UserCore::Item::BranchInfoI::BF_FREE); if (!free) title = gcString("{0} - {1}", name, Managers::GetString("#IF_BROUGHT")); else title = gcString("{0} - {1}", name, Managers::GetString("#IF_FREE")); if (!free && !onAccount) { gcWString cost(bi->getCost()); if (cost == "") cost = gcString(Managers::GetString("#TBA")); title = gcString("{0} - {1}", name, cost.c_str()); } else if (isPreorder) { if (noRelease) title = gcString("{0} - {1}", name, Managers::GetString("#IF_PREORDERED_NORELEASE")); else title = gcString("{0} - {1}", name, Managers::GetString("#IF_PREORDERED")); } m_cbBranchList->Append(title, new BranchData(bi->getBranchId(), bi->getGlobalId())); } count = bList.size(); if (full == -1) full = 0; #ifdef WIN32 if (HasAnyFlags(i->getStatus(), UserCore::Item::ItemInfoI::STATUS_ONCOMPUTER)) m_cbBranchList->Append(Managers::GetString("#IF_ONCOMPUTER"), new BranchData(MCFBranch::BranchFromInt(-1), MCFBranch::BranchFromInt(-1))); else m_cbBranchList->Append(Managers::GetString("#IF_FINDONCOMPUTER"), new BranchData(MCFBranch::BranchFromInt(-2), MCFBranch::BranchFromInt(-2))); #endif m_cbBranchList->SetSelection(full); if (pItemInfo->getIcon() && UTIL::FS::isValidFile(UTIL::FS::PathWithFile(pItemInfo->getIcon()))) setIcon(pItemInfo->getIcon()); SetTitle(gcWString(Managers::GetString(L"#IF_BRANCHTITLE"), itemName)); uint32 ret = 0; if (count == 0) { if (!isCheckingParent) gcMessageBox(GetParent(), Managers::GetString(L"#IF_IINOBRANCHES"), Managers::GetString(L"#IF_IIERRTITLE")); else if (selectBranch) ret = 1; } else if ((count == 1 || fullReadyCount == 1) && !m_bBuy) { ret = 1; } else { wxCommandEvent e; onChoice(e); } return ret; }
void PasswordReminder::onComplete() { gcMessageBox(this, Managers::GetString(L"#PR_SENT"), Managers::GetString(L"#PR_TITLE")); Close(); }
void InternalLink::handleInternalLink(const char* link) { std::vector<gcString> list; bool badLink = false; g_pMainApp->showMainWindow(true); if (strncmp("desura://", link, 9) == 0) { char* str = nullptr; Safe::strcpy(&str, link+9, 255); char* context = nullptr; char* token = Safe::strtok(str, "/", &context); while (token) { list.push_back(gcString(token)); token = Safe::strtok(nullptr, "/", &context); } safe_delete(str); } else { badLink = true; } if (list.size() >= 1) { if (list[0] == "switchtab" || list[0] == "tab") { if (!switchTab(badLink, list, link)) return; } else if (list[0] == "settings") { gcString url(GetGCThemeManager()->getWebPage("settings")); if (list.size() >=2 ) url += "#" + list[1]; else url += "#general"; g_pMainApp->loadUrl(url.c_str(), SUPPORT); } else if (list[0] == "cip") { handleInternalLink(0, ACTION_SHOWSETTINGS, FormatArgs("tab=cip")); } else if (list.size() < 3) { #ifdef WIN32 if (list[0] == "installwizard") { handleInternalLink(0, ACTION_INSTALLEDW); } else #endif if (list[0] == "refresh") { GetUserCore()->forceUpdatePoll(); if ((list.size() >= 2 && list[1] == "background") == false) g_pMainApp->showPlay(); } else { badLink = true; } } else { if (!processItemLink(badLink, list, link)) return; } } if (badLink) { Warning(gcString("{0} [{1}]\n", Managers::GetString("#MF_BADLINK"), link)); gcWString errMsg(L"{0}: {1}.", Managers::GetString("#MF_BADLINK"), link); gcMessageBox(g_pMainApp->getMainWindow(), errMsg, Managers::GetString(L"#MF_ERRTITLE")); } }