From 0f062f42b9817205aab657dcfaeaa8c3ed302889 Mon Sep 17 00:00:00 2001 From: David Faure Date: Sun, 14 Jul 2013 00:45:14 +0200 Subject: QUrl: add fileName() method. Complements QUrl::RemoveFilename. Change-Id: Ieda43364214c3b7aee43040e176e29ad48c14271 Reviewed-by: Thiago Macieira --- src/corelib/io/qurl.cpp | 30 ++++++++++++++++++++++++++++++ src/corelib/io/qurl.h | 1 + 2 files changed, 31 insertions(+) (limited to 'src/corelib/io') diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index 3d7e18fdfa..00588da15f 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -2415,6 +2415,36 @@ QString QUrl::path(ComponentFormattingOptions options) const \sa setEncodedPath(), toEncoded() */ +/*! + \since 5.2 + + Returns the name of the file, excluding the directory path. + + Note that, if this QUrl object is given a path ending in a slash, the name of the file is considered empty. + + If the path doesn't contain any slash, it is fully returned as the fileName. + + Example: + + \snippet code/src_corelib_io_qurl.cpp 7 + + The \a options argument controls how to format the file name component. All + values produce an unambiguous result. With QUrl::FullyDecoded, all + percent-encoded sequences are decoded; otherwise, the returned value may + contain some percent-encoded sequences for some control sequences not + representable in decoded form in QString. + + \sa path() +*/ +QString QUrl::fileName(ComponentFormattingOptions options) const +{ + const QString ourPath = path(options); + const int slash = ourPath.lastIndexOf(QLatin1Char('/')); + if (slash == -1) + return ourPath; + return ourPath.mid(slash + 1); +} + /*! \since 4.2 diff --git a/src/corelib/io/qurl.h b/src/corelib/io/qurl.h index 5678c7813b..3018f6d0e4 100644 --- a/src/corelib/io/qurl.h +++ b/src/corelib/io/qurl.h @@ -224,6 +224,7 @@ public: void setPath(const QString &path, ParsingMode mode = TolerantMode); QString path(ComponentFormattingOptions options = PrettyDecoded) const; + QString fileName(ComponentFormattingOptions options = PrettyDecoded) const; bool hasQuery() const; void setQuery(const QString &query, ParsingMode mode = TolerantMode); -- cgit v1.2.3