forked from qt-creator/qt-creator
		
	
		
			
	
	
		
			114 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			114 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								#include "networkaccessmanager.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include <QtCore/QLocale>
							 | 
						||
| 
								 | 
							
								#include <QtNetwork/QNetworkReply>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifdef Q_OS_UNIX
							 | 
						||
| 
								 | 
							
								#include <sys/utsname.h>
							 | 
						||
| 
								 | 
							
								#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
							 |