PS: I wrote: > So, Lukáš Tinkl answered me on #fedora-kde IRC. For posterity: > * Qt 5.4 introduces a new overload: > http://doc-snapshot.qt-project.org/qt5-5.4/qurl.html#fromUserInput-2 > with a third parameter that solves this issue. > * This is how Okular solves the problem without hard-depending on Qt 5.4: > http://quickgit.kde.org/?p=okular.git&a=commit&h=d98b4d920037422fe052ffa2633349d41fdbe02e Sorry for yet another self-reply, but I'll point out that Okular currently uses the two-argument form, which according to the documentation is enough when only existing files need to be supported, but I definitely recommend passing the third QUrl::AssumeLocalFile argument. The reason is that I don't want Kompare (or most other applications that accept either a file or a URL) to do a hostname lookup if it's passed a nonexisting file. I think it doesn't make any sense to assume a URL if no http:// is given. It sends mistyped file names out as DNS lookups, which can even be argued to be a security issue. Thus, the Kompare code will probably look like this: QUrl urlFromArg(const QString& arg) { #if QT_VERSION >= 0x050400 return QUrl::fromUserInput(arg, QDir::currentPath(), QUrl::AssumeLocalFile); #else // Logic from QUrl::fromUserInput(QString, QString, UserInputResolutionOptions) return (QUrl(arg, QUrl::TolerantMode).isRelative() && !QDir::isAbsolutePath(arg)) ? QUrl::fromLocalFile(QDir::current().absoluteFilePath(arg)) : QUrl::fromUserInput(arg); #endif } Kevin Kofler