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 StoredAtDateTimeRoleStr:
62 return QLocale().toString(keyInfo.storedAtDateTime);
63 case StoredAtDateTimeRole:
64 return keyInfo.storedAtDateTime;
65 case LastUsedDateTimeRole:
66 return keyInfo.lastUsedDateTime;
67 case LastUsedDateTimeRoleStr:
68 return QLocale().
toString(keyInfo.lastUsedDateTime);
73QVariant DKIMManagerKeyModel::headerData(
int section,
Qt::Orientation orientation,
int role)
const
79 switch (
static_cast<DKIMManagerKeyRoles
>(section)) {
81 return i18n(
"DKIM Key");
83 return i18n(
"Selector");
86 case StoredAtDateTimeRoleStr:
87 return i18n(
"Inserted");
88 case LastUsedDateTimeRoleStr:
89 return i18n(
"Last Used");
90 case StoredAtDateTimeRole:
91 case LastUsedDateTimeRole:
97void DKIMManagerKeyModel::clear()
99 if (!mKeyInfos.isEmpty()) {
106bool DKIMManagerKeyModel::insertKeyInfo(
const KeyInfo &keyInfo)
109 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyInfo](
const KeyInfo &key) {
110 return key == keyInfo;
112 if (it == mKeyInfos.cend()) {
113 beginInsertRows(QModelIndex(), mKeyInfos.count() - 1, mKeyInfos.count());
114 mKeyInfos.append(keyInfo);
122void DKIMManagerKeyModel::removeKeyInfo(
const QString &keyValue)
124 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyValue](
const KeyInfo &key) {
125 return key.keyValue == keyValue;
127 if (it != mKeyInfos.cend()) {
129 mKeyInfos.removeAll(*it);
134void DKIMManagerKeyModel::removeKeyInfos(
const QStringList &keyInfos)
136 if (keyInfos.isEmpty()) {
140 for (
const auto &keyInfo : keyInfos) {
141 auto it = std::find_if(mKeyInfos.cbegin(), mKeyInfos.cend(), [keyInfo](
const KeyInfo &key) {
142 return key.keyValue == keyInfo;
144 if (it != mKeyInfos.cend()) {
145 mKeyInfos.removeAll(*it);
151#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
QString toString(QStringView format, QCalendar cal) const const