本文整理汇总了C++中KHTMLPart::htmlDocument方法的典型用法代码示例。如果您正苦于以下问题:C++ KHTMLPart::htmlDocument方法的具体用法?C++ KHTMLPart::htmlDocument怎么用?C++ KHTMLPart::htmlDocument使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KHTMLPart
的用法示例。
在下文中一共展示了KHTMLPart::htmlDocument方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotShowLinks
void KGet_plug_in::slotShowLinks()
{
if ( !parent() || !parent()->inherits( "KHTMLPart" ) )
return;
KHTMLPart *htmlPart = static_cast<KHTMLPart*>( parent() );
KParts::Part *activePart = 0L;
if ( htmlPart->partManager() )
{
activePart = htmlPart->partManager()->activePart();
if ( activePart && activePart->inherits( "KHTMLPart" ) )
htmlPart = static_cast<KHTMLPart*>( activePart );
}
DOM::HTMLDocument doc = htmlPart->htmlDocument();
if ( doc.isNull() )
return;
DOM::HTMLCollection links = doc.links();
QPtrList<LinkItem> linkList;
std::set<QString> dupeCheck;
for ( uint i = 0; i < links.length(); i++ )
{
DOM::Node link = links.item( i );
if ( link.isNull() || link.nodeType() != DOM::Node::ELEMENT_NODE )
continue;
LinkItem *item = new LinkItem( (DOM::Element) link );
if ( item->isValid() &&
dupeCheck.find( item->url.url() ) == dupeCheck.end() )
{
linkList.append( item );
dupeCheck.insert( item->url.url() );
}
else
delete item;
}
if ( linkList.isEmpty() )
{
KMessageBox::sorry( htmlPart->widget(),
i18n("There are no links in the active frame of the current HTML page."),
i18n("No Links") );
return;
}
KGetLinkView *view = new KGetLinkView();
QString url = doc.URL().string();
view->setPageURL( url );
view->setLinks( linkList );
view->show();
}
示例2: AudioQObject
Audio::Audio(ExecState *exec, DOM::DocumentImpl* d, const QString& url)
: m_doc(d),
m_cs(0),
m_qObj(new AudioQObject(this)),
m_onLoadListener(0),
m_onErrorListener(0)
{
setPrototype(AudioProto::self(exec));
KHTMLPart *part = qobject_cast<KHTMLPart*>(Window::retrieveActive(exec)->part());
if (part)
m_url = part->htmlDocument().completeURL(url).string();
m_cs = m_doc->docLoader()->requestSound( DOM::DOMString(m_url) );
}
示例3: slotReadOut
void KHTMLPluginKTTSD::slotReadOut()
{
// The parent is assumed to be a KHTMLPart
if(!parent()->inherits("KHTMLPart"))
QMessageBox::warning(0, i18n("Cannot Read source"), i18n("You cannot read anything except web pages with\n"
"this plugin, sorry."));
else
{
// If KTTSD not running, start it.
DCOPClient *client = kapp->dcopClient();
if(!client->isApplicationRegistered("kttsd"))
{
QString error;
if(kapp->startServiceByDesktopName("kttsd", QStringList(), &error))
QMessageBox::warning(0, i18n("Starting KTTSD Failed"), error);
}
// Find out if KTTSD supports xhtml (rich speak).
QByteArray data;
QBuffer dataBuf(data);
QDataStream arg;
dataBuf.open(IO_WriteOnly);
arg.setDevice(&dataBuf);
arg << "" << KSpeech::mtHtml;
QCString replyType;
QByteArray replyData;
bool supportsXhtml = false;
if(!client->call("kttsd", "KSpeech", "supportsMarkup(QString,uint)", data, replyType, replyData, true))
QMessageBox::warning(0, i18n("DCOP Call Failed"), i18n("The DCOP call supportsMarkup failed."));
else
{
QDataStream reply(replyData, IO_ReadOnly);
reply >> supportsXhtml;
}
KHTMLPart *part = (KHTMLPart *)parent();
QString query;
if(supportsXhtml)
{
kdDebug() << "KTTS claims to support rich speak (XHTML to SSML)." << endl;
if(part->hasSelection())
query = part->selectedTextAsHTML();
else
{
// TODO: Fooling around with the selection probably has unwanted
// side effects, but until a method is supplied to get valid xhtml
// from entire document..
// query = part->document().toString().string();
part->selectAll();
query = part->selectedTextAsHTML();
// Restore no selection.
part->setSelection(part->document().createRange());
}
}
else
{
if(part->hasSelection())
query = part->selectedText();
else
query = part->htmlDocument().body().innerText().string();
}
// kdDebug() << "KHTMLPluginKTTSD::slotReadOut: query = " << query << endl;
dataBuf.at(0); // reset data
arg << query << "";
if(!client->call("kttsd", "KSpeech", "setText(QString,QString)", data, replyType, replyData, true))
QMessageBox::warning(0, i18n("DCOP Call Failed"), i18n("The DCOP call setText failed."));
dataBuf.at(0);
arg << 0;
if(!client->call("kttsd", "KSpeech", "startText(uint)", data, replyType, replyData, true))
QMessageBox::warning(0, i18n("DCOP Call Failed"), i18n("The DCOP call startText failed."));
}
}