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

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • transfer-plugins
  • bittorrent
bttransferhandler.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2007 Lukas Appelhans <l.appelhans@gmx.de>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 
11 #include "bttransferhandler.h"
12 
13 #include "bttransfer.h"
14 #include "advanceddetails/monitor.h"
15 #include "advanceddetails/btadvanceddetailswidget.h"
16 #include "scandlg.h"
17 
18 #include "core/scheduler.h"
19 
20 #include <KDebug>
21 
22 BTTransferHandler::BTTransferHandler(BTTransfer * transfer, Scheduler * scheduler)
23  : TransferHandler(transfer, scheduler),
24  m_transfer(transfer)
25 {
26  advancedDetails = 0;
27  scanDlg = 0;
28 }
29 
30 BTTransferHandler::~BTTransferHandler()
31 {
32  if(advancedDetails)
33  delete(advancedDetails);
34 }
35 
36 void BTTransferHandler::createAdvancedDetails()
37 {
38  if (!torrentControl())
39  return;
40  kDebug(5001);
41 
42  if (!advancedDetails)
43  {
44  kDebug(5001) << "Going to create AdvancedDetails";
45  advancedDetails = new BTAdvancedDetailsWidget(this);
46  advancedDetails->show();
47  connect(advancedDetails, SIGNAL(aboutToClose()), SLOT(removeAdvancedDetails()));
48  if (m_transfer->torrentControl())
49  {
50  m_transfer->torrentControl()->setMonitor(0);
51  m_transfer->torrentControl()->setMonitor(m_transfer);
52  }
53  }
54 }
55 
56 void BTTransferHandler::removeAdvancedDetails()
57 {
58  advancedDetails->close();
59  advancedDetails = 0;
60 }
61 
62 kt::Monitor* BTTransferHandler::torrentMonitor() const
63 {
64  if (advancedDetails)
65  return advancedDetails->torrentMonitor();
66  else
67  return 0;
68 }
69 
70 void BTTransferHandler::createScanDlg()
71 {
72  if (!torrentControl())
73  return;
74 #if LIBKTORRENT_VERSION < 0x010100
75  if (scanDlg)
76  {
77  scanDlg->stop();
78  scanDlg->close();
79  }
80 #endif
81 
82 #if LIBKTORRENT_VERSION >= 0x010200
83  scanDlg = new kt::ScanDlg(m_transfer->torrentControl()->startDataCheck(false, 0, m_transfer->chunksTotal()), 0);//TODO: Maybe start/stop it
84  scanDlg->exec();
85 #elif LIBKTORRENT_VERSION >= 0x010100
86  scanDlg = new kt::ScanDlg(m_transfer->torrentControl()->startDataCheck(false), 0);//TODO: Maybe start/stop it
87  scanDlg->exec();
88 #else
89  scanDlg = new kt::ScanDlg(0);
90  scanDlg->show();
91  scanDlg->execute(torrentControl(), false);
92  connect(scanDlg, SIGNAL(finished(int)), SLOT(removeScanDlg()));
93 #endif
94 }
95 #if LIBKTORRENT_VERSION < 0x010100
96 void BTTransferHandler::removeScanDlg()
97 {
98  kDebug(5001);
99  scanDlg = 0;
100 }
101 #endif
TransferHandler
Class TransferHandler:
Definition: transferhandler.h:48
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
bttransferhandler.h
BTTransferHandler::createAdvancedDetails
void createAdvancedDetails()
Definition: bttransferhandler.cpp:36
scandlg.h
BTTransferHandler::torrentControl
bt::TorrentControl * torrentControl() const
Definition: bttransferhandler.h:44
scheduler.h
BTTransferHandler::~BTTransferHandler
virtual ~BTTransferHandler()
Definition: bttransferhandler.cpp:30
bttransfer.h
BTAdvancedDetailsWidget
Definition: btadvanceddetailswidget.h:34
BTTransfer::chunksTotal
int chunksTotal() const
Definition: bttransfer.cpp:530
BTTransfer
Definition: bttransfer.h:30
BTTransferHandler::torrentMonitor
kt::Monitor * torrentMonitor() const
Definition: bttransferhandler.cpp:62
BTAdvancedDetailsWidget::torrentMonitor
kt::Monitor * torrentMonitor() const
Definition: btadvanceddetailswidget.cpp:88
BTTransfer::torrentControl
bt::TorrentControl * torrentControl()
Definition: bttransfer.cpp:610
BTTransferHandler::BTTransferHandler
BTTransferHandler(BTTransfer *transfer, Scheduler *scheduler)
Definition: bttransferhandler.cpp:22
BTTransferHandler::createScanDlg
void createScanDlg()
Definition: bttransferhandler.cpp:70
kt::ScanDlg
Definition: scandlg.h:76
btadvanceddetailswidget.h
kt::ScanDlg::execute
void execute(bt::TorrentInterface *tc, bool silently)
Starts the scan threadvent(QC.
Definition: scandlg.cpp:164
monitor.h
kt::Monitor
Definition: monitor.h:39
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

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

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal