Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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();
	}
}
Exemplo n.º 3
0
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);
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
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();
}
Exemplo n.º 6
0
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);
	}
}
Exemplo n.º 7
0
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);
}
Exemplo n.º 8
0
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);
}
Exemplo n.º 9
0
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);
	}
}
Exemplo n.º 10
0
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);
}
Exemplo n.º 11
0
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") );
	}
}
Exemplo n.º 12
0
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();
}
Exemplo n.º 13
0
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();
	}
}
Exemplo n.º 14
0
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);
}
Exemplo n.º 15
0
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);
}
Exemplo n.º 16
0
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") );
		}
	}
}
Exemplo n.º 17
0
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;
}
Exemplo n.º 18
0
void PasswordReminder::onComplete()
{
	gcMessageBox(this, Managers::GetString(L"#PR_SENT"), Managers::GetString(L"#PR_TITLE"));
	Close();
}
Exemplo n.º 19
0
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"));
	}
}