summaryrefslogtreecommitdiff
path: root/src/qdoc/cppcodeparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/cppcodeparser.cpp')
-rw-r--r--src/qdoc/cppcodeparser.cpp24
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);