This looks like a very ugly workaround, to me.
Does it.uri() return a QUrl, or a QString?
If a QString, then the problem is passing it to the QUrl constructor. QUrl in Qt4 is broken in that respect. (Fixed in Qt5).
Use KUrl instead, or use QUrl::fromEncoded(it.uri().toLatin1()). I'd prefer KUrl though, to keep this code readable and make it a one-char fix ;)
On July 19th, 2012, 12:45 a.m., Xuetian Weng wrote:
The problem is uri() return a QUrl, and the url inside it is already encoded. When it passed to createUDSEntryForUrl it actually encoded twice.
I wonder we should fix it in soprano or we should fix it when the original url is saved.
Can you test the following instead of your proposed patch:
kio_activities.cpp:127 QByteArray encodedPath = QUrl::toPercentEncoding(url.url(), "", "/");
The percent encoding was there mostly for the slashes. I've tested it with cyrilic and non-ascii latin characters.
On June 18th, 2012, 6:09 a.m., Xuetian Weng wrote:
Review request for KDE Runtime and Ivan Čukić.
By Xuetian Weng.
Updated June 18, 2012, 6:09 a.m.
The query result for the Uri is already encoded to PercentEncoding, thus url.url() will not get the correct url.
Not sure this should always handled in this case, or soprano itself (uri()) should be fixed.