B_u_R_n
Гость
|
|
« : Апрель 19, 2010, 17:55 » |
|
Проблема такова, вот кусок кода: ftp = new QFtp(this); ftp1= new QFtp(this); connect(ftp, SIGNAL(commandFinished(int,bool)),this, SLOT(ftpCommandFinished(int,bool))); connect(ftp, SIGNAL(listInfo(QUrlInfo)),this, SLOT(addToList(QUrlInfo))); connect(ftp, SIGNAL(dataTransferProgress(qint64,qint64)),this, SLOT(updateDataTransferProgress(qint64,qint64))); connect(ftp1, SIGNAL(dataTransferProgress(qint64,qint64)),this, SLOT(updateDataTransferProgress(qint64,qint64))); connect(ftp1, SIGNAL(done(bool)), this, SLOT(ftpDone(bool))); connect(ftp1, SIGNAL(listInfo(QUrlInfo)),this, SLOT(ftpListInfo(const QUrlInfo &))); Стоят обработчики в обработчике на кнопку конект по фтп, после идет конект только на 1 фтп, а именно fileList->clear(); currentPath.clear(); isDirectory.clear(); QUrl url(ftpServerLineEdit->text()); if (!url.isValid() || url.scheme().toLower() != QLatin1String("ftp")) { ftp->connectToHost(ftpServerLineEdit->text(), 21); ftp->login();
} else { ftp->connectToHost(url.host(), url.port(21));
if (!url.userName().isEmpty()) ftp->login(QUrl::fromPercentEncoding(url.userName().toLatin1()), url.password()); else ftp->login(); if (!url.path().isEmpty()) ftp->cd(url.path()); ftp1->connectToHost(url.host(), url.port(21));
/*if (!url.userName().isEmpty()) ftp1->login(QUrl::fromPercentEncoding(url.userName().toLatin1()), url.password()); else ftp1->login(); if (!url.path().isEmpty()) ftp1->cd(url.path());*/ }
fileList->setEnabled(true); connectButton->setEnabled(false); connectButton->setText(tr("Disconnect")); statusLabel->setText(tr("Connecting to FTP server %1...").arg(ftpServerLineEdit->text())); Почему-то мой обработчик ftpDone() connect(ftp1, SIGNAL(done(bool)), this, SLOT(ftpDone(bool))); срабатывает, хотя конект на ftp1 я делаю только в обработчике на другую кнопку Поясните пожалуйста
|