mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
fix: 修复快捷面板没有刷新最新状态图的问题
当插件调用updateDockInfo接口的时候,快捷面板重新最新状态的插件图标的显示 Log: 修复快捷面板没有实时显示图标变化的问题 Influence: 笔记本上打开快捷面板,拔掉电源或插上电源,观察电池状态是否发生变化 Task: https://pms.uniontech.com/task-view-208069.html Change-Id: I81f97d69d3acbcd2a0a8e540274702b21ecde6b5
This commit is contained in:
parent
e67b016b27
commit
ec894f286a
@ -250,7 +250,7 @@ bool QuickSettingContainer::isApplet(PluginsItemInterface *itemInter) const
|
||||
return json.value("applet").toBool();
|
||||
}
|
||||
|
||||
bool QuickSettingContainer::isQuickPlugin(PluginsItemInterface *itemInter) const
|
||||
QWidget *QuickSettingContainer::findPluginWindget(PluginsItemInterface *itemInter) const
|
||||
{
|
||||
// 先判断是否为快捷面板区域(类似声音、亮度,音乐等)
|
||||
QWidget *itemWidget = itemInter->itemWidget(QUICK_ITEM_KEY);
|
||||
@ -269,7 +269,7 @@ bool QuickSettingContainer::isQuickPlugin(PluginsItemInterface *itemInter) const
|
||||
if (!layoutItem || layoutItem->widget() != itemWidget)
|
||||
continue;
|
||||
|
||||
return true;
|
||||
return itemWidget;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -277,13 +277,14 @@ bool QuickSettingContainer::isQuickPlugin(PluginsItemInterface *itemInter) const
|
||||
if (settingItem->pluginItem() != itemInter)
|
||||
continue;
|
||||
|
||||
return true;
|
||||
return settingItem;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void QuickSettingContainer::onPluginInsert(PluginsItemInterface * itemInter)
|
||||
void QuickSettingContainer::onPluginInsert(PluginsItemInterface *itemInter)
|
||||
{
|
||||
QWidget *itemWidget = itemInter->itemWidget(QUICK_ITEM_KEY);
|
||||
if (isApplet(itemInter)) {
|
||||
@ -309,7 +310,7 @@ void QuickSettingContainer::onPluginInsert(PluginsItemInterface * itemInter)
|
||||
onResizeView();
|
||||
}
|
||||
|
||||
void QuickSettingContainer::onPluginRemove(PluginsItemInterface * itemInter)
|
||||
void QuickSettingContainer::onPluginRemove(PluginsItemInterface *itemInter)
|
||||
{
|
||||
QWidget *itemWidget = itemInter->itemWidget(QUICK_ITEM_KEY);
|
||||
if (itemWidget) {
|
||||
@ -478,14 +479,16 @@ void QuickSettingContainer::initUi()
|
||||
|
||||
void QuickSettingContainer::initConnection()
|
||||
{
|
||||
connect(m_pluginLoader, &QuickSettingController::pluginInserted, this, [ = ](PluginsItemInterface *itemInter, const QuickSettingController::PluginAttribute &pluginClass) {
|
||||
if (pluginClass != QuickSettingController::PluginAttribute::Quick)
|
||||
connect(m_pluginLoader, &QuickSettingController::pluginInserted, this, [ = ](PluginsItemInterface *itemInter, const QuickSettingController::PluginAttribute pluginAttr) {
|
||||
if (pluginAttr != QuickSettingController::PluginAttribute::Quick)
|
||||
return;
|
||||
|
||||
onPluginInsert(itemInter);
|
||||
});
|
||||
connect(m_pluginLoader, &QuickSettingController::pluginRemoved, this, &QuickSettingContainer::onPluginRemove);
|
||||
connect(m_pluginLoader, &QuickSettingController::requestAppletShow, this, &QuickSettingContainer::onRequestAppletShow);
|
||||
connect(m_pluginLoader, &QuickSettingController::pluginUpdated, this, &QuickSettingContainer::onPluginUpdated);
|
||||
|
||||
connect(m_playerWidget, &MediaWidget::visibleChanged, this, &QuickSettingContainer::onResizeView);
|
||||
connect(m_brihtnessWidget, &BrightnessWidget::visibleChanged, this, &QuickSettingContainer::onResizeView);
|
||||
connect(m_brihtnessWidget->sliderContainer(), &SliderContainer::iconClicked, this, [ this ](const SliderContainer::IconPosition &iconPosition) {
|
||||
@ -565,3 +568,15 @@ void QuickSettingContainer::onRequestAppletShow(PluginsItemInterface *itemInter,
|
||||
showWidget(itemApplet, itemInter->pluginDisplayName());
|
||||
onResizeView();
|
||||
}
|
||||
|
||||
void QuickSettingContainer::onPluginUpdated(PluginsItemInterface *itemInter, const DockPart dockPart)
|
||||
{
|
||||
if (dockPart != DockPart::QuickPanel)
|
||||
return;
|
||||
|
||||
QWidget *pluginWidget = findPluginWindget(itemInter);
|
||||
if (!pluginWidget)
|
||||
return;
|
||||
|
||||
pluginWidget->update();
|
||||
}
|
||||
|
@ -64,11 +64,12 @@ protected:
|
||||
void showHomePage();
|
||||
|
||||
private Q_SLOTS:
|
||||
void onPluginInsert(PluginsItemInterface * itemInter);
|
||||
void onPluginRemove(PluginsItemInterface * itemInter);
|
||||
void onPluginInsert(PluginsItemInterface *itemInter);
|
||||
void onPluginRemove(PluginsItemInterface *itemInter);
|
||||
void onItemDetailClick(PluginsItemInterface *pluginInter);
|
||||
void onResizeView();
|
||||
void onRequestAppletShow(PluginsItemInterface * itemInter, const QString &itemKey);
|
||||
void onRequestAppletShow(PluginsItemInterface *itemInter, const QString &itemKey);
|
||||
void onPluginUpdated(PluginsItemInterface *itemInter, const DockPart dockPart);
|
||||
|
||||
private:
|
||||
// 加载UI
|
||||
@ -86,7 +87,7 @@ private:
|
||||
// 判断是否支持显示在面板上
|
||||
bool isApplet(PluginsItemInterface * itemInter) const;
|
||||
// 判断插件是否在当前快捷面板上
|
||||
bool isQuickPlugin(PluginsItemInterface * itemInter) const;
|
||||
QWidget *findPluginWindget(PluginsItemInterface * itemInter) const;
|
||||
|
||||
private:
|
||||
static DockPopupWindow *m_popWindow;
|
||||
|
Loading…
x
Reference in New Issue
Block a user