Exemplo n.º 1
0
void ExternalToolsPlugin::OnLaunchExternalTool(wxCommandEvent& e)
{
	ExternalToolsData inData;
	m_mgr->GetConfigTool()->ReadObject(wxT("ExternalTools"), &inData);

	for (size_t i=0; i<inData.GetTools().size(); i++) {
		ToolInfo ti = inData.GetTools().at(i);
		if (wxXmlResource::GetXRCID(ti.GetId().c_str()) == e.GetId()) {
			DoLaunchTool(ti);
		}
	}
}
Exemplo n.º 2
0
void ToolManager::loadItems()
{
	sqlite3x::sqlite3_connection db(getToolInfoDb(m_pUser->getAppDataPath()).c_str());

	std::vector<DesuraId> toolIdList;

	try
	{
		sqlite3x::sqlite3_command cmd(db, "SELECT internalid FROM toolinfo;");
		sqlite3x::sqlite3_reader reader = cmd.executereader();

		while (reader.read())
		{
			toolIdList.push_back(DesuraId(reader.getint64(0)));
		}
	}
	catch (std::exception &)
	{
	}

	for (size_t x=0; x<toolIdList.size(); x++)
	{
		ToolInfo* tool = findItem(toolIdList[x].toInt64());

		bool bAdd = false;

		int32 negId = toolIdList[x].getItem();

		if (!tool)
		{
			if (negId >= 0)
				tool = new ToolInfo(toolIdList[x]);
#ifdef WIN32
			else
				tool = NewJSToolInfo(toolIdList[x]);
#endif

			bAdd = true;
		}
		else if (negId < m_iLastCustomToolId)
		{
			m_iLastCustomToolId = negId;
		}

		tool->loadFromDb(&db);

		if (bAdd)
			addItem(tool);
	}
}
Exemplo n.º 3
0
bool ToolTransInfo::startNextInstall(IPCToolMain* pToolMain, DesuraId &toolId)
{
	if (m_uiCompleteCount == m_pTransaction->toolsList.size())
		return false;

	toolId = m_pTransaction->toolsList[m_uiCompleteCount];
	ToolInfo* info = m_pToolManager->findItem(toolId.toInt64());

	if (!info)
		return true;

	if (info->isInstalled())
	{
		m_uiCompleteCount++;
		return startNextInstall(pToolMain, toolId);
	}

	DesuraId id = info->getId();
	m_pTransaction->onStartInstallEvent(id);

	gcException e = pToolMain->installTool(info);

#ifdef NIX
	if (e.getErrId() == ERR_COMPLETED)
	{
		onINComplete();
		return startNextInstall(pToolMain, toolId);
	}
#endif

	if (e.getErrId() != WARN_OK && e.getErrId() != ERR_UNKNOWNERROR)
	{
		onINError(e);
		return false;
	}
	else
	{
		UserCore::Misc::ToolProgress prog;

		prog.done = m_uiCompleteCount;
		prog.total = m_pTransaction->toolsList.size();
		prog.percent = prog.done*100/prog.total;

		m_pTransaction->onProgressEvent(prog);
	}
	
	return true;
}
Exemplo n.º 4
0
void ExternalToolsPlugin::DoLaunchTool(const ToolInfo& ti)
{
	wxString command, working_dir;

	command << wxT("\"") << ti.GetPath() << wxT("\" ") << ti.GetArguments();
	working_dir = ti.GetWd();

	if (m_mgr->IsWorkspaceOpen()) {
		command     = m_mgr->GetMacrosManager()->Expand(command, m_mgr, m_mgr->GetSolution()->GetActiveProjectName());
		working_dir = m_mgr->GetMacrosManager()->Expand(working_dir, m_mgr, m_mgr->GetSolution()->GetActiveProjectName());
	}

	// check to see if we require to save all files before continuing
	if (ti.GetSaveAllFiles() && !m_mgr->SaveAll())
		return;

	if (ti.GetCaptureOutput() == false) {
		// change the directory to the requested working directory
		DirSaver ds;
		wxSetWorkingDirectory(working_dir);

		// apply environment
		EnvSetter envGuard(m_mgr->GetEnv());
		wxExecute(command);

	} else {
		// create a piped process
		if (m_pipedProcess && m_pipedProcess->IsBusy()) {
			// a process is already running
			return;
		}

		m_pipedProcess = new AsyncExeCmd(m_mgr->GetOutputWindow());

		DirSaver ds;
		EnvSetter envGuard(m_mgr->GetEnv());
		wxSetWorkingDirectory(working_dir);

		// hide console if any,
		// redirect output
		m_pipedProcess->Execute(command, true, true);
		if (m_pipedProcess->GetProcess()) {
			m_pipedProcess->GetProcess()->Connect(wxEVT_END_PROCESS, wxProcessEventHandler(ExternalToolsPlugin::OnProcessEnd), NULL, this);
		}
	}
}
Exemplo n.º 5
0
ToolTransactionId ToolManager::installTools(Misc::ToolTransaction* transaction)
{
	if (!areAllToolsValid(transaction->toolsList))
	{
		safe_delete(transaction);
		return -1;
	}

	if (areAllToolsInstalled(transaction->toolsList))
	{
		safe_delete(transaction);
		return -2;	
	}

	Misc::ToolTransInfo* info = new Misc::ToolTransInfo(false, transaction, this);

	m_MapLock.lock();

	ToolTransactionId ttid = m_uiLastTransId;
	m_uiLastTransId++;
	m_mTransactions[ttid] = info;

	m_MapLock.unlock();


	std::vector<DesuraId> idList;
	info->getIds(idList);

	for (size_t x=0; x<idList.size(); x++)
	{
		DesuraId id = idList[x];
		ToolInfo* tool = findItem(id.toInt64());

		//This should not happen as there is a check before a install starts to make sure all tool ids are valid
		if (!tool)
			continue;

		if (tool->isInstalled())
			info->removeItem(id);
	}

	startInstall(ttid);
	return ttid;
}
Exemplo n.º 6
0
void ToolManager::startDownload(Misc::ToolTransInfo* info)
{
	if (!info)
		return;

	m_DownloadLock.lock();

	std::vector<DesuraId> idList;
	info->getIds(idList);

	for (size_t x=0; x<idList.size(); x++)
	{
		DesuraId id = idList[x];
		ToolInfo* tool = findItem(id.toInt64());

		//This should not happen as there is a check before a download starts to make sure all tool ids are valid
		if (!tool)
			continue;

#ifdef WIN32
		tool->checkFile(m_pUser->getAppDataPath());
#endif

		if (tool->isDownloaded() || tool->isInstalled())
		{
			info->removeItem(id);
			continue;
		}

		std::map<uint64, UserCore::Task::DownloadToolTask*>::iterator it = m_mDownloads.find(id.toInt64());

		if (it == m_mDownloads.end())
			downloadTool(tool);
		else
			it->second->increseRefCount();
	}

	m_DownloadLock.unlock();
}
Exemplo n.º 7
0
void ToolInstallThread::onINComplete(int32 &result)
{
	m_bStillInstalling = false;

	ToolInfo* tool = m_pToolManager->findItem(m_CurrentInstallId.toInt64());

	bool installError = false;

	if (tool)
	{
		installError = tool->checkExpectedResult(result) == false;

		if (!installError)
			tool->setInstalled();
	}

	if (installError)
	{
		m_MapLock.lock();
		std::map<ToolTransactionId, ToolTransInfo*>::iterator it = m_mTransactions.find(m_CurrentInstall);



		if (it != m_mTransactions.end() && hasToolMain())
		{
			int32 r = result;

			Warning(gcString("The tool install [{2}] result didnt match what was expected [Actual: {0}, Expected: {1}]", r, tool->getResultString(), tool->getName()));
			gcException e(ERR_BADRESPONSE, gcString("The tool {0} failed to install (Bad result)", tool->getName()));
			it->second->onINError(e);
			m_CurrentInstall = -1;
		}
		
		m_MapLock.unlock();
	}

	m_pToolManager->saveItems();
	m_InstallWait.notify();
}
void ExternalToolDlg::SetTools(const std::vector<ToolInfo>& tools)
{
    m_listCtrlTools->Freeze();
    for(size_t i = 0; i < (size_t)m_listCtrlTools->GetItemCount(); i++) {
        ExternalToolData* data = (ExternalToolData*)m_listCtrlTools->GetItemData(i);
        wxDELETE(data);
    }
    
    m_listCtrlTools->DeleteAllItems();

    for(size_t i = 0; i < tools.size(); i++) {
        ToolInfo ti = tools.at(i);
        long item = AppendListCtrlRow(m_listCtrlTools);

        ExternalToolData* data = new ExternalToolData(ti);
        m_listCtrlTools->SetItemPtrData(item, wxUIntPtr(data));

        SetColumnText(m_listCtrlTools, item, 0, ti.GetId());
        SetColumnText(m_listCtrlTools, item, 1, ti.GetName());
        SetColumnText(m_listCtrlTools, item, 2, ti.GetPath());
    }

    m_listCtrlTools->Thaw();
}
Exemplo n.º 9
0
void ToolManager::parseXml(const XML::gcXMLElement &toolinfoNode)
{
	if (!toolinfoNode.IsValid())
		return;	

	auto toolsNode = toolinfoNode.FirstChildElement("tools");

	if (!toolsNode.IsValid())
		return;

	WildcardManager wcm;

	wcm.onNeedInstallSpecialEvent += delegate(this, &ToolManager::onSpecialCheck);
	wcm.onNeedSpecialEvent += delegate(m_pUser->getNeedWildCardEvent());

	auto wildcardNode = toolinfoNode.FirstChildElement("wcards");

	if (wildcardNode.IsValid())
		wcm.parseXML(wildcardNode);

	//clear the java path value
	WildcardInfo* temp = wcm.findItem("JAVA_EXE");

	if (temp)
	{
		temp->m_szPath = "";
		temp->m_bResolved = true;
	}

	bool is64OS = UTIL::OS::is64OS();

	toolsNode.for_each_child("tool", [this, is64OS, &wcm](const XML::gcXMLElement &toolEl)
	{
		bool isTool64 = false;
		toolEl.GetChild("bit64", isTool64);

		if (isTool64 && !is64OS)
			return;

		const std::string id = toolEl.GetAtt("siteareaid");

		if (id.empty())
			return;

		DesuraId tid(id.c_str(), "tools");
		ToolInfo* tool = this->findItem(tid.toInt64());

		bool bAdd = false;

		if (!tool)
		{
			tool = new ToolInfo(tid);
			bAdd = true;
		}

		tool->parseXml(toolEl, &wcm, m_pUser->getAppDataPath());

		if (bAdd)
			this->addItem(tool);
	});
	
	postParseXml();
}
Exemplo n.º 10
0
void HPersistence::LoadGameData(){
    
    G::g_maxPower = getIntForKey("game_max_power", INIT_POWER);
    G::G_setCoin(getIntForKey("game_coin", INIT_COIN));
   // G::g_mPower = getIntForKey("game_power", 7+45);
    if (G::g_mPower  > G::g_maxPower) {
        G::g_last_power_recovery_time = G::G_getCurrentTime();
    }
    G::G_setPower(getIntForKey("game_power", INIT_POWER));
    G::G_setBook(getIntForKey("game_book", INIT_BOOK ));
    G::g_mIsBackgroundMusicOn = getBoolForKey("m_bgm", true);
    G::g_mIsEffectVolumeOn = getBoolForKey("m_soundEffect", true);
    G::g_stageInfos->removeAllObjects();
    for(int i=0;i<MAX_STAGE;i++){
        StageInfo* info;
        char key_IsOpen[30];
        sprintf(key_IsOpen,"stage_%d_isopen",i);
        char key_IsPlay[30];
        sprintf(key_IsPlay,"stage_%d_isplay",i);
        char key_Stars[30];
        sprintf(key_Stars,"stage_%d_stars",i);
        bool isopen ;
        
        if(i==0){
            isopen = getBoolForKey(key_IsOpen,true);
        }else{
            isopen = getBoolForKey(key_IsOpen,false);
        }
        
        char key_IsShowed[30];
        sprintf(key_IsShowed, "stage_%d_isShowed",i);
        bool isShowed = getBoolForKey(key_IsShowed,false);
        
        bool isplay = getBoolForKey(key_IsPlay,false);
        int stars = getIntForKey(key_Stars,0);
        
//        isopen = true;
//        stars = 3;

//        if (i<11) {
//            isopen = true;
//            stars = 3;
//        }
        
        info = new StageInfo(isopen,isplay,stars,isShowed);
        G::g_stageInfos->addObject(info);
    }
    
    G::g_toolinfos->removeAllObjects();
    for (int i =0;i<MAX_TOOL_COUNT;i++) {
        ToolInfo* info = new ToolInfo();
        IntToStringFormat(hold_key, "tool_hold_%d",i);
        info->setHoldCount(getIntForKey(hold_key, 1));
        IntToStringFormat(show_key, "tool_new_showed_%d",i);
        info->new_showed = getBoolForKey(show_key, false);
        info->price = tool_prices[i];
        G::g_toolinfos->addObject(info);
    }
    
    for(unsigned int i=0;i<G::g_achieve_infos->count();i++){
        ACHIEVE_INFO* info = (ACHIEVE_INFO*)G::g_achieve_infos->objectAtIndex(i);
        char a_c_key[30];
        sprintf(a_c_key, "achieve_c_%d",i);
        char a_s_key[30];
        sprintf(a_s_key, "achieve_s_%d",i);
        info->complete = getIntForKey(a_c_key, 0);
        info->achieve_completed_showed = getBoolForKey(a_s_key, false);
        char show_key[30];
        sprintf(show_key, "achieve_new_showed_%d",i);
        info->new_showed = getBoolForKey(show_key, false);
        IntToStringFormat(_time_key, "achieve_complete_time_%d", i)
        info->complete_time = getIntForKey(_time_key,0);
        IntToStringFormat(_complete_key, "achieve_is_complete_%d", i)
        info->is_complete = getBoolForKey(_complete_key, false);
        IntToStringFormat(_new_key, "achieve_isNew_%d", i)
        info->isNew = getBoolForKey(_new_key, true);
    }
    
    for(unsigned int i=0;i<G::g_help_infos.size();i++){
        for (unsigned int j=0; j<G::g_help_infos[i].size(); j++) {
            char h_key[30];
            sprintf(h_key,"help_info_%d_%d",i,j);
            G::g_help_infos[i][j]->isShowed = getBoolForKey(h_key,false);
        }
//        HELP_INFO* help_info = (HELP_INFO*)G::g_help_infos->objectAtIndex(i);
//        char h_key[30];
//        sprintf(h_key,"help_info_%d",i);
//        help_info->isShowed = getBoolForKey(h_key,false);
    }
    
    G::g_hole_max_score = getIntForKey("unlimit_top_score", 0);
    G::g_hole_total_depth = getIntForKey("unlimit_total_dist", 0);
    
    G::tree_scroll_has_showed = getBoolForKey("tree_scroll_showed", false);
 
    G::g_last_power_recovery_time = getIntForKey("last_power_recovery_time",G::G_getCurrentTime());
    
    for (int i=0; i<MAX_SHARE; i++) {
        char got_key[30];
        sprintf(got_key, "share_reward_got_%d",i);
        G::g_share_reward_got[i]= getBoolForKey(got_key, false);
    }
    
    G::g_hole_isOpened = getBoolForKey("hole_opened",false);
   //G::g_hole_isOpened = true;
    G::g_hole_isNewShowed = getBoolForKey("hole_showed", false);
    
    G::g_sea_isOpened = getBoolForKey("sea_opened",false);
   // G::g_sea_isOpened = true;
    G::g_sea_isNewShowed = getBoolForKey("sea_showed", false);
    
    for (int i=0; i<MAX_BAO; i++) {
        BAO_INFO* info = new BAO_INFO();
        info->id = i;
        IntToStringFormat(_getKey, "bao_isget_%d", i);
        IntToStringFormat(_showKey, "bao_show_%d", i);
        IntToStringFormat(_newKey, "bao_new_%d", i);
        info->isGot = getBoolForKey(_getKey, false);
        info->isShowed = getBoolForKey(_showKey, false);
        info->isNew = getBoolForKey(_newKey, true);
        G::g_bao_infos->addObject(info);
    }
    
    for (int i=0; i<MAX_CLOUD; i++) {
        IntToStringFormat(_cloudOpenKey, "cloud_open_%d", i);
        G::g_cloud_isOpened[i] = getBoolForKey(_cloudOpenKey, false);
    }
    G::g_has_first_saved = getBoolForKey("has_first_saved", false);
    
    long currentTime = G::G_getCurrentTime();
    struct tm *ptm = localtime((time_t*)& currentTime);
    G::turntable_time = getIntForKey("turntable_time",ptm->tm_mday);
    G::turntable_count = getIntForKey("turntable_count", 1);
    if (ptm->tm_mday!=G::turntable_time) {
        G::turntable_count = 1;
    }
    
    G::turntable_time = ptm->tm_mday;
    
    CCLOG("turntable_time %ld",G::turntable_time);
    
//    if (G::turntable_count==0) {
//        long currentTime = G::G_getCurrentTime();
//        struct tm *ptm1 = localtime((time_t*)& G::turntable_time);
//        struct tm *ptm2 = localtime((time_t*)& currentTime);
//        if (ptm1->tm_mday!=ptm2->tm_mday) {
//            G::turntable_count = 1;
//        }
////        if (G::G_getCurrentTime()>G::turntable_time) {
////            struct tm *ptm1 = localtime((time_t*)& G::turntable_time);
////            struct tm *ptm2 = localtime((time_t*)& currentTime);
////            if (ptm1->tm_mday!=ptm2->tm_mday) {
////                G::turntable_count = 1;
////            }
////        }
//    }
//    
//    long currentTime = G::G_getCurrentTime();
//    CCLOG("currentTime %ld",currentTime);
//
//    
//    struct tm *ptm1 = localtime((time_t*)& G::turntable_time);
//    struct tm *ptm2 = localtime((time_t*)& currentTime);
//    CCLOG("tm_day1 %d  tmp_day2 %d",ptm1->tm_mday,ptm2->tm_mday);
//    if (ptm1->tm_mday!=ptm2->tm_mday) {
//        G::turntable_count = 1;
//    }
//    G::turntable_time = G::G_getCurrentTime();
    
    G::shop_th_has_buyed = getBoolForKey("shop_th_has_buyed", false);
    G::shop_ts_has_buyed = getBoolForKey("shop_ts_has_buyed", false);
    //G::turntable_count = 99;
}
Exemplo n.º 11
0
void HPersistence::SaveToFile(){
    setIntForKey("game_max_power", G::g_maxPower);
    setIntForKey("game_coin", G::G_getCoin());
    setIntForKey("game_power",G::G_getPower());
    //setIntForKey("game_power",G::g_mPower);
    setIntForKey("game_book", G::G_getBook());
    setBoolForKey("m_bgm", G::g_mIsBackgroundMusicOn);
    setBoolForKey("m_soundEffect", G::g_mIsEffectVolumeOn);
    
    //SaveStage(0);
//    for(int i=0;i<MAX_STAGE;i++){
//        StageInfo* info = (StageInfo*)G::g_stageInfos->objectAtIndex(i);
//        if(info==NULL)
//            continue;
//        char key_IsOpen[30];
//        sprintf(key_IsOpen,"stage_%d_isopen",i);
//        char key_IsPlay[30];
//        sprintf(key_IsPlay,"stage_%d_isplay",i);
//        char key_Stars[30];
//        sprintf(key_Stars,"stage_%d_stars",i);
//        setBoolForKey(key_IsOpen,info->isOpened);
//        setBoolForKey(key_IsPlay,info->isPlayed);
//        setIntForKey(key_Stars,info->stars);
//        char key_IsShowed[30];
//        sprintf(key_IsShowed, "stage_%d_isShowed",i);
//        setBoolForKey(key_IsShowed,info->isShowed);
//    }
    for (int i =0;i<MAX_TOOL_COUNT;i++) {
        ToolInfo* info = (ToolInfo*)G::g_toolinfos->objectAtIndex(i);
        IntToStringFormat(hold_key, "tool_hold_%d",i);
        setIntForKey(hold_key, info->getHoldCount());
        IntToStringFormat(show_key, "tool_new_showed_%d",i);
        setBoolForKey(show_key,  info->new_showed);
    }
    
    
    for(unsigned int i=0;i<G::g_help_infos.size();i++){
        for (unsigned int j=0; j<G::g_help_infos[i].size(); j++) {
            char h_key[30];
            sprintf(h_key,"help_info_%d_%d",i,j);
            setBoolForKey(h_key,G::g_help_infos[i][j]->isShowed);
        }
        //        HELP_INFO* help_info = (HELP_INFO*)G::g_help_infos->objectAtIndex(i);
        //        char h_key[30];
        //        sprintf(h_key,"help_info_%d",i);
        //        help_info->isShowed = getBoolForKey(h_key,false);
    }
//    int help_max_count = G::g_help_infos->count();
//    for(int i=0;i<help_max_count;i++){
//        HELP_INFO* help_info = (HELP_INFO*)G::g_help_infos->objectAtIndex(i);
//        char h_key[30];
//        sprintf(h_key,"help_info_%d",i);
//        setBoolForKey(h_key,help_info->isShowed);
//    }
    for(unsigned int i=0;i<G::g_achieve_infos->count();i++){
        ACHIEVE_INFO* info = (ACHIEVE_INFO*)G::g_achieve_infos->objectAtIndex(i);
        char a_c_key[30];
        sprintf(a_c_key, "achieve_c_%d",i);
        char a_s_key[30];
        sprintf(a_s_key, "achieve_s_%d",i);

        setIntForKey(a_c_key, info->complete);
        

        setBoolForKey(a_s_key, info->achieve_completed_showed);
        
        char show_key[30];
        sprintf(show_key, "achieve_new_showed_%d",i);

        setBoolForKey(show_key, info->new_showed);
        
        IntToStringFormat(_time_key, "achieve_complete_time_%d", i)

        setIntForKey(_time_key, info->complete_time);
        IntToStringFormat(_complete_key, "achieve_is_complete_%d", i)
  
        setBoolForKey(_complete_key, info->is_complete);
        
        IntToStringFormat(_new_key, "achieve_isNew_%d", i)
   
        setBoolForKey(_new_key, info->isNew);
    }
    

    setIntForKey("unlimit_top_score",  G::g_hole_max_score );
    setIntForKey("unlimit_total_dist", G::g_hole_total_depth);
    
    setBoolForKey("tree_scroll_showed", G::tree_scroll_has_showed);
    
    setIntForKey("last_power_recovery_time", G::g_last_power_recovery_time);
    
//    for (int i=0; i<MAX_SHARE; i++) {
//        char got_key[30];
//        sprintf(got_key, "share_reward_got_%d",i);
//        setBoolForKey(got_key, G::g_share_reward_got[i]);
//    }
    
    setBoolForKey("hole_opened", G::g_hole_isOpened);
    setBoolForKey("hole_showed", G::g_hole_isNewShowed);
    
    setBoolForKey("sea_opened", G::g_sea_isOpened);
    setBoolForKey("sea_showed", G::g_sea_isNewShowed);
    
//    for (unsigned int i=0; i<MAX_BAO; i++) {
//        BAO_INFO* info = (BAO_INFO*)G::g_bao_infos->objectAtIndex(i);
//        info->id = i;
//        IntToStringFormat(_getKey, "bao_isget_%d", i);
//        IntToStringFormat(_showKey, "bao_show_%d", i);
//        IntToStringFormat(_newKey, "bao_new_%d", i);
//        setBoolForKey(_getKey,  info->isGot);
//        setBoolForKey(_showKey, info->isShowed );
//        setBoolForKey(_newKey, info->isNew);
//    }
    
    
    for (int i=0; i<MAX_CLOUD; i++) {
        IntToStringFormat(_cloudOpenKey, "cloud_open_%d", i);
        setBoolForKey(_cloudOpenKey, G::g_cloud_isOpened[i]);
    }

    G::g_has_first_saved = true;
    setBoolForKey("has_first_saved", true);
    
    setIntForKey("turntable_time", G::turntable_time);
    setIntForKey("turntable_count", G::turntable_count);
    
    setBoolForKey("shop_th_has_buyed", G::shop_th_has_buyed);
    setBoolForKey("shop_ts_has_buyed",  G::shop_ts_has_buyed);
    
    CCUserDefault::sharedUserDefault()->flush();
}
std::vector<ToolInfo> ExternalToolDlg::GetTools()
{
    std::vector<ToolInfo> tools;
    for(size_t i = 0; i < (size_t)m_listCtrlTools->GetItemCount(); i++) {

        ToolInfo ti;
        ExternalToolData* data = (ExternalToolData*)m_listCtrlTools->GetItemData(i);

        if(data) {
            ti.SetId(data->m_id);
            ti.SetName(data->m_name);
            ti.SetPath(data->m_path);
            ti.SetArguments(data->m_args);
            ti.SetWd(data->m_workingDirectory);
            ti.SetIcon16(data->m_icon16);
            ti.SetIcon24(data->m_icon24);
            ti.SetCaptureOutput(data->m_captureOutput);
            ti.SetSaveAllFiles(data->m_saveAllFiles);
            ti.SetCallOnFileSave(data->m_callOnFileSave);
            tools.push_back(ti);
        }
    }
    return tools;
}
Exemplo n.º 13
0
void ToolManager::parseXml(tinyxml2::XMLNode* toolinfoNode)
{
	if (!toolinfoNode)
		return;	

	tinyxml2::XMLElement* toolsNode = toolinfoNode->FirstChildElement("tools");

	if (!toolsNode)
		return;

	WildcardManager wcm;

	wcm.onNeedInstallSpecialEvent += delegate(this, &ToolManager::onSpecialCheck);
	wcm.onNeedSpecialEvent += delegate(m_pUser->getNeedWildCardEvent());

	tinyxml2::XMLElement* wildcardNode = toolinfoNode->FirstChildElement("wcards");

	if (wildcardNode)
		wcm.parseXML(wildcardNode);

	//clear the java path value
	WildcardInfo* temp = wcm.findItem("JAVA_EXE");

	if (temp)
	{
		temp->m_szPath = "";
		temp->m_bResolved = true;
	}

	bool is64OS = UTIL::OS::is64OS();

	XML::for_each_child("tool", toolsNode, [this, is64OS, &wcm](tinyxml2::XMLElement* toolEl)
	{
		bool isTool64 = false;
		XML::GetChild("bit64", isTool64, toolEl);

		if (isTool64 && !is64OS)
			return;

		const char* id = toolEl->Attribute("siteareaid");

		if (!id)
			return;

		DesuraId tid(id, "tools");
		ToolInfo* tool = this->findItem(tid.toInt64());

		bool bAdd = false;

		if (!tool)
		{
			tool = new ToolInfo(tid);
			bAdd = true;
		}

		tool->parseXml(toolEl, &wcm, m_pUser->getAppDataPath());

		if (bAdd)
			this->addItem(tool);
	});
	
	postParseXml();
}
Exemplo n.º 14
0
	bool operator()(const ToolInfo &t1, const ToolInfo &t2) {
		return t1.GetName().CmpNoCase(t2.GetName()) > 0;
	}