7#include "dkimmanagerkeymodel.h"
8#include <KLocalizedString>
9using namespace MessageViewer;
11DKIMManagerKeyModel::DKIMManagerKeyModel(
QObject *parent)
16DKIMManagerKeyModel::~DKIMManagerKeyModel() =
default;
23void DKIMManagerKeyModel::setKeyInfos(
const QList<MessageViewer::KeyInfo> &newKeyInfos)
26 mKeyInfos = newKeyInfos;
30int DKIMManagerKeyModel::rowCount(
const QModelIndex &parent)
const
35 return mKeyInfos.count();
38int DKIMManagerKeyModel::columnCount(
const QModelIndex &parent)
const
41 return static_cast<int>(DKIMManagerKeyRoles::LastColumn) + 1;
44QVariant DKIMManagerKeyModel::data(
const QModelIndex &index,
int role)
const
46 if (
index.row() < 0 ||
index.row() >= mKeyInfos.count()) {
49 const KeyInfo &keyInfo = mKeyInfos.at(
index.row());
53 switch (
static_cast<DKIMManagerKeyRoles
>(
index.column())) {
55 return keyInfo.keyValue;
58 return keyInfo.selector;
60 return keyInfo.domain;
61 case StoredAtDateTimeRole:
62 return QLocale().toString(keyInfo.storedAtDateTime);
63 case LastUsedDateTimeRole:
64 return QLocale().toString(keyInfo.lastUsedDateTime);
69QVariant DKIMManagerKeyModel::headerData(
int section,
Qt::Orientation orientation,
int role)
const
75 switch (
static_cast<DKIMManagerKeyRoles
>(section)) {
77 return i18n(
"DKIM Key");
79 return i18n(
"Selector");
82 case StoredAtDateTimeRole:
83 return i18n(
"Inserted");
84 case LastUsedDateTimeRole:
85 return i18n(
"Last Used");
90void DKIMManagerKeyModel::clear()
92 if (!mKeyInfos.isEmpty()) {
99bool DKIMManagerKeyModel::insertKeyInfo(
const KeyInfo &keyInfo)
102 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyInfo](
const KeyInfo &key) {
103 return key == keyInfo;
105 if (it == mKeyInfos.cend()) {
106 beginInsertRows(QModelIndex(), mKeyInfos.count() - 1, mKeyInfos.count());
107 mKeyInfos.append(keyInfo);
115void DKIMManagerKeyModel::removeKeyInfo(
const QString &keyValue)
117 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyValue](
const KeyInfo &key) {
118 return key.keyValue == keyValue;
120 if (it != mKeyInfos.cend()) {
122 mKeyInfos.removeAll(*it);
127void DKIMManagerKeyModel::removeKeyInfos(
const QStringList &keyInfos)
129 if (keyInfos.isEmpty()) {
133 for (
const auto &keyInfo : keyInfos) {
134 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyInfo](
const KeyInfo &key) {
135 return key.keyValue == keyInfo;
137 if (it != mKeyInfos.cend()) {
138 mKeyInfos.removeAll(*it);
144#include "moc_dkimmanagerkeymodel.cpp"
QString i18n(const char *text, const TYPE &arg...)
void beginInsertRows(const QModelIndex &parent, int first, int last)
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const const=0
virtual QModelIndex parent(const QModelIndex &index) const const=0