diff --git a/plugins/onboard/onboarditem.cpp b/plugins/onboard/onboarditem.cpp index de72f24e0..b69aaed52 100644 --- a/plugins/onboard/onboarditem.cpp +++ b/plugins/onboard/onboarditem.cpp @@ -46,17 +46,22 @@ OnboardItem::OnboardItem(QWidget *parent) m_icon = QIcon::fromTheme(":/icons/icon/deepin-virtualkeyboard.svg"); } +QPixmap OnboardItem::iconPixmap(int iconSize) const +{ + QString iconName = "deepin-virtualkeyboard"; + if (std::min(width(), height()) <= PLUGIN_BACKGROUND_MIN_SIZE + || DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) + iconName.append(PLUGIN_MIN_ICON_NAME); + + return loadSvg(iconName, QSize(iconSize, iconSize)); +} + void OnboardItem::paintEvent(QPaintEvent *e) { Q_UNUSED(e); - QPixmap pixmap; - QString iconName = "deepin-virtualkeyboard"; - int iconSize = PLUGIN_ICON_MAX_SIZE; - QPainter painter(this); if (std::min(width(), height()) > PLUGIN_BACKGROUND_MIN_SIZE) { - QColor color; if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) { color = Qt::black; @@ -95,12 +100,9 @@ void OnboardItem::paintEvent(QPaintEvent *e) path.addRoundedRect(rc, radius, radius); painter.fillPath(path, color); - } else if (DGuiApplicationHelper::instance()->themeType() == DGuiApplicationHelper::LightType) { - iconName.append(PLUGIN_MIN_ICON_NAME); } - pixmap = loadSvg(iconName, QSize(iconSize, iconSize)); - + QPixmap pixmap = iconPixmap(PLUGIN_ICON_MAX_SIZE); painter.setOpacity(1); const QRectF &rf = QRectF(rect()); const QRectF &rfp = QRectF(pixmap.rect()); diff --git a/plugins/onboard/onboarditem.h b/plugins/onboard/onboarditem.h index f2186a039..58b094dc5 100644 --- a/plugins/onboard/onboarditem.h +++ b/plugins/onboard/onboarditem.h @@ -33,6 +33,7 @@ class OnboardItem : public QWidget public: explicit OnboardItem(QWidget *parent = nullptr); + QPixmap iconPixmap(int iconSize) const; protected: void paintEvent(QPaintEvent *e) override; diff --git a/plugins/onboard/onboardplugin.cpp b/plugins/onboard/onboardplugin.cpp index 28496dbb1..ba46219b6 100644 --- a/plugins/onboard/onboardplugin.cpp +++ b/plugins/onboard/onboardplugin.cpp @@ -61,9 +61,10 @@ const QString OnboardPlugin::pluginDisplayName() const QWidget *OnboardPlugin::itemWidget(const QString &itemKey) { - Q_UNUSED(itemKey); + if (itemKey == pluginName()) + return m_onboardItem.data(); - return m_onboardItem.data(); + return nullptr; } QWidget *OnboardPlugin::itemTipsWidget(const QString &itemKey) @@ -184,6 +185,24 @@ void OnboardPlugin::pluginSettingsChanged() refreshPluginItemsVisible(); } +QIcon OnboardPlugin::icon(const DockPart &dockPart) +{ + if (dockPart == DockPart::QuickPanel) + return m_onboardItem->iconPixmap(24); + + return m_onboardItem->iconPixmap(20); +} + +PluginsItemInterface::PluginStatus OnboardPlugin::status() const +{ + return PluginsItemInterface::PluginStatus::Active; +} + +QString OnboardPlugin::description() const +{ + return pluginDisplayName(); +} + void OnboardPlugin::loadPlugin() { if (m_pluginLoaded) { diff --git a/plugins/onboard/onboardplugin.h b/plugins/onboard/onboardplugin.h index a8b005b4c..3d08b1795 100644 --- a/plugins/onboard/onboardplugin.h +++ b/plugins/onboard/onboardplugin.h @@ -59,6 +59,9 @@ public: void setSortKey(const QString &itemKey, const int order) override; void pluginSettingsChanged() override; + QIcon icon(const DockPart &dockPart) override; + PluginStatus status() const override; + QString description() const override; private: void loadPlugin();