ui: Show call graphs, inheritance trees and include trees for active symbol (issue 249 337)

* Added TrailLayouter with Sugiyama dependency layouting
* Layouter supports horizontal and vertical layouts
* Added basic ui to graph view for showing incoming and outgoing paths
* Added depth slider, with infinity at maximum
* Disable trail ui when not available
* Added trail messages to undo stack and only use last one when undoing
* Added QtGraphLineBezier for trail graphs and refactored other line types
* Disabled edge activation for trail layouts, shown only visually
* Highlight all connected edges when hovering a node in trail layout
* Use different color when highlighting call edges for better contrast
* Fixed BucketLayouter issue when edge does not leave node
* Increased click area for angled edges

bug id = 249 337

fortune cookie message = Answer just what the heart prompts to you.
This commit is contained in:
Eberhard Graether
2017-04-24 01:14:53 +02:00
parent 01bd0efefb
commit f0b7dcdcdd
40 changed files with 1892 additions and 487 deletions
+11
View File
@@ -3,6 +3,7 @@
#include "utility/logging/logging.h"
Graph::Graph()
: m_trailMode(TRAIL_NONE)
{
}
@@ -285,6 +286,16 @@ Token* Graph::getTokenById(Id id) const
return token;
}
Graph::TrailMode Graph::getTrailMode() const
{
return m_trailMode;
}
void Graph::setTrailMode(TrailMode trailMode)
{
m_trailMode = trailMode;
}
void Graph::print(std::ostream& ostream) const
{
ostream << "Graph:\n";
+12
View File
@@ -11,6 +11,13 @@
class Graph
{
public:
enum TrailMode
{
TRAIL_NONE,
TRAIL_HORIZONTAL,
TRAIL_VERTICAL
};
Graph();
virtual ~Graph();
@@ -49,6 +56,9 @@ public:
Token* getTokenById(Id id) const;
TrailMode getTrailMode() const;
void setTrailMode(TrailMode trailMode);
void print(std::ostream& ostream) const;
void printBasic(std::ostream& ostream) const;
@@ -60,6 +70,8 @@ private:
std::map<Id, std::shared_ptr<Node>> m_nodes;
std::map<Id, std::shared_ptr<Edge>> m_edges;
TrailMode m_trailMode;
};
std::ostream& operator<<(std::ostream& ostream, const Graph& graph);