diff --git a/src/libs/utils/filepath.cpp b/src/libs/utils/filepath.cpp index 08f26ba7af9..735c6b2fbd6 100644 --- a/src/libs/utils/filepath.cpp +++ b/src/libs/utils/filepath.cpp @@ -977,9 +977,7 @@ bool FilePath::operator>=(const FilePath &other) const FilePath FilePath::operator+(const QString &s) const { - FilePath res = *this; - res.m_path += s; - return res; + return pathAppended(s); } /// \returns whether FilePath is a child of \a s diff --git a/tests/auto/utils/fileutils/tst_fileutils.cpp b/tests/auto/utils/fileutils/tst_fileutils.cpp index b92d9996155..0e6d1d0ed22 100644 --- a/tests/auto/utils/fileutils/tst_fileutils.cpp +++ b/tests/auto/utils/fileutils/tst_fileutils.cpp @@ -85,6 +85,8 @@ private slots: void startsWithDriveLetter_data(); void onDevice(); void onDevice_data(); + void plus(); + void plus_data(); private: QTemporaryDir tempDir; @@ -785,5 +787,23 @@ void tst_fileutils::onDevice() { QCOMPARE(path.onDevice(templatePath), expected); } +void tst_fileutils::plus_data() { + tst_fileutils::pathAppended_data(); +} + +void tst_fileutils::plus() +{ + QFETCH(QString, left); + QFETCH(QString, right); + QFETCH(QString, expected); + + const FilePath fleft = FilePath::fromString(left); + const FilePath fexpected = FilePath::fromString(expected); + + const FilePath result = fleft + right; + + QCOMPARE(fexpected, result); +} + QTEST_GUILESS_MAIN(tst_fileutils) #include "tst_fileutils.moc"