fix(kiran-control-panel):fits the Qt5.9.7 interface

- 适配Qt5.9.7接口,修复编译报错

Closes:#15019
(cherry picked from commit a3db3c4070617be25270b5b89164e95160cea981)
This commit is contained in:
niko_yhc 2023-09-12 16:20:23 +08:00 committed by openeuler-sync-bot
parent 8dc9d535f7
commit eb8d3cc0f0
2 changed files with 337 additions and 1 deletions

View File

@ -0,0 +1,332 @@
From 7c62cbc143a47fa47b432b5f8a57a5dda0d536eb Mon Sep 17 00:00:00 2001
From: niko_yhc <yinhongchang@kylinsec.com.cn>
Date: Tue, 12 Sep 2023 16:04:09 +0800
Subject: [PATCH] fix(kiran-control-panel):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/common-widgets/kiran-tips/kiran-tips.cpp | 4 +++
.../src/pages/face/face-page.cpp | 1 -
.../src/pages/finger/finger-page.cpp | 11 ++++----
.../src/pages/iris/iris-page.cpp | 1 -
.../src/pages/prefs/prefs-page.cpp | 16 ++++++------
.../src/pages/ukey/ukey-page.cpp | 1 -
.../src/widgets/general-bio-page.cpp | 8 ++++++
.../network/src/tray/wired-tray-widget.cpp | 10 ++++----
.../network/src/tray/wireless-tray-widget.cpp | 14 +++++------
plugins/power/src/upower-interface.cpp | 4 +++
.../hardware-information.cpp | 6 ++---
.../change-host-name-widget.cpp | 5 ----
.../system-information/system-information.cpp | 2 +-
src/main.cpp | 25 +++++++++++++++++++
14 files changed, 70 insertions(+), 38 deletions(-)
diff --git a/lib/common-widgets/kiran-tips/kiran-tips.cpp b/lib/common-widgets/kiran-tips/kiran-tips.cpp
index 7a8dcab..34f0fa2 100644
--- a/lib/common-widgets/kiran-tips/kiran-tips.cpp
+++ b/lib/common-widgets/kiran-tips/kiran-tips.cpp
@@ -279,7 +279,11 @@ QSize KiranTips::getRightSize() const
QFontMetrics fontMetrics(font);
QMargins layoutContentMargins = this->layout()->contentsMargins();
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 11, 0))
ui->label->setFixedWidth(fontMetrics.horizontalAdvance(ui->label->text()) + 10);
+#else
+ ui->label->setFixedWidth(fontMetrics.width(ui->label->text()) + 10);
+#endif
ui->label->setFixedHeight(fontMetrics.height());
QSize size;
diff --git a/plugins/authentication/src/pages/face/face-page.cpp b/plugins/authentication/src/pages/face/face-page.cpp
index 5e0a0db..4412631 100644
--- a/plugins/authentication/src/pages/face/face-page.cpp
+++ b/plugins/authentication/src/pages/face/face-page.cpp
@@ -23,7 +23,6 @@
#include <QBoxLayout>
#include <QLabel>
#include <QPushButton>
-#include <QRandomGenerator>
#include <QSpacerItem>
#include <QStackedWidget>
diff --git a/plugins/authentication/src/pages/finger/finger-page.cpp b/plugins/authentication/src/pages/finger/finger-page.cpp
index 86513a6..069ab94 100644
--- a/plugins/authentication/src/pages/finger/finger-page.cpp
+++ b/plugins/authentication/src/pages/finger/finger-page.cpp
@@ -29,7 +29,6 @@
#include <QComboBox>
#include <QLabel>
#include <QPushButton>
-#include <QRandomGenerator>
#include <QStackedWidget>
#include <QUuid>
@@ -43,11 +42,11 @@ enum FingerPageIndexEnum
};
const std::list<std::tuple<uint, QString>> FingerProgressRangePixmapList = {
- {0, ":/kcp-authentication/images/finger-0.svg"},
- {25, ":/kcp-authentication/images/finger-25.svg"},
- {50, ":/kcp-authentication/images/finger-50.svg"},
- {75, ":/kcp-authentication/images/finger-75.svg"},
- {100, ":/kcp-authentication/images/finger-100.svg"}};
+ std::make_tuple(0, ":/kcp-authentication/images/finger-0.svg"),
+ std::make_tuple(25, ":/kcp-authentication/images/finger-25.svg"),
+ std::make_tuple(50, ":/kcp-authentication/images/finger-50.svg"),
+ std::make_tuple(75, ":/kcp-authentication/images/finger-75.svg"),
+ std::make_tuple(100, ":/kcp-authentication/images/finger-100.svg")};
FingerPage::FingerPage(KiranAuthDBusProxy* proxy, FingerAuthType type, QWidget* parent)
: QWidget(parent),
diff --git a/plugins/authentication/src/pages/iris/iris-page.cpp b/plugins/authentication/src/pages/iris/iris-page.cpp
index 714c9c0..cacc801 100644
--- a/plugins/authentication/src/pages/iris/iris-page.cpp
+++ b/plugins/authentication/src/pages/iris/iris-page.cpp
@@ -23,7 +23,6 @@
#include <QBoxLayout>
#include <QLabel>
#include <QPushButton>
-#include <QRandomGenerator>
#include <QSpacerItem>
#include <QStackedWidget>
diff --git a/plugins/authentication/src/pages/prefs/prefs-page.cpp b/plugins/authentication/src/pages/prefs/prefs-page.cpp
index 8bad280..a50cc15 100644
--- a/plugins/authentication/src/pages/prefs/prefs-page.cpp
+++ b/plugins/authentication/src/pages/prefs/prefs-page.cpp
@@ -71,11 +71,11 @@ QWidget* PrefsPage::initAuthTypePage()
authTypeLayout->addStretch();
std::list<std::tuple<KADAuthType, QString>> authTypes = {
- {KAD_AUTH_TYPE_FINGERPRINT, tr("fingerprint")},
- {KAD_AUTH_TYPE_FINGERVEIN, tr("fingervein")},
- {KAD_AUTH_TYPE_UKEY, tr("ukey")},
- {KAD_AUTH_TYPE_IRIS, tr("iris")},
- {KAD_AUTH_TYPE_FACE, tr("face")}};
+ std::make_tuple(KAD_AUTH_TYPE_FINGERPRINT, tr("fingerprint")),
+ std::make_tuple(KAD_AUTH_TYPE_FINGERVEIN, tr("fingervein")),
+ std::make_tuple(KAD_AUTH_TYPE_UKEY, tr("ukey")),
+ std::make_tuple(KAD_AUTH_TYPE_IRIS, tr("iris")),
+ std::make_tuple(KAD_AUTH_TYPE_FACE, tr("face"))};
// fill auth types
for (auto iter : authTypes)
@@ -134,9 +134,9 @@ QWidget* PrefsPage::initAuthApplicationPage()
authAppLayout->addLayout(buttonLayout);
std::list<std::tuple<KADAuthApplication, QString>> authTypes = {
- {KAD_AUTH_APPLICATION_LOGIN, tr("login")},
- {KAD_AUTH_APPLICATION_UNLOCK, tr("unlock")},
- {KAD_AUTH_APPLICATION_EMPOWERMENT, tr("empowerment")}};
+ std::make_tuple(KAD_AUTH_APPLICATION_LOGIN, tr("login")),
+ std::make_tuple(KAD_AUTH_APPLICATION_UNLOCK, tr("unlock")),
+ std::make_tuple(KAD_AUTH_APPLICATION_EMPOWERMENT, tr("empowerment"))};
// fill auth applications
for (auto iter : authTypes)
diff --git a/plugins/authentication/src/pages/ukey/ukey-page.cpp b/plugins/authentication/src/pages/ukey/ukey-page.cpp
index 38051ca..bdf4033 100644
--- a/plugins/authentication/src/pages/ukey/ukey-page.cpp
+++ b/plugins/authentication/src/pages/ukey/ukey-page.cpp
@@ -27,7 +27,6 @@
#include <QJsonValue>
#include <QLabel>
#include <QPushButton>
-#include <QRandomGenerator>
#include <QSpacerItem>
UKeyPage::UKeyPage(KiranAuthDBusProxy* proxy, QWidget* parent)
diff --git a/plugins/authentication/src/widgets/general-bio-page.cpp b/plugins/authentication/src/widgets/general-bio-page.cpp
index 36d0ef9..1047c3e 100644
--- a/plugins/authentication/src/widgets/general-bio-page.cpp
+++ b/plugins/authentication/src/widgets/general-bio-page.cpp
@@ -12,7 +12,10 @@
#include <QComboBox>
#include <QLabel>
#include <QPushButton>
+#include <QTime>
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
#include <QRandomGenerator>
+#endif
#define MAX_FEATURE_NUMBER 1000
@@ -45,7 +48,12 @@ QString GeneralBioPage::autoGenerateFeatureName()
for (int i = 0; i <= 10; ++i)
{
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto featureNumber = QRandomGenerator::global()->bounded(1, MAX_FEATURE_NUMBER);
+#else
+ qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime()));
+ auto featureNumber = qrand() % MAX_FEATURE_NUMBER + 1;
+#endif
auto temp = QString("%1 %2").arg(m_featureNamePrefix).arg(featureNumber);
if (!m_featureNameSet.contains(temp))
diff --git a/plugins/network/src/tray/wired-tray-widget.cpp b/plugins/network/src/tray/wired-tray-widget.cpp
index 02fac75..67b2224 100644
--- a/plugins/network/src/tray/wired-tray-widget.cpp
+++ b/plugins/network/src/tray/wired-tray-widget.cpp
@@ -59,11 +59,11 @@ void WiredTrayWidget::initUI()
void WiredTrayWidget::initConnection()
{
- connect(m_connectionList, &TrayConnectionList::connectionUpdated, this, &WiredTrayWidget::handleConnectionUpdated, Qt::UniqueConnection);
- connect(m_connectionList, &TrayConnectionList::activateSelectedConnection, this, &WiredTrayWidget::handleActivateSelectedConnection, Qt::UniqueConnection);
- connect(m_connectionList, &TrayConnectionList::disconnect, this, &WiredTrayWidget::handleDisconnect, Qt::UniqueConnection);
- connect(m_connectionList, &TrayConnectionList::cancelConnection, this, &WiredTrayWidget::handleCancelConnection, Qt::UniqueConnection);
- connect(m_connectionList, &TrayConnectionList::sizeChanged, this, &WiredTrayWidget::sizeChanged, Qt::UniqueConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::connectionUpdated, this, &WiredTrayWidget::handleConnectionUpdated, Qt::UniqueConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::activateSelectedConnection, this, &WiredTrayWidget::handleActivateSelectedConnection, Qt::UniqueConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::disconnect, this, &WiredTrayWidget::handleDisconnect, Qt::UniqueConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::cancelConnection, this, &WiredTrayWidget::handleCancelConnection, Qt::UniqueConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::sizeChanged, this, &WiredTrayWidget::sizeChanged, Qt::UniqueConnection);
connect(m_wiredDevice.data(), &WiredDevice::carrierChanged, this, &WiredTrayWidget::handleCarrierChanged, Qt::UniqueConnection);
connect(m_wiredDevice.data(), &Device::stateChanged, this, &WiredTrayWidget::handleStateChanged, Qt::UniqueConnection);
diff --git a/plugins/network/src/tray/wireless-tray-widget.cpp b/plugins/network/src/tray/wireless-tray-widget.cpp
index 2054d99..7680376 100644
--- a/plugins/network/src/tray/wireless-tray-widget.cpp
+++ b/plugins/network/src/tray/wireless-tray-widget.cpp
@@ -55,19 +55,19 @@ void WirelessTrayWidget::initUI()
void WirelessTrayWidget::initConnection()
{
- connect(m_connectionList, &TrayConnectionList::activateSelectedWirelessNetwork, this, &WirelessTrayWidget::handleActivateSelectedWirelessNetwork);
- connect(m_connectionList, &TrayConnectionList::disconnect, this, &WirelessTrayWidget::handleDisconnect);
- connect(m_connectionList, &TrayConnectionList::cancelConnection, this, &WirelessTrayWidget::handleCancelConnection);
- connect(m_connectionList, &TrayConnectionList::ignoreConnection, this, &WirelessTrayWidget::handleIgnoreConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::activateSelectedWirelessNetwork, this, &WirelessTrayWidget::handleActivateSelectedWirelessNetwork);
+ connect(m_connectionList.data(), &TrayConnectionList::disconnect, this, &WirelessTrayWidget::handleDisconnect);
+ connect(m_connectionList.data(), &TrayConnectionList::cancelConnection, this, &WirelessTrayWidget::handleCancelConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::ignoreConnection, this, &WirelessTrayWidget::handleIgnoreConnection);
connect(m_wirelessDevice.data(), &WirelessDevice::networkDisappeared, this, &WirelessTrayWidget::handleNetworkDisappeared);
connect(m_wirelessDevice.data(), &WirelessDevice::networkAppeared, this, &WirelessTrayWidget::handleNetworkAppeared);
- connect(m_connectionList, &TrayConnectionList::sendPasswordToWirelessSetting, this, &WirelessTrayWidget::setSecurityPskAndActivateWirelessConnection);
- connect(m_connectionList, &TrayConnectionList::sendSsidToWireless, this, &WirelessTrayWidget::handleActivateHiddenNetwork);
+ connect(m_connectionList.data(), &TrayConnectionList::sendPasswordToWirelessSetting, this, &WirelessTrayWidget::setSecurityPskAndActivateWirelessConnection);
+ connect(m_connectionList.data(), &TrayConnectionList::sendSsidToWireless, this, &WirelessTrayWidget::handleActivateHiddenNetwork);
connect(m_devicePtr.data(), &Device::stateChanged, this, &WirelessTrayWidget::handleDeviceStateChanged, Qt::UniqueConnection);
- connect(m_connectionList, &TrayConnectionList::sizeChanged, this, &WirelessTrayWidget::sizeChanged);
+ connect(m_connectionList.data(), &TrayConnectionList::sizeChanged, this, &WirelessTrayWidget::sizeChanged);
connect(SignalForward::instance(), &SignalForward::wirelessConnectionAdded, this, &WirelessTrayWidget::handleNotifierConnectionAdded);
connect(SignalForward::instance(), &SignalForward::connectionRemoved, this, &WirelessTrayWidget::handleNotifierConnectionRemoved);
diff --git a/plugins/power/src/upower-interface.cpp b/plugins/power/src/upower-interface.cpp
index f929fbd..aa7960b 100644
--- a/plugins/power/src/upower-interface.cpp
+++ b/plugins/power/src/upower-interface.cpp
@@ -32,7 +32,11 @@ bool UPowerInterface::haveBattery()
}
#endif
+#if UP_CHECK_VERSION(0, 99, 8)
auto devices = up_client_get_devices2(upClient);
+#else
+ auto devices = up_client_get_devices(upClient);
+#endif
void *device = nullptr;
UpDeviceKind kind;
for (int i = 0; i < devices->len; i++)
diff --git a/plugins/system/src/pages/hardware-information/hardware-information.cpp b/plugins/system/src/pages/hardware-information/hardware-information.cpp
index 9e4ae2e..5232390 100644
--- a/plugins/system/src/pages/hardware-information/hardware-information.cpp
+++ b/plugins/system/src/pages/hardware-information/hardware-information.cpp
@@ -88,9 +88,9 @@ void HardwareInformation::initUI(void)
ui->label_CPU_info->setToolTip(cpu);
QList<std::tuple<QStringList, QGridLayout *> > hardwareMap = {
- {disks, ui->gridLayout_hard_disk},
- {graphics, ui->gridLayout_graphics_card},
- {eths, ui->gridLayout_network_card}};
+ std::make_tuple(disks, ui->gridLayout_hard_disk),
+ std::make_tuple(graphics, ui->gridLayout_graphics_card),
+ std::make_tuple(eths, ui->gridLayout_network_card)};
for (auto hardwareInitTuple : hardwareMap)
{
QStringList infos = std::get<0>(hardwareInitTuple);
diff --git a/plugins/system/src/pages/system-information/change-host-name-widget.cpp b/plugins/system/src/pages/system-information/change-host-name-widget.cpp
index c8ea9f6..7cad825 100644
--- a/plugins/system/src/pages/system-information/change-host-name-widget.cpp
+++ b/plugins/system/src/pages/system-information/change-host-name-widget.cpp
@@ -61,11 +61,6 @@ void ChangeHostNameWidget::initUI()
setIcon(QIcon(":/images/kylin-about.png"));
ui->btn_save->setEnabled(false);
-
- auto screen = QApplication::screenAt(QCursor::pos());
- auto screenGeometry = screen->geometry();
- this->move(screenGeometry.x() + (screenGeometry.width() - this->width()) / 2,
- screenGeometry.y() + (screenGeometry.height() - this->height()) / 2);
}
void ChangeHostNameWidget::setNewHostName()
diff --git a/plugins/system/src/pages/system-information/system-information.cpp b/plugins/system/src/pages/system-information/system-information.cpp
index c249b69..9866d01 100644
--- a/plugins/system/src/pages/system-information/system-information.cpp
+++ b/plugins/system/src/pages/system-information/system-information.cpp
@@ -268,7 +268,7 @@ void SystemInformation::handleChangeHostName()
{
if (hostNameWidget == nullptr)
{
- hostNameWidget = new ChangeHostNameWidget;
+ hostNameWidget = new ChangeHostNameWidget(this);
}
hostNameWidget->setAttribute(Qt::WA_QuitOnClose, false);
hostNameWidget->installEventFilter(this);
diff --git a/src/main.cpp b/src/main.cpp
index 2e75c10..2ff2737 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -123,6 +123,27 @@ void dumpPluginManagerInfo()
#endif
}
+#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
+
int main(int argc, char *argv[])
{
KiranSingleApplication app(argc,
@@ -165,7 +186,11 @@ int main(int argc, char *argv[])
PanelWindow w;
w.jump(defaultCategory,defaultSubItem);
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0))
auto screen = QApplication::screenAt(QCursor::pos());
+#else
+ auto screen = screenAt(QCursor::pos());
+#endif
QRect screenGeometry = screen->geometry();
w.resize(1031, 742);
w.move(screenGeometry.x() + (screenGeometry.width() - w.width()) / 2,
--
2.27.0

View File

@ -1,6 +1,6 @@
Name: kiran-control-panel
Version: 2.5.5
Release: 7%{?dist}
Release: 8%{?dist}
Summary: Kiran Control Panel
Summary(zh_CN): Kiran桌面控制面板
@ -16,6 +16,7 @@ Patch0006: 0006-feature-network-When-the-gateway-setting-item-is-0.0.patch
Patch0007: 0007-fix-audio-Fix-parsing-error-when-json-contains-Chine.patch
Patch0008: 0008-fix-audio-tray-Fixed-an-issue-where-the-volume-tray-.patch
Patch0009: 0009-fix-audio-The-Sink-Source-device-list-displays-only-.patch
Patch0010: 0010-fix-kiran-control-panel-fits-the-Qt5.9.7-interface.patch
BuildRequires: gcc-c++
BuildRequires: cmake >= 3.2
@ -173,6 +174,9 @@ make %{?_smp_mflags}
rm -rf %{buildroot}
%changelog
* Tue Sep 12 2023 yinhongchang <yinhongchang@kylinsec.com.cn> - 2.5.5-8
- KYOS-F: fits the Qt5.9.7 interface(#15019)
* Fri Sep 08 2023 luoqing <luoqing@kylinsec.com.cn> - 2.5.5-7
- KYOS-F: The Sink/Source device list displays only active ports. The port selection function is temporarily disabled(#13261)