159 lines
5.7 KiB
Diff
159 lines
5.7 KiB
Diff
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
|
||
|