代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/kiran-session-guard 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From af28157ad311c38ab8990b1abd2b1a3041c65a22 Mon Sep 17 00:00:00 2001
From: niko_yhc <yinhongchang@kylinsec.com.cn>
Date: Tue, 12 Sep 2023 19:20:14 +0800
Subject: [PATCH 7/7] fix(kiran-session-guard):fits the Qt5.9.7 interface
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 适配Qt5.9.7接口,修复编译报错
Closes:#15019
---
lib/auth-proxy/auth-controller.cpp | 21 +++++++++++++++++++++
src/polkit-agent/listener.cpp | 26 ++++++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/lib/auth-proxy/auth-controller.cpp b/lib/auth-proxy/auth-controller.cpp
index ce574a2..9d7acd4 100644
--- a/lib/auth-proxy/auth-controller.cpp
+++ b/lib/auth-proxy/auth-controller.cpp
@@ -145,7 +145,12 @@ bool AuthController::processAuthDaemonCommand(const QString& msg)
auto cmdStr = msg.midRef(strlen(KAP_PROTO_JSON_PREFIX), -1);
QJsonDocument jsonDoc = QJsonDocument::fromJson(cmdStr.toUtf8());
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
int protoID = jsonDoc[KAP_PJK_KEY_HEAD][KAP_PJK_KEY_CMD].toInt(-1);
+#else
+ QJsonValue val = jsonDoc.object()[KAP_PJK_KEY_HEAD];
+ int protoID = val.toObject()[KAP_PJK_KEY_CMD].toInt(-1);
+#endif
if (protoID == -1)
{
return false;
@@ -155,7 +160,12 @@ bool AuthController::processAuthDaemonCommand(const QString& msg)
{
case KAP_REQ_CMD_NOTIFY_AUTH_MODE:
{
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto authMode = jsonDoc[KAP_PJK_KEY_BODY][KAP_PJK_KEY_AUTH_MODE].toInt(-1);
+#else
+ QJsonValue val = jsonDoc.object()[KAP_PJK_KEY_BODY];
+ auto authMode = val.toObject()[KAP_PJK_KEY_AUTH_MODE].toInt(-1);
+#endif
if (authMode < KAD_AUTH_MODE_NONE || authMode > KAD_AUTH_MODE_LAST)
{
KLOG_WARNING() << "invalid auth mode" << authMode;
@@ -171,7 +181,13 @@ bool AuthController::processAuthDaemonCommand(const QString& msg)
}
case KAP_REQ_CMD_NOTIFY_SUPPORT_AUTH_TYPE:
{
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto authTypesArray = jsonDoc[KAP_PJK_KEY_BODY][KAP_PJK_KEY_AUTH_TYPES].toArray(QJsonArray());
+#else
+ QJsonValue val = jsonDoc.object()[KAP_PJK_KEY_BODY];
+ const QJsonObject object = val.toObject();
+ auto authTypesArray = object[KAP_PJK_KEY_AUTH_TYPES].toArray(QJsonArray());
+#endif
if (authTypesArray.isEmpty())
{
KLOG_WARNING() << "invalid auth types";
@@ -202,7 +218,12 @@ bool AuthController::processAuthDaemonCommand(const QString& msg)
}
case KAP_REQ_CMD_NOTIFY_AUTH_TYPE:
{
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto authType = jsonDoc[KAP_PJK_KEY_BODY][KAP_PJK_KEY_AUTH_TYPE].toInt(-1);
+#else
+ QJsonValue val = jsonDoc.object()[KAP_PJK_KEY_BODY];
+ auto authType = val.toObject()[KAP_PJK_KEY_AUTH_TYPES].toInt(-1);
+#endif
if (authType <= KAD_AUTH_TYPE_NONE || authType >= KAD_AUTH_TYPE_LAST)
{
KLOG_WARNING() << "invalid auth types";
diff --git a/src/polkit-agent/listener.cpp b/src/polkit-agent/listener.cpp
index fbcd66a..7474329 100644
--- a/src/polkit-agent/listener.cpp
+++ b/src/polkit-agent/listener.cpp
@@ -38,6 +38,28 @@ Listener::~Listener()
{
}
+#if (QT_VERSION < QT_VERSION_CHECK(5, 10, 0))
+static QScreen *screenAt(const QPoint &point)
+{
+ QVarLengthArray<const QScreen *, 8> visitedScreens;
+ for (const QScreen *screen : QGuiApplication::screens()) {
+ if (visitedScreens.contains(screen))
+ continue;
+
+ // The virtual siblings include the screen itself, so iterate directly
+ for (QScreen *sibling : screen->virtualSiblings()) {
+ if (sibling->geometry().contains(point))
+ return sibling;
+
+ visitedScreens.append(sibling);
+ }
+ }
+
+ return nullptr;
+}
+#endif
+
+
void Listener::initiateAuthentication(const QString &actionId,
const QString &message,
const QString &iconName,
@@ -83,7 +105,11 @@ void Listener::initiateAuthentication(const QString &actionId,
connect(m_authDialog, &Dialog::completed, this, &Listener::onAuthDialogCompleted);
connect(m_authDialog, &Dialog::cancelled, this, &Listener::onAuthDialogCancelled);
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto screen = QApplication::screenAt(QCursor::pos());
+#else
+ auto screen = screenAt(QCursor::pos());
+#endif
if (screen != nullptr)
{
QRect screenGeometry = screen->geometry();
--
2.27.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。