# # # patch "guitone/src/model/Graph.cpp" # from [35fe7a0ea20b3254f120f8c39b60e925af131097] # to [d9f1ccf034c66818c7a7994210b318ae9a16c8e7] # # patch "guitone/src/view/dialogs/AncestryGraph.cpp" # from [4d168d008bd0e6043f946d4c5728a84370b3eea0] # to [2d96f818ed011d6ff7002182a63d54ece76b96eb] # ============================================================ --- guitone/src/model/Graph.cpp 35fe7a0ea20b3254f120f8c39b60e925af131097 +++ guitone/src/model/Graph.cpp d9f1ccf034c66818c7a7994210b318ae9a16c8e7 @@ -42,7 +42,8 @@ void Graph::parseOutput() void Graph::parseOutput() { - QStringList revisionList = AutomateCommand::data.split("\n"); + QStringList revisionList = AutomateCommand::data + .split("\n", QString::SkipEmptyParts); QMap nodeMap; QMap parentMap; @@ -57,16 +58,12 @@ void Graph::parseOutput() QString rev = revs.takeFirst(); // for whatever reason inserting every node as root node creates a // big memory hole - curNode = graph->insertNode(rev, -1, NULL); + QString * fullRev = new QString(rev); + curNode = graph->addNode(rev.left(8), -1, fullRev); // remember those for the 2nd pass nodeMap[rev] = curNode; parentMap[rev] = revs; - - if (i % 100 == 0) - { - qDebug("added %d nodes", i); - } } qDebug("Graph: created nodes"); @@ -88,13 +85,9 @@ void Graph::parseOutput() parentNode = nodeMap.value(parents.at(x)); if ( parentNode != 0 && curNode != 0 ) { - graph->insertEdge(*parentNode, *curNode); + graph->addEdge(*parentNode, *curNode); } } - if (i % 100 == 0) - { - qDebug("added edges for %d nodes", i); - } } qDebug("Graph: created edges"); @@ -103,6 +96,27 @@ void Graph::parseOutput() qDebug("Graph: generated root nodes"); + qan::Node::List rootNodes = graph->getRootNodes(); + + int rootNodeCount = rootNodes.size(); + + if (rootNodeCount > 1) + { + qan::Node * root = graph->addNode("ROOT"); + for (int x=0, y=rootNodeCount; x(graph->findObject(node)); + qDebug("Graph: root node rev: %s", qPrintable(*fullRev)); + graph->addEdge(*root, *node); + } + qDebug("Graph: connected %d root nodes to pseudo node", rootNodeCount); + + graph->generateRootNodes(); + + qDebug("Graph: root node count now: %d", graph->getRootNodes().size()); + } + emit graphCreated(); } ============================================================ --- guitone/src/view/dialogs/AncestryGraph.cpp 4d168d008bd0e6043f946d4c5728a84370b3eea0 +++ guitone/src/view/dialogs/AncestryGraph.cpp 2d96f818ed011d6ff7002182a63d54ece76b96eb @@ -38,6 +38,7 @@ AncestryGraph::AncestryGraph(QWidget* pa graphItemView = new qan::GraphItemView(graphFrame); graphItemView->setModel(graph->getGraph()); + graphItemView->layoutGraph(); graphItemView->hide(); hbox->addWidget(labelWait); @@ -58,12 +59,12 @@ void AncestryGraph::createGraphView( ) void AncestryGraph::createGraphView( ) { qan::VectorF origin(2); - origin(0) = 10.f; - origin(1) = 10.f; + origin(0) = 50.f; + origin(1) = 50.f; qan::VectorF spacing(2); - spacing(0) = 120.f; - spacing(1) = 55.f; + spacing(0) = 1200.f; + spacing(1) = 550.f; qan::Layout* layout = new qan::DirectedTree( origin,