void Shoter::upload(const QString &hostUrl, QHttpMultiPart *multipart) { QUrl url(hostUrl); QNetworkRequest request(url); QNetworkReply *r = m_manager->post(request, multipart); multipart->setParent(r); QObject::connect(r, SIGNAL(uploadProgress(qint64, qint64)), this, SLOT(upProgress(qint64, qint64))); }
void UpManager::handleUploadRequest (IStorageAccount *acc, const QString& path) { if (!Uploads_.contains (acc)) { QObject *accObj = acc->GetObject (); connect (accObj, SIGNAL (gotURL (QUrl, QString)), this, SLOT (handleGotURL (QUrl, QString))); connect (accObj, SIGNAL (upError (QString, QString)), this, SLOT (handleError (QString, QString))); connect (accObj, SIGNAL (upStatusChanged (QString, QString)), this, SLOT (handleUpStatusChanged (QString, QString))); connect (accObj, SIGNAL (upProgress (quint64, quint64, QString)), this, SLOT (handleUpProgress (quint64, quint64, QString))); } else if (Uploads_ [acc].contains (path)) { const Entity& e = Util::MakeNotification ("NetStoreManager", tr ("%1 is already uploading to %2.") .arg (QFileInfo (path).fileName ()) .arg (acc->GetAccountName ()), PWarning_); emit gotEntity (e); return; } acc->Upload (path); auto plugin = qobject_cast<IStoragePlugin*> (acc->GetParentPlugin ()); QList<QStandardItem*> row; row << new QStandardItem (tr ("Uploading %1 to %2...") .arg (QFileInfo (path).fileName ()) .arg (plugin->GetStorageName ())); row << new QStandardItem (); row << new QStandardItem (tr ("Initializing...")); ReprModel_->appendRow (row); ReprItems_ [acc] [path] = row; }