#include "networkaccessmanager.h" #include #include #ifdef Q_OS_UNIX #include #endif #include "coreconstants.h" /*! \class Core::NetworkManager \brief Network Access Manager for use with Qt Creator. Common initialization, Qt Creator User Agent */ namespace Core { static const QString getOsString() { QString osString; #if defined(Q_OS_WIN) switch (QSysInfo::WindowsVersion) { case (QSysInfo::WV_4_0): osString += QLatin1String("WinNT4.0"); break; case (QSysInfo::WV_5_0): osString += QLatin1String("Windows NT 5.0"); break; case (QSysInfo::WV_5_1): osString += QLatin1String("Windows NT 5.1"); break; case (QSysInfo::WV_5_2): osString += QLatin1String("Windows NT 5.2"); break; case (QSysInfo::WV_6_0): osString += QLatin1String("Windows NT 6.0"); break; case (QSysInfo::WV_6_1): osString += QLatin1String("Windows NT 6.1"); break; default: osString += QLatin1String("Windows NT (Unknown)"); break; } #elif defined (Q_OS_MAC) if (QSysInfo::ByteOrder == QSysInfo::BigEndian) osString += QLatin1String("PPC "); else osString += QLatin1String("Intel "); osString += QLatin1String("Mac OS X "); switch (QSysInfo::MacintoshVersion) { case (QSysInfo::MV_10_3): osString += QLatin1String("10_3"); break; case (QSysInfo::MV_10_4): osString += QLatin1String("10_4"); break; case (QSysInfo::MV_10_5): osString += QLatin1String("10_5"); break; case (QSysInfo::MV_10_6): osString += QLatin1String("10_6"); break; default: osString += QLatin1String("(Unknown)"); break; } #elif defined (Q_OS_UNIX) struct utsname uts; if (uname(&uts) == 0) { osString += QLatin1String(uts.sysname); osString += QLatin1Char(' '); osString += QLatin1String(uts.release); } else { osString += QLatin1String("Unix (Unknown)"); } #else ossttring = QLatin1String("Unknown OS"); #endif return osString; } NetworkAccessManager::NetworkAccessManager(QObject *parent) : QNetworkAccessManager(parent) { } void NetworkAccessManager::getUrl(const QUrl &url) { QNetworkRequest req; req.setUrl(url); get(req); } QNetworkReply* NetworkAccessManager::createRequest(Operation op, const QNetworkRequest &request, QIODevice *outgoingData) { QString agentStr = QString::fromLatin1("Qt-Creator/%1 (QNetworkAccessManager %2; %3; %4; %5 bit)") .arg(Core::Constants::IDE_VERSION_LONG).arg(qVersion()) .arg(getOsString()).arg(QLocale::system().name()) .arg(QSysInfo::WordSize); QNetworkRequest req(request); req.setRawHeader("User-Agent", agentStr.toLatin1()); return QNetworkAccessManager::createRequest(op, req, outgoingData); } } // namespace utils