diff --git a/executebrowserplugin.cpp b/executebrowserplugin.cpp --- a/executebrowserplugin.cpp +++ b/executebrowserplugin.cpp @@ -65,31 +65,37 @@ QUrl ExecuteBrowserPlugin::url( KDevelop::ILaunchConfiguration* cfg, QString& err_ ) const { - QUrl url; - - if( !cfg ) - { - return url; - } - KConfigGroup grp = cfg->config(); - - QString host = grp.readEntry( ExecuteBrowserPlugin::serverEntry, "" ); - if( host.isEmpty() ) - { - err_ = i18n("No valid server specified"); - qCWarning(KDEV_EXECUTEBROWSER) << "Launch Configuration:" << cfg->name() << "no valid server specified"; - return url; - } - url.setScheme("http"); - url.setHost(host); - url.setPath(grp.readEntry( ExecuteBrowserPlugin::pathEntry, "" )); - { - QString q = grp.readEntry( ExecuteBrowserPlugin::argumentsEntry, "" ); - if (!q.isEmpty()) { - url.setQuery(q); - } - } - return url; + QUrl url; + if( !cfg ) + { + return url; + } + KConfigGroup grp = cfg->config(); + + QString host = grp.readEntry( ExecuteBrowserPlugin::serverEntry, "" ); + if( host.isEmpty() ) + { + err_ = i18n("Empty server in launch configuration"); + qCWarning(KDEV_EXECUTEBROWSER) << "Launch Configuration:" << cfg->name() << err_; + return url; + } + + QString path(grp.readEntry( ExecuteBrowserPlugin::pathEntry, "" )); + if( !host.endsWith("/") && !path.isEmpty() && !path.startsWith("/") ) { + host += "/"; + } + url.setUrl(host + path); + QString q = grp.readEntry( ExecuteBrowserPlugin::argumentsEntry, "" ); + if (!q.isEmpty()) { + url.setQuery(q); + } + if( url.toString().isEmpty() ) { + err_ = i18n("Invalid launch configuration"); + qCWarning(KDEV_EXECUTEBROWSER) << "Launch Configuration:" << cfg->name() << err_; + return url; + } + qCDebug(KDEV_EXECUTEBROWSER) << "Url:" << url.toString(); + return url; } QString ExecuteBrowserPlugin::browser( ILaunchConfiguration* cfg ) const