#include "servers_model.h" ServersModel::ServersModel(QObject *parent) : QAbstractListModel(parent) { } void ServersModel::clearData() { beginResetModel(); content.clear(); endResetModel(); } void ServersModel::setContent(const std::vector &data) { beginResetModel(); content = data; endResetModel(); } int ServersModel::rowCount(const QModelIndex &parent) const { Q_UNUSED(parent); return static_cast(content.size()); } QHash ServersModel::roleNames() const { QHash roles; roles[DescRole] = "desc"; roles[AddressRole] = "address"; roles[IsDefaultRole] = "is_default"; return roles; } QVariant ServersModel::data(const QModelIndex &index, int role) const { if (!index.isValid() || index.row() < 0 || index.row() >= static_cast(content.size())) { return QVariant(); } if (role == DescRole) { return content[index.row()].desc; } if (role == AddressRole) { return content[index.row()].address; } if (role == IsDefaultRole) { return content[index.row()].isDefault; } return QVariant(); }