summaryrefslogtreecommitdiffstats
path: root/src/corelib/io
diff options
context:
space:
mode:
authorAapo Haapanen <ext-aapo.haapanen@nokia.com>2012-01-26 14:11:40 (GMT)
committerQt by Nokia <qt-info@nokia.com>2012-02-02 09:05:21 (GMT)
commit182acb541a7b8ac0edca842fdc867751df723f50 (patch)
tree5d173cd2ece4cbe5aa397c98dedadcdf46349b99 /src/corelib/io
parentfb7e4ff9855bab4b06583f65198247ccfcc6599a (diff)
downloadQt-182acb541a7b8ac0edca842fdc867751df723f50.zip
Qt-182acb541a7b8ac0edca842fdc867751df723f50.tar.gz
Qt-182acb541a7b8ac0edca842fdc867751df723f50.tar.bz2
Change QUrl::toLocalFile to return path for relative urls
This change reverts the behaviour of QUrl::toLocalFile to the state it was before 4.8. After this change the function returns the path if the url is relative. Before this change an empty QString was returned. A relative url can refer to a local file, but that can't be determined from the url alone. Thus, it makes sense to return the path for such urls. Added documentation to explain that the function works like this to maintain backward compatability in 4.x, but the handling of relative URLs will change in 5.0. Task-number: QTBUG-19827 Change-Id: I8bb8f4603a5936c0359afc1b6ff98824fad6cbc9 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io')
-rw-r--r--src/corelib/io/qurl.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 4de8fe8..51631ff 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -6155,12 +6155,19 @@ QUrl QUrl::fromLocalFile(const QString &localFile)
returned value in the form found on SMB networks (for example,
"//servername/path/to/file.txt").
+ If this is a relative URL, in Qt 4.x this function returns the path to
+ maintain backward compatability. This will change from 5.0 onwards. Then
+ the path is returned only for URLs where the scheme is "file", and for
+ all other URLs an empty string is returned.
+
\sa fromLocalFile(), isLocalFile()
*/
QString QUrl::toLocalFile() const
{
+ if (!d) return QString();
+
// the call to isLocalFile() also ensures that we're parsed
- if (!isLocalFile())
+ if (!isLocalFile() && !d->scheme.isEmpty())
return QString();
QString tmp;