mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat(tray):add method and signal to tray item count
This commit is contained in:
parent
4561065c6b
commit
357b141594
@ -68,7 +68,7 @@ DockItemManager::DockItemManager(QObject *parent)
|
|||||||
connect(m_pluginsInter, &DockPluginsController::pluginItemInserted, this, &DockItemManager::pluginItemInserted, Qt::QueuedConnection);
|
connect(m_pluginsInter, &DockPluginsController::pluginItemInserted, this, &DockItemManager::pluginItemInserted, Qt::QueuedConnection);
|
||||||
connect(m_pluginsInter, &DockPluginsController::pluginItemRemoved, this, &DockItemManager::pluginItemRemoved, Qt::QueuedConnection);
|
connect(m_pluginsInter, &DockPluginsController::pluginItemRemoved, this, &DockItemManager::pluginItemRemoved, Qt::QueuedConnection);
|
||||||
connect(m_pluginsInter, &DockPluginsController::pluginItemUpdated, this, &DockItemManager::itemUpdated, Qt::QueuedConnection);
|
connect(m_pluginsInter, &DockPluginsController::pluginItemUpdated, this, &DockItemManager::itemUpdated, Qt::QueuedConnection);
|
||||||
connect(m_pluginsInter, &DockPluginsController::fashionTraySizeChanged, this, &DockItemManager::fashionTraySizeChanged, Qt::QueuedConnection);
|
connect(m_pluginsInter, &DockPluginsController::trayVisableCountChanged, this, &DockItemManager::trayVisableCountChanged, Qt::QueuedConnection);
|
||||||
|
|
||||||
// 刷新图标
|
// 刷新图标
|
||||||
QMetaObject::invokeMethod(this, "refershItemsIcon", Qt::QueuedConnection);
|
QMetaObject::invokeMethod(this, "refershItemsIcon", Qt::QueuedConnection);
|
||||||
|
@ -50,7 +50,7 @@ signals:
|
|||||||
void itemInserted(const int index, DockItem *item) const;
|
void itemInserted(const int index, DockItem *item) const;
|
||||||
void itemRemoved(DockItem *item) const;
|
void itemRemoved(DockItem *item) const;
|
||||||
void itemUpdated(DockItem *item) const;
|
void itemUpdated(DockItem *item) const;
|
||||||
void fashionTraySizeChanged(const QSize &traySize) const;
|
void trayVisableCountChanged(const int &count) const;
|
||||||
void requestWindowAutoHide(const bool autoHide) const;
|
void requestWindowAutoHide(const bool autoHide) const;
|
||||||
void requestRefershWindowVisible() const;
|
void requestRefershWindowVisible() const;
|
||||||
|
|
||||||
|
@ -47,8 +47,8 @@ void DockPluginsController::itemAdded(PluginsItemInterface *const itemInter, con
|
|||||||
if (item->graphicsEffect()) {
|
if (item->graphicsEffect()) {
|
||||||
item->graphicsEffect()->setEnabled(false);
|
item->graphicsEffect()->setEnabled(false);
|
||||||
}
|
}
|
||||||
connect(static_cast<TrayPluginItem *>(item), &TrayPluginItem::fashionTraySizeChanged,
|
connect(static_cast<TrayPluginItem *>(item), &TrayPluginItem::trayVisableCountChanged,
|
||||||
this, &DockPluginsController::fashionTraySizeChanged, Qt::UniqueConnection);
|
this, &DockPluginsController::trayVisableCountChanged, Qt::UniqueConnection);
|
||||||
} else {
|
} else {
|
||||||
item = new PluginsItem(itemInter, itemKey);
|
item = new PluginsItem(itemInter, itemKey);
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,7 @@ signals:
|
|||||||
void pluginItemInserted(PluginsItem *pluginItem) const;
|
void pluginItemInserted(PluginsItem *pluginItem) const;
|
||||||
void pluginItemRemoved(PluginsItem *pluginItem) const;
|
void pluginItemRemoved(PluginsItem *pluginItem) const;
|
||||||
void pluginItemUpdated(PluginsItem *pluginItem) const;
|
void pluginItemUpdated(PluginsItem *pluginItem) const;
|
||||||
void fashionTraySizeChanged(const QSize &traySize) const;
|
void trayVisableCountChanged(const int &count) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadLocalPlugins();
|
void loadLocalPlugins();
|
||||||
|
@ -42,6 +42,11 @@ void TrayPluginItem::setRightSplitVisible(const bool visible)
|
|||||||
QMetaObject::invokeMethod(centralWidget(), "setRightSplitVisible", Qt::QueuedConnection, Q_ARG(bool, visible));
|
QMetaObject::invokeMethod(centralWidget(), "setRightSplitVisible", Qt::QueuedConnection, Q_ARG(bool, visible));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int TrayPluginItem::trayVisableItemCount()
|
||||||
|
{
|
||||||
|
return m_trayVisableItemCount;
|
||||||
|
}
|
||||||
|
|
||||||
bool TrayPluginItem::eventFilter(QObject *watched, QEvent *e)
|
bool TrayPluginItem::eventFilter(QObject *watched, QEvent *e)
|
||||||
{
|
{
|
||||||
// 时尚模式下
|
// 时尚模式下
|
||||||
@ -61,8 +66,11 @@ bool TrayPluginItem::eventFilter(QObject *watched, QEvent *e)
|
|||||||
|
|
||||||
if (watched == centralWidget() && e->type() == QEvent::DynamicPropertyChange) {
|
if (watched == centralWidget() && e->type() == QEvent::DynamicPropertyChange) {
|
||||||
const QString &propertyName = static_cast<QDynamicPropertyChangeEvent *>(e)->propertyName();
|
const QString &propertyName = static_cast<QDynamicPropertyChangeEvent *>(e)->propertyName();
|
||||||
if (propertyName == "FashionTraySize") {
|
if (propertyName == "TrayVisableItemCount") {
|
||||||
Q_EMIT fashionTraySizeChanged(watched->property("FashionTraySize").toSize());
|
m_trayVisableItemCount = watched->property("TrayVisableItemCount").toInt();
|
||||||
|
|
||||||
|
qDebug()<<"++++++++++++++++"<<m_trayVisableItemCount;
|
||||||
|
Q_EMIT trayVisableCountChanged(m_trayVisableItemCount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,12 +35,16 @@ public:
|
|||||||
|
|
||||||
void setSuggestIconSize(QSize size);
|
void setSuggestIconSize(QSize size);
|
||||||
void setRightSplitVisible(const bool visible);
|
void setRightSplitVisible(const bool visible);
|
||||||
|
int trayVisableItemCount();
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void fashionTraySizeChanged(const QSize &traySize) const;
|
void trayVisableCountChanged(const int &count) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool eventFilter(QObject *watched, QEvent *e) Q_DECL_OVERRIDE;
|
bool eventFilter(QObject *watched, QEvent *e) Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
|
private:
|
||||||
|
int m_trayVisableItemCount = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // TRAYPLUGINITEM_H
|
#endif // TRAYPLUGINITEM_H
|
||||||
|
@ -121,7 +121,7 @@ DockSettings::DockSettings(QWidget *parent)
|
|||||||
|
|
||||||
connect(m_itemManager, &DockItemManager::itemInserted, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
|
connect(m_itemManager, &DockItemManager::itemInserted, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
|
||||||
connect(m_itemManager, &DockItemManager::itemRemoved, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
|
connect(m_itemManager, &DockItemManager::itemRemoved, this, &DockSettings::dockItemCountChanged, Qt::QueuedConnection);
|
||||||
connect(m_itemManager, &DockItemManager::fashionTraySizeChanged, this, &DockSettings::onFashionTraySizeChanged, Qt::QueuedConnection);
|
connect(m_itemManager, &DockItemManager::trayVisableCountChanged, this, &DockSettings::trayVisableCountChanged, Qt::QueuedConnection);
|
||||||
|
|
||||||
connect(m_displayInter, &DBusDisplay::PrimaryRectChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
|
connect(m_displayInter, &DBusDisplay::PrimaryRectChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
|
||||||
connect(m_displayInter, &DBusDisplay::ScreenHeightChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
|
connect(m_displayInter, &DBusDisplay::ScreenHeightChanged, this, &DockSettings::primaryScreenChanged, Qt::QueuedConnection);
|
||||||
@ -482,7 +482,7 @@ void DockSettings::onOpacityChanged(const double value)
|
|||||||
emit opacityChanged(value * 255);
|
emit opacityChanged(value * 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DockSettings::onFashionTraySizeChanged(const QSize &traySize)
|
void DockSettings::trayVisableCountChanged(const int &count)
|
||||||
{
|
{
|
||||||
emit windowGeometryChanged();
|
emit windowGeometryChanged();
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ private slots:
|
|||||||
void resetFrontendGeometry();
|
void resetFrontendGeometry();
|
||||||
void updateForbidPostions();
|
void updateForbidPostions();
|
||||||
void onOpacityChanged(const double value);
|
void onOpacityChanged(const double value);
|
||||||
void onFashionTraySizeChanged(const QSize &traySize);
|
void trayVisableCountChanged(const int &count);
|
||||||
void onWindowSizeChanged();
|
void onWindowSizeChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -177,6 +177,14 @@ bool AbstractContainer::isEmpty()
|
|||||||
return m_wrapperList.isEmpty();
|
return m_wrapperList.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int AbstractContainer::itemCount()
|
||||||
|
{
|
||||||
|
if(expand())
|
||||||
|
return m_wrapperList.count();
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
bool AbstractContainer::containsWrapper(FashionTrayWidgetWrapper *wrapper)
|
bool AbstractContainer::containsWrapper(FashionTrayWidgetWrapper *wrapper)
|
||||||
{
|
{
|
||||||
for (auto w : m_wrapperList) {
|
for (auto w : m_wrapperList) {
|
||||||
|
@ -28,6 +28,7 @@ public:
|
|||||||
void clearWrapper();
|
void clearWrapper();
|
||||||
void saveCurrentOrderToConfig();
|
void saveCurrentOrderToConfig();
|
||||||
bool isEmpty();
|
bool isEmpty();
|
||||||
|
int itemCount();
|
||||||
bool containsWrapper(FashionTrayWidgetWrapper *wrapper);
|
bool containsWrapper(FashionTrayWidgetWrapper *wrapper);
|
||||||
bool containsWrapperByTrayWidget(AbstractTrayWidget *trayWidget);
|
bool containsWrapperByTrayWidget(AbstractTrayWidget *trayWidget);
|
||||||
FashionTrayWidgetWrapper *wrapperByTrayWidget(AbstractTrayWidget *trayWidget);
|
FashionTrayWidgetWrapper *wrapperByTrayWidget(AbstractTrayWidget *trayWidget);
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "fashiontrayitem.h"
|
#include "fashiontrayitem.h"
|
||||||
#include "fashiontray/fashiontrayconstants.h"
|
#include "fashiontray/fashiontrayconstants.h"
|
||||||
#include "system-trays/systemtrayitem.h"
|
#include "system-trays/systemtrayitem.h"
|
||||||
|
#include "containers/abstractcontainer.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QResizeEvent>
|
#include <QResizeEvent>
|
||||||
@ -336,9 +337,11 @@ void FashionTrayItem::normalWrapperToAttentionWrapper(FashionTrayWidgetWrapper *
|
|||||||
|
|
||||||
void FashionTrayItem::requestResize()
|
void FashionTrayItem::requestResize()
|
||||||
{
|
{
|
||||||
// 此属性用来通知dock实现动画,目前已经失效,动画效果在托盘实现
|
// 通知dock,当前托盘有几个图标显示,用来计算图标大小
|
||||||
// setProperty("FashionTraySize", sizeHint());
|
m_leftSpace->setVisible(!m_controlWidget->expanded());
|
||||||
m_leftSpace->setVisible(!m_controlWidget->expanded());
|
|
||||||
|
int count = m_normalContainer->itemCount() + m_holdContainer->itemCount() + m_attentionContainer->itemCount();
|
||||||
|
setProperty("TrayVisableItemCount", count + 1); // +1 : m_controlWidget
|
||||||
}
|
}
|
||||||
|
|
||||||
void FashionTrayItem::refreshHoldContainerPosition()
|
void FashionTrayItem::refreshHoldContainerPosition()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user