mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
fix: 插件区应用默认顺序不正确
不开窗口特效时,多任务视图会从插件中移除,导致刷新插件顺序,此时插件并没有加载完成,导致默认顺序出错 Log: 插件区应用默认顺序不正确问题修复 Bug: https://pms.uniontech.com/zentao/bug-view-61127.html Change-Id: I4a8d487f1dd5f70529a04ac8e2dfe3ed092ac613
This commit is contained in:
parent
d7f3698714
commit
f37ffc8602
@ -84,6 +84,7 @@ DockItemManager::DockItemManager(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_appInter(new DBusDock("com.deepin.dde.daemon.Dock", "/com/deepin/dde/daemon/Dock", QDBusConnection::sessionBus(), this))
|
||||
, m_pluginsInter(new DockPluginsController(this))
|
||||
, m_loadFinished(false)
|
||||
{
|
||||
//固定区域:启动器
|
||||
m_itemList.append(new LauncherItem);
|
||||
@ -117,7 +118,7 @@ DockItemManager::DockItemManager(QObject *parent)
|
||||
connect(m_pluginsInter, &DockPluginsController::pluginItemRemoved, this, &DockItemManager::pluginItemRemoved, Qt::QueuedConnection);
|
||||
connect(m_pluginsInter, &DockPluginsController::pluginItemUpdated, this, &DockItemManager::itemUpdated, Qt::QueuedConnection);
|
||||
connect(m_pluginsInter, &DockPluginsController::trayVisableCountChanged, this, &DockItemManager::trayVisableCountChanged, Qt::QueuedConnection);
|
||||
connect(m_pluginsInter, &DockPluginsController::pluginLoaderFinished, this, &DockItemManager::updatePluginsItemOrderKey, Qt::QueuedConnection);
|
||||
connect(m_pluginsInter, &DockPluginsController::pluginLoaderFinished, this, &DockItemManager::onPluginLoadFinished, Qt::QueuedConnection);
|
||||
|
||||
// 刷新图标
|
||||
QMetaObject::invokeMethod(this, "refershItemsIcon", Qt::QueuedConnection);
|
||||
@ -364,7 +365,9 @@ void DockItemManager::pluginItemRemoved(PluginsItem *item)
|
||||
|
||||
m_itemList.removeOne(item);
|
||||
|
||||
updatePluginsItemOrderKey();
|
||||
if (m_loadFinished) {
|
||||
updatePluginsItemOrderKey();
|
||||
}
|
||||
}
|
||||
|
||||
void DockItemManager::reloadAppItems()
|
||||
@ -420,3 +423,9 @@ void DockItemManager::manageItem(DockItem *item)
|
||||
connect(item, &DockItem::requestRefreshWindowVisible, this, &DockItemManager::requestRefershWindowVisible, Qt::UniqueConnection);
|
||||
connect(item, &DockItem::requestWindowAutoHide, this, &DockItemManager::requestWindowAutoHide, Qt::UniqueConnection);
|
||||
}
|
||||
|
||||
void DockItemManager::onPluginLoadFinished()
|
||||
{
|
||||
updatePluginsItemOrderKey();
|
||||
m_loadFinished = true;
|
||||
}
|
||||
|
@ -61,6 +61,9 @@ public slots:
|
||||
void itemMoved(DockItem *const sourceItem, DockItem *const targetItem);
|
||||
void itemAdded(const QString &appDesktop, int idx);
|
||||
|
||||
private Q_SLOTS:
|
||||
void onPluginLoadFinished();
|
||||
|
||||
private:
|
||||
explicit DockItemManager(QObject *parent = nullptr);
|
||||
void appItemAdded(const QDBusObjectPath &path, const int index);
|
||||
@ -80,6 +83,8 @@ private:
|
||||
|
||||
QList<QPointer<DockItem>> m_itemList;
|
||||
QList<QString> m_appIDist;
|
||||
|
||||
bool m_loadFinished; // 记录所有插件是否加载完成
|
||||
};
|
||||
|
||||
#endif // DOCKITEMMANAGER_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user