Code Documentation 3.6
Social Network Visualizer
Loading...
Searching...
No Matches
nodetablemodel.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 NodeTableModel : public QAbstractTableModel
30{
31 Q_OBJECT
32public:
33 explicit NodeTableModel(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 NodeRow {
56 int number;
57 QString label;
58 bool visible;
59 QString shape;
60 int size;
61 QString color;
62 QList<QString> attrValues;
63 };
64
65 Graph *m_graph = nullptr;
66 QList<NodeRow> m_rows;
67 QStringList m_attrKeys;
68
69 static constexpr int FIXED_COLS = 6;
70
71 // Column index constants
72 static constexpr int COL_NUMBER = 0;
73 static constexpr int COL_LABEL = 1;
74 static constexpr int COL_VISIBLE = 2;
75 static constexpr int COL_SHAPE = 3;
76 static constexpr int COL_SIZE = 4;
77 static constexpr int COL_COLOR = 5;
78};
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex,...
Definition graph.h:73
Graph * m_graph
Definition nodetablemodel.h:65
static constexpr int COL_NUMBER
Definition nodetablemodel.h:72
static constexpr int COL_COLOR
Definition nodetablemodel.h:77
static constexpr int COL_SHAPE
Definition nodetablemodel.h:75
void populate(Graph *graph)
Rebuilds the internal cache from graph.
Definition nodetablemodel.cpp:33
QStringList m_attrKeys
Definition nodetablemodel.h:67
static constexpr int COL_VISIBLE
Definition nodetablemodel.h:74
static constexpr int FIXED_COLS
Definition nodetablemodel.h:69
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition nodetablemodel.cpp:163
static constexpr int COL_LABEL
Definition nodetablemodel.h:73
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition nodetablemodel.cpp:77
QStringList attrKeys() const
Definition nodetablemodel.h:43
bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
Definition nodetablemodel.cpp:178
QVariant headerData(int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
Definition nodetablemodel.cpp:137
NodeTableModel(QObject *parent=nullptr)
Definition nodetablemodel.cpp:21
static constexpr int COL_SIZE
Definition nodetablemodel.h:76
QList< NodeRow > m_rows
Definition nodetablemodel.h:66
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition nodetablemodel.cpp:70
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const override
Definition nodetablemodel.cpp:84
Definition nodetablemodel.h:55
QString shape
Definition nodetablemodel.h:59
QString color
hex string, e.g. "#ff0000"
Definition nodetablemodel.h:61
int number
Definition nodetablemodel.h:56
bool visible
Definition nodetablemodel.h:58
int size
Definition nodetablemodel.h:60
QString label
Definition nodetablemodel.h:57
QList< QString > attrValues
parallel to m_attrKeys
Definition nodetablemodel.h:62