feat: 完善onboard插件的接口

适配v23并完善接口内容

Log: 完善onboard插件接口
Influence: 快捷面板观察onboard插件是否正常显示
Task: https://pms.uniontech.com/task-view-212611.html
Change-Id: Ic3db0b0b880b20327a210ac103f116e58d7ffd6d
This commit is contained in:
donghualin 2022-11-09 02:31:27 +00:00
parent 6ab996ded9
commit e663e4ac16
4 changed files with 36 additions and 11 deletions

View File

@ -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());

View File

@ -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;

View File

@ -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) {

View File

@ -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();