[kgraphviewer-devel] [KGraphViewer/libkgraphviz] 387743a: Remove some redundant code, reduce debug spam
Kevin Funk
krf at electrostorm.net
Thu Jan 13 17:30:00 CET 2011
commit 387743a53221671a1bec651c5f003252669834cb
branch libkgraphviz
Author: Kevin Funk <krf at electrostorm.net>
Date: Thu Jan 13 15:59:19 2011 +0100
Remove some redundant code, reduce debug spam
Also fixes a bug when redrawing a relayouted graph.
diff --git a/src/kgraphviz/canvasedge.cpp b/src/kgraphviz/canvasedge.cpp
index 11bc539..df33099 100644
--- a/src/kgraphviz/canvasedge.cpp
+++ b/src/kgraphviz/canvasedge.cpp
@@ -450,7 +450,6 @@ void CanvasEdge::paint(QPainter* p, const QStyleOptionGraphicsItem* option,
void CanvasEdge::computeBoundingRect()
{
Q_D(CanvasEdge);
- kDebug();
//invalidate bounding region cache
d->m_boundingRegion = QPainterPath();
if (edge()->renderOperations().isEmpty())
diff --git a/src/kgraphviz/dotgraph.cpp b/src/kgraphviz/dotgraph.cpp
index 64d05d2..9ea588b 100644
--- a/src/kgraphviz/dotgraph.cpp
+++ b/src/kgraphviz/dotgraph.cpp
@@ -428,28 +428,10 @@ void DotGraph::updateWithGraph(graph_t* newGraph)
{
Q_D(DotGraph);
- kDebug();
-
- // copy global graph render operations and attributes
- renderOperations().clear();
- if (agget(newGraph, (char*)"_draw_") != NULL)
- {
- parse_renderop(agget(newGraph, (char*)"_draw_"), renderOperations());
- kDebug() << "_draw_: element renderOperations size is now " << renderOperations().size();
- }
- if (agget(newGraph, (char*)"_ldraw_") != NULL)
- {
- parse_renderop(agget(newGraph, (char*)"_ldraw_"), renderOperations());
- kDebug() << "_ldraw_: element renderOperations size is now " << renderOperations().size();
- }
-
- Agsym_t *attr = agfstattr(newGraph);
- while(attr)
- {
- kDebug() << newGraph->name << ":" << attr->name << agxget(newGraph,attr->index);
- m_attributes[attr->name] = agxget(newGraph,attr->index);
- attr = agnxtattr(newGraph,attr);
- }
+ kDebug() << newGraph;
+ QList<QString> drawingAttributes;
+ drawingAttributes << "_draw_" << "_ldraw_";
+ importFromGraphviz(newGraph, drawingAttributes);
// copy subgraphs
for (edge_t* e = agfstout(newGraph->meta_node->graph, newGraph->meta_node); e;
@@ -481,10 +463,7 @@ void DotGraph::updateWithGraph(graph_t* newGraph)
// copy nodes
node_t* ngn = agfstnode(newGraph);
- kDebug() << "first node:" << (void*)ngn;
-
while (ngn != NULL)
-// foreach (GraphNode* ngn, newGraph.nodes())
{
kDebug() << "node " << ngn->name;
if (nodes().contains(ngn->name))
@@ -511,7 +490,7 @@ void DotGraph::updateWithGraph(graph_t* newGraph)
edge_t* nge = agfstout(newGraph, ngn);
while (nge != NULL)
{
- kDebug() << "edge" << nge->id << edges();
+ kDebug() << "edge" << nge->id;
const QString edgeName = QString::number(nge->id);
if (edges().contains(edgeName))
{
@@ -591,7 +570,7 @@ void DotGraph::updateWithGraph(const DotGraph& newGraph)
}
foreach (GraphNode* ngn, newGraph.nodes())
{
- kDebug() << "node " << ngn->id();
+ kDebug() << "node" << ngn->id();
if (nodes().contains(ngn->id()))
{
kDebug() << "known";
@@ -1035,7 +1014,6 @@ void DotGraph::renameNode(const QString& oldNodeName, const QString& newNodeName
QString DotGraph::backColor() const
{
- kDebug();
if (m_attributes.find("bgcolor") != m_attributes.end())
{
return m_attributes["bgcolor"];
diff --git a/src/kgraphviz/dotgraphview.cpp b/src/kgraphviz/dotgraphview.cpp
index 4412dfc..4a7b330 100644
--- a/src/kgraphviz/dotgraphview.cpp
+++ b/src/kgraphviz/dotgraphview.cpp
@@ -686,15 +686,12 @@ void DotGraphView::slotSelectionChanged()
bool DotGraphView::displayGraph()
{
Q_D(DotGraphView);
- kDebug() << d->m_graph->backColor();
-// hide();
viewport()->setUpdatesEnabled(false);
if (d->m_graph->backColor().size() != 0)
{
setBackgroundColor(QColor(d->m_graph->backColor()));
}
- // TODO: Clear canvas
if (d->m_graph->nodes().size() > KGV_MAX_PANNER_NODES)
{
@@ -720,7 +717,7 @@ bool DotGraphView::displayGraph()
// kDebug() << "sceneRect is now " << scene()->sceneRect();
- kDebug() << "Creating" << d->m_graph->subgraphs().size() << "CanvasSubgraphs from" << d->m_graph;
+ kDebug() << "Handling" << d->m_graph->subgraphs().size() << "CanvasSubgraphs from" << d->m_graph;
int zvalue = -1;
foreach (GraphSubgraph* gsubgraph, d->m_graph->subgraphs())
{
@@ -729,7 +726,7 @@ bool DotGraphView::displayGraph()
zvalue = newZvalue;
}
- kDebug() << "Creating" << d->m_graph->nodes().size() << "nodes from" << d->m_graph;
+ kDebug() << "Handling" << d->m_graph->nodes().size() << "nodes from" << d->m_graph;
GraphNodeMap::const_iterator it = d->m_graph->nodes().constBegin();
for (; it != d->m_graph->nodes().constEnd();it++)
{
@@ -758,10 +755,10 @@ bool DotGraphView::displayGraph()
element->computeBoundingRect();
}
- kDebug() << "Creating" << d->m_graph->edges().size() << "edges from" << d->m_graph;
+ kDebug() << "Handling" << d->m_graph->edges().size() << "edges from" << d->m_graph;
foreach (GraphEdge* gedge, d->m_graph->edges())
{
- kDebug() << "One GraphEdge:" << gedge->id();
+ kDebug() << "GraphEdge:" << gedge->id();
if (gedge->canvasElement() == 0
&& gedge->fromNode() != 0
&& gedge->toNode() != 0)
@@ -787,7 +784,7 @@ bool DotGraphView::displayGraph()
element->computeBoundingRect();
}
- kDebug() << "Adding graph render operations: " << d->m_graph->renderOperations().size();
+// kDebug() << "Adding graph render operations: " << d->m_graph->renderOperations().size();
foreach (const DotRenderOp& dro, d->m_graph->renderOperations())
{
if ( dro.renderop == "T" )
diff --git a/src/kgraphviz/graphedge.cpp b/src/kgraphviz/graphedge.cpp
index bf850a8..f42462c 100644
--- a/src/kgraphviz/graphedge.cpp
+++ b/src/kgraphviz/graphedge.cpp
@@ -92,62 +92,20 @@ const QString GraphEdge::color(uint i)
void GraphEdge::updateWithEdge(const GraphEdge& edge)
{
- kDebug() << id() << edge.id();
m_arrowheads = edge.arrowheads();
m_colors = edge.colors();
m_dir = edge.dir();
m_fromNode = edge.m_fromNode;
m_toNode = edge.m_toNode;
+
GraphElement::updateWithElement(edge);
- if (canvasElement())
- {
- canvasElement()->computeBoundingRect();
- canvasElement()->modelChanged();
- }
}
void GraphEdge::updateWithEdge(edge_t* edge)
{
- kDebug();
- renderOperations().clear();
- if (agget(edge, (char*)"_draw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_draw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- if (agget(edge, (char*)"_ldraw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_ldraw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- if (agget(edge, (char*)"_hdraw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_hdraw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- if (agget(edge, (char*)"_tdraw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_tdraw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- if (agget(edge, (char*)"_hldraw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_hldraw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- if (agget(edge, (char*)"_tldraw_") != NULL)
- {
- parse_renderop(agget(edge, (char*)"_tldraw_"), renderOperations());
- kDebug() << "element renderOperations size is now " << renderOperations().size();
- }
- Agsym_t *attr = agfstattr(edge);
- while(attr)
- {
- kDebug() /*<< edge->name*/ << ":" << attr->name << agxget(edge,attr->index);
- m_attributes[attr->name] = agxget(edge,attr->index);
- attr = agnxtattr(edge,attr);
- }
-
+ QList<QString> drawingAttributes;
+ drawingAttributes << "_draw_" << "_ldraw_" << "_hdraw_" << "_tdraw_" << "_hldraw_" << "_tldraw_";
+ importFromGraphviz(edge, drawingAttributes);
}
QTextStream& operator<<(QTextStream& s, const GraphEdge& e)
diff --git a/src/kgraphviz/graphelement.cpp b/src/kgraphviz/graphelement.cpp
index 493c300..c311f0c 100644
--- a/src/kgraphviz/graphelement.cpp
+++ b/src/kgraphviz/graphelement.cpp
@@ -21,6 +21,7 @@
#include "canvaselement.h"
#include "support/dotdefaults.h"
+#include "support/dotgrammar.h"
#include <math.h>
@@ -166,6 +167,11 @@ void GraphElement::updateWithElement(const GraphElement& element)
kDebug() << "modified: emiting changed";*/
emit changed();
}
+
+ if (canvasElement())
+ {
+ canvasElement()->modelChanged();
+ }
kDebug() << "done" << renderOperations().size();
}
@@ -225,6 +231,24 @@ void GraphElement::exportToGraphviz(void* element) const
}
}
+void GraphElement::importFromGraphviz(void* element, QList<QString> drawingAttributes)
+{
+ if (!element) {
+ kWarning() << "Cannot import from null element";
+ return;
+ }
+
+ renderOperations().clear();
+ foreach(const QString& attribute, drawingAttributes) {
+ const char* value = agget(element, const_cast<char*>(qPrintable(attribute)));
+ if (!value)
+ continue;
+
+ parse_renderop(value, renderOperations());
+ kDebug() << attribute << "element renderOperations size is now " << renderOperations().size();
+ }
+}
+
QTextStream& operator<<(QTextStream& s, const GraphElement& n)
{
QMap<QString,QString>::const_iterator it, it_end;
diff --git a/src/kgraphviz/graphelement.h b/src/kgraphviz/graphelement.h
index b5a9dd9..e4d51d8 100644
--- a/src/kgraphviz/graphelement.h
+++ b/src/kgraphviz/graphelement.h
@@ -101,6 +101,7 @@ public:
void setZ(double z);
void exportToGraphviz(void* element) const;
+ void importFromGraphviz(void* element, QList<QString> drawingAttributes);
Q_SIGNALS:
void changed();
diff --git a/src/kgraphviz/graphnode.cpp b/src/kgraphviz/graphnode.cpp
index 840aeaa..0619e14 100644
--- a/src/kgraphviz/graphnode.cpp
+++ b/src/kgraphviz/graphnode.cpp
@@ -73,14 +73,14 @@ GraphNode::~GraphNode()
void GraphNode::updateWithNode(const GraphNode& node)
{
- kDebug() << id() << node.id();
GraphElement::updateWithElement(node);
- if (canvasElement())
- {
- canvasElement()->computeBoundingRect();
- canvasElement()->modelChanged();
- }
-// kDebug() << "done";
+}
+
+double GraphNode::width() const
+{
+ bool ok = false;
+ double result = m_attributes.value("width").toDouble(&ok);
+ return (ok ? result : -1.0);
}
void GraphNode::updateWithNode(node_t* node)
@@ -89,25 +89,9 @@ void GraphNode::updateWithNode(node_t* node)
m_attributes["id"] = node->name;
m_attributes["label"] = ND_label(node)->text;
- renderOperations().clear();
- if (agget(node, (char*)"_draw_") != NULL)
- {
- parse_renderop(agget(node, (char*)"_draw_"), renderOperations());
- kDebug() << "_draw_: element renderOperations size is now " << renderOperations().size();
- }
- if (agget(node, (char*)"_ldraw_") != NULL)
- {
- parse_renderop(agget(node, (char*)"_ldraw_"), renderOperations());
- kDebug() << "_ldraw_: element renderOperations size is now " << renderOperations().size();
- }
-
- Agsym_t *attr = agfstattr(node);
- while(attr)
- {
- kDebug() << node->name << ":" << attr->name << agxget(node,attr->index);
- m_attributes[attr->name] = agxget(node,attr->index);
- attr = agnxtattr(node,attr);
- }
+ QList<QString> drawingAttributes;
+ drawingAttributes << "_draw_" << "_ldraw_";
+ importFromGraphviz(node, drawingAttributes);
}
QTextStream& operator<<(QTextStream& s, const GraphNode& n)
diff --git a/src/kgraphviz/graphnode.h b/src/kgraphviz/graphnode.h
index 9f8c740..f53651e 100644
--- a/src/kgraphviz/graphnode.h
+++ b/src/kgraphviz/graphnode.h
@@ -60,6 +60,8 @@ public:
virtual void updateWithNode(const GraphNode& node);
virtual void updateWithNode(Agnode_t* node);
+
+ double width() const;
};
/** A map associating the ids of a graph's nodes to these nodes */
More information about the kgraphviewer-devel
mailing list