Example #1
0
QVariant CEnvironmentDetailsModel::data(const QModelIndex & index, int role) const {
    if (!m_Environment || (!index.isValid()))
        return QVariant();

    if ((role == Qt::DecorationRole) && (index.column() == ENVDET_MOD_STATEMENT)) {
        CDevice * device = qobject_cast<CDevice *>(m_Environment->parent());
        if (m_Environment == device->getActiveEnvironment()) {
            if ((qint8)(m_Environment->getSelectResults()[index.internalId()]))
                return QIcon(UI_ICON_SELECTED);
        }
        return QIcon(UI_ICON_UNSELECTED);
    }

    if (role != Qt::DisplayRole)
        return QVariant();

    switch (index.column()) {
    case ENVDET_MOD_STATEMENT:
        if (m_SelectConfig.filters[index.internalId()].invert)
            switch (m_SelectConfig.filters[index.internalId()].selType) {
            case SelectType::USER:
                return tr("not by user");
            case SelectType::ARP:
                return tr("not by arp");
            case SelectType::ESSID:
                return tr("not by ssid");
            case SelectType::AND_BLOCK:
                return tr("at least one not");
            case SelectType::OR_BLOCK:
                return tr("all not");
            default:
                break;
            }
        else
            switch (m_SelectConfig.filters[index.internalId()].selType) {
            case SelectType::USER:
                return tr("by user");
            case SelectType::ARP:
                return tr("by arp");
            case SelectType::ESSID:
                return tr("by ssid");
            case SelectType::AND_BLOCK:
                return tr("all");
            case SelectType::OR_BLOCK:
                return tr("at least one");
            default:
                break;
            }
    case ENVDET_MOD_VALUE:
        switch (m_SelectConfig.filters[index.internalId()].selType) {
        case SelectType::ARP:
            if (m_SelectConfig.filters[index.internalId()].macAddr.valid())
                return m_SelectConfig.filters[index.internalId()].ipAddr.toString() + ", "+
                       m_SelectConfig.filters[index.internalId()].macAddr.toString();
            else
                return m_SelectConfig.filters[index.internalId()].ipAddr.toString();
        case SelectType::ESSID:
            return m_SelectConfig.filters[index.internalId()].essid;
        default:
            break;
        }
    default:
        break;
    }

    return QVariant();
}