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
|
|||
|
|
|