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(); }
KoDocumentChild *KoView::activeChild() { if ( !d->m_manager ) return 0L; KParts::Part *activePart = d->m_manager->activePart(); if ( !activePart || !activePart->inherits( "KoDocument" ) ) return 0L; return koDocument()->child( (KoDocument *)activePart ); }
KoDocumentChild *KoView::selectedChild() { if ( !d->m_manager ) return 0L; KParts::Part *selectedPart = d->m_manager->selectedPart(); if ( !selectedPart || !selectedPart->inherits( "KoDocument" ) ) return 0L; return koDocument()->child( (KoDocument *)selectedPart ); }