From bcf9dfd26fb138817d1c51c3c494ec878fb6a58a Mon Sep 17 00:00:00 2001 From: liuxinhao Date: Sun, 18 Feb 2024 17:34:01 +0800 Subject: [PATCH] fix(KiranTitlebarWindow): Fix the issue of blank icons occupying the title bar position MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复空白图标占据标题栏位置的问题 Closes #29450 --- ...rWindow-Fix-the-issue-of-blank-icons.patch | 100 ++++++++++++++++++ kiran-widgets-qt5.spec | 6 +- 2 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 0002-fix-KiranTitlebarWindow-Fix-the-issue-of-blank-icons.patch diff --git a/0002-fix-KiranTitlebarWindow-Fix-the-issue-of-blank-icons.patch b/0002-fix-KiranTitlebarWindow-Fix-the-issue-of-blank-icons.patch new file mode 100644 index 0000000..0e53505 --- /dev/null +++ b/0002-fix-KiranTitlebarWindow-Fix-the-issue-of-blank-icons.patch @@ -0,0 +1,100 @@ +From c1c2b85ded4db84908b60ca695a26cb16201ef66 Mon Sep 17 00:00:00 2001 +From: liuxinhao +Date: Sun, 18 Feb 2024 10:40:37 +0800 +Subject: [PATCH] fix(KiranTitlebarWindow): Fix the issue of blank icons + occupying the title bar position +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 修复空白图标占据标题栏位置的问题 + +Closes #29450 +--- + .../kiran-titlebar-window-private.cpp | 15 ++++++++++++-- + .../kiran-titlebar-window-private.h | 20 ++++++++++--------- + 2 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.cpp b/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.cpp +index 43cd51a..cc378c3 100644 +--- a/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.cpp ++++ b/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.cpp +@@ -45,6 +45,8 @@ const int KiranTitlebarWindowPrivate::shadowRadius = 15; + const QColor KiranTitlebarWindowPrivate::shadowActiveColor = QColor(0, 0, 0, 150); + const QColor KiranTitlebarWindowPrivate::shadowInactiveColor = QColor(0, 0, 0, 75); + ++const QSize KiranTitlebarWindowPrivate::iconSize = QSize(24,24); ++ + extern void qt_blurImage(QPainter *p, QImage &blurImage, qreal radius, bool quality, bool alphaOnly, int transposed = 0); + + using namespace Kiran; +@@ -99,7 +101,16 @@ void KiranTitlebarWindowPrivate::init() + + void KiranTitlebarWindowPrivate::setIcon(const QIcon &icon) + { +- m_titleIcon->setPixmap(icon.pixmap(16, 16)); ++ QPixmap pixmap = icon.pixmap(16,16); ++ if( pixmap.isNull() ) ++ { ++ m_titleIcon->setFixedSize(QSize(0,0)); ++ } ++ else ++ { ++ m_titleIcon->setFixedSize(iconSize); ++ } ++ m_titleIcon->setPixmap(pixmap); + } + + void KiranTitlebarWindowPrivate::setTitle(const QString &title) +@@ -317,7 +328,7 @@ void KiranTitlebarWindowPrivate::initOtherWidget() + m_titleIcon = new QLabel(m_titlebarWidget); + m_titleIcon->setObjectName("KiranTitlebarIcon"); + m_titleIcon->setAccessibleName("WindowTitlebarIcon"); +- m_titleIcon->setFixedSize(24, 24); ++ m_titleIcon->setFixedSize(QSize(0,0)); + m_titleBarLayout->setTitleBarIconLabel(m_titleIcon); + m_titleBarLayout->setTitleBarIconMargin(QMargins(12, 0, 0, 0)); + +diff --git a/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.h b/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.h +index 6f57deb..756c487 100644 +--- a/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.h ++++ b/src/widgets/kiran-titlebar-window/kiran-titlebar-window-private.h +@@ -1,17 +1,17 @@ + /** +- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd. ++ * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd. + * kiranwidgets-qt5 is licensed under Mulan PSL v2. +- * You can use this software according to the terms and conditions of the Mulan PSL v2. ++ * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: +- * http://license.coscl.org.cn/MulanPSL2 +- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +- * See the Mulan PSL v2 for more details. +- * ++ * http://license.coscl.org.cn/MulanPSL2 ++ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, ++ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, ++ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. ++ * See the Mulan PSL v2 for more details. ++ * + * Author: liuxinhao + */ +- ++ + #ifndef KIRANTITLEBARWINDOWPRIVATE_H + #define KIRANTITLEBARWINDOWPRIVATE_H + +@@ -107,6 +107,8 @@ private: + //下列关于阴影边框变量 修改应只在'ensureShadowPixmapUpdated'之中 + QPixmap m_shadowPix; //生成的阴影边框图片 窗口未激活时 + QPixmap m_shadowActivePix; //生成的阴影边框图片 窗口激活时 ++ ++ static const QSize iconSize; + }; + + #endif // KIRANTITLEBARWINDOWPRIVATE_H +-- +2.33.0 + diff --git a/kiran-widgets-qt5.spec b/kiran-widgets-qt5.spec index d75520c..6d00f47 100644 --- a/kiran-widgets-qt5.spec +++ b/kiran-widgets-qt5.spec @@ -1,6 +1,6 @@ Name: kiran-widgets-qt5 Version: 2.4.2 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Encapsulated QT Widget Summary(zh_CN): 封装的Qt小部件 @@ -9,6 +9,7 @@ Source0: %{name}-%{version}.tar.gz Patch0000: 0000-fix-KiranPasswordEdit-default-password-input-does-no.patch Patch0001: 0001-feat-KiranTitlebarWindow-Customize-title-bar-to-send.patch +Patch0002: 0002-fix-KiranTitlebarWindow-Fix-the-issue-of-blank-icons.patch BuildRequires: cmake >= 3.5 BuildRequires: gcc-c++ @@ -79,6 +80,9 @@ make %{?_smp_mflags} rm -rf %{buildroot} %changelog +* Sun Feb 18 2024 liuxinhao - 2.4.2-4 +- KYOS-B: Fix the issue of blank icons occupying the title bar position(#29450) + * Mon Jan 22 2024 liuxinhao - 2.4.2-3 - KYOS-F: Customize title bar send requests to window manager and pop up a right-click menu(#24920) -- Gitee