Code Documentation 3.5
Social Network Visualizer
Loading...
Searching...
No Matches
nodetablemodel.h
Go to the documentation of this file.
1
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
42 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
43 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
44 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
45 QVariant headerData(int section, Qt::Orientation orientation,
46 int role = Qt::DisplayRole) const override;
47 Qt::ItemFlags flags(const QModelIndex &index) const override;
48 bool setData(const QModelIndex &index, const QVariant &value,
49 int role = Qt::EditRole) override;
50
51private:
52 struct NodeRow {
53 int number;
54 QString label;
55 bool visible;
56 QString shape;
57 int size;
58 QString color;
59 QList<QString> attrValues;
60 };
61
62 Graph *m_graph = nullptr;
63 QList<NodeRow> m_rows;
64 QStringList m_attrKeys;
65
66 static constexpr int FIXED_COLS = 6;
67
68 // Column index constants
69 static constexpr int COL_NUMBER = 0;
70 static constexpr int COL_LABEL = 1;
71 static constexpr int COL_VISIBLE = 2;
72 static constexpr int COL_SHAPE = 3;
73 static constexpr int COL_SIZE = 4;
74 static constexpr int COL_COLOR = 5;
75};
The Graph class This is the main class for a Graph, used in conjuction with GraphVertex,...
Definition graph.h:74
Table model that caches node data from Graph and writes back via the Graph API.
Definition nodetablemodel.h:30
Graph * m_graph
Definition nodetablemodel.h:62
static constexpr int COL_NUMBER
Definition nodetablemodel.h:69
static constexpr int COL_COLOR
Definition nodetablemodel.h:74
static constexpr int COL_SHAPE
Definition nodetablemodel.h:72
void populate(Graph *graph)
Rebuilds the internal cache from graph.
Definition nodetablemodel.cpp:33
QStringList m_attrKeys
Definition nodetablemodel.h:64
static constexpr int COL_VISIBLE
Definition nodetablemodel.h:71
static constexpr int FIXED_COLS
Definition nodetablemodel.h:66
Qt::ItemFlags flags(const QModelIndex &index) const override
Definition nodetablemodel.cpp:163
static constexpr int COL_LABEL
Definition nodetablemodel.h:70
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition nodetablemodel.cpp:77
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
static constexpr int COL_SIZE
Definition nodetablemodel.h:73
QList< NodeRow > m_rows
Definition nodetablemodel.h:63
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:52
QString shape
Definition nodetablemodel.h:56
QString color
hex string, e.g. "#ff0000"
Definition nodetablemodel.h:58
int number
Definition nodetablemodel.h:53
bool visible
Definition nodetablemodel.h:55
int size
Definition nodetablemodel.h:57
QString label
Definition nodetablemodel.h:54
QList< QString > attrValues
parallel to m_attrKeys
Definition nodetablemodel.h:59