Display expired entries and groups struck out.

This commit is contained in:
Felix Geyer 2012-05-15 19:58:10 +02:00
parent e5062cb745
commit ce268260b1
8 changed files with 48 additions and 2 deletions

View File

@ -60,6 +60,11 @@ int DatabaseIcons::iconCount()
return 69;
}
int DatabaseIcons::expiredIconIndex()
{
return 45;
}
DatabaseIcons::DatabaseIcons()
{
m_indexToName.reserve(iconCount());

View File

@ -29,6 +29,7 @@ public:
QImage icon(int index);
QPixmap iconPixmap(int index);
int iconCount();
int expiredIconIndex();
private:
DatabaseIcons();

View File

@ -196,6 +196,11 @@ QString Entry::notes() const
return m_attributes->value("Notes");
}
bool Entry::isExpired() const
{
return m_data.timeInfo.expires() && m_data.timeInfo.expiryTime() < Tools::currentDateTimeUtc();
}
EntryAttributes* Entry::attributes()
{
return m_attributes;

View File

@ -84,6 +84,7 @@ public:
QString username() const;
QString password() const;
QString notes() const;
bool isExpired() const;
EntryAttributes* attributes();
const EntryAttributes* attributes() const;
EntryAttachments* attachments();

View File

@ -164,6 +164,11 @@ Entry* Group::lastTopVisibleEntry() const
return m_lastTopVisibleEntry;
}
bool Group::isExpired() const
{
return m_timeInfo.expires() && m_timeInfo.expiryTime() < Tools::currentDateTimeUtc();
}
void Group::setUuid(const Uuid& uuid)
{
set(m_uuid, uuid);

View File

@ -50,6 +50,7 @@ public:
Group::TriState autoTypeEnabled() const;
Group::TriState searchingEnabled() const;
Entry* lastTopVisibleEntry() const;
bool isExpired() const;
static const int DefaultIconNumber;

View File

@ -18,7 +18,9 @@
#include "EntryModel.h"
#include <QtCore/QMimeData>
#include <QtGui/QFont>
#include "core/DatabaseIcons.h"
#include "core/Entry.h"
#include "core/Group.h"
@ -131,9 +133,21 @@ QVariant EntryModel::data(const QModelIndex& index, int role) const
}
break;
case 1:
return entry->iconPixmap();
if (entry->isExpired()) {
return databaseIcons()->iconPixmap(databaseIcons()->expiredIconIndex());
}
else {
return entry->iconPixmap();
}
}
}
else if (role == Qt::FontRole) {
QFont font;
if (entry->isExpired()) {
font.setStrikeOut(true);
}
return font;
}
return QVariant();
}

View File

@ -18,8 +18,10 @@
#include "GroupModel.h"
#include <QtCore/QMimeData>
#include <QtGui/QFont>
#include "core/Database.h"
#include "core/DatabaseIcons.h"
#include "core/Group.h"
#include "core/Tools.h"
@ -114,7 +116,19 @@ QVariant GroupModel::data(const QModelIndex& index, int role) const
return group->name();
}
else if (role == Qt::DecorationRole) {
return group->iconPixmap();
if (group->isExpired()) {
return databaseIcons()->iconPixmap(databaseIcons()->expiredIconIndex());
}
else {
return group->iconPixmap();
}
}
else if (role == Qt::FontRole) {
QFont font;
if (group->isExpired()) {
font.setStrikeOut(true);
}
return font;
}
else {
return QVariant();