kiran-qt5-integration/0004-feat-style-app-Adjust-the-topic-configuration-to-whi.patch

159 lines
5.7 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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