diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-01 15:42:27 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-01 15:42:27 +1000 |
| commit | 7dcb545ba0d08d1b454735b23dab9f36359aafb3 (patch) | |
| tree | 1a468025a82152a9aa8a9aa114ae21e62a87989a /plugin/src | |
| parent | plugin: fix warnings + const stuff (diff) | |
| download | caelestia-shell-7dcb545ba0d08d1b454735b23dab9f36359aafb3.tar.gz caelestia-shell-7dcb545ba0d08d1b454735b23dab9f36359aafb3.tar.bz2 caelestia-shell-7dcb545ba0d08d1b454735b23dab9f36359aafb3.zip | |
plugin/cim: better sourceSize
Diffstat (limited to '')
| -rw-r--r-- | plugin/src/Caelestia/cachingimagemanager.cpp | 30 | ||||
| -rw-r--r-- | plugin/src/Caelestia/cachingimagemanager.hpp | 3 |
2 files changed, 11 insertions, 22 deletions
diff --git a/plugin/src/Caelestia/cachingimagemanager.cpp b/plugin/src/Caelestia/cachingimagemanager.cpp index 4f37171..a5f71ba 100644 --- a/plugin/src/Caelestia/cachingimagemanager.cpp +++ b/plugin/src/Caelestia/cachingimagemanager.cpp @@ -18,24 +18,15 @@ qreal CachingImageManager::effectiveScale() const { return 1.0; } -int CachingImageManager::effectiveWidth() const { +QSize CachingImageManager::effectiveSize() const { if (!m_item) { - return 0; + return QSize(); } - int width = static_cast<int>(std::ceil(m_item->width() * effectiveScale())); - m_item->setProperty("sourceWidth", width); - return width; -} - -int CachingImageManager::effectiveHeight() const { - if (!m_item) { - return 0; - } - - int height = static_cast<int>(std::ceil(m_item->height() * effectiveScale())); - m_item->setProperty("sourceHeight", height); - return height; + const qreal scale = effectiveScale(); + const QSize size = QSizeF(m_item->width() * scale, m_item->height() * scale).toSize(); + m_item->setProperty("sourceSize", size); + return size; } QQuickItem* CachingImageManager::item() const { @@ -119,16 +110,15 @@ void CachingImageManager::updateSource(const QString& path) { return; } - const int width = self->effectiveWidth(); - const int height = self->effectiveHeight(); + const QSize size = self->effectiveSize(); - if (!self->m_item || !width || !height) { + if (!self->m_item || !size.width() || !size.height()) { return; } const QString fillMode = self->m_item->property("fillMode").toString(); const QString filename = QString("%1@%2x%3-%4.png") - .arg(sha).arg(width).arg(height) + .arg(sha).arg(size.width()).arg(size.height()) .arg(fillMode == "PreserveAspectCrop" ? "crop" : fillMode == "PreserveAspectFit" ? "fit" : "stretch"); const QUrl cache = self->m_cacheDir.resolved(QUrl(filename)); @@ -149,7 +139,7 @@ void CachingImageManager::updateSource(const QString& path) { self->m_item->setProperty("source", cache); } else { self->m_item->setProperty("source", QUrl::fromLocalFile(path)); - self->createCache(path, cache.toLocalFile(), fillMode, QSize(width, height)); + self->createCache(path, cache.toLocalFile(), fillMode, size); } // Clear current running sha if same diff --git a/plugin/src/Caelestia/cachingimagemanager.hpp b/plugin/src/Caelestia/cachingimagemanager.hpp index 5c758dc..4d4a5ae 100644 --- a/plugin/src/Caelestia/cachingimagemanager.hpp +++ b/plugin/src/Caelestia/cachingimagemanager.hpp @@ -52,8 +52,7 @@ private: QMetaObject::Connection m_heightConn; [[nodiscard]] qreal effectiveScale() const; - [[nodiscard]] int effectiveWidth() const; - [[nodiscard]] int effectiveHeight() const; + [[nodiscard]] QSize effectiveSize() const; void createCache(const QString& path, const QString& cache, const QString& fillMode, const QSize& size) const; [[nodiscard]] QString sha256sum(const QString& path) const; |