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; return 69;
} }
int DatabaseIcons::expiredIconIndex()
{
return 45;
}
DatabaseIcons::DatabaseIcons() DatabaseIcons::DatabaseIcons()
{ {
m_indexToName.reserve(iconCount()); m_indexToName.reserve(iconCount());

View file

@ -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();

View file

@ -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;

View file

@ -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();

View file

@ -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);

View file

@ -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;

View file

@ -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();
} }

View file

@ -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();
} }