void add( std::string s, std::string fileName ) { std::transform( s.begin(), s.end(), s.begin(), tolower ); std::string h; for( std::string::iterator i = s.begin(); i != s.end(); i++ ) { if( *i == 32 ) { pushFileName( addWord( h ), fileName ); h.clear(); continue; } h.append( 1, *i ); } if( h.length() ) pushFileName( addWord( h ), fileName ); }
//----------------------------------------------------------------------------- // buildFloater() //----------------------------------------------------------------------------- bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filename, LLXMLNodePtr output_node) { LLFastTimer timer(FTM_BUILD_FLOATERS); LLXMLNodePtr root; //if exporting, only load the language being exported, //instead of layering localized version on top of english if (output_node) { if (!LLUICtrlFactory::getLocalizedXMLNode(filename, root)) { llwarns << "Couldn't parse floater from: " << LLUI::getLocalizedSkinPath() + gDirUtilp->getDirDelimiter() + filename << llendl; return false; } } else if (!LLUICtrlFactory::getLayeredXMLNode(filename, root)) { llwarns << "Couldn't parse floater from: " << LLUI::getSkinPath() + gDirUtilp->getDirDelimiter() + filename << llendl; return false; } // root must be called floater if( !(root->hasName("floater") || root->hasName("multi_floater")) ) { llwarns << "Root node should be named floater in: " << filename << llendl; return false; } bool res = true; lldebugs << "Building floater " << filename << llendl; pushFileName(filename); { if (!floaterp->getFactoryMap().empty()) { mFactoryStack.push_front(&floaterp->getFactoryMap()); } // for local registry callbacks; define in constructor, referenced in XUI or postBuild floaterp->getCommitCallbackRegistrar().pushScope(); floaterp->getEnableCallbackRegistrar().pushScope(); res = floaterp->initFloaterXML(root, floaterp->getParent(), filename, output_node); floaterp->setXMLFilename(filename); floaterp->getCommitCallbackRegistrar().popScope(); floaterp->getEnableCallbackRegistrar().popScope(); if (!floaterp->getFactoryMap().empty()) { mFactoryStack.pop_front(); } } popFileName(); return res; }
//----------------------------------------------------------------------------- // buildPanel() //----------------------------------------------------------------------------- BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, LLXMLNodePtr output_node) { LLFastTimer timer(FTM_BUILD_PANELS); BOOL didPost = FALSE; LLXMLNodePtr root; //if exporting, only load the language being exported, //instead of layering localized version on top of english if (output_node) { if (!LLUICtrlFactory::getLocalizedXMLNode(filename, root)) { llwarns << "Couldn't parse panel from: " << LLUI::getLocalizedSkinPath() + gDirUtilp->getDirDelimiter() + filename << llendl; return didPost; } } else if (!LLUICtrlFactory::getLayeredXMLNode(filename, root)) { llwarns << "Couldn't parse panel from: " << LLUI::getSkinPath() + gDirUtilp->getDirDelimiter() + filename << llendl; return didPost; } // root must be called panel if( !root->hasName("panel" ) ) { llwarns << "Root node should be named panel in : " << filename << llendl; return didPost; } lldebugs << "Building panel " << filename << llendl; pushFileName(filename); { if (!panelp->getFactoryMap().empty()) { mFactoryStack.push_front(&panelp->getFactoryMap()); } // for local registry callbacks; define in constructor, referenced in XUI or postBuild panelp->getCommitCallbackRegistrar().pushScope(); panelp->getEnableCallbackRegistrar().pushScope(); didPost = panelp->initPanelXML(root, NULL, output_node); panelp->getCommitCallbackRegistrar().popScope(); panelp->getEnableCallbackRegistrar().popScope(); panelp->setXMLFilename(filename); if (!panelp->getFactoryMap().empty()) { mFactoryStack.pop_front(); } } popFileName(); return didPost; }
/*! @brief download a file. @return uerr_t - the error value after downloading a file. @see wget */ uerr_t classDownloader::getFile(bool bUseProgress) { uerr_t err_value=RETROK; int index; char *filename = NULL, *redirected_URL = NULL; int dt; if (opt.verbose == -1){ opt.verbose = !opt.quiet; } if (opt.verbose && opt.quiet){ cout<<"Can't be verbose and quiet at the same time."<<endl; exit (1); } if (opt.timestamping && opt.noclobber){ cout<<"Can't timestamp and not clobber old files at the same time."<<endl; exit (1); } if (opt.verbose){ set_progress_implementation (opt.progress_type); } if(bUseProgress){ SetGetFileCallBack(GetFileCallBack); }else{ SetGetFileCallBack(NULL); } pushFileName(); err_value=retrieve_url(m_strUrl.c_str(), &filename, &redirected_URL, NULL, &dt); return err_value; }