Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
edgetablemodel.h
Go to the documentation of this file.
1
12
13#pragma once
14
15#include <QAbstractTableModel>
16#include <QBrush>
17#include <QColor>
18#include <QStringList>
19
20class Graph;
21
29class EdgeTableModel : public QAbstractTableModel
30{
31 Q_OBJECT
32public:
33 explicit EdgeTableModel(QObject *parent = nullptr);
34
40 void populate(Graph *graph);
41
43 QStringList attrKeys() const { return m_attrKeys; }
44
45 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
46 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
47 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
48 QVariant headerData(int section, Qt::Orientation orientation,
49 int role = Qt::DisplayRole) const override;
50 Qt::ItemFlags flags(const QModelIndex &index) const override;
51 bool setData(const QModelIndex &index, const QVariant &value,
52 int role = Qt::EditRole) override;
53
54private:
55 struct EdgeRow {
56 int source;
57 int target;
58 QString relation;
59 qreal weight;
60 QString label;
61 QString color;
62 QList<QString> attrValues;
63 };
64
65 Graph *m_graph = nullptr;
66 QList<EdgeRow> m_rows;
67 QStringList m_attrKeys;
68
69 static constexpr int FIXED_COLS = 6;
70
71 // Column index constants
72 static constexpr int COL_SOURCE = 0;
73 static constexpr int COL_TARGET = 1;
74 static constexpr int COL_RELATION = 2;
75 static constexpr int COL_WEIGHT = 3;
76 static constexpr int COL_LABEL = 4;
77 static constexpr int COL_COLOR = 5;
78};
QStringList attrKeys() const
Definition edgetablemodel.h:43
QStringList m_attrKeys
Definition edgetablemodel.h:67
static constexpr int COL_COLOR
Definition edgetablemodel.h:77
static constexpr int COL_RELATION
Definition edgetablemodel.h:74
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition edgetablemodel.cpp:91
Graph * m_graph
Definition edgetablemodel.h:65
static constexpr int COL_TARGET
Definition edgetablemodel.h:73
static constexpr int FIXED_COLS
Definition edgetablemodel.h:69
static constexpr int COL_SOURCE
Definition edgetablemodel.h:72
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition edgetablemodel.cpp:179
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition edgetablemodel.cpp:194
void populate(Graph *graph)
Rebuilds the internal cache from graph (current relation only).
Definition edgetablemodel.cpp:32
static constexpr int COL_WEIGHT
Definition edgetablemodel.h:75
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition edgetablemodel.cpp:105
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition edgetablemodel.cpp:153
QList< EdgeRow > m_rows
Definition edgetablemodel.h:66
EdgeTableModel(QObject *parent=nullptr)
Definition edgetablemodel.cpp:21
static constexpr int COL_LABEL
Definition edgetablemodel.h:76
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition edgetablemodel.cpp:98
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex,...
Definition graph.h:73
Definition edgetablemodel.h:55
QString relation
Definition edgetablemodel.h:58
QList< QString > attrValues
parallel to m_attrKeys
Definition edgetablemodel.h:62
int target
Definition edgetablemodel.h:57
qreal weight
Definition edgetablemodel.h:59
int source
Definition edgetablemodel.h:56
QString label
Definition edgetablemodel.h:60
QString color
Definition edgetablemodel.h:61