mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 00:15:21 +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();
|
||||
}
|
||||
|
||||
PluginsItemInterface::PluginSizePolicy PluginsItem::pluginSizePolicy() const
|
||||
{
|
||||
return m_pluginInter->pluginSizePolicy();
|
||||
}
|
||||
|
||||
DockItem::ItemType PluginsItem::itemType() const
|
||||
{
|
||||
if (m_pluginInter->type() == PluginsItemInterface::Normal) {
|
||||
|
@ -41,6 +41,7 @@ public:
|
||||
void setInContainer(const bool container);
|
||||
|
||||
QString pluginName() const;
|
||||
PluginsItemInterface::PluginSizePolicy pluginSizePolicy() const;
|
||||
|
||||
using DockItem::showContextMenu;
|
||||
using DockItem::hidePopup;
|
||||
|
@ -1058,10 +1058,13 @@ void MainPanelControl::calcuDockIconSize(int w, int h, PluginsItem *trashPlugin,
|
||||
if (layout) {
|
||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
||||
if (pItem->pluginName() == "datetime") {
|
||||
pItem->setFixedSize(pItem->sizeHint().width(), h);
|
||||
} else {
|
||||
switch (pItem->pluginSizePolicy()) {
|
||||
case PluginsItemInterface::System:
|
||||
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) {
|
||||
PluginsItem *pItem = static_cast<PluginsItem *>(layout->itemAt(0)->widget());
|
||||
if (pItem && pItem != trashPlugin && pItem != shutdownPlugin && pItem != keyboardPlugin && pItem !=notificationPlugin) {
|
||||
if (pItem->pluginName() == "datetime") {
|
||||
pItem->setFixedSize(w, pItem->sizeHint().height());
|
||||
} else {
|
||||
switch (pItem->pluginSizePolicy()) {
|
||||
case PluginsItemInterface::System:
|
||||
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
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief Plugin size policy
|
||||
*/
|
||||
enum PluginSizePolicy {
|
||||
System = 1 << 0, // Follow the system
|
||||
Custom = 1 << 1 // The custom
|
||||
};
|
||||
|
||||
///
|
||||
/// \brief ~PluginsItemInterface
|
||||
/// DON'T try to delete m_proxyInter.
|
||||
@ -229,6 +237,12 @@ public:
|
||||
///
|
||||
virtual PluginType type() { return Normal; }
|
||||
|
||||
///
|
||||
/// \brief plugin size policy
|
||||
/// default plugin size policy
|
||||
///
|
||||
virtual PluginSizePolicy pluginSizePolicy() const { return System; }
|
||||
|
||||
protected:
|
||||
///
|
||||
/// \brief m_proxyInter
|
||||
|
@ -47,6 +47,11 @@ const QString DatetimePlugin::pluginName() const
|
||||
return "datetime";
|
||||
}
|
||||
|
||||
PluginsItemInterface::PluginSizePolicy DatetimePlugin::pluginSizePolicy() const
|
||||
{
|
||||
return PluginsItemInterface::Custom;
|
||||
}
|
||||
|
||||
const QString DatetimePlugin::pluginDisplayName() const
|
||||
{
|
||||
return tr("Datetime");
|
||||
|
@ -43,6 +43,7 @@ public:
|
||||
explicit DatetimePlugin(QObject *parent = nullptr);
|
||||
|
||||
const QString pluginName() const override;
|
||||
PluginSizePolicy pluginSizePolicy() const override;
|
||||
const QString pluginDisplayName() const override;
|
||||
void init(PluginProxyInterface *proxyInter) override;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user