File indexing completed on 2024-04-28 04:57:30
0001 /* This file is part of the KDE project 0002 0003 Copyright (C) 2007 Lukas Appelhans <l.appelhans@gmx.de> 0004 0005 This program is free software; you can redistribute it and/or 0006 modify it under the terms of the GNU General Public 0007 License as published by the Free Software Foundation; either 0008 version 2 of the License, or (at your option) any later version. 0009 */ 0010 0011 #include "bttransferhandler.h" 0012 0013 #include "advanceddetails/btadvanceddetailswidget.h" 0014 #include "advanceddetails/monitor.h" 0015 #include "scandlg.h" 0016 0017 #include "core/scheduler.h" 0018 0019 #include "kget_debug.h" 0020 0021 BTTransferHandler::BTTransferHandler(BTTransfer *transfer, Scheduler *scheduler) 0022 : TransferHandler(transfer, scheduler) 0023 , m_transfer(transfer) 0024 { 0025 advancedDetails = nullptr; 0026 scanDlg = nullptr; 0027 } 0028 0029 BTTransferHandler::~BTTransferHandler() 0030 { 0031 if (advancedDetails) 0032 delete (advancedDetails); 0033 } 0034 0035 void BTTransferHandler::createAdvancedDetails() 0036 { 0037 if (!torrentControl()) 0038 return; 0039 qCDebug(KGET_DEBUG); 0040 0041 if (!advancedDetails) { 0042 qCDebug(KGET_DEBUG) << "Going to create AdvancedDetails"; 0043 advancedDetails = new BTAdvancedDetailsWidget(this); 0044 advancedDetails->show(); 0045 connect(advancedDetails, &BTAdvancedDetailsWidget::aboutToClose, this, &BTTransferHandler::removeAdvancedDetails); 0046 if (m_transfer->torrentControl()) { 0047 m_transfer->torrentControl()->setMonitor(nullptr); 0048 m_transfer->torrentControl()->setMonitor(m_transfer); 0049 } 0050 } 0051 } 0052 0053 void BTTransferHandler::removeAdvancedDetails() 0054 { 0055 advancedDetails->close(); 0056 advancedDetails = nullptr; 0057 } 0058 0059 kt::Monitor *BTTransferHandler::torrentMonitor() const 0060 { 0061 if (advancedDetails) 0062 return advancedDetails->torrentMonitor(); 0063 else 0064 return nullptr; 0065 } 0066 0067 void BTTransferHandler::createScanDlg() 0068 { 0069 if (!torrentControl()) 0070 return; 0071 0072 scanDlg = new kt::ScanDlg(m_transfer->torrentControl()->startDataCheck(false, 0, m_transfer->chunksTotal()), nullptr); // TODO: Maybe start/stop it 0073 scanDlg->exec(); 0074 } 0075 0076 #include "moc_bttransferhandler.cpp"