/* * pvsNetworkInterfaceListModel.cpp * * Created on: 04.08.2010 * Author: brs */ #include "pvsNetworkInterfaceListModel.h" #include PVSNetworkInterfaceListModel::PVSNetworkInterfaceListModel(QObject* parent) : QAbstractListModel(parent) { reloadInterfaceList(); } PVSNetworkInterfaceListModel::~PVSNetworkInterfaceListModel() { } void PVSNetworkInterfaceListModel::reloadInterfaceList() { _interfaces = QNetworkInterface::allInterfaces(); reset(); } QVariant PVSNetworkInterfaceListModel::data(QModelIndex const& index, int role) const { int i = index.row(); if(0 > i || i >= _interfaces.size()) { return QVariant(); } QNetworkInterface intf = _interfaces.at(i); switch(role) { case Qt::DisplayRole: { QString name = intf.humanReadableName(); QList addresses = intf.addressEntries(); QStringList l; foreach(QNetworkAddressEntry addr, addresses) { l.append(addr.ip().toString()); } return QString("%1 (%2)").arg(name).arg(l.join(", ")); } case Qt::EditRole: case Qt::UserRole: return intf.name(); default: return QVariant(); } } QVariant PVSNetworkInterfaceListModel::headerData(int section, Qt::Orientation orientation, int role) const { if(section == 0 && orientation == Qt::Vertical && role == Qt::DisplayRole) { return tr("Interface"); } else { return QVariant(); } } int PVSNetworkInterfaceListModel::rowCount(QModelIndex const& parent) const { if(parent.isValid()) { return 0; } else { return _interfaces.size(); } }