// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #include "keysmodel.h" const QHash UI::KeysModel::roles = { {Label, "label"}, {FingerPrint, "fingerPrint"}, {TrustLevel, "trustLevel"} }; UI::KeysModel::KeysModel(QObject* parent): QAbstractListModel(parent), keys() { } UI::KeysModel::~KeysModel() { } void UI::KeysModel::addKey(const Shared::KeyInfo& info) { beginInsertRows(QModelIndex(), keys.size(), keys.size()); keys.push_back(new Shared::KeyInfo(info)); endInsertRows(); } QVariant UI::KeysModel::data(const QModelIndex& index, int role) const { int i = index.row(); QVariant answer; switch (role) { case Qt::DisplayRole: answer = keys[i]->label; break; case FingerPrint: answer = keys[i]->fingerPrint; break; } return answer; } int UI::KeysModel::rowCount(const QModelIndex& parent) const { return keys.size(); } QHash UI::KeysModel::roleNames() const {return roles;} QModelIndex UI::KeysModel::index(int row, int column, const QModelIndex& parent) const { if (!hasIndex(row, column, parent)) { return QModelIndex(); } return createIndex(row, column, keys[row]); }