Chapter 1. Introduction

KGraphViewer is a Graphviz DOT graph viewer. The Graphviz programs are free-software layout engines for graphs. KGraphViewer displays the graphs in a modern, user-friendly GUI. It has the following features:

The main KGraphViewer window displaying one of the Graphviz examples

  • Zooming;

  • Loading of several graphs in tabs at the same time;

  • Storage of a list of recent files;

  • A bird's eye view of the graph;

  • Graph panning by mouse dragging;

  • Full-featured printing;

  • Perfect drawing of all Graphviz example graphs;

  • Node and edge colors and all node shapes are supported;

  • Automatic choice of DOT for directed graphs and NEATO for undirected ones;

  • Manual or automatic reloading with user confirmation of (externally) modified files (configurable);

  • Opening of new program instances as new tabs in an existing instance (configurable);

  • Help system;

  • Internationalization.

Planned features are:

  • Eventual use of the Qanava library to support internal graphs representation;

  • Save session data about graphs (layout program used, zoom factor, etc.)

  • Integration in Kate and Konqueror (so that a change in Kate's view of the graph would re-layout and reload the file in KGraphViewer);

  • Menu to open the file in Kate or to open a katepart inside the KGraphViewer window;

  • Loading of large and huge graphs (currently, there are performance problems at around 1000 nodes, and a hack to ignore nodes above a specified limit);

  • Progressive support of more and more DOT attributes and values;

  • Layout in background (with threading in order not to block the interface, with a progress bar).

Note

Note that this program includes code from the GPL tool KCacheGrind by Josef Weidendorfer, with his authorization.

Note

Note also that the printing system is from the Calligra's Kexi database application.

Other required software: KGraphViewer is a program that uses the Graphviz tool DOT for graph layout. Its dependencies are:

  • The Qt™ and KDE Frameworks™ libraries version 5.x;

  • The Graphviz tools as externals programs (tested with version 2.8);

  • The Boost library version 1.36.