- Multithreaded deletionThread (harmonized with deleteThread)

This commit is contained in:
Christophe Dumez 2007-07-31 08:52:04 +00:00
parent 5518144b26
commit 570296c29e
4 changed files with 108 additions and 26 deletions

View file

@ -66,6 +66,8 @@ bittorrent::bittorrent(){
downloader = new downloadThread(this);
connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString)));
connect(downloader, SIGNAL(downloadFailure(QString, QString)), this, SLOT(HandleDownloadFailure(QString, QString)));
// File deleter (thread)
deleter = new deleteThread(this);
}
// Main destructor
@ -76,6 +78,7 @@ bittorrent::~bittorrent(){
saveDHTEntry();
saveFastResumeAndRatioData();
// Delete our objects
delete deleter;
delete timerAlerts;
delete ETARefresher;
delete downloader;
@ -184,17 +187,10 @@ void bittorrent::deleteTorrent(QString hash, bool permanent){
// Remove from Hard drive
qDebug("Removing this on hard drive: %s", qPrintable(savePath+QDir::separator()+fileName));
// Deleting in a thread to avoid GUI freeze
deleteThread *deleter = new deleteThread(savePath+QDir::separator()+fileName);
connect(deleter, SIGNAL(deletionFinished(deleteThread*)), this, SLOT(cleanDeleter(deleteThread*)));
deleter->deletePath(savePath+QDir::separator()+fileName);
}
}
// slot to destroy a deleteThread once it finished deletion
void bittorrent::cleanDeleter(deleteThread* deleter){
qDebug("Deleting deleteThread because it finished deletion");
delete deleter;
}
// Pause a running torrent
bool bittorrent::pauseTorrent(QString hash){
bool change = false;