mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-07-23 15:00:47 -04:00
Display expired entries and groups struck out.
This commit is contained in:
parent
e5062cb745
commit
ce268260b1
8 changed files with 48 additions and 2 deletions
|
@ -60,6 +60,11 @@ int DatabaseIcons::iconCount()
|
||||||
return 69;
|
return 69;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int DatabaseIcons::expiredIconIndex()
|
||||||
|
{
|
||||||
|
return 45;
|
||||||
|
}
|
||||||
|
|
||||||
DatabaseIcons::DatabaseIcons()
|
DatabaseIcons::DatabaseIcons()
|
||||||
{
|
{
|
||||||
m_indexToName.reserve(iconCount());
|
m_indexToName.reserve(iconCount());
|
||||||
|
|
|
@ -29,6 +29,7 @@ public:
|
||||||
QImage icon(int index);
|
QImage icon(int index);
|
||||||
QPixmap iconPixmap(int index);
|
QPixmap iconPixmap(int index);
|
||||||
int iconCount();
|
int iconCount();
|
||||||
|
int expiredIconIndex();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DatabaseIcons();
|
DatabaseIcons();
|
||||||
|
|
|
@ -196,6 +196,11 @@ QString Entry::notes() const
|
||||||
return m_attributes->value("Notes");
|
return m_attributes->value("Notes");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Entry::isExpired() const
|
||||||
|
{
|
||||||
|
return m_data.timeInfo.expires() && m_data.timeInfo.expiryTime() < Tools::currentDateTimeUtc();
|
||||||
|
}
|
||||||
|
|
||||||
EntryAttributes* Entry::attributes()
|
EntryAttributes* Entry::attributes()
|
||||||
{
|
{
|
||||||
return m_attributes;
|
return m_attributes;
|
||||||
|
|
|
@ -84,6 +84,7 @@ public:
|
||||||
QString username() const;
|
QString username() const;
|
||||||
QString password() const;
|
QString password() const;
|
||||||
QString notes() const;
|
QString notes() const;
|
||||||
|
bool isExpired() const;
|
||||||
EntryAttributes* attributes();
|
EntryAttributes* attributes();
|
||||||
const EntryAttributes* attributes() const;
|
const EntryAttributes* attributes() const;
|
||||||
EntryAttachments* attachments();
|
EntryAttachments* attachments();
|
||||||
|
|
|
@ -164,6 +164,11 @@ Entry* Group::lastTopVisibleEntry() const
|
||||||
return m_lastTopVisibleEntry;
|
return m_lastTopVisibleEntry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Group::isExpired() const
|
||||||
|
{
|
||||||
|
return m_timeInfo.expires() && m_timeInfo.expiryTime() < Tools::currentDateTimeUtc();
|
||||||
|
}
|
||||||
|
|
||||||
void Group::setUuid(const Uuid& uuid)
|
void Group::setUuid(const Uuid& uuid)
|
||||||
{
|
{
|
||||||
set(m_uuid, uuid);
|
set(m_uuid, uuid);
|
||||||
|
|
|
@ -50,6 +50,7 @@ public:
|
||||||
Group::TriState autoTypeEnabled() const;
|
Group::TriState autoTypeEnabled() const;
|
||||||
Group::TriState searchingEnabled() const;
|
Group::TriState searchingEnabled() const;
|
||||||
Entry* lastTopVisibleEntry() const;
|
Entry* lastTopVisibleEntry() const;
|
||||||
|
bool isExpired() const;
|
||||||
|
|
||||||
static const int DefaultIconNumber;
|
static const int DefaultIconNumber;
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
#include "EntryModel.h"
|
#include "EntryModel.h"
|
||||||
|
|
||||||
#include <QtCore/QMimeData>
|
#include <QtCore/QMimeData>
|
||||||
|
#include <QtGui/QFont>
|
||||||
|
|
||||||
|
#include "core/DatabaseIcons.h"
|
||||||
#include "core/Entry.h"
|
#include "core/Entry.h"
|
||||||
#include "core/Group.h"
|
#include "core/Group.h"
|
||||||
|
|
||||||
|
@ -131,9 +133,21 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
if (entry->isExpired()) {
|
||||||
|
return databaseIcons()->iconPixmap(databaseIcons()->expiredIconIndex());
|
||||||
|
}
|
||||||
|
else {
|
||||||
return entry->iconPixmap();
|
return entry->iconPixmap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (role == Qt::FontRole) {
|
||||||
|
QFont font;
|
||||||
|
if (entry->isExpired()) {
|
||||||
|
font.setStrikeOut(true);
|
||||||
|
}
|
||||||
|
return font;
|
||||||
|
}
|
||||||
|
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,10 @@
|
||||||
#include "GroupModel.h"
|
#include "GroupModel.h"
|
||||||
|
|
||||||
#include <QtCore/QMimeData>
|
#include <QtCore/QMimeData>
|
||||||
|
#include <QtGui/QFont>
|
||||||
|
|
||||||
#include "core/Database.h"
|
#include "core/Database.h"
|
||||||
|
#include "core/DatabaseIcons.h"
|
||||||
#include "core/Group.h"
|
#include "core/Group.h"
|
||||||
#include "core/Tools.h"
|
#include "core/Tools.h"
|
||||||
|
|
||||||
|
@ -114,8 +116,20 @@ QVariant GroupModel::data(const QModelIndex& index, int role) const
|
||||||
return group->name();
|
return group->name();
|
||||||
}
|
}
|
||||||
else if (role == Qt::DecorationRole) {
|
else if (role == Qt::DecorationRole) {
|
||||||
|
if (group->isExpired()) {
|
||||||
|
return databaseIcons()->iconPixmap(databaseIcons()->expiredIconIndex());
|
||||||
|
}
|
||||||
|
else {
|
||||||
return group->iconPixmap();
|
return group->iconPixmap();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (role == Qt::FontRole) {
|
||||||
|
QFont font;
|
||||||
|
if (group->isExpired()) {
|
||||||
|
font.setStrikeOut(true);
|
||||||
|
}
|
||||||
|
return font;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue