#include "kget_linkview.h" #include #include #include #include #include #include #include #include #include #include #include #define COL_NAME 0 #define COL_DESC 1 #define COL_MIME 2 #define COL_URL 3 LinkViewItem::LinkViewItem( TQListView *parent, const LinkItem *lnk ) : TQListViewItem( parent ), link( lnk ) { TQString file = link->url.fileName(); if ( file.isEmpty() ) file = link->url.host(); setPixmap( COL_NAME, SmallIcon( link->icon ) ); setText( COL_NAME, file ); setText( COL_DESC, link->text ); setText( COL_MIME, link->mimeType ); setText( COL_URL, link->url.prettyURL() ); } /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// KGetLinkView::KGetLinkView( TQWidget *parent, const char *name ) : TDEMainWindow( parent, name ) { setPlainCaption( i18n( "KGet" ) ); TDEAction* actionDownload = new TDEAction( i18n("Download Selected Files"), "kget", CTRL+Key_D, TQT_TQOBJECT(this), TQT_SLOT( slotStartLeech() ), actionCollection(), "startDownload" ); TDEAction* actionSelectAll = KStdAction::selectAll( TQT_TQOBJECT(this), TQT_SLOT( slotSelectAll() ), actionCollection() ); m_links.setAutoDelete( true ); actionDownload->plug( toolBar() ); toolBar()->insertLineSeparator(); actionSelectAll->plug( toolBar() ); TQWidget *mainWidget = new TQWidget( this ); TQVBoxLayout *layout = new TQVBoxLayout( mainWidget ); setCentralWidget( mainWidget ); m_view = new TDEListView( mainWidget, "listview" ); m_view->setSelectionMode( TQListView::Extended ); m_view->addColumn( i18n("File Name") ); m_view->addColumn( i18n("Description") ); m_view->addColumn( i18n("File Type") ); m_view->addColumn( i18n("Location (URL)") ); m_view->setShowSortIndicator( true ); TDEListViewSearchLineWidget *line = new TDEListViewSearchLineWidget( m_view, mainWidget, "search line" ); layout->addWidget( line ); layout->addWidget( m_view ); // setting a fixed (not floating) toolbar toolBar()->setMovingEnabled( false ); // setting Text next to Icons toolBar()->setIconText( TDEToolBar::IconTextRight ); } KGetLinkView::~KGetLinkView() { } void KGetLinkView::setLinks( TQPtrList& links ) { m_links = links; // now we 0wn them showLinks( m_links ); } void KGetLinkView::showLinks( const TQPtrList& links ) { m_view->clear(); TQPtrListIterator it( links ); for ( ; it.current(); ++it ) (void) new LinkViewItem( m_view, *it ); m_view->sort(); } void KGetLinkView::slotStartLeech() { KURL::List urls; TQListViewItemIterator it( m_view->firstChild() ); for ( ; it.current(); ++it ) { if ( it.current()->isSelected() ) urls.append( static_cast( it.current() )->link->url ); } if ( urls.isEmpty() ) KMessageBox::sorry( this, i18n("You did not select any files to download."), i18n("No Files Selected") ); else { DCOPClient* p_dcopServer = new DCOPClient(); p_dcopServer->attach(); if ( !p_dcopServer->isApplicationRegistered( "kget" ) ) { TDEApplication::startServiceByDesktopName( "kget" ); } kapp->updateRemoteUserTimestamp( "kget" ); TQByteArray data; TQDataStream stream( data, IO_WriteOnly ); stream << urls << TQString(); bool ok = DCOPClient::mainClient()->send( "kget", "KGet-Interface", "addTransfers(KURL::List, TQString)", data ); kdDebug() << "*** startDownload: " << ok << endl; p_dcopServer->detach(); delete p_dcopServer; } } void KGetLinkView::setPageURL( const TQString& url ) { setPlainCaption( i18n( "Links in: %1 - KGet" ).arg( url ) ); } void KGetLinkView::slotSelectAll() { m_view->selectAll( true ); } #include "kget_linkview.moc"