void Account::setCredentials(AbstractCredentials *cred) { // set active credential manager QNetworkCookieJar *jar = 0; if (_am) { jar = _am->cookieJar(); jar->setParent(0); _am->deleteLater(); } if (_credentials) { credentials()->deleteLater(); } // The order for these two is important! Reading the credential's // settings accesses the account as well as account->_credentials _credentials = cred; cred->setAccount(this); _am = _credentials->getQNAM(); if (jar) { _am->setCookieJar(jar); } connect(_am, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), SLOT(slotHandleErrors(QNetworkReply*,QList<QSslError>))); connect(_credentials, SIGNAL(fetched()), SLOT(slotCredentialsFetched())); }
NetworkAccessManager::NetworkAccessManager(QObject *parent) : QNetworkAccessManager(parent) { QNetworkCookieJar* cookieJar = NetworkCookieJar::GetInstance(); setCookieJar(cookieJar); cookieJar->setParent(0); }
QNetworkAccessManager* TBNetworkAccessManagerFactory::create(QObject *parent) { QMutexLocker lock(&mutex); Q_UNUSED(lock); QNetworkAccessManager* manager = new TBNetworkAccessManager(parent); #ifdef Q_OS_SYMBIAN bool useDiskCache = Utility::Instance()->qtVersion() >= 0x040800; #else bool useDiskCache = true; #endif if (useDiskCache){ QNetworkDiskCache* diskCache = new QNetworkDiskCache(parent); QString dataPath = QDesktopServices::storageLocation(QDesktopServices::CacheLocation); QDir dir(dataPath); if (!dir.exists()) dir.mkpath(dir.absolutePath()); diskCache->setCacheDirectory(dataPath); diskCache->setMaximumCacheSize(3*1024*1024); manager->setCache(diskCache); } QNetworkCookieJar* cookieJar = TBNetworkCookieJar::GetInstance(); manager->setCookieJar(cookieJar); cookieJar->setParent(0); return manager; }
QNetworkAccessManager* ACNetworkAccessManagerFactory::create(QObject *parent) { QMutexLocker lock(&mutex); Q_UNUSED(lock); QNetworkAccessManager* manager = new ACNetworkAccessManager(parent); QNetworkCookieJar* cookieJar = ACNetworkCookieJar::GetInstance(); manager->setCookieJar(cookieJar); cookieJar->setParent(0); return manager; }