From f28dd1ac2c6a980c978db2397264e75976a318bd Mon Sep 17 00:00:00 2001 From: donghualin Date: Mon, 21 Nov 2022 05:30:38 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=94=B5=E6=B1=A0=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA=E5=9C=A8=E5=BF=AB=E6=8D=B7=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、新需求中,电池插件不显示在快捷面板上 2、在插入插件到快捷面板中的时候,判断快捷面板的图标或者显示在快捷面板的Widget为空的情况下,返回空 3、设置电池的快捷面板的图标返回为空图标 Log: 电池插件不显示在快捷面板 Influence: 从笔记本上,打开快捷面板,观察是否存在电池图标 Bug: https://pms.uniontech.com/bug-view-171713.html Change-Id: I506865b7ac26637b28c8fd2d40f044f9061040c8 --- frame/item/quicksettingitem.cpp | 4 ++++ frame/window/quicksettingcontainer.cpp | 3 +++ plugins/power/powerplugin.cpp | 5 ++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/frame/item/quicksettingitem.cpp b/frame/item/quicksettingitem.cpp index bbe9e7797..d6d5710f6 100644 --- a/frame/item/quicksettingitem.cpp +++ b/frame/item/quicksettingitem.cpp @@ -141,6 +141,10 @@ void QuickSettingItem::onRequestAppletShow(PluginsItemInterface *itemInter, cons QuickSettingItem *QuickSettingFactory::createQuickWidget(PluginsItemInterface * const pluginInter) { + // 如果显示在面板的图标或者Widget为空,则不让显示(例如电池插件) + if (pluginInter->icon(DockPart::QuickPanel).isNull() && !pluginInter->itemWidget(QUICK_ITEM_KEY)) + return nullptr; + const QJsonObject metaData = QuickSettingController::instance()->metaData(pluginInter); if (metaData.contains("primary") && metaData.value("primary").toBool()) return new MultiQuickItem(pluginInter); diff --git a/frame/window/quicksettingcontainer.cpp b/frame/window/quicksettingcontainer.cpp index 904871a0b..daaa62ce0 100644 --- a/frame/window/quicksettingcontainer.cpp +++ b/frame/window/quicksettingcontainer.cpp @@ -202,6 +202,9 @@ QPoint QuickSettingContainer::hotSpot(const QPixmap &pixmap) void QuickSettingContainer::appendPlugin(PluginsItemInterface *itemInter, bool needLayout) { QuickSettingItem *quickItem = QuickSettingFactory::createQuickWidget(itemInter); + if (!quickItem) + return; + quickItem->setParent(m_pluginWidget); quickItem->setMouseTracking(true); quickItem->installEventFilter(this); diff --git a/plugins/power/powerplugin.cpp b/plugins/power/powerplugin.cpp index b5aea7bb4..6e83cec23 100644 --- a/plugins/power/powerplugin.cpp +++ b/plugins/power/powerplugin.cpp @@ -201,7 +201,10 @@ void PowerPlugin::pluginSettingsChanged() QIcon PowerPlugin::icon(const DockPart &dockPart) { - Q_UNUSED(dockPart); + // 电池插件不显示在快捷面板上,因此此处返回空图标 + if (dockPart == DockPart::QuickPanel) + return QIcon(); + static QIcon batteryIcon; const QPixmap pixmap = m_powerStatusWidget->getBatteryIcon(); batteryIcon.detach();