}
if( ui.subCheckBox->isChecked() ) {
- mrl.append( " :sub-file=" + ui.subInput->text() );
+ mrl.append( " :sub-file=\"" + ui.subInput->text() + "\"" );
int align = ui.alignSubComboBox->itemData(
ui.alignSubComboBox->currentIndex() ).toInt();
mrl.append( " :subsdec-align=" + QString().setNum( align ) );
/* DVD */
if( ui.dvdRadioButton->isChecked() ) {
if( !ui.dvdsimple->isChecked() )
- mrl = "dvd://";
+ mrl = "\"dvd://";
else
- mrl = "dvdsimple://";
+ mrl = "\"dvdsimple://";
mrl += ui.deviceCombo->currentText();
emit methodChanged( "dvdnav-caching" );
/* VCD */
} else if ( ui.vcdRadioButton->isChecked() ) {
- mrl = "vcd://" + ui.deviceCombo->currentText();
+ mrl = "\"vcd://" + ui.deviceCombo->currentText();
emit methodChanged( "vcd-caching" );
if( ui.titleSpin->value() > 0 ) {
/* CDDA */
} else {
- mrl = "cdda://" + ui.deviceCombo->currentText();
+ mrl = "\"cdda://" + ui.deviceCombo->currentText();
if( ui.titleSpin->value() > 0 ) {
QString("@%1").arg( ui.titleSpin->value() );
}
}
+ mrl += "\"";
+
if ( ui.dvdRadioButton->isChecked() || ui.vcdRadioButton->isChecked() )
{
if ( ui.audioSpin->value() >= 0 ) {
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;
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() );
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";
}