aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abstractmetabuilder.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/abstractmetabuilder.cpp b/abstractmetabuilder.cpp
index 16047a64c..54c4a7051 100644
--- a/abstractmetabuilder.cpp
+++ b/abstractmetabuilder.cpp
@@ -47,6 +47,7 @@
#include <cstdio>
#include <algorithm>
#include "graph.h"
+#include <QTemporaryFile>
static QString stripTemplateArgs(const QString &name)
{
@@ -2667,7 +2668,15 @@ AbstractMetaClassList AbstractMetaBuilder::classesTopologicalSorted(const Abstra
AbstractMetaClassList result;
unmappedResult = graph.topologicalSort();
if (unmappedResult.isEmpty()) {
- ReportHandler::warning("Cyclic dependency found!");
+ QTemporaryFile tempFile;
+ tempFile.setAutoRemove(false);
+ tempFile.open();
+ QHash<int, QString> hash;
+ QHash<QString, int>::iterator it = map.begin();
+ for (; it != map.end(); ++it)
+ hash[it.value()] = it.key();
+ graph.dumpDot(hash, tempFile.fileName());
+ ReportHandler::warning("Cyclic dependency found! Graph can be found at "+tempFile.fileName());
} else {
foreach (int i, unmappedResult) {
Q_ASSERT(reverseMap.contains(i));