18 QAbstractTableModel(parent),
23 timer =
new QTimer(
this);
48 if (parent.isValid()) {
56 if (parent.isValid()) {
70 if (role == Qt::DisplayRole) {
96 }
else if (role == Qt::TextAlignmentRole) {
99 return QVariant(Qt::AlignRight | Qt::AlignVCenter);
105 return QVariant(Qt::AlignCenter);
109 return QVariant(Qt::AlignRight | Qt::AlignVCenter);
115 return QVariant::fromValue(rec);
123 if(orientation == Qt::Horizontal)
125 if(role == Qt::DisplayRole && section <
columns.size())
135 if (!
index.isValid())
return Qt::NoItemFlags;
137 Qt::ItemFlags retval = Qt::ItemIsSelectable | Qt::ItemIsEnabled;
149 return QModelIndex();
157 new_peers_data.reserve(nodes_stats.size());
158 for (
const auto& node_stats : nodes_stats) {
159 const CNodeCombinedStats stats{std::get<0>(node_stats), std::get<2>(node_stats), std::get<1>(node_stats)};
160 new_peers_data.append(stats);
169 if (i < new_peers_data.size() &&
m_peers_data.at(i).nodeStats.nodeid == new_peers_data.at(i).nodeStats.nodeid) {
174 beginRemoveRows(QModelIndex(), i, i);
181 beginInsertRows(QModelIndex(),
m_peers_data.size(), new_peers_data.size() - 1);
188 const auto top_left =
index(0, 0);
190 Q_EMIT dataChanged(top_left, bottom_right);