Ejemplo n.º 1
0
/* 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;
}
Ejemplo n.º 2
0
/** 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;
}