From 92b57c6a07e1c246848656c1a91a8340d2535298 Mon Sep 17 00:00:00 2001 From: zhangjiarui Date: Tue, 21 Apr 2026 17:46:49 +0800 Subject: [PATCH] fix(footer): skip background blur when using default cover image MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When no actual cover exists, clear background instead of using default cover. 当无实际封面时,清空背景而非使用默认封面图片。 Log: 无实际封面时不设置背景 PMS: https://pms.uniontech.com/bug-view-357677.html Influence: 当音乐无封面图片时,底部工具栏不再显示默认封面的模糊背景,界面更加简洁。 --- .reuse/dep5 | 5 +++ src/music-player/mainFrame/footerwidget.cpp | 35 +++++++++++++++++---- 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/.reuse/dep5 b/.reuse/dep5 index 0a7d46062..539168136 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -8,6 +8,11 @@ Files: .github/* Copyright: None License: CC0-1.0 +# config +Files: config.h.in +Copyright: None +License: CC0-1.0 + # gitignore Files: .gitignore Copyright: None diff --git a/src/music-player/mainFrame/footerwidget.cpp b/src/music-player/mainFrame/footerwidget.cpp index a29a2831b..e65687f28 100644 --- a/src/music-player/mainFrame/footerwidget.cpp +++ b/src/music-player/mainFrame/footerwidget.cpp @@ -1,4 +1,4 @@ -// Copyright (C) 2020 ~ 2021 Uniontech Software Technology Co., Ltd. +// Copyright (C) 2020 ~ 2026 Uniontech Software Technology Co., Ltd. // SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd. // // SPDX-License-Identifier: GPL-3.0-or-later @@ -18,6 +18,7 @@ #include #include #include +#include #include #include @@ -927,13 +928,35 @@ void FooterWidget::resizeEvent(QResizeEvent *event) void FooterWidget::slotFlushBackground() { - QImage cover = QImage(":/icons/deepin/builtin/actions/info_cover_142px.svg"); - QString imagesDirPath = Global::cacheDir() + "/images/" + Player::getInstance()->getActiveMeta().hash + ".jpg"; + auto clearBackground = [this]() { + m_forwardWidget->setSourceImage(QImage()); + m_forwardWidget->update(); + }; + + QString cacheDir = Global::cacheDir(); + if (cacheDir.isEmpty()) { + qWarning() << "Cache directory is invalid, clearing background"; + clearBackground(); + return; + } + + QString imagesDirPath = QDir(cacheDir).filePath( + QString("images/%1.jpg").arg(Player::getInstance()->getActiveMeta().hash) + ); + QFileInfo file(imagesDirPath); - if (file.exists()) { - cover = QImage(Global::cacheDir() + "/images/" + Player::getInstance()->getActiveMeta().hash + ".jpg"); + if (!file.exists()) { + clearBackground(); + return; } - + + QImage cover(imagesDirPath); + if (cover.isNull() || cover.size().isEmpty()) { + qWarning() << "Failed to load cover image or invalid size:" << imagesDirPath; + clearBackground(); + return; + } + double windowScale = (width() * 1.0) / height(); int imageWidth = static_cast(cover.height() * windowScale); QImage coverImage;