diff --git a/frame/window/systempluginwindow.cpp b/frame/window/systempluginwindow.cpp index 32253f16a..551e0e2bd 100644 --- a/frame/window/systempluginwindow.cpp +++ b/frame/window/systempluginwindow.cpp @@ -51,7 +51,14 @@ SystemPluginWindow::~SystemPluginWindow() void SystemPluginWindow::setDisplayMode(const DisplayMode &displayMode) { m_displayMode = displayMode; - StretchPluginsItem::setDisplayMode(displayMode); + QObjectList childObjects = children(); + for (QObject *childObject : childObjects) { + StretchPluginsItem *item = qobject_cast(childObject); + if (!item) + continue; + + item->setDisplayMode(displayMode); + } } void SystemPluginWindow::setPositon(Position position) @@ -193,13 +200,13 @@ void SystemPluginWindow::onPluginItemUpdated(PluginsItemInterface *pluginItem) #define ICONTEXTSPACE 6 #define PLUGIN_ITEM_DRAG_THRESHOLD 20 -Dock::DisplayMode StretchPluginsItem::m_displayMode = Dock::DisplayMode::Efficient; Dock::Position StretchPluginsItem::m_position = Dock::Position::Bottom; StretchPluginsItem::StretchPluginsItem(PluginsItemInterface * const pluginInter, const QString &itemKey, QWidget *parent) : DockItem(parent) , m_pluginInter(pluginInter) , m_itemKey(itemKey) + , m_displayMode(Dock::DisplayMode::Efficient) { } diff --git a/frame/window/systempluginwindow.h b/frame/window/systempluginwindow.h index 6d37080fd..4e5bdb6d5 100644 --- a/frame/window/systempluginwindow.h +++ b/frame/window/systempluginwindow.h @@ -77,7 +77,7 @@ class StretchPluginsItem : public DockItem public: StretchPluginsItem(PluginsItemInterface *const pluginInter, const QString &itemKey, QWidget *parent = nullptr); ~StretchPluginsItem() override; - static void setDisplayMode(const Dock::DisplayMode &displayMode); + void setDisplayMode(const Dock::DisplayMode &displayMode); static void setPosition(Dock::Position position); PluginsItemInterface *pluginInter() const; QString itemKey() const; @@ -105,7 +105,7 @@ private: private: PluginsItemInterface *m_pluginInter; QString m_itemKey; - static Dock::DisplayMode m_displayMode; + Dock::DisplayMode m_displayMode; static Dock::Position m_position; QPoint m_mousePressPoint; };