4 Star 0 Fork 4

src-openEuler/kiran-qt5-integration

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0004-feat-style-app-Adjust-the-topic-configuration-to-whi.patch 5.66 KB
一键复制 编辑 原始数据 按行查看 历史
From 71223161f8c103846079ce5987ecce6a59f04a62 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinsec.com.cn>
Date: Mon, 5 Jun 2023 15:40:41 +0800
Subject: [PATCH 4/4] feat(style app): Adjust the topic configuration to
whitelist
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 调整主题配置为白名单,默认包括部分需要支持的kiran桌面环境进程名
---
common/data/kiran-qt5-integration.ini | 5 +++--
common/src/kiran-integration-settings.cpp | 26 +++++++++++++++++++----
common/src/kiran-integration-settings.h | 16 ++++++++++++--
platformtheme/kiran-theme.cpp | 4 ++--
style/src/kiran-style-plugin.cpp | 8 +++----
5 files changed, 45 insertions(+), 14 deletions(-)
diff --git a/common/data/kiran-qt5-integration.ini b/common/data/kiran-qt5-integration.ini
index 478b608..d0fd969 100644
--- a/common/data/kiran-qt5-integration.ini
+++ b/common/data/kiran-qt5-integration.ini
@@ -1,2 +1,3 @@
-#[Style]
-#disable-kiran-style-apps=Do not load kiranstyle applications, eg: assistant-qt5,qdbusviewer
\ No newline at end of file
+[Style]
+#启用kiran style的应用列表,已内置部分kiran桌面环境的组件,eg: kiran-*,kiran-panel
+kiran-style-apps=
\ No newline at end of file
diff --git a/common/src/kiran-integration-settings.cpp b/common/src/kiran-integration-settings.cpp
index 7726fad..a781fd3 100644
--- a/common/src/kiran-integration-settings.cpp
+++ b/common/src/kiran-integration-settings.cpp
@@ -4,6 +4,7 @@
#include <QMutexLocker>
#include <QScopedPointer>
#include <QSettings>
+#include <QRegExp>
KiranIntegrationSettings::KiranIntegrationSettings()
{
@@ -18,8 +19,8 @@ KiranIntegrationSettings::~KiranIntegrationSettings()
void KiranIntegrationSettings::init()
{
QSettings settings("/etc/kiran-qt5-integration/kiran-qt5-integration.ini",QSettings::IniFormat);
- QStringList disableStyleApps = settings.value("Style/disable-kiran-style-apps","").toStringList();
- m_disableKiranStyleApps.append(disableStyleApps);
+ QStringList kiranStyleApps = settings.value("Style/kiran-style-apps","").toStringList();
+ m_kiranStyleApps.unite(kiranStyleApps.toSet());
}
KiranIntegrationSettings* KiranIntegrationSettings::instance()
@@ -39,7 +40,24 @@ KiranIntegrationSettings* KiranIntegrationSettings::instance()
return pInst.data();
}
-QStringList KiranIntegrationSettings::getDisableKiranStyleApps()
+QSet<QString> KiranIntegrationSettings::getKiranStyleApps()
{
- return m_disableKiranStyleApps;
+ return m_kiranStyleApps;
}
+
+bool KiranIntegrationSettings::appKiranStyleAvailable(const QString& app)
+{
+ bool matched = false;
+ QRegExp regExp("",Qt::CaseSensitive,QRegExp::Wildcard);
+
+ auto set = KiranIntegrationSettings::instance()->getKiranStyleApps();
+ foreach(auto pattern,set)
+ {
+ regExp.setPattern(pattern);
+ matched = regExp.exactMatch(app);
+ if( matched )
+ break;
+ }
+
+ return matched;
+}
\ No newline at end of file
diff --git a/common/src/kiran-integration-settings.h b/common/src/kiran-integration-settings.h
index e43c1b6..ff99929 100644
--- a/common/src/kiran-integration-settings.h
+++ b/common/src/kiran-integration-settings.h
@@ -1,6 +1,7 @@
#pragma once
#include <QStringList>
+#include <QSet>
class KiranIntegrationSettings
{
@@ -8,12 +9,23 @@ public:
static KiranIntegrationSettings* instance();
~KiranIntegrationSettings();
- QStringList getDisableKiranStyleApps();
+ QSet<QString> getKiranStyleApps();
+ static bool appKiranStyleAvailable(const QString& app);
private:
KiranIntegrationSettings();
void init();
private:
- QStringList m_disableKiranStyleApps = {"lightdm-kiran-greeter","kiran-screensaver"};
+ QSet<QString> m_kiranStyleApps = {
+ "kiran-control-panel",
+ "kiran-cpanel-*",
+ "kiran-polkit-agent",
+ "kiran-avatar-editor",
+ "kiran-calculator",
+ "kiran-power-status-icon",
+ "kiran-network-status-icon",
+ "kiran-audio-status-icon",
+ "kiran-flameshot"
+ };
};
\ No newline at end of file
diff --git a/platformtheme/kiran-theme.cpp b/platformtheme/kiran-theme.cpp
index bf48006..9fec043 100644
--- a/platformtheme/kiran-theme.cpp
+++ b/platformtheme/kiran-theme.cpp
@@ -100,8 +100,8 @@ const QPalette* KiranTheme::palette(QPlatformTheme::Palette type) const
return QGenericUnixTheme::palette(type);
}
- QStringList blackapps = KiranIntegrationSettings::instance()->getDisableKiranStyleApps();
- if( blackapps.contains(qAppName()) )
+ bool enable = KiranIntegrationSettings::appKiranStyleAvailable(qAppName());
+ if( !enable )
{
return QGenericUnixTheme::palette(type);
}
diff --git a/style/src/kiran-style-plugin.cpp b/style/src/kiran-style-plugin.cpp
index aefbabc..08eaae2 100644
--- a/style/src/kiran-style-plugin.cpp
+++ b/style/src/kiran-style-plugin.cpp
@@ -28,11 +28,11 @@ QStyle *KiranStylePlugin::create(const QString & key)
{
if( key.compare("kiran",Qt::CaseInsensitive) == 0 )
{
- QStringList disableApps = KiranIntegrationSettings::instance()->getDisableKiranStyleApps();
- QString processName = qAppName();
- if( disableApps.contains(processName) )
+ auto processName = qAppName();
+ bool enable = KiranIntegrationSettings::appKiranStyleAvailable(processName);
+ if( !enable )
{
- qDebug("%s in black list,create fusion style for it.",processName.toStdString().c_str());
+ qDebug("%s not enable kiran style,create fusion style for it.",processName.toStdString().c_str());
return QStyleFactory::create("fusion");
}
else
--
2.33.0
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/src-openeuler/kiran-qt5-integration.git
git@gitee.com:src-openeuler/kiran-qt5-integration.git
src-openeuler
kiran-qt5-integration
kiran-qt5-integration
master

搜索帮助