GraphView
class GraphView : public QAbstractScrollArea
Subclassed by CutterGraphView, OverviewView
Public Types
enum Layout
Values:
enumerator GridNarrow
enumerator GridMedium
enumerator GridWide
enumerator GridAAA
enumerator GridAAB
enumerator GridABA
enumerator GridABB
enumerator GridBAA
enumerator GridBAB
enumerator GridBBA
enumerator GridBBB
using GraphBlock = GraphLayout::GraphBlock
using GraphEdge = GraphLayout::GraphEdge
Public Functions
explicit GraphView(QWidget *parent)
~GraphView() override
void showBlock(GraphBlock &block, bool anywhere = false)
void showRectangle(const QRect &rect, bool anywhere = false)
Move view so that area is visible.
Parameters
rect – Rectangle to show
anywhere – - set to true for minimizing movement
GraphView::GraphBlock *getBlockContaining(QPoint p)
Get block containing specified point logical coordinates.
Parameters
p – positionin graph logical coordinates
Returns
Block or nullptr if position is outside all blocks.
QPoint viewToLogicalCoordinates(QPoint p)
QPoint logicalToViewCoordinates(QPoint p)
void setGraphLayout(std::unique_ptr<GraphLayout> layout)
inline GraphLayout &getGraphLayout() const
void setLayoutConfig(const GraphLayout::LayoutConfig &config)
void paint(QPainter &p, QPoint offset, QRect area, qreal scale = 1.0, bool interactive = true)
void saveAsBitmap(QString path, const char *format = nullptr, double scaler = 1.0, bool transparent = false)
void saveAsSvg(QString path)
void computeGraphPlacement()
inline QPoint getViewOffset() const
void setViewOffset(QPoint offset)
inline qreal getViewScale() const
void setViewScale(qreal scale)
void center()
inline void centerX()
inline void centerY()
Signals
void viewOffsetChanged(QPoint offset)
void viewScaleChanged(qreal scale)
Public Static Functions
static std::unique_ptr<GraphLayout> makeGraphLayout(Layout layout, bool horizontal = false)
static void cleanupEdges(GraphLayout::Graph &graph)
Remove duplicate edges and edges without target in graph.
Parameters
graph –
struct EdgeConfiguration
Public Members
QColor color = QColor(128, 128, 128)
bool start_arrow = false
bool end_arrow = true
qreal width_scale = 1.0
Qt::PenStyle lineStyle = Qt::PenStyle::SolidLine