mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
feat: 任务栏插件显示大小新增支持自定义宽度(或高度)
新增插件大小策略枚举类型,支持"跟随系统"和"自定义"两种类型,默认类型为"跟随系统",那么 这样系统自带的插件大小就不需要重新写代码控制,当需要控制插件大小时,返回"自定义"类型即 可. Log: 任务栏插件显示大小新增支持自定义宽度(或高度) Task: https://pms.uniontech.com/zentao/task-view-44090.html Change-Id: I0d4c30661ee7c02904160221dc6a72737f0b774d
This commit is contained in:
parent
346c62a477
commit
81d9d8635c
@ -99,6 +99,11 @@ QString PluginsItem::pluginName() const
|
|||||||
return m_pluginInter->pluginName();
|
return m_pluginInter->pluginName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PluginsItemInterface::PluginSizePolicy PluginsItem::pluginSizePolicy() const
|
||||||
|
{
|
||||||
|
return m_pluginInter->pluginSizePolicy();
|
||||||
|
}
|
||||||
|
|
||||||
DockItem::ItemType PluginsItem::itemType() const
|
DockItem::ItemType PluginsItem::itemType() const
|
||||||
{
|
{
|
||||||
if (m_pluginInter->type() == PluginsItemInterface::Normal) {
|
if (m_pluginInter->type() == PluginsItemInterface::Normal) {
|
||||||
|
@ -41,6 +41,7 @@ public:
|
|||||||
void setInContainer(const bool container);
|
void setInContainer(const bool container);
|
||||||
|
|
||||||
QString pluginName() const;
|
QString pluginName() const;
|
||||||
|
PluginsItemInterface::PluginSizePolicy pluginSizePolicy() const;
|
||||||
|
|
||||||
using DockItem::showContextMenu;
|
using DockItem::showContextMenu;
|
||||||
using DockItem::hidePopup;
|
using DockItem::hidePopup;
|
||||||
|
@ -1058,10 +1058,13 @@ void MainPanelControl::calcuDockIconSize(int w, int h, PluginsItem *trashPlugin,
|
|||||||
if (layout) {
|
if (layout) {
|
||||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||||
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
||||||
if (pItem->pluginName() == "datetime") {
|
switch (pItem->pluginSizePolicy()) {
|
||||||
pItem->setFixedSize(pItem->sizeHint().width(), h);
|
case PluginsItemInterface::System:
|
||||||
} else {
|
|
||||||
pItem->setFixedSize(tray_item_size, tray_item_size);
|
pItem->setFixedSize(tray_item_size, tray_item_size);
|
||||||
|
break;
|
||||||
|
case PluginsItemInterface::Custom:
|
||||||
|
pItem->setFixedSize(pItem->sizeHint().width(), h);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1073,10 +1076,13 @@ void MainPanelControl::calcuDockIconSize(int w, int h, PluginsItem *trashPlugin,
|
|||||||
if (layout) {
|
if (layout) {
|
||||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||||
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
||||||
if (pItem->pluginName() == "datetime") {
|
switch (pItem->pluginSizePolicy()) {
|
||||||
pItem->setFixedSize(w, pItem->sizeHint().height());
|
case PluginsItemInterface::System:
|
||||||
} else {
|
|
||||||
pItem->setFixedSize(tray_item_size, tray_item_size);
|
pItem->setFixedSize(tray_item_size, tray_item_size);
|
||||||
|
break;
|
||||||
|
case PluginsItemInterface::Custom:
|
||||||
|
pItem->setFixedSize(w, pItem->sizeHint().height());
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,14 @@ public:
|
|||||||
Fixed
|
Fixed
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Plugin size policy
|
||||||
|
*/
|
||||||
|
enum PluginSizePolicy {
|
||||||
|
System = 1 << 0, // Follow the system
|
||||||
|
Custom = 1 << 1 // The custom
|
||||||
|
};
|
||||||
|
|
||||||
///
|
///
|
||||||
/// \brief ~PluginsItemInterface
|
/// \brief ~PluginsItemInterface
|
||||||
/// DON'T try to delete m_proxyInter.
|
/// DON'T try to delete m_proxyInter.
|
||||||
@ -229,6 +237,12 @@ public:
|
|||||||
///
|
///
|
||||||
virtual PluginType type() { return Normal; }
|
virtual PluginType type() { return Normal; }
|
||||||
|
|
||||||
|
///
|
||||||
|
/// \brief plugin size policy
|
||||||
|
/// default plugin size policy
|
||||||
|
///
|
||||||
|
virtual PluginSizePolicy pluginSizePolicy() const { return System; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
///
|
///
|
||||||
/// \brief m_proxyInter
|
/// \brief m_proxyInter
|
||||||
|
@ -47,6 +47,11 @@ const QString DatetimePlugin::pluginName() const
|
|||||||
return "datetime";
|
return "datetime";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PluginsItemInterface::PluginSizePolicy DatetimePlugin::pluginSizePolicy() const
|
||||||
|
{
|
||||||
|
return PluginsItemInterface::Custom;
|
||||||
|
}
|
||||||
|
|
||||||
const QString DatetimePlugin::pluginDisplayName() const
|
const QString DatetimePlugin::pluginDisplayName() const
|
||||||
{
|
{
|
||||||
return tr("Datetime");
|
return tr("Datetime");
|
||||||
|
@ -43,6 +43,7 @@ public:
|
|||||||
explicit DatetimePlugin(QObject *parent = nullptr);
|
explicit DatetimePlugin(QObject *parent = nullptr);
|
||||||
|
|
||||||
const QString pluginName() const override;
|
const QString pluginName() const override;
|
||||||
|
PluginSizePolicy pluginSizePolicy() const override;
|
||||||
const QString pluginDisplayName() const override;
|
const QString pluginDisplayName() const override;
|
||||||
void init(PluginProxyInterface *proxyInter) override;
|
void init(PluginProxyInterface *proxyInter) override;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user