feat(mainwindow):dockitem notification window hidden or displayed

This commit is contained in:
shaojun 2019-08-21 14:07:24 +08:00
parent d0fdde7a50
commit f05debd9f5
3 changed files with 15 additions and 0 deletions

View File

@ -49,6 +49,7 @@ DockItemManager::DockItemManager(QObject *parent)
// 应用区域
for (auto entry : m_appInter->entries()) {
AppItem *it = new AppItem(entry);
manageItem(it);
connect(it, &AppItem::requestActivateWindow, m_appInter, &DBusDock::ActivateWindow, Qt::QueuedConnection);
connect(it, &AppItem::requestPreviewWindow, m_appInter, &DBusDock::PreviewWindow);
@ -247,6 +248,7 @@ void DockItemManager::appItemAdded(const QDBusObjectPath &path, const int index)
}
AppItem *item = new AppItem(path);
manageItem(item);
connect(item, &AppItem::requestActivateWindow, m_appInter, &DBusDock::ActivateWindow, Qt::QueuedConnection);
connect(item, &AppItem::requestPreviewWindow, m_appInter, &DBusDock::PreviewWindow);
@ -281,6 +283,8 @@ void DockItemManager::appItemRemoved(AppItem *appItem)
void DockItemManager::pluginItemInserted(PluginsItem *item)
{
manageItem(item);
// check item is in container
if (item->allowContainer() && item->isInContainer()) {
return itemDroppedIntoContainer(item);
@ -386,3 +390,9 @@ void DockItemManager::sortPluginItems()
emit itemInserted(-1, m_itemList[i]);
}
}
void DockItemManager::manageItem(DockItem *item)
{
connect(item, &DockItem::requestRefreshWindowVisible, this, &DockItemManager::requestRefershWindowVisible, Qt::UniqueConnection);
connect(item, &DockItem::requestWindowAutoHide, this, &DockItemManager::requestWindowAutoHide, Qt::UniqueConnection);
}

View File

@ -55,6 +55,8 @@ signals:
void itemRemoved(DockItem *item) const;
void itemUpdated(DockItem *item) const;
void fashionTraySizeChanged(const QSize &traySize) const;
void requestWindowAutoHide(const bool autoHide) const;
void requestRefershWindowVisible() const;
public slots:
void refershItemsIcon();
@ -73,6 +75,7 @@ private:
void pluginItemInserted(PluginsItem *item);
void pluginItemRemoved(PluginsItem *item);
void reloadAppItems();
void manageItem(DockItem *item);
private:
QTimer *m_updatePluginsOrderTimer;

View File

@ -405,6 +405,8 @@ void MainWindow::initConnections()
connect(DockItemManager::instance(), &DockItemManager::itemInserted, m_mainPanel, &MainPanelControl::insertItem, Qt::DirectConnection);
connect(DockItemManager::instance(), &DockItemManager::itemRemoved, m_mainPanel, &MainPanelControl::removeItem, Qt::DirectConnection);
connect(DockItemManager::instance(), &DockItemManager::requestRefershWindowVisible, this, &MainWindow::updatePanelVisible, Qt::QueuedConnection);
connect(DockItemManager::instance(), &DockItemManager::requestWindowAutoHide, m_settings, &DockSettings::setAutoHide);
connect(m_mainPanel, &MainPanelControl::itemMoved, DockItemManager::instance(), &DockItemManager::itemMoved, Qt::DirectConnection);
}