mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-07-29 01:28:47 -04:00
Add Metadata::customIconScaledPixmap().
This commit is contained in:
parent
4752adf9d3
commit
1f33e6f044
2 changed files with 24 additions and 0 deletions
|
@ -185,6 +185,25 @@ QPixmap Metadata::customIconPixmap(const Uuid& uuid) const
|
||||||
return pixmap;
|
return pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QPixmap Metadata::customIconScaledPixmap(const Uuid& uuid) const
|
||||||
|
{
|
||||||
|
QPixmap pixmap;
|
||||||
|
|
||||||
|
if (!m_customIcons.contains(uuid)) {
|
||||||
|
return pixmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPixmapCache::Key& cacheKey = m_customIconScaledCacheKeys[uuid];
|
||||||
|
|
||||||
|
if (!QPixmapCache::find(cacheKey, &pixmap)) {
|
||||||
|
QImage image = m_customIcons.value(uuid).scaled(16, 16, Qt::KeepAspectRatio, Qt::SmoothTransformation);
|
||||||
|
pixmap = QPixmap::fromImage(image);
|
||||||
|
cacheKey = QPixmapCache::insert(pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
return pixmap;
|
||||||
|
}
|
||||||
|
|
||||||
bool Metadata::containsCustomIcon(const Uuid& uuid) const
|
bool Metadata::containsCustomIcon(const Uuid& uuid) const
|
||||||
{
|
{
|
||||||
return m_customIcons.contains(uuid);
|
return m_customIcons.contains(uuid);
|
||||||
|
@ -358,6 +377,7 @@ void Metadata::addCustomIcon(const Uuid& uuid, const QImage& icon)
|
||||||
m_customIcons.insert(uuid, icon);
|
m_customIcons.insert(uuid, icon);
|
||||||
// reset cache in case there is also an icon with that uuid
|
// reset cache in case there is also an icon with that uuid
|
||||||
m_customIconCacheKeys[uuid] = QPixmapCache::Key();
|
m_customIconCacheKeys[uuid] = QPixmapCache::Key();
|
||||||
|
m_customIconScaledCacheKeys[uuid] = QPixmapCache::Key();
|
||||||
m_customIconsOrder.append(uuid);
|
m_customIconsOrder.append(uuid);
|
||||||
Q_ASSERT(m_customIcons.count() == m_customIconsOrder.count());
|
Q_ASSERT(m_customIcons.count() == m_customIconsOrder.count());
|
||||||
Q_EMIT modified();
|
Q_EMIT modified();
|
||||||
|
@ -387,6 +407,8 @@ void Metadata::removeCustomIcon(const Uuid& uuid)
|
||||||
m_customIcons.remove(uuid);
|
m_customIcons.remove(uuid);
|
||||||
QPixmapCache::remove(m_customIconCacheKeys.value(uuid));
|
QPixmapCache::remove(m_customIconCacheKeys.value(uuid));
|
||||||
m_customIconCacheKeys.remove(uuid);
|
m_customIconCacheKeys.remove(uuid);
|
||||||
|
QPixmapCache::remove(m_customIconScaledCacheKeys.value(uuid));
|
||||||
|
m_customIconScaledCacheKeys.remove(uuid);
|
||||||
m_customIconsOrder.removeAll(uuid);
|
m_customIconsOrder.removeAll(uuid);
|
||||||
Q_ASSERT(m_customIcons.count() == m_customIconsOrder.count());
|
Q_ASSERT(m_customIcons.count() == m_customIconsOrder.count());
|
||||||
Q_EMIT modified();
|
Q_EMIT modified();
|
||||||
|
|
|
@ -81,6 +81,7 @@ public:
|
||||||
// bool autoEnableVisualHiding() const;
|
// bool autoEnableVisualHiding() const;
|
||||||
QImage customIcon(const Uuid& uuid) const;
|
QImage customIcon(const Uuid& uuid) const;
|
||||||
QPixmap customIconPixmap(const Uuid& uuid) const;
|
QPixmap customIconPixmap(const Uuid& uuid) const;
|
||||||
|
QPixmap customIconScaledPixmap(const Uuid& uuid) const;
|
||||||
bool containsCustomIcon(const Uuid& uuid) const;
|
bool containsCustomIcon(const Uuid& uuid) const;
|
||||||
QHash<Uuid, QImage> customIcons() const;
|
QHash<Uuid, QImage> customIcons() const;
|
||||||
QList<Uuid> customIconsOrder() const;
|
QList<Uuid> customIconsOrder() const;
|
||||||
|
@ -157,6 +158,7 @@ private:
|
||||||
|
|
||||||
QHash<Uuid, QImage> m_customIcons;
|
QHash<Uuid, QImage> m_customIcons;
|
||||||
mutable QHash<Uuid, QPixmapCache::Key> m_customIconCacheKeys;
|
mutable QHash<Uuid, QPixmapCache::Key> m_customIconCacheKeys;
|
||||||
|
mutable QHash<Uuid, QPixmapCache::Key> m_customIconScaledCacheKeys;
|
||||||
QList<Uuid> m_customIconsOrder;
|
QList<Uuid> m_customIconsOrder;
|
||||||
|
|
||||||
QPointer<Group> m_recycleBin;
|
QPointer<Group> m_recycleBin;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue