From b93ac6f9af04c14ca7b0c0af4e1e4a12a209827a Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sun, 29 Oct 2006 09:32:28 +0000 Subject: [PATCH] - Fixed error messages display when loading a corrupted torrent file --- src/GUI.cpp | 16 +++++++++++----- src/torrentAddition.h | 20 +++++++++++++------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/GUI.cpp b/src/GUI.cpp index 03ba53399..1b364a1ed 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -269,6 +269,7 @@ GUI::~GUI(){ // Update Info Bar information void GUI::setInfoBar(const QString& info, const QString& color){ + qDebug("setInfoBar called"); static unsigned short nbLines = 0; ++nbLines; // Check log size, clear it if too big @@ -1058,9 +1059,10 @@ void GUI::dropEvent(QDropEvent *event){ QString file; foreach(file, files){ if(options->useAdditionDialog()){ - torrentAdditionDialog *dialog = new torrentAdditionDialog(this, file.trimmed().replace("file://", "")); + torrentAdditionDialog *dialog = new torrentAdditionDialog(this); connect(dialog, SIGNAL(torrentAddition(const QString&, bool, const QString&)), this, SLOT(addTorrent(const QString&, bool, const QString&))); connect(dialog, SIGNAL(setInfoBarGUI(const QString&, const QString&)), this, SLOT(setInfoBar(const QString&, const QString&))); + dialog->showLoad(file.trimmed().replace("file://", "")); }else{ addTorrent(file.trimmed().replace("file://", "")); } @@ -1101,9 +1103,10 @@ void GUI::askForTorrents(){ if(!pathsList.empty()){ for(int i=0; iuseAdditionDialog()){ - torrentAdditionDialog *dialog = new torrentAdditionDialog(this, pathsList.at(i)); + torrentAdditionDialog *dialog = new torrentAdditionDialog(this); connect(dialog, SIGNAL(torrentAddition(const QString&, bool, const QString&)), this, SLOT(addTorrent(const QString&, bool, const QString&))); connect(dialog, SIGNAL(setInfoBarGUI(const QString&, const QString&)), this, SLOT(setInfoBar(const QString&, const QString&))); + dialog->showLoad(pathsList.at(i)); }else{ addTorrent(pathsList.at(i)); } @@ -1134,9 +1137,10 @@ void GUI::scanDirectory(){ } foreach(file, to_add){ if(options->useAdditionDialog()){ - torrentAdditionDialog *dialog = new torrentAdditionDialog(this, file, true); + torrentAdditionDialog *dialog = new torrentAdditionDialog(this); connect(dialog, SIGNAL(torrentAddition(const QString&, bool, const QString&)), this, SLOT(addTorrent(const QString&, bool, const QString&))); connect(dialog, SIGNAL(setInfoBarGUI(const QString&, const QString&)), this, SLOT(setInfoBar(const QString&, const QString&))); + dialog->showLoad(file, true); }else{ addTorrent(file, true); } @@ -1603,9 +1607,10 @@ void GUI::processParams(const QStringList& params){ downloadFromUrl(param); }else{ if(options->useAdditionDialog()){ - torrentAdditionDialog *dialog = new torrentAdditionDialog(this, param); + torrentAdditionDialog *dialog = new torrentAdditionDialog(this); connect(dialog, SIGNAL(torrentAddition(const QString&, bool, const QString&)), this, SLOT(addTorrent(const QString&, bool, const QString&))); connect(dialog, SIGNAL(setInfoBarGUI(const QString&, const QString&)), this, SLOT(setInfoBar(const QString&, const QString&))); + dialog->showLoad(param); }else{ addTorrent(param); } @@ -2397,9 +2402,10 @@ void GUI::processDownloadedFile(QString url, QString file_path, int return_code, } // Add file to torrent download list if(options->useAdditionDialog()){ - torrentAdditionDialog *dialog = new torrentAdditionDialog(this, file_path, false, url); + torrentAdditionDialog *dialog = new torrentAdditionDialog(this); connect(dialog, SIGNAL(torrentAddition(const QString&, bool, const QString&)), this, SLOT(addTorrent(const QString&, bool, const QString&))); connect(dialog, SIGNAL(setInfoBarGUI(const QString&, const QString&)), this, SLOT(setInfoBar(const QString&, const QString&))); + dialog->showLoad(file_path, false, url); }else{ addTorrent(file_path, false, url); } diff --git a/src/torrentAddition.h b/src/torrentAddition.h index 6a4d0b78c..c493d62b6 100644 --- a/src/torrentAddition.h +++ b/src/torrentAddition.h @@ -43,6 +43,10 @@ using namespace libtorrent; class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ Q_OBJECT + signals: + void setInfoBarGUI(const QString& info, const QString& color); + void torrentAddition(const QString& filePath, bool fromScanDir, const QString& from_url); + private: QString fileName; QString filePath; @@ -51,7 +55,7 @@ class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ QString from_url; public: - torrentAdditionDialog(QWidget *parent, QString filePath, bool fromScanDir=false, QString from_url=QString::null) : QDialog(parent), filePath(filePath), fromScanDir(fromScanDir), from_url(from_url){ + torrentAdditionDialog(QWidget *parent) : QDialog(parent) { setupUi(this); setAttribute(Qt::WA_DeleteOnClose); actionSelect->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/add.png"))); @@ -64,6 +68,12 @@ class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ home += QDir::separator(); } savePathTxt->setText(home+"qBT_dir"); + } + + void showLoad(QString filePath, bool fromScanDir=false, QString from_url=QString::null){ + this->filePath = filePath; + this->fromScanDir = fromScanDir; + this->from_url = from_url; std::ifstream in((const char*)filePath.toUtf8(), std::ios_base::binary); in.unsetf(std::ios_base::skipws); try{ @@ -91,7 +101,7 @@ class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ }else{ emit setInfoBarGUI(tr("Unable to decode torrent file:")+" '"+filePath+"'", "red"); } - emit setInfoBarGUI(tr("This file is either corrupted or this isn't a torrent."),"red"); + emit setInfoBarGUI(tr("This file is either corrupted or this isn't a torrent."), "red"); if(fromScanDir){ // Remove .corrupt file in case it already exists QFile::remove(filePath+".corrupt"); @@ -108,7 +118,7 @@ class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ }else{ emit setInfoBarGUI(tr("Unable to decode torrent file:")+" '"+filePath+"'", "red"); } - emit setInfoBarGUI(tr("This file is either corrupted or this isn't a torrent."),"red"); + emit setInfoBarGUI(tr("This file is either corrupted or this isn't a torrent."), "red"); if(fromScanDir){ // Remove .corrupt file in case it already exists QFile::remove(filePath+".corrupt"); @@ -258,10 +268,6 @@ class torrentAdditionDialog : public QDialog, private Ui_addTorrentDialog{ emit torrentAddition(filePath, fromScanDir, from_url); close(); } - - signals: - void setInfoBarGUI(const QString& message, const QString& color); - void torrentAddition(const QString& filePath, bool fromScanDir, const QString& from_url); }; #endif