diff options
Diffstat (limited to 'src/qdoc/cppcodeparser.cpp')
-rw-r--r-- | src/qdoc/cppcodeparser.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/qdoc/cppcodeparser.cpp b/src/qdoc/cppcodeparser.cpp index 6d5ec5af0..a4ce5fa2e 100644 --- a/src/qdoc/cppcodeparser.cpp +++ b/src/qdoc/cppcodeparser.cpp @@ -39,6 +39,8 @@ #include <qdebug.h> #include "generator.h" +#include <algorithm> + QT_BEGIN_NAMESPACE /* qmake ignore Q_OBJECT */ @@ -886,18 +888,20 @@ void CppCodeParser::setExampleFileLists(PageNode *pn) if (!exampleFiles.isEmpty()) { // move main.cpp and to the end, if it exists QString mainCpp; - QMutableStringListIterator i(exampleFiles); - i.toBack(); - while (i.hasPrevious()) { - QString fileName = i.previous(); + + const auto isGeneratedOrMainCpp = [&mainCpp](const QString &fileName) { if (fileName.endsWith("/main.cpp")) { - mainCpp = fileName; - i.remove(); + if (mainCpp.isEmpty()) + mainCpp = fileName; + return true; } - else if (fileName.contains("/qrc_") || fileName.contains("/moc_") - || fileName.contains("/ui_")) - i.remove(); - } + return fileName.contains("/qrc_") || fileName.contains("/moc_") || fileName.contains("/ui_"); + }; + + exampleFiles.erase(std::remove_if(exampleFiles.begin(), exampleFiles.end(), + isGeneratedOrMainCpp), + exampleFiles.end()); + if (!mainCpp.isEmpty()) exampleFiles.append(mainCpp); |