+
+QNetworkProxy Settings::createProxyFromString(QString proxystr)
+{
+ proxystr = proxystr.trimmed();
+ QString hostname = "";
+ quint16 port = 8080;
+ QString user;
+ QString pass;
+
+ QString proto;
+ int pos_proto = proxystr.indexOf("://");
+ if( pos_proto != -1 )
+ {
+ proto = proxystr.left(pos_proto+3);
+ proxystr = proxystr.mid(pos_proto+3);
+ }
+
+ QString temp;
+ QString temp2;
+ int pos_half = proxystr.indexOf('@');
+ if( pos_half==-1 ) {
+ temp = proxystr;
+ } else {
+ temp = proxystr.mid(pos_half+1);
+ temp2 = proxystr.left(pos_half);
+ }
+
+ if( !temp2.isNull() ) {
+ int pos_pass = temp2.indexOf(':');
+ if( pos_pass==-1 ) {
+ user = temp2;
+ } else {
+ user = temp2.left(pos_pass);
+ pass = temp2.mid(pos_pass+1);
+ }
+ }
+
+ int pos_port = temp.indexOf(':');
+ if( pos_port==-1 ) {
+ hostname = temp;
+ } else {
+ hostname = temp.left(pos_port);
+ port = temp.mid(pos_port+1).remove('/').toInt();
+ }
+
+ hostname = proto + hostname;
+ qDebug() << "creating proxy" << hostname << port << user << pass;
+
+ QNetworkProxy p(QNetworkProxy::HttpProxy, hostname, port, user, pass);
+ return p;
+}