diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/changelog qt5-ukui-platformtheme-4.1.0.0/debian/changelog --- qt5-ukui-platformtheme-4.1.0.0/debian/changelog 2024-11-08 09:49:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/changelog 2025-02-12 15:01:00.000000000 +0800 @@ -1,3 +1,13 @@ +qt5-ukui-platformtheme (4.1.0.0-ok54) nile; urgency=medium + + * 改动: + BUG号: #IAY3M0 任务栏声音网络页签悬浮效果异常 + 需求号:无 + 其他改动:五 + 影响域:无 + + -- wuruiwen <wuruiwen@kylinos.cn> Wed, 12 Feb 2025 15:01:00 +0800 + qt5-ukui-platformtheme (4.1.0.0-ok53) nile; urgency=medium * 改动: diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/patches/0077-.patch qt5-ukui-platformtheme-4.1.0.0/debian/patches/0077-.patch --- qt5-ukui-platformtheme-4.1.0.0/debian/patches/0077-.patch 1970-01-01 08:00:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/patches/0077-.patch 2025-02-12 15:01:00.000000000 +0800 @@ -0,0 +1,124 @@ +From: =?utf-8?b?5p2O5p+v?= <like1@kylinos.cn> +Date: Wed, 27 Nov 2024 20:39:35 +0800 +Subject: =?utf-8?b?5a6M5oiQ5Li76aKY5qGG5p625Y2V5YWD5rWL6K+V5qGG5p625p6E5bu6?= + +--- + CMakeLists.txt | 1 + + test/CMakeLists.txt | 3 +++ + test/auto-test/CMakeLists.txt | 31 ++++++++++++++++++++++++++ + test/auto-test/test-settings.cpp | 48 ++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 83 insertions(+) + create mode 100644 test/auto-test/CMakeLists.txt + create mode 100644 test/auto-test/test-settings.cpp + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 47ef06a..ce2a998 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -6,3 +6,4 @@ add_subdirectory(qt5-ukui-platformtheme) + add_subdirectory(ukui-qqc2-style) + add_subdirectory(ukui-qml-style-helper) + add_subdirectory(test) ++enable_testing() +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index c659fa4..fe698e6 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -7,3 +7,6 @@ add_subdirectory(region-blur) + add_subdirectory(system-settings) + add_subdirectory(tabwidget) + add_subdirectory(mps-style-application) ++add_subdirectory(auto-test) ++ ++enable_testing() +diff --git a/test/auto-test/CMakeLists.txt b/test/auto-test/CMakeLists.txt +new file mode 100644 +index 0000000..0e3fe9b +--- /dev/null ++++ b/test/auto-test/CMakeLists.txt +@@ -0,0 +1,31 @@ ++set(CMAKE_AUTOMOC on) ++ ++# 查找Qt组件 ++find_package(QT NAMES Qt6 Qt5 COMPONENTS Gui Test DBus Qml Widgets REQUIRED) ++find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui Test DBus Qml Widgets REQUIRED) ++ ++# 查找PkgConfig工具 ++find_package(PkgConfig REQUIRED) ++ ++# 设置库文件名变量 ++include_directories(../../libqt5-ukui-style) ++ ++# 将库文件路径添加到库搜索路径中 ++link_directories(${LIBRARY_DIR}) ++ ++# 添加可执行文件test-settings ++add_executable(test-settings ++ test-settings.cpp) ++ ++include_directories("/usr/lib/x86_64-linux-gnu/qt5/plugins/platformthemes") ++ ++# 链接Qt组件到可执行文件test-settings ++target_link_libraries(test-settings PRIVATE Qt${QT_VERSION_MAJOR}::Test ++ Qt${QT_VERSION_MAJOR}::DBus ++ Qt${QT_VERSION_MAJOR}::Gui ++ Qt5::Widgets ++ qt5-ukui-style) ++ ++# 添加测试用例 ++add_test(NAME test-settings COMMAND test-settings) ++ +diff --git a/test/auto-test/test-settings.cpp b/test/auto-test/test-settings.cpp +new file mode 100644 +index 0000000..9dbee3a +--- /dev/null ++++ b/test/auto-test/test-settings.cpp +@@ -0,0 +1,48 @@ ++/* ++ * * Copyright (C) 2024, KylinSoft Co., Ltd. ++ * * ++ * * This program is free software: you can redistribute it and/or modify ++ * * it under the terms of the GNU General Public License as published by ++ * * the Free Software Foundation, either version 3 of the License, or ++ * * (at your option) any later version. ++ * * ++ * * This program is distributed in the hope that it will be useful, ++ * * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * * GNU General Public License for more details. ++ * * ++ * * You should have received a copy of the GNU General Public License ++ * * along with this program. If not, see <https://www.gnu.org/licenses/>. ++ * * ++ * * Authors: like <like1@kylinos.cn> ++ * ++ */ ++#include <QtTest> ++#include <dlfcn.h> ++ ++#include <dlfcn.h> // 用于动态加载库函数的头文件 ++#include "effects/highlight-effect.h" ++ ++// 定义函数指针类型,与库中函数的签名匹配 ++typedef void (*FunctionInLibType)(void); ++ ++// 测试用例类,继承自QObject ++class LibFunctionTest : public QObject ++{ ++ Q_OBJECT ++public: ++ ++private slots: ++ // 测试调用库中函数的功能 ++ void testFunctionInLib() ++ { ++ QWidget w; ++ ++ HighLightEffect::setSkipEffect(&w, true); ++ } ++}; ++ ++// 定义测试用例入口点setSkipEffect ++QTEST_MAIN(LibFunctionTest) ++ ++#include "test-settings.moc" diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/patches/0078-pc.patch qt5-ukui-platformtheme-4.1.0.0/debian/patches/0078-pc.patch --- qt5-ukui-platformtheme-4.1.0.0/debian/patches/0078-pc.patch 1970-01-01 08:00:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/patches/0078-pc.patch 2025-02-12 15:01:00.000000000 +0800 @@ -0,0 +1,28 @@ +From: =?utf-8?b?6LCt6Z2Z?= <tanjing@kylinos.cn> +Date: Mon, 9 Dec 2024 23:35:56 +0800 +Subject: =?utf-8?b?5bmz5p2/44CBcGPmqKHlvI/liIfmjaLlk43lupTlh73mlbDmlLnkuLo=?= + =?utf-8?b?5qe95Ye95pWw?= + +--- + ukui-styles/ukui-style-plugin.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/ukui-styles/ukui-style-plugin.h b/ukui-styles/ukui-style-plugin.h +index 6ee6041..99c57f5 100644 +--- a/ukui-styles/ukui-style-plugin.h ++++ b/ukui-styles/ukui-style-plugin.h +@@ -46,9 +46,13 @@ public: + + const QStringList blackList(); + ++ ++public Q_SLOTS: ++ void tableModeChanged(bool isTableMode); ++ + protected: + void onSystemPaletteChanged(); +- void tableModeChanged(bool isTableMode); ++ + + private: + QString m_current_style_name; diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/patches/0079-Translated-using-Weblate-Vietnamese.patch qt5-ukui-platformtheme-4.1.0.0/debian/patches/0079-Translated-using-Weblate-Vietnamese.patch --- qt5-ukui-platformtheme-4.1.0.0/debian/patches/0079-Translated-using-Weblate-Vietnamese.patch 1970-01-01 08:00:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/patches/0079-Translated-using-Weblate-Vietnamese.patch 2025-02-12 15:01:00.000000000 +0800 @@ -0,0 +1,749 @@ +From: KevinDuan <duankaiwen@kylinos.cn> +Date: Tue, 11 Feb 2025 08:50:28 +0000 +Subject: Translated using Weblate (Vietnamese) + +Currently translated at 100.0% (63 of 63 strings) + +Translation: openkylin-nile-new/qt5-ukui-platformtheme +Translate-URL: http://weblate.openkylin.top/projects/openkylin-nile-new/qt5-ukui-platformtheme/vi/ +--- + translations/qt5-ukui-platformtheme_ar.ts | 361 ++++++++++++++++++++++++++++++ + translations/qt5-ukui-platformtheme_vi.ts | 361 ++++++++++++++++++++++++++++++ + 2 files changed, 722 insertions(+) + create mode 100644 translations/qt5-ukui-platformtheme_ar.ts + create mode 100644 translations/qt5-ukui-platformtheme_vi.ts + +diff --git a/translations/qt5-ukui-platformtheme_ar.ts b/translations/qt5-ukui-platformtheme_ar.ts +new file mode 100644 +index 0000000..d2242b2 +--- /dev/null ++++ b/translations/qt5-ukui-platformtheme_ar.ts +@@ -0,0 +1,361 @@ ++<?xml version="1.0" encoding="utf-8"?> ++<!DOCTYPE TS> ++<TS version="2.1" language="ar"> ++<context> ++ <name>MainWindow</name> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="14"/> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="14"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="14"/> ++ <location filename="../test/system-settings/mainwindow.ui" line="14"/> ++ <source>MainWindow</source> ++ <translation>النافذة الرئيسية</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="30"/> ++ <source>test open</source> ++ <translation>اختبار مفتوح</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="37"/> ++ <source>directory</source> ++ <translation>دليل</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="47"/> ++ <source>selected uri</source> ++ <translation>URI محدد</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="54"/> ++ <source>test show</source> ++ <translation>عرض الاختبار</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="64"/> ++ <source>test exec</source> ++ <translation>اختبار التنفيذ</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="71"/> ++ <source>test save</source> ++ <translation>اختبار الحفظ</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="78"/> ++ <source>test static open</source> ++ <translation>اختبار ثابت مفتوح</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="30"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="36"/> ++ <source>PushButton</source> ++ <translation>زر الضغط</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="47"/> ++ <source>use auto highlight icon</source> ++ <translation>استخدام أيقونة التمييز التلقائي</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="54"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="43"/> ++ <source>...</source> ++ <translation>...</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="72"/> ++ <source>highlightOnly</source> ++ <translation>تسليط الضوئنافقط</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="77"/> ++ <source>bothDefaultAndHighlight</source> ++ <translation>كلاهما الافتراضي والتمييز</translation> ++ </message> ++ <message> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="50"/> ++ <source>RadioButton</source> ++ <translation>زر الراديو</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="21"/> ++ <source>style</source> ++ <translation>نمط</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="31"/> ++ <source>icon</source> ++ <translation>رمز</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="41"/> ++ <source>menu opacity</source> ++ <translation>عتامة القائمة</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="55"/> ++ <source>font</source> ++ <translation>الخط</translation> ++ </message> ++</context> ++<context> ++ <name>MessageBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="97"/> ++ <source>Close</source> ++ <translation>غلق</translation> ++ </message> ++</context> ++<context> ++ <name>QApplication</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.h" line="272"/> ++ <source>Executable '%1' requires Qt %2, found Qt %3.</source> ++ <translation>يتطلب الملف القابل للتنفيذ '٪1' Qt٪2، تم العثور على Qt٪3.</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.h" line="274"/> ++ <source>Incompatible Qt Library Error</source> ++ <translation>خطأ مكتبة Qt غير متوافق</translation> ++ </message> ++</context> ++<context> ++ <name>QDialogButtonBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="362"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1090"/> ++ <source>OK</source> ++ <translation>موافق</translation> ++ </message> ++</context> ++<context> ++ <name>QMessageBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="418"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="881"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1517"/> ++ <source>Show Details...</source> ++ <translation>عرض التفاصيل...</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="881"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1517"/> ++ <source>Hide Details...</source> ++ <translation>إخفاء التفاصيل...</translation> ++ </message> ++</context> ++<context> ++ <name>QObject</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="259"/> ++ <source>File Name</source> ++ <translation>اسم الملف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="263"/> ++ <source>Modified Date</source> ++ <translation>تاريخ التعديل</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="267"/> ++ <source>File Type</source> ++ <translation>نوع الملف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="271"/> ++ <source>File Size</source> ++ <translation>حجم الملف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="275"/> ++ <source>Original Path</source> ++ <translation>المسار الأصلي</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="284"/> ++ <source>Descending</source> ++ <translation>تنازلي</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="289"/> ++ <source>Ascending</source> ++ <translation>تصاعدي</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="295"/> ++ <source>Use global sorting</source> ++ <translation>استخدام الفرز العمومي</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="315"/> ++ <source>List View</source> ++ <translation>عرض القائمة</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="316"/> ++ <source>Icon View</source> ++ <translation>عرض الأيقونة</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="730"/> ++ <source>Close</source> ++ <translation>غلق</translation> ++ </message> ++</context> ++<context> ++ <name>UKUI::TabWidget::DefaultSlideAnimatorFactory</name> ++ <message> ++ <location filename="../libqt5-ukui-style/animations/tabwidget/ukui-tabwidget-default-slide-animator-factory.h" line="50"/> ++ <source>Default Slide</source> ++ <translation>الشريحة الافتراضية</translation> ++ </message> ++ <message> ++ <location filename="../libqt5-ukui-style/animations/tabwidget/ukui-tabwidget-default-slide-animator-factory.h" line="51"/> ++ <source>Let tab widget switch with a slide animation.</source> ++ <translation>اسمح لعنصر واجهة مستخدم علامة التبويب بالتبديل باستخدام حركة شريحة.</translation> ++ </message> ++</context> ++<context> ++ <name>UKUIFileDialog::KyFileDialogHelper</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2706"/> ++ <source>Open File</source> ++ <translation>افتح ملف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2707"/> ++ <source>Save File</source> ++ <translation>حفظ الملف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2720"/> ++ <source>All Files (*)</source> ++ <translation>جميع الملفات (*)</translation> ++ </message> ++</context> ++<context> ++ <name>UKUIFileDialog::KyNativeFileDialog</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="221"/> ++ <source>Go Back</source> ++ <translation>الرجوع للخلف</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="228"/> ++ <source>Go Forward</source> ++ <translation>المضي قدما</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="234"/> ++ <source>Cd Up</source> ++ <translation>القرص المضغوط</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="241"/> ++ <source>Search</source> ++ <translation>بحث</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="249"/> ++ <source>View Type</source> ++ <translation>نوع العرض</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="260"/> ++ <source>Sort Type</source> ++ <translation>نوع الفرز</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="265"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="378"/> ++ <source>Maximize</source> ++ <translation>تعظيم</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="279"/> ++ <source>Close</source> ++ <translation>غلق</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="375"/> ++ <source>Restore</source> ++ <translation>يستعيد</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="987"/> ++ <source>Name</source> ++ <translation>اسم</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="990"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1578"/> ++ <source>Open</source> ++ <translation>مفتوح</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="991"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1000"/> ++ <source>Cancel</source> ++ <translation>إلغاء الأمر</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="995"/> ++ <source>Save as</source> ++ <translation>حفظ باسم</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="997"/> ++ <source>New Folder</source> ++ <translation>مجلد جديد</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="999"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1582"/> ++ <source>Save</source> ++ <translation>أنقذ</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1035"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1036"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1038"/> ++ <source>Directories</source> ++ <translation>الدلائل</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1227"/> ++ <source>Warning</source> ++ <translation>تحذير</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1227"/> ++ <source>exist, are you sure replace?</source> ++ <translation>موجودة ، هل أنت متأكد من استبدالها؟</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1920"/> ++ <source>NewFolder</source> ++ <translation>NewFolder</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2208"/> ++ <source>Undo</source> ++ <translation>تراجع</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2215"/> ++ <source>Redo</source> ++ <translation>اعاده</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2414"/> ++ <source>warn</source> ++ <translation>حذر</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2414"/> ++ <source>This operation is not supported.</source> ++ <translation>هذه العملية غير مدعومة.</translation> ++ </message> ++</context> ++</TS> +diff --git a/translations/qt5-ukui-platformtheme_vi.ts b/translations/qt5-ukui-platformtheme_vi.ts +new file mode 100644 +index 0000000..17da46d +--- /dev/null ++++ b/translations/qt5-ukui-platformtheme_vi.ts +@@ -0,0 +1,361 @@ ++<?xml version="1.0" encoding="utf-8"?> ++<!DOCTYPE TS> ++<TS version="2.1" language="vi"> ++<context> ++ <name>MainWindow</name> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="14"/> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="14"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="14"/> ++ <location filename="../test/system-settings/mainwindow.ui" line="14"/> ++ <source>MainWindow</source> ++ <translation>Cửa sổ chính</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="30"/> ++ <source>test open</source> ++ <translation>Thử nghiệm mở</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="37"/> ++ <source>directory</source> ++ <translation>thư mục</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="47"/> ++ <source>selected uri</source> ++ <translation>URI đã chọn</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="54"/> ++ <source>test show</source> ++ <translation>chương trình thử nghiệm</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="64"/> ++ <source>test exec</source> ++ <translation>Kiểm tra exec</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="71"/> ++ <source>test save</source> ++ <translation>Lưu thử nghiệm</translation> ++ </message> ++ <message> ++ <location filename="../test/filedialog/mainwindow.ui" line="78"/> ++ <source>test static open</source> ++ <translation>Kiểm tra tĩnh mở</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="30"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="36"/> ++ <source>PushButton</source> ++ <translation>Nút bấm</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="47"/> ++ <source>use auto highlight icon</source> ++ <translation>Sử dụng biểu tượng tự động đánh dấu</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="54"/> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="43"/> ++ <source>...</source> ++ <translation>...</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="72"/> ++ <source>highlightOnly</source> ++ <translation>highlightChỉ</translation> ++ </message> ++ <message> ++ <location filename="../test/highlighted-icon-button/mainwindow.ui" line="77"/> ++ <source>bothDefaultAndHighlight</source> ++ <translation>cả haiDefaultAndHighlight</translation> ++ </message> ++ <message> ++ <location filename="../test/mps-style-application/mainwindow.ui" line="50"/> ++ <source>RadioButton</source> ++ <translation>Nút radio</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="21"/> ++ <source>style</source> ++ <translation>phong cách</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="31"/> ++ <source>icon</source> ++ <translation>biểu tượng</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="41"/> ++ <source>menu opacity</source> ++ <translation>Độ mờ của menu</translation> ++ </message> ++ <message> ++ <location filename="../test/system-settings/mainwindow.ui" line="55"/> ++ <source>font</source> ++ <translation>phông</translation> ++ </message> ++</context> ++<context> ++ <name>MessageBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="97"/> ++ <source>Close</source> ++ <translation>Đóng</translation> ++ </message> ++</context> ++<context> ++ <name>QApplication</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.h" line="272"/> ++ <source>Executable '%1' requires Qt %2, found Qt %3.</source> ++ <translation>Tệp thực thi '%1' yêu cầu Qt %2, tìm thấy Qt %3.</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.h" line="274"/> ++ <source>Incompatible Qt Library Error</source> ++ <translation>Lỗi thư viện Qt không tương thích</translation> ++ </message> ++</context> ++<context> ++ <name>QDialogButtonBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="362"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1090"/> ++ <source>OK</source> ++ <translation>OK</translation> ++ </message> ++</context> ++<context> ++ <name>QMessageBox</name> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="418"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="881"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1517"/> ++ <source>Show Details...</source> ++ <translation>Hiển thị chi tiết...</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="881"/> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="1517"/> ++ <source>Hide Details...</source> ++ <translation>Ẩn chi tiết...</translation> ++ </message> ++</context> ++<context> ++ <name>QObject</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="259"/> ++ <source>File Name</source> ++ <translation>Tên tập tin</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="263"/> ++ <source>Modified Date</source> ++ <translation>Ngày sửa đổi</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="267"/> ++ <source>File Type</source> ++ <translation>Loại tệp</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="271"/> ++ <source>File Size</source> ++ <translation>Kích thước tệp</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="275"/> ++ <source>Original Path</source> ++ <translation>Đường dẫn ban đầu</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="284"/> ++ <source>Descending</source> ++ <translation>Giảm dần</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="289"/> ++ <source>Ascending</source> ++ <translation>Tăng dần</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="295"/> ++ <source>Use global sorting</source> ++ <translation>Sử dụng sắp xếp toàn cầu</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="315"/> ++ <source>List View</source> ++ <translation>Chế độ xem danh sách</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/ui_kyfiledialog.cpp" line="316"/> ++ <source>Icon View</source> ++ <translation>Chế độ xem biểu tượng</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-platformtheme/widget/messagebox/message-box.cpp" line="730"/> ++ <source>Close</source> ++ <translation>Đóng</translation> ++ </message> ++</context> ++<context> ++ <name>UKUI::TabWidget::DefaultSlideAnimatorFactory</name> ++ <message> ++ <location filename="../libqt5-ukui-style/animations/tabwidget/ukui-tabwidget-default-slide-animator-factory.h" line="50"/> ++ <source>Default Slide</source> ++ <translation>Trang trình bày mặc định</translation> ++ </message> ++ <message> ++ <location filename="../libqt5-ukui-style/animations/tabwidget/ukui-tabwidget-default-slide-animator-factory.h" line="51"/> ++ <source>Let tab widget switch with a slide animation.</source> ++ <translation>Hãy để tiện ích tab chuyển đổi với hoạt ảnh trang chiếu.</translation> ++ </message> ++</context> ++<context> ++ <name>UKUIFileDialog::KyFileDialogHelper</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2706"/> ++ <source>Open File</source> ++ <translation>Mở tập tin</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2707"/> ++ <source>Save File</source> ++ <translation>Lưu tập tin</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2720"/> ++ <source>All Files (*)</source> ++ <translation>Tất cả các tệp (*)</translation> ++ </message> ++</context> ++<context> ++ <name>UKUIFileDialog::KyNativeFileDialog</name> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="221"/> ++ <source>Go Back</source> ++ <translation>Quay lại</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="228"/> ++ <source>Go Forward</source> ++ <translation>Tiếp tục</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="234"/> ++ <source>Cd Up</source> ++ <translation>Cd Up</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="241"/> ++ <source>Search</source> ++ <translation>Tìm kiếm</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="249"/> ++ <source>View Type</source> ++ <translation>Loại xem</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="260"/> ++ <source>Sort Type</source> ++ <translation>Loại sắp xếp</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="265"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="378"/> ++ <source>Maximize</source> ++ <translation>Tối đa hóa</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="279"/> ++ <source>Close</source> ++ <translation>Đóng</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="375"/> ++ <source>Restore</source> ++ <translation>Khôi phục</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="987"/> ++ <source>Name</source> ++ <translation>Tên</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="990"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1578"/> ++ <source>Open</source> ++ <translation>Mở</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="991"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1000"/> ++ <source>Cancel</source> ++ <translation>Hủy</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="995"/> ++ <source>Save as</source> ++ <translation>Lưu dưới dạng</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="997"/> ++ <source>New Folder</source> ++ <translation>Thư mục mới</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="999"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1582"/> ++ <source>Save</source> ++ <translation>Cứu</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1035"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1036"/> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1038"/> ++ <source>Directories</source> ++ <translation>Thư mục</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1227"/> ++ <source>Warning</source> ++ <translation>Cảnh báo</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1227"/> ++ <source>exist, are you sure replace?</source> ++ <translation>tồn tại, bạn có chắc chắn thay thế không?</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="1920"/> ++ <source>NewFolder</source> ++ <translation>Thư mục mới</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2208"/> ++ <source>Undo</source> ++ <translation>Hoàn tác</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2215"/> ++ <source>Redo</source> ++ <translation>Redo</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2414"/> ++ <source>warn</source> ++ <translation>cảnh báo</translation> ++ </message> ++ <message> ++ <location filename="../qt5-ukui-filedialog/kyfiledialog.cpp" line="2414"/> ++ <source>This operation is not supported.</source> ++ <translation>Hoạt động này không được hỗ trợ.</translation> ++ </message> ++</context> ++</TS> diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/patches/0080-BUG-IAY3M0-fix-the-abnormal-hover-effect-of-the-ukui.patch qt5-ukui-platformtheme-4.1.0.0/debian/patches/0080-BUG-IAY3M0-fix-the-abnormal-hover-effect-of-the-ukui.patch --- qt5-ukui-platformtheme-4.1.0.0/debian/patches/0080-BUG-IAY3M0-fix-the-abnormal-hover-effect-of-the-ukui.patch 1970-01-01 08:00:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/patches/0080-BUG-IAY3M0-fix-the-abnormal-hover-effect-of-the-ukui.patch 2025-02-12 15:01:00.000000000 +0800 @@ -0,0 +1,347 @@ +From: wuruiwen <wuruiwen@kylinos.cn> +Date: Wed, 12 Feb 2025 17:01:33 +0800 +Subject: BUG#IAY3M0, + fix the abnormal hover effect of the ukui-volume-control-applet-qt and + kylin-nm tabs + +--- + .../qt5-config-style-ukui/themeconfig/default.json | 4 +- + .../ukui-config-style-parameters.cpp | 9 +- + .../qt5-config-style-ukui/ukui-config-style.cpp | 213 +++++++++++++++++---- + 3 files changed, 189 insertions(+), 37 deletions(-) + +diff --git a/ukui-styles/qt5-config-style-ukui/themeconfig/default.json b/ukui-styles/qt5-config-style-ukui/themeconfig/default.json +index b34f25c..3f3c1be 100644 +--- a/ukui-styles/qt5-config-style-ukui/themeconfig/default.json ++++ b/ukui-styles/qt5-config-style-ukui/themeconfig/default.json +@@ -449,7 +449,7 @@ + "WidgetBackgroundBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarBackgroundBrush" : {"value": "Window_at", "type": "paletterole"}, + "TabBarDefaultBrush" : {"value": "Window_at", "type": "paletterole"}, +- "TabBarHoverBrush" : {"value": "0, 0, 0, 0.05", "type": "color"}, ++ "TabBarHoverBrush" : {"value": "Window_at", "type": "paletterole"}, + "TabBarSelectBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarClickBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarFocusPen" : {"value": "HighLight_at", "type": "paletterole"} +@@ -908,7 +908,7 @@ + "WidgetBackgroundBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarBackgroundBrush" : {"value": "Window_at", "type": "paletterole"}, + "TabBarDefaultBrush" : {"value": "Window_at", "type": "paletterole"}, +- "TabBarHoverBrush" : {"value": "255, 255, 255, 0.15","type": "color"}, ++ "TabBarHoverBrush" : {"value": "Window_at", "type": "paletterole"}, + "TabBarSelectBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarClickBrush" : {"value": "Base_at", "type": "paletterole"}, + "TabBarFocusPen" : {"value": "HighLight_at", "type": "paletterole"} +diff --git a/ukui-styles/qt5-config-style-ukui/ukui-config-style-parameters.cpp b/ukui-styles/qt5-config-style-ukui/ukui-config-style-parameters.cpp +index d929484..14de118 100644 +--- a/ukui-styles/qt5-config-style-ukui/ukui-config-style-parameters.cpp ++++ b/ukui-styles/qt5-config-style-ukui/ukui-config-style-parameters.cpp +@@ -137,7 +137,6 @@ void UKUIConfigStyleParameters::initialDefaultPaletteColor(QString colorPath, bo + m_readCfg->deleteLater(); + m_readCfg = nullptr; + } +- + m_readCfg = new ReadThemeConfig(colorPath, isDark); + m_adjustColorRules = m_readCfg->getColorValueAdjustRules() == "HSL" ? AdjustColorRules::HSL : AdjustColorRules::DefaultRGB; + UKUIColorTheme::PaletteColorCfg paletteColorCfg = m_readCfg->paletteColorCfg(); +@@ -247,8 +246,9 @@ void UKUIConfigStyleParameters::initPalette(bool isDark) + cDebug << "homelocation:" << QStandardPaths::writableLocation(QStandardPaths::HomeLocation); + QString cfgPath = QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + + HomeCFGColorPath + cfgName(); +- if(!QFile::exists(cfgPath)) ++ if (!QFile::exists(cfgPath)) { + cfgPath = ColorPath + cfgName(); ++ } + initialDefaultPaletteColor(cfgPath, isDark); + } + +@@ -3891,7 +3891,7 @@ void UKUIConfigStyleParameters::getDefaultToolTipParameters(ConfigToolTipParamet + p->toolTipBackgroundBrush = m_ToolTipParameters.toolTipBackgroundBrush; + p->toolTipBackgroundPen = m_ToolTipParameters.toolTipBackgroundPen ; + } +- ++//解析、初始化TabBar相关颜色 + void UKUIConfigStyleParameters::initConfigTabWidgetParameters(bool isDark, const QStyleOption *option, const QWidget *widget) + { + QPalette palette = option ? option->palette : m_stylePalette; +@@ -3927,6 +3927,9 @@ void UKUIConfigStyleParameters::initConfigTabWidgetParameters(bool isDark, const + linearGradient.setColorAt(0, startColor); + linearGradient.setColorAt(1, endColor); + tabBarHoverBrush = QBrush(linearGradient); ++ } else { //非渐变色类型解析 ++ QColor targetColor = palette.color(QPalette::Active,QPalette::BrightText); ++ tabBarHoverBrush = QBrush(configMixColor(tabBarHoverBrush.color(),targetColor,0.1)); + } + break; + case AdjustColorRules::HSL:{ +diff --git a/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp b/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp +index cdf9e85..202ebfe 100644 +--- a/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp ++++ b/ukui-styles/qt5-config-style-ukui/ukui-config-style.cpp +@@ -235,7 +235,7 @@ UKUIConfigStyle::UKUIConfigStyle(bool dark, bool useDefault, QString type) : QPr + + if (m_style_name == "ukui-default") { + m_default_palette = true; +- } else if (m_style_name == "ukui-dark") { ++ } else if (m_style_name == "ukui-dark") {//根据系统切换的深浅主题,初始化 m_drak_palette + m_drak_palette = true; + } + +@@ -264,8 +264,9 @@ UKUIConfigStyle::UKUIConfigStyle(bool dark, bool useDefault, QString type) : QPr + } + } + +- if(m_widget_theme == "") ++ if (m_widget_theme == "") { + m_widget_theme == "default"; ++ } + + sp = new UKUIConfigStyleParameters(this, isUseDarkPalette(), m_widget_theme); + +@@ -5161,7 +5162,7 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp + } + break; + } +- ++ //绘制TabBar形状 + case CE_TabBarTabShape: + { + if (const QStyleOptionTab *tab = qstyleoption_cast<const QStyleOptionTab *>(option)) { +@@ -5178,7 +5179,9 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp + + switch (tab->shape) { + case QTabBar::RoundedNorth: ++ { + break; ++ } + case QTabBar::RoundedSouth: + { + rotMatrix.rotate(180); +@@ -5227,6 +5230,7 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp + + int tabOverlap = proxy()->pixelMetric(PM_TabBarTabOverlap, option, widget); + int TabBarTab_Radius = sp->m_TabWidgetParameters.radius; ++ //qDebug() << "sp->m_TabWidgetParameters.radius = " << sp->m_TabWidgetParameters.radius; 默认 == 6 + int moveWidth = 0; + if(widget != NULL && qobject_cast<const QTabBar*>(widget)){ + const auto *tabbar = qobject_cast<const QTabBar*>(widget); +@@ -5234,37 +5238,182 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp + } + QPainterPath path; + QPainterPath penPath; +- if (selected) { +- drawRect.adjust(0, 0, tabOverlap, 0); +- path.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); +- path.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); +- path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); +- path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, +- TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, -90); +- path.lineTo(drawRect.right() + TabBarTab_Radius, drawRect.bottom()); +- path.arcTo(QRect(drawRect.right(), drawRect.bottom() - TabBarTab_Radius * 2, +- TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, -90); +- path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); +- path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), +- TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); +- path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); +- +-// penPath.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); +-// penPath.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); +-// penPath.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); +-// penPath.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++// if (selected) { ++// drawRect.adjust(0, 0, tabOverlap, 0); ++// path.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++// path.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++// path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++// path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, + // TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, -90); +-// penPath.moveTo(drawRect.right() - moveWidth + TabBarTab_Radius, drawRect.bottom()); +-// penPath.arcTo(QRect(drawRect.right() - moveWidth, drawRect.bottom() - TabBarTab_Radius * 2, ++// path.lineTo(drawRect.right() + TabBarTab_Radius, drawRect.bottom()); ++// path.arcTo(QRect(drawRect.right(), drawRect.bottom() - TabBarTab_Radius * 2, + // TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, -90); +-// penPath.lineTo(drawRect.right() - moveWidth, drawRect.top() + TabBarTab_Radius); +-// penPath.arcTo(QRect(drawRect.right() - moveWidth - TabBarTab_Radius * 2, drawRect.top(), ++// path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++// path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), + // TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); +-// penPath.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); +- } else if (hover){ +- +- path.addRoundedRect(drawRect, TabBarTab_Radius, TabBarTab_Radius); +- ++// path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ ++//// penPath.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++//// penPath.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++//// penPath.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++//// penPath.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++//// TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, -90); ++//// penPath.moveTo(drawRect.right() - moveWidth + TabBarTab_Radius, drawRect.bottom()); ++//// penPath.arcTo(QRect(drawRect.right() - moveWidth, drawRect.bottom() - TabBarTab_Radius * 2, ++//// TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, -90); ++//// penPath.lineTo(drawRect.right() - moveWidth, drawRect.top() + TabBarTab_Radius); ++//// penPath.arcTo(QRect(drawRect.right() - moveWidth - TabBarTab_Radius * 2, drawRect.top(), ++//// TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); ++//// penPath.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++// } else if (hover){ ++ ++// path.addRoundedRect(drawRect, TabBarTab_Radius, TabBarTab_Radius); ++ ++ if (widget != NULL && qobject_cast<const QTabBar*>(widget)) { ++ const auto *tabbar = qobject_cast<const QTabBar*>(widget); ++ int select_index = tabbar->currentIndex(); ++ int now_index = tabbar->tabAt(QPoint(drawRect.x(),drawRect.y())); ++ int tab_count = tabbar->count(); ++ ++ if (qAppName() == "kylin-nm" || qAppName() == "ukui-volume-control-applet-qt") { //网络页和声音页 ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ if (now_index == 0) { ++ if (selected) { ++ path.moveTo(drawRect.left(), drawRect.top()); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right() + TabBarTab_Radius, drawRect.bottom()); ++ path.arcTo(QRect(drawRect.right(), drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, -90); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); ++ path.lineTo(drawRect.left(), drawRect.top()); ++ } else { ++ path.moveTo(drawRect.left(), drawRect.top()); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right() - TabBarTab_Radius, drawRect.bottom()); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, 90); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right(), drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, -90); ++ path.lineTo(drawRect.left(), drawRect.top()); ++ } ++ } else if (now_index == tab_count - 1) { ++ if (selected) { ++ path.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++ path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, -90); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top()); ++ path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ } else { ++ path.moveTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top()); ++ path.lineTo(drawRect.left() - TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, -90); ++ path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.left(), drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, 90); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ } ++ } else { ++ path.addRect(drawRect); ++ } ++ } else { ++ if (selected) { ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ path.moveTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left(), drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++ path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, -90); ++ path.lineTo(drawRect.right() + TabBarTab_Radius, drawRect.bottom()); ++ path.arcTo(QRect(drawRect.right(), drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, -90); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); ++ path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ } else { ++ if (select_index - now_index == 1) { ++ //select rect left ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ if (now_index == 0) { ++ path.moveTo(drawRect.left(), drawRect.top() + TabBarTab_Radius); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right() - TabBarTab_Radius, drawRect.bottom()); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, 90); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right(), drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, -90); ++ path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left(), drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++ } else { ++ path.moveTo(drawRect.left(), drawRect.top()); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right() - TabBarTab_Radius, drawRect.bottom()); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 270, 90); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right(), drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, -90); ++ path.lineTo(drawRect.left(), drawRect.top()); ++ } ++ } else if (select_index - now_index == -1) { ++ //select rect right ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ if (now_index == tab_count - 1) { ++ path.moveTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); ++ path.lineTo(drawRect.left() - TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, -90); ++ path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.left(), drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, 90); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ } else { ++ path.moveTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top()); ++ path.lineTo(drawRect.left() - TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left() - TabBarTab_Radius * 2, drawRect.top(), TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, -90); ++ path.lineTo(drawRect.left(), drawRect.bottom() - TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.left(), drawRect.bottom() - TabBarTab_Radius * 2, ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 180, 90); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ } ++ } else { ++ if (now_index == 0) { ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ path.moveTo(drawRect.left(), drawRect.top() + TabBarTab_Radius); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top()); ++ path.lineTo(drawRect.left() + TabBarTab_Radius, drawRect.top()); ++ path.arcTo(QRect(drawRect.left(), drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 90, 90); ++ } else if (now_index == tab_count - 1) { ++ drawRect.adjust(0, 0, tabOverlap, 0); ++ path.moveTo(drawRect.right(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.top() + TabBarTab_Radius); ++ path.arcTo(QRect(drawRect.right() - TabBarTab_Radius * 2, drawRect.top(), ++ TabBarTab_Radius * 2, TabBarTab_Radius * 2), 0, 90); ++ path.lineTo(drawRect.left(), drawRect.top()); ++ path.lineTo(drawRect.left(), drawRect.bottom()); ++ path.lineTo(drawRect.right(), drawRect.bottom()); ++ } else { ++ path.addRect(drawRect); ++ } ++ } ++ } ++ } + } else { + + path.addRect(drawRect); +@@ -5912,7 +6061,7 @@ void UKUIConfigStyle::drawControl(QStyle::ControlElement element, const QStyleOp + painter->restore(); + return; + } +- ++ //绘制进度条内容部分 + case CE_ProgressBarContents: + { + if (const QStyleOptionProgressBar *pb = qstyleoption_cast<const QStyleOptionProgressBar *>(option)) { diff -Nru qt5-ukui-platformtheme-4.1.0.0/debian/patches/series qt5-ukui-platformtheme-4.1.0.0/debian/patches/series --- qt5-ukui-platformtheme-4.1.0.0/debian/patches/series 2024-11-08 09:49:00.000000000 +0800 +++ qt5-ukui-platformtheme-4.1.0.0/debian/patches/series 2025-02-12 15:01:00.000000000 +0800 @@ -74,3 +74,7 @@ 0074-Translated-using-Weblate-Uyghur.patch 0075-Translated-using-Weblate-Uyghur.patch 0076-Update-changelog-2024.11.08-4.1.0.0-ok53.patch +0077-.patch +0078-pc.patch +0079-Translated-using-Weblate-Vietnamese.patch +0080-BUG-IAY3M0-fix-the-abnormal-hover-effect-of-the-ukui.patch