/* long GetDocUrlDistance (in nsIDOMDocument doc); */ NS_IMETHODIMP nsDomAttUtil::GetDocUrlDistance(nsIDOMDocument *doc, PRInt32 *_retval ) { nsresult rv; nsCOMPtr<nsIXpathUtil> xpathUtil=do_CreateInstance("@nyapc.com/XPCOM/nsXpathUtil;1",&rv); if (NS_FAILED(rv)) { return rv; } Distance ld; PRInt32 distValue=0; xpathUtil->SetDocument(doc); nsCOMPtr<nsISupportsArray> nodeArr(nsnull); nsCString xpath("//a[@href]"); xpathUtil->GetNodes(xpath, getter_AddRefs(nodeArr)); if(nodeArr!=nsnull) { PRUint32 arrlen=0; nodeArr->Count(&arrlen); std::string lastUrl; bool setinit=false; for(PRUint32 i=0;i<arrlen;i++) { nsCOMPtr<nsISupports> node; nodeArr->GetElementAt(i,getter_AddRefs(node)); nsCOMPtr<nsIDOMElement> domele=do_QueryInterface(node); nsString nsName=NS_ConvertUTF8toUTF16("href"); nsString nsValue; if(domele!=nsnull) { domele->GetAttribute(nsName,nsValue); if(!setinit) { lastUrl=std::string(NS_ConvertUTF16toUTF8(nsValue).get()); setinit=true; } else { std::string curUrl(NS_ConvertUTF16toUTF8(nsValue).get()); distValue+=ld.LD(lastUrl,curUrl); lastUrl=curUrl; } } } *_retval=distValue; } else { *_retval=-1; } return NS_OK; }
/** No descriptions */ QString SambaFile::findShareByPath(const QString & path) const { QDictIterator<SambaShare> it(*_sambaConfig); KURL url(path); url.adjustPath(-1); for ( ; it.current(); ++it ) { SambaShare* share = it.current(); QString *s = share->find("path"); if (s) { KURL curUrl(*s); curUrl.adjustPath(-1); kdDebug(5009) << url.path() << " =? " << curUrl.path() << endl; if (url.path() == curUrl.path()) return it.currentKey(); } } return QString::null; }