From bb8d2b9ef14a3b7ec140f43e149f10573f67a54e Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Kempf Date: Sat, 22 Mar 2008 00:12:18 -0700 Subject: [PATCH] Fix the '@' disappearance in UDP addresses. --- modules/gui/qt4/components/open_panels.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/modules/gui/qt4/components/open_panels.cpp b/modules/gui/qt4/components/open_panels.cpp index 883f0a6c8d..c187aa7b59 100644 --- a/modules/gui/qt4/components/open_panels.cpp +++ b/modules/gui/qt4/components/open_panels.cpp @@ -452,11 +452,15 @@ void NetOpenPanel::updateProtocol( int idx ) { void NetOpenPanel::updateMRL() { QString mrl = ""; QString addr = ui.addressText->text(); + addr = QUrl::toPercentEncoding( addr, ":/?#@!$&'()*+,;=" ); int proto = ui.protocolCombo->currentIndex(); - if( addr.contains( "://") && proto != 5 ) { + if( addr.contains( "://") && ( proto != 5 || proto != 6 ) ) + { mrl = addr; - } else { + } + else + { switch( proto ) { case 0: mrl = "http://" + addr; @@ -480,7 +484,8 @@ void NetOpenPanel::updateMRL() { break; case 5: mrl = "udp://@"; - if( ui.ipv6->isEnabled() && ui.ipv6->isChecked() ) { + if( ui.ipv6->isEnabled() && ui.ipv6->isChecked() ) + { mrl += "[::]"; } mrl += QString(":%1").arg( ui.portSpin->value() ); @@ -489,16 +494,18 @@ void NetOpenPanel::updateMRL() { case 6: /* UDP multicast */ mrl = "udp://@"; /* Add [] to IPv6 */ - if ( addr.contains(':') && !addr.contains('[') ) { + if ( addr.contains(':') && !addr.contains('[') ) + { mrl += "[" + addr + "]"; - } else mrl += addr; + } + else mrl += addr; mrl += QString(":%1").arg( ui.portSpin->value() ); emit methodChanged("udp-caching"); } } // Encode the boring stuffs - mrl = QUrl( mrl ).toEncoded(); + if( ui.timeShift->isEnabled() && ui.timeShift->isChecked() ) { mrl += " :access-filter=timeshift"; } -- 2.39.5