• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdenetwork
  • Sitemap
  • Contact Us
 

kget

btadvanceddetailswidget.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE project
00002 
00003    Copyright (C) 2007 Lukas Appelhans <l.appelhans@gmx.de>
00004    Copyright (C) 2007 Joris Guisson   <joris.guisson@gmail.com>
00005 
00006    This program is free software; you can redistribute it and/or
00007    modify it under the terms of the GNU General Public
00008    License as published by the Free Software Foundation; either
00009    version 2 of the License, or (at your option) any later version.
00010 */
00011 
00012 #include "btadvanceddetailswidget.h"
00013 
00014 #include <interfaces/torrentinterface.h>
00015 #include <interfaces/trackerslist.h>
00016 
00017 #include "bttransferhandler.h"
00018 #include "bittorrentsettings.h"
00019 #include "fileview.h"
00020 #include "chunkdownloadview.h"
00021 #include "peerview.h"
00022 #include "monitor.h"
00023 #include "trackerview.h"
00024 #include "webseedstab.h"
00025 
00026 #include <kdebug.h>
00027 #include <kglobal.h>
00028 #include <kdialog.h>
00029 #include <ktabwidget.h>
00030 #include <ktitlewidget.h>
00031 #include <QGridLayout>
00032 
00033 using namespace kt;
00034 
00035 BTAdvancedDetailsWidget::BTAdvancedDetailsWidget(BTTransferHandler * transfer)
00036     : m_transfer(transfer)
00037 {
00038     tc = m_transfer->torrentControl();
00039 
00040     init();
00041 
00042     transfer->addObserver(this);
00043     //This updates the widget with the right values
00044     transferChangedEvent(transfer);
00045 }
00046 
00047 BTAdvancedDetailsWidget::~BTAdvancedDetailsWidget()
00048 {
00049     m_transfer->delObserver(this);
00050 }
00051 
00052 void BTAdvancedDetailsWidget::init()
00053 {
00054     setWindowTitle(i18n("Advanced-Details for %1", m_transfer->source().fileName()));
00055     resize(500, 400);
00056     QGridLayout *layout = new QGridLayout();
00057     KTitleWidget *titleWidget = new KTitleWidget(this);
00058     titleWidget->setText(i18n("Advanced Details for %1", m_transfer->source().fileName()));
00059     titleWidget->setPixmap(KIcon("dialog-information"));
00060     layout->addWidget(titleWidget);
00061     tabWidget = new KTabWidget(this);
00062     layout->addWidget(tabWidget);
00063     setLayout(layout);
00064     file_view = new FileView(this);
00065     file_view->changeTC(tc, KGlobal::config());
00066     tabWidget->insertTab(0, file_view, KIcon("inode-directory"), i18n("Files"));
00067     peer_view = new PeerView(this);
00068     tabWidget->insertTab(1, peer_view, KIcon("system-users"), i18n("Peers"));
00069     cd_view = new ChunkDownloadView(this);
00070     cd_view->changeTC(tc);
00071     tabWidget->insertTab(2, cd_view, KIcon("preferences-plugin"), i18n("Chunks"));
00072     tracker_view = new TrackerView(this);
00073     tracker_view->changeTC(tc);
00074     tabWidget->insertTab(3, tracker_view, KIcon("network-server"), i18n("Trackers"));
00075     webseeds_tab = new WebSeedsTab(this);
00076     webseeds_tab->changeTC(tc);
00077     tabWidget->insertTab(4, webseeds_tab, KIcon("network-server"), i18n("Webseeds"));
00078     monitor = new Monitor(tc,peer_view,cd_view);
00079 }
00080 
00081 void BTAdvancedDetailsWidget::transferChangedEvent(TransferHandler * transfer)
00082 {
00083     Q_UNUSED(transfer);
00084     kDebug(5001);
00085     TransferHandler::ChangesFlags transferFlags = m_transfer->changesFlags(this);
00086     if (transferFlags & BTTransfer::Tc_ChunksTotal || transferFlags & BTTransfer::Tc_ChunksDownloaded || transferFlags & BTTransfer::Tc_ChunksExcluded || transferFlags & BTTransfer::Tc_ChunksLeft || transferFlags & Transfer::Tc_DownloadSpeed || transferFlags & Transfer::Tc_UploadSpeed)
00087     {
00088         if (tabWidget->currentIndex() == 1)
00089                 peer_view->update();
00090         else if (tabWidget->currentIndex() == 2)
00091                 cd_view->update();
00092         else if (tabWidget->currentIndex() == 3)
00093                 tracker_view->update();
00094     }
00095     else if (m_transfer->status() == Job::Stopped)
00096     {
00097         peer_view->removeAll();
00098         cd_view->removeAll();
00099     }
00100 
00101     m_transfer->resetChangesFlags(this);
00102 }
00103 
00104 void BTAdvancedDetailsWidget::hideEvent(QHideEvent * event)
00105 {
00106     Q_UNUSED(event);
00107 
00108     if (tc)
00109         tc->setMonitor(0);
00110     emit aboutToClose();
00111     deleteLater();
00112 }
00113  
00114 kt::Monitor* BTAdvancedDetailsWidget::torrentMonitor() const
00115 {
00116     if (monitor)
00117         return monitor;
00118     else
00119         return 0;
00120 }
00121 
00122 #include "btadvanceddetailswidget.moc"
00123  

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdenetwork

Skip menu "kdenetwork"
  • kget
  • kopete
  •   kopete
  •   libkopete
  •       libpapillon
  • krfb
Generated for kdenetwork by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal