You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/kget/kget_plug_in/links.cpp

42 lines
1.2 KiB

#include "links.h"
#include <kmimetype.h>
#include <kprotocolinfo.h>
#include <dom/html_misc.h>
#include <dom/html_document.h>
LinkItem::LinkItem( DOM::Element link )
: m_valid( false )
{
DOM::NamedNodeMap attrs = link.attributes();
DOM::Node href = attrs.getNamedItem( "href" );
// qDebug("*** href: %s", href.nodeValue().string().latin1() );
QString urlString = link.ownerDocument().completeURL( href.nodeValue() ).string();
if ( urlString.isEmpty() )
return;
url = KURL::fromPathOrURL( urlString );
if ( !KProtocolInfo::supportsReading( url ) )
return;
// somehow getElementsByTagName("#text") doesn't work :(
DOM::NodeList children = link.childNodes();
for ( uint i = 0; i < children.length(); i++ )
{
DOM::Node node = children.item( i );
if ( node.nodeType() == DOM::Node::TEXT_NODE )
text.append( node.nodeValue().string() );
}
// force "local file" mimetype determination
KMimeType::Ptr mt = KMimeType::findByURL( url, 0, true, true);
icon = mt->icon( QString::null, false ); // dummy parameters
mimeType = mt->comment();
m_valid = true;
}